* From top to bottom. (the last one should be globalTooltipModel);
(
modelCascade: TooltipModelOptionCascade[],
globalTooltipModel: TooltipModel,
defaultTooltipOption?: CommonTooltipOption<unknown>
)
| 1069 | * From top to bottom. (the last one should be globalTooltipModel); |
| 1070 | */ |
| 1071 | function buildTooltipModel( |
| 1072 | modelCascade: TooltipModelOptionCascade[], |
| 1073 | globalTooltipModel: TooltipModel, |
| 1074 | defaultTooltipOption?: CommonTooltipOption<unknown> |
| 1075 | ): Model<TooltipOption & ComponentItemTooltipOption<unknown>> { |
| 1076 | // Last is always tooltip model. |
| 1077 | const ecModel = globalTooltipModel.ecModel; |
| 1078 | let resultModel: Model<TooltipOption & ComponentItemTooltipOption<unknown>>; |
| 1079 | |
| 1080 | if (defaultTooltipOption) { |
| 1081 | resultModel = new Model(defaultTooltipOption, ecModel, ecModel); |
| 1082 | resultModel = new Model(globalTooltipModel.option, resultModel, ecModel); |
| 1083 | } |
| 1084 | else { |
| 1085 | resultModel = globalTooltipModel as Model<TooltipOption & ComponentItemTooltipOption<unknown>>; |
| 1086 | } |
| 1087 | |
| 1088 | for (let i = modelCascade.length - 1; i >= 0; i--) { |
| 1089 | let tooltipOpt = modelCascade[i]; |
| 1090 | if (tooltipOpt) { |
| 1091 | if (tooltipOpt instanceof Model) { |
| 1092 | tooltipOpt = (tooltipOpt as Model<TooltipableOption>).get('tooltip', true); |
| 1093 | } |
| 1094 | // In each data item tooltip can be simply write: |
| 1095 | // { |
| 1096 | // value: 10, |
| 1097 | // tooltip: 'Something you need to know' |
| 1098 | // } |
| 1099 | if (isString(tooltipOpt)) { |
| 1100 | tooltipOpt = { |
| 1101 | formatter: tooltipOpt |
| 1102 | }; |
| 1103 | } |
| 1104 | if (tooltipOpt) { |
| 1105 | resultModel = new Model(tooltipOpt, resultModel, ecModel); |
| 1106 | } |
| 1107 | } |
| 1108 | } |
| 1109 | |
| 1110 | return resultModel as Model<TooltipOption & ComponentItemTooltipOption<unknown>>; |
| 1111 | } |
| 1112 | |
| 1113 | function makeDispatchAction(payload: ShowTipPayload | HideTipPayload, api: ExtensionAPI) { |
| 1114 | return payload.dispatchAction || bind(api.dispatchAction, api); |
no test coverage detected
searching dependent graphs…