(idx: number, key: K)
| 1210 | */ |
| 1211 | // TODO: use key to save visual to reduce memory. |
| 1212 | ensureUniqueItemVisual<K extends keyof Visual>(idx: number, key: K): Visual[K] { |
| 1213 | const itemVisuals = this._itemVisuals; |
| 1214 | let itemVisual = itemVisuals[idx] as Visual; |
| 1215 | if (!itemVisual) { |
| 1216 | itemVisual = itemVisuals[idx] = {} as Visual; |
| 1217 | } |
| 1218 | let val = itemVisual[key]; |
| 1219 | if (val == null) { |
| 1220 | val = this.getVisual(key); |
| 1221 | |
| 1222 | // TODO Performance? |
| 1223 | if (zrUtil.isArray(val)) { |
| 1224 | val = val.slice() as unknown as Visual[K]; |
| 1225 | } |
| 1226 | else if (isObject(val)) { |
| 1227 | val = zrUtil.extend({}, val); |
| 1228 | } |
| 1229 | |
| 1230 | itemVisual[key] = val; |
| 1231 | } |
| 1232 | return val; |
| 1233 | } |
| 1234 | /** |
| 1235 | * Set visual property of single data item |
| 1236 | * |
no test coverage detected