Comparing version 0.4.0-alpha.6 to 0.4.0-alpha.7
import { middlewareEventScale, middlewareEventSelect } from '@idraw/core'; | ||
import type { CoreEvent } from '@idraw/types'; | ||
import type { CoreEvent, Data } from '@idraw/types'; | ||
export interface IDrawEventKeys { | ||
@@ -9,3 +9,6 @@ select: typeof middlewareEventSelect; | ||
export type IDrawEvent = CoreEvent & { | ||
[key: string]: any; | ||
change: { | ||
data: Data; | ||
type: 'update-element' | 'delete-element' | 'move-element' | 'add-element' | 'set-data' | 'other'; | ||
}; | ||
}; | ||
@@ -12,0 +15,0 @@ declare const EventKeys: { |
@@ -12,3 +12,3 @@ import type { PointSize, IDrawOptions, Data, ViewSizeInfo, ElementType, Element, RecursivePartial, ElementPosition } from '@idraw/types'; | ||
}): void; | ||
updateViewScale(opts: { | ||
setViewScale(opts: { | ||
scale: number; | ||
@@ -22,3 +22,5 @@ offsetX: number; | ||
trigger<T extends keyof IDrawEvent>(name: T, e: IDrawEvent[T]): void; | ||
selectElement(uuid: string): void; | ||
selectElements(uuids: string[]): void; | ||
selectElementByPosition(position: ElementPosition): void; | ||
selectElementsByPositions(positions: ElementPosition[]): void; | ||
@@ -30,10 +32,8 @@ cancelElements(): void; | ||
}): Element<T>; | ||
updateElement(): void; | ||
updateElement(element: Element): void; | ||
addElement(element: Element, opts?: { | ||
uuid: string; | ||
referenceType: 'group' | 'front' | 'back'; | ||
position: ElementPosition; | ||
}): Data; | ||
deleteElement(uuid: string): void; | ||
moveElementToFront(uuid: string, referenceUUID?: string): void; | ||
moveElementToBack(uuid: string, referenceUUID?: string): void; | ||
moveElement(uuid: string, to: ElementPosition): void; | ||
} |
@@ -14,3 +14,3 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { | ||
import { Core, MiddlewareSelector, MiddlewareScroller, MiddlewareScaler, MiddlewareRuler, MiddlewareTextEditor, middlewareEventSelect } from '@idraw/core'; | ||
import { createElement } from '@idraw/util'; | ||
import { createElement, insertElementToListByPosition, updateElementInList, deleteElementInList, moveElementPosition, getElementPositionFromList } from '@idraw/util'; | ||
export class iDraw { | ||
@@ -28,3 +28,5 @@ constructor(mount, opts) { | ||
setData(data) { | ||
__classPrivateFieldGet(this, _iDraw_core, "f").setData(data); | ||
const core = __classPrivateFieldGet(this, _iDraw_core, "f"); | ||
core.setData(data); | ||
core.trigger('change', { data, type: 'set-data' }); | ||
} | ||
@@ -37,5 +39,5 @@ getData() { | ||
} | ||
updateViewScale(opts) { | ||
setViewScale(opts) { | ||
const core = __classPrivateFieldGet(this, _iDraw_core, "f"); | ||
core.updateViewScale(opts); | ||
core.setViewScale(opts); | ||
core.refresh(); | ||
@@ -55,5 +57,11 @@ } | ||
} | ||
selectElement(uuid) { | ||
this.selectElements([uuid]); | ||
} | ||
selectElements(uuids) { | ||
this.trigger(middlewareEventSelect, { uuids }); | ||
} | ||
selectElementByPosition(position) { | ||
this.selectElementsByPositions([position]); | ||
} | ||
selectElementsByPositions(positions) { | ||
@@ -74,3 +82,9 @@ this.trigger(middlewareEventSelect, { positions }); | ||
} | ||
updateElement() { | ||
updateElement(element) { | ||
const core = __classPrivateFieldGet(this, _iDraw_core, "f"); | ||
const data = core.getData() || { elements: [] }; | ||
updateElementInList(element.uuid, element, data.elements); | ||
core.setData(data); | ||
core.refresh(); | ||
core.trigger('change', { data, type: 'update-element' }); | ||
} | ||
@@ -83,15 +97,29 @@ addElement(element, opts) { | ||
} | ||
else { | ||
else if (opts === null || opts === void 0 ? void 0 : opts.position) { | ||
insertElementToListByPosition(element, opts === null || opts === void 0 ? void 0 : opts.position, data.elements); | ||
} | ||
core.setData(data); | ||
core.refresh(); | ||
core.trigger('change', { data, type: 'add-element' }); | ||
return data; | ||
} | ||
deleteElement(uuid) { | ||
const core = __classPrivateFieldGet(this, _iDraw_core, "f"); | ||
const data = core.getData() || { elements: [] }; | ||
deleteElementInList(uuid, data.elements); | ||
core.setData(data); | ||
core.refresh(); | ||
core.trigger('change', { data, type: 'delete-element' }); | ||
} | ||
moveElementToFront(uuid, referenceUUID) { | ||
moveElement(uuid, to) { | ||
const core = __classPrivateFieldGet(this, _iDraw_core, "f"); | ||
const data = core.getData() || { elements: [] }; | ||
const from = getElementPositionFromList(uuid, data.elements); | ||
const list = moveElementPosition(data.elements, { from, to }); | ||
data.elements = list; | ||
core.setData(data); | ||
core.refresh(); | ||
core.trigger('change', { data, type: 'move-element' }); | ||
} | ||
moveElementToBack(uuid, referenceUUID) { | ||
} | ||
} | ||
_iDraw_core = new WeakMap(); |
@@ -6,2 +6,2 @@ export { iDraw } from './idraw'; | ||
export { Renderer } from '@idraw/renderer'; | ||
export { delay, compose, throttle, downloadImageFromCanvas, parseFileToBase64, pickFile, parseFileToText, toColorHexStr, toColorHexNum, isColorStr, colorNameToHex, colorToCSS, colorToLinearGradientCSS, mergeHexColorAlpha, createUUID, isAssetId, createAssetId, deepClone, sortDataAsserts, istype, loadImage, loadSVG, loadHTML, is, check, createBoardContexts, createContext2D, createOffscreenContext2D, EventEmitter, calcDistance, calcSpeed, equalPoint, equalTouchPoint, vaildPoint, vaildTouchPoint, getCenterFromTwoPoints, Store, getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot, Context2D, rotateElement, parseRadianToAngle, parseAngleToRadian, rotateElementVertexes, getElementRotateVertexes, calcElementCenter, calcElementCenterFromVertexes, rotatePointInGroup, limitAngle, getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementsFromListByPositions, updateElementInList, getGroupQueueFromList, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, checkRectIntersect, viewScale, viewScroll, calcViewElementSize, calcViewPointSize, calcViewVertexes, isViewPointInElement, getViewPointAtElement, isElementInView, rotatePoint, rotateVertexes, getElementVertexes, calcElementVertexesInGroup, calcElementVertexesQueueInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, generateSVGPath, parseSVGPath, generateHTML, parseHTML, compressImage, formatNumber, matrixToAngle, matrixToRadian, getDefaultElementDetailConfig, calcViewBoxSize, createElement, moveElementPosition } from '@idraw/util'; | ||
export { delay, compose, throttle, downloadImageFromCanvas, parseFileToBase64, pickFile, parseFileToText, toColorHexStr, toColorHexNum, isColorStr, colorNameToHex, colorToCSS, colorToLinearGradientCSS, mergeHexColorAlpha, createUUID, isAssetId, createAssetId, deepClone, sortDataAsserts, istype, loadImage, loadSVG, loadHTML, is, check, createViewContent, createContext2D, createOffscreenContext2D, EventEmitter, calcDistance, calcSpeed, equalPoint, equalTouchPoint, vaildPoint, vaildTouchPoint, getCenterFromTwoPoints, Store, getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot, Context2D, rotateElement, parseRadianToAngle, parseAngleToRadian, rotateElementVertexes, getElementRotateVertexes, calcElementCenter, calcElementCenterFromVertexes, rotatePointInGroup, limitAngle, getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementsFromListByPositions, updateElementInList, getGroupQueueFromList, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, checkRectIntersect, viewScale, viewScroll, calcViewElementSize, calcViewPointSize, calcViewVertexes, isViewPointInElement, getViewPointAtElement, isElementInView, rotatePoint, rotateVertexes, getElementVertexes, calcElementVertexesInGroup, calcElementVertexesQueueInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, generateSVGPath, parseSVGPath, generateHTML, parseHTML, compressImage, formatNumber, matrixToAngle, matrixToRadian, getDefaultElementDetailConfig, calcViewBoxSize, createElement, moveElementPosition, insertElementToListByPosition, deleteElementInListByPosition, deleteElementInList } from '@idraw/util'; |
export { iDraw } from './idraw'; | ||
export { Core, MiddlewareSelector, middlewareEventSelect, MiddlewareScroller, MiddlewareScaler, middlewareEventScale, MiddlewareRuler, middlewareEventRuler, MiddlewareTextEditor } from '@idraw/core'; | ||
export { Renderer } from '@idraw/renderer'; | ||
export { delay, compose, throttle, downloadImageFromCanvas, parseFileToBase64, pickFile, parseFileToText, toColorHexStr, toColorHexNum, isColorStr, colorNameToHex, colorToCSS, colorToLinearGradientCSS, mergeHexColorAlpha, createUUID, isAssetId, createAssetId, deepClone, sortDataAsserts, istype, loadImage, loadSVG, loadHTML, is, check, createBoardContexts, createContext2D, createOffscreenContext2D, EventEmitter, calcDistance, calcSpeed, equalPoint, equalTouchPoint, vaildPoint, vaildTouchPoint, getCenterFromTwoPoints, Store, getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot, Context2D, rotateElement, parseRadianToAngle, parseAngleToRadian, rotateElementVertexes, getElementRotateVertexes, calcElementCenter, calcElementCenterFromVertexes, rotatePointInGroup, limitAngle, getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementsFromListByPositions, updateElementInList, getGroupQueueFromList, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, checkRectIntersect, viewScale, viewScroll, calcViewElementSize, calcViewPointSize, calcViewVertexes, isViewPointInElement, getViewPointAtElement, isElementInView, rotatePoint, rotateVertexes, getElementVertexes, calcElementVertexesInGroup, calcElementVertexesQueueInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, generateSVGPath, parseSVGPath, generateHTML, parseHTML, compressImage, formatNumber, matrixToAngle, matrixToRadian, getDefaultElementDetailConfig, calcViewBoxSize, createElement, moveElementPosition } from '@idraw/util'; | ||
export { delay, compose, throttle, downloadImageFromCanvas, parseFileToBase64, pickFile, parseFileToText, toColorHexStr, toColorHexNum, isColorStr, colorNameToHex, colorToCSS, colorToLinearGradientCSS, mergeHexColorAlpha, createUUID, isAssetId, createAssetId, deepClone, sortDataAsserts, istype, loadImage, loadSVG, loadHTML, is, check, createViewContent, createContext2D, createOffscreenContext2D, EventEmitter, calcDistance, calcSpeed, equalPoint, equalTouchPoint, vaildPoint, vaildTouchPoint, getCenterFromTwoPoints, Store, getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot, Context2D, rotateElement, parseRadianToAngle, parseAngleToRadian, rotateElementVertexes, getElementRotateVertexes, calcElementCenter, calcElementCenterFromVertexes, rotatePointInGroup, limitAngle, getSelectedElementUUIDs, validateElements, calcElementsContextSize, calcElementsViewInfo, getElemenetsAssetIds, findElementFromList, findElementsFromList, findElementFromListByPosition, findElementsFromListByPositions, updateElementInList, getGroupQueueFromList, getElementSize, mergeElementAsset, filterElementAsset, isResourceElement, checkRectIntersect, viewScale, viewScroll, calcViewElementSize, calcViewPointSize, calcViewVertexes, isViewPointInElement, getViewPointAtElement, isElementInView, rotatePoint, rotateVertexes, getElementVertexes, calcElementVertexesInGroup, calcElementVertexesQueueInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, generateSVGPath, parseSVGPath, generateHTML, parseHTML, compressImage, formatNumber, matrixToAngle, matrixToRadian, getDefaultElementDetailConfig, calcViewBoxSize, createElement, moveElementPosition, insertElementToListByPosition, deleteElementInListByPosition, deleteElementInList } from '@idraw/util'; |
{ | ||
"name": "idraw", | ||
"version": "0.4.0-alpha.6", | ||
"version": "0.4.0-alpha.7", | ||
"description": "", | ||
@@ -24,9 +24,9 @@ "main": "dist/esm/index.js", | ||
"devDependencies": { | ||
"@idraw/types": "^0.4.0-alpha.6" | ||
"@idraw/types": "^0.4.0-alpha.7" | ||
}, | ||
"dependencies": { | ||
"@idraw/board": "^0.4.0-alpha.6", | ||
"@idraw/core": "^0.4.0-alpha.6", | ||
"@idraw/renderer": "^0.4.0-alpha.6", | ||
"@idraw/util": "^0.4.0-alpha.6" | ||
"@idraw/board": "^0.4.0-alpha.7", | ||
"@idraw/core": "^0.4.0-alpha.7", | ||
"@idraw/renderer": "^0.4.0-alpha.7", | ||
"@idraw/util": "^0.4.0-alpha.7" | ||
}, | ||
@@ -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
400744
6915
Updated@idraw/board@^0.4.0-alpha.7
Updated@idraw/core@^0.4.0-alpha.7
Updated@idraw/util@^0.4.0-alpha.7