diff --git a/packages/core/examples/features/lib/main.js b/packages/core/examples/features/lib/main.js
index 8386abd..b040549 100644
--- a/packages/core/examples/features/lib/main.js
+++ b/packages/core/examples/features/lib/main.js
@@ -39,7 +39,7 @@ const core = new Core(mount, {
});
-// initEvent();
+initEvent();
core.setData(data);
@@ -81,5 +81,8 @@ function initEvent() {
core.on('screenChangeElement', (data) => {
console.log('screenChangeElement: ', data);
});
+ core.on('screenDoubleClickElement', (p) => {
+ console.log('screenDoubleClickElement ===', p)
+ })
}
\ No newline at end of file
diff --git a/packages/core/examples/test/event.html b/packages/core/examples/test/event.html
new file mode 100644
index 0000000..546cf0d
--- /dev/null
+++ b/packages/core/examples/test/event.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index b189a7f..133be0e 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -18,7 +18,8 @@ import { TempData } from './lib/temp';
import {
_board, _data, _opts, _config, _renderer, _element, _helper, _hasInited,
_mode, _tempData, _prevPoint, _draw,
- _selectedDotDirection, _coreEvent, _mapper, _initEvent, _handlePoint, _handleClick,
+ _selectedDotDirection, _coreEvent, _mapper, _initEvent,
+ _handlePoint, _handleClick, _handleDoubleClick,
_handleMoveStart, _handleMove, _handleMoveEnd, _handleHover, _dragElements,
_transfromElement, _emitChangeScreen, _emitChangeData, _onlyRender, _cursorStatus,
} from './names';
@@ -257,8 +258,8 @@ class Core {
}
this[_board].on('hover', time.throttle(this[_handleHover].bind(this), 32));
-
this[_board].on('point', time.throttle(this[_handleClick].bind(this), 16));
+ this[_board].on('doubleClick', this[_handleDoubleClick].bind(this));
if (this[_onlyRender] === true) {
return;
}
@@ -268,6 +269,17 @@ class Core {
this[_board].on('moveEnd', this[_handleMoveEnd].bind(this));
}
+ private [_handleDoubleClick](point: TypePoint) {
+ const [index, uuid] = this[_element].isPointInElement(point, this[_data]);
+ if (index >= 0 && uuid) {
+ this[_coreEvent].trigger(
+ 'screenDoubleClickElement',
+ { index, uuid, element: deepClone(this[_data].elements?.[index])}
+ );
+ }
+ this[_draw]();
+ }
+
private [_handleClick](point: TypePoint): void {
const [index, uuid] = this[_element].isPointInElement(point, this[_data]);
if (index >= 0 && uuid) {
diff --git a/packages/core/src/lib/core-event.ts b/packages/core/src/lib/core-event.ts
index e365a23..e6c8d4b 100644
--- a/packages/core/src/lib/core-event.ts
+++ b/packages/core/src/lib/core-event.ts
@@ -16,6 +16,7 @@ export type TypeCoreEventArgMap = {
'mouseOverElement': TypeCoreEventSelectBaseArg & { element: TypeElement }
'mouseLeaveElement': TypeCoreEventSelectBaseArg & { element: TypeElement }
'screenClickElement': TypeCoreEventSelectBaseArg & { element: TypeElement }
+ 'screenDoubleClickElement': TypeCoreEventSelectBaseArg & { element: TypeElement }
'screenSelectElement': TypeCoreEventSelectBaseArg & { element: TypeElement }
'screenMoveElementStart': TypeCoreEventSelectBaseArg & TypePoint,
'screenMoveElementEnd': TypeCoreEventSelectBaseArg & TypePoint,
diff --git a/packages/core/src/names.ts b/packages/core/src/names.ts
index ca75501..fbc7ed4 100644
--- a/packages/core/src/names.ts
+++ b/packages/core/src/names.ts
@@ -15,6 +15,7 @@ const _coreEvent = Symbol('_coreEvent');
const _mapper = Symbol('_mapper');
const _initEvent = Symbol('_initEvent');
const _handleClick = Symbol('_handleClick');
+const _handleDoubleClick = Symbol('_handleDoubleClick');
const _handlePoint = Symbol('_handlePoint');
const _handleMoveStart = Symbol('_handleMoveStart');
const _handleMove = Symbol('_handleMove');
@@ -30,7 +31,8 @@ const _cursorStatus = Symbol('_cursorStatus');
export {
_board, _data, _opts, _config, _renderer, _element, _helper, _hasInited,
_mode, _tempData, _prevPoint, _draw,
- _selectedDotDirection, _coreEvent, _mapper, _initEvent, _handlePoint, _handleClick,
+ _selectedDotDirection, _coreEvent, _mapper, _initEvent,
+ _handlePoint, _handleClick, _handleDoubleClick,
_handleMoveStart, _handleMove, _handleMoveEnd, _handleHover, _dragElements,
_transfromElement, _emitChangeScreen, _emitChangeData, _onlyRender, _cursorStatus,
};
\ No newline at end of file