@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,473 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _models = require("../../../models");
|
|
4
|
-
var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSectionStates"));
|
|
5
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
-
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; }
|
|
7
|
-
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; }
|
|
8
|
-
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; }
|
|
9
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
10
|
-
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); } // Local imports
|
|
11
|
-
describe('components.FormRenderer.helpers.getUpdatedSectionStates', () => {
|
|
12
|
-
describe('sequential tasks', () => {
|
|
13
|
-
it("should set all tasks to '".concat(_models.TaskStates.TYPES.CANNOT_START_YET, "' excluding the first which should be '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"), () => {
|
|
14
|
-
const SECTIONS = [{
|
|
15
|
-
name: 'Add event details',
|
|
16
|
-
tasks: [{
|
|
17
|
-
name: 'Date, location and mode details',
|
|
18
|
-
pages: ['eventDate', 'eventMode']
|
|
19
|
-
}, {
|
|
20
|
-
name: 'Officer and agency details',
|
|
21
|
-
pages: ['officeDetails']
|
|
22
|
-
}]
|
|
23
|
-
}, {
|
|
24
|
-
name: 'Add people details',
|
|
25
|
-
tasks: [{
|
|
26
|
-
name: 'People details',
|
|
27
|
-
pages: ['firstName', 'surname']
|
|
28
|
-
}, {
|
|
29
|
-
name: 'Immigration details',
|
|
30
|
-
pages: ['immigrationDate']
|
|
31
|
-
}, {
|
|
32
|
-
name: 'Journey details',
|
|
33
|
-
pages: ['journeyDetails']
|
|
34
|
-
}]
|
|
35
|
-
}];
|
|
36
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {});
|
|
37
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
38
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
39
|
-
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
40
|
-
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
41
|
-
expect(updatedSections[1].tasks[2].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
42
|
-
});
|
|
43
|
-
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, "'"), () => {
|
|
44
|
-
const SECTIONS = [{
|
|
45
|
-
name: 'Add event details',
|
|
46
|
-
tasks: [{
|
|
47
|
-
name: 'Date, location and mode details',
|
|
48
|
-
pages: ['eventDate', 'eventMode']
|
|
49
|
-
}, {
|
|
50
|
-
name: 'Officer and agency details',
|
|
51
|
-
pages: ['officeDetails']
|
|
52
|
-
}]
|
|
53
|
-
}];
|
|
54
|
-
const TASKS = {
|
|
55
|
-
'Date, location and mode details': {
|
|
56
|
-
complete: true
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
60
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
61
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
62
|
-
});
|
|
63
|
-
it("should set tasks after any '".concat(_models.TaskStates.TYPES.COMPLETE, "' ones to '").concat(_models.TaskStates.TYPES.NOT_STARTED, " across different sections'"), () => {
|
|
64
|
-
const SECTIONS = [{
|
|
65
|
-
name: 'Add event details',
|
|
66
|
-
tasks: [{
|
|
67
|
-
name: 'Date, location and mode details',
|
|
68
|
-
pages: ['eventDate', 'eventMode']
|
|
69
|
-
}, {
|
|
70
|
-
name: 'Officer and agency details',
|
|
71
|
-
pages: ['officeDetails']
|
|
72
|
-
}]
|
|
73
|
-
}, {
|
|
74
|
-
name: 'Add people details',
|
|
75
|
-
tasks: [{
|
|
76
|
-
name: 'People details',
|
|
77
|
-
pages: ['firstName', 'surname']
|
|
78
|
-
}, {
|
|
79
|
-
name: 'Immigration details',
|
|
80
|
-
pages: ['immigrationDate']
|
|
81
|
-
}]
|
|
82
|
-
}];
|
|
83
|
-
const TASKS = {
|
|
84
|
-
'Date, location and mode details': {
|
|
85
|
-
complete: true
|
|
86
|
-
},
|
|
87
|
-
'Officer and agency details': {
|
|
88
|
-
complete: true
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
92
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
93
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
94
|
-
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
95
|
-
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
96
|
-
});
|
|
97
|
-
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have a current page but are not complete"), () => {
|
|
98
|
-
const SECTIONS = [{
|
|
99
|
-
name: 'Add event details',
|
|
100
|
-
tasks: [{
|
|
101
|
-
name: 'Date, location and mode details',
|
|
102
|
-
pages: ['eventDate', 'eventMode']
|
|
103
|
-
}, {
|
|
104
|
-
name: 'Officer and agency details',
|
|
105
|
-
pages: ['officeDetails']
|
|
106
|
-
}]
|
|
107
|
-
}];
|
|
108
|
-
const TASKS = {
|
|
109
|
-
'Date, location and mode details': {
|
|
110
|
-
complete: false,
|
|
111
|
-
currentPage: 'eventMode'
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
115
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.IN_PROGRESS);
|
|
116
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
117
|
-
});
|
|
118
|
-
it("should set tasks to '".concat(_models.TaskStates.TYPES.IN_PROGRESS, "' if they have no current page and are not complete"), () => {
|
|
119
|
-
const SECTIONS = [{
|
|
120
|
-
name: 'Add event details',
|
|
121
|
-
tasks: [{
|
|
122
|
-
name: 'Date, location and mode details',
|
|
123
|
-
pages: ['eventDate', 'eventMode']
|
|
124
|
-
}, {
|
|
125
|
-
name: 'Officer and agency details',
|
|
126
|
-
pages: ['officeDetails']
|
|
127
|
-
}]
|
|
128
|
-
}];
|
|
129
|
-
const TASKS = {
|
|
130
|
-
'Date, location and mode details': {
|
|
131
|
-
complete: false
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS);
|
|
135
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.IN_PROGRESS);
|
|
136
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
137
|
-
});
|
|
138
|
-
it("should set the status of any tasks in a section with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), () => {
|
|
139
|
-
const SECTIONS = [{
|
|
140
|
-
name: 'Add event details',
|
|
141
|
-
tasks: [{
|
|
142
|
-
name: 'Date, location and mode details',
|
|
143
|
-
pages: ['eventDate', 'eventMode']
|
|
144
|
-
}, {
|
|
145
|
-
name: 'Officer and agency details',
|
|
146
|
-
pages: ['officeDetails']
|
|
147
|
-
}]
|
|
148
|
-
}, {
|
|
149
|
-
name: 'Add people details',
|
|
150
|
-
show_when: {
|
|
151
|
-
field: 'field',
|
|
152
|
-
op: '=',
|
|
153
|
-
value: 'showMe'
|
|
154
|
-
},
|
|
155
|
-
tasks: [{
|
|
156
|
-
name: 'People details',
|
|
157
|
-
pages: ['firstName', 'surname']
|
|
158
|
-
}, {
|
|
159
|
-
name: 'Immigration details',
|
|
160
|
-
pages: ['immigrationDate']
|
|
161
|
-
}]
|
|
162
|
-
}];
|
|
163
|
-
const TASKS = {
|
|
164
|
-
'Date, location and mode details': {
|
|
165
|
-
complete: true
|
|
166
|
-
},
|
|
167
|
-
'Officer and agency details': {
|
|
168
|
-
complete: true
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
const DATA = {
|
|
172
|
-
field: 'hideMe'
|
|
173
|
-
};
|
|
174
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
175
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
176
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
177
|
-
expect(updatedSections[1].skipped).toEqual(true);
|
|
178
|
-
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
179
|
-
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
180
|
-
});
|
|
181
|
-
it("should set the status of any tasks with a failed show_when to '".concat(_models.TaskStates.TYPES.SKIPPED, "'"), () => {
|
|
182
|
-
const SECTIONS = [{
|
|
183
|
-
name: 'Add event details',
|
|
184
|
-
tasks: [{
|
|
185
|
-
name: 'Date, location and mode details',
|
|
186
|
-
pages: ['eventDate', 'eventMode'],
|
|
187
|
-
show_when: {
|
|
188
|
-
field: 'field',
|
|
189
|
-
op: '=',
|
|
190
|
-
value: 'showMe'
|
|
191
|
-
}
|
|
192
|
-
}, {
|
|
193
|
-
name: 'Officer and agency details',
|
|
194
|
-
pages: ['officeDetails'],
|
|
195
|
-
show_when: {
|
|
196
|
-
field: 'field',
|
|
197
|
-
op: '=',
|
|
198
|
-
value: 'hideMe'
|
|
199
|
-
}
|
|
200
|
-
}]
|
|
201
|
-
}];
|
|
202
|
-
const DATA = {
|
|
203
|
-
field: 'hideMe'
|
|
204
|
-
};
|
|
205
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, false, DATA);
|
|
206
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
207
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
208
|
-
});
|
|
209
|
-
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks within a section have been skipped"), () => {
|
|
210
|
-
const SECTIONS = [{
|
|
211
|
-
name: 'Add event details',
|
|
212
|
-
tasks: [{
|
|
213
|
-
name: 'task one',
|
|
214
|
-
pages: ['eventDate', 'eventMode'],
|
|
215
|
-
show_when: {
|
|
216
|
-
field: 'field',
|
|
217
|
-
op: '=',
|
|
218
|
-
value: 'hideMe'
|
|
219
|
-
}
|
|
220
|
-
}, {
|
|
221
|
-
name: 'task two',
|
|
222
|
-
pages: ['eventDate', 'eventMode'],
|
|
223
|
-
show_when: {
|
|
224
|
-
field: 'field',
|
|
225
|
-
op: '=',
|
|
226
|
-
value: 'showMe'
|
|
227
|
-
}
|
|
228
|
-
}, {
|
|
229
|
-
name: 'task three',
|
|
230
|
-
pages: ['eventDate', 'eventMode'],
|
|
231
|
-
show_when: {
|
|
232
|
-
field: 'field',
|
|
233
|
-
op: '=',
|
|
234
|
-
value: 'showMe'
|
|
235
|
-
}
|
|
236
|
-
}, {
|
|
237
|
-
name: 'task four',
|
|
238
|
-
pages: ['officeDetails'],
|
|
239
|
-
show_when: {
|
|
240
|
-
field: 'field',
|
|
241
|
-
op: '=',
|
|
242
|
-
value: 'hideMe'
|
|
243
|
-
}
|
|
244
|
-
}]
|
|
245
|
-
}];
|
|
246
|
-
const DATA = {
|
|
247
|
-
field: 'hideMe'
|
|
248
|
-
};
|
|
249
|
-
const TASKS = {
|
|
250
|
-
'task one': {
|
|
251
|
-
complete: true
|
|
252
|
-
}
|
|
253
|
-
};
|
|
254
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
255
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
256
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
257
|
-
expect(updatedSections[0].tasks[2].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
258
|
-
expect(updatedSections[0].tasks[3].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
259
|
-
});
|
|
260
|
-
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks within the last section have been skipped"), () => {
|
|
261
|
-
const SECTIONS = [{
|
|
262
|
-
name: 'Add event details',
|
|
263
|
-
tasks: [{
|
|
264
|
-
name: 'task one',
|
|
265
|
-
pages: ['eventDate', 'eventMode'],
|
|
266
|
-
show_when: {
|
|
267
|
-
field: 'field',
|
|
268
|
-
op: '=',
|
|
269
|
-
value: 'showMe'
|
|
270
|
-
}
|
|
271
|
-
}, {
|
|
272
|
-
name: 'task two',
|
|
273
|
-
pages: ['officeDetails'],
|
|
274
|
-
show_when: {
|
|
275
|
-
field: 'field',
|
|
276
|
-
op: '=',
|
|
277
|
-
value: 'hideMe'
|
|
278
|
-
}
|
|
279
|
-
}]
|
|
280
|
-
}, {
|
|
281
|
-
name: 'Add people details',
|
|
282
|
-
tasks: [{
|
|
283
|
-
name: 'task three',
|
|
284
|
-
pages: ['eventDate', 'eventMode']
|
|
285
|
-
}]
|
|
286
|
-
}];
|
|
287
|
-
const DATA = {
|
|
288
|
-
field: 'showMe'
|
|
289
|
-
};
|
|
290
|
-
const TASKS = {
|
|
291
|
-
'task one': {
|
|
292
|
-
complete: true
|
|
293
|
-
}
|
|
294
|
-
};
|
|
295
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
296
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.COMPLETE);
|
|
297
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
298
|
-
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
299
|
-
});
|
|
300
|
-
});
|
|
301
|
-
it("should set the status of any tasks to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "' if previous tasks have been skipped"), () => {
|
|
302
|
-
const SECTIONS = [{
|
|
303
|
-
name: 'Add event details',
|
|
304
|
-
show_when: {
|
|
305
|
-
field: 'field',
|
|
306
|
-
op: '=',
|
|
307
|
-
value: 'showMe'
|
|
308
|
-
},
|
|
309
|
-
tasks: [{
|
|
310
|
-
name: 'Date, location and mode details',
|
|
311
|
-
pages: ['eventDate', 'eventMode']
|
|
312
|
-
}, {
|
|
313
|
-
name: 'Officer and agency details',
|
|
314
|
-
pages: ['officeDetails']
|
|
315
|
-
}]
|
|
316
|
-
}, {
|
|
317
|
-
name: 'Add people details',
|
|
318
|
-
tasks: [{
|
|
319
|
-
name: 'People details',
|
|
320
|
-
pages: ['firstName', 'surname']
|
|
321
|
-
}, {
|
|
322
|
-
name: 'Immigration details',
|
|
323
|
-
pages: ['immigrationDate']
|
|
324
|
-
}]
|
|
325
|
-
}];
|
|
326
|
-
const TASKS = {};
|
|
327
|
-
const DATA = {
|
|
328
|
-
field: 'hideMe'
|
|
329
|
-
};
|
|
330
|
-
const updatedSections = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, false, DATA);
|
|
331
|
-
expect(updatedSections[0].skipped).toEqual(true);
|
|
332
|
-
expect(updatedSections[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
333
|
-
expect(updatedSections[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.SKIPPED);
|
|
334
|
-
expect(updatedSections[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED);
|
|
335
|
-
expect(updatedSections[1].tasks[1].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET);
|
|
336
|
-
});
|
|
337
|
-
describe('non-sequential tasks', () => {
|
|
338
|
-
const NON_SEQUENTIAL = true;
|
|
339
|
-
const SECTIONS = [{
|
|
340
|
-
name: 'First',
|
|
341
|
-
tasks: [{
|
|
342
|
-
name: 'Alpha'
|
|
343
|
-
}, {
|
|
344
|
-
name: 'Bravo'
|
|
345
|
-
}]
|
|
346
|
-
}, {
|
|
347
|
-
name: 'Second',
|
|
348
|
-
tasks: [{
|
|
349
|
-
name: 'Charlie',
|
|
350
|
-
depends_on: ['Alpha', 'Bravo']
|
|
351
|
-
}]
|
|
352
|
-
}, {
|
|
353
|
-
name: 'Third',
|
|
354
|
-
tasks: [{
|
|
355
|
-
name: 'Delta'
|
|
356
|
-
}]
|
|
357
|
-
}];
|
|
358
|
-
it("should set all states to '".concat(_models.TaskStates.TYPES.NOT_STARTED, "', except any that depend on others"), () => {
|
|
359
|
-
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, {}, NON_SEQUENTIAL);
|
|
360
|
-
expect(RESULT[0].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Alpha
|
|
361
|
-
expect(RESULT[0].tasks[1].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Bravo
|
|
362
|
-
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
363
|
-
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
364
|
-
});
|
|
365
|
-
it('should keep dependent state unable to start if any dependencies are not complete', () => {
|
|
366
|
-
const ALPHA_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
367
|
-
Alpha: {
|
|
368
|
-
complete: true
|
|
369
|
-
}
|
|
370
|
-
}, NON_SEQUENTIAL);
|
|
371
|
-
expect(ALPHA_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
372
|
-
const BRAVO_COMPLETE = (0, _getUpdatedSectionStates.default)(SECTIONS, {
|
|
373
|
-
Bravo: {
|
|
374
|
-
complete: true
|
|
375
|
-
}
|
|
376
|
-
}, NON_SEQUENTIAL);
|
|
377
|
-
expect(BRAVO_COMPLETE[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
378
|
-
});
|
|
379
|
-
it('should allow dependent state to start if all dependencies are complete', () => {
|
|
380
|
-
const TASKS = {
|
|
381
|
-
'Alpha': {
|
|
382
|
-
complete: true
|
|
383
|
-
},
|
|
384
|
-
'Bravo': {
|
|
385
|
-
complete: true
|
|
386
|
-
},
|
|
387
|
-
'Delta': {}
|
|
388
|
-
};
|
|
389
|
-
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
390
|
-
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
391
|
-
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Delta
|
|
392
|
-
});
|
|
393
|
-
it('should not allow dependent state to start if incomplete dependencies are skipped, but skipped are not ignored', () => {
|
|
394
|
-
const TASKS = {
|
|
395
|
-
'Alpha': {
|
|
396
|
-
complete: true
|
|
397
|
-
},
|
|
398
|
-
'Bravo': {
|
|
399
|
-
complete: false,
|
|
400
|
-
state: _models.TaskStates.TYPES.SKIPPED
|
|
401
|
-
},
|
|
402
|
-
'Delta': {}
|
|
403
|
-
};
|
|
404
|
-
const RESULT = (0, _getUpdatedSectionStates.default)(SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
405
|
-
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.CANNOT_START_YET); // Charlie
|
|
406
|
-
});
|
|
407
|
-
it('should allow dependent state to start if incomplete dependencies are skipped, and skipped are ignored', () => {
|
|
408
|
-
const SKIPPABLE_SECTIONS = [SECTIONS[0], _objectSpread(_objectSpread({}, SECTIONS[1]), {}, {
|
|
409
|
-
tasks: [_objectSpread(_objectSpread({}, SECTIONS[1].tasks[0]), {}, {
|
|
410
|
-
ignoreSkipped: true
|
|
411
|
-
})]
|
|
412
|
-
}), SECTIONS[2]];
|
|
413
|
-
const TASKS = {
|
|
414
|
-
'Alpha': {
|
|
415
|
-
complete: true
|
|
416
|
-
},
|
|
417
|
-
'Bravo': {
|
|
418
|
-
complete: false,
|
|
419
|
-
state: _models.TaskStates.TYPES.SKIPPED
|
|
420
|
-
},
|
|
421
|
-
'Delta': {}
|
|
422
|
-
};
|
|
423
|
-
const RESULT = (0, _getUpdatedSectionStates.default)(SKIPPABLE_SECTIONS, TASKS, NON_SEQUENTIAL);
|
|
424
|
-
expect(RESULT[1].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
425
|
-
});
|
|
426
|
-
it('should automatically skip tasks that are not shown', () => {
|
|
427
|
-
const SHOW_WHEN_SECTIONS = [{
|
|
428
|
-
name: 'First',
|
|
429
|
-
tasks: [{
|
|
430
|
-
name: 'Alpha'
|
|
431
|
-
}]
|
|
432
|
-
}, {
|
|
433
|
-
name: 'Second',
|
|
434
|
-
tasks: [{
|
|
435
|
-
name: 'Bravo',
|
|
436
|
-
show_when: [{
|
|
437
|
-
field: 'echo',
|
|
438
|
-
op: '=',
|
|
439
|
-
value: 'foxtrot'
|
|
440
|
-
}, {
|
|
441
|
-
field: 'golf',
|
|
442
|
-
op: '=',
|
|
443
|
-
value: 'indigo'
|
|
444
|
-
} // shouldn't be shown
|
|
445
|
-
]
|
|
446
|
-
}]
|
|
447
|
-
}, {
|
|
448
|
-
name: 'Third',
|
|
449
|
-
tasks: [{
|
|
450
|
-
name: 'Charlie',
|
|
451
|
-
depends_on: ['Alpha', 'Bravo'],
|
|
452
|
-
ignoreSkipped: true
|
|
453
|
-
}]
|
|
454
|
-
}];
|
|
455
|
-
const TASKS = {
|
|
456
|
-
'Alpha': {
|
|
457
|
-
complete: true
|
|
458
|
-
},
|
|
459
|
-
'Bravo': {
|
|
460
|
-
complete: false
|
|
461
|
-
},
|
|
462
|
-
'Delta': {}
|
|
463
|
-
};
|
|
464
|
-
const DATA = {
|
|
465
|
-
echo: 'foxtrot',
|
|
466
|
-
golf: 'hotel'
|
|
467
|
-
};
|
|
468
|
-
const RESULT = (0, _getUpdatedSectionStates.default)(SHOW_WHEN_SECTIONS, TASKS, NON_SEQUENTIAL, DATA);
|
|
469
|
-
expect(RESULT[2].tasks[0].state).toEqual(_models.TaskStates.TYPES.NOT_STARTED); // Charlie
|
|
470
|
-
});
|
|
471
|
-
});
|
|
472
|
-
});
|
|
473
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9kZWxzIiwicmVxdWlyZSIsIl9nZXRVcGRhdGVkU2VjdGlvblN0YXRlcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVzY3JpYmUiLCJpdCIsImNvbmNhdCIsIlRhc2tTdGF0ZXMiLCJUWVBFUyIsIkNBTk5PVF9TVEFSVF9ZRVQiLCJOT1RfU1RBUlRFRCIsIlNFQ1RJT05TIiwibmFtZSIsInRhc2tzIiwicGFnZXMiLCJ1cGRhdGVkU2VjdGlvbnMiLCJnZXRVcGRhdGVkU2VjdGlvblN0YXRlcyIsImV4cGVjdCIsInN0YXRlIiwidG9FcXVhbCIsIkNPTVBMRVRFIiwiVEFTS1MiLCJjb21wbGV0ZSIsIklOX1BST0dSRVNTIiwiY3VycmVudFBhZ2UiLCJTS0lQUEVEIiwic2hvd193aGVuIiwiZmllbGQiLCJvcCIsIkRBVEEiLCJza2lwcGVkIiwiTk9OX1NFUVVFTlRJQUwiLCJkZXBlbmRzX29uIiwiUkVTVUxUIiwiQUxQSEFfQ09NUExFVEUiLCJBbHBoYSIsIkJSQVZPX0NPTVBMRVRFIiwiQnJhdm8iLCJTS0lQUEFCTEVfU0VDVElPTlMiLCJpZ25vcmVTa2lwcGVkIiwiU0hPV19XSEVOX1NFQ1RJT05TIiwiZWNobyIsImdvbGYiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtUmVuZGVyZXIvaGVscGVycy9nZXRVcGRhdGVkU2VjdGlvblN0YXRlcy50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIExvY2FsIGltcG9ydHNcbmltcG9ydCB7IFRhc2tTdGF0ZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzIGZyb20gJy4vZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMnO1xuXG5kZXNjcmliZSgnY29tcG9uZW50cy5Gb3JtUmVuZGVyZXIuaGVscGVycy5nZXRVcGRhdGVkU2VjdGlvblN0YXRlcycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NlcXVlbnRpYWwgdGFza3MnLCAoKSA9PiB7XG4gICAgICAgIGl0KGBzaG91bGQgc2V0IGFsbCB0YXNrcyB0byAnJHtUYXNrU3RhdGVzLlRZUEVTLkNBTk5PVF9TVEFSVF9ZRVR9JyBleGNsdWRpbmcgdGhlIGZpcnN0IHdoaWNoIHNob3VsZCBiZSAnJHtUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEfSdgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgU0VDVElPTlMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZGQgZXZlbnQgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ09mZmljZXIgYW5kIGFnZW5jeSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ29mZmljZURldGFpbHMnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0FkZCBwZW9wbGUgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ1Blb3BsZSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ2ZpcnN0TmFtZScsICdzdXJuYW1lJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnSW1taWdyYXRpb24gZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydpbW1pZ3JhdGlvbkRhdGUnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdKb3VybmV5IGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnam91cm5leURldGFpbHMnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9ucyA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCB7fSk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ0FOTk9UX1NUQVJUX1lFVCk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1sxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLkNBTk5PVF9TVEFSVF9ZRVQpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMV0udGFza3NbMV0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5DQU5OT1RfU1RBUlRfWUVUKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzFdLnRhc2tzWzJdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ0FOTk9UX1NUQVJUX1lFVCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KGBzaG91bGQgc2V0IHRhc2tzIGFmdGVyIGFueSAnJHtUYXNrU3RhdGVzLlRZUEVTLkNPTVBMRVRFfScgb25lcyB0byAnJHtUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEfSdgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgU0VDVElPTlMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZGQgZXZlbnQgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ09mZmljZXIgYW5kIGFnZW5jeSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ29mZmljZURldGFpbHMnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0IFRBU0tTID0geyAnRGF0ZSwgbG9jYXRpb24gYW5kIG1vZGUgZGV0YWlscyc6IHsgY29tcGxldGU6IHRydWUgfSB9O1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9ucyA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCBUQVNLUyk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLkNPTVBMRVRFKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuTk9UX1NUQVJURUQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdChgc2hvdWxkIHNldCB0YXNrcyBhZnRlciBhbnkgJyR7VGFza1N0YXRlcy5UWVBFUy5DT01QTEVURX0nIG9uZXMgdG8gJyR7VGFza1N0YXRlcy5UWVBFUy5OT1RfU1RBUlRFRH0gYWNyb3NzIGRpZmZlcmVudCBzZWN0aW9ucydgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgU0VDVElPTlMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZGQgZXZlbnQgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ09mZmljZXIgYW5kIGFnZW5jeSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ29mZmljZURldGFpbHMnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0FkZCBwZW9wbGUgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ1Blb3BsZSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ2ZpcnN0TmFtZScsICdzdXJuYW1lJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnSW1taWdyYXRpb24gZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydpbW1pZ3JhdGlvbkRhdGUnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0IFRBU0tTID0geyAnRGF0ZSwgbG9jYXRpb24gYW5kIG1vZGUgZGV0YWlscyc6IHsgY29tcGxldGU6IHRydWUgfSwgJ09mZmljZXIgYW5kIGFnZW5jeSBkZXRhaWxzJzogeyBjb21wbGV0ZTogdHJ1ZSB9IH07XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFNlY3Rpb25zID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0VDVElPTlMsIFRBU0tTKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzBdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ09NUExFVEUpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMV0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5DT01QTEVURSk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1sxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzFdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ0FOTk9UX1NUQVJUX1lFVCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KGBzaG91bGQgc2V0IHRhc2tzIHRvICcke1Rhc2tTdGF0ZXMuVFlQRVMuSU5fUFJPR1JFU1N9JyBpZiB0aGV5IGhhdmUgYSBjdXJyZW50IHBhZ2UgYnV0IGFyZSBub3QgY29tcGxldGVgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgU0VDVElPTlMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZGQgZXZlbnQgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ09mZmljZXIgYW5kIGFnZW5jeSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ29mZmljZURldGFpbHMnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0IFRBU0tTID0geyAnRGF0ZSwgbG9jYXRpb24gYW5kIG1vZGUgZGV0YWlscyc6IHsgY29tcGxldGU6IGZhbHNlLCBjdXJyZW50UGFnZTogJ2V2ZW50TW9kZScgfSB9O1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9ucyA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCBUQVNLUyk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLklOX1BST0dSRVNTKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ0FOTk9UX1NUQVJUX1lFVCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGl0KGBzaG91bGQgc2V0IHRhc2tzIHRvICcke1Rhc2tTdGF0ZXMuVFlQRVMuSU5fUFJPR1JFU1N9JyBpZiB0aGV5IGhhdmUgbm8gY3VycmVudCBwYWdlIGFuZCBhcmUgbm90IGNvbXBsZXRlYCwgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFNFQ1RJT05TID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnQWRkIGV2ZW50IGRldGFpbHMnLFxuICAgICAgICAgICAgICB0YXNrczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlLCBsb2NhdGlvbiBhbmQgbW9kZSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ2V2ZW50RGF0ZScsICdldmVudE1vZGUnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdPZmZpY2VyIGFuZCBhZ2VuY3kgZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydvZmZpY2VEZXRhaWxzJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgICBjb25zdCBUQVNLUyA9IHsgJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnOiB7IGNvbXBsZXRlOiBmYWxzZSB9IH07XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFNlY3Rpb25zID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0VDVElPTlMsIFRBU0tTKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzBdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuSU5fUFJPR1JFU1MpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMV0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5DQU5OT1RfU1RBUlRfWUVUKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoYHNob3VsZCBzZXQgdGhlIHN0YXR1cyBvZiBhbnkgdGFza3MgaW4gYSBzZWN0aW9uIHdpdGggYSBmYWlsZWQgc2hvd193aGVuIHRvICcke1Rhc2tTdGF0ZXMuVFlQRVMuU0tJUFBFRH0nYCwgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFNFQ1RJT05TID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnQWRkIGV2ZW50IGRldGFpbHMnLFxuICAgICAgICAgICAgICB0YXNrczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlLCBsb2NhdGlvbiBhbmQgbW9kZSBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VzOiBbJ2V2ZW50RGF0ZScsICdldmVudE1vZGUnXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdPZmZpY2VyIGFuZCBhZ2VuY3kgZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydvZmZpY2VEZXRhaWxzJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZGQgcGVvcGxlIGRldGFpbHMnLFxuICAgICAgICAgICAgICBzaG93X3doZW46IHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2ZpZWxkJyxcbiAgICAgICAgICAgICAgICBvcDogJz0nLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnc2hvd01lJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0YXNrczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdQZW9wbGUgZGV0YWlscycsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydmaXJzdE5hbWUnLCAnc3VybmFtZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0ltbWlncmF0aW9uIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnaW1taWdyYXRpb25EYXRlJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXTtcbiAgICAgICAgICBjb25zdCBUQVNLUyA9IHsgJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnOiB7IGNvbXBsZXRlOiB0cnVlIH0sICdPZmZpY2VyIGFuZCBhZ2VuY3kgZGV0YWlscyc6IHsgY29tcGxldGU6IHRydWUgfSB9O1xuICAgICAgICAgIGNvbnN0IERBVEEgPSB7IGZpZWxkOiAnaGlkZU1lJyB9O1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9ucyA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCBUQVNLUywgZmFsc2UsIERBVEEpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMF0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5DT01QTEVURSk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS50YXNrc1sxXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLkNPTVBMRVRFKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzFdLnNraXBwZWQpLnRvRXF1YWwodHJ1ZSk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1sxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLlNLSVBQRUQpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMV0udGFza3NbMV0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5TS0lQUEVEKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoYHNob3VsZCBzZXQgdGhlIHN0YXR1cyBvZiBhbnkgdGFza3Mgd2l0aCBhIGZhaWxlZCBzaG93X3doZW4gdG8gJyR7VGFza1N0YXRlcy5UWVBFUy5TS0lQUEVEfSdgLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgU0VDVElPTlMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdBZGQgZXZlbnQgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUsIGxvY2F0aW9uIGFuZCBtb2RlIGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgICAgc2hvd193aGVuOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnZmllbGQnLFxuICAgICAgICAgICAgICAgICAgICBvcDogJz0nLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3Nob3dNZSdcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnT2ZmaWNlciBhbmQgYWdlbmN5IGRldGFpbHMnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnb2ZmaWNlRGV0YWlscyddLFxuICAgICAgICAgICAgICAgICAgc2hvd193aGVuOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnZmllbGQnLFxuICAgICAgICAgICAgICAgICAgICBvcDogJz0nLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2hpZGVNZSdcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0IERBVEEgPSB7IGZpZWxkOiAnaGlkZU1lJyB9O1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9ucyA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCB7fSwgZmFsc2UsIERBVEEpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMF0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5TS0lQUEVEKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuTk9UX1NUQVJURUQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpdChgc2hvdWxkIHNldCB0aGUgc3RhdHVzIG9mIGFueSB0YXNrcyB0byAnJHtUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEfScgaWYgcHJldmlvdXMgdGFza3Mgd2l0aGluIGEgc2VjdGlvbiBoYXZlIGJlZW4gc2tpcHBlZGAsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBTRUNUSU9OUyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0FkZCBldmVudCBkZXRhaWxzJyxcbiAgICAgICAgICAgICAgdGFza3M6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAndGFzayBvbmUnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgICAgc2hvd193aGVuOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnZmllbGQnLFxuICAgICAgICAgICAgICAgICAgICBvcDogJz0nLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2hpZGVNZSdcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAndGFzayB0d28nLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddLFxuICAgICAgICAgICAgICAgICAgc2hvd193aGVuOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnZmllbGQnLFxuICAgICAgICAgICAgICAgICAgICBvcDogJz0nLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3Nob3dNZSdcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAndGFzayB0aHJlZScsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydldmVudERhdGUnLCAnZXZlbnRNb2RlJ10sXG4gICAgICAgICAgICAgICAgICBzaG93X3doZW46IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdmaWVsZCcsXG4gICAgICAgICAgICAgICAgICAgIG9wOiAnPScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnc2hvd01lJ1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICd0YXNrIGZvdXInLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnb2ZmaWNlRGV0YWlscyddLFxuICAgICAgICAgICAgICAgICAgc2hvd193aGVuOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnZmllbGQnLFxuICAgICAgICAgICAgICAgICAgICBvcDogJz0nLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2hpZGVNZSdcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0IERBVEEgPSB7IGZpZWxkOiAnaGlkZU1lJyB9O1xuICAgICAgICAgIGNvbnN0IFRBU0tTID0geyAndGFzayBvbmUnOiB7IGNvbXBsZXRlOiB0cnVlIH0gfTtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkU2VjdGlvbnMgPSBnZXRVcGRhdGVkU2VjdGlvblN0YXRlcyhTRUNUSU9OUywgVEFTS1MsIGZhbHNlLCBEQVRBKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzBdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ09NUExFVEUpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMV0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5TS0lQUEVEKTtcbiAgICAgICAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzJdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuU0tJUFBFRCk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS50YXNrc1szXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaXQoYHNob3VsZCBzZXQgdGhlIHN0YXR1cyBvZiBhbnkgdGFza3MgdG8gJyR7VGFza1N0YXRlcy5UWVBFUy5OT1RfU1RBUlRFRH0nIGlmIHByZXZpb3VzIHRhc2tzIHdpdGhpbiB0aGUgbGFzdCBzZWN0aW9uIGhhdmUgYmVlbiBza2lwcGVkYCwgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFNFQ1RJT05TID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnQWRkIGV2ZW50IGRldGFpbHMnLFxuICAgICAgICAgICAgICB0YXNrczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICd0YXNrIG9uZScsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydldmVudERhdGUnLCAnZXZlbnRNb2RlJ10sXG4gICAgICAgICAgICAgICAgICBzaG93X3doZW46IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdmaWVsZCcsXG4gICAgICAgICAgICAgICAgICAgIG9wOiAnPScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnc2hvd01lJ1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICd0YXNrIHR3bycsXG4gICAgICAgICAgICAgICAgICBwYWdlczogWydvZmZpY2VEZXRhaWxzJ10sXG4gICAgICAgICAgICAgICAgICBzaG93X3doZW46IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdmaWVsZCcsXG4gICAgICAgICAgICAgICAgICAgIG9wOiAnPScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnaGlkZU1lJ1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ0FkZCBwZW9wbGUgZGV0YWlscycsXG4gICAgICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ3Rhc2sgdGhyZWUnLFxuICAgICAgICAgICAgICAgICAgcGFnZXM6IFsnZXZlbnREYXRlJywgJ2V2ZW50TW9kZSddXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF07XG4gICAgICAgICAgY29uc3QgREFUQSA9IHsgZmllbGQ6ICdzaG93TWUnIH07XG4gICAgICAgICAgY29uc3QgVEFTS1MgPSB7ICd0YXNrIG9uZSc6IHsgY29tcGxldGU6IHRydWUgfSB9O1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRTZWN0aW9ucyA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCBUQVNLUywgZmFsc2UsIERBVEEpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMF0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5DT01QTEVURSk7XG4gICAgICAgICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS50YXNrc1sxXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLlNLSVBQRUQpO1xuICAgICAgICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMV0udGFza3NbMF0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5OT1RfU1RBUlRFRCk7XG4gICAgICAgIH0pXG4gIH0pO1xuXG4gIGl0KGBzaG91bGQgc2V0IHRoZSBzdGF0dXMgb2YgYW55IHRhc2tzIHRvICcke1Rhc2tTdGF0ZXMuVFlQRVMuTk9UX1NUQVJURUR9JyBpZiBwcmV2aW91cyB0YXNrcyBoYXZlIGJlZW4gc2tpcHBlZGAsICgpID0+IHtcbiAgICBjb25zdCBTRUNUSU9OUyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0FkZCBldmVudCBkZXRhaWxzJyxcbiAgICAgICAgc2hvd193aGVuOiB7XG4gICAgICAgICAgZmllbGQ6ICdmaWVsZCcsXG4gICAgICAgICAgb3A6ICc9JyxcbiAgICAgICAgICB2YWx1ZTogJ3Nob3dNZSdcbiAgICAgICAgfSxcbiAgICAgICAgdGFza3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnRGF0ZSwgbG9jYXRpb24gYW5kIG1vZGUgZGV0YWlscycsXG4gICAgICAgICAgICBwYWdlczogWydldmVudERhdGUnLCAnZXZlbnRNb2RlJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnT2ZmaWNlciBhbmQgYWdlbmN5IGRldGFpbHMnLFxuICAgICAgICAgICAgcGFnZXM6IFsnb2ZmaWNlRGV0YWlscyddLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnQWRkIHBlb3BsZSBkZXRhaWxzJyxcbiAgICAgICAgdGFza3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUGVvcGxlIGRldGFpbHMnLFxuICAgICAgICAgICAgcGFnZXM6IFsnZmlyc3ROYW1lJywgJ3N1cm5hbWUnXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdJbW1pZ3JhdGlvbiBkZXRhaWxzJyxcbiAgICAgICAgICAgIHBhZ2VzOiBbJ2ltbWlncmF0aW9uRGF0ZSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF07XG4gICAgY29uc3QgVEFTS1MgPSB7IH07XG4gICAgY29uc3QgREFUQSA9IHsgZmllbGQ6ICdoaWRlTWUnIH07XG4gICAgY29uc3QgdXBkYXRlZFNlY3Rpb25zID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0VDVElPTlMsIFRBU0tTLCBmYWxzZSwgREFUQSk7XG4gICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1swXS5za2lwcGVkKS50b0VxdWFsKHRydWUpO1xuICAgIGV4cGVjdCh1cGRhdGVkU2VjdGlvbnNbMF0udGFza3NbMF0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5TS0lQUEVEKTtcbiAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzBdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuU0tJUFBFRCk7XG4gICAgZXhwZWN0KHVwZGF0ZWRTZWN0aW9uc1sxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTtcbiAgICBleHBlY3QodXBkYXRlZFNlY3Rpb25zWzFdLnRhc2tzWzFdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ0FOTk9UX1NUQVJUX1lFVCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdub24tc2VxdWVudGlhbCB0YXNrcycsICgpID0+IHtcbiAgICBjb25zdCBOT05fU0VRVUVOVElBTCA9IHRydWU7XG4gICAgY29uc3QgU0VDVElPTlMgPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdGaXJzdCcsXG4gICAgICAgIHRhc2tzOiBbIHsgbmFtZTogJ0FscGhhJyB9LCB7IG5hbWU6ICdCcmF2bycgfSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnU2Vjb25kJyxcbiAgICAgICAgdGFza3M6IFsgeyBuYW1lOiAnQ2hhcmxpZScsIGRlcGVuZHNfb246IFsgJ0FscGhhJywgJ0JyYXZvJyBdIH0gXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1RoaXJkJyxcbiAgICAgICAgdGFza3M6IFsgeyBuYW1lOiAnRGVsdGEnIH0gXVxuICAgICAgfVxuICAgIF07XG4gICAgaXQoYHNob3VsZCBzZXQgYWxsIHN0YXRlcyB0byAnJHtUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEfScsIGV4Y2VwdCBhbnkgdGhhdCBkZXBlbmQgb24gb3RoZXJzYCwgKCkgPT4ge1xuICAgICAgY29uc3QgUkVTVUxUID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0VDVElPTlMsIHt9LCBOT05fU0VRVUVOVElBTCk7XG4gICAgICBleHBlY3QoUkVTVUxUWzBdLnRhc2tzWzBdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuTk9UX1NUQVJURUQpOyAvLyBBbHBoYVxuICAgICAgZXhwZWN0KFJFU1VMVFswXS50YXNrc1sxXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTsgLy8gQnJhdm9cbiAgICAgIGV4cGVjdChSRVNVTFRbMV0udGFza3NbMF0uc3RhdGUpLnRvRXF1YWwoVGFza1N0YXRlcy5UWVBFUy5DQU5OT1RfU1RBUlRfWUVUKTsgLy8gQ2hhcmxpZVxuICAgICAgZXhwZWN0KFJFU1VMVFsyXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTsgLy8gRGVsdGFcbiAgICB9KTtcbiAgXG4gICAgaXQoJ3Nob3VsZCBrZWVwIGRlcGVuZGVudCBzdGF0ZSB1bmFibGUgdG8gc3RhcnQgaWYgYW55IGRlcGVuZGVuY2llcyBhcmUgbm90IGNvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgY29uc3QgQUxQSEFfQ09NUExFVEUgPSBnZXRVcGRhdGVkU2VjdGlvblN0YXRlcyhTRUNUSU9OUywgeyBBbHBoYTogeyBjb21wbGV0ZTogdHJ1ZSB9fSwgTk9OX1NFUVVFTlRJQUwpO1xuICAgICAgZXhwZWN0KEFMUEhBX0NPTVBMRVRFWzFdLnRhc2tzWzBdLnN0YXRlKS50b0VxdWFsKFRhc2tTdGF0ZXMuVFlQRVMuQ0FOTk9UX1NUQVJUX1lFVCk7IC8vIENoYXJsaWVcbiAgICAgIGNvbnN0IEJSQVZPX0NPTVBMRVRFID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0VDVElPTlMsIHsgQnJhdm86IHsgY29tcGxldGU6IHRydWUgfX0sIE5PTl9TRVFVRU5USUFMKTtcbiAgICAgIGV4cGVjdChCUkFWT19DT01QTEVURVsxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLkNBTk5PVF9TVEFSVF9ZRVQpOyAvLyBDaGFybGllXG4gICAgfSk7XG4gIFxuICAgIGl0KCdzaG91bGQgYWxsb3cgZGVwZW5kZW50IHN0YXRlIHRvIHN0YXJ0IGlmIGFsbCBkZXBlbmRlbmNpZXMgYXJlIGNvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgY29uc3QgVEFTS1MgPSB7XG4gICAgICAgICdBbHBoYSc6IHsgY29tcGxldGU6IHRydWUgfSxcbiAgICAgICAgJ0JyYXZvJzogeyBjb21wbGV0ZTogdHJ1ZSB9LFxuICAgICAgICAnRGVsdGEnOiB7fVxuICAgICAgfTtcbiAgICAgIGNvbnN0IFJFU1VMVCA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCBUQVNLUywgTk9OX1NFUVVFTlRJQUwpO1xuICAgICAgZXhwZWN0KFJFU1VMVFsxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTsgLy8gQ2hhcmxpZVxuICAgICAgZXhwZWN0KFJFU1VMVFsyXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTsgLy8gRGVsdGFcbiAgICB9KTtcbiAgXG4gICAgaXQoJ3Nob3VsZCBub3QgYWxsb3cgZGVwZW5kZW50IHN0YXRlIHRvIHN0YXJ0IGlmIGluY29tcGxldGUgZGVwZW5kZW5jaWVzIGFyZSBza2lwcGVkLCBidXQgc2tpcHBlZCBhcmUgbm90IGlnbm9yZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBUQVNLUyA9IHtcbiAgICAgICAgJ0FscGhhJzogeyBjb21wbGV0ZTogdHJ1ZSB9LFxuICAgICAgICAnQnJhdm8nOiB7IGNvbXBsZXRlOiBmYWxzZSwgc3RhdGU6IFRhc2tTdGF0ZXMuVFlQRVMuU0tJUFBFRCB9LFxuICAgICAgICAnRGVsdGEnOiB7fVxuICAgICAgfTtcbiAgICAgIGNvbnN0IFJFU1VMVCA9IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzKFNFQ1RJT05TLCBUQVNLUywgTk9OX1NFUVVFTlRJQUwpO1xuICAgICAgZXhwZWN0KFJFU1VMVFsxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLkNBTk5PVF9TVEFSVF9ZRVQpOyAvLyBDaGFybGllXG4gICAgfSk7XG4gIFxuICAgIGl0KCdzaG91bGQgYWxsb3cgZGVwZW5kZW50IHN0YXRlIHRvIHN0YXJ0IGlmIGluY29tcGxldGUgZGVwZW5kZW5jaWVzIGFyZSBza2lwcGVkLCBhbmQgc2tpcHBlZCBhcmUgaWdub3JlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IFNLSVBQQUJMRV9TRUNUSU9OUyA9IFtcbiAgICAgICAgU0VDVElPTlNbMF0sXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5TRUNUSU9OU1sxXSxcbiAgICAgICAgICB0YXNrczogW1xuICAgICAgICAgICAgeyAuLi5TRUNUSU9OU1sxXS50YXNrc1swXSwgaWdub3JlU2tpcHBlZDogdHJ1ZSB9XG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBTRUNUSU9OU1syXVxuICAgICAgXTtcbiAgICAgIGNvbnN0IFRBU0tTID0ge1xuICAgICAgICAnQWxwaGEnOiB7IGNvbXBsZXRlOiB0cnVlIH0sXG4gICAgICAgICdCcmF2byc6IHsgY29tcGxldGU6IGZhbHNlLCBzdGF0ZTogVGFza1N0YXRlcy5UWVBFUy5TS0lQUEVEIH0sXG4gICAgICAgICdEZWx0YSc6IHt9XG4gICAgICB9O1xuICAgICAgY29uc3QgUkVTVUxUID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0tJUFBBQkxFX1NFQ1RJT05TLCBUQVNLUywgTk9OX1NFUVVFTlRJQUwpO1xuICAgICAgZXhwZWN0KFJFU1VMVFsxXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTsgLy8gQ2hhcmxpZVxuICAgIH0pO1xuICBcbiAgICBpdCgnc2hvdWxkIGF1dG9tYXRpY2FsbHkgc2tpcCB0YXNrcyB0aGF0IGFyZSBub3Qgc2hvd24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBTSE9XX1dIRU5fU0VDVElPTlMgPSBbXG4gICAgICAgIHsgbmFtZTogJ0ZpcnN0JywgdGFza3M6IFt7IG5hbWU6ICdBbHBoYScgfV0gfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZWNvbmQnLFxuICAgICAgICAgIHRhc2tzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdCcmF2bycsXG4gICAgICAgICAgICAgIHNob3dfd2hlbjogW1xuICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdlY2hvJywgb3A6ICc9JywgdmFsdWU6ICdmb3h0cm90JyB9LFxuICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdnb2xmJywgb3A6ICc9JywgdmFsdWU6ICdpbmRpZ28nIH0gLy8gc2hvdWxkbid0IGJlIHNob3duXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVGhpcmQnLFxuICAgICAgICAgIHRhc2tzOiBbIHsgbmFtZTogJ0NoYXJsaWUnLCBkZXBlbmRzX29uOiBbICdBbHBoYScsICdCcmF2bycgXSwgaWdub3JlU2tpcHBlZDogdHJ1ZSB9IF1cbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIGNvbnN0IFRBU0tTID0ge1xuICAgICAgICAnQWxwaGEnOiB7IGNvbXBsZXRlOiB0cnVlIH0sXG4gICAgICAgICdCcmF2byc6IHsgY29tcGxldGU6IGZhbHNlIH0sXG4gICAgICAgICdEZWx0YSc6IHt9XG4gICAgICB9O1xuICAgICAgY29uc3QgREFUQSA9IHtcbiAgICAgICAgZWNobzogJ2ZveHRyb3QnLFxuICAgICAgICBnb2xmOiAnaG90ZWwnXG4gICAgICB9O1xuICAgICAgY29uc3QgUkVTVUxUID0gZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMoU0hPV19XSEVOX1NFQ1RJT05TLCBUQVNLUywgTk9OX1NFUVVFTlRJQUwsIERBVEEpO1xuICAgICAgZXhwZWN0KFJFU1VMVFsyXS50YXNrc1swXS5zdGF0ZSkudG9FcXVhbChUYXNrU3RhdGVzLlRZUEVTLk5PVF9TVEFSVEVEKTsgLy8gQ2hhcmxpZVxuICAgIH0pO1xuXG4gIH0pO1xufSk7XG4iXSwibWFw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LENBQUNaLGtCQUFVLENBQUNDLEtBQUssQ0FBQ0UsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLE1BQU07TUFDN0QsTUFBTW1DLGtCQUFrQixHQUFHLENBQ3pCO1FBQUU1QixJQUFJLEVBQUUsT0FBTztRQUFFQyxLQUFLLEVBQUUsQ0FBQztVQUFFRCxJQUFJLEVBQUU7UUFBUSxDQUFDO01BQUUsQ0FBQyxFQUM3QztRQUNFQSxJQUFJLEVBQUUsUUFBUTtRQUNkQyxLQUFLLEVBQUUsQ0FDTDtVQUNFRCxJQUFJLEVBQUUsT0FBTztVQUNiYyxTQUFTLEVBQUUsQ0FDVDtZQUFFQyxLQUFLLEVBQUUsTUFBTTtZQUFFQyxFQUFFLEVBQUUsR0FBRztZQUFFbkMsS0FBSyxFQUFFO1VBQVUsQ0FBQyxFQUM1QztZQUFFa0MsS0FBSyxFQUFFLE1BQU07WUFBRUMsRUFBRSxFQUFFLEdBQUc7WUFBRW5DLEtBQUssRUFBRTtVQUFTLENBQUMsQ0FBQztVQUFBO1FBRWhELENBQUM7TUFFTCxDQUFDLEVBQ0Q7UUFDRW1CLElBQUksRUFBRSxPQUFPO1FBQ2JDLEtBQUssRUFBRSxDQUFFO1VBQUVELElBQUksRUFBRSxTQUFTO1VBQUVvQixVQUFVLEVBQUUsQ0FBRSxPQUFPLEVBQUUsT0FBTyxDQUFFO1VBQUVPLGFBQWEsRUFBRTtRQUFLLENBQUM7TUFDckYsQ0FBQyxDQUNGO01BQ0QsTUFBTWxCLEtBQUssR0FBRztRQUNaLE9BQU8sRUFBRTtVQUFFQyxRQUFRLEVBQUU7UUFBSyxDQUFDO1FBQzNCLE9BQU8sRUFBRTtVQUFFQSxRQUFRLEVBQUU7UUFBTSxDQUFDO1FBQzVCLE9BQU8sRUFBRSxDQUFDO01BQ1osQ0FBQztNQUNELE1BQU1PLElBQUksR0FBRztRQUNYWSxJQUFJLEVBQUUsU0FBUztRQUNmQyxJQUFJLEVBQUU7TUFDUixDQUFDO01BQ0QsTUFBTVQsTUFBTSxHQUFHLElBQUFqQixnQ0FBdUIsRUFBQ3dCLGtCQUFrQixFQUFFbkIsS0FBSyxFQUFFVSxjQUFjLEVBQUVGLElBQUksQ0FBQztNQUN2RlosTUFBTSxDQUFDZ0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDcEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDSyxLQUFLLENBQUMsQ0FBQ0MsT0FBTyxDQUFDWixrQkFBVSxDQUFDQyxLQUFLLENBQUNFLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO0VBRUosQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _canActionProceed = _interopRequireDefault(require("./canActionProceed"));
|
|
8
|
-
var _canCYASubmit = _interopRequireDefault(require("./canCYASubmit"));
|
|
9
|
-
var _cleanHiddenNestedData = _interopRequireDefault(require("./cleanHiddenNestedData"));
|
|
10
|
-
var _getFormState = _interopRequireDefault(require("./getFormState"));
|
|
11
|
-
var _getRelevantPages = _interopRequireDefault(require("./getRelevantPages"));
|
|
12
|
-
var _getNextPageId = _interopRequireDefault(require("./getNextPageId"));
|
|
13
|
-
var _getPage = _interopRequireDefault(require("./getPage"));
|
|
14
|
-
var _getSubmissionStatus = _interopRequireDefault(require("./getSubmissionStatus"));
|
|
15
|
-
var _getUpdatedSectionStates = _interopRequireDefault(require("./getUpdatedSectionStates"));
|
|
16
|
-
var _clearOutUncompletedRoutes = _interopRequireDefault(require("./clearOutUncompletedRoutes"));
|
|
17
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
// Local imports
|
|
19
|
-
|
|
20
|
-
const helpers = {
|
|
21
|
-
canActionProceed: _canActionProceed.default,
|
|
22
|
-
canCYASubmit: _canCYASubmit.default,
|
|
23
|
-
cleanHiddenNestedData: _cleanHiddenNestedData.default,
|
|
24
|
-
getFormState: _getFormState.default,
|
|
25
|
-
getRelevantPages: _getRelevantPages.default,
|
|
26
|
-
getNextPageId: _getNextPageId.default,
|
|
27
|
-
getPage: _getPage.default,
|
|
28
|
-
getSubmissionStatus: _getSubmissionStatus.default,
|
|
29
|
-
getUpdatedSectionStates: _getUpdatedSectionStates.default,
|
|
30
|
-
clearOutUncompletedRoutes: _clearOutUncompletedRoutes.default
|
|
31
|
-
};
|
|
32
|
-
var _default = exports.default = helpers;
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2FuQWN0aW9uUHJvY2VlZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NhbkNZQVN1Ym1pdCIsIl9jbGVhbkhpZGRlbk5lc3RlZERhdGEiLCJfZ2V0Rm9ybVN0YXRlIiwiX2dldFJlbGV2YW50UGFnZXMiLCJfZ2V0TmV4dFBhZ2VJZCIsIl9nZXRQYWdlIiwiX2dldFN1Ym1pc3Npb25TdGF0dXMiLCJfZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMiLCJfY2xlYXJPdXRVbmNvbXBsZXRlZFJvdXRlcyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhlbHBlcnMiLCJjYW5BY3Rpb25Qcm9jZWVkIiwiY2FuQ1lBU3VibWl0IiwiY2xlYW5IaWRkZW5OZXN0ZWREYXRhIiwiZ2V0Rm9ybVN0YXRlIiwiZ2V0UmVsZXZhbnRQYWdlcyIsImdldE5leHRQYWdlSWQiLCJnZXRQYWdlIiwiZ2V0U3VibWlzc2lvblN0YXR1cyIsImdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzIiwiY2xlYXJPdXRVbmNvbXBsZXRlZFJvdXRlcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm1SZW5kZXJlci9oZWxwZXJzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIExvY2FsIGltcG9ydHNcbmltcG9ydCBjYW5BY3Rpb25Qcm9jZWVkIGZyb20gJy4vY2FuQWN0aW9uUHJvY2VlZCc7XG5pbXBvcnQgY2FuQ1lBU3VibWl0IGZyb20gJy4vY2FuQ1lBU3VibWl0JztcbmltcG9ydCBjbGVhbkhpZGRlbk5lc3RlZERhdGEgZnJvbSAnLi9jbGVhbkhpZGRlbk5lc3RlZERhdGEnO1xuaW1wb3J0IGdldEZvcm1TdGF0ZSBmcm9tICcuL2dldEZvcm1TdGF0ZSc7XG5pbXBvcnQgZ2V0UmVsZXZhbnRQYWdlcyBmcm9tICcuL2dldFJlbGV2YW50UGFnZXMnO1xuaW1wb3J0IGdldE5leHRQYWdlSWQgZnJvbSAnLi9nZXROZXh0UGFnZUlkJztcbmltcG9ydCBnZXRQYWdlIGZyb20gJy4vZ2V0UGFnZSc7XG5pbXBvcnQgZ2V0U3VibWlzc2lvblN0YXR1cyBmcm9tICcuL2dldFN1Ym1pc3Npb25TdGF0dXMnO1xuaW1wb3J0IGdldFVwZGF0ZWRTZWN0aW9uU3RhdGVzIGZyb20gJy4vZ2V0VXBkYXRlZFNlY3Rpb25TdGF0ZXMnO1xuaW1wb3J0IGNsZWFyT3V0VW5jb21wbGV0ZWRSb3V0ZXMgZnJvbSBcIi4vY2xlYXJPdXRVbmNvbXBsZXRlZFJvdXRlc1wiO1xuXG5jb25zdCBoZWxwZXJzID0ge1xuICBjYW5BY3Rpb25Qcm9jZWVkLFxuICBjYW5DWUFTdWJtaXQsXG4gIGNsZWFuSGlkZGVuTmVzdGVkRGF0YSxcbiAgZ2V0Rm9ybVN0YXRlLFxuICBnZXRSZWxldmFudFBhZ2VzLFxuICBnZXROZXh0UGFnZUlkLFxuICBnZXRQYWdlLFxuICBnZXRTdWJtaXNzaW9uU3RhdHVzLFxuICBnZXRVcGRhdGVkU2VjdGlvblN0YXRlcyxcbiAgY2xlYXJPdXRVbmNvbXBsZXRlZFJvdXRlc1xufTtcbmV4cG9ydCBkZWZhdWx0IGhlbHBlcnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxzQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSx3QkFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsMEJBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFvRSxTQUFBRCx1QkFBQVcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQVZwRTs7QUFZQSxNQUFNRyxPQUFPLEdBQUc7RUFDZEMsZ0JBQWdCLEVBQWhCQSx5QkFBZ0I7RUFDaEJDLFlBQVksRUFBWkEscUJBQVk7RUFDWkMscUJBQXFCLEVBQXJCQSw4QkFBcUI7RUFDckJDLFlBQVksRUFBWkEscUJBQVk7RUFDWkMsZ0JBQWdCLEVBQWhCQSx5QkFBZ0I7RUFDaEJDLGFBQWEsRUFBYkEsc0JBQWE7RUFDYkMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxtQkFBbUIsRUFBbkJBLDRCQUFtQjtFQUNuQkMsdUJBQXVCLEVBQXZCQSxnQ0FBdUI7RUFDdkJDLHlCQUF5QixFQUF6QkE7QUFDRixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLENBQUFiLE9BQUEsR0FDYUMsT0FBTyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _FormRenderer = _interopRequireDefault(require("./FormRenderer"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
var _default = exports.default = _FormRenderer.default;
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRm9ybVJlbmRlcmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJGb3JtUmVuZGVyZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtUmVuZGVyZXIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZvcm1SZW5kZXJlciBmcm9tICcuL0Zvcm1SZW5kZXJlcic7XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1SZW5kZXJlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsYUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQTBDLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsSUFBQUcsUUFBQSxHQUFBQyxPQUFBLENBQUFGLE9BQUEsR0FFM0JHLHFCQUFZIiwiaWdub3JlTGlzdCI6W119
|