MCPcopy Create free account
hub / github.com/tensorflow/tensorboard / labelBuild

Function labelBuild

tensorboard/plugins/graph/tf_graph_common/node.ts:410–462  ·  view source on GitHub ↗

* Append svg text for label and assign data. * @param nodeGroup * @param renderNodeInfo The render node information for the label. * @param sceneElement polymer element.

(
  nodeGroup,
  renderNodeInfo: render.RenderNodeInfo,
  sceneElement
)

Source from the content-addressed store, hash-verified

408 * @param sceneElement <tf-graph-scene> polymer element.
409 */
410function labelBuild(
411 nodeGroup,
412 renderNodeInfo: render.RenderNodeInfo,
413 sceneElement
414) {
415 let text = renderNodeInfo.displayName;
416 // Truncate long labels for unexpanded Metanodes.
417 let useFontScale =
418 renderNodeInfo.node.type === NodeType.META && !renderNodeInfo.expanded;
419 let label = tf_graph_common.selectOrCreateChild(
420 nodeGroup,
421 'text',
422 Class.Node.LABEL
423 );
424 // Make sure the label is visually on top among its siblings.
425 let labelNode = <HTMLElement>label.node();
426 labelNode.parentNode?.appendChild(labelNode);
427 label.attr('dy', '.35em').attr('text-anchor', 'middle');
428
429 // In tf-graph-scene styles, fontSizes are defined to vary from 6px to 9px. Since we
430 // do not want to invoke computedStyles or hardcode the fontSize that would be
431 // duplicated in styles, we are rounding it to 8px which does not cause any visible
432 // jank.
433 let fontSize = 8;
434
435 switch (renderNodeInfo.node.type) {
436 case NodeType.META:
437 fontSize = renderNodeInfo.expanded
438 ? FontSizeInPx.Node.EXPANDED_LABEL
439 : FontSizeInPx.Node.SERIES_LABEL;
440 break;
441 case NodeType.OP:
442 fontSize = FontSizeInPx.Node.OP_LABEL;
443 break;
444 }
445
446 if (useFontScale) {
447 if (text.length > sceneElement.maxMetanodeLabelLength) {
448 text = text.substr(0, sceneElement.maxMetanodeLabelLength - 2) + '…';
449 }
450 let scale = getLabelFontScale(sceneElement);
451 label.attr('font-size', scale(text.length) + 'px');
452 fontSize = scale(text.length);
453 }
454 let txtElement = <d3.Selection<any, any, any, any>>label.text(text);
455 enforceLabelWidth(
456 txtElement,
457 renderNodeInfo.node.type,
458 fontSize,
459 renderNodeInfo
460 );
461 return label;
462}
463
464/**
465 * This function shortens text which would exceed the maximum pixel width of

Callers 1

buildGroupFunction · 0.85

Calls 4

getLabelFontScaleFunction · 0.85
enforceLabelWidthFunction · 0.85
nodeMethod · 0.80
textMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…