Open OpportunityLiu opened 3 years ago
附上我现在做的修正
import { View, EdgeView } from '@antv/x6';
// WORKAROUND: 修复获取 EventTarget
View.prototype.getEventTarget = function getEventTarget(
e: JQuery.TriggeredEvent,
options: { fromPoint?: boolean } = {},
): unknown {
// Touchmove/Touchend event's target is not reflecting the element
// under the coordinates as mousemove does.
// It holds the element when a touchstart triggered.
const { type, clientX = 0, clientY = 0 } = e;
if (options.fromPoint || type === 'touchmove' || type === 'touchend') {
let rootNode: HTMLDocument | ShadowRoot | undefined;
if (this.container && 'getRootNode' in this.container) {
rootNode = this.container.getRootNode() as HTMLDocument | ShadowRoot;
}
if (!rootNode || !('elementFromPoint' in rootNode)) {
rootNode = document;
}
return rootNode.elementFromPoint(clientX, clientY);
}
return e.target as unknown;
};
// WORKAROUND: 修复全局事件的 target
View.prototype.normalizeEvent = function <T extends JQuery.TriggeredEvent>(evt: T) {
return normalizeEvent(evt, this.container);
};
// WORKAROUND: 修复全局事件的 target
const _normalizeEvent = View.normalizeEvent;
View.normalizeEvent = normalizeEvent;
/** 设置正确的 target */
function normalizeEvent<T extends JQuery.TriggeredEvent>(event: T, element?: Element): T {
event = _normalizeEvent(event);
let original: Event & JQuery.TriggeredEvent = event as unknown as Event & JQuery.TriggeredEvent;
while (original.originalEvent) {
original = original.originalEvent as Event & JQuery.TriggeredEvent;
}
if (original.composed) {
const path = original.composedPath();
let start = path.length - 1;
if (element) {
const root = element.getRootNode();
if (root instanceof DocumentFragment) {
const fixedStart = path.lastIndexOf(root);
if (fixedStart > 0) start = fixedStart;
}
}
let containerIndex = -1,
fragmentIndex = -1;
for (let i = start; i >= 0; i--) {
const el = path[i];
if (containerIndex < 0) {
if (el instanceof HTMLElement && el.classList.contains('x6-graph')) {
containerIndex = i;
continue;
}
} else if (fragmentIndex < 0) {
if (el instanceof DocumentFragment) {
fragmentIndex = i;
break;
}
}
}
if (containerIndex >= 0) {
const target = path[fragmentIndex + 1];
event.target = target;
}
}
return event;
}
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
Any idea?
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
@OpportunityLiu 暂时还没有精力来看这块
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
与遇到了同样的问题,大神支持一下呗。
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
@yurili8 可以按照上面 @OpportunityLiu 的用法来支持。
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
While @OpportunityLiu's patch works for click/touch events (thank you!), there seems to still be an issue with events such as hover in ShadowDOM
Hiya!
This issue has gone quiet. Spooky quiet. 👻
We get a lot of issues, so we currently close issues after 60 days of inactivity. It’s been at least 20 days since the last update here. If we missed this issue or if you want to keep it open, please reply here. You can also add the label "not-stale" to keep this issue open!
As a friendly reminder: the best way to see this issue, or any other, fixed is to open a Pull Request. Check out contribute for more information about opening PRs, triaging issues, and contributing!
Thanks for being a part of the AntV community! 💪💯
Expected Behavior
支持 ShadowDom 和 WebComponents 提供官方封装的 WebComponent
Possible Solution
Related #835
主要是:
Additional Context
目前我的项目是在 shadowDom 里使用 X6 的,做了一些修改后暂时还没有发现什么问题。
但是还是希望官方能够考虑支持 shadowDom