in packages/network-navigator-powerbi/src/dataConversion.ts [86:129]
function getNode(
id: string,
dvIdentity: powerbi.DataViewScopeIdentity,
isSource: boolean,
nodeWeight: number,
color: string = "gray",
labelColor: string,
group: number = 0): INetworkNavigatorSelectableNode {
const column = table.columns[isSource ? sourceIdx : targetIdx];
let node = nodeMap[id];
if (!nodeMap[id]) {
const builder = createIdBuilder();
const identityColumn = dataView.metadata.columns.filter(n => n.queryName === column.queryName)[0];
const filterTargetColumn = columnToFilter || identityColumn;
const target: models.IFilterColumnTarget = {
table: filterTargetColumn.queryName.substr(0, filterTargetColumn.queryName.indexOf(".")),
column: filterTargetColumn.displayName,
};
const filter = <models.IAdvancedFilter><any>new models.AdvancedFilter(target, "And", {
operator: "Is",
value: id,
});
node = nodeMap[id] = {
name: id,
color: color || "gray",
labelColor,
index: nodeList.length,
filter,
value: nodeWeight,
neighbors: 1,
selected: false,
identity: builder ? builder
.withCategory({
// https://community.powerbi.com/t5/Developer/Creating-Selection-manager-for-Custom-Table-visuals/m-p/218391/highlight/true#M6869
source: identityColumn,
values: <any>null,
identity: [dvIdentity],
}, 0)
.createSelectionId() : <any>-1,
};
nodeList.push(node);
}
return node;
}