function getNode()

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;
    }