private createInstanceElem()

in src/UXClient/Components/HierarchyNavigation/HierarchyNavigation.ts [1869:1932]


  private createInstanceElem(i) {
    let instanceElem = d3.create("div").classed("tsi-modelResult", true);
    let firstLine = instanceElem.append("div").classed("tsi-modelPK", true);
    i.highlights.name
      ? Utils.appendFormattedElementsFromString(firstLine, i.highlights.name)
      : Utils.appendFormattedElementsFromString(
        firstLine,
        Utils.getHighlightedTimeSeriesIdToDisplay(i)
      );

    let secondLine = instanceElem
      .append("div")
      .classed("tsi-modelHighlights", true);
    Utils.appendFormattedElementsFromString(
      secondLine,
      i.highlights.description && i.highlights.description.length
        ? i.highlights.description
        : "No description"
    );

    secondLine.append("br");

    let hitTuples = [];
    if (i.highlights.name) {
      hitTuples.push([
        this.getString("Time Series ID"),
        Utils.getHighlightedTimeSeriesIdToDisplay(i),
      ]);
    }
    if (i.highlights.instanceFieldNames) {
      i.highlights.instanceFieldNames.forEach((ifn, idx) => {
        var val = i.highlights.instanceFieldValues[idx];
        if (this.searchString) {
          if (this.hasHits(ifn) || this.hasHits(val)) {
            hitTuples.push([ifn, i.highlights.instanceFieldValues[idx]]);
          }
        } else if (val.length !== 0) {
          hitTuples.push([ifn, i.highlights.instanceFieldValues[idx]]);
        }
      });
    }


    let rows = secondLine
      .append("table")
      .selectAll("tr")
      .data(hitTuples)
      .enter()
      .append("tr");
    let cells = rows.selectAll("td").data(function (d) {
      return d;
    });
    cells
      .enter()
      .append("td")
      .each(function (d) {
        Utils.appendFormattedElementsFromString(d3.select(this), d);
      })
      .merge(cells as d3.Selection<HTMLTableCellElement,unknown,HTMLTableRowElement,any>);
    cells.exit().remove();
    rows.exit().remove();

    return instanceElem;
  }