portability: getPercent()

in packages/react/src/store/selectors/tableSelectors.ts [396:430]


        portability: getPercent(compatibleApis.values[0], compatibleApis.values[1]),
        portabilityNumber: getPercentNumber(compatibleApis.values[0], compatibleApis.values[1]),
        isProjectPage: project != null
      } as SourceFile;
    });
  }
)((_state, locationPathname) => locationPathname);

export const selectNugetTableData = createCachedSelector(
  selectCurrentSolutionApiAnalysis,
  selectNugetPackages,
  selectProjects,
  getProjectIfExists,
  selectTargetFramework,
  (apiAnalysis, packageToPackageAnalysisResult, projects, project, targetFramework) => {
    if (!isLoaded(projects) || (project != null && !isLoaded(project))) {
      return [];
    }
    const selectedProjects = project != null ? [project.data] : projects.data;
    const fileApiFrequency = selectedProjects
      .flatMap(project => (project.projectFilePath == null ? [] : apiAnalysis[project.projectFilePath]))
      .reduce<{ [packageVersion: string]: { file: number; api: number; sourceFilesList: string[]; apiSet: Set<string> } }>((agg, current) => {
        if (!isLoaded(current) || current.data.sourceFileAnalysisResults == null) {
          return agg;
        }
        current.data.sourceFileAnalysisResults.forEach(sourceFileAnalysisResult => {
          const packageVersionsInFile = new Set<string>();
          sourceFileAnalysisResult.apiAnalysisResults.forEach(apiResult => {
            if (
              apiResult == null ||
              apiResult?.codeEntityDetails == null ||
              apiResult?.codeEntityDetails?.package == null ||
              apiResult?.codeEntityDetails?.package?.packageId == null ||
              apiResult?.codeEntityDetails?.package?.version == null
            ) {