MCPcopy
hub / github.com/apache/echarts / setLabelLineStyle

Function setLabelLineStyle

src/label/labelGuideHelper.ts:589–662  ·  view source on GitHub ↗
(
    targetEl: Element,
    statesModels: Record<DisplayState, LabelLineModel>,
    defaultStyle?: Polyline['style']
)

Source from the content-addressed store, hash-verified

587 * Create a label line if necessary and set it's style.
588 */
589export function setLabelLineStyle(
590 targetEl: Element,
591 statesModels: Record<DisplayState, LabelLineModel>,
592 defaultStyle?: Polyline['style']
593) {
594 let labelLine = targetEl.getTextGuideLine();
595 const label = targetEl.getTextContent();
596 if (!label) {
597 // Not show label line if there is no label.
598 if (labelLine) {
599 targetEl.removeTextGuideLine();
600 }
601 return;
602 }
603
604 const normalModel = statesModels.normal;
605 const showNormal = normalModel.get('show');
606 const labelIgnoreNormal = label.ignore;
607
608 for (let i = 0; i < DISPLAY_STATES.length; i++) {
609 const stateName = DISPLAY_STATES[i];
610 const stateModel = statesModels[stateName];
611 const isNormal = stateName === 'normal';
612 if (stateModel) {
613 const stateShow = stateModel.get('show');
614 const isLabelIgnored = isNormal
615 ? labelIgnoreNormal
616 : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);
617 if (isLabelIgnored // Not show when label is not shown in this state.
618 || !retrieve2(stateShow, showNormal) // Use normal state by default if not set.
619 ) {
620 const stateObj = isNormal ? labelLine : (labelLine && labelLine.states[stateName]);
621 if (stateObj) {
622 stateObj.ignore = true;
623 }
624 if (!!labelLine) {
625 setLabelLineState(labelLine, true, stateName, stateModel);
626 }
627 continue;
628 }
629 // Create labelLine if not exists
630 if (!labelLine) {
631 labelLine = new Polyline();
632 targetEl.setTextGuideLine(labelLine);
633 // Reset state of normal because it's new created.
634 // NOTE: NORMAL should always been the first!
635 if (!isNormal && (labelIgnoreNormal || !showNormal)) {
636 setLabelLineState(labelLine, true, 'normal', statesModels.normal);
637 }
638
639 // Use same state proxy.
640 if (targetEl.stateProxy) {
641 labelLine.stateProxy = targetEl.stateProxy;
642 }
643 }
644
645 setLabelLineState(labelLine, false, stateName, stateModel);
646 }

Callers 3

_updateLabelMethod · 0.90
_updateLabelMethod · 0.90
_updateLabelLineMethod · 0.90

Calls 2

setLabelLineStateFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…