public static Assisted()

in src/assessments/assessment-builder.tsx [198:297]


    public static Assisted(assessment: AssistedAssessment): Assessment {
        const { key, requirements } = assessment;

        assessment.initialDataCreator =
            assessment.initialDataCreator || createInitialAssessmentTestData;

        requirements.forEach(AssessmentBuilder.applyDefaultReportFieldMap);
        requirements.forEach(AssessmentBuilder.applyDefaultFunctions);

        const getAnalyzer = (provider: AnalyzerProvider, requirement: string) => {
            const requirementConfig = AssessmentBuilder.getRequirementConfig(
                requirements,
                requirement,
            );
            if (requirementConfig.getAnalyzer == null) {
                return provider.createBaseAnalyzer({
                    key: requirementConfig.key,
                    testType: assessment.visualizationType,
                    analyzerMessageType: Messages.Assessment.AssessmentScanCompleted,
                });
            }
            return requirementConfig.getAnalyzer(provider);
        };

        const getIdentifier = (requirement: string) => {
            const requirementConfig = AssessmentBuilder.getRequirementConfig(
                requirements,
                requirement,
            );
            return requirementConfig.key;
        };

        const getDrawer = (
            provider: DrawerProvider,
            requirement: string,
            featureFlagStoreData?: FeatureFlagStoreData,
        ) => {
            const requirementConfig = AssessmentBuilder.getRequirementConfig(
                requirements,
                requirement,
            );
            if (requirementConfig.getDrawer == null) {
                return provider.createNullDrawer();
            }
            return requirementConfig.getDrawer(provider, featureFlagStoreData);
        };

        const getNotificationMessage = (
            selectorMap: DictionaryStringTo<any>,
            requirement?: string,
        ) => {
            const requirementConfig = AssessmentBuilder.getRequirementConfig(
                requirements,
                requirement,
            );
            if (requirementConfig.getNotificationMessage == null) {
                return null;
            }
            return requirementConfig.getNotificationMessage(selectorMap);
        };

        const getStoreData: (data: TestsEnabledState) => ScanData = data =>
            data.assessments[assessment.storeDataKey];

        const visualizationConfiguration: AssessmentVisualizationConfiguration = {
            testViewType: 'Assessment',
            getAssessmentData: data => data.assessments[key],
            setAssessmentData: (data, selectorMap, instanceMap) => {
                const thisAssessment = data.assessments[key];
                thisAssessment.fullAxeResultsMap = selectorMap;
                thisAssessment.generatedAssessmentInstancesMap = instanceMap;
            },
            getStoreData: getStoreData,
            enableTest: (data, payload) =>
                AssessmentBuilder.enableTest(
                    getStoreData(data),
                    payload as AssessmentToggleActionPayload,
                ),
            disableTest: AssessmentBuilder.disableTest,
            getTestStatus: AssessmentBuilder.getTestStatus,
            telemetryProcessor: factory => factory.forAssessmentRequirementScan,
            ...assessment.visualizationConfiguration,
            key: assessment.storeDataKey,
            getAnalyzer: getAnalyzer,
            getIdentifier: getIdentifier,
            visualizationInstanceProcessor:
                AssessmentBuilder.getVisualizationInstanceProcessor(requirements),
            getDrawer: getDrawer,
            getNotificationMessage: getNotificationMessage,
            getSwitchToTargetTabOnScan: AssessmentBuilder.getSwitchToTargetTabOnScan(requirements),
            getInstanceIdentiferGenerator: AssessmentBuilder.getInstanceIdentifier(requirements),
        } as AssessmentVisualizationConfiguration;

        AssessmentBuilder.buildRequirementReportDescription(requirements);

        return {
            getVisualizationConfiguration: () => visualizationConfiguration,
            ...assessment,
        } as Assessment;
    }