@ukhomeoffice/cop-react-form-renderer 6.14.0 → 6.14.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/README.md +5 -0
- package/dist/components/CheckYourAnswers/Answer.js +12 -11
- package/dist/components/CheckYourAnswers/Answer.test.js +132 -181
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +98 -133
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +544 -939
- package/dist/components/CheckYourAnswers/index.js +1 -1
- package/dist/components/CollectionPage/CollectionPage.js +62 -60
- package/dist/components/CollectionPage/CollectionPage.test.js +315 -365
- package/dist/components/CollectionPage/index.js +1 -1
- package/dist/components/CollectionSummary/BannerStrip.js +14 -14
- package/dist/components/CollectionSummary/BannerStrip.test.js +79 -74
- package/dist/components/CollectionSummary/CollectionSummary.js +75 -97
- package/dist/components/CollectionSummary/CollectionSummary.test.js +182 -166
- package/dist/components/CollectionSummary/Confirmation.js +15 -13
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +34 -47
- package/dist/components/CollectionSummary/RenderListView.test.js +113 -111
- package/dist/components/CollectionSummary/SummaryCard.js +101 -133
- package/dist/components/CollectionSummary/SummaryCard.test.js +961 -993
- package/dist/components/CollectionSummary/SummaryCardButtons.js +25 -30
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +30 -28
- package/dist/components/CollectionSummary/SummaryCardDetails.js +59 -76
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +170 -180
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +31 -36
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +63 -75
- package/dist/components/CollectionSummary/index.js +1 -1
- package/dist/components/FormComponent/Collection.js +63 -100
- package/dist/components/FormComponent/Collection.test.js +907 -1080
- package/dist/components/FormComponent/Container.js +35 -29
- package/dist/components/FormComponent/Container.test.js +378 -409
- package/dist/components/FormComponent/FormComponent.js +59 -63
- package/dist/components/FormComponent/FormComponent.test.js +354 -415
- 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 +8 -8
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +15 -15
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +7 -7
- package/dist/components/FormComponent/helpers/index.js +5 -5
- package/dist/components/FormComponent/index.js +1 -1
- package/dist/components/FormPage/FormPage.js +70 -93
- package/dist/components/FormPage/FormPage.test.js +150 -202
- package/dist/components/FormPage/index.js +1 -1
- package/dist/components/FormRenderer/FormRenderer.js +131 -173
- package/dist/components/FormRenderer/FormRenderer.test.js +732 -1114
- package/dist/components/FormRenderer/handlers/cyaAction.js +3 -3
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +15 -15
- package/dist/components/FormRenderer/handlers/handlers.test.js +33 -33
- package/dist/components/FormRenderer/handlers/index.js +2 -2
- package/dist/components/FormRenderer/handlers/navigate.js +4 -4
- 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 +16 -16
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +17 -21
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -25
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +21 -21
- package/dist/components/FormRenderer/helpers/getCYA.js +4 -6
- package/dist/components/FormRenderer/helpers/getCYA.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getFormState.js +6 -8
- package/dist/components/FormRenderer/helpers/getFormState.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getNextPageId.js +14 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +68 -68
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +12 -12
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +15 -15
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +6 -6
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +104 -98
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +44 -51
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +68 -74
- package/dist/components/FormRenderer/helpers/index.js +2 -2
- package/dist/components/FormRenderer/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +43 -44
- package/dist/components/FormRenderer/onCYAAction.test.js +126 -133
- package/dist/components/FormRenderer/onPageAction.js +26 -35
- package/dist/components/FormRenderer/onPageAction.test.js +177 -186
- package/dist/components/FormRenderer/onTaskAction.js +11 -12
- package/dist/components/FormRenderer/onTaskAction.test.js +63 -68
- package/dist/components/PageActions/ActionButton.js +14 -14
- package/dist/components/PageActions/ActionButton.test.js +57 -79
- package/dist/components/PageActions/PageActions.js +11 -11
- package/dist/components/PageActions/PageActions.test.js +87 -116
- package/dist/components/PageActions/index.js +1 -1
- package/dist/components/SummaryList/GroupAction.js +10 -18
- package/dist/components/SummaryList/GroupAction.test.js +38 -34
- package/dist/components/SummaryList/RowAction.js +12 -17
- package/dist/components/SummaryList/RowAction.test.js +38 -34
- package/dist/components/SummaryList/SummaryList.js +23 -25
- package/dist/components/SummaryList/SummaryList.test.js +162 -189
- package/dist/components/SummaryList/SummaryListHeadingRow.js +7 -5
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +7 -5
- package/dist/components/SummaryList/SummaryListRow.js +7 -5
- package/dist/components/SummaryList/SummaryListTitleRow.js +6 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +23 -23
- package/dist/components/SummaryList/helpers/index.js +2 -2
- package/dist/components/SummaryList/index.js +1 -1
- package/dist/components/TaskList/Task.js +20 -30
- package/dist/components/TaskList/Task.test.js +84 -77
- package/dist/components/TaskList/TaskList.js +56 -79
- package/dist/components/TaskList/TaskList.test.js +149 -149
- package/dist/components/TaskList/TaskState.js +8 -6
- package/dist/components/TaskList/TaskState.test.js +53 -46
- package/dist/components/TaskList/index.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/context/HooksContext/HooksContext.js +56 -79
- package/dist/context/HooksContext/HooksContext.test.js +27 -36
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +44 -95
- package/dist/context/ValidationContext/ValidationContext.test.js +57 -69
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +3 -3
- package/dist/hooks/index.js +10 -11
- package/dist/hooks/useAxios.js +15 -41
- package/dist/hooks/useGetRequest.js +62 -98
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +25 -37
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +14 -15
- 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 +10 -10
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +53 -55
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +12 -21
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +32 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +15 -28
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +41 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +7 -7
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +87 -87
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +19 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -17
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +27 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +48 -52
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +76 -93
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +110 -115
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +11 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +112 -106
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +14 -19
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +69 -73
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +7 -8
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +15 -16
- package/dist/utils/CheckYourAnswers/index.js +2 -2
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +5 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +26 -26
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +6 -6
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +3 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +13 -20
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +48 -39
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +11 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +23 -23
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +20 -20
- package/dist/utils/CollectionPage/getErrorsForCollection.js +20 -21
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +21 -23
- package/dist/utils/CollectionPage/getQuickEditPage.js +22 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +17 -18
- package/dist/utils/CollectionPage/index.js +2 -2
- package/dist/utils/CollectionPage/mergeCollectionPages.js +26 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +18 -18
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +5 -7
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +11 -11
- package/dist/utils/CollectionPage/setCollectionPageData.js +10 -16
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +25 -25
- package/dist/utils/Component/addShowWhen.js +5 -6
- package/dist/utils/Component/addShowWhen.test.js +38 -38
- package/dist/utils/Component/applyToComponentTree.js +12 -15
- package/dist/utils/Component/applyToComponentTree.test.js +28 -31
- package/dist/utils/Component/cleanAttributes.js +12 -11
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +6 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +34 -34
- package/dist/utils/Component/getComponent.js +79 -85
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +19 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +41 -58
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +40 -49
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +24 -34
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +21 -19
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +21 -26
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +11 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +23 -27
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +201 -226
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +18 -16
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +58 -73
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +18 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +32 -39
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +21 -30
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +3 -3
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +10 -9
- package/dist/utils/Component/getDefaultValue.js +7 -9
- package/dist/utils/Component/getDefaultValue.test.js +13 -13
- package/dist/utils/Component/getDefaultValueFromConfig.js +16 -20
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +32 -32
- package/dist/utils/Component/index.js +2 -2
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +2 -4
- package/dist/utils/Component/optionIsSelected.test.js +12 -12
- package/dist/utils/Component/setupContainerComponentsPath.js +23 -28
- package/dist/utils/Component/setupContainerComponentsPath.test.js +12 -12
- package/dist/utils/Component/showComponent.js +2 -2
- package/dist/utils/Component/showComponent.test.js +29 -29
- package/dist/utils/Component/wrapInFormGroup.js +4 -4
- package/dist/utils/Condition/index.js +2 -2
- package/dist/utils/Condition/meetsAllConditions.js +9 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +21 -21
- package/dist/utils/Condition/meetsCondition.js +17 -26
- package/dist/utils/Condition/meetsCondition.test.js +403 -403
- package/dist/utils/Condition/meetsOneCondition.js +6 -6
- package/dist/utils/Condition/meetsOneCondition.test.js +17 -17
- package/dist/utils/Condition/setupConditions.js +12 -15
- package/dist/utils/Condition/setupConditions.test.js +8 -8
- package/dist/utils/Container/getEditableComponents.js +4 -6
- package/dist/utils/Container/getEditableComponents.test.js +44 -46
- package/dist/utils/Container/index.js +2 -2
- package/dist/utils/Container/setupNesting.js +14 -15
- package/dist/utils/Container/setupNesting.test.js +20 -23
- package/dist/utils/Container/showContainer.js +4 -8
- package/dist/utils/Container/showContainer.test.js +31 -31
- package/dist/utils/Data/applyFormula.js +30 -44
- package/dist/utils/Data/applyFormula.test.js +21 -21
- package/dist/utils/Data/deleteValues.js +4 -8
- package/dist/utils/Data/deleteValues.test.js +11 -11
- package/dist/utils/Data/getAutocompleteSource.js +19 -27
- package/dist/utils/Data/getAutocompleteSource.test.js +76 -81
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +13 -13
- package/dist/utils/Data/getOptions.js +35 -42
- package/dist/utils/Data/getOptions.test.js +37 -38
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +85 -81
- package/dist/utils/Data/index.js +2 -2
- package/dist/utils/Data/nestInRefdataOptions.js +9 -12
- package/dist/utils/Data/nestInRefdataOptions.test.js +17 -17
- package/dist/utils/Data/refDataToOptions.js +9 -10
- package/dist/utils/Data/refDataToOptions.test.js +20 -20
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +38 -38
- package/dist/utils/Data/setupFormData.js +13 -20
- package/dist/utils/Data/setupFormData.test.js +48 -47
- package/dist/utils/Data/setupRefDataUrlForComponent.js +11 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +25 -25
- package/dist/utils/FormPage/applyConditionalProperties.js +7 -8
- package/dist/utils/FormPage/applyConditionalProperties.test.js +14 -15
- package/dist/utils/FormPage/getConditionalText.js +4 -4
- package/dist/utils/FormPage/getConditionalText.test.js +30 -30
- package/dist/utils/FormPage/getFormPage.js +12 -15
- package/dist/utils/FormPage/getFormPage.test.js +23 -24
- package/dist/utils/FormPage/getFormPages.js +8 -11
- package/dist/utils/FormPage/getFormPages.test.js +15 -16
- package/dist/utils/FormPage/getPageActions.js +10 -13
- package/dist/utils/FormPage/getPageActions.test.js +33 -33
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +7 -7
- package/dist/utils/FormPage/index.js +3 -5
- package/dist/utils/FormPage/showFormPage.js +4 -8
- package/dist/utils/FormPage/showFormPage.test.js +33 -33
- package/dist/utils/FormPage/showFormPageCYA.js +2 -2
- package/dist/utils/FormPage/showFormPageCYA.test.js +9 -9
- package/dist/utils/FormPage/useComponent.js +15 -23
- package/dist/utils/FormPage/useComponent.test.js +49 -50
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +19 -19
- package/dist/utils/Format/formatDataForComponent.js +6 -7
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +5 -6
- package/dist/utils/Format/formatDataForForm.test.js +14 -17
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +2 -2
- package/dist/utils/Hub/getFormHub.js +2 -2
- package/dist/utils/Hub/getFormHub.test.js +23 -24
- package/dist/utils/Hub/index.js +2 -2
- 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 +25 -17
- package/dist/utils/Meta/documents/index.js +2 -2
- package/dist/utils/Meta/documents/setDocumentsForField.js +12 -13
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +70 -33
- package/dist/utils/Meta/index.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.js +3 -3
- package/dist/utils/Operate/checkValueIsTruthy.test.js +17 -17
- package/dist/utils/Operate/deleteValueInFormData.js +2 -2
- package/dist/utils/Operate/deleteValueInFormData.test.js +15 -15
- package/dist/utils/Operate/getFirstOf.js +6 -6
- package/dist/utils/Operate/getFirstOf.test.js +32 -32
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +11 -11
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +47 -53
- package/dist/utils/Operate/getLength.js +9 -9
- package/dist/utils/Operate/getLength.test.js +19 -19
- package/dist/utils/Operate/index.js +2 -2
- package/dist/utils/Operate/persistValueInFormData.js +4 -4
- package/dist/utils/Operate/persistValueInFormData.test.js +23 -21
- package/dist/utils/Operate/runPageOperations.js +8 -8
- package/dist/utils/Operate/runPageOperations.test.js +24 -25
- package/dist/utils/Operate/setValueInFormData.js +3 -3
- package/dist/utils/Operate/setValueInFormData.test.js +17 -17
- package/dist/utils/Operate/shouldRun.js +7 -7
- package/dist/utils/Operate/shouldRun.test.js +22 -24
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +1 -1
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +15 -15
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +19 -19
- package/dist/utils/Validate/additional/index.js +8 -8
- package/dist/utils/Validate/additional/index.test.js +22 -22
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -3
- package/dist/utils/Validate/additional/mustBeAfter.test.js +41 -41
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -3
- package/dist/utils/Validate/additional/mustBeBefore.test.js +29 -29
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +8 -12
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -38
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +19 -19
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -3
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeInThePast.js +4 -4
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +21 -21
- package/dist/utils/Validate/additional/mustBeOneOf.js +1 -1
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +13 -13
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +5 -5
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +35 -36
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +15 -17
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +13 -13
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +15 -15
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +29 -27
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +2 -2
- package/dist/utils/Validate/validateCollection.js +18 -23
- package/dist/utils/Validate/validateCollection.test.js +75 -67
- package/dist/utils/Validate/validateComponent.js +19 -19
- package/dist/utils/Validate/validateComponent.test.js +179 -154
- package/dist/utils/Validate/validateContainer.js +14 -17
- package/dist/utils/Validate/validateContainer.test.js +59 -53
- package/dist/utils/Validate/validateDate.js +16 -22
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +7 -9
- package/dist/utils/Validate/validateEmail.test.js +27 -27
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +13 -18
- package/dist/utils/Validate/validatePage.test.js +198 -195
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +15 -15
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +19 -19
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +21 -21
- package/dist/utils/Validate/validateTime.js +12 -19
- package/dist/utils/Validate/validateTime.test.js +27 -27
- package/dist/utils/index.js +5 -6
- package/package.json +2 -4
|
@@ -2,89 +2,89 @@
|
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
4
|
var _showComponentCYA = _interopRequireDefault(require("./showComponentCYA"));
|
|
5
|
-
function _interopRequireDefault(
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
6
|
// Local imports
|
|
7
7
|
|
|
8
|
-
describe('utils',
|
|
9
|
-
describe('CheckYourAnswers',
|
|
10
|
-
describe('showComponentCYA',
|
|
11
|
-
it('should not show when there are no options',
|
|
8
|
+
describe('utils', () => {
|
|
9
|
+
describe('CheckYourAnswers', () => {
|
|
10
|
+
describe('showComponentCYA', () => {
|
|
11
|
+
it('should not show when there are no options', () => {
|
|
12
12
|
expect((0, _showComponentCYA.default)(null, null)).toBeFalsy();
|
|
13
13
|
});
|
|
14
|
-
it('should not show when show_on_cya is defined and falsy',
|
|
14
|
+
it('should not show when show_on_cya is defined and falsy', () => {
|
|
15
15
|
expect((0, _showComponentCYA.default)({
|
|
16
16
|
show_on_cya: false
|
|
17
17
|
})).toBeFalsy();
|
|
18
18
|
});
|
|
19
|
-
it('should not show when it is a heading type',
|
|
19
|
+
it('should not show when it is a heading type', () => {
|
|
20
20
|
expect((0, _showComponentCYA.default)({
|
|
21
21
|
type: _models.ComponentTypes.HEADING
|
|
22
22
|
}, null)).toBeFalsy();
|
|
23
23
|
});
|
|
24
|
-
it('should not show when it is an html type',
|
|
24
|
+
it('should not show when it is an html type', () => {
|
|
25
25
|
expect((0, _showComponentCYA.default)({
|
|
26
26
|
type: _models.ComponentTypes.HTML
|
|
27
27
|
}, null)).toBeFalsy();
|
|
28
28
|
});
|
|
29
|
-
it('should not show when it is an inset-text type',
|
|
29
|
+
it('should not show when it is an inset-text type', () => {
|
|
30
30
|
expect((0, _showComponentCYA.default)({
|
|
31
31
|
type: _models.ComponentTypes.INSET_TEXT
|
|
32
32
|
}, null)).toBeFalsy();
|
|
33
33
|
});
|
|
34
|
-
it('should not show when it is a details type',
|
|
34
|
+
it('should not show when it is a details type', () => {
|
|
35
35
|
expect((0, _showComponentCYA.default)({
|
|
36
36
|
type: _models.ComponentTypes.DETAILS
|
|
37
37
|
}, null)).toBeFalsy();
|
|
38
38
|
});
|
|
39
|
-
it('should not show when it hidden and disabled',
|
|
39
|
+
it('should not show when it hidden and disabled', () => {
|
|
40
40
|
expect((0, _showComponentCYA.default)({
|
|
41
41
|
hidden: true,
|
|
42
42
|
disabled: true
|
|
43
43
|
}, null)).toBeFalsy();
|
|
44
44
|
});
|
|
45
|
-
it('should show when show_on_cya is defined and truthy',
|
|
45
|
+
it('should show when show_on_cya is defined and truthy', () => {
|
|
46
46
|
expect((0, _showComponentCYA.default)({
|
|
47
47
|
show_on_cya: true
|
|
48
48
|
})).toBeTruthy();
|
|
49
49
|
});
|
|
50
|
-
it('should show when it hidden but not disabled',
|
|
50
|
+
it('should show when it hidden but not disabled', () => {
|
|
51
51
|
expect((0, _showComponentCYA.default)({
|
|
52
52
|
hidden: true
|
|
53
53
|
}, null)).toBeTruthy();
|
|
54
54
|
});
|
|
55
|
-
it('should show when it disabled but not hidden',
|
|
55
|
+
it('should show when it disabled but not hidden', () => {
|
|
56
56
|
expect((0, _showComponentCYA.default)({
|
|
57
57
|
disabled: true
|
|
58
58
|
}, null)).toBeTruthy();
|
|
59
59
|
});
|
|
60
|
-
it('should show when it not html, inset-text, a heading, hidden, or disabled',
|
|
60
|
+
it('should show when it not html, inset-text, a heading, hidden, or disabled', () => {
|
|
61
61
|
expect((0, _showComponentCYA.default)({
|
|
62
62
|
type: _models.ComponentTypes.TEXT
|
|
63
63
|
}, null)).toBeTruthy();
|
|
64
64
|
});
|
|
65
|
-
it('should show when hideOnCyaWhenEmpty is defined and falsy',
|
|
65
|
+
it('should show when hideOnCyaWhenEmpty is defined and falsy', () => {
|
|
66
66
|
expect((0, _showComponentCYA.default)({
|
|
67
67
|
hideOnCyaWhenEmpty: false
|
|
68
68
|
})).toBeTruthy();
|
|
69
69
|
});
|
|
70
|
-
it('should show collection when hideOnCyaWhenEmpty is not defined',
|
|
70
|
+
it('should show collection when hideOnCyaWhenEmpty is not defined', () => {
|
|
71
71
|
expect((0, _showComponentCYA.default)({
|
|
72
72
|
type: _models.ComponentTypes.COLLECTION
|
|
73
73
|
})).toBeTruthy();
|
|
74
74
|
});
|
|
75
|
-
it('should not show when it\'s a collection and hideOnCyaWhenEmpty is truthy',
|
|
75
|
+
it('should not show when it\'s a collection and hideOnCyaWhenEmpty is truthy', () => {
|
|
76
76
|
expect((0, _showComponentCYA.default)({
|
|
77
77
|
hideOnCyaWhenEmpty: true,
|
|
78
78
|
type: _models.ComponentTypes.COLLECTION
|
|
79
79
|
})).toBeFalsy();
|
|
80
80
|
});
|
|
81
|
-
it('should not show when it\'s not a collection and hideOnCyaWhenEmpty is truthy',
|
|
81
|
+
it('should not show when it\'s not a collection and hideOnCyaWhenEmpty is truthy', () => {
|
|
82
82
|
expect((0, _showComponentCYA.default)({
|
|
83
83
|
hideOnCyaWhenEmpty: true,
|
|
84
84
|
type: _models.ComponentTypes.TEXT
|
|
85
85
|
})).toBeFalsy();
|
|
86
86
|
});
|
|
87
|
-
it('should show when length of full_path data is 1 or more',
|
|
87
|
+
it('should show when length of full_path data is 1 or more', () => {
|
|
88
88
|
expect((0, _showComponentCYA.default)({
|
|
89
89
|
hideOnCyaWhenEmpty: true,
|
|
90
90
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -93,7 +93,7 @@ describe('utils', function () {
|
|
|
93
93
|
example: [0, 1]
|
|
94
94
|
})).toBeTruthy();
|
|
95
95
|
});
|
|
96
|
-
it('should not show when length of full_path data is less than 1',
|
|
96
|
+
it('should not show when length of full_path data is less than 1', () => {
|
|
97
97
|
expect((0, _showComponentCYA.default)({
|
|
98
98
|
hideOnCyaWhenEmpty: true,
|
|
99
99
|
type: _models.ComponentTypes.COLLECTION,
|
|
@@ -102,7 +102,7 @@ describe('utils', function () {
|
|
|
102
102
|
example: []
|
|
103
103
|
})).toBeFalsy();
|
|
104
104
|
});
|
|
105
|
-
it('should show when value of component data does exist and hideOnCyaWhenEmpty is truthy',
|
|
105
|
+
it('should show when value of component data does exist and hideOnCyaWhenEmpty is truthy', () => {
|
|
106
106
|
expect((0, _showComponentCYA.default)({
|
|
107
107
|
hideOnCyaWhenEmpty: true,
|
|
108
108
|
type: _models.ComponentTypes.TEXT,
|
|
@@ -111,21 +111,21 @@ describe('utils', function () {
|
|
|
111
111
|
example: "yes"
|
|
112
112
|
})).toBeTruthy();
|
|
113
113
|
});
|
|
114
|
-
it('should not show when value of component data does not exist and hideOnCyaWhenEmpty is truthy',
|
|
114
|
+
it('should not show when value of component data does not exist and hideOnCyaWhenEmpty is truthy', () => {
|
|
115
115
|
expect((0, _showComponentCYA.default)({
|
|
116
116
|
hideOnCyaWhenEmpty: true,
|
|
117
117
|
type: _models.ComponentTypes.TEXT,
|
|
118
118
|
fieldId: "example"
|
|
119
119
|
}, {})).toBeFalsy();
|
|
120
120
|
});
|
|
121
|
-
it('should show when value of component data does not exist and hideOnCyaWhenEmpty is falsy',
|
|
121
|
+
it('should show when value of component data does not exist and hideOnCyaWhenEmpty is falsy', () => {
|
|
122
122
|
expect((0, _showComponentCYA.default)({
|
|
123
123
|
hideOnCyaWhenEmpty: false,
|
|
124
124
|
type: _models.ComponentTypes.TEXT,
|
|
125
125
|
fieldId: "example"
|
|
126
126
|
}, {})).toBeTruthy();
|
|
127
127
|
});
|
|
128
|
-
it('should show when value of component data does is falsy and hideOnCyaWhenEmpty is truthy',
|
|
128
|
+
it('should show when value of component data does is falsy and hideOnCyaWhenEmpty is truthy', () => {
|
|
129
129
|
expect((0, _showComponentCYA.default)({
|
|
130
130
|
hideOnCyaWhenEmpty: true,
|
|
131
131
|
type: _models.ComponentTypes.TEXT,
|
|
@@ -134,7 +134,7 @@ describe('utils', function () {
|
|
|
134
134
|
example: false
|
|
135
135
|
})).toBeTruthy();
|
|
136
136
|
});
|
|
137
|
-
it('should show when value of component data is numerically zero and hideOnCyaWhenEmpty is truthy',
|
|
137
|
+
it('should show when value of component data is numerically zero and hideOnCyaWhenEmpty is truthy', () => {
|
|
138
138
|
expect((0, _showComponentCYA.default)({
|
|
139
139
|
hideOnCyaWhenEmpty: true,
|
|
140
140
|
type: _models.ComponentTypes.TEXT,
|
|
@@ -15,8 +15,8 @@ exports.default = void 0;
|
|
|
15
15
|
* @param {string} collectionName The name of the collection to create the new entry for.
|
|
16
16
|
* @param {object} formData The top level formData object.
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const addCollectionPageEntry = (collectionName, formData) => {
|
|
19
|
+
const fieldName = collectionName.split('.').pop();
|
|
20
20
|
formData["".concat(fieldName, "ActiveId")] = null;
|
|
21
21
|
};
|
|
22
22
|
var _default = exports.default = addCollectionPageEntry;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _addCollectionPageEntry = _interopRequireDefault(require("./addCollectionPageEntry"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('Utils.CollectionPage.addCollectionPageEntry',
|
|
6
|
-
it('should set active ID as null for a top-level collection',
|
|
7
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('Utils.CollectionPage.addCollectionPageEntry', () => {
|
|
6
|
+
it('should set active ID as null for a top-level collection', () => {
|
|
7
|
+
const FORM_DATA = {};
|
|
8
8
|
(0, _addCollectionPageEntry.default)('testCollection', FORM_DATA);
|
|
9
9
|
expect(FORM_DATA.testCollectionActiveId).toBeFalsy();
|
|
10
10
|
});
|
|
11
|
-
it('should set a active ID as null for a nested collection',
|
|
12
|
-
|
|
11
|
+
it('should set a active ID as null for a nested collection', () => {
|
|
12
|
+
const FORM_DATA = {};
|
|
13
13
|
(0, _addCollectionPageEntry.default)('parent.child.grandchild', FORM_DATA);
|
|
14
14
|
expect(FORM_DATA.grandchildActiveId).toBeFalsy();
|
|
15
15
|
});
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _getCollectionPageActiveId = _interopRequireDefault(require("./getCollectionPageActiveId"));
|
|
8
8
|
var _duplicateCollectionPageEntry = _interopRequireDefault(require("./duplicateCollectionPageEntry"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
/**
|
|
11
11
|
* Duplicates the currently active entry in a named collection's data.
|
|
12
12
|
* Once duplicated, the new entry is set as the active entry.
|
|
@@ -18,8 +18,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
18
18
|
* @param {object} formData A page's form data containing the collection's data.
|
|
19
19
|
* @return true if the entry ws successfully duplicated, false if not.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const duplicateCollectionPageActiveEntry = (collectionName, formData) => {
|
|
22
|
+
const currentEntryId = (0, _getCollectionPageActiveId.default)(collectionName, formData);
|
|
23
23
|
return (0, _duplicateCollectionPageEntry.default)(collectionName, formData, currentEntryId);
|
|
24
24
|
};
|
|
25
25
|
var _default = exports.default = duplicateCollectionPageActiveEntry;
|
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
var _duplicateCollectionPageActiveEntry = _interopRequireDefault(require("./duplicateCollectionPageActiveEntry"));
|
|
4
4
|
var _getCollectionPageActiveId = _interopRequireDefault(require("./getCollectionPageActiveId"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
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); }
|
|
10
|
-
describe('utils.CollectionPage.duplicateCollectionPageActiveEntry', function () {
|
|
11
|
-
var COLLECTION_NAME = 'testCollection';
|
|
12
|
-
var OBJ = {
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
describe('utils.CollectionPage.duplicateCollectionPageActiveEntry', () => {
|
|
7
|
+
const COLLECTION_NAME = 'testCollection';
|
|
8
|
+
const OBJ = {
|
|
13
9
|
id: '1',
|
|
14
10
|
value: 'value'
|
|
15
11
|
};
|
|
16
|
-
it('should duplicate the active entry if one exists',
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
it('should duplicate the active entry if one exists', () => {
|
|
13
|
+
const FORM_DATA = {
|
|
14
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
15
|
+
[COLLECTION_NAME]: [OBJ]
|
|
16
|
+
};
|
|
19
17
|
(0, _duplicateCollectionPageActiveEntry.default)(COLLECTION_NAME, FORM_DATA);
|
|
20
18
|
expect(FORM_DATA[COLLECTION_NAME].length).toEqual(2);
|
|
21
19
|
expect(FORM_DATA[COLLECTION_NAME][1].value).toEqual(FORM_DATA[COLLECTION_NAME][0].value);
|
|
@@ -24,8 +22,8 @@ describe('utils.CollectionPage.duplicateCollectionPageActiveEntry', function ()
|
|
|
24
22
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")]).toBeTruthy();
|
|
25
23
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")] === '1').toBeFalsy();
|
|
26
24
|
});
|
|
27
|
-
it('should duplicate entries in nested collections correctly',
|
|
28
|
-
|
|
25
|
+
it('should duplicate entries in nested collections correctly', () => {
|
|
26
|
+
const FORM_DATA = {
|
|
29
27
|
parentsActiveId: '2',
|
|
30
28
|
childrenActiveId: '2',
|
|
31
29
|
parents: [{
|
|
@@ -53,17 +51,18 @@ describe('utils.CollectionPage.duplicateCollectionPageActiveEntry', function ()
|
|
|
53
51
|
expect((0, _getCollectionPageActiveId.default)('parents.children', FORM_DATA)).toBeTruthy();
|
|
54
52
|
expect((0, _getCollectionPageActiveId.default)('parents.children', FORM_DATA) === '2').toBeFalsy();
|
|
55
53
|
});
|
|
56
|
-
it('should do nothing if there is no active entry',
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
it('should do nothing if there is no active entry', () => {
|
|
55
|
+
const FORM_DATA = {
|
|
56
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '2',
|
|
57
|
+
[COLLECTION_NAME]: [OBJ]
|
|
58
|
+
};
|
|
59
59
|
(0, _duplicateCollectionPageActiveEntry.default)(COLLECTION_NAME, FORM_DATA);
|
|
60
60
|
expect(FORM_DATA[COLLECTION_NAME].length).toEqual(1);
|
|
61
61
|
expect(FORM_DATA[COLLECTION_NAME][0]).toEqual(OBJ);
|
|
62
62
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")]).toEqual('2'); // Shouldn't have changed.
|
|
63
63
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var FORM_DATA = {};
|
|
64
|
+
it('should do nothing if the collection does not exist', () => {
|
|
65
|
+
const FORM_DATA = {};
|
|
67
66
|
(0, _duplicateCollectionPageActiveEntry.default)(COLLECTION_NAME, FORM_DATA);
|
|
68
67
|
expect(FORM_DATA).toEqual({});
|
|
69
68
|
});
|
|
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _uuid = require("uuid");
|
|
8
8
|
var _getCollectionPageData = _interopRequireDefault(require("./getCollectionPageData"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
-
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 _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
10
|
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; }
|
|
12
11
|
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; }
|
|
13
|
-
function _defineProperty(
|
|
14
|
-
function _toPropertyKey(
|
|
15
|
-
function _toPrimitive(
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
15
|
/**
|
|
17
16
|
* Duplicates an entry with the given ID in the given collection, optionally
|
|
18
17
|
* ignoring named fields or adding extras to the duplicate if they're provided.
|
|
@@ -24,26 +23,20 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
24
23
|
* @param {object} fieldsToAdd An object that will be spread to the new entry.
|
|
25
24
|
* @returns The ID of the duplicate entry.
|
|
26
25
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return entry.id === entryId;
|
|
33
|
-
});
|
|
26
|
+
const duplicateCollectionPageEntry = function (collectionName, formData, entryId) {
|
|
27
|
+
let fieldsToIgnore = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
28
|
+
let fieldsToAdd = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
29
|
+
const collectionData = (0, _getCollectionPageData.default)(collectionName, formData);
|
|
30
|
+
const entryToDuplicate = collectionData === null || collectionData === void 0 ? void 0 : collectionData.find(entry => entry.id === entryId);
|
|
34
31
|
if (!entryToDuplicate) {
|
|
35
32
|
return null;
|
|
36
33
|
}
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
const newEntryId = (0, _uuid.v4)();
|
|
35
|
+
const newEntry = _objectSpread(_objectSpread(_objectSpread({}, entryToDuplicate), fieldsToAdd), {}, {
|
|
39
36
|
id: newEntryId
|
|
40
37
|
});
|
|
41
|
-
fieldsToIgnore.forEach(
|
|
42
|
-
|
|
43
|
-
});
|
|
44
|
-
var insertionIndex = collectionData.findIndex(function (entry) {
|
|
45
|
-
return entry.id === entryId;
|
|
46
|
-
}) + 1;
|
|
38
|
+
fieldsToIgnore.forEach(field => delete newEntry[field]);
|
|
39
|
+
const insertionIndex = collectionData.findIndex(entry => entry.id === entryId) + 1;
|
|
47
40
|
if (insertionIndex === -1) {
|
|
48
41
|
collectionData.push(newEntry);
|
|
49
42
|
} else {
|
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
var _duplicateCollectionPageEntry = _interopRequireDefault(require("./duplicateCollectionPageEntry"));
|
|
4
4
|
var _getCollectionPageActiveId = _interopRequireDefault(require("./getCollectionPageActiveId"));
|
|
5
|
-
function _interopRequireDefault(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
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); }
|
|
10
|
-
describe('utils.CollectionPage.duplicateCollectionPageEntry', function () {
|
|
11
|
-
var COLLECTION_NAME = 'testCollection';
|
|
12
|
-
var OBJ = {
|
|
5
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
describe('utils.CollectionPage.duplicateCollectionPageEntry', () => {
|
|
7
|
+
const COLLECTION_NAME = 'testCollection';
|
|
8
|
+
const OBJ = {
|
|
13
9
|
id: '1',
|
|
14
10
|
value: 'value'
|
|
15
11
|
};
|
|
16
|
-
it('should duplicate the active entry if one exists',
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
it('should duplicate the active entry if one exists', () => {
|
|
13
|
+
const FORM_DATA = {
|
|
14
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
15
|
+
[COLLECTION_NAME]: [OBJ]
|
|
16
|
+
};
|
|
19
17
|
(0, _duplicateCollectionPageEntry.default)(COLLECTION_NAME, FORM_DATA, '1');
|
|
20
18
|
expect(FORM_DATA[COLLECTION_NAME].length).toEqual(2);
|
|
21
19
|
expect(FORM_DATA[COLLECTION_NAME][1].value).toEqual(FORM_DATA[COLLECTION_NAME][0].value);
|
|
@@ -24,18 +22,20 @@ describe('utils.CollectionPage.duplicateCollectionPageEntry', function () {
|
|
|
24
22
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")]).toBeTruthy();
|
|
25
23
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")] === '1').toBeFalsy();
|
|
26
24
|
});
|
|
27
|
-
it('should put the new entry under the original one',
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
25
|
+
it('should put the new entry under the original one', () => {
|
|
26
|
+
const FORM_DATA = {
|
|
27
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
28
|
+
[COLLECTION_NAME]: [{
|
|
29
|
+
id: '1',
|
|
30
|
+
value: 'value1'
|
|
31
|
+
}, {
|
|
32
|
+
id: '2',
|
|
33
|
+
value: 'value2'
|
|
34
|
+
}, {
|
|
35
|
+
id: '3',
|
|
36
|
+
value: 'value1'
|
|
37
|
+
}]
|
|
38
|
+
};
|
|
39
39
|
(0, _duplicateCollectionPageEntry.default)(COLLECTION_NAME, FORM_DATA, '1');
|
|
40
40
|
expect(FORM_DATA[COLLECTION_NAME].length).toEqual(4);
|
|
41
41
|
expect(FORM_DATA[COLLECTION_NAME][1].value).toEqual(FORM_DATA[COLLECTION_NAME][0].value);
|
|
@@ -44,8 +44,8 @@ describe('utils.CollectionPage.duplicateCollectionPageEntry', function () {
|
|
|
44
44
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")]).toBeTruthy();
|
|
45
45
|
expect(FORM_DATA["".concat(COLLECTION_NAME, "ActiveId")] === '1').toBeFalsy();
|
|
46
46
|
});
|
|
47
|
-
it('should duplicate entries in nested collections correctly',
|
|
48
|
-
|
|
47
|
+
it('should duplicate entries in nested collections correctly', () => {
|
|
48
|
+
const FORM_DATA = {
|
|
49
49
|
parentsActiveId: '2',
|
|
50
50
|
childrenActiveId: '2',
|
|
51
51
|
parents: [{
|
|
@@ -73,11 +73,13 @@ describe('utils.CollectionPage.duplicateCollectionPageEntry', function () {
|
|
|
73
73
|
expect((0, _getCollectionPageActiveId.default)('parents.children', FORM_DATA)).toBeTruthy();
|
|
74
74
|
expect((0, _getCollectionPageActiveId.default)('parents.children', FORM_DATA) === '2').toBeFalsy();
|
|
75
75
|
});
|
|
76
|
-
it('should ignore fields in the fieldToIgnore array',
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
it('should ignore fields in the fieldToIgnore array', () => {
|
|
77
|
+
const FORM_DATA = {
|
|
78
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
79
|
+
[COLLECTION_NAME]: [OBJ]
|
|
80
|
+
};
|
|
79
81
|
;
|
|
80
|
-
|
|
82
|
+
const FIELDS_TO_IGNORE = ['value'];
|
|
81
83
|
(0, _duplicateCollectionPageEntry.default)(COLLECTION_NAME, FORM_DATA, '1', FIELDS_TO_IGNORE);
|
|
82
84
|
expect(FORM_DATA[COLLECTION_NAME].length).toEqual(2);
|
|
83
85
|
expect(FORM_DATA[COLLECTION_NAME][0].id).toBeTruthy();
|
|
@@ -85,11 +87,13 @@ describe('utils.CollectionPage.duplicateCollectionPageEntry', function () {
|
|
|
85
87
|
expect(FORM_DATA[COLLECTION_NAME][1].id).toBeTruthy();
|
|
86
88
|
expect(FORM_DATA[COLLECTION_NAME][1].value).toBeUndefined();
|
|
87
89
|
});
|
|
88
|
-
it('should add fields from the fieldsToAdd object',
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
it('should add fields from the fieldsToAdd object', () => {
|
|
91
|
+
const FORM_DATA = {
|
|
92
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
93
|
+
[COLLECTION_NAME]: [OBJ]
|
|
94
|
+
};
|
|
91
95
|
;
|
|
92
|
-
|
|
96
|
+
const FIELDS_TO_ADD = {
|
|
93
97
|
addedKey: 'addedValue'
|
|
94
98
|
};
|
|
95
99
|
(0, _duplicateCollectionPageEntry.default)(COLLECTION_NAME, FORM_DATA, '1', [], FIELDS_TO_ADD);
|
|
@@ -100,15 +104,20 @@ describe('utils.CollectionPage.duplicateCollectionPageEntry', function () {
|
|
|
100
104
|
expect(FORM_DATA[COLLECTION_NAME][1].value).toBeTruthy();
|
|
101
105
|
expect(FORM_DATA[COLLECTION_NAME][1].addedKey).toEqual('addedValue');
|
|
102
106
|
});
|
|
103
|
-
it('should do nothing if an entry with the given id does not exist',
|
|
104
|
-
|
|
105
|
-
|
|
107
|
+
it('should do nothing if an entry with the given id does not exist', () => {
|
|
108
|
+
const FORM_DATA = {
|
|
109
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
110
|
+
[COLLECTION_NAME]: [OBJ]
|
|
111
|
+
};
|
|
106
112
|
;
|
|
107
113
|
(0, _duplicateCollectionPageEntry.default)(COLLECTION_NAME, FORM_DATA, '0');
|
|
108
|
-
expect(FORM_DATA).toEqual(
|
|
114
|
+
expect(FORM_DATA).toEqual({
|
|
115
|
+
["".concat(COLLECTION_NAME, "ActiveId")]: '1',
|
|
116
|
+
[COLLECTION_NAME]: [OBJ]
|
|
117
|
+
});
|
|
109
118
|
});
|
|
110
|
-
it('should do nothing if the collection does not exist',
|
|
111
|
-
|
|
119
|
+
it('should do nothing if the collection does not exist', () => {
|
|
120
|
+
const FORM_DATA = {};
|
|
112
121
|
(0, _duplicateCollectionPageEntry.default)(COLLECTION_NAME, FORM_DATA, '1');
|
|
113
122
|
expect(FORM_DATA).toEqual({});
|
|
114
123
|
});
|
|
@@ -16,8 +16,8 @@ exports.default = void 0;
|
|
|
16
16
|
* @param {object} data Top-level formData.
|
|
17
17
|
* @returns The active ID for the collection, or null if it doesn't exist.
|
|
18
18
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const getCollectionPageActiveId = (collectionName, formData) => {
|
|
20
|
+
const targetName = collectionName.split('.').pop();
|
|
21
21
|
return formData["".concat(targetName, "ActiveId")] || null;
|
|
22
22
|
};
|
|
23
23
|
var _default = exports.default = getCollectionPageActiveId;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getCollectionPageActiveId = _interopRequireDefault(require("./getCollectionPageActiveId"));
|
|
4
|
-
function _interopRequireDefault(
|
|
5
|
-
describe('Utils.CollectionPage.getCollectionPageActiveId',
|
|
6
|
-
it('should return null if no active ID exists for the collection',
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
+
describe('Utils.CollectionPage.getCollectionPageActiveId', () => {
|
|
6
|
+
it('should return null if no active ID exists for the collection', () => {
|
|
7
|
+
const FORM_DATA = {};
|
|
8
|
+
const activeId = (0, _getCollectionPageActiveId.default)('testCollection', FORM_DATA);
|
|
9
9
|
expect(activeId).toEqual(null);
|
|
10
10
|
});
|
|
11
|
-
it('should correctly get an existing active ID for a top-level collection name',
|
|
12
|
-
|
|
11
|
+
it('should correctly get an existing active ID for a top-level collection name', () => {
|
|
12
|
+
const FORM_DATA = {
|
|
13
13
|
testCollectionActiveId: '1'
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const activeId = (0, _getCollectionPageActiveId.default)('testCollection', FORM_DATA);
|
|
16
16
|
expect(activeId).toEqual(FORM_DATA.testCollectionActiveId);
|
|
17
17
|
});
|
|
18
|
-
it('should correctly get an existing active ID for a nested collection name',
|
|
19
|
-
|
|
18
|
+
it('should correctly get an existing active ID for a nested collection name', () => {
|
|
19
|
+
const FORM_DATA = {
|
|
20
20
|
grandchildActiveId: '1'
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
const activeId = (0, _getCollectionPageActiveId.default)('parent.child.grandchild', FORM_DATA);
|
|
23
23
|
expect(activeId).toEqual(FORM_DATA.grandchildActiveId);
|
|
24
24
|
});
|
|
25
25
|
});
|
|
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
10
|
-
var getLastActiveIndexInChain = function getLastActiveIndexInChain(collectionNames, data, formData) {
|
|
7
|
+
const isValidIndex = value => typeof value === 'number' && value >= 0;
|
|
8
|
+
const getLastActiveIndexInChain = (collectionNames, data, formData) => {
|
|
11
9
|
var _data$currentName;
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const currentName = collectionNames[0];
|
|
11
|
+
const activeId = (formData === null || formData === void 0 ? void 0 : formData["".concat(currentName, "ActiveId")]) || null;
|
|
14
12
|
if (!activeId) {
|
|
15
13
|
return null;
|
|
16
14
|
}
|
|
17
|
-
|
|
18
|
-
return item.id === activeId;
|
|
19
|
-
});
|
|
15
|
+
const activeIndex = (_data$currentName = data[currentName]) === null || _data$currentName === void 0 ? void 0 : _data$currentName.findIndex(item => item.id === activeId);
|
|
20
16
|
if (!isValidIndex(activeIndex)) {
|
|
21
17
|
return null;
|
|
22
18
|
}
|
|
@@ -40,8 +36,8 @@ var getLastActiveIndexInChain = function getLastActiveIndexInChain(collectionNam
|
|
|
40
36
|
* @param {object} data Top-level formData.
|
|
41
37
|
* @returns The active index for the collection, or null if it doesn't exist.
|
|
42
38
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
const getCollectionPageActiveIndex = (collectionName, formData) => {
|
|
40
|
+
const nameParts = collectionName.split('.');
|
|
45
41
|
return getLastActiveIndexInChain(nameParts, formData, formData);
|
|
46
42
|
};
|
|
47
43
|
var _default = exports.default = getCollectionPageActiveIndex;
|