@ukhomeoffice/cop-react-form-renderer 7.3.2 → 8.0.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -32
- package/dist/components/CheckYourAnswers/Answer.d.ts +10 -0
- package/dist/components/CheckYourAnswers/CheckYourAnswers.d.ts +35 -0
- package/dist/components/CheckYourAnswers/index.d.ts +2 -0
- package/dist/components/CollectionPage/CollectionPage.d.ts +24 -0
- package/dist/components/CollectionPage/index.d.ts +1 -0
- package/dist/components/CollectionSummary/BannerStrip.d.ts +9 -0
- package/dist/components/CollectionSummary/CollectionSummary.d.ts +53 -0
- package/dist/components/CollectionSummary/Confirmation.d.ts +15 -0
- package/dist/components/CollectionSummary/RenderListView.d.ts +42 -0
- package/dist/components/CollectionSummary/SummaryCard.d.ts +62 -0
- package/dist/components/CollectionSummary/SummaryCardButtons.d.ts +21 -0
- package/dist/components/CollectionSummary/SummaryCardDetails.d.ts +14 -0
- package/dist/components/CollectionSummary/SummaryCardValidationContext.d.ts +9 -0
- package/dist/components/CollectionSummary/index.d.ts +2 -0
- package/dist/components/FormComponent/Collection.d.ts +39 -0
- package/dist/components/FormComponent/Container.d.ts +26 -0
- package/dist/components/FormComponent/FormComponent.d.ts +39 -0
- package/dist/components/FormComponent/helpers/addLabel.d.ts +7 -0
- package/dist/components/FormComponent/helpers/getComponentDisabled.d.ts +2 -0
- package/dist/components/FormComponent/helpers/getComponentError.d.ts +4 -0
- package/dist/components/FormComponent/helpers/getComponentFieldSet.d.ts +2 -0
- package/dist/components/FormComponent/helpers/index.d.ts +5 -0
- package/dist/components/FormComponent/index.d.ts +2 -0
- package/dist/components/FormPage/FormPage.d.ts +36 -0
- package/dist/components/FormPage/index.d.ts +2 -0
- package/dist/components/FormRenderer/FormRenderer.d.ts +39 -0
- package/dist/components/FormRenderer/handlers/cyaAction.d.ts +9 -0
- package/dist/components/FormRenderer/handlers/getPageId.d.ts +8 -0
- package/dist/components/FormRenderer/handlers/index.d.ts +6 -0
- package/dist/components/FormRenderer/handlers/navigate.d.ts +10 -0
- package/dist/components/FormRenderer/handlers/submissionError.d.ts +7 -0
- package/dist/components/FormRenderer/helpers/canActionProceed.d.ts +12 -0
- package/dist/components/FormRenderer/helpers/canCYASubmit.d.ts +10 -0
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.d.ts +2 -0
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.d.ts +51 -0
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.d.ts +179 -0
- package/dist/components/FormRenderer/helpers/getCYA.d.ts +20 -0
- package/dist/components/FormRenderer/helpers/getFormState.d.ts +25 -0
- package/dist/components/FormRenderer/helpers/getNextPageId.d.ts +2 -0
- package/dist/components/FormRenderer/helpers/getPage.d.ts +9 -0
- package/dist/components/FormRenderer/helpers/getRelevantPages.d.ts +2 -0
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.d.ts +2 -0
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.d.ts +10 -0
- package/dist/components/FormRenderer/helpers/index.d.ts +29 -0
- package/dist/components/FormRenderer/index.d.ts +2 -0
- package/dist/components/FormRenderer/onCYAAction.d.ts +6 -0
- package/dist/components/FormRenderer/onPageAction.d.ts +2 -0
- package/dist/components/FormRenderer/onTaskAction.d.ts +2 -0
- package/dist/components/PageActions/ActionButton.d.ts +7 -0
- package/dist/components/PageActions/PageActions.d.ts +7 -0
- package/dist/components/PageActions/index.d.ts +2 -0
- package/dist/components/SummaryList/GroupAction.d.ts +12 -0
- package/dist/components/SummaryList/RowAction.d.ts +12 -0
- package/dist/components/SummaryList/SummaryList.d.ts +28 -0
- package/dist/components/SummaryList/SummaryList.stories.d.ts +10 -0
- package/dist/components/SummaryList/SummaryListHeadingRow.d.ts +7 -0
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.d.ts +16 -0
- package/dist/components/SummaryList/SummaryListRow.d.ts +19 -0
- package/dist/components/SummaryList/SummaryListTitleRow.d.ts +7 -0
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.d.ts +17 -0
- package/dist/components/SummaryList/helpers/getRowActionAttributes.d.ts +17 -0
- package/dist/components/SummaryList/helpers/index.d.ts +2 -0
- package/dist/components/SummaryList/index.d.ts +2 -0
- package/dist/components/TaskList/Task.d.ts +12 -0
- package/dist/components/TaskList/TaskList.d.ts +40 -0
- package/dist/components/TaskList/TaskState.d.ts +6 -0
- package/dist/components/TaskList/index.d.ts +2 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/context/HooksContext/HooksContext.d.ts +23 -0
- package/dist/context/HooksContext/index.d.ts +3 -0
- package/dist/context/ValidationContext/ValidationContext.d.ts +7 -0
- package/dist/context/ValidationContext/index.d.ts +3 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/useAxios.d.ts +2 -0
- package/dist/hooks/useGetRequest.d.ts +12 -0
- package/dist/hooks/useHooks.d.ts +2 -0
- package/dist/hooks/useRefData.d.ts +7 -0
- package/dist/hooks/useValidation.d.ts +2 -0
- package/dist/index.cjs +5 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6124 -81
- package/dist/models/CollectionLabels.d.ts +7 -0
- package/dist/models/ComponentTypes.d.ts +27 -0
- package/dist/models/EventTypes.d.ts +6 -0
- package/dist/models/FormPages.d.ts +6 -0
- package/dist/models/FormTypes.d.ts +10 -0
- package/dist/models/HubFormats.d.ts +5 -0
- package/dist/models/PageAction.d.ts +89 -0
- package/dist/models/TaskStates.d.ts +39 -0
- package/dist/models/index.d.ts +143 -0
- package/dist/setupTests.d.ts +14 -0
- package/dist/utils/CheckYourAnswers/getCYAAction.d.ts +20 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.d.ts +22 -0
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.d.ts +22 -0
- package/dist/utils/CheckYourAnswers/getCYARow.d.ts +26 -0
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.d.ts +17 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.d.ts +2 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.d.ts +23 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.d.ts +2 -0
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.d.ts +11 -0
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.d.ts +3 -0
- package/dist/utils/CheckYourAnswers/index.d.ts +5 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.d.ts +11 -0
- package/dist/utils/CollectionPage/addCollectionPageEntry.d.ts +12 -0
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.d.ts +13 -0
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.d.ts +13 -0
- package/dist/utils/CollectionPage/getCollectionPageActiveId.d.ts +14 -0
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.d.ts +15 -0
- package/dist/utils/CollectionPage/getCollectionPageData.d.ts +15 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.d.ts +2 -0
- package/dist/utils/CollectionPage/getQuickEditPage.d.ts +40 -0
- package/dist/utils/CollectionPage/index.d.ts +13 -0
- package/dist/utils/CollectionPage/mergeCollectionPages.d.ts +13 -0
- package/dist/utils/CollectionPage/removeCollectionPageEntry.d.ts +11 -0
- package/dist/utils/CollectionPage/setCollectionPageData.d.ts +16 -0
- package/dist/utils/Component/addShowWhen.d.ts +13 -0
- package/dist/utils/Component/applyToComponentTree.d.ts +15 -0
- package/dist/utils/Component/cleanAttributes.d.ts +14 -0
- package/dist/utils/Component/elevateNestedComponents.d.ts +28 -0
- package/dist/utils/Component/getDefaultValue.d.ts +2 -0
- package/dist/utils/Component/getDefaultValueFromConfig.d.ts +2 -0
- package/dist/utils/Component/index.d.ts +12 -0
- package/dist/utils/Component/isEditable.d.ts +3 -0
- package/dist/utils/Component/optionIsSelected.d.ts +10 -0
- package/dist/utils/Component/setupContainerComponentsPath.d.ts +2 -0
- package/dist/utils/Component/showComponent.d.ts +2 -0
- package/dist/utils/Condition/index.d.ts +6 -0
- package/dist/utils/Condition/meetsAllConditions.d.ts +8 -0
- package/dist/utils/Condition/meetsCondition.d.ts +14 -0
- package/dist/utils/Condition/meetsOneCondition.d.ts +8 -0
- package/dist/utils/Condition/setupConditions.d.ts +2 -0
- package/dist/utils/Container/getEditableComponents.d.ts +7 -0
- package/dist/utils/Container/index.d.ts +6 -0
- package/dist/utils/Container/setupNesting.d.ts +2 -0
- package/dist/utils/Container/showContainer.d.ts +8 -0
- package/dist/utils/Data/applyFormula.d.ts +2 -0
- package/dist/utils/Data/deleteValues.d.ts +8 -0
- package/dist/utils/Data/getAutocompleteSource.d.ts +2 -0
- package/dist/utils/Data/getDataPath.d.ts +21 -0
- package/dist/utils/Data/getOptions.d.ts +2 -0
- package/dist/utils/Data/getSourceData.d.ts +17 -0
- package/dist/utils/Data/index.d.ts +15 -0
- package/dist/utils/Data/nestInRefdataOptions.d.ts +10 -0
- package/dist/utils/Data/refDataToOptions.d.ts +8 -0
- package/dist/utils/Data/setDataItem.d.ts +2 -0
- package/dist/utils/Data/setupFormData.d.ts +15 -0
- package/dist/utils/Data/setupRefDataUrlForComponent.d.ts +2 -0
- package/dist/utils/FormPage/applyConditionalProperties.d.ts +8 -0
- package/dist/utils/FormPage/getConditionalText.d.ts +23 -0
- package/dist/utils/FormPage/getFormPage.d.ts +9 -0
- package/dist/utils/FormPage/getFormPages.d.ts +9 -0
- package/dist/utils/FormPage/getPageActions.d.ts +13 -0
- package/dist/utils/FormPage/getParagraphFromText.d.ts +11 -0
- package/dist/utils/FormPage/index.d.ts +10 -0
- package/dist/utils/FormPage/showFormPage.d.ts +8 -0
- package/dist/utils/FormPage/showFormPageCYA.d.ts +8 -0
- package/dist/utils/FormPage/useComponent.d.ts +9 -0
- package/dist/utils/Format/formatData.d.ts +8 -0
- package/dist/utils/Format/formatDataForComponent.d.ts +15 -0
- package/dist/utils/Format/formatDataForForm.d.ts +8 -0
- package/dist/utils/Format/formatDataForPage.d.ts +15 -0
- package/dist/utils/Format/index.d.ts +7 -0
- package/dist/utils/Hub/getFormHub.d.ts +15 -0
- package/dist/utils/Hub/index.d.ts +4 -0
- package/dist/utils/Meta/constants.d.ts +2 -0
- package/dist/utils/Meta/documents/getDocuments.d.ts +2 -0
- package/dist/utils/Meta/documents/index.d.ts +6 -0
- package/dist/utils/Meta/documents/setDocumentsForField.d.ts +2 -0
- package/dist/utils/Meta/index.d.ts +9 -0
- package/dist/utils/Operate/checkValueIsTruthy.d.ts +9 -0
- package/dist/utils/Operate/deleteValueInFormData.d.ts +8 -0
- package/dist/utils/Operate/doesContainValue.d.ts +11 -0
- package/dist/utils/Operate/getFirstOf.d.ts +2 -0
- package/dist/utils/Operate/getIndexOfMatchingValueIn.d.ts +11 -0
- package/dist/utils/Operate/getLength.d.ts +11 -0
- package/dist/utils/Operate/index.d.ts +4 -0
- package/dist/utils/Operate/persistValueInFormData.d.ts +9 -0
- package/dist/utils/Operate/runPageOperations.d.ts +19 -0
- package/dist/utils/Operate/setValueInFormData.d.ts +2 -0
- package/dist/utils/Operate/shouldRun.d.ts +9 -0
- package/dist/utils/Validate/additional/conditionallyPermittedChange.d.ts +14 -0
- package/dist/utils/Validate/additional/conditionallyRequired.d.ts +11 -0
- package/dist/utils/Validate/additional/index.d.ts +2 -0
- package/dist/utils/Validate/additional/mustBeAfter.d.ts +14 -0
- package/dist/utils/Validate/additional/mustBeBefore.d.ts +14 -0
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.d.ts +15 -0
- package/dist/utils/Validate/additional/mustBeGreaterThan.d.ts +7 -0
- package/dist/utils/Validate/additional/mustBeInTheFuture.d.ts +8 -0
- package/dist/utils/Validate/additional/mustBeInThePast.d.ts +9 -0
- package/dist/utils/Validate/additional/mustBeLessThan.d.ts +7 -0
- package/dist/utils/Validate/additional/mustBeLongerThan.d.ts +9 -0
- package/dist/utils/Validate/additional/mustBeNumbersOnly.d.ts +9 -0
- package/dist/utils/Validate/additional/mustBeOneOf.d.ts +8 -0
- package/dist/utils/Validate/additional/mustBeShorterThan.d.ts +9 -0
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.d.ts +10 -0
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.d.ts +9 -0
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.d.ts +7 -0
- package/dist/utils/Validate/additional/mustNotContainSql.d.ts +2 -0
- package/dist/utils/Validate/additional/mustSelectOnlyOne.d.ts +8 -0
- package/dist/utils/Validate/additional/utils.d.ts +4 -0
- package/dist/utils/Validate/index.d.ts +42 -0
- package/dist/utils/Validate/validateCollection.d.ts +9 -0
- package/dist/utils/Validate/validateComponent.d.ts +16 -0
- package/dist/utils/Validate/validateContainer.d.ts +12 -0
- package/dist/utils/Validate/validateDate.d.ts +29 -0
- package/dist/utils/Validate/validateEmail.d.ts +13 -0
- package/dist/utils/Validate/validateMultifile.d.ts +3 -0
- package/dist/utils/Validate/validateOnPageLoad.d.ts +1 -0
- package/dist/utils/Validate/validatePage.d.ts +8 -0
- package/dist/utils/Validate/validateRegex.d.ts +13 -0
- package/dist/utils/Validate/validateRequired.d.ts +9 -0
- package/dist/utils/Validate/validateTextArea.d.ts +13 -0
- package/dist/utils/Validate/validateTime.d.ts +20 -0
- package/dist/utils/canOverrideFieldRequired.d.ts +9 -0
- package/dist/utils/index.d.ts +140 -0
- package/package.json +80 -167
- package/LICENCE.md +0 -21
- package/dist/components/CheckYourAnswers/Answer.js +0 -59
- package/dist/components/CheckYourAnswers/Answer.test.js +0 -142
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +0 -252
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +0 -43
- package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +0 -409
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +0 -603
- package/dist/components/CheckYourAnswers/index.js +0 -10
- package/dist/components/CollectionPage/CollectionPage.js +0 -178
- package/dist/components/CollectionPage/CollectionPage.test.js +0 -507
- package/dist/components/CollectionPage/index.js +0 -10
- package/dist/components/CollectionSummary/BannerStrip.js +0 -65
- package/dist/components/CollectionSummary/BannerStrip.scss +0 -60
- package/dist/components/CollectionSummary/BannerStrip.test.js +0 -167
- package/dist/components/CollectionSummary/CollectionSummary.js +0 -362
- package/dist/components/CollectionSummary/CollectionSummary.scss +0 -26
- package/dist/components/CollectionSummary/CollectionSummary.test.js +0 -368
- package/dist/components/CollectionSummary/Confirmation.js +0 -65
- package/dist/components/CollectionSummary/Confirmation.scss +0 -26
- package/dist/components/CollectionSummary/Confirmation.test.js +0 -109
- package/dist/components/CollectionSummary/RenderListView.js +0 -162
- package/dist/components/CollectionSummary/RenderListView.scss +0 -295
- package/dist/components/CollectionSummary/RenderListView.test.js +0 -303
- package/dist/components/CollectionSummary/SummaryCard.js +0 -277
- package/dist/components/CollectionSummary/SummaryCard.scss +0 -114
- package/dist/components/CollectionSummary/SummaryCard.test.js +0 -1442
- package/dist/components/CollectionSummary/SummaryCardButtons.js +0 -76
- package/dist/components/CollectionSummary/SummaryCardButtons.test.js +0 -87
- package/dist/components/CollectionSummary/SummaryCardDetails.js +0 -206
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +0 -216
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +0 -654
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +0 -79
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +0 -104
- package/dist/components/CollectionSummary/index.js +0 -10
- package/dist/components/FormComponent/Collection.js +0 -234
- package/dist/components/FormComponent/Collection.scss +0 -24
- package/dist/components/FormComponent/Collection.test.js +0 -934
- package/dist/components/FormComponent/Container.js +0 -130
- package/dist/components/FormComponent/Container.scss +0 -15
- package/dist/components/FormComponent/Container.test.js +0 -456
- package/dist/components/FormComponent/FormComponent.js +0 -238
- package/dist/components/FormComponent/FormComponent.stories.mdx +0 -186
- package/dist/components/FormComponent/FormComponent.test.js +0 -436
- package/dist/components/FormComponent/helpers/addLabel.js +0 -25
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -15
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -27
- package/dist/components/FormComponent/helpers/getComponentError.js +0 -23
- package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -51
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +0 -11
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +0 -30
- package/dist/components/FormComponent/helpers/index.js +0 -35
- package/dist/components/FormComponent/index.js +0 -10
- package/dist/components/FormPage/FormPage.js +0 -212
- package/dist/components/FormPage/FormPage.scss +0 -7
- package/dist/components/FormPage/FormPage.stories.mdx +0 -157
- package/dist/components/FormPage/FormPage.test.js +0 -454
- package/dist/components/FormPage/index.js +0 -10
- package/dist/components/FormRenderer/FormRenderer.js +0 -426
- package/dist/components/FormRenderer/FormRenderer.scss +0 -5
- package/dist/components/FormRenderer/FormRenderer.stories.mdx +0 -178
- package/dist/components/FormRenderer/FormRenderer.test.js +0 -799
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/cop-reassign-task-to-rcc.json +0 -446
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-containerised.json +0 -120
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested-block.json +0 -113
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-dependent-component-nested.json +0 -106
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-refdata.json +0 -106
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens-target-component-nested.json +0 -99
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-component-show-whens.json +0 -106
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-chained-show-whens-page-hidden.json +0 -113
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-airpax.json +0 -26408
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-cop-mandec.json +0 -9405
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component-dependent-on-external-data.json +0 -158
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-collection-component.json +0 -86
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-collection.json +0 -173
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-referring-to-hidden-collection.json +0 -202
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-show-when-in-component-and-page.json +0 -63
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-with-nested-questions-visible-elsewhere.json +0 -118
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component-with-nested-questions.json +0 -112
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-component.json +0 -58
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-containerised-component.json +0 -97
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-collection-component.json +0 -83
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-embedded-component.json +0 -55
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-entire-collection.json +0 -114
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component-leaf-hidden.json +0 -106
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-multilevel-containerised-component.json +0 -106
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-options.json +0 -99
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-collection.json +0 -128
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-component-used-elsewhere.json +0 -109
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page-same-component-reused.json +0 -62
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-hidden-page.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-nested-answers-hidden-by-option-visible-elsewhere.json +0 -113
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-nested-answers-hidden-by-option.json +0 -112
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-nested-component.json +0 -26003
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-nested-radio-component.json +0 -201
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-page-same-component-reused-one-shown.json +0 -75
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/forms/form-variance-breach.json +0 -4272
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-carrier.json +0 -407
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-change-what-happened-before.json +0 -300
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-airpax-remove-photos-before.json +0 -384
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-business-interests-before.json +0 -140
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-criminality-before.json +0 -186
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-mandec-remove-unspent-convictions-before.json +0 -143
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/cop-variance-breach-with-upload-files.json +0 -1264
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-containerised.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-dependent-component-nested-block.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-dependent-component-nested.json +0 -9
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-refdata.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens-target-component-nested.json +0 -9
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-component-show-whens.json +0 -9
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-chained-show-whens-page-hidden.json +0 -9
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-collection-component-dependent-on-external-data.json +0 -26
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-collection-component.json +0 -15
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-referring-to-collection.json +0 -25
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-referring-to-hidden-collection.json +0 -26
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-show-when-in-component-and-page.json +0 -6
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-with-nested-questions-visible-elsewhere.json +0 -12
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component-with-nested-questions.json +0 -12
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-component.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-containerised-component.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-embedded-collection-component.json +0 -15
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-embedded-component.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-entire-collection.json +0 -20
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-multilevel-containerised-component-leaf-hidden.json +0 -14
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-multilevel-containerised-component.json +0 -14
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-options.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-collection.json +0 -18
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-component-used-elsewhere.json +0 -9
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page-same-component-reused.json +0 -6
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-hidden-page.json +0 -9
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-nested-answers-hidden-by-option-visible-elsewhere.json +0 -12
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-nested-answers-hidden-by-option.json +0 -12
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-nested-component.json +0 -63
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-nested-radio-component.json +0 -45
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/data-page-same-component-reused-one-shown.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/input/reassign-to-rcc.json +0 -72
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-airpax-change-what-happened-after.json +0 -280
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-airpax-remove-photos-after.json +0 -355
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-base-file.json +0 -80
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-business-interests-after.json +0 -122
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-criminality-after.json +0 -86
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/cop-mandec-remove-unspent-convictions-after.json +0 -127
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-containerised-removed.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-dependent-component-nested-block-removed.json +0 -7
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-dependent-component-nested-removed.json +0 -7
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-refdata-removed.json +0 -7
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-removed.json +0 -7
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-component-show-whens-target-component-nested-removed.json +0 -6
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-chained-show-whens-page-hidden-removed.json +0 -6
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-collection-component-dependent-on-external-data-removed.json +0 -23
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-collection-component-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-referring-to-collection-removed.json +0 -21
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-referring-to-hidden-collection-removed.json +0 -6
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-show-when-in-component-and-page-removed.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-with-nested-questions-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-component-with-nested-questions-visible-elsewhere-removed.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-containerised-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-embedded-collection-component-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-embedded-component-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-multilevel-containerised-component-leaf-hidden-removed.json +0 -13
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-multilevel-containerised-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-options-removed.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-collection-removed.json +0 -15
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-component-used-elsewhere-removed.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-hidden-page-same-component-reused-removed.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-nested-answers-hidden-by-option-removed.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-nested-answers-hidden-by-option-visible-elsewhere-removed.json +0 -12
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-nested-component.json +0 -63
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-nested-radio-component-removed.json +0 -45
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/output/data-page-same-component-reused-one-shown-removed.json +0 -7
- package/dist/components/FormRenderer/handlers/cyaAction.js +0 -23
- package/dist/components/FormRenderer/handlers/getPageId.js +0 -15
- package/dist/components/FormRenderer/handlers/getPageId.test.js +0 -35
- package/dist/components/FormRenderer/handlers/handlers.test.js +0 -81
- package/dist/components/FormRenderer/handlers/index.js +0 -17
- package/dist/components/FormRenderer/handlers/navigate.js +0 -25
- package/dist/components/FormRenderer/handlers/submissionError.js +0 -18
- package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -27
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +0 -84
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -17
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +0 -75
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +0 -63
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +0 -191
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -338
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -434
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.js +0 -399
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutesUtils.test.js +0 -559
- package/dist/components/FormRenderer/helpers/getCYA.js +0 -42
- package/dist/components/FormRenderer/helpers/getCYA.test.js +0 -46
- package/dist/components/FormRenderer/helpers/getFormState.js +0 -25
- package/dist/components/FormRenderer/helpers/getFormState.test.js +0 -60
- package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -76
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +0 -292
- package/dist/components/FormRenderer/helpers/getPage.js +0 -27
- package/dist/components/FormRenderer/helpers/getPage.test.js +0 -45
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -27
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +0 -70
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -65
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +0 -309
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +0 -201
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +0 -473
- package/dist/components/FormRenderer/helpers/index.js +0 -33
- package/dist/components/FormRenderer/index.js +0 -10
- package/dist/components/FormRenderer/onCYAAction.js +0 -150
- package/dist/components/FormRenderer/onCYAAction.test.js +0 -741
- package/dist/components/FormRenderer/onPageAction.js +0 -227
- package/dist/components/FormRenderer/onPageAction.test.js +0 -960
- package/dist/components/FormRenderer/onTaskAction.js +0 -47
- package/dist/components/FormRenderer/onTaskAction.test.js +0 -247
- package/dist/components/PageActions/ActionButton.js +0 -48
- package/dist/components/PageActions/ActionButton.test.js +0 -73
- package/dist/components/PageActions/PageActions.js +0 -37
- package/dist/components/PageActions/PageActions.stories.mdx +0 -74
- package/dist/components/PageActions/PageActions.test.js +0 -106
- package/dist/components/PageActions/index.js +0 -10
- package/dist/components/SummaryList/GroupAction.js +0 -50
- package/dist/components/SummaryList/GroupAction.test.js +0 -86
- package/dist/components/SummaryList/RowAction.js +0 -48
- package/dist/components/SummaryList/RowAction.test.js +0 -86
- package/dist/components/SummaryList/SummaryList.js +0 -128
- package/dist/components/SummaryList/SummaryList.scss +0 -79
- package/dist/components/SummaryList/SummaryList.stories.mdx +0 -84
- package/dist/components/SummaryList/SummaryList.test.js +0 -504
- package/dist/components/SummaryList/SummaryListHeadingRow.js +0 -39
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +0 -65
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +0 -38
- package/dist/components/SummaryList/SummaryListRow.js +0 -58
- package/dist/components/SummaryList/SummaryListTitleRow.js +0 -32
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -29
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -72
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -29
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -72
- package/dist/components/SummaryList/helpers/index.js +0 -14
- package/dist/components/SummaryList/index.js +0 -10
- package/dist/components/TaskList/Task.js +0 -62
- package/dist/components/TaskList/Task.test.js +0 -176
- package/dist/components/TaskList/TaskList.js +0 -175
- package/dist/components/TaskList/TaskList.scss +0 -123
- package/dist/components/TaskList/TaskList.stories.mdx +0 -164
- package/dist/components/TaskList/TaskList.test.js +0 -535
- package/dist/components/TaskList/TaskState.js +0 -37
- package/dist/components/TaskList/TaskState.test.js +0 -95
- package/dist/components/TaskList/index.js +0 -10
- package/dist/components/index.js +0 -56
- package/dist/context/HooksContext/HooksContext.js +0 -122
- package/dist/context/HooksContext/HooksContext.test.js +0 -45
- package/dist/context/HooksContext/index.js +0 -16
- package/dist/context/ValidationContext/ValidationContext.js +0 -98
- package/dist/context/ValidationContext/ValidationContext.test.js +0 -107
- package/dist/context/ValidationContext/index.js +0 -16
- package/dist/context/index.js +0 -21
- package/dist/hooks/index.js +0 -55
- package/dist/hooks/useAxios.js +0 -36
- package/dist/hooks/useGetRequest.js +0 -89
- package/dist/hooks/useHooks.js +0 -15
- package/dist/hooks/useRefData.js +0 -62
- package/dist/hooks/useValidation.js +0 -15
- package/dist/json/actions.json +0 -17
- package/dist/json/actionsNoSave.json +0 -17
- package/dist/json/addressDetails.json +0 -149
- package/dist/json/areYouACivilServant.json +0 -7
- package/dist/json/firstForm.json +0 -94
- package/dist/json/grade.json +0 -108
- package/dist/json/group.data.json +0 -21
- package/dist/json/group.json +0 -402
- package/dist/json/groupOfRow.json +0 -137
- package/dist/json/groupOfRowData.json +0 -15
- package/dist/json/port.json +0 -346
- package/dist/json/saveAndContinue.json +0 -98
- package/dist/json/sublocation.json +0 -859
- package/dist/json/taskList.json +0 -265
- package/dist/json/team.json +0 -17351
- package/dist/json/terminal.json +0 -81
- package/dist/json/userProfile.data.json +0 -21
- package/dist/json/userProfile.json +0 -276
- package/dist/models/CollectionLabels.js +0 -15
- package/dist/models/ComponentTypes.js +0 -58
- package/dist/models/EventTypes.js +0 -16
- package/dist/models/FormPages.js +0 -16
- package/dist/models/FormTypes.js +0 -24
- package/dist/models/HubFormats.js +0 -14
- package/dist/models/PageAction.js +0 -65
- package/dist/models/TaskStates.js +0 -46
- package/dist/models/index.js +0 -77
- package/dist/setupTests.js +0 -54
- package/dist/utils/CheckYourAnswers/getCYAAction.js +0 -44
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +0 -120
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +0 -57
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +0 -162
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +0 -66
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +0 -198
- package/dist/utils/CheckYourAnswers/getCYARow.js +0 -58
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +0 -373
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +0 -69
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +0 -70
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +0 -71
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +0 -285
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +0 -237
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +0 -844
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +0 -45
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +0 -535
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +0 -72
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +0 -343
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +0 -42
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +0 -56
- package/dist/utils/CheckYourAnswers/index.js +0 -15
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +0 -53
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +0 -149
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +0 -23
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +0 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +0 -26
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +0 -70
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +0 -51
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +0 -125
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +0 -24
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +0 -26
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -44
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +0 -88
- package/dist/utils/CollectionPage/getCollectionPageData.js +0 -53
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +0 -103
- package/dist/utils/CollectionPage/getErrorsForCollection.js +0 -55
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +0 -154
- package/dist/utils/CollectionPage/getQuickEditPage.js +0 -122
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +0 -143
- package/dist/utils/CollectionPage/index.js +0 -33
- package/dist/utils/CollectionPage/mergeCollectionPages.js +0 -128
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +0 -198
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +0 -36
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +0 -62
- package/dist/utils/CollectionPage/setCollectionPageData.js +0 -60
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +0 -182
- package/dist/utils/Component/addShowWhen.js +0 -43
- package/dist/utils/Component/addShowWhen.test.js +0 -217
- package/dist/utils/Component/applyToComponentTree.js +0 -68
- package/dist/utils/Component/applyToComponentTree.test.js +0 -125
- package/dist/utils/Component/cleanAttributes.js +0 -42
- package/dist/utils/Component/cleanAttributes.test.js +0 -67
- package/dist/utils/Component/elevateNestedComponents.js +0 -58
- package/dist/utils/Component/elevateNestedComponents.test.js +0 -305
- package/dist/utils/Component/getComponent.js +0 -305
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +0 -73
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +0 -251
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +0 -156
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +0 -104
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +0 -56
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +0 -60
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +0 -60
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +0 -31
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +0 -42
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +0 -29
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +0 -47
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +0 -66
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +0 -211
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +0 -46
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +0 -60
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +0 -221
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +0 -62
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +0 -60
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +0 -104
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +0 -80
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +0 -14
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +0 -29
- package/dist/utils/Component/getDefaultValue.js +0 -22
- package/dist/utils/Component/getDefaultValue.test.js +0 -62
- package/dist/utils/Component/getDefaultValueFromConfig.js +0 -106
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +0 -141
- package/dist/utils/Component/index.js +0 -29
- package/dist/utils/Component/isEditable.js +0 -13
- package/dist/utils/Component/isEditable.test.js +0 -42
- package/dist/utils/Component/optionIsSelected.js +0 -25
- package/dist/utils/Component/optionIsSelected.test.js +0 -69
- package/dist/utils/Component/setupContainerComponentsPath.js +0 -35
- package/dist/utils/Component/setupContainerComponentsPath.test.js +0 -79
- package/dist/utils/Component/showComponent.js +0 -25
- package/dist/utils/Component/showComponent.test.js +0 -157
- package/dist/utils/Component/wrapInFormGroup.js +0 -26
- package/dist/utils/Condition/index.js +0 -17
- package/dist/utils/Condition/meetsAllConditions.js +0 -44
- package/dist/utils/Condition/meetsAllConditions.test.js +0 -109
- package/dist/utils/Condition/meetsCondition.js +0 -165
- package/dist/utils/Condition/meetsCondition.test.js +0 -899
- package/dist/utils/Condition/meetsOneCondition.js +0 -32
- package/dist/utils/Condition/meetsOneCondition.test.js +0 -101
- package/dist/utils/Condition/setupConditions.js +0 -36
- package/dist/utils/Condition/setupConditions.test.js +0 -34
- package/dist/utils/Container/getEditableComponents.js +0 -29
- package/dist/utils/Container/getEditableComponents.test.js +0 -134
- package/dist/utils/Container/index.js +0 -17
- package/dist/utils/Container/setupNesting.js +0 -53
- package/dist/utils/Container/setupNesting.test.js +0 -143
- package/dist/utils/Container/showContainer.js +0 -52
- package/dist/utils/Container/showContainer.test.js +0 -179
- package/dist/utils/Data/applyFormula.js +0 -90
- package/dist/utils/Data/applyFormula.test.js +0 -264
- package/dist/utils/Data/deleteValues.js +0 -19
- package/dist/utils/Data/deleteValues.test.js +0 -58
- package/dist/utils/Data/getAutocompleteSource.js +0 -87
- package/dist/utils/Data/getAutocompleteSource.test.js +0 -335
- package/dist/utils/Data/getDataPath.js +0 -66
- package/dist/utils/Data/getDataPath.test.js +0 -49
- package/dist/utils/Data/getOptions.js +0 -86
- package/dist/utils/Data/getOptions.test.js +0 -279
- package/dist/utils/Data/getSourceData.js +0 -44
- package/dist/utils/Data/getSourceData.test.js +0 -158
- package/dist/utils/Data/index.js +0 -35
- package/dist/utils/Data/nestInRefdataOptions.js +0 -47
- package/dist/utils/Data/nestInRefdataOptions.test.js +0 -237
- package/dist/utils/Data/refDataToOptions.js +0 -44
- package/dist/utils/Data/refDataToOptions.test.js +0 -197
- package/dist/utils/Data/setDataItem.js +0 -26
- package/dist/utils/Data/setDataItem.test.js +0 -136
- package/dist/utils/Data/setupFormData.js +0 -49
- package/dist/utils/Data/setupFormData.test.js +0 -215
- package/dist/utils/Data/setupRefDataUrlForComponent.js +0 -44
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +0 -150
- package/dist/utils/FormPage/applyConditionalProperties.js +0 -34
- package/dist/utils/FormPage/applyConditionalProperties.test.js +0 -61
- package/dist/utils/FormPage/getConditionalText.js +0 -55
- package/dist/utils/FormPage/getConditionalText.test.js +0 -163
- package/dist/utils/FormPage/getFormPage.js +0 -54
- package/dist/utils/FormPage/getFormPage.test.js +0 -206
- package/dist/utils/FormPage/getFormPages.js +0 -30
- package/dist/utils/FormPage/getFormPages.test.js +0 -97
- package/dist/utils/FormPage/getPageActions.js +0 -58
- package/dist/utils/FormPage/getPageActions.test.js +0 -115
- package/dist/utils/FormPage/getParagraphFromText.js +0 -21
- package/dist/utils/FormPage/getParagraphFromText.test.js +0 -28
- package/dist/utils/FormPage/index.js +0 -24
- package/dist/utils/FormPage/showFormPage.js +0 -52
- package/dist/utils/FormPage/showFormPage.test.js +0 -181
- package/dist/utils/FormPage/showFormPageCYA.js +0 -23
- package/dist/utils/FormPage/showFormPageCYA.test.js +0 -29
- package/dist/utils/FormPage/useComponent.js +0 -83
- package/dist/utils/FormPage/useComponent.test.js +0 -216
- package/dist/utils/Format/formatData.js +0 -27
- package/dist/utils/Format/formatData.test.js +0 -46
- package/dist/utils/Format/formatDataForComponent.js +0 -35
- package/dist/utils/Format/formatDataForComponent.test.js +0 -114
- package/dist/utils/Format/formatDataForForm.js +0 -27
- package/dist/utils/Format/formatDataForForm.test.js +0 -79
- package/dist/utils/Format/formatDataForPage.js +0 -31
- package/dist/utils/Format/formatDataForPage.test.js +0 -94
- package/dist/utils/Format/index.js +0 -21
- package/dist/utils/Hub/getFormHub.js +0 -40
- package/dist/utils/Hub/getFormHub.test.js +0 -105
- package/dist/utils/Hub/index.js +0 -15
- package/dist/utils/Meta/constants.js +0 -9
- package/dist/utils/Meta/documents/getDocuments.js +0 -15
- package/dist/utils/Meta/documents/getDocuments.test.js +0 -46
- package/dist/utils/Meta/documents/index.js +0 -19
- package/dist/utils/Meta/documents/setDocumentsForField.js +0 -30
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +0 -97
- package/dist/utils/Meta/index.js +0 -17
- package/dist/utils/Operate/checkValueIsTruthy.js +0 -29
- package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -43
- package/dist/utils/Operate/deleteValueInFormData.js +0 -27
- package/dist/utils/Operate/deleteValueInFormData.test.js +0 -61
- package/dist/utils/Operate/doesContainValue.js +0 -35
- package/dist/utils/Operate/doesContainValue.test.js +0 -76
- package/dist/utils/Operate/getFirstOf.js +0 -31
- package/dist/utils/Operate/getFirstOf.test.js +0 -87
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +0 -68
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +0 -158
- package/dist/utils/Operate/getLength.js +0 -51
- package/dist/utils/Operate/getLength.test.js +0 -90
- package/dist/utils/Operate/index.js +0 -13
- package/dist/utils/Operate/persistValueInFormData.js +0 -40
- package/dist/utils/Operate/persistValueInFormData.test.js +0 -118
- package/dist/utils/Operate/runPageOperations.js +0 -75
- package/dist/utils/Operate/runPageOperations.test.js +0 -105
- package/dist/utils/Operate/setValueInFormData.js +0 -22
- package/dist/utils/Operate/setValueInFormData.test.js +0 -45
- package/dist/utils/Operate/shouldRun.js +0 -57
- package/dist/utils/Operate/shouldRun.test.js +0 -65
- package/dist/utils/Validate/additional/conditionallyPermittedChange.js +0 -26
- package/dist/utils/Validate/additional/conditionallyPermittedChange.test.js +0 -34
- package/dist/utils/Validate/additional/conditionallyRequired.js +0 -24
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +0 -74
- package/dist/utils/Validate/additional/index.js +0 -74
- package/dist/utils/Validate/additional/index.test.js +0 -130
- package/dist/utils/Validate/additional/mustBeAfter.js +0 -34
- package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -109
- package/dist/utils/Validate/additional/mustBeBefore.js +0 -34
- package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -77
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +0 -57
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +0 -128
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +0 -22
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +0 -57
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +0 -33
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -32
- package/dist/utils/Validate/additional/mustBeInThePast.js +0 -36
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -32
- package/dist/utils/Validate/additional/mustBeLessThan.js +0 -22
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -53
- package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -23
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -49
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -24
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -45
- package/dist/utils/Validate/additional/mustBeOneOf.js +0 -22
- package/dist/utils/Validate/additional/mustBeOneOf.test.js +0 -37
- package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -23
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -49
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +0 -40
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +0 -163
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -26
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +0 -37
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +0 -19
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +0 -37
- package/dist/utils/Validate/additional/mustNotContainSql.js +0 -19
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +0 -33
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +0 -29
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +0 -55
- package/dist/utils/Validate/additional/utils.js +0 -35
- package/dist/utils/Validate/index.js +0 -33
- package/dist/utils/Validate/validateCollection.js +0 -50
- package/dist/utils/Validate/validateCollection.test.js +0 -134
- package/dist/utils/Validate/validateComponent.js +0 -126
- package/dist/utils/Validate/validateComponent.test.js +0 -435
- package/dist/utils/Validate/validateContainer.js +0 -52
- package/dist/utils/Validate/validateContainer.test.js +0 -115
- package/dist/utils/Validate/validateDate.js +0 -112
- package/dist/utils/Validate/validateDate.test.js +0 -133
- package/dist/utils/Validate/validateEmail.js +0 -45
- package/dist/utils/Validate/validateEmail.test.js +0 -78
- package/dist/utils/Validate/validateMultifile.js +0 -29
- package/dist/utils/Validate/validateMultifile.test.js +0 -46
- package/dist/utils/Validate/validateOnPageLoad.js +0 -24
- package/dist/utils/Validate/validateOnPageLoad.test.js +0 -89
- package/dist/utils/Validate/validatePage.js +0 -56
- package/dist/utils/Validate/validatePage.test.js +0 -795
- package/dist/utils/Validate/validateRegex.js +0 -41
- package/dist/utils/Validate/validateRegex.test.js +0 -43
- package/dist/utils/Validate/validateRequired.js +0 -37
- package/dist/utils/Validate/validateRequired.test.js +0 -64
- package/dist/utils/Validate/validateTextArea.js +0 -36
- package/dist/utils/Validate/validateTextArea.test.js +0 -71
- package/dist/utils/Validate/validateTime.js +0 -76
- package/dist/utils/Validate/validateTime.test.js +0 -116
- package/dist/utils/canOverrideFieldRequired.js +0 -23
- package/dist/utils/index.js +0 -42
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _getAutocompleteSource = _interopRequireDefault(require("./getAutocompleteSource"));
|
|
4
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
-
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; }
|
|
6
|
-
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; }
|
|
7
|
-
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; }
|
|
8
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
-
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); }
|
|
10
|
-
describe('utils', () => {
|
|
11
|
-
describe('Data', () => {
|
|
12
|
-
const gbCurrency = {
|
|
13
|
-
currencyName: 'Great British Pounds',
|
|
14
|
-
currencyCode: 'GBP',
|
|
15
|
-
hint: 'hint',
|
|
16
|
-
value: 'GBP',
|
|
17
|
-
label: 'GBP',
|
|
18
|
-
slangTerm: 'quid'
|
|
19
|
-
};
|
|
20
|
-
const usCurrency = {
|
|
21
|
-
currencyName: 'United States Dollars',
|
|
22
|
-
currencyCode: 'USD',
|
|
23
|
-
hint: 'hint',
|
|
24
|
-
value: 'USD',
|
|
25
|
-
label: 'USD',
|
|
26
|
-
slangTerm: 'bucks',
|
|
27
|
-
synonyms: ['greenbacks', 11]
|
|
28
|
-
};
|
|
29
|
-
const options = {
|
|
30
|
-
alpha: {
|
|
31
|
-
value: 'a',
|
|
32
|
-
label: 'Alpha',
|
|
33
|
-
hint: 'hint'
|
|
34
|
-
},
|
|
35
|
-
bravo: {
|
|
36
|
-
value: 'b',
|
|
37
|
-
label: 'Bravo',
|
|
38
|
-
hint: 'hint'
|
|
39
|
-
},
|
|
40
|
-
alIncluded: {
|
|
41
|
-
value: 'c',
|
|
42
|
-
label: 'Call me alan',
|
|
43
|
-
hint: 'hint'
|
|
44
|
-
},
|
|
45
|
-
alStart: {
|
|
46
|
-
value: 'd',
|
|
47
|
-
label: 'Word Alphabet',
|
|
48
|
-
hint: 'hint'
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
const testCurrencies = [gbCurrency, usCurrency];
|
|
52
|
-
describe('getAutocompleteSource', () => {
|
|
53
|
-
it('should handle a null config', () => {
|
|
54
|
-
const SOURCE = (0, _getAutocompleteSource.default)(null);
|
|
55
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
56
|
-
SOURCE('query', results => {
|
|
57
|
-
expect(Array.isArray(results)).toBeTruthy();
|
|
58
|
-
expect(results.length).toEqual(0);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('without custom item labels', () => {
|
|
62
|
-
it('should get any specified options from the config', () => {
|
|
63
|
-
const CONFIG = {
|
|
64
|
-
data: {
|
|
65
|
-
options: [options.alpha, options.bravo]
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
69
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
70
|
-
SOURCE('a', results => {
|
|
71
|
-
expect(results.length).toEqual(2);
|
|
72
|
-
expect(results).toEqual([options.alpha, options.bravo]);
|
|
73
|
-
});
|
|
74
|
-
SOURCE('al', results => {
|
|
75
|
-
expect(results.length).toEqual(1);
|
|
76
|
-
expect(results).toEqual([{
|
|
77
|
-
value: 'a',
|
|
78
|
-
label: 'Alpha',
|
|
79
|
-
hint: 'hint'
|
|
80
|
-
}]);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
it('should only return first 6000 results that have some type of match', () => {
|
|
84
|
-
const moreThanMaxNumberOfOptions = Array(6001).fill(options.alpha);
|
|
85
|
-
const config = {
|
|
86
|
-
data: {
|
|
87
|
-
options: moreThanMaxNumberOfOptions
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
(0, _getAutocompleteSource.default)(config)(options.alpha.label, results => expect(results.length).toEqual(6000));
|
|
91
|
-
});
|
|
92
|
-
it('should handle an empty query', () => {
|
|
93
|
-
const CONFIG = {
|
|
94
|
-
data: {
|
|
95
|
-
options: [options.alpha, options.bravo]
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
99
|
-
SOURCE('', results => {
|
|
100
|
-
expect(results.length).toEqual(2);
|
|
101
|
-
expect(results).toEqual([options.alpha, options.bravo]);
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
it('should handle an undefined query', () => {
|
|
105
|
-
const CONFIG = {
|
|
106
|
-
data: {
|
|
107
|
-
options: [options.alpha, options.bravo]
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
111
|
-
SOURCE(undefined, results => {
|
|
112
|
-
expect(results.length).toEqual(2);
|
|
113
|
-
expect(results).toEqual([options.alpha, options.bravo]);
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
it('should handle a null query', () => {
|
|
117
|
-
const CONFIG = {
|
|
118
|
-
data: {
|
|
119
|
-
options: [options.alpha, options.bravo]
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
123
|
-
SOURCE(null, results => {
|
|
124
|
-
expect(results.length).toEqual(2);
|
|
125
|
-
expect(results).toEqual([options.alpha, options.bravo]);
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
it('should handle a non string query', () => {
|
|
129
|
-
const CONFIG = {
|
|
130
|
-
data: {
|
|
131
|
-
options: [options.alpha, options.bravo]
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
135
|
-
SOURCE(1, results => {
|
|
136
|
-
expect(results.length).toEqual(2);
|
|
137
|
-
expect(results).toEqual([options.alpha, options.bravo]);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
it('should handle a missing label on an option', () => {
|
|
141
|
-
const CONFIG = {
|
|
142
|
-
data: {
|
|
143
|
-
options: [options.alpha, {
|
|
144
|
-
value: 'b'
|
|
145
|
-
}]
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
149
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
150
|
-
SOURCE('a', results => {
|
|
151
|
-
expect(results.length).toEqual(1);
|
|
152
|
-
expect(results).toEqual([options.alpha]);
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
it('should return matches in the right order', () => {
|
|
156
|
-
const CONFIG = {
|
|
157
|
-
data: {
|
|
158
|
-
options: [options.alIncluded, options.alStart, options.bravo, options.alpha]
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
162
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
163
|
-
SOURCE('al', results => {
|
|
164
|
-
expect(results.length).toEqual(3);
|
|
165
|
-
expect(results).toEqual([options.alpha, options.alStart, options.alIncluded]);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
it('should match options using a defined synonym', () => {
|
|
169
|
-
const CONFIG = {
|
|
170
|
-
data: {
|
|
171
|
-
options: [_objectSpread(_objectSpread({}, options.alpha), {}, {
|
|
172
|
-
synonyms: ['first']
|
|
173
|
-
}), {
|
|
174
|
-
value: 'b'
|
|
175
|
-
}]
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
179
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
180
|
-
SOURCE('first', results => {
|
|
181
|
-
expect(results.length).toEqual(1);
|
|
182
|
-
expect(results).toEqual([_objectSpread(_objectSpread({}, options.alpha), {}, {
|
|
183
|
-
synonyms: ['first']
|
|
184
|
-
})]);
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
describe('with custom item labels', () => {
|
|
189
|
-
it('should get any specified options from the config', () => {
|
|
190
|
-
const CONFIG = {
|
|
191
|
-
item: {
|
|
192
|
-
value: 'currencyCode',
|
|
193
|
-
label: 'currencyCode',
|
|
194
|
-
format: "${currencyName} (${currencyCode})"
|
|
195
|
-
},
|
|
196
|
-
data: {
|
|
197
|
-
options: testCurrencies
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
201
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
202
|
-
SOURCE('GB', results => {
|
|
203
|
-
expect(results.length).toEqual(1);
|
|
204
|
-
expect(results).toEqual([gbCurrency]);
|
|
205
|
-
});
|
|
206
|
-
SOURCE(' (', results => {
|
|
207
|
-
expect(results.length).toEqual(2);
|
|
208
|
-
expect(results).toEqual(testCurrencies);
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
it('should handle an empty query', () => {
|
|
212
|
-
const CONFIG = {
|
|
213
|
-
item: {
|
|
214
|
-
value: 'currencyCode',
|
|
215
|
-
label: 'currencyCode',
|
|
216
|
-
format: "${currencyName} (${currencyCode})"
|
|
217
|
-
},
|
|
218
|
-
data: {
|
|
219
|
-
options: testCurrencies
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
223
|
-
SOURCE('', results => {
|
|
224
|
-
expect(results.length).toEqual(2);
|
|
225
|
-
expect(results).toEqual(testCurrencies);
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
it('should handle an undefined query', () => {
|
|
229
|
-
const CONFIG = {
|
|
230
|
-
item: {
|
|
231
|
-
value: 'currencyCode',
|
|
232
|
-
label: 'currencyCode',
|
|
233
|
-
format: "${currencyName} (${currencyCode})"
|
|
234
|
-
},
|
|
235
|
-
data: {
|
|
236
|
-
options: testCurrencies
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
240
|
-
SOURCE(undefined, results => {
|
|
241
|
-
expect(results.length).toEqual(2);
|
|
242
|
-
expect(results).toEqual(testCurrencies);
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
it('should handle a null query', () => {
|
|
246
|
-
const CONFIG = {
|
|
247
|
-
item: {
|
|
248
|
-
value: 'currencyCode',
|
|
249
|
-
label: 'currencyCode',
|
|
250
|
-
format: "${currencyName} (${currencyCode})"
|
|
251
|
-
},
|
|
252
|
-
data: {
|
|
253
|
-
options: testCurrencies
|
|
254
|
-
}
|
|
255
|
-
};
|
|
256
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
257
|
-
SOURCE(null, results => {
|
|
258
|
-
expect(results.length).toEqual(2);
|
|
259
|
-
expect(results).toEqual(testCurrencies);
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
it('should handle a missing label on an option', () => {
|
|
263
|
-
const CONFIG = {
|
|
264
|
-
item: {
|
|
265
|
-
value: 'currencyCode',
|
|
266
|
-
label: 'currencyCode',
|
|
267
|
-
format: "${currencyName} (${currencyCode})"
|
|
268
|
-
},
|
|
269
|
-
data: {
|
|
270
|
-
options: [gbCurrency, {
|
|
271
|
-
currencyName: 'United States Dollars',
|
|
272
|
-
currencyCode: 'USD',
|
|
273
|
-
hint: 'hint',
|
|
274
|
-
value: 'USD'
|
|
275
|
-
}]
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
279
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
280
|
-
SOURCE('a', results => {
|
|
281
|
-
// We expect 2 results here instead of 1 because defining a custom
|
|
282
|
-
// format for item labels means the label is constructed upon processing
|
|
283
|
-
// a query - we're not relying on the 'label' field of the option.
|
|
284
|
-
expect(results.length).toEqual(2);
|
|
285
|
-
expect(results).toEqual([gbCurrency, {
|
|
286
|
-
currencyName: 'United States Dollars',
|
|
287
|
-
currencyCode: 'USD',
|
|
288
|
-
hint: 'hint',
|
|
289
|
-
value: 'USD',
|
|
290
|
-
label: ''
|
|
291
|
-
}]);
|
|
292
|
-
});
|
|
293
|
-
});
|
|
294
|
-
it('should match options using a defined synonym', () => {
|
|
295
|
-
const CONFIG = {
|
|
296
|
-
item: {
|
|
297
|
-
value: 'currencyCode',
|
|
298
|
-
label: 'currencyCode',
|
|
299
|
-
format: "${currencyName} (${currencyCode})"
|
|
300
|
-
},
|
|
301
|
-
data: {
|
|
302
|
-
options: testCurrencies
|
|
303
|
-
}
|
|
304
|
-
};
|
|
305
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
306
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
307
|
-
SOURCE('greenbacks', results => {
|
|
308
|
-
expect(results.length).toEqual(1);
|
|
309
|
-
expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
|
|
310
|
-
});
|
|
311
|
-
});
|
|
312
|
-
it('should match options using defined extra searchable fields', () => {
|
|
313
|
-
const CONFIG = {
|
|
314
|
-
item: {
|
|
315
|
-
value: 'currencyCode',
|
|
316
|
-
label: 'currencyCode',
|
|
317
|
-
format: "${currencyName} (${currencyCode})",
|
|
318
|
-
extraFieldsToSearch: ['slangTerm', null]
|
|
319
|
-
},
|
|
320
|
-
data: {
|
|
321
|
-
options: testCurrencies
|
|
322
|
-
}
|
|
323
|
-
};
|
|
324
|
-
const SOURCE = (0, _getAutocompleteSource.default)(CONFIG);
|
|
325
|
-
expect(typeof SOURCE === 'function').toBeTruthy();
|
|
326
|
-
SOURCE('buc', results => {
|
|
327
|
-
expect(results.length).toEqual(1);
|
|
328
|
-
expect(results).toEqual(testCurrencies.filter(c => c.currencyCode === 'USD'));
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
});
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
});
|
|
335
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0QXV0b2NvbXBsZXRlU291cmNlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVzY3JpYmUiLCJnYkN1cnJlbmN5IiwiY3VycmVuY3lOYW1lIiwiY3VycmVuY3lDb2RlIiwiaGludCIsImxhYmVsIiwic2xhbmdUZXJtIiwidXNDdXJyZW5jeSIsInN5bm9ueW1zIiwib3B0aW9ucyIsImFscGhhIiwiYnJhdm8iLCJhbEluY2x1ZGVkIiwiYWxTdGFydCIsInRlc3RDdXJyZW5jaWVzIiwiaXQiLCJTT1VSQ0UiLCJnZXRBdXRvY29tcGxldGVTb3VyY2UiLCJleHBlY3QiLCJ0b0JlVHJ1dGh5IiwicmVzdWx0cyIsIkFycmF5IiwiaXNBcnJheSIsInRvRXF1YWwiLCJDT05GSUciLCJkYXRhIiwibW9yZVRoYW5NYXhOdW1iZXJPZk9wdGlvbnMiLCJmaWxsIiwiY29uZmlnIiwidW5kZWZpbmVkIiwiaXRlbSIsImZvcm1hdCIsImMiLCJleHRyYUZpZWxkc1RvU2VhcmNoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0RhdGEvZ2V0QXV0b2NvbXBsZXRlU291cmNlLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEF1dG9jb21wbGV0ZVNvdXJjZSBmcm9tICcuL2dldEF1dG9jb21wbGV0ZVNvdXJjZSc7XG5cbmRlc2NyaWJlKCd1dGlscycsICgpID0+IHtcblxuICBkZXNjcmliZSgnRGF0YScsICgpID0+IHtcblxuICAgIGNvbnN0IGdiQ3VycmVuY3kgPSB7XG4gICAgICBjdXJyZW5jeU5hbWU6ICdHcmVhdCBCcml0aXNoIFBvdW5kcycsXG4gICAgICBjdXJyZW5jeUNvZGU6ICdHQlAnLFxuICAgICAgaGludDogJ2hpbnQnLFxuICAgICAgdmFsdWU6ICdHQlAnLFxuICAgICAgbGFiZWw6ICdHQlAnLFxuICAgICAgc2xhbmdUZXJtOiAncXVpZCdcbiAgICB9O1xuXG4gICAgY29uc3QgdXNDdXJyZW5jeSA9IHtcbiAgICAgIGN1cnJlbmN5TmFtZTogJ1VuaXRlZCBTdGF0ZXMgRG9sbGFycycsXG4gICAgICBjdXJyZW5jeUNvZGU6ICdVU0QnLFxuICAgICAgaGludDogJ2hpbnQnLFxuICAgICAgdmFsdWU6ICdVU0QnLFxuICAgICAgbGFiZWw6ICdVU0QnLFxuICAgICAgc2xhbmdUZXJtOiAnYnVja3MnLFxuICAgICAgc3lub255bXM6IFsnZ3JlZW5iYWNrcycsIDExXVxuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgYWxwaGE6IHsgdmFsdWU6ICdhJywgbGFiZWw6ICdBbHBoYScsIGhpbnQ6ICdoaW50JyB9LFxuICAgICAgYnJhdm86IHsgdmFsdWU6ICdiJywgbGFiZWw6ICdCcmF2bycsIGhpbnQ6ICdoaW50JyB9LFxuICAgICAgYWxJbmNsdWRlZDogeyB2YWx1ZTogJ2MnLCBsYWJlbDogJ0NhbGwgbWUgYWxhbicsIGhpbnQ6ICdoaW50JyB9LFxuICAgICAgYWxTdGFydDogeyB2YWx1ZTogJ2QnLCBsYWJlbDogJ1dvcmQgQWxwaGFiZXQnLCBoaW50OiAnaGludCcgfVxuICAgIH07XG5cbiAgICBjb25zdCB0ZXN0Q3VycmVuY2llcyA9IFtnYkN1cnJlbmN5LCB1c0N1cnJlbmN5XTtcblxuICAgIGRlc2NyaWJlKCdnZXRBdXRvY29tcGxldGVTb3VyY2UnLCAoKSA9PiB7XG5cbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGEgbnVsbCBjb25maWcnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IFNPVVJDRSA9IGdldEF1dG9jb21wbGV0ZVNvdXJjZShudWxsKTtcbiAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgU09VUkNFKCdxdWVyeScsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgZXhwZWN0KEFycmF5LmlzQXJyYXkocmVzdWx0cykpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCd3aXRob3V0IGN1c3RvbSBpdGVtIGxhYmVscycsICgpID0+IHtcblxuICAgICAgICBpdCgnc2hvdWxkIGdldCBhbnkgc3BlY2lmaWVkIG9wdGlvbnMgZnJvbSB0aGUgY29uZmlnJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2EnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLCBvcHRpb25zLmJyYXZvXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTT1VSQ0UoJ2FsJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2EnLCBsYWJlbDogJ0FscGhhJywgaGludDogJ2hpbnQnIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG9ubHkgcmV0dXJuIGZpcnN0IDYwMDAgcmVzdWx0cyB0aGF0IGhhdmUgc29tZSB0eXBlIG9mIG1hdGNoJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vcmVUaGFuTWF4TnVtYmVyT2ZPcHRpb25zID0gQXJyYXkoNjAwMSkuZmlsbChvcHRpb25zLmFscGhhKTtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IG1vcmVUaGFuTWF4TnVtYmVyT2ZPcHRpb25zXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBnZXRBdXRvY29tcGxldGVTb3VyY2UoY29uZmlnKShcbiAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEubGFiZWwsXG4gICAgICAgICAgICAocmVzdWx0cykgPT4gZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDYwMDApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhbiBlbXB0eSBxdWVyeScsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBDT05GSUcgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgU09VUkNFKCcnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICBvcHRpb25zLmJyYXZvXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYW4gdW5kZWZpbmVkIHF1ZXJ5JywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5icmF2b1xuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UodW5kZWZpbmVkLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICBvcHRpb25zLmJyYXZvXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYSBudWxsIHF1ZXJ5JywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5icmF2b1xuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UobnVsbCwgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgb3B0aW9ucy5hbHBoYSxcbiAgICAgICAgICAgICAgb3B0aW9ucy5icmF2b1xuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGEgbm9uIHN0cmluZyBxdWVyeScsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBDT05GSUcgPSB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmFscGhhLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgU09VUkNFKDEsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMik7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbChbXG4gICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgIG9wdGlvbnMuYnJhdm9cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhIG1pc3NpbmcgbGFiZWwgb24gYW4gb3B0aW9uJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGEsXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2InIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2EnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwoW1xuICAgICAgICAgICAgICBvcHRpb25zLmFscGhhXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gbWF0Y2hlcyBpbiB0aGUgcmlnaHQgb3JkZXInLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5hbEluY2x1ZGVkLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxTdGFydCxcbiAgICAgICAgICAgICAgICBvcHRpb25zLmJyYXZvLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxwaGFcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2FsJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgzKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgb3B0aW9ucy5hbHBoYSxcbiAgICAgICAgICAgICAgb3B0aW9ucy5hbFN0YXJ0LFxuICAgICAgICAgICAgICBvcHRpb25zLmFsSW5jbHVkZWRcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIG9wdGlvbnMgdXNpbmcgYSBkZWZpbmVkIHN5bm9ueW0nLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyAuLi5vcHRpb25zLmFscGhhLCBzeW5vbnltczogWydmaXJzdCddIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2InIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2ZpcnN0JywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgeyAuLi5vcHRpb25zLmFscGhhLCBzeW5vbnltczogWydmaXJzdCddIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgfSk7XG5cbiAgICAgIGRlc2NyaWJlKCd3aXRoIGN1c3RvbSBpdGVtIGxhYmVscycsICgpID0+IHtcblxuICAgICAgICBpdCgnc2hvdWxkIGdldCBhbnkgc3BlY2lmaWVkIG9wdGlvbnMgZnJvbSB0aGUgY29uZmlnJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBsYWJlbDogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGZvcm1hdDogYFxcJHtjdXJyZW5jeU5hbWV9IChcXCR7Y3VycmVuY3lDb2RlfSlgXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiB0ZXN0Q3VycmVuY2llc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ0dCJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgZ2JDdXJyZW5jeVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU09VUkNFKCcgKCcsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMik7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbCh0ZXN0Q3VycmVuY2llcyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGFuIGVtcHR5IHF1ZXJ5JywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBsYWJlbDogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGZvcm1hdDogYFxcJHtjdXJyZW5jeU5hbWV9IChcXCR7Y3VycmVuY3lDb2RlfSlgXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiB0ZXN0Q3VycmVuY2llc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgU09VUkNFKCcnLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwodGVzdEN1cnJlbmNpZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhbiB1bmRlZmluZWQgcXVlcnknLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgZm9ybWF0OiBgXFwke2N1cnJlbmN5TmFtZX0gKFxcJHtjdXJyZW5jeUNvZGV9KWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IHRlc3RDdXJyZW5jaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UodW5kZWZpbmVkLCAocmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMubGVuZ3RoKS50b0VxdWFsKDIpO1xuICAgICAgICAgICAgZXhwZWN0KHJlc3VsdHMpLnRvRXF1YWwodGVzdEN1cnJlbmNpZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhIG51bGwgcXVlcnknLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgZm9ybWF0OiBgXFwke2N1cnJlbmN5TmFtZX0gKFxcJHtjdXJyZW5jeUNvZGV9KWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IHRlc3RDdXJyZW5jaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBTT1VSQ0UobnVsbCwgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKHRlc3RDdXJyZW5jaWVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYSBtaXNzaW5nIGxhYmVsIG9uIGFuIG9wdGlvbicsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBDT05GSUcgPSB7XG4gICAgICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBmb3JtYXQ6IGBcXCR7Y3VycmVuY3lOYW1lfSAoXFwke2N1cnJlbmN5Q29kZX0pYFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIGdiQ3VycmVuY3ksXG4gICAgICAgICAgICAgICAgeyBjdXJyZW5jeU5hbWU6ICdVbml0ZWQgU3RhdGVzIERvbGxhcnMnLCBjdXJyZW5jeUNvZGU6ICdVU0QnLCBoaW50OiAnaGludCcsIHZhbHVlOiAnVVNEJyB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IFNPVVJDRSA9IGdldEF1dG9jb21wbGV0ZVNvdXJjZShDT05GSUcpO1xuICAgICAgICAgIGV4cGVjdCh0eXBlb2YgU09VUkNFID09PSAnZnVuY3Rpb24nKS50b0JlVHJ1dGh5KCk7XG4gICAgICAgICAgU09VUkNFKCdhJywgKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgIC8vIFdlIGV4cGVjdCAyIHJlc3VsdHMgaGVyZSBpbnN0ZWFkIG9mIDEgYmVjYXVzZSBkZWZpbmluZyBhIGN1c3RvbVxuICAgICAgICAgICAgLy8gZm9ybWF0IGZvciBpdGVtIGxhYmVscyBtZWFucyB0aGUgbGFiZWwgaXMgY29uc3RydWN0ZWQgdXBvbiBwcm9jZXNzaW5nXG4gICAgICAgICAgICAvLyBhIHF1ZXJ5IC0gd2UncmUgbm90IHJlbHlpbmcgb24gdGhlICdsYWJlbCcgZmllbGQgb2YgdGhlIG9wdGlvbi5cbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzLmxlbmd0aCkudG9FcXVhbCgyKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHRzKS50b0VxdWFsKFtcbiAgICAgICAgICAgICAgZ2JDdXJyZW5jeSxcbiAgICAgICAgICAgICAgeyBjdXJyZW5jeU5hbWU6ICdVbml0ZWQgU3RhdGVzIERvbGxhcnMnLCBjdXJyZW5jeUNvZGU6ICdVU0QnLCBoaW50OiAnaGludCcsIHZhbHVlOiAnVVNEJywgbGFiZWw6ICcnIH1cbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdCgnc2hvdWxkIG1hdGNoIG9wdGlvbnMgdXNpbmcgYSBkZWZpbmVkIHN5bm9ueW0nLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgQ09ORklHID0ge1xuICAgICAgICAgICAgaXRlbToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnY3VycmVuY3lDb2RlJyxcbiAgICAgICAgICAgICAgZm9ybWF0OiBgXFwke2N1cnJlbmN5TmFtZX0gKFxcJHtjdXJyZW5jeUNvZGV9KWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIG9wdGlvbnM6IHRlc3RDdXJyZW5jaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBTT1VSQ0UgPSBnZXRBdXRvY29tcGxldGVTb3VyY2UoQ09ORklHKTtcbiAgICAgICAgICBleHBlY3QodHlwZW9mIFNPVVJDRSA9PT0gJ2Z1bmN0aW9uJykudG9CZVRydXRoeSgpO1xuICAgICAgICAgIFNPVVJDRSgnZ3JlZW5iYWNrcycsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbCh0ZXN0Q3VycmVuY2llcy5maWx0ZXIoKGMpID0+IChjLmN1cnJlbmN5Q29kZSA9PT0gJ1VTRCcpKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KCdzaG91bGQgbWF0Y2ggb3B0aW9ucyB1c2luZyBkZWZpbmVkIGV4dHJhIHNlYXJjaGFibGUgZmllbGRzJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IENPTkZJRyA9IHtcbiAgICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdjdXJyZW5jeUNvZGUnLFxuICAgICAgICAgICAgICBsYWJlbDogJ2N1cnJlbmN5Q29kZScsXG4gICAgICAgICAgICAgIGZvcm1hdDogYFxcJHtjdXJyZW5jeU5hbWV9IChcXCR7Y3VycmVuY3lDb2RlfSlgLFxuICAgICAgICAgICAgICBleHRyYUZpZWxkc1RvU2VhcmNoOiBbJ3NsYW5nVGVybScsIG51bGxdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvcHRpb25zOiB0ZXN0Q3VycmVuY2llc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgU09VUkNFID0gZ2V0QXV0b2NvbXBsZXRlU291cmNlKENPTkZJRyk7XG4gICAgICAgICAgZXhwZWN0KHR5cGVvZiBTT1VSQ0UgPT09ICdmdW5jdGlvbicpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICBTT1VSQ0UoJ2J1YycsIChyZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cy5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0cykudG9FcXVhbCh0ZXN0Q3VycmVuY2llcy5maWx0ZXIoKGMpID0+IChjLmN1cnJlbmN5Q29kZSA9PT0gJ1VTRCcpKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB9KTtcblxuICAgIH0pO1xuXG4gIH0pO1xuXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxzQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQTRELFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsUUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFQLENBQUEsT0FBQU0sTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQVIsQ0FBQSxHQUFBSSxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBWCxDQUFBLEVBQUFJLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFmLENBQUEsYUFBQUksQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFB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
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
const DOT = '.';
|
|
8
|
-
const SLASH = '/';
|
|
9
|
-
const DOT_DOT = "".concat(DOT).concat(DOT);
|
|
10
|
-
const PARENT_PATH = "".concat(DOT).concat(SLASH);
|
|
11
|
-
const toPath = arr => arr.join(DOT);
|
|
12
|
-
const toParts = function (str) {
|
|
13
|
-
let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
|
|
14
|
-
return str.split(separator);
|
|
15
|
-
};
|
|
16
|
-
const isDotDot = str => str === DOT_DOT;
|
|
17
|
-
const isDotOrDotDot = str => [DOT, DOT_DOT].indexOf(str) > -1;
|
|
18
|
-
const isRelativePath = path => path && path.indexOf(DOT) === 0;
|
|
19
|
-
const standardiseRelativePath = path => {
|
|
20
|
-
if (path.indexOf(PARENT_PATH) === 0) {
|
|
21
|
-
return path;
|
|
22
|
-
}
|
|
23
|
-
return "".concat(PARENT_PATH).concat(path);
|
|
24
|
-
};
|
|
25
|
-
const ascendPath = (startPath, ascent) => {
|
|
26
|
-
const relativePath = standardiseRelativePath(ascent);
|
|
27
|
-
// Always add 1 because we're starting on a leaf node within a "directory".
|
|
28
|
-
const stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
|
|
29
|
-
const pathParts = startPath ? toParts(startPath) : [];
|
|
30
|
-
if (stepsToClimb >= pathParts.length) {
|
|
31
|
-
return '';
|
|
32
|
-
}
|
|
33
|
-
return toPath(pathParts.slice(0, -stepsToClimb));
|
|
34
|
-
};
|
|
35
|
-
const descendPath = (startPath, descent) => {
|
|
36
|
-
const stepsDown = toParts(descent, SLASH).filter(str => !isDotOrDotDot(str));
|
|
37
|
-
return startPath ? "".concat(startPath, ".").concat(toPath(stepsDown)) : toPath(stepsDown);
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Takes a path and a current path and returns an absolute path to a data element.
|
|
42
|
-
* Note that the path may be absolute or relative.
|
|
43
|
-
*
|
|
44
|
-
* The behaviour should mirror the way imports work.
|
|
45
|
-
*
|
|
46
|
-
* @param {string} path The path to attempt to get to, which may be absolute or relative.
|
|
47
|
-
* @param {string} currentPath The current absolute path.
|
|
48
|
-
* @returns An absolute path to a data element.
|
|
49
|
-
* @example
|
|
50
|
-
* getDataPath('./relative.path', 'this.is.the.current.path');
|
|
51
|
-
* // => 'this.is.the.current.relative.path'
|
|
52
|
-
* @example
|
|
53
|
-
* getDataPath('../relative.path', 'this.is.the.current.path');
|
|
54
|
-
* // => 'this.is.the.relative.path'
|
|
55
|
-
* @example
|
|
56
|
-
* getDataPath('../../relative.path', 'this.is.the.current.path');
|
|
57
|
-
* // => 'this.is.relative.path'
|
|
58
|
-
*/
|
|
59
|
-
const getDataPath = (path, currentPath) => {
|
|
60
|
-
if (isRelativePath(path)) {
|
|
61
|
-
return descendPath(ascendPath(currentPath, path), path);
|
|
62
|
-
}
|
|
63
|
-
return path;
|
|
64
|
-
};
|
|
65
|
-
var _default = exports.default = getDataPath;
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJET1QiLCJTTEFTSCIsIkRPVF9ET1QiLCJjb25jYXQiLCJQQVJFTlRfUEFUSCIsInRvUGF0aCIsImFyciIsImpvaW4iLCJ0b1BhcnRzIiwic3RyIiwic2VwYXJhdG9yIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic3BsaXQiLCJpc0RvdERvdCIsImlzRG90T3JEb3REb3QiLCJpbmRleE9mIiwiaXNSZWxhdGl2ZVBhdGgiLCJwYXRoIiwic3RhbmRhcmRpc2VSZWxhdGl2ZVBhdGgiLCJhc2NlbmRQYXRoIiwic3RhcnRQYXRoIiwiYXNjZW50IiwicmVsYXRpdmVQYXRoIiwic3RlcHNUb0NsaW1iIiwiZmlsdGVyIiwicGF0aFBhcnRzIiwic2xpY2UiLCJkZXNjZW5kUGF0aCIsImRlc2NlbnQiLCJzdGVwc0Rvd24iLCJnZXREYXRhUGF0aCIsImN1cnJlbnRQYXRoIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9EYXRhL2dldERhdGFQYXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERPVCA9ICcuJztcbmNvbnN0IFNMQVNIID0gJy8nO1xuY29uc3QgRE9UX0RPVCA9IGAke0RPVH0ke0RPVH1gO1xuY29uc3QgUEFSRU5UX1BBVEggPSBgJHtET1R9JHtTTEFTSH1gO1xuXG5jb25zdCB0b1BhdGggPSAoYXJyKSA9PiBhcnIuam9pbihET1QpO1xuXG5jb25zdCB0b1BhcnRzID0gKHN0ciwgc2VwYXJhdG9yID0gRE9UKSA9PiBzdHIuc3BsaXQoc2VwYXJhdG9yKTtcblxuY29uc3QgaXNEb3REb3QgPSAoc3RyKSA9PiBzdHIgPT09IERPVF9ET1Q7XG5jb25zdCBpc0RvdE9yRG90RG90ID0gKHN0cikgPT4gW0RPVCwgRE9UX0RPVF0uaW5kZXhPZihzdHIpID4gLTE7XG5cbmNvbnN0IGlzUmVsYXRpdmVQYXRoID0gKHBhdGgpID0+IHBhdGggJiYgcGF0aC5pbmRleE9mKERPVCkgPT09IDA7XG5cbmNvbnN0IHN0YW5kYXJkaXNlUmVsYXRpdmVQYXRoID0gKHBhdGgpID0+IHtcbiAgaWYgKHBhdGguaW5kZXhPZihQQVJFTlRfUEFUSCkgPT09IDApIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuICByZXR1cm4gYCR7UEFSRU5UX1BBVEh9JHtwYXRofWA7XG59O1xuXG5jb25zdCBhc2NlbmRQYXRoID0gKHN0YXJ0UGF0aCwgYXNjZW50KSA9PiB7XG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHN0YW5kYXJkaXNlUmVsYXRpdmVQYXRoKGFzY2VudCk7XG4gIC8vIEFsd2F5cyBhZGQgMSBiZWNhdXNlIHdlJ3JlIHN0YXJ0aW5nIG9uIGEgbGVhZiBub2RlIHdpdGhpbiBhIFwiZGlyZWN0b3J5XCIuXG4gIGNvbnN0IHN0ZXBzVG9DbGltYiA9IHRvUGFydHMocmVsYXRpdmVQYXRoLCBTTEFTSCkuZmlsdGVyKGlzRG90RG90KS5sZW5ndGggKyAxO1xuICBjb25zdCBwYXRoUGFydHMgPSBzdGFydFBhdGggPyB0b1BhcnRzKHN0YXJ0UGF0aCkgOiBbXTtcbiAgaWYgKHN0ZXBzVG9DbGltYiA+PSBwYXRoUGFydHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiB0b1BhdGgocGF0aFBhcnRzLnNsaWNlKDAsICAtc3RlcHNUb0NsaW1iKSk7XG59O1xuXG5jb25zdCBkZXNjZW5kUGF0aCA9IChzdGFydFBhdGgsIGRlc2NlbnQpID0+IHtcbiAgY29uc3Qgc3RlcHNEb3duID0gdG9QYXJ0cyhkZXNjZW50LCBTTEFTSCkuZmlsdGVyKHN0ciA9PiAhaXNEb3RPckRvdERvdChzdHIpKTtcbiAgcmV0dXJuIHN0YXJ0UGF0aCA/IGAke3N0YXJ0UGF0aH0uJHt0b1BhdGgoc3RlcHNEb3duKX1gIDogdG9QYXRoKHN0ZXBzRG93bik7XG59O1xuXG4vKipcbiAqIFRha2VzIGEgcGF0aCBhbmQgYSBjdXJyZW50IHBhdGggYW5kIHJldHVybnMgYW4gYWJzb2x1dGUgcGF0aCB0byBhIGRhdGEgZWxlbWVudC5cbiAqIE5vdGUgdGhhdCB0aGUgcGF0aCBtYXkgYmUgYWJzb2x1dGUgb3IgcmVsYXRpdmUuXG4gKiBcbiAqIFRoZSBiZWhhdmlvdXIgc2hvdWxkIG1pcnJvciB0aGUgd2F5IGltcG9ydHMgd29yay5cbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gYXR0ZW1wdCB0byBnZXQgdG8sIHdoaWNoIG1heSBiZSBhYnNvbHV0ZSBvciByZWxhdGl2ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50UGF0aCBUaGUgY3VycmVudCBhYnNvbHV0ZSBwYXRoLlxuICogQHJldHVybnMgQW4gYWJzb2x1dGUgcGF0aCB0byBhIGRhdGEgZWxlbWVudC5cbiAqIEBleGFtcGxlXG4gKiAgIGdldERhdGFQYXRoKCcuL3JlbGF0aXZlLnBhdGgnLCAndGhpcy5pcy50aGUuY3VycmVudC5wYXRoJyk7XG4gKiAgIC8vID0+ICd0aGlzLmlzLnRoZS5jdXJyZW50LnJlbGF0aXZlLnBhdGgnXG4gKiBAZXhhbXBsZVxuICogICBnZXREYXRhUGF0aCgnLi4vcmVsYXRpdmUucGF0aCcsICd0aGlzLmlzLnRoZS5jdXJyZW50LnBhdGgnKTtcbiAqICAgLy8gPT4gJ3RoaXMuaXMudGhlLnJlbGF0aXZlLnBhdGgnXG4gKiBAZXhhbXBsZVxuICogICBnZXREYXRhUGF0aCgnLi4vLi4vcmVsYXRpdmUucGF0aCcsICd0aGlzLmlzLnRoZS5jdXJyZW50LnBhdGgnKTtcbiAqICAgLy8gPT4gJ3RoaXMuaXMucmVsYXRpdmUucGF0aCdcbiAqL1xuY29uc3QgZ2V0RGF0YVBhdGggPSAocGF0aCwgY3VycmVudFBhdGgpID0+IHtcbiAgaWYgKGlzUmVsYXRpdmVQYXRoKHBhdGgpKSB7XG4gICAgcmV0dXJuIGRlc2NlbmRQYXRoKGFzY2VuZFBhdGgoY3VycmVudFBhdGgsIHBhdGgpLCBwYXRoKTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGdldERhdGFQYXRoO1xuIl0sIm1hcHBp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
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _getDataPath = _interopRequireDefault(require("./getDataPath"));
|
|
4
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
5
|
-
describe('utils.Data.getDataPath', () => {
|
|
6
|
-
const CURRENT_PATH = 'this.is.the.current.path';
|
|
7
|
-
const RELATIVE = 'relative.path';
|
|
8
|
-
const ABSOLUTE = 'absolute.path';
|
|
9
|
-
const doTest = (path, currentPath, expected) => {
|
|
10
|
-
expect((0, _getDataPath.default)(path, currentPath)).toEqual(expected);
|
|
11
|
-
};
|
|
12
|
-
it("should return an absolute path appropriately", () => {
|
|
13
|
-
doTest(ABSOLUTE, CURRENT_PATH, ABSOLUTE);
|
|
14
|
-
});
|
|
15
|
-
it("should return an absolute path appropriately where the current path is null", () => {
|
|
16
|
-
doTest(ABSOLUTE, null, ABSOLUTE);
|
|
17
|
-
});
|
|
18
|
-
[{
|
|
19
|
-
p: "./".concat(RELATIVE),
|
|
20
|
-
e: "this.is.the.current.".concat(RELATIVE),
|
|
21
|
-
d: 'a sibling node'
|
|
22
|
-
}, {
|
|
23
|
-
p: "../".concat(RELATIVE),
|
|
24
|
-
e: "this.is.the.".concat(RELATIVE),
|
|
25
|
-
d: 'a cousin node'
|
|
26
|
-
}, {
|
|
27
|
-
p: "./../".concat(RELATIVE),
|
|
28
|
-
e: "this.is.the.".concat(RELATIVE),
|
|
29
|
-
d: 'a cousin node with leading dot-slash'
|
|
30
|
-
}, {
|
|
31
|
-
p: "../../../../../../../".concat(RELATIVE),
|
|
32
|
-
e: RELATIVE,
|
|
33
|
-
d: 'an inappropriately nested node'
|
|
34
|
-
}].forEach(test => {
|
|
35
|
-
it("should return ".concat(test.d, " appropriately"), () => {
|
|
36
|
-
doTest(test.p, CURRENT_PATH, test.e);
|
|
37
|
-
});
|
|
38
|
-
it("should return ".concat(test.d, " appropriately where the current path is null"), () => {
|
|
39
|
-
doTest(test.p, null, RELATIVE);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
it('should handle a null path and return null', () => {
|
|
43
|
-
doTest(null, CURRENT_PATH, null);
|
|
44
|
-
});
|
|
45
|
-
it('should handle an undefined path and return undefined', () => {
|
|
46
|
-
doTest(undefined, CURRENT_PATH, undefined);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0RGF0YVBhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlc2NyaWJlIiwiQ1VSUkVOVF9QQVRIIiwiUkVMQVRJVkUiLCJBQlNPTFVURSIsImRvVGVzdCIsInBhdGgiLCJjdXJyZW50UGF0aCIsImV4cGVjdGVkIiwiZXhwZWN0IiwiZ2V0RGF0YVBhdGgiLCJ0b0VxdWFsIiwiaXQiLCJwIiwiY29uY2F0IiwiZCIsImZvckVhY2giLCJ0ZXN0IiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0RhdGEvZ2V0RGF0YVBhdGgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0RGF0YVBhdGggZnJvbSAnLi9nZXREYXRhUGF0aCc7XG5cbmRlc2NyaWJlKCd1dGlscy5EYXRhLmdldERhdGFQYXRoJywgKCkgPT4ge1xuXG4gIGNvbnN0IENVUlJFTlRfUEFUSCA9ICd0aGlzLmlzLnRoZS5jdXJyZW50LnBhdGgnO1xuICBjb25zdCBSRUxBVElWRSA9ICdyZWxhdGl2ZS5wYXRoJztcbiAgY29uc3QgQUJTT0xVVEUgPSAnYWJzb2x1dGUucGF0aCc7XG5cbiAgY29uc3QgZG9UZXN0ID0gKHBhdGgsIGN1cnJlbnRQYXRoLCBleHBlY3RlZCkgPT4ge1xuICAgIGV4cGVjdChnZXREYXRhUGF0aChwYXRoLCBjdXJyZW50UGF0aCkpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICB9O1xuXG4gIGl0KGBzaG91bGQgcmV0dXJuIGFuIGFic29sdXRlIHBhdGggYXBwcm9wcmlhdGVseWAsICgpID0+IHtcbiAgICBkb1Rlc3QoQUJTT0xVVEUsIENVUlJFTlRfUEFUSCwgQUJTT0xVVEUpO1xuICB9KTtcblxuICBpdChgc2hvdWxkIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRoIGFwcHJvcHJpYXRlbHkgd2hlcmUgdGhlIGN1cnJlbnQgcGF0aCBpcyBudWxsYCwgKCkgPT4ge1xuICAgIGRvVGVzdChBQlNPTFVURSwgbnVsbCwgQUJTT0xVVEUpO1xuICB9KTtcblxuICBbXG4gICAgeyBwOiBgLi8ke1JFTEFUSVZFfWAsIGU6IGB0aGlzLmlzLnRoZS5jdXJyZW50LiR7UkVMQVRJVkV9YCwgZDogJ2Egc2libGluZyBub2RlJyB9LFxuICAgIHsgcDogYC4uLyR7UkVMQVRJVkV9YCwgZTogYHRoaXMuaXMudGhlLiR7UkVMQVRJVkV9YCwgZDogJ2EgY291c2luIG5vZGUnIH0sXG4gICAgeyBwOiBgLi8uLi8ke1JFTEFUSVZFfWAsIGU6IGB0aGlzLmlzLnRoZS4ke1JFTEFUSVZFfWAsIGQ6ICdhIGNvdXNpbiBub2RlIHdpdGggbGVhZGluZyBkb3Qtc2xhc2gnIH0sXG4gICAgeyBwOiBgLi4vLi4vLi4vLi4vLi4vLi4vLi4vJHtSRUxBVElWRX1gLCBlOiBSRUxBVElWRSwgZDogJ2FuIGluYXBwcm9wcmlhdGVseSBuZXN0ZWQgbm9kZScgfVxuICBdLmZvckVhY2godGVzdCA9PiB7XG5cbiAgICBpdChgc2hvdWxkIHJldHVybiAke3Rlc3QuZH0gYXBwcm9wcmlhdGVseWAsICgpID0+IHtcbiAgICAgIGRvVGVzdCh0ZXN0LnAsIENVUlJFTlRfUEFUSCwgdGVzdC5lKTtcbiAgICB9KTtcblxuICAgIGl0KGBzaG91bGQgcmV0dXJuICR7dGVzdC5kfSBhcHByb3ByaWF0ZWx5IHdoZXJlIHRoZSBjdXJyZW50IHBhdGggaXMgbnVsbGAsICgpID0+IHtcbiAgICAgIGRvVGVzdCh0ZXN0LnAsIG51bGwsIFJFTEFUSVZFKTtcbiAgICB9KTtcblxuICB9KTtcblxuICBpdCgnc2hvdWxkIGhhbmRsZSBhIG51bGwgcGF0aCBhbmQgcmV0dXJuIG51bGwnLCAoKSA9PiB7XG4gICAgZG9UZXN0KG51bGwsIENVUlJFTlRfUEFUSCwgbnVsbCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaGFuZGxlIGFuIHVuZGVmaW5lZCBwYXRoIGFuZCByZXR1cm4gdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgIGRvVGVzdCh1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
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
|
-
var _Condition = _interopRequireDefault(require("../Condition"));
|
|
9
|
-
var _nestInRefdataOptions = _interopRequireDefault(require("./nestInRefdataOptions"));
|
|
10
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
-
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
|
-
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(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; }
|
|
14
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
-
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); } // Global Imports
|
|
16
|
-
// Local Imports
|
|
17
|
-
const interpolateOptions = (config, options) => options.map(opt => {
|
|
18
|
-
if (opt.show_when) {
|
|
19
|
-
const result = opt.show_when.type === 'or' ? _Condition.default.meetsOne(opt, config.formData) : _Condition.default.meetsAll(opt, config.formData);
|
|
20
|
-
if (!result) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (typeof opt === 'string') {
|
|
25
|
-
return opt;
|
|
26
|
-
}
|
|
27
|
-
if (!opt.value) {
|
|
28
|
-
return opt.label;
|
|
29
|
-
}
|
|
30
|
-
if (config.alternativeHintField) {
|
|
31
|
-
// eslint-disable-next-line no-param-reassign
|
|
32
|
-
opt.hint = opt[config.alternativeHintField];
|
|
33
|
-
}
|
|
34
|
-
return _objectSpread(_objectSpread({}, opt), {}, {
|
|
35
|
-
value: _copReactComponents.Utils.interpolateString(opt.value, config.formData),
|
|
36
|
-
label: _copReactComponents.Utils.interpolateString(opt.label, config.formData),
|
|
37
|
-
hint: _copReactComponents.Utils.interpolateString(opt.hint, config.formData)
|
|
38
|
-
});
|
|
39
|
-
}).filter(n => n);
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Returns a list of options templated from a collection specified.
|
|
43
|
-
* config requires a item field with the templated options e.g
|
|
44
|
-
* "item": {
|
|
45
|
-
* "value": "${id}"
|
|
46
|
-
* "label": "${name}"
|
|
47
|
-
* "hint": "Select a person name"
|
|
48
|
-
* }
|
|
49
|
-
* @param {*} config
|
|
50
|
-
* @param {*} collectionName
|
|
51
|
-
* @returns
|
|
52
|
-
*/
|
|
53
|
-
const getCollectionOptions = (config, collectionName) => {
|
|
54
|
-
const collectionOptions = config.formData[collectionName].map(collection => ({
|
|
55
|
-
value: _copReactComponents.Utils.interpolateString(config.item.value, collection),
|
|
56
|
-
label: _copReactComponents.Utils.interpolateString(config.item.label, collection),
|
|
57
|
-
hint: _copReactComponents.Utils.interpolateString(config.item.hint, collection)
|
|
58
|
-
}));
|
|
59
|
-
if (config.data.options) {
|
|
60
|
-
return [].concat(collectionOptions, config.data.options);
|
|
61
|
-
}
|
|
62
|
-
return collectionOptions;
|
|
63
|
-
};
|
|
64
|
-
const getOptions = (config, callback) => {
|
|
65
|
-
if (config) {
|
|
66
|
-
var _config$data, _config$data3, _config$data4;
|
|
67
|
-
if (config !== null && config !== void 0 && (_config$data = config.data) !== null && _config$data !== void 0 && _config$data.collection && config !== null && config !== void 0 && config.item) {
|
|
68
|
-
var _config$data2;
|
|
69
|
-
const combinedOptions = getCollectionOptions(config, config === null || config === void 0 || (_config$data2 = config.data) === null || _config$data2 === void 0 ? void 0 : _config$data2.collection);
|
|
70
|
-
return callback(interpolateOptions(config, combinedOptions));
|
|
71
|
-
}
|
|
72
|
-
if (config.options && config !== null && config !== void 0 && (_config$data3 = config.data) !== null && _config$data3 !== void 0 && _config$data3.options && config !== null && config !== void 0 && (_config$data4 = config.data) !== null && _config$data4 !== void 0 && _config$data4.url) {
|
|
73
|
-
const combinedOptions = (0, _nestInRefdataOptions.default)(config.options, config.data.options);
|
|
74
|
-
return callback(interpolateOptions(config, combinedOptions));
|
|
75
|
-
}
|
|
76
|
-
if (config.options) {
|
|
77
|
-
return callback(interpolateOptions(config, config.options));
|
|
78
|
-
}
|
|
79
|
-
if (config.data && config.data.options) {
|
|
80
|
-
return callback(interpolateOptions(config, config.data.options));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return callback([]);
|
|
84
|
-
};
|
|
85
|
-
var _default = exports.default = getOptions;
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29wUmVhY3RDb21wb25lbnRzIiwicmVxdWlyZSIsIl9Db25kaXRpb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX25lc3RJblJlZmRhdGFPcHRpb25zIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImludGVycG9sYXRlT3B0aW9ucyIsImNvbmZpZyIsIm9wdGlvbnMiLCJtYXAiLCJvcHQiLCJzaG93X3doZW4iLCJyZXN1bHQiLCJ0eXBlIiwiQ29uZGl0aW9uIiwibWVldHNPbmUiLCJmb3JtRGF0YSIsIm1lZXRzQWxsIiwibGFiZWwiLCJhbHRlcm5hdGl2ZUhpbnRGaWVsZCIsImhpbnQiLCJVdGlscyIsImludGVycG9sYXRlU3RyaW5nIiwibiIsImdldENvbGxlY3Rpb25PcHRpb25zIiwiY29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uT3B0aW9ucyIsImNvbGxlY3Rpb24iLCJpdGVtIiwiZGF0YSIsImNvbmNhdCIsImdldE9wdGlvbnMiLCJjYWxsYmFjayIsIl9jb25maWckZGF0YSIsIl9jb25maWckZGF0YTMiLCJfY29uZmlnJGRhdGE0IiwiX2NvbmZpZyRkYXRhMiIsImNvbWJpbmVkT3B0aW9ucyIsInVybCIsIm5lc3RJblJlZmRhdGFPcHRpb25zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0RhdGEvZ2V0T3B0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHbG9iYWwgSW1wb3J0c1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICdAdWtob21lb2ZmaWNlL2NvcC1yZWFjdC1jb21wb25lbnRzJztcblxuLy8gTG9jYWwgSW1wb3J0c1xuaW1wb3J0IENvbmRpdGlvbiBmcm9tICcuLi9Db25kaXRpb24nO1xuaW1wb3J0IG5lc3RJblJlZmRhdGFPcHRpb25zIGZyb20gJy4vbmVzdEluUmVmZGF0YU9wdGlvbnMnO1xuXG5jb25zdCBpbnRlcnBvbGF0ZU9wdGlvbnMgPSAoY29uZmlnLCBvcHRpb25zKSA9PlxuICBvcHRpb25zLm1hcCgob3B0KSA9PiB7XG4gICAgaWYgKG9wdC5zaG93X3doZW4pIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICAgIG9wdC5zaG93X3doZW4udHlwZSA9PT0gJ29yJyA/IENvbmRpdGlvbi5tZWV0c09uZShvcHQsIGNvbmZpZy5mb3JtRGF0YSkgOiBDb25kaXRpb24ubWVldHNBbGwob3B0LCBjb25maWcuZm9ybURhdGEpO1xuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG9wdDtcbiAgICB9XG4gICAgaWYgKCFvcHQudmFsdWUpIHtcbiAgICAgIHJldHVybiBvcHQubGFiZWw7XG4gICAgfVxuICAgIGlmIChjb25maWcuYWx0ZXJuYXRpdmVIaW50RmllbGQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgb3B0LmhpbnQgPSBvcHRbY29uZmlnLmFsdGVybmF0aXZlSGludEZpZWxkXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wdCxcbiAgICAgIHZhbHVlOiBVdGlscy5pbnRlcnBvbGF0ZVN0cmluZyhvcHQudmFsdWUsIGNvbmZpZy5mb3JtRGF0YSksXG4gICAgICBsYWJlbDogVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcob3B0LmxhYmVsLCBjb25maWcuZm9ybURhdGEpLFxuICAgICAgaGludDogVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcob3B0LmhpbnQsIGNvbmZpZy5mb3JtRGF0YSksXG4gICAgfTtcbiAgfSkuZmlsdGVyKG4gPT4gbik7XG5cbi8qKlxuICogUmV0dXJucyBhIGxpc3Qgb2Ygb3B0aW9ucyB0ZW1wbGF0ZWQgZnJvbSBhIGNvbGxlY3Rpb24gc3BlY2lmaWVkLiBcbiAqIGNvbmZpZyByZXF1aXJlcyBhIGl0ZW0gZmllbGQgd2l0aCB0aGUgdGVtcGxhdGVkIG9wdGlvbnMgIGUuZyBcbiAqIFwiaXRlbVwiOiB7XG4gKiBcInZhbHVlXCI6IFwiJHtpZH1cIlxuICogXCJsYWJlbFwiOiBcIiR7bmFtZX1cIlxuICogXCJoaW50XCI6IFwiU2VsZWN0IGEgcGVyc29uIG5hbWVcIlxuICogfVxuICogQHBhcmFtIHsqfSBjb25maWcgXG4gKiBAcGFyYW0geyp9IGNvbGxlY3Rpb25OYW1lIFxuICogQHJldHVybnMgXG4gKi9cbmNvbnN0IGdldENvbGxlY3Rpb25PcHRpb25zID0gKGNvbmZpZywgY29sbGVjdGlvbk5hbWUpID0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uT3B0aW9ucyA9ICBjb25maWcuZm9ybURhdGFbY29sbGVjdGlvbk5hbWVdLm1hcChjb2xsZWN0aW9uID0+ICh7XG4gICAgICB2YWx1ZTogVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcoY29uZmlnLml0ZW0udmFsdWUsIGNvbGxlY3Rpb24pLFxuICAgICAgbGFiZWw6ICBVdGlscy5pbnRlcnBvbGF0ZVN0cmluZyhjb25maWcuaXRlbS5sYWJlbCwgY29sbGVjdGlvbiksXG4gICAgICBoaW50OiAgVXRpbHMuaW50ZXJwb2xhdGVTdHJpbmcoY29uZmlnLml0ZW0uaGludCwgY29sbGVjdGlvbiksXG4gICAgfSkpXG4gICAgaWYoY29uZmlnLmRhdGEub3B0aW9ucyl7XG4gICAgICByZXR1cm4gWy4uLmNvbGxlY3Rpb25PcHRpb25zLCAuLi5jb25maWcuZGF0YS5vcHRpb25zXVxuICAgIH1cbiAgICByZXR1cm4gY29sbGVjdGlvbk9wdGlvbnNcbn1cblxuY29uc3QgZ2V0T3B0aW9ucyA9IChjb25maWcsIGNhbGxiYWNrKSA9PiB7XG4gIGlmIChjb25maWcpIHtcbiAgICBpZiAoY29uZmlnPy5kYXRhPy5jb2xsZWN0aW9uICYmIGNvbmZpZz8uaXRlbSkge1xuICAgICAgY29uc3QgY29tYmluZWRPcHRpb25zID0gZ2V0Q29sbGVjdGlvbk9wdGlvbnMoY29uZmlnLCBjb25maWc/LmRhdGE/LmNvbGxlY3Rpb24pO1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKGludGVycG9sYXRlT3B0aW9ucyhjb25maWcsIGNvbWJpbmVkT3B0aW9ucykpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLm9wdGlvbnMgJiYgY29uZmlnPy5kYXRhPy5vcHRpb25zICYmIGNvbmZpZz8uZGF0YT8udXJsKSB7XG4gICAgICBjb25zdCBjb21iaW5lZE9wdGlvbnMgPSBuZXN0SW5SZWZkYXRhT3B0aW9ucyhjb25maWcub3B0aW9ucywgY29uZmlnLmRhdGEub3B0aW9ucylcbiAgICAgIHJldHVybiBjYWxsYmFjayhpbnRlcnBvbGF0ZU9wdGlvbnMoY29uZmlnLCBjb21iaW5lZE9wdGlvbnMpKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soaW50ZXJwb2xhdGVPcHRpb25zKGNvbmZpZywgY29uZmlnLm9wdGlvbnMpKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5kYXRhICYmIGNvbmZpZy5kYXRhLm9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhpbnRlcnBvbGF0ZU9wdGlvbnMoY29uZmlnLCBjb25maWcuZGF0YS5vcHRpb25zKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYWxsYmFjayhbXSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBnZXRPcHRpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUEwRCxTQUFBRSx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVgsQ0FBQSxFQUFBSSxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBZixDQUFBLGFBQUFJLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRCxPQUFBLENBQUFHLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQWUsZUFBQSxDQUFBbkIsQ0FBQSxFQUFBSSxDQUFBLEVBQUFDLENBQUEsQ0FB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
|