/*!
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: MIT-0
*/
import React, {useState, useEffect} from 'react';
import { Grid, Row, Col, Table, Tag, Stack } from 'rsuite';
import compmeddata from 'src/assets/compmed-pii.json';
import groupBy from 'lodash/groupBy';
const { Column, HeaderCell, Cell } = Table;
const CompactCell = props => {
if(props.dataKey === 'entity'){
return
{props.rowData.entity}
| ;
}
if(props.dataKey === 'entity_type'){
return
{props.rowData.entity_type}
| ;
}
if(props.dataKey === 'score'){
return
{props.rowData.score}
| ;
}
if(props.dataKey === 'category'){
return
{props.rowData.category}
| ;
}
if(props.dataKey === "traits"){
return
{
props.rowData.traits.map(elem=> {
return
Trait: {elem.name} , Confidence: {elem.score}
})
}
|
}
return | ;
}
const CompactHeaderCell = props => ;
const defaultColumns = [
{
key: 'entity',
label: 'Entity',
flexGrow: 2,
verticalAlign: 'middle'
},
{
key: 'entity_type',
label: 'Entity Type',
flexGrow: 2,
verticalAlign: 'middle'
},
{
key: 'category',
label: 'Category',
width: 0,
verticalAlign: 'middle'
},
{
key: 'score',
label: 'Confidence',
flexGrow: 1,
verticalAlign: 'middle',
visible: false
},
{
key: 'traits',
label: 'Traits',
flexGrow: 2,
verticalAlign: 'middle'
}
];
const PiiDisplay = () => {
const [columnKeys] = useState(defaultColumns.map(column => column.key));
const columns = defaultColumns.filter(column => columnKeys.some(key => key === column.key));
const [data, setdata] = useState(undefined)
useEffect(() => {
const entities = compmeddata["Entities"];
const dataset = [];
for(const entity of entities){
let ent = {};
ent["entity"] = entity["Text"];
ent["entity_type"] = entity["Type"];
ent["score"] = parseInt(entity["Score"].toPrecision(2) * 100,10)+"%";
ent["category"] = entity["Category"];
let traits = entity["Traits"], trait_list = [];
if(traits.length > 0){
for(const tr of traits){
const trt = {}
trt["name"] = tr["Name"];
trt["score"] = parseInt(tr["Score"].toPrecision(2) * 100,10)+"%"
trait_list.push(trt);
}
}
ent["traits"] = trait_list; //.join(",");
dataset.push(ent)
}
const grouped = groupBy(dataset, elem => elem.category);
console.log(grouped)
setdata(grouped);
}, [])
return (
{/* */}
{
(data)&&
Object.keys(data).map((category, i) => {
return
Entity Category: {category}
{columns.map(column => {
const { key, label, ...rest } = column;
return (
{label}
);
})}
})
}
)
}
export default PiiDisplay