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

Function resetLabelForRegion

src/component/helper/MapDraw.ts:679–763  ·  view source on GitHub ↗
(
    mapOrGeoModel: MapOrGeoModel,
    data: SeriesData | NullUndefined,
    el: Element,
    regionName: string,
    regionModel: RegionModel,
    // Exist only if `viewBuildCtx.data` exists.
    dataIdx: number,
    // If labelXY not provided, use `textConfig.position: 'inside'`
    labelXY: number[]
)

Source from the content-addressed store, hash-verified

677}
678
679function resetLabelForRegion(
680 mapOrGeoModel: MapOrGeoModel,
681 data: SeriesData | NullUndefined,
682 el: Element,
683 regionName: string,
684 regionModel: RegionModel,
685 // Exist only if `viewBuildCtx.data` exists.
686 dataIdx: number,
687 // If labelXY not provided, use `textConfig.position: 'inside'`
688 labelXY: number[]
689): void {
690 const isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx) as number);
691 const itemLayout = data && data.getItemLayout(dataIdx);
692
693 // In the following cases label will be drawn
694 // 1. In map series and data value is NaN
695 // 2. In geo component
696 // 3. Region has no series legendIcon, which will be add a showLabel flag in mapSymbolLayout
697 if (
698 ((isGeoModel(mapOrGeoModel) || isDataNaN))
699 || (itemLayout && itemLayout.showLabel)
700 ) {
701
702 const query = !isGeoModel(mapOrGeoModel) ? dataIdx : regionName;
703 let labelFetcher;
704
705 // Consider dataIdx not found.
706 if (!data || dataIdx >= 0) {
707 labelFetcher = mapOrGeoModel;
708 }
709
710 const specifiedTextOpt: Partial<Record<DisplayState, TextStyleProps>> = labelXY ? {
711 normal: {
712 align: 'center',
713 verticalAlign: 'middle'
714 }
715 } : null;
716
717 // Caveat: must be called after `setDefaultStateProxy(el);` called.
718 // because textContent will be assign with `el.stateProxy` inside.
719 setLabelStyle<typeof query>(
720 el,
721 getLabelStatesModels(regionModel),
722 {
723 labelFetcher,
724 labelDataIndex: query,
725 defaultText: regionName
726 },
727 specifiedTextOpt
728 );
729
730 const textEl = el.getTextContent();
731 if (textEl) {
732 mapLabelRaw(textEl).ignore = textEl.ignore;
733
734 if (el.textConfig && labelXY) {
735 // Compute a relative offset based on the el bounding rect.
736 const rect = el.getBoundingRect().clone();

Callers 2

createCompoundPathMethod · 0.85
_buildSVGMethod · 0.85

Calls 8

setLabelStyleFunction · 0.90
getLabelStatesModelsFunction · 0.90
isGeoModelFunction · 0.85
mapDimensionMethod · 0.80
getItemLayoutMethod · 0.80
getMethod · 0.45
cloneMethod · 0.45
getBoundingRectMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…