fix: @idraw/core select status

This commit is contained in:
chenshenhai 2021-06-13 22:51:27 +08:00
parent 7255389dbf
commit 0ad29c1e7e
2 changed files with 11 additions and 7 deletions

View file

@ -11,7 +11,7 @@
<div class="col center">
<div id="mount"></div>
</div>
<div class="col">
<div class="col center">
<div class="elem-list" id="elem-list"></div>
</div>
</div>
@ -26,7 +26,7 @@
<input id="scrollY" type="number" value="0"/>
</div>
</div>
<div class="col"></div>
<div class="col center"></div>
</div>
</div>

View file

@ -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',