Skip to content

Commit 9738051

Browse files
committed
opt: opt overlay event trigger display.
1 parent 467cece commit 9738051

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/Store.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1236,10 +1236,12 @@ export default class StoreImp implements Store {
12361236
if (isValid(OverlayClazz)) {
12371237
const id = create.id ?? createId(OVERLAY_ID_PREFIX)
12381238
const overlay = new OverlayClazz()
1239+
const paneId = overlay.paneId
12391240
create.id = id
12401241
create.groupId ??= id
1242+
const zLevel = this.getOverlaysByPaneId(paneId).length
1243+
create.zLevel ??= zLevel
12411244
overlay.override(create)
1242-
const paneId = overlay.paneId
12431245
if (!updatePaneIds.includes(paneId)) {
12441246
updatePaneIds.push(paneId)
12451247
}
@@ -1383,6 +1385,7 @@ export default class StoreImp implements Store {
13831385
let ignoreUpdateFlag = false
13841386
let sortFlag = false
13851387
if (overlay !== null) {
1388+
overlay.override({ zLevel: overlay.getPrevZLevel() })
13861389
sortFlag = true
13871390
if (isFunction(overlay.onMouseLeave)) {
13881391
overlay.onMouseLeave({ chart: this._chart, overlay, figureKey, figureIndex, ...event })
@@ -1391,6 +1394,8 @@ export default class StoreImp implements Store {
13911394
}
13921395

13931396
if (infoOverlay !== null) {
1397+
infoOverlay.setPrevZLevel(infoOverlay.zLevel)
1398+
infoOverlay.override({ zLevel: Number.MAX_SAFE_INTEGER })
13941399
sortFlag = true
13951400
if (isFunction(infoOverlay.onMouseEnter)) {
13961401
infoOverlay.onMouseEnter({ chart: this._chart, overlay: infoOverlay, figureKey: info.figureKey, figureIndex: info.figureIndex, ...event })

src/component/Overlay.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,8 @@ export default class OverlayImp implements Overlay {
322322
onSelected: Nullable<OverlayEventCallback> = null
323323
onDeselected: Nullable<OverlayEventCallback> = null
324324

325+
private _prevZLevel = 0
326+
325327
private _prevOverlay: Overlay
326328

327329
private _prevPressedPoint: Nullable<Partial<Point>> = null
@@ -393,6 +395,10 @@ export default class OverlayImp implements Overlay {
393395
}
394396
}
395397

398+
getPrevZLevel (): number { return this._prevZLevel }
399+
400+
setPrevZLevel (zLevel: number): void { this._prevZLevel = zLevel }
401+
396402
shouldUpdate (): { draw: boolean, sort: boolean } {
397403
const sort = this._prevOverlay.zLevel !== this.zLevel
398404
const draw = sort ||

0 commit comments

Comments
 (0)