New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@idraw/core

Package Overview
Dependencies
Maintainers
2
Versions
122
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@idraw/core - npm Package Compare versions

Comparing version 0.4.0-beta.14 to 0.4.0-beta.15

dist/esm/middleware/selector/draw-auxiliary.d.ts

6

dist/esm/index.d.ts

@@ -1,2 +0,2 @@

import type { Data, PointSize, CoreOptions, BoardMiddleware, ViewSizeInfo, CoreEvent, ViewScaleInfo, LoadItemMap } from '@idraw/types';
import type { Data, PointSize, CoreOptions, BoardMiddleware, ViewSizeInfo, CoreEventMap, ViewScaleInfo, LoadItemMap } from '@idraw/types';
export { MiddlewareSelector, middlewareEventSelect, middlewareEventSelectClear } from './middleware/selector';

@@ -6,5 +6,5 @@ export { MiddlewareScroller } from './middleware/scroller';

export { MiddlewareRuler, middlewareEventRuler } from './middleware/ruler';
export { MiddlewareTextEditor, middlewareEventTextEdit } from './middleware/text-editor';
export { MiddlewareTextEditor, middlewareEventTextEdit, middlewareEventTextChange } from './middleware/text-editor';
export { MiddlewareDragger } from './middleware/dragger';
export declare class Core<E extends CoreEvent = CoreEvent> {
export declare class Core<E extends CoreEventMap = CoreEventMap> {
#private;

@@ -11,0 +11,0 @@ constructor(container: HTMLDivElement, opts: CoreOptions);

@@ -20,3 +20,3 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {

export { MiddlewareRuler, middlewareEventRuler } from './middleware/ruler';
export { MiddlewareTextEditor, middlewareEventTextEdit } from './middleware/text-editor';
export { MiddlewareTextEditor, middlewareEventTextEdit, middlewareEventTextChange } from './middleware/text-editor';
export { MiddlewareDragger } from './middleware/dragger';

@@ -23,0 +23,0 @@ export class Core {

@@ -1,7 +0,7 @@

import type { UtilEventEmitter, CoreEvent } from '@idraw/types';
import type { UtilEventEmitter, CoreEventMap } from '@idraw/types';
export declare class Cursor {
#private;
constructor(container: HTMLDivElement, opts: {
eventHub: UtilEventEmitter<CoreEvent>;
eventHub: UtilEventEmitter<CoreEventMap>;
});
}

@@ -1,2 +0,2 @@

import type { BoardMiddleware, CoreEvent, Point } from '@idraw/types';
import type { BoardMiddleware, CoreEventMap, Point } from '@idraw/types';
declare const keyPrevPoint: unique symbol;

@@ -6,3 +6,3 @@ type DraggerSharedStorage = {

};
export declare const MiddlewareDragger: BoardMiddleware<DraggerSharedStorage, CoreEvent>;
export declare const MiddlewareDragger: BoardMiddleware<DraggerSharedStorage, CoreEventMap>;
export {};

@@ -1,3 +0,3 @@

import type { BoardMiddleware, CoreEvent } from '@idraw/types';
import type { BoardMiddleware, CoreEventMap } from '@idraw/types';
export declare const middlewareEventRuler = "@middleware/show-ruler";
export declare const MiddlewareRuler: BoardMiddleware<Record<string, any>, CoreEvent>;
export declare const MiddlewareRuler: BoardMiddleware<Record<string, any>, CoreEventMap>;

@@ -1,3 +0,3 @@

import type { BoardMiddleware, CoreEvent } from '@idraw/types';
import type { BoardMiddleware, CoreEventMap } from '@idraw/types';
export declare const middlewareEventScale = "@middleware/scale";
export declare const MiddlewareScaler: BoardMiddleware<Record<string, any>, CoreEvent>;
export declare const MiddlewareScaler: BoardMiddleware<Record<string, any>, CoreEventMap>;

@@ -13,2 +13,3 @@ export declare const key = "SELECT";

export declare const keyGroupQueueVertexesList: unique symbol;
export declare const keyIsMoving: unique symbol;
export declare const keyDebugElemCenter: unique symbol;

@@ -15,0 +16,0 @@ export declare const keyDebugStartVertical: unique symbol;

@@ -13,2 +13,3 @@ export const key = 'SELECT';

export const keyGroupQueueVertexesList = Symbol(`${key}_groupQueueVertexesList`);
export const keyIsMoving = Symbol(`${key}_isMoving`);
export const keyDebugElemCenter = Symbol(`${key}_debug_elemCenter`);

@@ -15,0 +16,0 @@ export const keyDebugStartVertical = Symbol(`${key}_debug_startVertical`);

@@ -13,4 +13,7 @@ import type { Element, ElementType, PointSize, RendererDrawElementOptions, ViewContext2D, ViewRectVertexes, ViewScaleInfo, ViewSizeInfo, ElementSizeController } from '@idraw/types';

export declare function drawSelectedElementControllersVertexes(ctx: ViewContext2D, controller: ElementSizeController | null, opts: {
hideControllers: boolean;
viewScaleInfo: ViewScaleInfo;
viewSizeInfo: ViewSizeInfo;
element: Element | null;
groupQueue: Element<'group'>[];
}): void;

@@ -17,0 +20,0 @@ export declare function drawElementListShadows(ctx: ViewContext2D, elements: Element<ElementType>[], opts?: Omit<RendererDrawElementOptions, 'loader'>): void;

import { rotateElementVertexes, calcViewPointSize, calcViewVertexes } from '@idraw/util';
import { resizeControllerBorderWidth, areaBorderWidth, wrapperColor, selectWrapperBorderWidth, lockColor, controllerSize } from './config';
function drawVertexes(ctx, vertexes, opts) {
const { borderColor, borderWidth, background, lineDash } = opts;
ctx.setLineDash([]);
ctx.lineWidth = borderWidth;
ctx.strokeStyle = borderColor;
ctx.fillStyle = background;
ctx.setLineDash(lineDash);
ctx.beginPath();
ctx.moveTo(vertexes[0].x, vertexes[0].y);
ctx.lineTo(vertexes[1].x, vertexes[1].y);
ctx.lineTo(vertexes[2].x, vertexes[2].y);
ctx.lineTo(vertexes[3].x, vertexes[3].y);
ctx.lineTo(vertexes[0].x, vertexes[0].y);
ctx.closePath();
ctx.stroke();
ctx.fill();
}
function drawLine(ctx, start, end, opts) {
const { borderColor, borderWidth, lineDash } = opts;
ctx.setLineDash([]);
ctx.lineWidth = borderWidth;
ctx.strokeStyle = borderColor;
ctx.setLineDash(lineDash);
ctx.beginPath();
ctx.moveTo(start.x, start.y);
ctx.lineTo(end.x, end.y);
ctx.closePath();
ctx.stroke();
}
function drawCircleController(ctx, circleCenter, opts) {
const { size, borderColor, borderWidth, background } = opts;
const center = circleCenter;
const r = size / 2;
const a = r;
const b = r;
if (a >= 0 && b >= 0) {
if (typeof borderWidth === 'number' && borderWidth > 0) {
const ba = borderWidth / 2 + a;
const bb = borderWidth / 2 + b;
ctx.beginPath();
ctx.strokeStyle = borderColor;
ctx.lineWidth = borderWidth;
ctx.circle(center.x, center.y, ba, bb, 0, 0, 2 * Math.PI);
ctx.closePath();
ctx.stroke();
}
ctx.beginPath();
ctx.fillStyle = background;
ctx.circle(center.x, center.y, a, b, 0, 0, 2 * Math.PI);
ctx.closePath();
ctx.fill();
}
}
import { drawVertexes, drawLine, drawCircleController, drawCrossVertexes } from './draw-base';
export function drawHoverVertexesWrapper(ctx, vertexes, opts) {

@@ -63,20 +11,2 @@ if (!vertexes) {

}
function drawCrossVertexes(ctx, vertexes, opts) {
const { borderColor, borderWidth, background, lineDash } = opts;
ctx.setLineDash([]);
ctx.lineWidth = borderWidth;
ctx.strokeStyle = borderColor;
ctx.fillStyle = background;
ctx.setLineDash(lineDash);
ctx.beginPath();
ctx.moveTo(vertexes[0].x, vertexes[0].y);
ctx.lineTo(vertexes[2].x, vertexes[2].y);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.moveTo(vertexes[1].x, vertexes[1].y);
ctx.lineTo(vertexes[3].x, vertexes[3].y);
ctx.closePath();
ctx.stroke();
}
export function drawLockVertexesWrapper(ctx, vertexes, opts) {

@@ -106,12 +36,15 @@ if (!vertexes) {

}
const { hideControllers } = opts;
const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight, top, rotate } = controller;
const wrapperOpts = { borderColor: wrapperColor, borderWidth: selectWrapperBorderWidth, background: 'transparent', lineDash: [] };
const ctrlOpts = Object.assign(Object.assign({}, wrapperOpts), { borderWidth: resizeControllerBorderWidth, background: '#FFFFFF' });
drawLine(ctx, calcViewPointSize(top.center, opts), calcViewPointSize(rotate.center, opts), Object.assign(Object.assign({}, ctrlOpts), { borderWidth: 2 }));
drawVertexes(ctx, calcViewVertexes(elementWrapper, opts), wrapperOpts);
drawVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
drawVertexes(ctx, calcViewVertexes(topRight.vertexes, opts), ctrlOpts);
drawVertexes(ctx, calcViewVertexes(bottomLeft.vertexes, opts), ctrlOpts);
drawVertexes(ctx, calcViewVertexes(bottomRight.vertexes, opts), ctrlOpts);
drawCircleController(ctx, calcViewPointSize(rotate.center, opts), Object.assign(Object.assign({}, ctrlOpts), { size: controllerSize, borderWidth: 2 }));
if (!hideControllers) {
drawLine(ctx, calcViewPointSize(top.center, opts), calcViewPointSize(rotate.center, opts), Object.assign(Object.assign({}, ctrlOpts), { borderWidth: 2 }));
drawVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
drawVertexes(ctx, calcViewVertexes(topRight.vertexes, opts), ctrlOpts);
drawVertexes(ctx, calcViewVertexes(bottomLeft.vertexes, opts), ctrlOpts);
drawVertexes(ctx, calcViewVertexes(bottomRight.vertexes, opts), ctrlOpts);
drawCircleController(ctx, calcViewPointSize(rotate.center, opts), Object.assign(Object.assign({}, ctrlOpts), { size: controllerSize, borderWidth: 2 }));
}
}

@@ -118,0 +51,0 @@ export function drawElementListShadows(ctx, elements, opts) {

@@ -1,5 +0,5 @@

import type { CoreEvent } from '@idraw/types';
import type { CoreEventMap } from '@idraw/types';
import type { BoardMiddleware, DeepSelectorSharedStorage } from './types';
export declare const middlewareEventSelect: string;
export declare const middlewareEventSelectClear: string;
export declare const MiddlewareSelector: BoardMiddleware<DeepSelectorSharedStorage, CoreEvent>;
export declare const MiddlewareSelector: BoardMiddleware<DeepSelectorSharedStorage, CoreEventMap>;

@@ -1,5 +0,5 @@

import { calcElementsViewInfo, calcElementVertexesInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, calcElementCenterFromVertexes, rotatePointInGroup, getGroupQueueFromList, findElementsFromList, findElementsFromListByPositions, deepResizeGroupElement } from '@idraw/util';
import { calcElementsViewInfo, calcElementVertexesInGroup, calcElementQueueVertexesQueueInGroup, calcElementSizeController, calcElementCenterFromVertexes, rotatePointInGroup, getGroupQueueFromList, findElementsFromList, findElementsFromListByPositions, getElementPositionFromList, deepResizeGroupElement } from '@idraw/util';
import { drawHoverVertexesWrapper, drawLockVertexesWrapper, drawArea, drawListArea, drawGroupQueueVertexesWrappers, drawSelectedElementControllersVertexes } from './draw-wrapper';
import { getPointTarget, resizeElement, rotateElement, getSelectedListArea, calcSelectedElementsArea, isElementInGroup, isPointInViewActiveGroup, calcMoveInGroup } from './util';
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, controllerSize } from './config';
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keyIsMoving, controllerSize } from './config';
import { middlewareEventTextEdit } from '../text-editor';

@@ -90,2 +90,3 @@ export const middlewareEventSelect = '@middleware/select';

sharer.setSharedStorage(keySelectedElementController, null);
sharer.setSharedStorage(keyIsMoving, null);
};

@@ -288,2 +289,3 @@ clear();

var _a, _b, _c;
sharer.setSharedStorage(keyIsMoving, true);
const data = sharer.getActiveStorage('data');

@@ -393,2 +395,3 @@ const elems = getActiveElements();

inBusyMode = null;
sharer.setSharedStorage(keyIsMoving, false);
const data = sharer.getActiveStorage('data');

@@ -473,3 +476,3 @@ const resizeType = sharer.getSharedStorage(keyResizeType);

doubleClick(e) {
var _a, _b, _c, _d;
var _a, _b, _c, _d, _e, _f;
const target = getPointTarget(e.point, pointTargetBaseOptions());

@@ -493,2 +496,3 @@ sharer.setSharedStorage(keySelectedElementController, null);

groupQueue: sharer.getSharedStorage(keyGroupQueue) || [],
position: getElementPositionFromList((_e = target.elements[0]) === null || _e === void 0 ? void 0 : _e.uuid, ((_f = sharer.getActiveStorage('data')) === null || _f === void 0 ? void 0 : _f.elements) || []),
viewScaleInfo: sharer.getActiveViewScaleInfo()

@@ -515,2 +519,3 @@ });

const groupQueueVertexesList = sharedStore[keyGroupQueueVertexesList];
const isMoving = sharedStore[keyIsMoving];
const drawBaseOpts = { calculator, viewScaleInfo, viewSizeInfo };

@@ -540,3 +545,3 @@ const selectedElementController = elem

if (!isLock && elem && ['select', 'drag', 'resize'].includes(actionType)) {
drawSelectedElementControllersVertexes(helperContext, selectedElementController, Object.assign({}, drawBaseOpts));
drawSelectedElementControllersVertexes(helperContext, selectedElementController, Object.assign(Object.assign({}, drawBaseOpts), { element: elem, groupQueue, hideControllers: !!isMoving && actionType === 'drag' }));
}

@@ -558,3 +563,3 @@ }

