@knotx/plugins-canvas 0.4.2 → 0.4.4
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/index.cjs +27 -16
- package/dist/index.d.cts +29 -29
- package/dist/index.d.mts +29 -29
- package/dist/index.d.ts +29 -29
- package/dist/index.js +27 -16
- package/package.json +8 -8
package/dist/index.cjs
CHANGED
|
@@ -14,19 +14,21 @@ function calculateTransform({
|
|
|
14
14
|
scale,
|
|
15
15
|
block = "nearest",
|
|
16
16
|
inline = "nearest",
|
|
17
|
-
offset = 0
|
|
17
|
+
offset = 0,
|
|
18
|
+
contentSize,
|
|
19
|
+
limitToBounds
|
|
18
20
|
}) {
|
|
19
|
-
var _a, _b, _c, _d, _e, _f;
|
|
20
|
-
const nodeX = node.position.x;
|
|
21
|
-
const nodeY = node.position.y;
|
|
22
|
-
const nodeWidth = (
|
|
23
|
-
const nodeHeight = (
|
|
21
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
22
|
+
const nodeX = (_a = node == null ? void 0 : node.position.x) != null ? _a : 0;
|
|
23
|
+
const nodeY = (_b = node == null ? void 0 : node.position.y) != null ? _b : 0;
|
|
24
|
+
const nodeWidth = (_d = (_c = node == null ? void 0 : node.measured) == null ? void 0 : _c.width) != null ? _d : 0;
|
|
25
|
+
const nodeHeight = (_f = (_e = node == null ? void 0 : node.measured) == null ? void 0 : _e.height) != null ? _f : 0;
|
|
24
26
|
const viewportWidth = container.width;
|
|
25
27
|
const viewportHeight = container.height;
|
|
26
28
|
let positionX = -transform.positionX;
|
|
27
29
|
let positionY = -transform.positionY;
|
|
28
|
-
const offsetX = typeof offset === "number" ? offset : (
|
|
29
|
-
const offsetY = typeof offset === "number" ? offset : (
|
|
30
|
+
const offsetX = typeof offset === "number" ? offset : (_g = offset.x) != null ? _g : 0;
|
|
31
|
+
const offsetY = typeof offset === "number" ? offset : (_h = offset.y) != null ? _h : 0;
|
|
30
32
|
switch (inline) {
|
|
31
33
|
case "center":
|
|
32
34
|
positionX = (nodeX + nodeWidth / 2) * scale - viewportWidth / 2;
|
|
@@ -73,6 +75,14 @@ function calculateTransform({
|
|
|
73
75
|
break;
|
|
74
76
|
}
|
|
75
77
|
}
|
|
78
|
+
if (limitToBounds && contentSize) {
|
|
79
|
+
if (contentSize.width * scale < viewportWidth) {
|
|
80
|
+
positionX = contentSize.width / 2 * scale - viewportWidth / 2;
|
|
81
|
+
}
|
|
82
|
+
if (contentSize.height * scale < viewportHeight) {
|
|
83
|
+
positionY = contentSize.height / 2 * scale - viewportHeight / 2;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
76
86
|
return {
|
|
77
87
|
scale,
|
|
78
88
|
positionX,
|
|
@@ -286,10 +296,12 @@ class Canvas extends (_a = core.BasePlugin, _transform_dec = [decorators.registe
|
|
|
286
296
|
node,
|
|
287
297
|
container: this.container,
|
|
288
298
|
transform: this.transform,
|
|
299
|
+
contentSize: this.contentSize,
|
|
289
300
|
scale,
|
|
290
301
|
block,
|
|
291
302
|
inline,
|
|
292
|
-
offset
|
|
303
|
+
offset,
|
|
304
|
+
limitToBounds: false
|
|
293
305
|
});
|
|
294
306
|
(_a2 = this.ref) == null ? void 0 : _a2.setTransform(-positionX, -positionY, newScale, animationTime);
|
|
295
307
|
}
|
|
@@ -312,21 +324,19 @@ class Canvas extends (_a = core.BasePlugin, _transform_dec = [decorators.registe
|
|
|
312
324
|
render({ children } = { children: null }) {
|
|
313
325
|
var _a2, _b, _c, _d;
|
|
314
326
|
const defaultTransform = react.useMemo(() => {
|
|
315
|
-
const defaultLocated = this.config.defaultLocated;
|
|
316
|
-
if (!(defaultLocated == null ? void 0 : defaultLocated.nodeId)) {
|
|
317
|
-
return this.transform;
|
|
318
|
-
}
|
|
319
|
-
const node = this.getNode({ id: defaultLocated.nodeId });
|
|
320
|
-
if (!node) {
|
|
327
|
+
const defaultLocated = __spreadValues({}, this.config.defaultLocated);
|
|
328
|
+
if (!(defaultLocated == null ? void 0 : defaultLocated.nodeId) && !defaultLocated.limitToBounds) {
|
|
321
329
|
return this.transform;
|
|
322
330
|
}
|
|
331
|
+
const node = defaultLocated.nodeId ? this.getNode({ id: defaultLocated.nodeId }) : void 0;
|
|
323
332
|
defaultLocated.inline || (defaultLocated.inline = "center");
|
|
324
333
|
defaultLocated.block || (defaultLocated.block = "center");
|
|
325
334
|
defaultLocated.scale || (defaultLocated.scale = this.transform.scale);
|
|
326
335
|
const { positionX, positionY, scale: newScale } = calculateTransform(__spreadValues({
|
|
327
336
|
node,
|
|
328
337
|
container: this.container,
|
|
329
|
-
transform: this.transform
|
|
338
|
+
transform: this.transform,
|
|
339
|
+
contentSize: this.contentSize
|
|
330
340
|
}, defaultLocated));
|
|
331
341
|
const newTransform = {
|
|
332
342
|
previousScale: this.transform.scale,
|
|
@@ -464,6 +474,7 @@ class Canvas extends (_a = core.BasePlugin, _transform_dec = [decorators.registe
|
|
|
464
474
|
contain: "strict"
|
|
465
475
|
},
|
|
466
476
|
wrapperProps: {
|
|
477
|
+
id: this.pluginId,
|
|
467
478
|
onClick,
|
|
468
479
|
onContextMenu,
|
|
469
480
|
onMouseMove,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,33 +1,43 @@
|
|
|
1
1
|
import { Element, BasePlugin, DOMElement, Engine } from '@knotx/core';
|
|
2
2
|
import { InferParamsFromSchema } from '@knotx/decorators';
|
|
3
3
|
import { MouseEvent, ReactNode } from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { ReactZoomPanPinchProps, ReactZoomPanPinchContentRef } from 'react-zoom-pan-pinch';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
offset?: number | {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
};
|
|
16
|
-
animationTime?: number;
|
|
17
|
-
};
|
|
18
|
-
};
|
|
6
|
+
interface CanvasTransformState {
|
|
7
|
+
previousScale: number;
|
|
8
|
+
scale: number;
|
|
9
|
+
positionX: number;
|
|
10
|
+
positionY: number;
|
|
11
|
+
}
|
|
19
12
|
interface CanvasContentSize {
|
|
20
13
|
width: number;
|
|
21
14
|
height: number;
|
|
22
15
|
}
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
interface ScrollNodeIntoViewOptions {
|
|
17
|
+
nodeId: string;
|
|
18
|
+
scale?: number;
|
|
19
|
+
block?: 'center' | 'end' | 'nearest' | 'start';
|
|
20
|
+
inline?: 'center' | 'end' | 'nearest' | 'start';
|
|
21
|
+
offset?: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
animationTime?: number;
|
|
26
|
+
limitToBounds?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface DefaultLocatedOptions extends Omit<ScrollNodeIntoViewOptions, 'nodeId'> {
|
|
29
|
+
nodeId?: string | null;
|
|
30
|
+
}
|
|
25
31
|
interface EdgeScrollConfig {
|
|
26
32
|
enabled: boolean;
|
|
27
33
|
edgeSize: number;
|
|
28
34
|
maxSpeed: number;
|
|
29
35
|
cornerSize?: number;
|
|
30
36
|
}
|
|
37
|
+
|
|
38
|
+
type CanvasConfig = ReactZoomPanPinchProps & {
|
|
39
|
+
defaultLocated?: DefaultLocatedOptions;
|
|
40
|
+
};
|
|
31
41
|
declare module '@knotx/core' {
|
|
32
42
|
interface PluginData {
|
|
33
43
|
canvas: {
|
|
@@ -45,17 +55,7 @@ declare module '@knotx/core' {
|
|
|
45
55
|
}
|
|
46
56
|
interface PluginTools {
|
|
47
57
|
canvas: {
|
|
48
|
-
scrollNodeIntoView: (params:
|
|
49
|
-
nodeId: string;
|
|
50
|
-
scale?: number;
|
|
51
|
-
block?: 'center' | 'end' | 'nearest' | 'start';
|
|
52
|
-
inline?: 'center' | 'end' | 'nearest' | 'start';
|
|
53
|
-
offset?: {
|
|
54
|
-
x: number;
|
|
55
|
-
y: number;
|
|
56
|
-
};
|
|
57
|
-
animationTime?: number;
|
|
58
|
-
}) => void;
|
|
58
|
+
scrollNodeIntoView: (params: ScrollNodeIntoViewOptions) => void;
|
|
59
59
|
zoomIn: (params: {
|
|
60
60
|
step?: number;
|
|
61
61
|
animationTime?: number;
|
|
@@ -81,7 +81,7 @@ type CanvasEventListener = (event: MouseEvent<HTMLElement>) => void;
|
|
|
81
81
|
declare class Canvas extends BasePlugin<'canvas', CanvasConfig> {
|
|
82
82
|
private config;
|
|
83
83
|
name: "canvas";
|
|
84
|
-
ref:
|
|
84
|
+
ref: ReactZoomPanPinchContentRef | null;
|
|
85
85
|
transform: CanvasTransformState;
|
|
86
86
|
rootElement: DOMElement | null;
|
|
87
87
|
contentSize: CanvasContentSize | undefined;
|
|
@@ -187,4 +187,4 @@ declare class Canvas extends BasePlugin<'canvas', CanvasConfig> {
|
|
|
187
187
|
private isCanvasEvent;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
export { Canvas, type CanvasConfig, type CanvasContentSize, type CanvasEventListener, type CanvasEventType, type
|
|
190
|
+
export { Canvas, type CanvasConfig, type CanvasContentSize, type CanvasEventListener, type CanvasEventType, type CanvasTransformState, type DefaultLocatedOptions, type EdgeScrollConfig, type ScrollNodeIntoViewOptions };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,33 +1,43 @@
|
|
|
1
1
|
import { Element, BasePlugin, DOMElement, Engine } from '@knotx/core';
|
|
2
2
|
import { InferParamsFromSchema } from '@knotx/decorators';
|
|
3
3
|
import { MouseEvent, ReactNode } from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { ReactZoomPanPinchProps, ReactZoomPanPinchContentRef } from 'react-zoom-pan-pinch';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
offset?: number | {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
};
|
|
16
|
-
animationTime?: number;
|
|
17
|
-
};
|
|
18
|
-
};
|
|
6
|
+
interface CanvasTransformState {
|
|
7
|
+
previousScale: number;
|
|
8
|
+
scale: number;
|
|
9
|
+
positionX: number;
|
|
10
|
+
positionY: number;
|
|
11
|
+
}
|
|
19
12
|
interface CanvasContentSize {
|
|
20
13
|
width: number;
|
|
21
14
|
height: number;
|
|
22
15
|
}
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
interface ScrollNodeIntoViewOptions {
|
|
17
|
+
nodeId: string;
|
|
18
|
+
scale?: number;
|
|
19
|
+
block?: 'center' | 'end' | 'nearest' | 'start';
|
|
20
|
+
inline?: 'center' | 'end' | 'nearest' | 'start';
|
|
21
|
+
offset?: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
animationTime?: number;
|
|
26
|
+
limitToBounds?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface DefaultLocatedOptions extends Omit<ScrollNodeIntoViewOptions, 'nodeId'> {
|
|
29
|
+
nodeId?: string | null;
|
|
30
|
+
}
|
|
25
31
|
interface EdgeScrollConfig {
|
|
26
32
|
enabled: boolean;
|
|
27
33
|
edgeSize: number;
|
|
28
34
|
maxSpeed: number;
|
|
29
35
|
cornerSize?: number;
|
|
30
36
|
}
|
|
37
|
+
|
|
38
|
+
type CanvasConfig = ReactZoomPanPinchProps & {
|
|
39
|
+
defaultLocated?: DefaultLocatedOptions;
|
|
40
|
+
};
|
|
31
41
|
declare module '@knotx/core' {
|
|
32
42
|
interface PluginData {
|
|
33
43
|
canvas: {
|
|
@@ -45,17 +55,7 @@ declare module '@knotx/core' {
|
|
|
45
55
|
}
|
|
46
56
|
interface PluginTools {
|
|
47
57
|
canvas: {
|
|
48
|
-
scrollNodeIntoView: (params:
|
|
49
|
-
nodeId: string;
|
|
50
|
-
scale?: number;
|
|
51
|
-
block?: 'center' | 'end' | 'nearest' | 'start';
|
|
52
|
-
inline?: 'center' | 'end' | 'nearest' | 'start';
|
|
53
|
-
offset?: {
|
|
54
|
-
x: number;
|
|
55
|
-
y: number;
|
|
56
|
-
};
|
|
57
|
-
animationTime?: number;
|
|
58
|
-
}) => void;
|
|
58
|
+
scrollNodeIntoView: (params: ScrollNodeIntoViewOptions) => void;
|
|
59
59
|
zoomIn: (params: {
|
|
60
60
|
step?: number;
|
|
61
61
|
animationTime?: number;
|
|
@@ -81,7 +81,7 @@ type CanvasEventListener = (event: MouseEvent<HTMLElement>) => void;
|
|
|
81
81
|
declare class Canvas extends BasePlugin<'canvas', CanvasConfig> {
|
|
82
82
|
private config;
|
|
83
83
|
name: "canvas";
|
|
84
|
-
ref:
|
|
84
|
+
ref: ReactZoomPanPinchContentRef | null;
|
|
85
85
|
transform: CanvasTransformState;
|
|
86
86
|
rootElement: DOMElement | null;
|
|
87
87
|
contentSize: CanvasContentSize | undefined;
|
|
@@ -187,4 +187,4 @@ declare class Canvas extends BasePlugin<'canvas', CanvasConfig> {
|
|
|
187
187
|
private isCanvasEvent;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
export { Canvas, type CanvasConfig, type CanvasContentSize, type CanvasEventListener, type CanvasEventType, type
|
|
190
|
+
export { Canvas, type CanvasConfig, type CanvasContentSize, type CanvasEventListener, type CanvasEventType, type CanvasTransformState, type DefaultLocatedOptions, type EdgeScrollConfig, type ScrollNodeIntoViewOptions };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,33 +1,43 @@
|
|
|
1
1
|
import { Element, BasePlugin, DOMElement, Engine } from '@knotx/core';
|
|
2
2
|
import { InferParamsFromSchema } from '@knotx/decorators';
|
|
3
3
|
import { MouseEvent, ReactNode } from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { ReactZoomPanPinchProps, ReactZoomPanPinchContentRef } from 'react-zoom-pan-pinch';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
offset?: number | {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
};
|
|
16
|
-
animationTime?: number;
|
|
17
|
-
};
|
|
18
|
-
};
|
|
6
|
+
interface CanvasTransformState {
|
|
7
|
+
previousScale: number;
|
|
8
|
+
scale: number;
|
|
9
|
+
positionX: number;
|
|
10
|
+
positionY: number;
|
|
11
|
+
}
|
|
19
12
|
interface CanvasContentSize {
|
|
20
13
|
width: number;
|
|
21
14
|
height: number;
|
|
22
15
|
}
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
interface ScrollNodeIntoViewOptions {
|
|
17
|
+
nodeId: string;
|
|
18
|
+
scale?: number;
|
|
19
|
+
block?: 'center' | 'end' | 'nearest' | 'start';
|
|
20
|
+
inline?: 'center' | 'end' | 'nearest' | 'start';
|
|
21
|
+
offset?: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
animationTime?: number;
|
|
26
|
+
limitToBounds?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface DefaultLocatedOptions extends Omit<ScrollNodeIntoViewOptions, 'nodeId'> {
|
|
29
|
+
nodeId?: string | null;
|
|
30
|
+
}
|
|
25
31
|
interface EdgeScrollConfig {
|
|
26
32
|
enabled: boolean;
|
|
27
33
|
edgeSize: number;
|
|
28
34
|
maxSpeed: number;
|
|
29
35
|
cornerSize?: number;
|
|
30
36
|
}
|
|
37
|
+
|
|
38
|
+
type CanvasConfig = ReactZoomPanPinchProps & {
|
|
39
|
+
defaultLocated?: DefaultLocatedOptions;
|
|
40
|
+
};
|
|
31
41
|
declare module '@knotx/core' {
|
|
32
42
|
interface PluginData {
|
|
33
43
|
canvas: {
|
|
@@ -45,17 +55,7 @@ declare module '@knotx/core' {
|
|
|
45
55
|
}
|
|
46
56
|
interface PluginTools {
|
|
47
57
|
canvas: {
|
|
48
|
-
scrollNodeIntoView: (params:
|
|
49
|
-
nodeId: string;
|
|
50
|
-
scale?: number;
|
|
51
|
-
block?: 'center' | 'end' | 'nearest' | 'start';
|
|
52
|
-
inline?: 'center' | 'end' | 'nearest' | 'start';
|
|
53
|
-
offset?: {
|
|
54
|
-
x: number;
|
|
55
|
-
y: number;
|
|
56
|
-
};
|
|
57
|
-
animationTime?: number;
|
|
58
|
-
}) => void;
|
|
58
|
+
scrollNodeIntoView: (params: ScrollNodeIntoViewOptions) => void;
|
|
59
59
|
zoomIn: (params: {
|
|
60
60
|
step?: number;
|
|
61
61
|
animationTime?: number;
|
|
@@ -81,7 +81,7 @@ type CanvasEventListener = (event: MouseEvent<HTMLElement>) => void;
|
|
|
81
81
|
declare class Canvas extends BasePlugin<'canvas', CanvasConfig> {
|
|
82
82
|
private config;
|
|
83
83
|
name: "canvas";
|
|
84
|
-
ref:
|
|
84
|
+
ref: ReactZoomPanPinchContentRef | null;
|
|
85
85
|
transform: CanvasTransformState;
|
|
86
86
|
rootElement: DOMElement | null;
|
|
87
87
|
contentSize: CanvasContentSize | undefined;
|
|
@@ -187,4 +187,4 @@ declare class Canvas extends BasePlugin<'canvas', CanvasConfig> {
|
|
|
187
187
|
private isCanvasEvent;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
export { Canvas, type CanvasConfig, type CanvasContentSize, type CanvasEventListener, type CanvasEventType, type
|
|
190
|
+
export { Canvas, type CanvasConfig, type CanvasContentSize, type CanvasEventListener, type CanvasEventType, type CanvasTransformState, type DefaultLocatedOptions, type EdgeScrollConfig, type ScrollNodeIntoViewOptions };
|
package/dist/index.js
CHANGED
|
@@ -12,19 +12,21 @@ function calculateTransform({
|
|
|
12
12
|
scale,
|
|
13
13
|
block = "nearest",
|
|
14
14
|
inline = "nearest",
|
|
15
|
-
offset = 0
|
|
15
|
+
offset = 0,
|
|
16
|
+
contentSize,
|
|
17
|
+
limitToBounds
|
|
16
18
|
}) {
|
|
17
|
-
var _a, _b, _c, _d, _e, _f;
|
|
18
|
-
const nodeX = node.position.x;
|
|
19
|
-
const nodeY = node.position.y;
|
|
20
|
-
const nodeWidth = (
|
|
21
|
-
const nodeHeight = (
|
|
19
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
20
|
+
const nodeX = (_a = node == null ? void 0 : node.position.x) != null ? _a : 0;
|
|
21
|
+
const nodeY = (_b = node == null ? void 0 : node.position.y) != null ? _b : 0;
|
|
22
|
+
const nodeWidth = (_d = (_c = node == null ? void 0 : node.measured) == null ? void 0 : _c.width) != null ? _d : 0;
|
|
23
|
+
const nodeHeight = (_f = (_e = node == null ? void 0 : node.measured) == null ? void 0 : _e.height) != null ? _f : 0;
|
|
22
24
|
const viewportWidth = container.width;
|
|
23
25
|
const viewportHeight = container.height;
|
|
24
26
|
let positionX = -transform.positionX;
|
|
25
27
|
let positionY = -transform.positionY;
|
|
26
|
-
const offsetX = typeof offset === "number" ? offset : (
|
|
27
|
-
const offsetY = typeof offset === "number" ? offset : (
|
|
28
|
+
const offsetX = typeof offset === "number" ? offset : (_g = offset.x) != null ? _g : 0;
|
|
29
|
+
const offsetY = typeof offset === "number" ? offset : (_h = offset.y) != null ? _h : 0;
|
|
28
30
|
switch (inline) {
|
|
29
31
|
case "center":
|
|
30
32
|
positionX = (nodeX + nodeWidth / 2) * scale - viewportWidth / 2;
|
|
@@ -71,6 +73,14 @@ function calculateTransform({
|
|
|
71
73
|
break;
|
|
72
74
|
}
|
|
73
75
|
}
|
|
76
|
+
if (limitToBounds && contentSize) {
|
|
77
|
+
if (contentSize.width * scale < viewportWidth) {
|
|
78
|
+
positionX = contentSize.width / 2 * scale - viewportWidth / 2;
|
|
79
|
+
}
|
|
80
|
+
if (contentSize.height * scale < viewportHeight) {
|
|
81
|
+
positionY = contentSize.height / 2 * scale - viewportHeight / 2;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
74
84
|
return {
|
|
75
85
|
scale,
|
|
76
86
|
positionX,
|
|
@@ -284,10 +294,12 @@ class Canvas extends (_a = BasePlugin, _transform_dec = [register("transform")],
|
|
|
284
294
|
node,
|
|
285
295
|
container: this.container,
|
|
286
296
|
transform: this.transform,
|
|
297
|
+
contentSize: this.contentSize,
|
|
287
298
|
scale,
|
|
288
299
|
block,
|
|
289
300
|
inline,
|
|
290
|
-
offset
|
|
301
|
+
offset,
|
|
302
|
+
limitToBounds: false
|
|
291
303
|
});
|
|
292
304
|
(_a2 = this.ref) == null ? void 0 : _a2.setTransform(-positionX, -positionY, newScale, animationTime);
|
|
293
305
|
}
|
|
@@ -310,21 +322,19 @@ class Canvas extends (_a = BasePlugin, _transform_dec = [register("transform")],
|
|
|
310
322
|
render({ children } = { children: null }) {
|
|
311
323
|
var _a2, _b, _c, _d;
|
|
312
324
|
const defaultTransform = useMemo(() => {
|
|
313
|
-
const defaultLocated = this.config.defaultLocated;
|
|
314
|
-
if (!(defaultLocated == null ? void 0 : defaultLocated.nodeId)) {
|
|
315
|
-
return this.transform;
|
|
316
|
-
}
|
|
317
|
-
const node = this.getNode({ id: defaultLocated.nodeId });
|
|
318
|
-
if (!node) {
|
|
325
|
+
const defaultLocated = __spreadValues({}, this.config.defaultLocated);
|
|
326
|
+
if (!(defaultLocated == null ? void 0 : defaultLocated.nodeId) && !defaultLocated.limitToBounds) {
|
|
319
327
|
return this.transform;
|
|
320
328
|
}
|
|
329
|
+
const node = defaultLocated.nodeId ? this.getNode({ id: defaultLocated.nodeId }) : void 0;
|
|
321
330
|
defaultLocated.inline || (defaultLocated.inline = "center");
|
|
322
331
|
defaultLocated.block || (defaultLocated.block = "center");
|
|
323
332
|
defaultLocated.scale || (defaultLocated.scale = this.transform.scale);
|
|
324
333
|
const { positionX, positionY, scale: newScale } = calculateTransform(__spreadValues({
|
|
325
334
|
node,
|
|
326
335
|
container: this.container,
|
|
327
|
-
transform: this.transform
|
|
336
|
+
transform: this.transform,
|
|
337
|
+
contentSize: this.contentSize
|
|
328
338
|
}, defaultLocated));
|
|
329
339
|
const newTransform = {
|
|
330
340
|
previousScale: this.transform.scale,
|
|
@@ -462,6 +472,7 @@ class Canvas extends (_a = BasePlugin, _transform_dec = [register("transform")],
|
|
|
462
472
|
contain: "strict"
|
|
463
473
|
},
|
|
464
474
|
wrapperProps: {
|
|
475
|
+
id: this.pluginId,
|
|
465
476
|
onClick,
|
|
466
477
|
onContextMenu,
|
|
467
478
|
onMouseMove,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knotx/plugins-canvas",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Canvas Plugin for Knotx",
|
|
5
5
|
"author": "boenfu",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,23 +29,23 @@
|
|
|
29
29
|
],
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": ">=17.0.0",
|
|
32
|
-
"@knotx/jsx": "0.4.
|
|
32
|
+
"@knotx/jsx": "0.4.4"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"lodash-es": "^4.17.21",
|
|
36
36
|
"react-zoom-pan-pinch": "^3.7.0",
|
|
37
37
|
"rxjs": "^7.8.1",
|
|
38
|
-
"@knotx/core": "0.4.
|
|
39
|
-
"@knotx/decorators": "0.4.
|
|
38
|
+
"@knotx/core": "0.4.4",
|
|
39
|
+
"@knotx/decorators": "0.4.4"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/lodash-es": "^4.17.12",
|
|
43
43
|
"@types/react": "^17.0.0",
|
|
44
44
|
"react": "^17.0.0",
|
|
45
|
-
"@knotx/build-config": "0.4.
|
|
46
|
-
"@knotx/eslint-config": "0.4.
|
|
47
|
-
"@knotx/jsx": "0.4.
|
|
48
|
-
"@knotx/typescript-config": "0.4.
|
|
45
|
+
"@knotx/build-config": "0.4.4",
|
|
46
|
+
"@knotx/eslint-config": "0.4.4",
|
|
47
|
+
"@knotx/jsx": "0.4.4",
|
|
48
|
+
"@knotx/typescript-config": "0.4.4"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "unbuild",
|