@idraw/core
Advanced tools
Comparing version 0.4.0-beta.25 to 0.4.0-beta.26
import type { Data, PointSize, CoreOptions, BoardMiddleware, ViewSizeInfo, CoreEventMap, ViewScaleInfo, LoadItemMap, ModifyOptions } from '@idraw/types'; | ||
export { eventChange } from './config'; | ||
export { MiddlewareSelector, middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup } from './middleware/selector'; | ||
export { MiddlewareSelector, middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, middlewareEventSnapToGrid } from './middleware/selector'; | ||
export { MiddlewareScroller } from './middleware/scroller'; | ||
@@ -5,0 +5,0 @@ export { MiddlewareScaler, middlewareEventScale } from './middleware/scaler'; |
@@ -17,3 +17,3 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { | ||
export { eventChange } from './config'; | ||
export { MiddlewareSelector, middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup } from './middleware/selector'; | ||
export { MiddlewareSelector, middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, middlewareEventSnapToGrid } from './middleware/selector'; | ||
export { MiddlewareScroller } from './middleware/scroller'; | ||
@@ -20,0 +20,0 @@ export { MiddlewareScaler, middlewareEventScale } from './middleware/scaler'; |
@@ -18,2 +18,3 @@ export declare const key = "SELECT"; | ||
export declare const keyEnableSelectInGroup: unique symbol; | ||
export declare const keyEnableSnapToGrid: unique symbol; | ||
export declare const keyDebugElemCenter: unique symbol; | ||
@@ -36,1 +37,2 @@ export declare const keyDebugStartVertical: unique symbol; | ||
export declare const middlewareEventSelectInGroup: string; | ||
export declare const middlewareEventSnapToGrid: string; |
@@ -17,3 +17,4 @@ export const key = 'SELECT'; | ||
export const keyIsMoving = Symbol(`${key}_isMoving`); | ||
export const keyEnableSelectInGroup = Symbol(`${key}_canSelectInGroup`); | ||
export const keyEnableSelectInGroup = Symbol(`${key}_enableSelectInGroup`); | ||
export const keyEnableSnapToGrid = Symbol(`${key}_enableSnapToGrid`); | ||
export const keyDebugElemCenter = Symbol(`${key}_debug_elemCenter`); | ||
@@ -36,1 +37,2 @@ export const keyDebugStartVertical = Symbol(`${key}_debug_startVertical`); | ||
export const middlewareEventSelectInGroup = '@middleware/select-in-group'; | ||
export const middlewareEventSnapToGrid = '@middleware/snap-to-grid'; |
import type { CoreEventMap } from '@idraw/types'; | ||
import type { BoardMiddleware, ActionType, DeepSelectorSharedStorage } from './types'; | ||
import { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, keyActionType, keyResizeType, keyGroupQueue, keySelectedElementList } from './config'; | ||
import { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, middlewareEventSnapToGrid, keyActionType, keyResizeType, keyGroupQueue, keySelectedElementList } from './config'; | ||
export { keySelectedElementList, keyActionType, keyResizeType, keyGroupQueue }; | ||
export type { DeepSelectorSharedStorage, ActionType }; | ||
export { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup }; | ||
export { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, middlewareEventSnapToGrid }; | ||
export declare const MiddlewareSelector: BoardMiddleware<DeepSelectorSharedStorage, CoreEventMap>; |
@@ -5,3 +5,3 @@ import { is, calcElementsViewInfo, calcElementVertexesInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, calcElementCenterFromVertexes, rotatePointInGroup, getGroupQueueFromList, findElementsFromList, findElementsFromListByPositions, getElementPositionFromList, deepResizeGroupElement } from '@idraw/util'; | ||
import { getPointTarget, resizeElement, rotateElement, getSelectedListArea, calcSelectedElementsArea, isElementInGroup, isPointInViewActiveGroup, calcMoveInGroup } from './util'; | ||
import { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keySelectedReferenceXLines, keySelectedReferenceYLines, keyIsMoving, keyEnableSelectInGroup, controllerSize } from './config'; | ||
import { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, middlewareEventSnapToGrid, keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keySelectedReferenceXLines, keySelectedReferenceYLines, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, controllerSize } from './config'; | ||
import { calcReferenceInfo } from './reference'; | ||
@@ -11,3 +11,3 @@ import { middlewareEventTextEdit } from '../text-editor'; | ||
export { keySelectedElementList, keyActionType, keyResizeType, keyGroupQueue }; | ||
export { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup }; | ||
export { middlewareEventSelect, middlewareEventSelectClear, middlewareEventSelectInGroup, middlewareEventSnapToGrid }; | ||
export const MiddlewareSelector = (opts) => { | ||
@@ -19,2 +19,3 @@ const { viewer, sharer, boardContent, calculator, eventHub } = opts; | ||
sharer.setSharedStorage(keyActionType, null); | ||
sharer.setSharedStorage(keyEnableSnapToGrid, true); | ||
const getActiveElements = () => { | ||
@@ -137,2 +138,5 @@ return sharer.getSharedStorage(keySelectedElementList); | ||
}; | ||
const setSnapToSnapCallback = (e) => { | ||
sharer.setSharedStorage(keyEnableSnapToGrid, !!e.enable); | ||
}; | ||
const selectInGroupCallback = (e) => { | ||
@@ -147,2 +151,3 @@ sharer.setSharedStorage(keyEnableSelectInGroup, !!e.enable); | ||
eventHub.on(middlewareEventSelectInGroup, selectInGroupCallback); | ||
eventHub.on(middlewareEventSnapToGrid, setSnapToSnapCallback); | ||
}, | ||
@@ -153,2 +158,3 @@ disuse() { | ||
eventHub.off(middlewareEventSelectInGroup, selectInGroupCallback); | ||
eventHub.off(middlewareEventSnapToGrid, setSnapToSnapCallback); | ||
}, | ||
@@ -328,2 +334,3 @@ hover: (e) => { | ||
const groupQueue = sharer.getSharedStorage(keyGroupQueue); | ||
const enableSnapToGrid = sharer.getSharedStorage(keyEnableSnapToGrid); | ||
if (actionType === 'drag') { | ||
@@ -335,24 +342,26 @@ inBusyMode = 'drag'; | ||
let totalMoveY = calculator.toGridNum(moveY / scale); | ||
const referenceInfo = calcReferenceInfo(elems[0].uuid, { | ||
calculator, | ||
data, | ||
groupQueue, | ||
viewScaleInfo, | ||
viewSizeInfo | ||
}); | ||
try { | ||
if (referenceInfo) { | ||
if (is.x(referenceInfo.offsetX) && referenceInfo.offsetX !== null) { | ||
totalMoveX = calculator.toGridNum(totalMoveX + referenceInfo.offsetX); | ||
if (enableSnapToGrid === true) { | ||
const referenceInfo = calcReferenceInfo(elems[0].uuid, { | ||
calculator, | ||
data, | ||
groupQueue, | ||
viewScaleInfo, | ||
viewSizeInfo | ||
}); | ||
try { | ||
if (referenceInfo) { | ||
if (is.x(referenceInfo.offsetX) && referenceInfo.offsetX !== null) { | ||
totalMoveX = calculator.toGridNum(totalMoveX + referenceInfo.offsetX); | ||
} | ||
if (is.y(referenceInfo.offsetY) && referenceInfo.offsetY !== null) { | ||
totalMoveY = calculator.toGridNum(totalMoveY + referenceInfo.offsetY); | ||
} | ||
sharer.setSharedStorage(keySelectedReferenceXLines, referenceInfo.xLines); | ||
sharer.setSharedStorage(keySelectedReferenceYLines, referenceInfo.yLines); | ||
} | ||
if (is.y(referenceInfo.offsetY) && referenceInfo.offsetY !== null) { | ||
totalMoveY = calculator.toGridNum(totalMoveY + referenceInfo.offsetY); | ||
} | ||
sharer.setSharedStorage(keySelectedReferenceXLines, referenceInfo.xLines); | ||
sharer.setSharedStorage(keySelectedReferenceYLines, referenceInfo.yLines); | ||
} | ||
catch (err) { | ||
console.error(err); | ||
} | ||
} | ||
catch (err) { | ||
console.error(err); | ||
} | ||
elems[0].x = calculator.toGridNum(elems[0].x + totalMoveX); | ||
@@ -609,2 +618,3 @@ elems[0].y = calculator.toGridNum(elems[0].y + totalMoveY); | ||
const isMoving = sharedStore[keyIsMoving]; | ||
const enableSnapToGrid = sharedStore[keyEnableSnapToGrid]; | ||
const drawBaseOpts = { calculator, viewScaleInfo, viewSizeInfo }; | ||
@@ -638,6 +648,8 @@ const selectedElementController = elem | ||
const yLines = sharer.getSharedStorage(keySelectedReferenceYLines); | ||
drawReferenceLines(overlayContext, { | ||
xLines, | ||
yLines | ||
}); | ||
if (enableSnapToGrid === true) { | ||
drawReferenceLines(overlayContext, { | ||
xLines, | ||
yLines | ||
}); | ||
} | ||
} | ||
@@ -664,6 +676,8 @@ } | ||
const yLines = sharer.getSharedStorage(keySelectedReferenceYLines); | ||
drawReferenceLines(overlayContext, { | ||
xLines, | ||
yLines | ||
}); | ||
if (enableSnapToGrid === true) { | ||
drawReferenceLines(overlayContext, { | ||
xLines, | ||
yLines | ||
}); | ||
} | ||
} | ||
@@ -670,0 +684,0 @@ } |
import { Data, ElementSize, ElementType, Element, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, BoardMiddleware, ViewRectVertexes, ElementSizeController, ElementPosition } from '@idraw/types'; | ||
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keySelectedReferenceXLines, keySelectedReferenceYLines, keyIsMoving, keyEnableSelectInGroup, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config'; | ||
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keySelectedReferenceXLines, keySelectedReferenceYLines, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config'; | ||
export { Data, ElementType, Element, ElementSize, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, BoardMiddleware }; | ||
@@ -38,2 +38,3 @@ export type ControllerStyle = ElementSize & { | ||
[keyEnableSelectInGroup]: boolean | null; | ||
[keyEnableSnapToGrid]: boolean | null; | ||
[keyDebugElemCenter]: PointSize | null; | ||
@@ -40,0 +41,0 @@ [keyDebugEnd0]: PointSize | null; |
@@ -1,1 +0,1 @@ | ||
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keySelectedReferenceXLines, keySelectedReferenceYLines, keyIsMoving, keyEnableSelectInGroup, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config'; | ||
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keySelectedReferenceXLines, keySelectedReferenceYLines, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config'; |
{ | ||
"name": "@idraw/core", | ||
"version": "0.4.0-beta.25", | ||
"version": "0.4.0-beta.26", | ||
"description": "", | ||
@@ -24,9 +24,9 @@ "main": "dist/esm/index.js", | ||
"devDependencies": { | ||
"@idraw/types": "^0.4.0-beta.25" | ||
"@idraw/types": "^0.4.0-beta.26" | ||
}, | ||
"dependencies": {}, | ||
"peerDependencies": { | ||
"@idraw/board": "^0.4.0-beta.25", | ||
"@idraw/renderer": "^0.4.0-beta.25", | ||
"@idraw/util": "^0.4.0-beta.25" | ||
"@idraw/board": "^0.4.0-beta.26", | ||
"@idraw/renderer": "^0.4.0-beta.26", | ||
"@idraw/util": "^0.4.0-beta.26" | ||
}, | ||
@@ -33,0 +33,0 @@ "publishConfig": { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
736455
12560