if (!isLock && elem && ['select', 'drag', 'resize'].includes(actionType)) {
drawSelectedElementControllersVertexes(helperContext, selectedElementController, Object.assign({}, drawBaseOpts));
drawSelectedElementControllersVertexes(helperContext, selectedElementController, Object.assign(Object.assign({}, drawBaseOpts), { element: elem, groupQueue, hideControllers: !!isMoving && actionType === 'drag' }));
}

@@ -561,0 +566,0 @@ else if (actionType === 'area' && areaStart && areaEnd) {

import type { ElementSizeController } from '@idraw/types';
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config';
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keyIsMoving, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config';
import { Data, ElementSize, ElementType, Element, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, BoardMiddleware, ViewRectVertexes } from '@idraw/types';

@@ -34,2 +34,3 @@ export { Data, ElementType, Element, ElementSize, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, BoardMiddleware };

[keySelectedElementController]: ElementSizeController | null;
[keyIsMoving]: boolean | null;
[keyDebugElemCenter]: PointSize | null;

@@ -36,0 +37,0 @@ [keyDebugEnd0]: PointSize | null;

@@ -1,1 +0,1 @@

import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config';
import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keyIsMoving, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config';

@@ -1,3 +0,21 @@

import type { BoardMiddleware, CoreEvent } from '@idraw/types';
import type { BoardMiddleware, CoreEventMap, Element, ViewScaleInfo, ElementPosition } from '@idraw/types';
export declare const middlewareEventTextEdit = "@middleware/text-edit";
export declare const MiddlewareTextEditor: BoardMiddleware<Record<string, any>, CoreEvent>;
export declare const middlewareEventTextChange = "@middleware/text-change";
type TextEditEvent = {
element: Element<'text'>;
position: ElementPosition;
groupQueue: Element<'group'>[];
viewScaleInfo: ViewScaleInfo;
};
type TextChangeEvent = {
element: {
uuid: string;
detail: {
text: string;
};
};
position: ElementPosition;
};
type ExtendEventMap = Record<typeof middlewareEventTextEdit, TextEditEvent> & Record<typeof middlewareEventTextChange, TextChangeEvent>;
export declare const MiddlewareTextEditor: BoardMiddleware<ExtendEventMap, CoreEventMap & ExtendEventMap>;
export {};
import { limitAngle, getDefaultElementDetailConfig } from '@idraw/util';
export const middlewareEventTextEdit = '@middleware/text-edit';
export const middlewareEventTextChange = '@middleware/text-change';
const defaultElementDetail = getDefaultElementDetailConfig();

@@ -7,3 +8,4 @@ export const MiddlewareTextEditor = (opts) => {

const canvas = boardContent.boardContext.canvas;
const textarea = document.createElement('textarea');
const textarea = document.createElement('div');
textarea.setAttribute('contenteditable', 'true');
const canvasWrapper = document.createElement('div');

@@ -13,2 +15,3 @@ const container = opts.container || document.body;

let activeElem = null;
let activePosition = [];
canvasWrapper.appendChild(textarea);

@@ -32,2 +35,3 @@ canvasWrapper.style.position = 'absolute';

activeElem = null;
activePosition = [];
};

@@ -90,2 +94,19 @@ const getCanvasRect = () => {

}
let justifyContent = 'center';
let alignItems = 'center';
if (detail.textAlign === 'left') {
justifyContent = 'start';
}
else if (detail.textAlign === 'right') {
justifyContent = 'end';
}
if (detail.verticalAlign === 'top') {
alignItems = 'start';
}
else if (detail.verticalAlign === 'bottom') {
alignItems = 'end';
}
textarea.style.display = 'inline-flex';
textarea.style.justifyContent = justifyContent;
textarea.style.alignItems = alignItems;
textarea.style.position = 'absolute';

@@ -111,3 +132,3 @@ textarea.style.left = `${elemX - 1}px`;

textarea.style.outline = 'none';
textarea.value = detail.text || '';
textarea.innerText = detail.text || '';
parent.appendChild(textarea);

@@ -130,5 +151,14 @@ };

});
textarea.addEventListener('input', (e) => {
if (activeElem) {
activeElem.detail.text = e.target.value || '';
textarea.addEventListener('input', () => {
if (activeElem && activePosition) {
activeElem.detail.text = textarea.innerText || '';
eventHub.trigger(middlewareEventTextChange, {
element: {
uuid: activeElem.uuid,
detail: {
text: activeElem.detail.text
}
},
position: [...(activePosition || [])]
});
viewer.drawFrame();

@@ -138,2 +168,13 @@ }

textarea.addEventListener('blur', () => {
if (activeElem && activePosition) {
eventHub.trigger(middlewareEventTextChange, {
element: {
uuid: activeElem.uuid,
detail: {
text: activeElem.detail.text
}
},
position: [...activePosition]
});
}
hideTextArea();

@@ -143,4 +184,5 @@ });

var _a;
if ((e === null || e === void 0 ? void 0 : e.element) && ((_a = e === null || e === void 0 ? void 0 : e.element) === null || _a === void 0 ? void 0 : _a.type) === 'text') {
if ((e === null || e === void 0 ? void 0 : e.position) && (e === null || e === void 0 ? void 0 : e.element) && ((_a = e === null || e === void 0 ? void 0 : e.element) === null || _a === void 0 ? void 0 : _a.type) === 'text') {
activeElem = e.element;
activePosition = e.position;
}

@@ -147,0 +189,0 @@ showTextArea(e);

{
"name": "@idraw/core",
"version": "0.4.0-beta.14",
"version": "0.4.0-beta.15",
"description": "",

@@ -24,9 +24,9 @@ "main": "dist/esm/index.js",

"devDependencies": {
"@idraw/types": "^0.4.0-beta.14"
"@idraw/types": "^0.4.0-beta.15"
},
"dependencies": {},
"peerDependencies": {
"@idraw/board": "^0.4.0-beta.14",
"@idraw/renderer": "^0.4.0-beta.14",
"@idraw/util": "^0.4.0-beta.14"
"@idraw/board": "^0.4.0-beta.15",
"@idraw/renderer": "^0.4.0-beta.15",
"@idraw/util": "^0.4.0-beta.15"
},

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc