@idraw/core
Advanced tools
Comparing version 0.4.0-alpha.4 to 0.4.0-alpha.5
@@ -6,7 +6,5 @@ import type { Data, PointSize, CoreOptions, BoardMiddleware, ViewSizeInfo, CoreEvent } from '@idraw/types'; | ||
export { MiddlewareRuler, middlewareEventRuler } from './middleware/ruler'; | ||
export { MiddlewareTextEditor, middlewareEventTextEdit } from './middleware/text-editor'; | ||
export declare class Core { | ||
private _board; | ||
private _opts; | ||
private _container; | ||
private _canvas; | ||
#private; | ||
constructor(container: HTMLDivElement, opts: CoreOptions); | ||
@@ -13,0 +11,0 @@ use(middleware: BoardMiddleware<any, any>): void; |
@@ -0,1 +1,13 @@ | ||
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { | ||
if (kind === "m") throw new TypeError("Private method is not writable"); | ||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); | ||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); | ||
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; | ||
}; | ||
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { | ||
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); | ||
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); | ||
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); | ||
}; | ||
var _Core_instances, _Core_board, _Core_container, _Core_initContainer; | ||
import { Board } from '@idraw/board'; | ||
@@ -8,13 +20,16 @@ import { createBoardContexts, validateElements } from '@idraw/util'; | ||
export { MiddlewareRuler, middlewareEventRuler } from './middleware/ruler'; | ||
export { MiddlewareTextEditor, middlewareEventTextEdit } from './middleware/text-editor'; | ||
export class Core { | ||
constructor(container, opts) { | ||
_Core_instances.add(this); | ||
_Core_board.set(this, void 0); | ||
_Core_container.set(this, void 0); | ||
const { devicePixelRatio = 1, width, height } = opts; | ||
this._opts = opts; | ||
this._container = container; | ||
__classPrivateFieldSet(this, _Core_container, container, "f"); | ||
const canvas = document.createElement('canvas'); | ||
this._canvas = canvas; | ||
__classPrivateFieldGet(this, _Core_instances, "m", _Core_initContainer).call(this); | ||
container.appendChild(canvas); | ||
const ctx = canvas.getContext('2d'); | ||
const viewContent = createBoardContexts(ctx, { devicePixelRatio }); | ||
const board = new Board({ viewContent }); | ||
const board = new Board({ viewContent, container }); | ||
const sharer = board.getSharer(); | ||
@@ -28,3 +43,3 @@ sharer.setActiveViewSizeInfo({ | ||
}); | ||
this._board = board; | ||
__classPrivateFieldSet(this, _Core_board, board, "f"); | ||
this.resize(sharer.getActiveViewSizeInfo()); | ||
@@ -37,18 +52,18 @@ const eventHub = board.getEventHub(); | ||
use(middleware) { | ||
this._board.use(middleware); | ||
__classPrivateFieldGet(this, _Core_board, "f").use(middleware); | ||
} | ||
setData(data) { | ||
validateElements((data === null || data === void 0 ? void 0 : data.elements) || []); | ||
this._board.setData(data); | ||
__classPrivateFieldGet(this, _Core_board, "f").setData(data); | ||
} | ||
getData() { | ||
return this._board.getData(); | ||
return __classPrivateFieldGet(this, _Core_board, "f").getData(); | ||
} | ||
scale(opts) { | ||
this._board.scale(opts); | ||
const viewer = this._board.getViewer(); | ||
__classPrivateFieldGet(this, _Core_board, "f").scale(opts); | ||
const viewer = __classPrivateFieldGet(this, _Core_board, "f").getViewer(); | ||
viewer.drawFrame(); | ||
} | ||
resize(newViewSize) { | ||
const { _board: board } = this; | ||
const board = __classPrivateFieldGet(this, _Core_board, "f"); | ||
const sharer = board.getSharer(); | ||
@@ -59,16 +74,20 @@ const viewSizeInfo = sharer.getActiveViewSizeInfo(); | ||
clear() { | ||
this._board.clear(); | ||
__classPrivateFieldGet(this, _Core_board, "f").clear(); | ||
} | ||
on(name, callback) { | ||
const eventHub = this._board.getEventHub(); | ||
const eventHub = __classPrivateFieldGet(this, _Core_board, "f").getEventHub(); | ||
eventHub.on(name, callback); | ||
} | ||
off(name, callback) { | ||
const eventHub = this._board.getEventHub(); | ||
const eventHub = __classPrivateFieldGet(this, _Core_board, "f").getEventHub(); | ||
eventHub.off(name, callback); | ||
} | ||
trigger(name, e) { | ||
const eventHub = this._board.getEventHub(); | ||
const eventHub = __classPrivateFieldGet(this, _Core_board, "f").getEventHub(); | ||
eventHub.trigger(name, e); | ||
} | ||
} | ||
_Core_board = new WeakMap(), _Core_container = new WeakMap(), _Core_instances = new WeakSet(), _Core_initContainer = function _Core_initContainer() { | ||
const container = __classPrivateFieldGet(this, _Core_container, "f"); | ||
container.style.position = 'relative'; | ||
}; |
@@ -8,6 +8,12 @@ import { getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot } from '@idraw/util'; | ||
const { helperContext, underContext } = viewContent; | ||
let showRuler = true; | ||
let show = true; | ||
let showGrid = true; | ||
eventHub.on(middlewareEventRuler, (e) => { | ||
if (typeof (e === null || e === void 0 ? void 0 : e.show) === 'boolean') { | ||
showRuler = e.show; | ||
show = e.show; | ||
} | ||
if (typeof (e === null || e === void 0 ? void 0 : e.showGrid) === 'boolean') { | ||
showGrid = e.showGrid; | ||
} | ||
if (typeof (e === null || e === void 0 ? void 0 : e.show) === 'boolean' || typeof (e === null || e === void 0 ? void 0 : e.showGrid) === 'boolean') { | ||
viewer.drawFrame(); | ||
@@ -20,3 +26,3 @@ } | ||
beforeDrawFrame: ({ snapshot }) => { | ||
if (showRuler === true) { | ||
if (show === true) { | ||
const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot); | ||
@@ -29,8 +35,10 @@ const viewSizeInfo = getViewSizeInfoFromSnapshot(snapshot); | ||
drawYRuler(helperContext, { scaleList: yList }); | ||
drawUnderGrid(underContext, { | ||
xList, | ||
yList, | ||
viewScaleInfo, | ||
viewSizeInfo | ||
}); | ||
if (showGrid === true) { | ||
drawUnderGrid(underContext, { | ||
xList, | ||
yList, | ||
viewScaleInfo, | ||
viewSizeInfo | ||
}); | ||
} | ||
} | ||
@@ -37,0 +45,0 @@ } |
@@ -12,2 +12,3 @@ import { formatNumber, rotateByCenter } from '@idraw/util'; | ||
const gridKeyColor = '#AAAAAA70'; | ||
const lineSize = 1; | ||
function calcRulerScaleList(opts) { | ||
@@ -18,3 +19,3 @@ const { scale, viewLength, viewOffset } = opts; | ||
rulerUnit = formatNumber(rulerUnit / scale, { decimalPlaces: 0 }); | ||
rulerUnit = Math.max(1, Math.min(rulerUnit, 1000)); | ||
rulerUnit = Math.max(10, Math.min(rulerUnit, 1000)); | ||
const rulerKeyUnit = rulerUnit * 10; | ||
@@ -82,2 +83,4 @@ const rulerSubKeyUnit = rulerUnit * 5; | ||
ctx.closePath(); | ||
ctx.lineWidth = lineSize; | ||
ctx.setLineDash([]); | ||
ctx.fillStyle = scaleColor; | ||
@@ -114,2 +117,4 @@ ctx.stroke(); | ||
ctx.fillStyle = scaleColor; | ||
ctx.lineWidth = lineSize; | ||
ctx.setLineDash([]); | ||
ctx.stroke(); | ||
@@ -147,2 +152,4 @@ if (item.showNum === true) { | ||
ctx.fill(); | ||
ctx.lineWidth = lineSize; | ||
ctx.setLineDash([]); | ||
ctx.strokeStyle = borderColor; | ||
@@ -165,4 +172,5 @@ ctx.stroke(); | ||
} | ||
ctx.lineWidth = 1; | ||
ctx.closePath(); | ||
ctx.lineWidth = lineSize; | ||
ctx.setLineDash([]); | ||
ctx.stroke(); | ||
@@ -169,0 +177,0 @@ } |
@@ -6,2 +6,4 @@ import { formatNumber } from '@idraw/util'; | ||
const { viewer, sharer, eventHub } = opts; | ||
const maxScale = 50; | ||
const minScale = 0.05; | ||
return { | ||
@@ -20,2 +22,5 @@ mode: key, | ||
} | ||
if (newScaleNum < minScale || newScaleNum > maxScale) { | ||
return; | ||
} | ||
const { moveX, moveY } = viewer.scale({ scale: newScaleNum, point }); | ||
@@ -22,0 +27,0 @@ viewer.scroll({ moveX, moveY }); |
@@ -52,7 +52,7 @@ import { getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot } from '@idraw/util'; | ||
let ySize = 0; | ||
xSize = Math.max(sliderMinSize, width - (Math.abs(offsetLeft) + Math.abs(offsetRight))); | ||
xSize = Math.max(sliderMinSize, width - lineSize * 2 - (Math.abs(offsetLeft) + Math.abs(offsetRight))); | ||
if (xSize >= width) { | ||
xSize = width; | ||
} | ||
ySize = Math.max(sliderMinSize, height - (Math.abs(offsetTop) + Math.abs(offsetBottom))); | ||
ySize = Math.max(sliderMinSize, height - lineSize * 2 - (Math.abs(offsetTop) + Math.abs(offsetBottom))); | ||
if (ySize >= height) { | ||
@@ -59,0 +59,0 @@ ySize = height; |
@@ -5,2 +5,3 @@ import { calcElementsViewInfo, calcElementVertexesInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, rotatePointInGroup, getGroupQueueFromList, findElementsFromList } from '@idraw/util'; | ||
import { key, keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController } from './config'; | ||
import { middlewareEventTextEdit } from '../text-editor'; | ||
export const middlewareEventSelect = '@middleware/select'; | ||
@@ -389,3 +390,3 @@ export const MiddlewareSelector = (opts) => { | ||
doubleClick(e) { | ||
var _a; | ||
var _a, _b; | ||
const target = getPointTarget(e.point, pointTargetBaseOptions()); | ||
@@ -400,2 +401,9 @@ if (target.elements.length === 1 && ((_a = target.elements[0]) === null || _a === void 0 ? void 0 : _a.type) === 'group') { | ||
} | ||
else if (target.elements.length === 1 && ((_b = target.elements[0]) === null || _b === void 0 ? void 0 : _b.type) === 'text') { | ||
eventHub.trigger(middlewareEventTextEdit, { | ||
element: target.elements[0], | ||
groupQueue: sharer.getSharedStorage(keyGroupQueue) || [], | ||
viewScaleInfo: sharer.getActiveViewScaleInfo() | ||
}); | ||
} | ||
sharer.setSharedStorage(keyActionType, null); | ||
@@ -402,0 +410,0 @@ }, |
{ | ||
"name": "@idraw/core", | ||
"version": "0.4.0-alpha.4", | ||
"version": "0.4.0-alpha.5", | ||
"description": "", | ||
@@ -24,9 +24,9 @@ "main": "dist/esm/index.js", | ||
"devDependencies": { | ||
"@idraw/types": "^0.4.0-alpha.4" | ||
"@idraw/types": "^0.4.0-alpha.5" | ||
}, | ||
"dependencies": {}, | ||
"peerDependencies": { | ||
"@idraw/board": "^0.4.0-alpha.4", | ||
"@idraw/renderer": "^0.4.0-alpha.4", | ||
"@idraw/util": "^0.4.0-alpha.4" | ||
"@idraw/board": "^0.4.0-alpha.5", | ||
"@idraw/renderer": "^0.4.0-alpha.5", | ||
"@idraw/util": "^0.4.0-alpha.5" | ||
}, | ||
@@ -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
436157
34
7822