Skip to content

Commit acd120e

Browse files
Release (#1644)
* Fix 1641 (#1642) * fix: support shadowRoot #1641 * chore: commit changeset * chore: remove gui from test cases for now * chore(release): bump version (#1643) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 0bb1bbe commit acd120e

File tree

99 files changed

+478
-82
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+478
-82
lines changed

__tests__/main.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import * as lil from 'lil-gui';
21
import { runtime, Canvas, CanvasEvent } from '../packages/g';
32
import { Renderer as CanvasRenderer } from '../packages/g-canvas';
43
import { Renderer as CanvaskitRenderer } from '../packages/g-canvaskit';
@@ -209,10 +208,10 @@ function createSpecRender(object) {
209208
window.__g_instances__ = [canvas];
210209

211210
// GUI
212-
const gui = new lil.GUI({ autoPlace: false });
213-
$div.appendChild(gui.domElement);
211+
// const gui = new lil.GUI({ autoPlace: false });
212+
// $div.appendChild(gui.domElement);
214213

215-
await generate({ canvas, renderer, container: $div, gui });
214+
await generate({ canvas, renderer, container: $div });
216215

217216
if (
218217
selectRenderer.value === 'canvas' &&

jest.node.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,5 @@ module.exports = {
4747
globalSetup: './scripts/jest/setup.js',
4848
globalTeardown: './scripts/jest/teardown.js',
4949
testEnvironment: './scripts/jest/environment.js',
50+
testPathIgnorePatterns: ['<rootDir>/__tests__/main.ts'],
5051
};

packages/g-camera-api/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-camera-api
22

3+
## 1.2.25
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 1.2.24
411

512
### Patch Changes

packages/g-camera-api/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-camera-api",
3-
"version": "1.2.24",
3+
"version": "1.2.25",
44
"description": "A simple implementation of Camera API.",
55
"keywords": [
66
"antv",

packages/g-canvas/CHANGELOG.md

+13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# @antv/g-canvas
22

3+
## 1.11.29
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
- @antv/g-plugin-canvas-path-generator@1.3.24
10+
- @antv/g-plugin-canvas-picker@1.10.26
11+
- @antv/g-plugin-canvas-renderer@1.9.26
12+
- @antv/g-plugin-dom-interaction@1.9.24
13+
- @antv/g-plugin-html-renderer@1.9.27
14+
- @antv/g-plugin-image-loader@1.3.24
15+
316
## 1.11.28
417

518
### Patch Changes

packages/g-canvas/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-canvas",
3-
"version": "1.11.28",
3+
"version": "1.11.29",
44
"description": "A renderer implemented by Canvas 2D API",
55
"keywords": [
66
"antv",

packages/g-canvaskit/CHANGELOG.md

+13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# @antv/g-canvaskit
22

3+
## 0.10.29
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
- @antv/g-plugin-canvas-path-generator@1.3.24
10+
- @antv/g-plugin-canvas-picker@1.10.26
11+
- @antv/g-plugin-canvaskit-renderer@1.3.25
12+
- @antv/g-plugin-dom-interaction@1.9.24
13+
- @antv/g-plugin-html-renderer@1.9.27
14+
- @antv/g-plugin-image-loader@1.3.24
15+
316
## 0.10.28
417

518
### Patch Changes

packages/g-canvaskit/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-canvaskit",
3-
"version": "0.10.28",
3+
"version": "0.10.29",
44
"description": "A renderer implemented by CanvasKit",
55
"keywords": [
66
"antv",

packages/g-components/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-components
22

3+
## 1.9.24
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 1.9.23
411

512
### Patch Changes

packages/g-components/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-components",
3-
"version": "1.9.23",
3+
"version": "1.9.24",
44
"description": "Components for g",
55
"keywords": [
66
"antv",

packages/g-dom-mutation-observer-api/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-dom-mutation-observer-api
22

3+
## 1.2.24
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 1.2.23
411

512
### Patch Changes

packages/g-dom-mutation-observer-api/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-dom-mutation-observer-api",
3-
"version": "1.2.23",
3+
"version": "1.2.24",
44
"description": "A simple implementation of DOM MutationObserver API.",
55
"keywords": [
66
"antv",

packages/g-gesture/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-gesture
22

3+
## 2.2.27
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 2.2.26
411

512
### Patch Changes

packages/g-gesture/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-gesture",
3-
"version": "2.2.26",
3+
"version": "2.2.27",
44
"description": "G Gesture",
55
"keywords": [
66
"antv",

packages/g-image-exporter/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-image-exporter
22

3+
## 0.7.24
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 0.7.23
411

512
### Patch Changes

packages/g-image-exporter/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-image-exporter",
3-
"version": "0.7.23",
3+
"version": "0.7.24",
44
"description": "A image exporter for G using DOM API",
55
"keywords": [
66
"antv",

packages/g-lite/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @antv/g-lite
22

3+
## 1.2.24
4+
5+
### Patch Changes
6+
7+
- 10397c19: Support shadowRoot when picking.
8+
39
## 1.2.23
410

511
### Patch Changes

packages/g-lite/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-lite",
3-
"version": "1.2.23",
3+
"version": "1.2.24",
44
"description": "A core module for rendering engine implements DOM API.",
55
"keywords": [
66
"antv",

packages/g-lite/src/plugins/EventPlugin.ts

+6-14
Original file line numberDiff line numberDiff line change
@@ -94,20 +94,12 @@ export class EventPlugin implements RenderingPlugin {
9494
const $element =
9595
this.context.contextService.getDomElement() as HTMLCanvasElement;
9696

97-
let outside = 'outside';
98-
try {
99-
outside =
100-
$element &&
101-
nativeEvent.target &&
102-
nativeEvent.target !== $element &&
103-
$element.contains &&
104-
!$element.contains(nativeEvent.target as Node)
105-
? 'outside'
106-
: '';
107-
} catch (e) {
108-
// nativeEvent.target maybe not Node, such as Window
109-
// @see https://github.com/antvis/G/issues/1235
110-
}
97+
const isNativeEventFromCanvas =
98+
this.context.eventService.isNativeEventFromCanvas(
99+
$element,
100+
nativeEvent,
101+
);
102+
const outside = !isNativeEventFromCanvas ? 'outside' : '';
111103
const normalizedEvents = this.normalizeToPointerEvent(
112104
nativeEvent,
113105
canvas,

packages/g-lite/src/services/EventService.ts

+22-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import EventEmitter from 'eventemitter3';
22
import { mat4, vec3 } from 'gl-matrix';
3-
import type { CanvasContext, GlobalRuntime } from '..';
3+
import type { CanvasContext, GlobalRuntime, InteractivePointerEvent } from '..';
44
import type { HTML } from '../display-objects';
55
import type { FederatedEvent } from '../dom/FederatedEvent';
66
import { FederatedMouseEvent } from '../dom/FederatedMouseEvent';
@@ -709,10 +709,16 @@ export class EventService {
709709
* whether the native event trigger came from Canvas,
710710
* should account for HTML shape
711711
*/
712-
private isNativeEventFromCanvas(event: FederatedEvent) {
713-
const $el = this.context.contextService.getDomElement();
714-
715-
const target = event.nativeEvent?.target;
712+
isNativeEventFromCanvas(
713+
$el: HTMLCanvasElement,
714+
nativeEvent: InteractivePointerEvent,
715+
) {
716+
let target = nativeEvent?.target as Element;
717+
// Get event target inside a web component.
718+
// @see https://stackoverflow.com/questions/57963312/get-event-target-inside-a-web-component
719+
if (target?.shadowRoot) {
720+
target = nativeEvent.composedPath()[0] as Element;
721+
}
716722

717723
if (target) {
718724
// from <canvas>
@@ -726,8 +732,8 @@ export class EventService {
726732
}
727733
}
728734

729-
if (event.nativeEvent.composedPath) {
730-
return event.nativeEvent.composedPath().indexOf($el as EventTarget) > -1;
735+
if (nativeEvent?.composedPath) {
736+
return nativeEvent.composedPath().indexOf($el as EventTarget) > -1;
731737
}
732738

733739
// account for Touch
@@ -779,10 +785,13 @@ export class EventService {
779785
event.originalEvent = from;
780786

781787
const existedHTML = this.getExistedHTML(event);
788+
const $el =
789+
this.context.contextService.getDomElement() as HTMLCanvasElement;
782790
event.target =
783791
target ??
784792
(existedHTML ||
785-
(this.isNativeEventFromCanvas(event) && this.pickTarget(event)) ||
793+
(this.isNativeEventFromCanvas($el, event.nativeEvent) &&
794+
this.pickTarget(event)) ||
786795
fallbackTarget);
787796

788797
if (typeof type === 'string') {
@@ -802,9 +811,13 @@ export class EventService {
802811
event.nativeEvent = from.nativeEvent;
803812
event.originalEvent = from;
804813
const existedHTML = this.getExistedHTML(event);
814+
815+
const $el =
816+
this.context.contextService.getDomElement() as HTMLCanvasElement;
805817
event.target =
806818
existedHTML ||
807-
(this.isNativeEventFromCanvas(event) && this.pickTarget(event));
819+
(this.isNativeEventFromCanvas($el, event.nativeEvent) &&
820+
this.pickTarget(event));
808821
return event;
809822
}
810823

packages/g-lottie-player/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-lottie-player
22

3+
## 0.2.24
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 0.2.23
411

512
### Patch Changes

packages/g-lottie-player/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-lottie-player",
3-
"version": "0.2.23",
3+
"version": "0.2.24",
44
"description": "A lottie player for G",
55
"keywords": [
66
"antv",

packages/g-mobile-canvas-element/CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# @antv/g-mobile-canvas-element
22

3+
## 0.8.24
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
310
## 0.8.23
411

512
### Patch Changes

packages/g-mobile-canvas-element/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-mobile-canvas-element",
3-
"version": "0.8.23",
3+
"version": "0.8.24",
44
"description": "Create a CanvasLike element from existed context in mobile environment",
55
"keywords": [
66
"antv",

packages/g-mobile-canvas/CHANGELOG.md

+14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# @antv/g-mobile-canvas
22

3+
## 0.11.17
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-lite@1.2.24
9+
- @antv/g-plugin-canvas-path-generator@1.3.24
10+
- @antv/g-plugin-canvas-picker@1.10.26
11+
- @antv/g-plugin-canvas-renderer@1.9.26
12+
- @antv/g-plugin-dragndrop@1.8.24
13+
- @antv/g-plugin-gesture@1.2.12
14+
- @antv/g-plugin-image-loader@1.3.24
15+
- @antv/g-plugin-mobile-interaction@0.9.24
16+
317
## 0.11.16
418

519
### Patch Changes

packages/g-mobile-canvas/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-mobile-canvas",
3-
"version": "0.11.16",
3+
"version": "0.11.17",
44
"description": "A renderer implemented with Canvas2D API in mobile environment",
55
"keywords": [
66
"antv",

packages/g-mobile-svg/CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# @antv/g-mobile-svg
22

3+
## 0.10.29
4+
5+
### Patch Changes
6+
7+
- Updated dependencies [10397c19]
8+
- @antv/g-plugin-svg-picker@1.9.28
9+
- @antv/g-lite@1.2.24
10+
- @antv/g-plugin-dragndrop@1.8.24
11+
- @antv/g-plugin-gesture@1.2.12
12+
- @antv/g-plugin-mobile-interaction@0.9.24
13+
- @antv/g-plugin-svg-renderer@1.10.28
14+
315
## 0.10.28
416

517
### Patch Changes

packages/g-mobile-svg/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@antv/g-mobile-svg",
3-
"version": "0.10.28",
3+
"version": "0.10.29",
44
"description": "A renderer implemented by SVG in mobile environment",
55
"keywords": [
66
"antv",

0 commit comments

Comments
 (0)