From 0ad29c1e7e4555c3ffc9c3cbddd50c4230d7948e Mon Sep 17 00:00:00 2001 From: chenshenhai Date: Sun, 13 Jun 2021 22:51:27 +0800 Subject: [PATCH] fix: @idraw/core select status --- .../examples/features/{index.html => main.html} | 4 ++-- packages/core/src/index.ts | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) rename packages/core/examples/features/{index.html => main.html} (93%) diff --git a/packages/core/examples/features/index.html b/packages/core/examples/features/main.html similarity index 93% rename from packages/core/examples/features/index.html rename to packages/core/examples/features/main.html index dce8fb1..9c35813 100644 --- a/packages/core/examples/features/index.html +++ b/packages/core/examples/features/main.html @@ -11,7 +11,7 @@
-
+
@@ -26,7 +26,7 @@ -
+
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index ff91012..3712c12 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -89,19 +89,23 @@ class Core { this[_renderer].render(this[_data], this[_helper].getConfig()); } - selectElement(index: number): void { + selectElement(index: number, opts?: { useMode?: boolean }): void { if (this[_data].elements[index]) { const uuid = this[_data].elements[index].uuid; - this[_mode] = Mode.SELECT_ELEMENT; + if (opts?.useMode === true) { + this[_mode] = Mode.SELECT_ELEMENT; + } else { + this[_mode] = Mode.NULL; + } this[_selectedUUID] = uuid; this.draw(); } } - selectElementByUUID(uuid: string): void { + selectElementByUUID(uuid: string, opts?: { useMode?: boolean }): void { const index = this[_helper].getElementIndexByUUID(uuid); if (typeof index === 'number' && index >= 0) { - this.selectElement(index); + this.selectElement(index, opts); } } @@ -229,7 +233,7 @@ class Core { this[_selectedUUID] = uuid; } else { const [index, uuid] = this[_element].isPointInElement(point, this[_data]); - this.selectElement(index); + this.selectElement(index, { useMode: true }); if (typeof uuid === 'string' && this[_coreEvent].has('screenSelectElement')) { this[_coreEvent].trigger( 'screenSelectElement',