@idraw/core 0.4.2 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/board/index.d.ts +2 -2
- package/dist/esm/board/index.js +23 -12
- package/dist/esm/board/sharer.d.ts +3 -3
- package/dist/esm/board/sharer.js +10 -10
- package/dist/esm/board/viewer.d.ts +3 -3
- package/dist/esm/board/viewer.js +14 -14
- package/dist/esm/board/watcher.d.ts +3 -3
- package/dist/esm/board/watcher.js +68 -43
- package/dist/esm/core.d.ts +52 -0
- package/dist/esm/core.js +393 -0
- package/dist/esm/cursor/cursor-image.d.ts +2 -0
- package/dist/esm/cursor/cursor-image.js +2 -0
- package/dist/esm/cursor/cursor.js +60 -24
- package/dist/esm/index.d.ts +12 -61
- package/dist/esm/index.js +11 -389
- package/dist/esm/middlewares/common.d.ts +4 -0
- package/dist/esm/middlewares/common.js +13 -0
- package/dist/esm/middlewares/creator/dom.d.ts +11 -0
- package/dist/esm/middlewares/creator/dom.js +52 -0
- package/dist/esm/middlewares/creator/index.d.ts +5 -0
- package/dist/esm/middlewares/creator/index.js +136 -0
- package/dist/esm/middlewares/creator/static.d.ts +14 -0
- package/dist/esm/middlewares/creator/static.js +19 -0
- package/dist/esm/middlewares/creator/styles.d.ts +4 -0
- package/dist/esm/middlewares/creator/styles.js +32 -0
- package/dist/esm/middlewares/creator/types.d.ts +7 -0
- package/dist/esm/middlewares/creator/types.js +1 -0
- package/dist/esm/middlewares/creator/util.d.ts +10 -0
- package/dist/esm/middlewares/creator/util.js +52 -0
- package/dist/esm/middlewares/dragger/index.js +5 -5
- package/dist/esm/middlewares/info/draw-info.d.ts +11 -11
- package/dist/esm/middlewares/info/draw-info.js +18 -18
- package/dist/esm/middlewares/info/index.d.ts +2 -1
- package/dist/esm/middlewares/info/index.js +48 -51
- package/dist/esm/middlewares/info/static.d.ts +6 -0
- package/dist/esm/middlewares/info/{config.js → static.js} +6 -1
- package/dist/esm/middlewares/info/types.d.ts +2 -2
- package/dist/esm/middlewares/layout-selector/dom.d.ts +10 -0
- package/dist/esm/middlewares/layout-selector/dom.js +108 -0
- package/dist/esm/middlewares/layout-selector/index.d.ts +1 -1
- package/dist/esm/middlewares/layout-selector/index.js +89 -141
- package/dist/esm/middlewares/layout-selector/static.d.ts +32 -0
- package/dist/esm/middlewares/layout-selector/static.js +39 -0
- package/dist/esm/middlewares/layout-selector/styles.d.ts +4 -0
- package/dist/esm/middlewares/layout-selector/styles.js +127 -0
- package/dist/esm/middlewares/layout-selector/types.d.ts +6 -6
- package/dist/esm/middlewares/layout-selector/types.js +2 -2
- package/dist/esm/middlewares/layout-selector/util.d.ts +4 -4
- package/dist/esm/middlewares/layout-selector/util.js +19 -19
- package/dist/esm/middlewares/path-creator/dom.d.ts +29 -0
- package/dist/esm/middlewares/path-creator/dom.js +145 -0
- package/dist/esm/middlewares/path-creator/index.d.ts +5 -0
- package/dist/esm/middlewares/path-creator/index.js +203 -0
- package/dist/esm/middlewares/path-creator/static.d.ts +23 -0
- package/dist/esm/middlewares/path-creator/static.js +49 -0
- package/dist/esm/middlewares/path-creator/types.d.ts +1 -0
- package/dist/esm/middlewares/path-editor/calc.d.ts +6 -0
- package/dist/esm/middlewares/path-editor/calc.js +51 -0
- package/dist/esm/middlewares/path-editor/dom.d.ts +32 -0
- package/dist/esm/middlewares/path-editor/dom.js +575 -0
- package/dist/esm/middlewares/path-editor/draw.d.ts +7 -0
- package/dist/esm/middlewares/path-editor/draw.js +113 -0
- package/dist/esm/middlewares/path-editor/index.d.ts +5 -0
- package/dist/esm/middlewares/path-editor/index.js +312 -0
- package/dist/esm/middlewares/path-editor/parse.d.ts +5 -0
- package/dist/esm/middlewares/path-editor/parse.js +37 -0
- package/dist/esm/middlewares/path-editor/static.d.ts +34 -0
- package/dist/esm/middlewares/path-editor/static.js +82 -0
- package/dist/esm/middlewares/path-editor/types.d.ts +26 -0
- package/dist/esm/middlewares/path-editor/types.js +1 -0
- package/dist/esm/middlewares/path-editor/util.d.ts +5 -0
- package/dist/esm/middlewares/path-editor/util.js +21 -0
- package/dist/esm/middlewares/pointer/index.js +5 -5
- package/dist/esm/middlewares/pointer/types.d.ts +2 -2
- package/dist/esm/middlewares/ruler/index.d.ts +2 -0
- package/dist/esm/middlewares/ruler/index.js +12 -19
- package/dist/esm/middlewares/ruler/static.d.ts +8 -0
- package/dist/esm/middlewares/ruler/{config.js → static.js} +16 -3
- package/dist/esm/middlewares/ruler/types.d.ts +2 -2
- package/dist/esm/middlewares/ruler/util.d.ts +6 -6
- package/dist/esm/middlewares/ruler/util.js +31 -31
- package/dist/esm/middlewares/scaler/index.js +2 -2
- package/dist/esm/middlewares/scroller/dom.d.ts +14 -0
- package/dist/esm/middlewares/scroller/dom.js +53 -0
- package/dist/esm/middlewares/scroller/index.d.ts +2 -0
- package/dist/esm/middlewares/scroller/index.js +111 -46
- package/dist/esm/middlewares/scroller/static.d.ts +21 -0
- package/dist/esm/middlewares/scroller/static.js +29 -0
- package/dist/esm/middlewares/scroller/styles.d.ts +4 -0
- package/dist/esm/middlewares/scroller/styles.js +73 -0
- package/dist/esm/middlewares/scroller/types.d.ts +8 -6
- package/dist/esm/middlewares/scroller/types.js +1 -1
- package/dist/esm/middlewares/scroller/util.d.ts +6 -13
- package/dist/esm/middlewares/scroller/util.js +15 -144
- package/dist/esm/middlewares/selector/dom.d.ts +21 -0
- package/dist/esm/middlewares/selector/dom.js +395 -0
- package/dist/esm/middlewares/selector/draw-base.d.ts +9 -21
- package/dist/esm/middlewares/selector/draw-base.js +19 -43
- package/dist/esm/middlewares/selector/draw-reference.d.ts +4 -5
- package/dist/esm/middlewares/selector/draw-reference.js +5 -5
- package/dist/esm/middlewares/selector/index.d.ts +4 -2
- package/dist/esm/middlewares/selector/index.js +315 -439
- package/dist/esm/middlewares/selector/reference.d.ts +5 -5
- package/dist/esm/middlewares/selector/reference.js +36 -30
- package/dist/esm/middlewares/selector/render-frame.d.ts +11 -0
- package/dist/esm/middlewares/selector/render-frame.js +107 -0
- package/dist/esm/middlewares/selector/resize.d.ts +7 -0
- package/dist/esm/middlewares/selector/resize.js +27 -0
- package/dist/esm/middlewares/selector/static.d.ts +67 -0
- package/dist/esm/middlewares/selector/static.js +92 -0
- package/dist/esm/middlewares/selector/styles.d.ts +4 -0
- package/dist/esm/middlewares/selector/styles.js +153 -0
- package/dist/esm/middlewares/selector/types.d.ts +27 -27
- package/dist/esm/middlewares/selector/types.js +1 -1
- package/dist/esm/middlewares/selector/util.d.ts +22 -32
- package/dist/esm/middlewares/selector/util.js +226 -243
- package/dist/esm/middlewares/text-editor/dom.d.ts +5 -0
- package/dist/esm/middlewares/text-editor/dom.js +135 -0
- package/dist/esm/middlewares/text-editor/index.d.ts +5 -20
- package/dist/esm/middlewares/text-editor/index.js +201 -207
- package/dist/esm/middlewares/text-editor/static.d.ts +10 -0
- package/dist/esm/middlewares/text-editor/static.js +17 -0
- package/dist/esm/middlewares/text-editor/types.d.ts +21 -0
- package/dist/esm/middlewares/text-editor/types.js +1 -0
- package/dist/esm/record.d.ts +5 -5
- package/dist/esm/record.js +14 -14
- package/dist/esm/{config.d.ts → static.d.ts} +16 -0
- package/dist/esm/{config.js → static.js} +18 -2
- package/dist/index.global.js +8934 -5646
- package/dist/index.global.min.js +1 -1
- package/package.json +4 -4
- package/dist/esm/middlewares/info/config.d.ts +0 -5
- package/dist/esm/middlewares/layout-selector/config.d.ts +0 -11
- package/dist/esm/middlewares/layout-selector/config.js +0 -12
- package/dist/esm/middlewares/ruler/config.d.ts +0 -7
- package/dist/esm/middlewares/scroller/config.d.ts +0 -10
- package/dist/esm/middlewares/scroller/config.js +0 -16
- package/dist/esm/middlewares/selector/config.d.ts +0 -30
- package/dist/esm/middlewares/selector/config.js +0 -38
- package/dist/esm/middlewares/selector/draw-auxiliary.js +0 -12
- package/dist/esm/middlewares/selector/draw-debug.d.ts +0 -5
- package/dist/esm/middlewares/selector/draw-debug.js +0 -30
- package/dist/esm/middlewares/selector/draw-wrapper.d.ts +0 -37
- package/dist/esm/middlewares/selector/draw-wrapper.js +0 -139
- package/dist/esm/middlewares/selector/pattern/icon-rotate.d.ts +0 -4
- package/dist/esm/middlewares/selector/pattern/icon-rotate.js +0 -88
- package/dist/esm/middlewares/selector/pattern/index.d.ts +0 -8
- package/dist/esm/middlewares/selector/pattern/index.js +0 -38
- /package/dist/esm/middlewares/{selector/draw-auxiliary.d.ts → path-creator/types.js} +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createId, getMiddlewareValidStyles } from '@idraw/util';
|
|
2
|
+
export const key = 'PATH-CREATOR';
|
|
3
|
+
const prefix = `idraw-middleware-path-creator`;
|
|
4
|
+
export const getRootClassName = () => `${prefix}-${createId()}`;
|
|
5
|
+
export const classNameMap = {
|
|
6
|
+
hide: `${prefix}-hide`,
|
|
7
|
+
anchor: `${prefix}-anchor`,
|
|
8
|
+
director: `${prefix}-director`,
|
|
9
|
+
directorLines: `${prefix}-director-lines`,
|
|
10
|
+
pathLine: `${prefix}-path-line`,
|
|
11
|
+
selected: `${prefix}-selected`,
|
|
12
|
+
};
|
|
13
|
+
export const ATTR_X = `data-x`;
|
|
14
|
+
export const ATTR_Y = `data-y`;
|
|
15
|
+
export const ATTR_ANGLE = `data-angle`;
|
|
16
|
+
export const ATTR_TYPE = `data-type`;
|
|
17
|
+
export const ATTR_HELPER_TYPE = `data-helper-type`;
|
|
18
|
+
export const ATTR_AHCHOR_CMD_TYPE = `data-anchor-cmd-type`;
|
|
19
|
+
export const ATTR_AHCHOR_INDEX = `data-anchor-index`;
|
|
20
|
+
export const ATTR_AHCHOR_ID = `data-anchor-id`;
|
|
21
|
+
export const HELPER_ROOT = 'root';
|
|
22
|
+
export const HELPER_ANCHOR = 'anchor';
|
|
23
|
+
export const defaultConfig = {
|
|
24
|
+
anchorSize: 8,
|
|
25
|
+
anchorBorderWidth: 2,
|
|
26
|
+
anchorBorderColor: '#157ed1',
|
|
27
|
+
anchorBackground: '#ffffff',
|
|
28
|
+
anchorHoverBorderColor: '#1671b8',
|
|
29
|
+
anchorHoverBackground: '#cfe4f4',
|
|
30
|
+
anchorActiveBorderColor: '#0d548c',
|
|
31
|
+
anchorActiveBackground: '#88c0ec',
|
|
32
|
+
defaultStroke: '#a0a0a0',
|
|
33
|
+
defaultStrokeWidth: 2,
|
|
34
|
+
};
|
|
35
|
+
export function getMiddlewarePathCreatorStyles(config) {
|
|
36
|
+
const styles = getMiddlewareValidStyles(config, [
|
|
37
|
+
'anchorSize',
|
|
38
|
+
'anchorBorderWidth',
|
|
39
|
+
'anchorBorderColor',
|
|
40
|
+
'anchorBackground',
|
|
41
|
+
'anchorHoverBorderColor',
|
|
42
|
+
'anchorHoverBackground',
|
|
43
|
+
'anchorActiveBorderColor',
|
|
44
|
+
'anchorActiveBackground',
|
|
45
|
+
'defaultStroke',
|
|
46
|
+
'defaultStrokeWidth',
|
|
47
|
+
]);
|
|
48
|
+
return styles;
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type PathSharedStorage = {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function calcVisibleBBoxOfPath(path) {
|
|
2
|
+
const svg = path.ownerSVGElement;
|
|
3
|
+
if (!svg) {
|
|
4
|
+
throw new Error('The path is not inside an <svg> element.');
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const fancyBBox = path.getBBox({ stroke: true, fill: false, markers: true, clipped: true });
|
|
8
|
+
if (fancyBBox && Number.isFinite(fancyBBox.width) && Number.isFinite(fancyBBox.height)) {
|
|
9
|
+
return {
|
|
10
|
+
x: fancyBBox.x,
|
|
11
|
+
y: fancyBBox.y,
|
|
12
|
+
width: fancyBBox.width,
|
|
13
|
+
height: fancyBBox.height,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch (_a) {
|
|
18
|
+
}
|
|
19
|
+
const ctm = svg.getScreenCTM();
|
|
20
|
+
if (!ctm)
|
|
21
|
+
throw new Error('Failed to get screen CTM from the <svg>.');
|
|
22
|
+
const inv = ctm.inverse();
|
|
23
|
+
const rect = path.getBoundingClientRect();
|
|
24
|
+
const corners = [
|
|
25
|
+
{ x: rect.left, y: rect.top },
|
|
26
|
+
{ x: rect.right, y: rect.top },
|
|
27
|
+
{ x: rect.right, y: rect.bottom },
|
|
28
|
+
{ x: rect.left, y: rect.bottom },
|
|
29
|
+
];
|
|
30
|
+
const svgPoint = svg.createSVGPoint();
|
|
31
|
+
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
32
|
+
for (const c of corners) {
|
|
33
|
+
svgPoint.x = c.x;
|
|
34
|
+
svgPoint.y = c.y;
|
|
35
|
+
const p = svgPoint.matrixTransform(inv);
|
|
36
|
+
if (p.x < minX)
|
|
37
|
+
minX = p.x;
|
|
38
|
+
if (p.y < minY)
|
|
39
|
+
minY = p.y;
|
|
40
|
+
if (p.x > maxX)
|
|
41
|
+
maxX = p.x;
|
|
42
|
+
if (p.y > maxY)
|
|
43
|
+
maxY = p.y;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
x: minX,
|
|
47
|
+
y: minY,
|
|
48
|
+
width: maxX - minX,
|
|
49
|
+
height: maxY - minY,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { StrictMaterial, ViewScaleInfo, ViewCalculator, MiddlewarePathEditorStyles } from '@idraw/types';
|
|
2
|
+
import type { Directioner, AnchorInfo, DirectorInfo } from './types';
|
|
3
|
+
export declare function initStyles(rootClassName: string, styles: MiddlewarePathEditorStyles): void;
|
|
4
|
+
export declare function destroyStyles(rootClassName: string): void;
|
|
5
|
+
export declare function initRoot(container: HTMLElement, opts: {
|
|
6
|
+
id: string;
|
|
7
|
+
rootClassName: string;
|
|
8
|
+
}): HTMLDivElement | undefined;
|
|
9
|
+
export declare const getAnchorHandlerInfo: (handler: HTMLElement) => AnchorInfo;
|
|
10
|
+
export declare const getDirectorHandlerInfo: (handler: HTMLElement) => DirectorInfo;
|
|
11
|
+
export declare const resetRoot: (root: HTMLElement | null, opts: {
|
|
12
|
+
material: StrictMaterial<"path"> | null;
|
|
13
|
+
calculator: ViewCalculator;
|
|
14
|
+
viewScaleInfo: ViewScaleInfo;
|
|
15
|
+
groupQueue: StrictMaterial<"group">[];
|
|
16
|
+
styles: MiddlewarePathEditorStyles;
|
|
17
|
+
}) => void;
|
|
18
|
+
export declare const resetAnchorStyle: (root: HTMLElement | null, opts: {
|
|
19
|
+
selectedAnchorId?: string;
|
|
20
|
+
material: StrictMaterial<"path"> | null;
|
|
21
|
+
viewScaleInfo: ViewScaleInfo;
|
|
22
|
+
calculator: ViewCalculator;
|
|
23
|
+
styles: MiddlewarePathEditorStyles;
|
|
24
|
+
}) => void;
|
|
25
|
+
export declare const clearDirectioner: (root: HTMLElement | null) => void;
|
|
26
|
+
export declare const resetDirectionerStyle: (root: HTMLElement, opts: {
|
|
27
|
+
selectedAnchorId: string;
|
|
28
|
+
currentDirector: Directioner | null;
|
|
29
|
+
prevDirector: Directioner | null;
|
|
30
|
+
styles: MiddlewarePathEditorStyles;
|
|
31
|
+
}) => void;
|
|
32
|
+
export declare function calcPathSize(root: HTMLElement | null): null | undefined;
|