canvas2d-wrapper 1.3.2 → 1.4.0
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.js +24 -9
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +24 -9
- package/dist/index.modern.js.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
@@ -237,6 +237,7 @@ function elementRightClick(e, elements, tileSize, state) {
|
|
237
237
|
|
238
238
|
var LEFT_BUTTON = 1;
|
239
239
|
var selectedObject = null;
|
240
|
+
var unselectTimeoutId = 0;
|
240
241
|
function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover) {
|
241
242
|
var newProps = _extends({}, props);
|
242
243
|
|
@@ -275,6 +276,17 @@ function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYA
|
|
275
276
|
newProps.top += event.screenY - props.prevY;
|
276
277
|
}
|
277
278
|
}
|
279
|
+
|
280
|
+
if (event.nativeEvent.pointerType !== 'mouse') {
|
281
|
+
unselectTimeoutId = setTimeout(function () {
|
282
|
+
console.log('unselect');
|
283
|
+
selectedObject = null;
|
284
|
+
setProps(_extends({}, newProps, {
|
285
|
+
prevX: null,
|
286
|
+
prevY: null
|
287
|
+
}));
|
288
|
+
}, 300);
|
289
|
+
}
|
278
290
|
} else {
|
279
291
|
if (onHover) {
|
280
292
|
onHover(collideElement(event, elements, left, top, tileSize, props.zoom));
|
@@ -600,7 +612,7 @@ function renderCanvas(context, width, height, elements, tileSize, state) {
|
|
600
612
|
}
|
601
613
|
}
|
602
614
|
|
603
|
-
var _excluded = ["elements", "width", "height", "trackMouseMove", "minZoom", "maxZoom", "tileSize", "onClick", "onRightClick", "onHover", "onElementMoved", "lockXAxis", "lockYAxis", "smoothingQuality", "dragObjects", "deltaLeft", "deltaTop"];
|
615
|
+
var _excluded = ["elements", "width", "height", "trackMouseMove", "minZoom", "maxZoom", "tileSize", "onClick", "onRightClick", "onHover", "onElementMoved", "onWheel", "lockXAxis", "lockYAxis", "smoothingQuality", "dragObjects", "deltaLeft", "deltaTop"];
|
604
616
|
var prevEvent;
|
605
617
|
function Canvas2D(_ref) {
|
606
618
|
var elements = _ref.elements,
|
@@ -618,6 +630,7 @@ function Canvas2D(_ref) {
|
|
618
630
|
onRightClick = _ref.onRightClick,
|
619
631
|
onHover = _ref.onHover,
|
620
632
|
onElementMoved = _ref.onElementMoved,
|
633
|
+
onWheel = _ref.onWheel,
|
621
634
|
_ref$lockXAxis = _ref.lockXAxis,
|
622
635
|
lockXAxis = _ref$lockXAxis === void 0 ? false : _ref$lockXAxis,
|
623
636
|
_ref$lockYAxis = _ref.lockYAxis,
|
@@ -687,13 +700,15 @@ function Canvas2D(_ref) {
|
|
687
700
|
};
|
688
701
|
}
|
689
702
|
|
690
|
-
var
|
703
|
+
var onWheelFn = function onWheelFn(e) {
|
704
|
+
if (onWheel) {
|
705
|
+
onWheel(e);
|
706
|
+
}
|
691
707
|
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
}
|
708
|
+
if (minZoom !== maxZoom) {
|
709
|
+
mouseWheel(e, state, setState, minZoom, maxZoom);
|
710
|
+
}
|
711
|
+
};
|
697
712
|
|
698
713
|
var onClickFn = null;
|
699
714
|
|
@@ -726,8 +741,8 @@ function Canvas2D(_ref) {
|
|
726
741
|
ref: canvasRef,
|
727
742
|
width: width,
|
728
743
|
height: height,
|
729
|
-
|
730
|
-
onWheel:
|
744
|
+
onPointerMove: onMouseMove,
|
745
|
+
onWheel: onWheelFn,
|
731
746
|
onClick: onClickFn,
|
732
747
|
className: "canvas2d-wrapper"
|
733
748
|
}, otherProps));
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/functions/calcTileSize.js","../src/collisions/inCircle.js","../src/collisions/inPoly.js","../src/collisions/inRect.js","../src/collisions/collideElement.js","../src/events/elementClick.js","../src/events/elementRightClick.js","../src/events/mouseMove.js","../src/events/mouseWheel.js","../src/functions/sortElements.js","../src/shapes/CanvasObject.js","../src/shapes/ColoredCanvasObject.js","../src/shapes/Circle.js","../src/shapes/CanvasImage.js","../src/shapes/Rect.js","../src/shapes/Polygon.js","../src/render/renderCircle.js","../src/render/renderImage.js","../src/render/renderRect.js","../src/render/renderPolygon.js","../src/render/renderCanvas.js","../src/Canvas2D.js","../src/functions/preloadImages.js"],"sourcesContent":["export default function calcTileSize(tileSize, zoom) {\n\treturn tileSize * zoom;\n}\n","export default function inCircle(element, x, y, left, top, localTileSize) {\n\tconst distance = (\n\t\t(x - left) * (x - left) +\n\t\t(y - top) * (y - top)\n\t);\n\n\treturn (distance <= ((element.radius * localTileSize) * (element.radius * localTileSize)));\n}","export default function inPoly(element, x, y, mouseX, mouseY, localTileSize) {\n\tconst j = element.points.length - 1;\n\tlet counter = false;\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tconst iX = element.points[i].x * localTileSize;\n\t\tconst iY = element.points[i].y * localTileSize;\n\n\t\t// The mouse is exactly at a polygon point\n\t\tif(mouseX === iX && mouseY === iY) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst jX = element.points[j].x * localTileSize;\n\t\tconst jY = element.points[j].y * localTileSize;\n\n\t\tif((iY > y) !== (jY > y)) {\n\t\t\tconst slope = (mouseX - iX) * (jY - iY) - (jX - iX) * (mouseY - iY);\n\n\t\t\t// On the boundary\n\t\t\tif(slope === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Alternate, odd count = inside, even count = outside\n\t\t\tif((slope < 0) !== (jY < iY)) {\n\t\t\t\tcounter = !counter;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn counter;\n}\n","export default function inRect(element, x, y, left, top, localTileSize) {\n\tconst width = element.width * localTileSize;\n\tconst height = element.height * localTileSize;\n\n\treturn (x <= left && left <= (x + width) && y <= top && top <= (y + height));\n}","import calcTileSize from '../functions/calcTileSize';\n\nimport inCircle from './inCircle';\nimport inPoly from './inPoly';\nimport inRect from './inRect';\n\nexport default function collideElement(e, elements, left, top, tileSize, zoom) {\n\tconst localTileSize = calcTileSize(tileSize, zoom);\n\n\tfor(const element of elements) {\n\t\tconst x = element.x * localTileSize;\n\t\tconst y = element.y * localTileSize;\n\n\t\tswitch(element.constructorName) {\n\t\t\tcase 'Rect':\n\t\t\tcase 'CanvasImage':\n\t\t\t\tif(inRect(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Circle':\n\t\t\t\tif(inCircle(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Polygon':\n\t\t\t\tif(inPoly(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn null;\n}","import collideElement from '../collisions/collideElement';\n\nexport default function elementClick(e, elements, tileSize, state) {\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\n\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\n\tif(clickedElement !== null) {\n\t\treturn clickedElement;\n\t}\n\n\treturn {\n\t\tid: null,\n\t\telement: null,\n\t\toriginalEvent: e,\n\t};\n}\n","import collideElement from '../collisions/collideElement';\r\n\r\nexport default function elementRightClick(e, elements, tileSize, state) {\r\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\r\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\r\n\r\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\r\n\tif(clickedElement !== null) {\r\n\t\treturn clickedElement;\r\n\t}\r\n\r\n\treturn {\r\n\t\tid: null,\r\n\t\telement: null,\r\n\t\toriginalEvent: e,\r\n\t};\r\n}\r\n","import collideElement from '../collisions/collideElement';\n\nconst LEFT_BUTTON = 1;\nlet selectedObject = null;\n\nexport default function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover) {\n\tconst newProps = {\n\t\t...props,\n\t};\n\n\tconst left = -props.left - props.deltaLeft + event.pageX - event.target.offsetLeft;\n\tconst top = -props.top - props.deltaTop + event.pageY - event.target.offsetTop;\n\n\tif(event.nativeEvent.buttons === LEFT_BUTTON && !!props.prevX) {\n\t\tlet moved = false;\n\t\tif(dragObjects) {\n\t\t\tif(selectedObject === null) {\n\t\t\t\tselectedObject = collideElement(event, elements, left, top, tileSize, props.zoom);\n\t\t\t}\n\n\t\t\tif(selectedObject !== null && selectedObject.element.draggable) {\n\t\t\t\tselectedObject.element.x = (-props.left - props.deltaLeft) + (event.clientX - props.boundingClientRect.left) - selectedObject.element.width / 2;\n\t\t\t\tselectedObject.element.y = (-props.top - props.deltaLeft) + (event.clientY - props.boundingClientRect.top) - selectedObject.element.height / 2;\n\n\t\t\t\tmoved = true;\n\n\t\t\t\tif(onElementMoved) {\n\t\t\t\t\tonElementMoved(\n\t\t\t\t\t\tselectedObject,\n\t\t\t\t\t\t(event.screenX - props.prevX),\n\t\t\t\t\t\t(event.screenY - props.prevY),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif(onHover) {\n\t\t\t\t\tonHover(null);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(!moved) {\n\t\t\tif(!lockXAxis) {\n\t\t\t\tnewProps.left += (event.screenX - props.prevX);\n\t\t\t}\n\n\t\t\tif(!lockYAxis) {\n\t\t\t\tnewProps.top += (event.screenY - props.prevY);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(onHover) {\n\t\t\tonHover(collideElement(event, elements, left, top, tileSize, props.zoom));\n\t\t}\n\n\t\tselectedObject = null;\n\t}\n\n\tsetProps({\n\t\t...newProps,\n\t\tprevX: event.screenX,\n\t\tprevY: event.screenY,\n\t});\n}\n","export default function mouseWheel(event, props, setProps, minZoom, maxZoom) {\n\tlet zoom = props.zoom;\n\tif(event.deltaY < 0) {\n\t\tzoom += 0.05;\n\t} else {\n\t\tzoom -= 0.05;\n\t}\n\n\tzoom = Math.max(zoom, minZoom);\n\tzoom = Math.min(zoom, maxZoom);\n\n\t/** TODO: zoom on mouse **/\n\n\tsetProps({\n\t\t...props,\n\t\tzoom,\n\t});\n}\n","export default function sortElements(elements) {\n\telements.sort((a, b) => {\n\t\tif(a.zIndex !== b.zIndex) {\n\t\t\treturn a.zIndex - b.zIndex;\n\t\t}\n\n\t\tif(a.fill === b.fill) {\n\t\t\tif(a.stroke === b.stroke) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif(a.stroke < b.stroke) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn -1;\n\t\t}\n\n\t\tif(a.fill < b.fill) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn -1;\n\t});\n\n\treturn elements;\n}\n","export default class CanvasObject {\n\tconstructor(id, x, y, zIndex, draggable) {\n\t\tthis.id = id;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis['z-index'] = zIndex;\n\t\tthis.draggable = draggable;\n\t}\n\n\tset zIndex(zIndex) {\n\t\tthis['z-index'] = zIndex;\n\t}\n\n\tget zIndex() {\n\t\treturn this['z-index'] || 0;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasObject';\n\t}\n}\n","import CanvasObject from './CanvasObject';\n\nexport default class ColoredCanvasObject extends CanvasObject {\n\tconstructor(id, x, y, fill, stroke, zIndex, draggable) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.fill = fill;\n\t\tthis.stroke = stroke;\n\t}\n\n\tget constructorName() {\n\t\treturn 'ColoredCanvasObject';\n\t}\n}","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Circle extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of circle center in canvas\n\t * @param {number}\t\t\ty Top coordinate of circle center in canvas\n\t * @param {number} \t\tradius Circle radius in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, radius, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.radius = radius;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Circle';\n\t}\n}\n\n","import CanvasObject from './CanvasObject';\n\nexport default class CanvasImage extends CanvasObject {\n\t/**\n\t * Represents an Image that will be created on the canvas.\n\t * Note: a cache to prevent too much loading is implemented, you can create as much\n\t * images as you want of the same source without any performance issue.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of picture in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of picture in canvas\n\t * @param {number} \t\twidth Picture width in canvas\n\t * @param {number} \t\theight Picture height in canvas\n\t * @param {string} \tsrc \tImage source link\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, src, zIndex, draggable }) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.src = src;\n\t}\n\n\tcrop(x, y, width, height) {\n\t\tthis.sx = sx;\n\t\tthis.sy = sx;\n\t\tthis.swidth = swidth;\n\t\tthis.sheight = sheight;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasImage';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Rect extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of rectangle in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of rectangle in canvas\n\t * @param {number} \t\twidth Rectangle width in canvas\n\t * @param {number} \t\theight Rectangle height in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Rect';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Polygon extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tpoints Array of coordinates {x, y} of the polygon points\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, points, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, points[0].x, points[0].y, fill, stroke, zIndex, draggable);\n\n\t\tthis.points = points;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Polygon';\n\t}\n}\n","export default function renderCircle(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.arc(\n\t\tleft + element.x * localTileSize,\n\t\ttop + element.y * localTileSize,\n\t\telement.radius * localTileSize,\n\t\t0,\n\t\t2 * Math.PI\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","window.__canvas2dWrapper__ = {};\nwindow.__canvas2dWrapper__.imgCache = {};\n\nexport default function renderImage(context, element, left, top, localTileSize) {\n\tif(!__canvas2dWrapper__.imgCache[element.src]) {\n\t\t__canvas2dWrapper__.imgCache[element.src] = new Image();\n\t\t__canvas2dWrapper__.imgCache[element.src].src = element.src;\n\t}\n\n\tif(!element.sx) {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t} else {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\telement.sx,\n\t\t\telement.sy,\n\t\t\telement.swidth,\n\t\t\telement.sheight,\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tif(element.fill) {\n\t\tcontext.fillRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n\n\tif(element.stroke) {\n\t\tcontext.strokeRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.moveTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tcontext.lineTo(\n\t\t\tleft + element.points[i].x * localTileSize,\n\t\t\ttop + element.points[i].y * localTileSize,\n\t\t);\n\t}\n\n\tcontext.lineTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","import Circle from '../shapes/Circle';\nimport CanvasImage from '../shapes/CanvasImage';\nimport Rect from '../shapes/Rect';\nimport Polygon from '../shapes/Polygon';\n\nimport calcTileSize from '../functions/calcTileSize';\n\nimport renderCircle from './renderCircle';\nimport renderImage from './renderImage';\nimport renderRect from './renderRect';\nimport renderPolygon from './renderPolygon';\n\nconst renderFn = {\n\t[(new Circle({})).constructorName]: renderCircle,\n\t[(new CanvasImage({})).constructorName]: renderImage,\n\t[(new Rect({})).constructorName]: renderRect,\n\t[(new Polygon({ points: [{}] })).constructorName]: renderPolygon,\n};\n\nexport default function renderCanvas(\n\tcontext,\n\twidth,\n\theight,\n\telements,\n\ttileSize,\n\tstate,\n) {\n\tconst left = state.left + state.deltaLeft;\n\tconst top = state.top + state.deltaTop;\n\n\tlet prevFillStyle = '';\n\tlet prevStrokeStyle = '';\n\n\tconst localTileSize = calcTileSize(tileSize, state.zoom);\n\n\tcontext.clearRect(0, 0, width, height);\n\n\tfor(const element of elements) {\n\t\tif(\n\t\t\telement.fill !== prevFillStyle &&\n\t\t\ttypeof element.fill !== 'undefined'\n\t\t) {\n\t\t\tcontext.fillStyle = element.fill;\n\t\t\tprevFillStyle = element.fill;\n\t\t}\n\n\t\tif(\n\t\t\telement.stroke !== prevStrokeStyle &&\n\t\t\ttypeof element.stroke !== 'undefined'\n\t\t) {\n\t\t\tcontext.strokeStyle = element.stroke;\n\t\t\tprevStrokeStyle = element.stroke;\n\t\t}\n\n\t\tconst type = element.constructorName;\n\t\tif(renderFn[type]) {\n\t\t\trenderFn[type](context, element, left, top, localTileSize);\n\t\t} else {\n\t\t\tthrow new Error('Unsupported shape type:' + type);\n\t\t}\n\t}\n}\n","import React, { useCallback, useState } from 'react';\n\nimport './index.css';\n\nimport elementClick from './events/elementClick';\nimport elementRightClick from './events/elementRightClick';\nimport mouseMove from './events/mouseMove';\nimport mouseWheel from './events/mouseWheel';\n\nimport sortElements from './functions/sortElements';\n\nimport renderCanvas from './render/renderCanvas';\n\nlet prevEvent;\n\nexport default function Canvas2D({\n\telements,\n\twidth,\n\theight,\n\ttrackMouseMove = true,\n\tminZoom = 1,\n\tmaxZoom = 1,\n\ttileSize = 1,\n\tonClick,\n\tonRightClick,\n\tonHover,\n\tonElementMoved,\n\tlockXAxis = false,\n\tlockYAxis = false,\n\tsmoothingQuality='medium',\n\tdragObjects=false,\n\tdeltaLeft=0,\n\tdeltaTop=0,\n\t...otherProps\n}) {\n\t// Hooks\n\tconst [state, setState] = useState({});\n\tconst canvasRef = useCallback((canvas) => {\n\t\tif(canvas !== null) {\n\t\t\tconst context = canvas.getContext('2d');\n\n\t\t\tif(smoothingQuality === false) {\n\t\t\t\tcontext.imageSmoothingEnabled = false;\n\t\t\t} else {\n\t\t\t\tcontext.imageSmoothingEnabled = true;\n\t\t\t\tcontext.imageSmoothingQuality = smoothingQuality;\n\t\t\t}\n\n\t\t\tsetState({\n\t\t\t\tboundingClientRect: canvas.getBoundingClientRect(),\n\t\t\t\tcanvas,\n\t\t\t\tcontext,\n\t\t\t\tleft: width/2,\n\t\t\t\ttop: height/2,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tzoom: 1,\n\t\t\t});\n\t\t}\n\t}, []);\n\n\tstate.deltaTop = deltaTop;\n\tstate.deltaLeft = deltaLeft;\n\n\t// Check inputs\n\tif(typeof elements !== 'object' || !Array.isArray(elements)) {\n\t\tthrow new Error('Invalid elements, should be an array !');\n\t}\n\n\tif(typeof width !== 'number' || typeof height !== 'number') {\n\t\tthrow new Error('width/height should be specified and be numbers.');\n\t}\n\n\tif(minZoom > maxZoom) {\n\t\tthrow new Error('minZoom should be lower than maxZoom.');\n\t}\n\n\tif(typeof onClick !== 'function' && typeof onClick !== 'undefined') {\n\t\tthrow new Error('onClick should be a function.');\n\t}\n\n\t// Sort elements\n\tconst sortedElements = sortElements(elements);\n\n\t// Render\n\tlet onMouseMove = null;\n\tif(trackMouseMove) {\n\t\tonMouseMove = (e) => mouseMove(e, elements, tileSize, state, setState, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover);\n\t}\n\n\tlet onWheel = null;\n\tif(minZoom !== maxZoom) {\n\t\tonWheel = (e) => mouseWheel(e, state, setState, minZoom, maxZoom);\n\t}\n\n\tlet onClickFn = null;\n\tif(onClick) {\n\t\tonClickFn = (e) => onClick(elementClick(e, elements, tileSize, state));\n\t}\n\n\tif(onRightClick && state.canvas) {\n\t\tif(prevEvent) {\n\t\t\tstate.canvas.removeEventListener('contextmenu', prevEvent);\n\t\t}\n\t\tprevEvent = (e) => {\n\t\t\te.preventDefault();\n\t\t\tonRightClick(elementRightClick(e, elements, tileSize, state));\n\t\t};\n\t\tstate.canvas.addEventListener('contextmenu', prevEvent);\n\t}\n\n\t// Canvas render loop\n\tif(state.context) {\n\t\twindow.requestAnimationFrame(() => {\n\t\t\trenderCanvas(\n\t\t\t\tstate.context,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tsortedElements,\n\t\t\t\ttileSize,\n\t\t\t\tstate,\n\t\t\t);\n\t\t});\n\t}\n\n\treturn (\n\t\t<canvas\n\t\t\tref={canvasRef}\n\t\t\twidth={width}\n\t\t\theight={height}\n\t\t\tonMouseMove={onMouseMove}\n\t\t\tonWheel={onWheel}\n\t\t\tonClick={onClickFn}\n\t\t\tclassName=\"canvas2d-wrapper\"\n\t\t\t{...otherProps}\n\t\t/>\n\t);\n};\n","export default function preloadImages(images) {\r\n\tfor(const image of images) {\r\n\t\t__canvas2dWrapper__.imgCache[image] = new Image();\r\n\t\t__canvas2dWrapper__.imgCache[image].src = image;\r\n\t}\r\n}"],"names":["calcTileSize","tileSize","zoom","inCircle","element","x","y","left","top","localTileSize","distance","radius","inPoly","mouseX","mouseY","j","points","length","counter","i","iX","iY","jX","jY","slope","inRect","width","height","collideElement","e","elements","constructorName","id","originalEvent","elementClick","state","deltaLeft","pageX","target","offsetLeft","deltaTop","pageY","offsetTop","clickedElement","elementRightClick","LEFT_BUTTON","selectedObject","mouseMove","event","props","setProps","lockXAxis","lockYAxis","dragObjects","onElementMoved","onHover","newProps","nativeEvent","buttons","prevX","moved","draggable","clientX","boundingClientRect","clientY","screenX","screenY","prevY","mouseWheel","minZoom","maxZoom","deltaY","Math","max","min","sortElements","sort","a","b","zIndex","fill","stroke","CanvasObject","ColoredCanvasObject","Circle","CanvasImage","src","crop","sx","sy","swidth","sheight","Rect","Polygon","renderCircle","context","beginPath","arc","PI","window","__canvas2dWrapper__","imgCache","renderImage","Image","drawImage","renderRect","fillRect","strokeRect","moveTo","lineTo","renderFn","renderPolygon","renderCanvas","prevFillStyle","prevStrokeStyle","clearRect","fillStyle","strokeStyle","type","Error","prevEvent","Canvas2D","trackMouseMove","onClick","onRightClick","smoothingQuality","otherProps","useState","setState","canvasRef","useCallback","canvas","getContext","imageSmoothingEnabled","imageSmoothingQuality","getBoundingClientRect","Array","isArray","sortedElements","onMouseMove","onWheel","onClickFn","removeEventListener","preventDefault","addEventListener","requestAnimationFrame","React","preloadImages","images","image"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAe,SAASA,YAAT,CAAsBC,QAAtB,EAAgCC,IAAhC,EAAsC;AACpD,SAAOD,QAAQ,GAAGC,IAAlB;AACA;;ACFc,SAASC,QAAT,CAAkBC,OAAlB,EAA2BC,CAA3B,EAA8BC,CAA9B,EAAiCC,IAAjC,EAAuCC,GAAvC,EAA4CC,aAA5C,EAA2D;AACzE,MAAMC,QAAQ,GACb,CAACL,CAAC,GAAGE,IAAL,KAAcF,CAAC,GAAGE,IAAlB,IACA,CAACD,CAAC,GAAGE,GAAL,KAAaF,CAAC,GAAGE,GAAjB,CAFD;AAKA,SAAQE,QAAQ,IAAMN,OAAO,CAACO,MAAR,GAAiBF,aAAlB,IAAoCL,OAAO,CAACO,MAAR,GAAiBF,aAArD,CAArB;AACA;;ACPc,SAASG,MAAT,CAAgBR,OAAhB,EAAyBC,CAAzB,EAA4BC,CAA5B,EAA+BO,MAA/B,EAAuCC,MAAvC,EAA+CL,aAA/C,EAA8D;AAC5E,MAAMM,CAAC,GAAGX,OAAO,CAACY,MAAR,CAAeC,MAAf,GAAwB,CAAlC;AACA,MAAIC,OAAO,GAAG,KAAd;;AAEA,OAAI,IAAIC,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGf,OAAO,CAACY,MAAR,CAAeC,MAAlC,EAA0CE,CAAC,EAA3C,EAA+C;AAC9C,QAAMC,EAAE,GAAGhB,OAAO,CAACY,MAAR,CAAeG,CAAf,EAAkBd,CAAlB,GAAsBI,aAAjC;AACA,QAAMY,EAAE,GAAGjB,OAAO,CAACY,MAAR,CAAeG,CAAf,EAAkBb,CAAlB,GAAsBG,aAAjC;;AAGA,QAAGI,MAAM,KAAKO,EAAX,IAAiBN,MAAM,KAAKO,EAA/B,EAAmC;AAClC,aAAO,IAAP;AACA;;AAED,QAAMC,EAAE,GAAGlB,OAAO,CAACY,MAAR,CAAeD,CAAf,EAAkBV,CAAlB,GAAsBI,aAAjC;AACA,QAAMc,EAAE,GAAGnB,OAAO,CAACY,MAAR,CAAeD,CAAf,EAAkBT,CAAlB,GAAsBG,aAAjC;;AAEA,QAAIY,EAAE,GAAGf,CAAN,KAAciB,EAAE,GAAGjB,CAAtB,EAA0B;AACzB,UAAMkB,KAAK,GAAG,CAACX,MAAM,GAAGO,EAAV,KAAiBG,EAAE,GAAGF,EAAtB,IAA4B,CAACC,EAAE,GAAGF,EAAN,KAAaN,MAAM,GAAGO,EAAtB,CAA1C;;AAGA,UAAGG,KAAK,KAAK,CAAb,EAAgB;AACf,eAAO,IAAP;AACA;;AAGD,UAAIA,KAAK,GAAG,CAAT,KAAiBD,EAAE,GAAGF,EAAzB,EAA8B;AAC7BH,QAAAA,OAAO,GAAG,CAACA,OAAX;AACA;AACD;AACD;;AAED,SAAOA,OAAP;AACA;;AChCc,SAASO,MAAT,CAAgBrB,OAAhB,EAAyBC,CAAzB,EAA4BC,CAA5B,EAA+BC,IAA/B,EAAqCC,GAArC,EAA0CC,aAA1C,EAAyD;AACvE,MAAMiB,KAAK,GAAGtB,OAAO,CAACsB,KAAR,GAAgBjB,aAA9B;AACA,MAAMkB,MAAM,GAAGvB,OAAO,CAACuB,MAAR,GAAiBlB,aAAhC;AAEA,SAAQJ,CAAC,IAAIE,IAAL,IAAaA,IAAI,IAAKF,CAAC,GAAGqB,KAA1B,IAAoCpB,CAAC,IAAIE,GAAzC,IAAgDA,GAAG,IAAKF,CAAC,GAAGqB,MAApE;AACA;;ACCc,SAASC,cAAT,CAAwBC,CAAxB,EAA2BC,QAA3B,EAAqCvB,IAArC,EAA2CC,GAA3C,EAAgDP,QAAhD,EAA0DC,IAA1D,EAAgE;AAC9E,MAAMO,aAAa,GAAGT,YAAY,CAACC,QAAD,EAAWC,IAAX,CAAlC;;AAEA,uDAAqB4B,QAArB,wCAA+B;AAAA,QAArB1B,OAAqB;AAC9B,QAAMC,CAAC,GAAGD,OAAO,CAACC,CAAR,GAAYI,aAAtB;AACA,QAAMH,CAAC,GAAGF,OAAO,CAACE,CAAR,GAAYG,aAAtB;;AAEA,YAAOL,OAAO,CAAC2B,eAAf;AACC,WAAK,MAAL;AACA,WAAK,aAAL;AACC,YAAGN,MAAM,CAACrB,OAAD,EAAUC,CAAV,EAAaC,CAAb,EAAgBC,IAAhB,EAAsBC,GAAtB,EAA2BC,aAA3B,CAAT,EAAoD;AACnD,iBAAO;AACNuB,YAAAA,EAAE,EAAE5B,OAAO,CAAC4B,EADN;AAEN5B,YAAAA,OAAO,EAAPA,OAFM;AAGN6B,YAAAA,aAAa,EAAEJ;AAHT,WAAP;AAKA;;AACD;;AACD,WAAK,QAAL;AACC,YAAG1B,QAAQ,CAACC,OAAD,EAAUC,CAAV,EAAaC,CAAb,EAAgBC,IAAhB,EAAsBC,GAAtB,EAA2BC,aAA3B,CAAX,EAAsD;AACrD,iBAAO;AACNuB,YAAAA,EAAE,EAAE5B,OAAO,CAAC4B,EADN;AAEN5B,YAAAA,OAAO,EAAPA,OAFM;AAGN6B,YAAAA,aAAa,EAAEJ;AAHT,WAAP;AAKA;;AACD;;AACD,WAAK,SAAL;AACC,YAAGjB,MAAM,CAACR,OAAD,EAAUC,CAAV,EAAaC,CAAb,EAAgBC,IAAhB,EAAsBC,GAAtB,EAA2BC,aAA3B,CAAT,EAAoD;AACnD,iBAAO;AACNuB,YAAAA,EAAE,EAAE5B,OAAO,CAAC4B,EADN;AAEN5B,YAAAA,OAAO,EAAPA,OAFM;AAGN6B,YAAAA,aAAa,EAAEJ;AAHT,WAAP;AAKA;;AACD;AA5BF;AA8BA;;AAED,SAAO,IAAP;AACA;;AC5Cc,SAASK,YAAT,CAAsBL,CAAtB,EAAyBC,QAAzB,EAAmC7B,QAAnC,EAA6CkC,KAA7C,EAAoD;AAClE,MAAM5B,IAAI,GAAG,CAAC4B,KAAK,CAAC5B,IAAP,GAAc4B,KAAK,CAACC,SAApB,GAAgCP,CAAC,CAACQ,KAAlC,GAA0CR,CAAC,CAACS,MAAF,CAASC,UAAhE;AACA,MAAM/B,GAAG,GAAG,CAAC2B,KAAK,CAAC3B,GAAP,GAAa2B,KAAK,CAACK,QAAnB,GAA8BX,CAAC,CAACY,KAAhC,GAAwCZ,CAAC,CAACS,MAAF,CAASI,SAA7D;AAEA,MAAMC,cAAc,GAAGf,cAAc,CAACC,CAAD,EAAIC,QAAJ,EAAcvB,IAAd,EAAoBC,GAApB,EAAyBP,QAAzB,EAAmCkC,KAAK,CAACjC,IAAzC,CAArC;;AACA,MAAGyC,cAAc,KAAK,IAAtB,EAA4B;AAC3B,WAAOA,cAAP;AACA;;AAED,SAAO;AACNX,IAAAA,EAAE,EAAE,IADE;AAEN5B,IAAAA,OAAO,EAAE,IAFH;AAGN6B,IAAAA,aAAa,EAAEJ;AAHT,GAAP;AAKA;;ACdc,SAASe,iBAAT,CAA2Bf,CAA3B,EAA8BC,QAA9B,EAAwC7B,QAAxC,EAAkDkC,KAAlD,EAAyD;AACvE,MAAM5B,IAAI,GAAG,CAAC4B,KAAK,CAAC5B,IAAP,GAAc4B,KAAK,CAACC,SAApB,GAAgCP,CAAC,CAACQ,KAAlC,GAA0CR,CAAC,CAACS,MAAF,CAASC,UAAhE;AACA,MAAM/B,GAAG,GAAG,CAAC2B,KAAK,CAAC3B,GAAP,GAAa2B,KAAK,CAACK,QAAnB,GAA8BX,CAAC,CAACY,KAAhC,GAAwCZ,CAAC,CAACS,MAAF,CAASI,SAA7D;AAEA,MAAMC,cAAc,GAAGf,cAAc,CAACC,CAAD,EAAIC,QAAJ,EAAcvB,IAAd,EAAoBC,GAApB,EAAyBP,QAAzB,EAAmCkC,KAAK,CAACjC,IAAzC,CAArC;;AACA,MAAGyC,cAAc,KAAK,IAAtB,EAA4B;AAC3B,WAAOA,cAAP;AACA;;AAED,SAAO;AACNX,IAAAA,EAAE,EAAE,IADE;AAEN5B,IAAAA,OAAO,EAAE,IAFH;AAGN6B,IAAAA,aAAa,EAAEJ;AAHT,GAAP;AAKA;;ACdD,IAAMgB,WAAW,GAAG,CAApB;AACA,IAAIC,cAAc,GAAG,IAArB;AAEA,AAAe,SAASC,SAAT,CAAmBC,KAAnB,EAA0BlB,QAA1B,EAAoC7B,QAApC,EAA8CgD,KAA9C,EAAqDC,QAArD,EAA+DC,SAA/D,EAA0EC,SAA1E,EAAqFC,WAArF,EAAkGC,cAAlG,EAAkHC,OAAlH,EAA2H;AACzI,MAAMC,QAAQ,gBACVP,KADU,CAAd;;AAIA,MAAM1C,IAAI,GAAG,CAAC0C,KAAK,CAAC1C,IAAP,GAAc0C,KAAK,CAACb,SAApB,GAAgCY,KAAK,CAACX,KAAtC,GAA8CW,KAAK,CAACV,MAAN,CAAaC,UAAxE;AACA,MAAM/B,GAAG,GAAG,CAACyC,KAAK,CAACzC,GAAP,GAAayC,KAAK,CAACT,QAAnB,GAA8BQ,KAAK,CAACP,KAApC,GAA4CO,KAAK,CAACV,MAAN,CAAaI,SAArE;;AAEA,MAAGM,KAAK,CAACS,WAAN,CAAkBC,OAAlB,KAA8Bb,WAA9B,IAA6C,CAAC,CAACI,KAAK,CAACU,KAAxD,EAA+D;AAC9D,QAAIC,KAAK,GAAG,KAAZ;;AACA,QAAGP,WAAH,EAAgB;AACf,UAAGP,cAAc,KAAK,IAAtB,EAA4B;AAC3BA,QAAAA,cAAc,GAAGlB,cAAc,CAACoB,KAAD,EAAQlB,QAAR,EAAkBvB,IAAlB,EAAwBC,GAAxB,EAA6BP,QAA7B,EAAuCgD,KAAK,CAAC/C,IAA7C,CAA/B;AACA;;AAED,UAAG4C,cAAc,KAAK,IAAnB,IAA2BA,cAAc,CAAC1C,OAAf,CAAuByD,SAArD,EAAgE;AAC/Df,QAAAA,cAAc,CAAC1C,OAAf,CAAuBC,CAAvB,GAA4B,CAAC4C,KAAK,CAAC1C,IAAP,GAAc0C,KAAK,CAACb,SAArB,IAAmCY,KAAK,CAACc,OAAN,GAAgBb,KAAK,CAACc,kBAAN,CAAyBxD,IAA5E,IAAoFuC,cAAc,CAAC1C,OAAf,CAAuBsB,KAAvB,GAA+B,CAA9I;AACAoB,QAAAA,cAAc,CAAC1C,OAAf,CAAuBE,CAAvB,GAA4B,CAAC2C,KAAK,CAACzC,GAAP,GAAayC,KAAK,CAACb,SAApB,IAAkCY,KAAK,CAACgB,OAAN,GAAgBf,KAAK,CAACc,kBAAN,CAAyBvD,GAA3E,IAAkFsC,cAAc,CAAC1C,OAAf,CAAuBuB,MAAvB,GAAgC,CAA7I;AAEAiC,QAAAA,KAAK,GAAG,IAAR;;AAEA,YAAGN,cAAH,EAAmB;AAClBA,UAAAA,cAAc,CACbR,cADa,EAEZE,KAAK,CAACiB,OAAN,GAAgBhB,KAAK,CAACU,KAFV,EAGZX,KAAK,CAACkB,OAAN,GAAgBjB,KAAK,CAACkB,KAHV,CAAd;AAKA;;AAED,YAAGZ,OAAH,EAAY;AACXA,UAAAA,OAAO,CAAC,IAAD,CAAP;AACA;AACD;AACD;;AAED,QAAG,CAACK,KAAJ,EAAW;AACV,UAAG,CAACT,SAAJ,EAAe;AACdK,QAAAA,QAAQ,CAACjD,IAAT,IAAkByC,KAAK,CAACiB,OAAN,GAAgBhB,KAAK,CAACU,KAAxC;AACA;;AAED,UAAG,CAACP,SAAJ,EAAe;AACdI,QAAAA,QAAQ,CAAChD,GAAT,IAAiBwC,KAAK,CAACkB,OAAN,GAAgBjB,KAAK,CAACkB,KAAvC;AACA;AACD;AACD,GApCD,MAoCO;AACN,QAAGZ,OAAH,EAAY;AACXA,MAAAA,OAAO,CAAC3B,cAAc,CAACoB,KAAD,EAAQlB,QAAR,EAAkBvB,IAAlB,EAAwBC,GAAxB,EAA6BP,QAA7B,EAAuCgD,KAAK,CAAC/C,IAA7C,CAAf,CAAP;AACA;;AAED4C,IAAAA,cAAc,GAAG,IAAjB;AACA;;AAEDI,EAAAA,QAAQ,cACJM,QADI;AAEPG,IAAAA,KAAK,EAAEX,KAAK,CAACiB,OAFN;AAGPE,IAAAA,KAAK,EAAEnB,KAAK,CAACkB;AAHN,KAAR;AAKA;;AC9Dc,SAASE,UAAT,CAAoBpB,KAApB,EAA2BC,KAA3B,EAAkCC,QAAlC,EAA4CmB,OAA5C,EAAqDC,OAArD,EAA8D;AAC5E,MAAIpE,IAAI,GAAG+C,KAAK,CAAC/C,IAAjB;;AACA,MAAG8C,KAAK,CAACuB,MAAN,GAAe,CAAlB,EAAqB;AACpBrE,IAAAA,IAAI,IAAI,IAAR;AACA,GAFD,MAEO;AACNA,IAAAA,IAAI,IAAI,IAAR;AACA;;AAEDA,EAAAA,IAAI,GAAGsE,IAAI,CAACC,GAAL,CAASvE,IAAT,EAAemE,OAAf,CAAP;AACAnE,EAAAA,IAAI,GAAGsE,IAAI,CAACE,GAAL,CAASxE,IAAT,EAAeoE,OAAf,CAAP;AAIApB,EAAAA,QAAQ,cACJD,KADI;AAEP/C,IAAAA,IAAI,EAAJA;AAFO,KAAR;AAIA;;ACjBc,SAASyE,YAAT,CAAsB7C,QAAtB,EAAgC;AAC9CA,EAAAA,QAAQ,CAAC8C,IAAT,CAAc,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACvB,QAAGD,CAAC,CAACE,MAAF,KAAaD,CAAC,CAACC,MAAlB,EAA0B;AACzB,aAAOF,CAAC,CAACE,MAAF,GAAWD,CAAC,CAACC,MAApB;AACA;;AAED,QAAGF,CAAC,CAACG,IAAF,KAAWF,CAAC,CAACE,IAAhB,EAAsB;AACrB,UAAGH,CAAC,CAACI,MAAF,KAAaH,CAAC,CAACG,MAAlB,EAA0B;AACzB,eAAO,CAAP;AACA;;AAED,UAAGJ,CAAC,CAACI,MAAF,GAAWH,CAAC,CAACG,MAAhB,EAAwB;AACvB,eAAO,CAAP;AACA;;AAED,aAAO,CAAC,CAAR;AACA;;AAED,QAAGJ,CAAC,CAACG,IAAF,GAASF,CAAC,CAACE,IAAd,EAAoB;AACnB,aAAO,CAAP;AACA;;AAED,WAAO,CAAC,CAAR;AACA,GAtBD;AAwBA,SAAOlD,QAAP;AACA;;IC1BoBoD;AACpB,wBAAYlD,EAAZ,EAAgB3B,CAAhB,EAAmBC,CAAnB,EAAsByE,MAAtB,EAA8BlB,SAA9B,EAAyC;AACxC,SAAK7B,EAAL,GAAUA,EAAV;AACA,SAAK3B,CAAL,GAASA,CAAT;AACA,SAAKC,CAAL,GAASA,CAAT;AACA,SAAK,SAAL,IAAkByE,MAAlB;AACA,SAAKlB,SAAL,GAAiBA,SAAjB;AACA;;;;SAMD,eAAa;AACZ,aAAO,KAAK,SAAL,KAAmB,CAA1B;AACA;SAND,aAAWkB,MAAX,EAAmB;AAClB,WAAK,SAAL,IAAkBA,MAAlB;AACA;;;SAMD,eAAsB;AACrB,aAAO,cAAP;AACA;;;;;;ICjBmBI;;;AACpB,+BAAYnD,EAAZ,EAAgB3B,CAAhB,EAAmBC,CAAnB,EAAsB0E,IAAtB,EAA4BC,MAA5B,EAAoCF,MAApC,EAA4ClB,SAA5C,EAAuD;AAAA;;AACtD,qCAAM7B,EAAN,EAAU3B,CAAV,EAAaC,CAAb,EAAgByE,MAAhB,EAAwBlB,SAAxB;AAEA,UAAKmB,IAAL,GAAYA,IAAZ;AACA,UAAKC,MAAL,GAAcA,MAAd;AAJsD;AAKtD;;;;SAED,eAAsB;AACrB,aAAO,qBAAP;AACA;;;;EAV+CC;;ICA5BE;;;AAYpB,wBAAmE;AAAA;;AAAA,QAArDpD,EAAqD,QAArDA,EAAqD;AAAA,QAAjD3B,CAAiD,QAAjDA,CAAiD;AAAA,QAA9CC,CAA8C,QAA9CA,CAA8C;AAAA,QAA3CK,MAA2C,QAA3CA,MAA2C;AAAA,QAAnCqE,IAAmC,QAAnCA,IAAmC;AAAA,QAA7BC,MAA6B,QAA7BA,MAA6B;AAAA,QAArBF,MAAqB,QAArBA,MAAqB;AAAA,QAAblB,SAAa,QAAbA,SAAa;AAClE,4CAAM7B,EAAN,EAAU3B,CAAV,EAAaC,CAAb,EAAgB0E,IAAhB,EAAsBC,MAAtB,EAA8BF,MAA9B,EAAsClB,SAAtC;AAEA,UAAKlD,MAAL,GAAcA,MAAd;AAHkE;AAIlE;;;;SAED,eAAsB;AACrB,aAAO,QAAP;AACA;;;;EApBkCwE;;ICAfE;;;AAcpB,6BAAiE;AAAA;;AAAA,QAAnDrD,EAAmD,QAAnDA,EAAmD;AAAA,QAA/C3B,CAA+C,QAA/CA,CAA+C;AAAA,QAA5CC,CAA4C,QAA5CA,CAA4C;AAAA,QAAzCoB,KAAyC,QAAzCA,KAAyC;AAAA,QAAlCC,MAAkC,QAAlCA,MAAkC;AAAA,QAA1B2D,GAA0B,QAA1BA,GAA0B;AAAA,QAArBP,MAAqB,QAArBA,MAAqB;AAAA,QAAblB,SAAa,QAAbA,SAAa;AAChE,qCAAM7B,EAAN,EAAU3B,CAAV,EAAaC,CAAb,EAAgByE,MAAhB,EAAwBlB,SAAxB;AAEA,UAAKnC,KAAL,GAAaA,KAAb;AACA,UAAKC,MAAL,GAAcA,MAAd;AACA,UAAK2D,GAAL,GAAWA,GAAX;AALgE;AAMhE;;;;SAEDC,OAAA,cAAKlF,CAAL,EAAQC,CAAR,EAAWoB,KAAX,EAAkBC,MAAlB,EAA0B;AACzB,SAAK6D,EAAL,GAAUA,EAAV;AACA,SAAKC,EAAL,GAAUD,EAAV;AACA,SAAKE,MAAL,GAAcA,MAAd;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA;;;;SAED,eAAsB;AACrB,aAAO,aAAP;AACA;;;;EA/BuCT;;ICApBU;;;AAapB,sBAA0E;AAAA;;AAAA,QAA5D5D,EAA4D,QAA5DA,EAA4D;AAAA,QAAxD3B,CAAwD,QAAxDA,CAAwD;AAAA,QAArDC,CAAqD,QAArDA,CAAqD;AAAA,QAAlDoB,KAAkD,QAAlDA,KAAkD;AAAA,QAA3CC,MAA2C,QAA3CA,MAA2C;AAAA,QAAnCqD,IAAmC,QAAnCA,IAAmC;AAAA,QAA7BC,MAA6B,QAA7BA,MAA6B;AAAA,QAArBF,MAAqB,QAArBA,MAAqB;AAAA,QAAblB,SAAa,QAAbA,SAAa;AACzE,4CAAM7B,EAAN,EAAU3B,CAAV,EAAaC,CAAb,EAAgB0E,IAAhB,EAAsBC,MAAtB,EAA8BF,MAA9B,EAAsClB,SAAtC;AAEA,UAAKnC,KAAL,GAAaA,KAAb;AACA,UAAKC,MAAL,GAAcA,MAAd;AAJyE;AAKzE;;;;SAED,eAAsB;AACrB,aAAO,MAAP;AACA;;;;EAtBgCwD;;ICAbU;;;AAUpB,yBAA6D;AAAA;;AAAA,QAA/C7D,EAA+C,QAA/CA,EAA+C;AAAA,QAA3ChB,MAA2C,QAA3CA,MAA2C;AAAA,QAAnCgE,IAAmC,QAAnCA,IAAmC;AAAA,QAA7BC,MAA6B,QAA7BA,MAA6B;AAAA,QAArBF,MAAqB,QAArBA,MAAqB;AAAA,QAAblB,SAAa,QAAbA,SAAa;AAC5D,4CAAM7B,EAAN,EAAUhB,MAAM,CAAC,CAAD,CAAN,CAAUX,CAApB,EAAuBW,MAAM,CAAC,CAAD,CAAN,CAAUV,CAAjC,EAAoC0E,IAApC,EAA0CC,MAA1C,EAAkDF,MAAlD,EAA0DlB,SAA1D;AAEA,UAAK7C,MAAL,GAAcA,MAAd;AAH4D;AAI5D;;;;SAED,eAAsB;AACrB,aAAO,SAAP;AACA;;;;EAlBmCmE;;ACFtB,SAASW,YAAT,CAAsBC,OAAtB,EAA+B3F,OAA/B,EAAwCG,IAAxC,EAA8CC,GAA9C,EAAmDC,aAAnD,EAAkE;AAChFsF,EAAAA,OAAO,CAACC,SAAR;AAEAD,EAAAA,OAAO,CAACE,GAAR,CACC1F,IAAI,GAAGH,OAAO,CAACC,CAAR,GAAYI,aADpB,EAECD,GAAG,GAAGJ,OAAO,CAACE,CAAR,GAAYG,aAFnB,EAGCL,OAAO,CAACO,MAAR,GAAiBF,aAHlB,EAIC,CAJD,EAKC,IAAI+D,IAAI,CAAC0B,EALV;;AAQA,MAAG9F,OAAO,CAAC4E,IAAX,EAAiB;AAChBe,IAAAA,OAAO,CAACf,IAAR;AACA;;AACD,MAAG5E,OAAO,CAAC6E,MAAX,EAAmB;AAClBc,IAAAA,OAAO,CAACd,MAAR;AACA;AACD;;ACjBDkB,MAAM,CAACC,mBAAP,GAA6B,EAA7B;AACAD,MAAM,CAACC,mBAAP,CAA2BC,QAA3B,GAAsC,EAAtC;AAEA,AAAe,SAASC,WAAT,CAAqBP,OAArB,EAA8B3F,OAA9B,EAAuCG,IAAvC,EAA6CC,GAA7C,EAAkDC,aAAlD,EAAiE;AAC/E,MAAG,CAAC2F,mBAAmB,CAACC,QAApB,CAA6BjG,OAAO,CAACkF,GAArC,CAAJ,EAA+C;AAC9Cc,IAAAA,mBAAmB,CAACC,QAApB,CAA6BjG,OAAO,CAACkF,GAArC,IAA4C,IAAIiB,KAAJ,EAA5C;AACAH,IAAAA,mBAAmB,CAACC,QAApB,CAA6BjG,OAAO,CAACkF,GAArC,EAA0CA,GAA1C,GAAgDlF,OAAO,CAACkF,GAAxD;AACA;;AAED,MAAG,CAAClF,OAAO,CAACoF,EAAZ,EAAgB;AACfO,IAAAA,OAAO,CAACS,SAAR,CACCJ,mBAAmB,CAACC,QAApB,CAA6BjG,OAAO,CAACkF,GAArC,CADD,EAEC/E,IAAI,GAAGH,OAAO,CAACC,CAAR,GAAYI,aAFpB,EAGCD,GAAG,GAAGJ,OAAO,CAACE,CAAR,GAAYG,aAHnB,EAICL,OAAO,CAACsB,KAAR,GAAgBjB,aAJjB,EAKCL,OAAO,CAACuB,MAAR,GAAiBlB,aALlB;AAOA,GARD,MAQO;AACNsF,IAAAA,OAAO,CAACS,SAAR,CACCJ,mBAAmB,CAACC,QAApB,CAA6BjG,OAAO,CAACkF,GAArC,CADD,EAEClF,OAAO,CAACoF,EAFT,EAGCpF,OAAO,CAACqF,EAHT,EAICrF,OAAO,CAACsF,MAJT,EAKCtF,OAAO,CAACuF,OALT,EAMCpF,IAAI,GAAGH,OAAO,CAACC,CAAR,GAAYI,aANpB,EAOCD,GAAG,GAAGJ,OAAO,CAACE,CAAR,GAAYG,aAPnB,EAQCL,OAAO,CAACsB,KAAR,GAAgBjB,aARjB,EASCL,OAAO,CAACuB,MAAR,GAAiBlB,aATlB;AAWA;AACD;;AC9Bc,SAASgG,UAAT,CAAoBV,OAApB,EAA6B3F,OAA7B,EAAsCG,IAAtC,EAA4CC,GAA5C,EAAiDC,aAAjD,EAAgE;AAC9E,MAAGL,OAAO,CAAC4E,IAAX,EAAiB;AAChBe,IAAAA,OAAO,CAACW,QAAR,CACCnG,IAAI,GAAGH,OAAO,CAACC,CAAR,GAAYI,aADpB,EAECD,GAAG,GAAGJ,OAAO,CAACE,CAAR,GAAYG,aAFnB,EAGCL,OAAO,CAACsB,KAAR,GAAgBjB,aAHjB,EAICL,OAAO,CAACuB,MAAR,GAAiBlB,aAJlB;AAMA;;AAED,MAAGL,OAAO,CAAC6E,MAAX,EAAmB;AAClBc,IAAAA,OAAO,CAACY,UAAR,CACCpG,IAAI,GAAGH,OAAO,CAACC,CAAR,GAAYI,aADpB,EAECD,GAAG,GAAGJ,OAAO,CAACE,CAAR,GAAYG,aAFnB,EAGCL,OAAO,CAACsB,KAAR,GAAgBjB,aAHjB,EAICL,OAAO,CAACuB,MAAR,GAAiBlB,aAJlB;AAMA;AACD;;AClBc,SAASgG,YAAT,CAAoBV,OAApB,EAA6B3F,OAA7B,EAAsCG,IAAtC,EAA4CC,GAA5C,EAAiDC,aAAjD,EAAgE;AAC9EsF,EAAAA,OAAO,CAACC,SAAR;AAEAD,EAAAA,OAAO,CAACa,MAAR,CACCrG,IAAI,GAAGH,OAAO,CAACY,MAAR,CAAe,CAAf,EAAkBX,CAAlB,GAAsBI,aAD9B,EAECD,GAAG,GAAGJ,OAAO,CAACY,MAAR,CAAe,CAAf,EAAkBV,CAAlB,GAAsBG,aAF7B;;AAKA,OAAI,IAAIU,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGf,OAAO,CAACY,MAAR,CAAeC,MAAlC,EAA0CE,CAAC,EAA3C,EAA+C;AAC9C4E,IAAAA,OAAO,CAACc,MAAR,CACCtG,IAAI,GAAGH,OAAO,CAACY,MAAR,CAAeG,CAAf,EAAkBd,CAAlB,GAAsBI,aAD9B,EAECD,GAAG,GAAGJ,OAAO,CAACY,MAAR,CAAeG,CAAf,EAAkBb,CAAlB,GAAsBG,aAF7B;AAIA;;AAEDsF,EAAAA,OAAO,CAACc,MAAR,CACCtG,IAAI,GAAGH,OAAO,CAACY,MAAR,CAAe,CAAf,EAAkBX,CAAlB,GAAsBI,aAD9B,EAECD,GAAG,GAAGJ,OAAO,CAACY,MAAR,CAAe,CAAf,EAAkBV,CAAlB,GAAsBG,aAF7B;;AAKA,MAAGL,OAAO,CAAC4E,IAAX,EAAiB;AAChBe,IAAAA,OAAO,CAACf,IAAR;AACA;;AACD,MAAG5E,OAAO,CAAC6E,MAAX,EAAmB;AAClBc,IAAAA,OAAO,CAACd,MAAR;AACA;AACD;;;ACdD,IAAM6B,QAAQ,8BACX,IAAI1B,MAAJ,CAAW,EAAX,CAAD,CAAiBrD,eADL,IACuB+D,YADvB,YAEX,IAAIT,WAAJ,CAAgB,EAAhB,CAAD,CAAsBtD,eAFV,IAE4BuE,WAF5B,YAGX,IAAIV,IAAJ,CAAS,EAAT,CAAD,CAAe7D,eAHH,IAGqB0E,UAHrB,YAIX,IAAIZ,OAAJ,CAAY;AAAE7E,EAAAA,MAAM,EAAE,CAAC,EAAD;AAAV,CAAZ,CAAD,CAAgCe,eAJpB,IAIsCgF,YAJtC,YAAd;AAOA,AAAe,SAASC,YAAT,CACdjB,OADc,EAEdrE,KAFc,EAGdC,MAHc,EAIdG,QAJc,EAKd7B,QALc,EAMdkC,KANc,EAOb;AACD,MAAM5B,IAAI,GAAG4B,KAAK,CAAC5B,IAAN,GAAa4B,KAAK,CAACC,SAAhC;AACA,MAAM5B,GAAG,GAAG2B,KAAK,CAAC3B,GAAN,GAAY2B,KAAK,CAACK,QAA9B;AAEA,MAAIyE,aAAa,GAAG,EAApB;AACA,MAAIC,eAAe,GAAG,EAAtB;AAEA,MAAMzG,aAAa,GAAGT,YAAY,CAACC,QAAD,EAAWkC,KAAK,CAACjC,IAAjB,CAAlC;AAEA6F,EAAAA,OAAO,CAACoB,SAAR,CAAkB,CAAlB,EAAqB,CAArB,EAAwBzF,KAAxB,EAA+BC,MAA/B;;AAEA,uDAAqBG,QAArB,wCAA+B;AAAA,QAArB1B,OAAqB;;AAC9B,QACCA,OAAO,CAAC4E,IAAR,KAAiBiC,aAAjB,IACA,OAAO7G,OAAO,CAAC4E,IAAf,KAAwB,WAFzB,EAGE;AACDe,MAAAA,OAAO,CAACqB,SAAR,GAAoBhH,OAAO,CAAC4E,IAA5B;AACAiC,MAAAA,aAAa,GAAG7G,OAAO,CAAC4E,IAAxB;AACA;;AAED,QACC5E,OAAO,CAAC6E,MAAR,KAAmBiC,eAAnB,IACA,OAAO9G,OAAO,CAAC6E,MAAf,KAA0B,WAF3B,EAGE;AACDc,MAAAA,OAAO,CAACsB,WAAR,GAAsBjH,OAAO,CAAC6E,MAA9B;AACAiC,MAAAA,eAAe,GAAG9G,OAAO,CAAC6E,MAA1B;AACA;;AAED,QAAMqC,IAAI,GAAGlH,OAAO,CAAC2B,eAArB;;AACA,QAAG+E,QAAQ,CAACQ,IAAD,CAAX,EAAmB;AAClBR,MAAAA,QAAQ,CAACQ,IAAD,CAAR,CAAevB,OAAf,EAAwB3F,OAAxB,EAAiCG,IAAjC,EAAuCC,GAAvC,EAA4CC,aAA5C;AACA,KAFD,MAEO;AACN,YAAM,IAAI8G,KAAJ,CAAU,4BAA4BD,IAAtC,CAAN;AACA;AACD;AACD;;;AC7DD,AAaA,IAAIE,SAAJ;AAEA,AAAe,SAASC,QAAT,OAmBZ;AAAA,MAlBF3F,QAkBE,QAlBFA,QAkBE;AAAA,MAjBFJ,KAiBE,QAjBFA,KAiBE;AAAA,MAhBFC,MAgBE,QAhBFA,MAgBE;AAAA,iCAfF+F,cAeE;AAAA,MAfFA,cAeE,oCAfe,IAef;AAAA,0BAdFrD,OAcE;AAAA,MAdFA,OAcE,6BAdQ,CAcR;AAAA,0BAbFC,OAaE;AAAA,MAbFA,OAaE,6BAbQ,CAaR;AAAA,2BAZFrE,QAYE;AAAA,MAZFA,QAYE,8BAZS,CAYT;AAAA,MAXF0H,OAWE,QAXFA,OAWE;AAAA,MAVFC,YAUE,QAVFA,YAUE;AAAA,MATFrE,OASE,QATFA,OASE;AAAA,MARFD,cAQE,QARFA,cAQE;AAAA,4BAPFH,SAOE;AAAA,MAPFA,SAOE,+BAPU,KAOV;AAAA,4BANFC,SAME;AAAA,MANFA,SAME,+BANU,KAMV;AAAA,mCALFyE,gBAKE;AAAA,MALFA,gBAKE,sCALe,QAKf;AAAA,8BAJFxE,WAIE;AAAA,MAJFA,WAIE,iCAJU,KAIV;AAAA,4BAHFjB,SAGE;AAAA,MAHFA,SAGE,+BAHQ,CAGR;AAAA,2BAFFI,QAEE;AAAA,MAFFA,QAEE,8BAFO,CAEP;AAAA,MADCsF,UACD;;AAEF,kBAA0BC,cAAQ,CAAC,EAAD,CAAlC;AAAA,MAAO5F,KAAP;AAAA,MAAc6F,QAAd;;AACA,MAAMC,SAAS,GAAGC,iBAAW,CAAC,UAACC,MAAD,EAAY;AACzC,QAAGA,MAAM,KAAK,IAAd,EAAoB;AACnB,UAAMpC,OAAO,GAAGoC,MAAM,CAACC,UAAP,CAAkB,IAAlB,CAAhB;;AAEA,UAAGP,gBAAgB,KAAK,KAAxB,EAA+B;AAC9B9B,QAAAA,OAAO,CAACsC,qBAAR,GAAgC,KAAhC;AACA,OAFD,MAEO;AACNtC,QAAAA,OAAO,CAACsC,qBAAR,GAAgC,IAAhC;AACAtC,QAAAA,OAAO,CAACuC,qBAAR,GAAgCT,gBAAhC;AACA;;AAEDG,MAAAA,QAAQ,CAAC;AACRjE,QAAAA,kBAAkB,EAAEoE,MAAM,CAACI,qBAAP,EADZ;AAERJ,QAAAA,MAAM,EAANA,MAFQ;AAGRpC,QAAAA,OAAO,EAAPA,OAHQ;AAIRxF,QAAAA,IAAI,EAAEmB,KAAK,GAAC,CAJJ;AAKRlB,QAAAA,GAAG,EAAEmB,MAAM,GAAC,CALJ;AAMRD,QAAAA,KAAK,EAALA,KANQ;AAORC,QAAAA,MAAM,EAANA,MAPQ;AAQRzB,QAAAA,IAAI,EAAE;AARE,OAAD,CAAR;AAUA;AACD,GAtB4B,EAsB1B,EAtB0B,CAA7B;AAwBAiC,EAAAA,KAAK,CAACK,QAAN,GAAiBA,QAAjB;AACAL,EAAAA,KAAK,CAACC,SAAN,GAAkBA,SAAlB;;AAGA,MAAG,OAAON,QAAP,KAAoB,QAApB,IAAgC,CAAC0G,KAAK,CAACC,OAAN,CAAc3G,QAAd,CAApC,EAA6D;AAC5D,UAAM,IAAIyF,KAAJ,CAAU,wCAAV,CAAN;AACA;;AAED,MAAG,OAAO7F,KAAP,KAAiB,QAAjB,IAA6B,OAAOC,MAAP,KAAkB,QAAlD,EAA4D;AAC3D,UAAM,IAAI4F,KAAJ,CAAU,kDAAV,CAAN;AACA;;AAED,MAAGlD,OAAO,GAAGC,OAAb,EAAsB;AACrB,UAAM,IAAIiD,KAAJ,CAAU,uCAAV,CAAN;AACA;;AAED,MAAG,OAAOI,OAAP,KAAmB,UAAnB,IAAiC,OAAOA,OAAP,KAAmB,WAAvD,EAAoE;AACnE,UAAM,IAAIJ,KAAJ,CAAU,+BAAV,CAAN;AACA;;AAGD,MAAMmB,cAAc,GAAG/D,YAAY,CAAC7C,QAAD,CAAnC;AAGA,MAAI6G,WAAW,GAAG,IAAlB;;AACA,MAAGjB,cAAH,EAAmB;AAClBiB,IAAAA,WAAW,GAAG,qBAAC9G,CAAD;AAAA,aAAOkB,SAAS,CAAClB,CAAD,EAAIC,QAAJ,EAAc7B,QAAd,EAAwBkC,KAAxB,EAA+B6F,QAA/B,EAAyC7E,SAAzC,EAAoDC,SAApD,EAA+DC,WAA/D,EAA4EC,cAA5E,EAA4FC,OAA5F,CAAhB;AAAA,KAAd;AACA;;AAED,MAAIqF,OAAO,GAAG,IAAd;;AACA,MAAGvE,OAAO,KAAKC,OAAf,EAAwB;AACvBsE,IAAAA,OAAO,GAAG,iBAAC/G,CAAD;AAAA,aAAOuC,UAAU,CAACvC,CAAD,EAAIM,KAAJ,EAAW6F,QAAX,EAAqB3D,OAArB,EAA8BC,OAA9B,CAAjB;AAAA,KAAV;AACA;;AAED,MAAIuE,SAAS,GAAG,IAAhB;;AACA,MAAGlB,OAAH,EAAY;AACXkB,IAAAA,SAAS,GAAG,mBAAChH,CAAD;AAAA,aAAO8F,OAAO,CAACzF,YAAY,CAACL,CAAD,EAAIC,QAAJ,EAAc7B,QAAd,EAAwBkC,KAAxB,CAAb,CAAd;AAAA,KAAZ;AACA;;AAED,MAAGyF,YAAY,IAAIzF,KAAK,CAACgG,MAAzB,EAAiC;AAChC,QAAGX,SAAH,EAAc;AACbrF,MAAAA,KAAK,CAACgG,MAAN,CAAaW,mBAAb,CAAiC,aAAjC,EAAgDtB,SAAhD;AACA;;AACDA,IAAAA,SAAS,GAAG,mBAAC3F,CAAD,EAAO;AAClBA,MAAAA,CAAC,CAACkH,cAAF;AACAnB,MAAAA,YAAY,CAAChF,iBAAiB,CAACf,CAAD,EAAIC,QAAJ,EAAc7B,QAAd,EAAwBkC,KAAxB,CAAlB,CAAZ;AACA,KAHD;;AAIAA,IAAAA,KAAK,CAACgG,MAAN,CAAaa,gBAAb,CAA8B,aAA9B,EAA6CxB,SAA7C;AACA;;AAGD,MAAGrF,KAAK,CAAC4D,OAAT,EAAkB;AACjBI,IAAAA,MAAM,CAAC8C,qBAAP,CAA6B,YAAM;AAClCjC,MAAAA,YAAY,CACX7E,KAAK,CAAC4D,OADK,EAEXrE,KAFW,EAGXC,MAHW,EAIX+G,cAJW,EAKXzI,QALW,EAMXkC,KANW,CAAZ;AAQA,KATD;AAUA;;AAED,sBACC+G;AACC,IAAA,GAAG,EAAEjB,SADN;AAEC,IAAA,KAAK,EAAEvG,KAFR;AAGC,IAAA,MAAM,EAAEC,MAHT;AAIC,IAAA,WAAW,EAAEgH,WAJd;AAKC,IAAA,OAAO,EAAEC,OALV;AAMC,IAAA,OAAO,EAAEC,SANV;AAOC,IAAA,SAAS,EAAC;AAPX,KAQKf,UARL,EADD;AAYA;;ACzIc,SAASqB,aAAT,CAAuBC,MAAvB,EAA+B;AAC7C,uDAAmBA,MAAnB,wCAA2B;AAAA,QAAjBC,KAAiB;AAC1BjD,IAAAA,mBAAmB,CAACC,QAApB,CAA6BgD,KAA7B,IAAsC,IAAI9C,KAAJ,EAAtC;AACAH,IAAAA,mBAAmB,CAACC,QAApB,CAA6BgD,KAA7B,EAAoC/D,GAApC,GAA0C+D,KAA1C;AACA;AACD;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/functions/calcTileSize.js","../src/collisions/inCircle.js","../src/collisions/inPoly.js","../src/collisions/inRect.js","../src/collisions/collideElement.js","../src/events/elementClick.js","../src/events/elementRightClick.js","../src/events/mouseMove.js","../src/events/mouseWheel.js","../src/functions/sortElements.js","../src/shapes/CanvasObject.js","../src/shapes/ColoredCanvasObject.js","../src/shapes/Circle.js","../src/shapes/CanvasImage.js","../src/shapes/Rect.js","../src/shapes/Polygon.js","../src/render/renderCircle.js","../src/render/renderImage.js","../src/render/renderRect.js","../src/render/renderPolygon.js","../src/render/renderCanvas.js","../src/Canvas2D.js","../src/functions/preloadImages.js"],"sourcesContent":["export default function calcTileSize(tileSize, zoom) {\n\treturn tileSize * zoom;\n}\n","export default function inCircle(element, x, y, left, top, localTileSize) {\n\tconst distance = (\n\t\t(x - left) * (x - left) +\n\t\t(y - top) * (y - top)\n\t);\n\n\treturn (distance <= ((element.radius * localTileSize) * (element.radius * localTileSize)));\n}","export default function inPoly(element, x, y, mouseX, mouseY, localTileSize) {\n\tconst j = element.points.length - 1;\n\tlet counter = false;\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tconst iX = element.points[i].x * localTileSize;\n\t\tconst iY = element.points[i].y * localTileSize;\n\n\t\t// The mouse is exactly at a polygon point\n\t\tif(mouseX === iX && mouseY === iY) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst jX = element.points[j].x * localTileSize;\n\t\tconst jY = element.points[j].y * localTileSize;\n\n\t\tif((iY > y) !== (jY > y)) {\n\t\t\tconst slope = (mouseX - iX) * (jY - iY) - (jX - iX) * (mouseY - iY);\n\n\t\t\t// On the boundary\n\t\t\tif(slope === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Alternate, odd count = inside, even count = outside\n\t\t\tif((slope < 0) !== (jY < iY)) {\n\t\t\t\tcounter = !counter;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn counter;\n}\n","export default function inRect(element, x, y, left, top, localTileSize) {\n\tconst width = element.width * localTileSize;\n\tconst height = element.height * localTileSize;\n\n\treturn (x <= left && left <= (x + width) && y <= top && top <= (y + height));\n}","import calcTileSize from '../functions/calcTileSize';\n\nimport inCircle from './inCircle';\nimport inPoly from './inPoly';\nimport inRect from './inRect';\n\nexport default function collideElement(e, elements, left, top, tileSize, zoom) {\n\tconst localTileSize = calcTileSize(tileSize, zoom);\n\n\tfor(const element of elements) {\n\t\tconst x = element.x * localTileSize;\n\t\tconst y = element.y * localTileSize;\n\n\t\tswitch(element.constructorName) {\n\t\t\tcase 'Rect':\n\t\t\tcase 'CanvasImage':\n\t\t\t\tif(inRect(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Circle':\n\t\t\t\tif(inCircle(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Polygon':\n\t\t\t\tif(inPoly(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn null;\n}","import collideElement from '../collisions/collideElement';\n\nexport default function elementClick(e, elements, tileSize, state) {\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\n\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\n\tif(clickedElement !== null) {\n\t\treturn clickedElement;\n\t}\n\n\treturn {\n\t\tid: null,\n\t\telement: null,\n\t\toriginalEvent: e,\n\t};\n}\n","import collideElement from '../collisions/collideElement';\r\n\r\nexport default function elementRightClick(e, elements, tileSize, state) {\r\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\r\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\r\n\r\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\r\n\tif(clickedElement !== null) {\r\n\t\treturn clickedElement;\r\n\t}\r\n\r\n\treturn {\r\n\t\tid: null,\r\n\t\telement: null,\r\n\t\toriginalEvent: e,\r\n\t};\r\n}\r\n","import collideElement from '../collisions/collideElement';\r\n\r\nconst LEFT_BUTTON = 1;\r\nlet selectedObject = null;\r\nlet unselectTimeoutId = 0;\r\n\r\nexport default function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover) {\r\n\tconst newProps = {\r\n\t\t...props,\r\n\t};\r\n\r\n\tconst left = -props.left - props.deltaLeft + event.pageX - event.target.offsetLeft;\r\n\tconst top = -props.top - props.deltaTop + event.pageY - event.target.offsetTop;\r\n\r\n\tif(event.nativeEvent.buttons === LEFT_BUTTON && !!props.prevX) {\r\n\t\tlet moved = false;\r\n\t\tif(dragObjects) {\r\n\t\t\tif(selectedObject === null) {\r\n\t\t\t\tselectedObject = collideElement(event, elements, left, top, tileSize, props.zoom);\r\n\t\t\t}\r\n\r\n\t\t\tif(selectedObject !== null && selectedObject.element.draggable) {\r\n\t\t\t\tselectedObject.element.x = (-props.left - props.deltaLeft) + (event.clientX - props.boundingClientRect.left) - selectedObject.element.width / 2;\r\n\t\t\t\tselectedObject.element.y = (-props.top - props.deltaLeft) + (event.clientY - props.boundingClientRect.top) - selectedObject.element.height / 2;\r\n\r\n\t\t\t\tmoved = true;\r\n\r\n\t\t\t\tif(onElementMoved) {\r\n\t\t\t\t\tonElementMoved(\r\n\t\t\t\t\t\tselectedObject,\r\n\t\t\t\t\t\t(event.screenX - props.prevX),\r\n\t\t\t\t\t\t(event.screenY - props.prevY),\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(onHover) {\r\n\t\t\t\t\tonHover(null);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!moved) {\r\n\t\t\t// Lock Axis\r\n\t\t\tif(!lockXAxis) {\r\n\t\t\t\tnewProps.left += (event.screenX - props.prevX);\r\n\t\t\t}\r\n\r\n\t\t\tif(!lockYAxis) {\r\n\t\t\t\tnewProps.top += (event.screenY - props.prevY);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(event.nativeEvent.pointerType !== 'mouse') {\r\n\t\t\tunselectTimeoutId = setTimeout(() => {\r\n\t\t\t\tconsole.log('unselect');\r\n\t\t\t\tselectedObject = null;\r\n\t\t\t\tsetProps({\r\n\t\t\t\t\t...newProps,\r\n\t\t\t\t\tprevX: null,\r\n\t\t\t\t\tprevY: null,\r\n\t\t\t\t});\t\t\t\t\r\n\t\t\t}, 300);\r\n\t\t}\r\n\t} else {\r\n\t\tif(onHover) {\r\n\t\t\tonHover(collideElement(event, elements, left, top, tileSize, props.zoom));\r\n\t\t}\r\n\r\n\t\tselectedObject = null;\r\n\t}\r\n\r\n\tsetProps({\r\n\t\t...newProps,\r\n\t\tprevX: event.screenX,\r\n\t\tprevY: event.screenY,\r\n\t});\r\n}\r\n","export default function mouseWheel(event, props, setProps, minZoom, maxZoom) {\n\tlet zoom = props.zoom;\n\tif(event.deltaY < 0) {\n\t\tzoom += 0.05;\n\t} else {\n\t\tzoom -= 0.05;\n\t}\n\n\tzoom = Math.max(zoom, minZoom);\n\tzoom = Math.min(zoom, maxZoom);\n\n\t/** TODO: zoom on mouse **/\n\n\tsetProps({\n\t\t...props,\n\t\tzoom,\n\t});\n}\n","export default function sortElements(elements) {\n\telements.sort((a, b) => {\n\t\tif(a.zIndex !== b.zIndex) {\n\t\t\treturn a.zIndex - b.zIndex;\n\t\t}\n\n\t\tif(a.fill === b.fill) {\n\t\t\tif(a.stroke === b.stroke) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif(a.stroke < b.stroke) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn -1;\n\t\t}\n\n\t\tif(a.fill < b.fill) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn -1;\n\t});\n\n\treturn elements;\n}\n","export default class CanvasObject {\n\tconstructor(id, x, y, zIndex, draggable) {\n\t\tthis.id = id;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis['z-index'] = zIndex;\n\t\tthis.draggable = draggable;\n\t}\n\n\tset zIndex(zIndex) {\n\t\tthis['z-index'] = zIndex;\n\t}\n\n\tget zIndex() {\n\t\treturn this['z-index'] || 0;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasObject';\n\t}\n}\n","import CanvasObject from './CanvasObject';\n\nexport default class ColoredCanvasObject extends CanvasObject {\n\tconstructor(id, x, y, fill, stroke, zIndex, draggable) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.fill = fill;\n\t\tthis.stroke = stroke;\n\t}\n\n\tget constructorName() {\n\t\treturn 'ColoredCanvasObject';\n\t}\n}","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Circle extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of circle center in canvas\n\t * @param {number}\t\t\ty Top coordinate of circle center in canvas\n\t * @param {number} \t\tradius Circle radius in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, radius, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.radius = radius;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Circle';\n\t}\n}\n\n","import CanvasObject from './CanvasObject';\n\nexport default class CanvasImage extends CanvasObject {\n\t/**\n\t * Represents an Image that will be created on the canvas.\n\t * Note: a cache to prevent too much loading is implemented, you can create as much\n\t * images as you want of the same source without any performance issue.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of picture in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of picture in canvas\n\t * @param {number} \t\twidth Picture width in canvas\n\t * @param {number} \t\theight Picture height in canvas\n\t * @param {string} \tsrc \tImage source link\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, src, zIndex, draggable }) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.src = src;\n\t}\n\n\tcrop(x, y, width, height) {\n\t\tthis.sx = sx;\n\t\tthis.sy = sx;\n\t\tthis.swidth = swidth;\n\t\tthis.sheight = sheight;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasImage';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Rect extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of rectangle in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of rectangle in canvas\n\t * @param {number} \t\twidth Rectangle width in canvas\n\t * @param {number} \t\theight Rectangle height in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Rect';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Polygon extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tpoints Array of coordinates {x, y} of the polygon points\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, points, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, points[0].x, points[0].y, fill, stroke, zIndex, draggable);\n\n\t\tthis.points = points;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Polygon';\n\t}\n}\n","export default function renderCircle(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.arc(\n\t\tleft + element.x * localTileSize,\n\t\ttop + element.y * localTileSize,\n\t\telement.radius * localTileSize,\n\t\t0,\n\t\t2 * Math.PI\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","window.__canvas2dWrapper__ = {};\nwindow.__canvas2dWrapper__.imgCache = {};\n\nexport default function renderImage(context, element, left, top, localTileSize) {\n\tif(!__canvas2dWrapper__.imgCache[element.src]) {\n\t\t__canvas2dWrapper__.imgCache[element.src] = new Image();\n\t\t__canvas2dWrapper__.imgCache[element.src].src = element.src;\n\t}\n\n\tif(!element.sx) {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t} else {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\telement.sx,\n\t\t\telement.sy,\n\t\t\telement.swidth,\n\t\t\telement.sheight,\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tif(element.fill) {\n\t\tcontext.fillRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n\n\tif(element.stroke) {\n\t\tcontext.strokeRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.moveTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tcontext.lineTo(\n\t\t\tleft + element.points[i].x * localTileSize,\n\t\t\ttop + element.points[i].y * localTileSize,\n\t\t);\n\t}\n\n\tcontext.lineTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","import Circle from '../shapes/Circle';\nimport CanvasImage from '../shapes/CanvasImage';\nimport Rect from '../shapes/Rect';\nimport Polygon from '../shapes/Polygon';\n\nimport calcTileSize from '../functions/calcTileSize';\n\nimport renderCircle from './renderCircle';\nimport renderImage from './renderImage';\nimport renderRect from './renderRect';\nimport renderPolygon from './renderPolygon';\n\nconst renderFn = {\n\t[(new Circle({})).constructorName]: renderCircle,\n\t[(new CanvasImage({})).constructorName]: renderImage,\n\t[(new Rect({})).constructorName]: renderRect,\n\t[(new Polygon({ points: [{}] })).constructorName]: renderPolygon,\n};\n\nexport default function renderCanvas(\n\tcontext,\n\twidth,\n\theight,\n\telements,\n\ttileSize,\n\tstate,\n) {\n\tconst left = state.left + state.deltaLeft;\n\tconst top = state.top + state.deltaTop;\n\n\tlet prevFillStyle = '';\n\tlet prevStrokeStyle = '';\n\n\tconst localTileSize = calcTileSize(tileSize, state.zoom);\n\n\tcontext.clearRect(0, 0, width, height);\n\n\tfor(const element of elements) {\n\t\tif(\n\t\t\telement.fill !== prevFillStyle &&\n\t\t\ttypeof element.fill !== 'undefined'\n\t\t) {\n\t\t\tcontext.fillStyle = element.fill;\n\t\t\tprevFillStyle = element.fill;\n\t\t}\n\n\t\tif(\n\t\t\telement.stroke !== prevStrokeStyle &&\n\t\t\ttypeof element.stroke !== 'undefined'\n\t\t) {\n\t\t\tcontext.strokeStyle = element.stroke;\n\t\t\tprevStrokeStyle = element.stroke;\n\t\t}\n\n\t\tconst type = element.constructorName;\n\t\tif(renderFn[type]) {\n\t\t\trenderFn[type](context, element, left, top, localTileSize);\n\t\t} else {\n\t\t\tthrow new Error('Unsupported shape type:' + type);\n\t\t}\n\t}\n}\n","import React, { useCallback, useState } from 'react';\r\n\r\nimport './index.css';\r\n\r\nimport elementClick from './events/elementClick';\r\nimport elementRightClick from './events/elementRightClick';\r\nimport mouseMove from './events/mouseMove';\r\nimport mouseWheel from './events/mouseWheel';\r\n\r\nimport sortElements from './functions/sortElements';\r\n\r\nimport renderCanvas from './render/renderCanvas';\r\n\r\nlet prevEvent;\r\n\r\nexport default function Canvas2D({\r\n\telements,\r\n\twidth,\r\n\theight,\r\n\ttrackMouseMove = true,\r\n\tminZoom = 1,\r\n\tmaxZoom = 1,\r\n\ttileSize = 1,\r\n\tonClick,\r\n\tonRightClick,\r\n\tonHover,\r\n\tonElementMoved,\r\n\tonWheel,\r\n\tlockXAxis = false,\r\n\tlockYAxis = false,\r\n\tsmoothingQuality='medium',\r\n\tdragObjects=false,\r\n\tdeltaLeft=0,\r\n\tdeltaTop=0,\r\n\t...otherProps\r\n}) {\r\n\t// Hooks\r\n\tconst [state, setState] = useState({});\r\n\tconst canvasRef = useCallback((canvas) => {\r\n\t\tif(canvas !== null) {\r\n\t\t\tconst context = canvas.getContext('2d');\r\n\r\n\t\t\tif(smoothingQuality === false) {\r\n\t\t\t\tcontext.imageSmoothingEnabled = false;\r\n\t\t\t} else {\r\n\t\t\t\tcontext.imageSmoothingEnabled = true;\r\n\t\t\t\tcontext.imageSmoothingQuality = smoothingQuality;\r\n\t\t\t}\r\n\r\n\t\t\tsetState({\r\n\t\t\t\tboundingClientRect: canvas.getBoundingClientRect(),\r\n\t\t\t\tcanvas,\r\n\t\t\t\tcontext,\r\n\t\t\t\tleft: width/2,\r\n\t\t\t\ttop: height/2,\r\n\t\t\t\twidth,\r\n\t\t\t\theight,\r\n\t\t\t\tzoom: 1,\r\n\t\t\t});\r\n\t\t}\r\n\t}, []);\r\n\r\n\tstate.deltaTop = deltaTop;\r\n\tstate.deltaLeft = deltaLeft;\r\n\r\n\t// Check inputs\r\n\tif(typeof elements !== 'object' || !Array.isArray(elements)) {\r\n\t\tthrow new Error('Invalid elements, should be an array !');\r\n\t}\r\n\r\n\tif(typeof width !== 'number' || typeof height !== 'number') {\r\n\t\tthrow new Error('width/height should be specified and be numbers.');\r\n\t}\r\n\r\n\tif(minZoom > maxZoom) {\r\n\t\tthrow new Error('minZoom should be lower than maxZoom.');\r\n\t}\r\n\r\n\tif(typeof onClick !== 'function' && typeof onClick !== 'undefined') {\r\n\t\tthrow new Error('onClick should be a function.');\r\n\t}\r\n\r\n\t// Sort elements\r\n\tconst sortedElements = sortElements(elements);\r\n\r\n\t// Render\r\n\tlet onMouseMove = null;\r\n\tif(trackMouseMove) {\r\n\t\tonMouseMove = (e) => mouseMove(e, elements, tileSize, state, setState, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover);\r\n\t}\r\n\r\n\tlet onWheelFn = (e) => {\r\n\t\tif(onWheel) {\r\n\t\t\tonWheel(e);\r\n\t\t}\r\n\t\t\r\n\t\tif(minZoom !== maxZoom) {\r\n\t\t\tmouseWheel(e, state, setState, minZoom, maxZoom);\r\n\t\t}\r\n\t}\r\n\r\n\tlet onClickFn = null;\r\n\tif(onClick) {\r\n\t\tonClickFn = (e) => onClick(elementClick(e, elements, tileSize, state));\r\n\t}\r\n\r\n\tif(onRightClick && state.canvas) {\r\n\t\tif(prevEvent) {\r\n\t\t\tstate.canvas.removeEventListener('contextmenu', prevEvent);\r\n\t\t}\r\n\t\tprevEvent = (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tonRightClick(elementRightClick(e, elements, tileSize, state));\r\n\t\t};\r\n\t\tstate.canvas.addEventListener('contextmenu', prevEvent);\r\n\t}\r\n\r\n\t// Canvas render loop\r\n\tif(state.context) {\r\n\t\twindow.requestAnimationFrame(() => {\r\n\t\t\trenderCanvas(\r\n\t\t\t\tstate.context,\r\n\t\t\t\twidth,\r\n\t\t\t\theight,\r\n\t\t\t\tsortedElements,\r\n\t\t\t\ttileSize,\r\n\t\t\t\tstate,\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\treturn (\r\n\t\t<canvas\r\n\t\t\tref={canvasRef}\r\n\t\t\twidth={width}\r\n\t\t\theight={height}\r\n\t\t\tonPointerMove={onMouseMove}\r\n\t\t\tonWheel={onWheelFn}\r\n\t\t\tonClick={onClickFn}\r\n\t\t\tclassName=\"canvas2d-wrapper\"\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t);\r\n};\r\n","export default function preloadImages(images) {\r\n\tfor(const image of images) {\r\n\t\t__canvas2dWrapper__.imgCache[image] = new Image();\r\n\t\t__canvas2dWrapper__.imgCache[image].src = image;\r\n\t}\r\n}"],"names":["calcTileSize","tileSize","zoom","inCircle","element","x","y","left","top","localTileSize","distance","radius","inPoly","mouseX","mouseY","j","points","length","counter","i","iX","iY","jX","jY","slope","inRect","width","height","collideElement","e","elements","constructorName","id","originalEvent","elementClick","state","deltaLeft","pageX","target","offsetLeft","deltaTop","pageY","offsetTop","clickedElement","elementRightClick","LEFT_BUTTON","selectedObject","unselectTimeoutId","mouseMove","event","props","setProps","lockXAxis","lockYAxis","dragObjects","onElementMoved","onHover","newProps","nativeEvent","buttons","prevX","moved","draggable","clientX","boundingClientRect","clientY","screenX","screenY","prevY","pointerType","setTimeout","console","log","mouseWheel","minZoom","maxZoom","deltaY","Math","max","min","sortElements","sort","a","b","zIndex","fill","stroke","CanvasObject","ColoredCanvasObject","Circle","CanvasImage","src","crop","sx","sy","swidth","sheight","Rect","Polygon","renderCircle","context","beginPath","arc","PI","window","__canvas2dWrapper__","imgCache","renderImage","Image","drawImage","renderRect","fillRect","strokeRect","moveTo","lineTo","renderFn","renderPolygon","renderCanvas","prevFillStyle","prevStrokeStyle","clearRect","fillStyle","strokeStyle","type","Error","prevEvent","Canvas2D","trackMouseMove","onClick","onRightClick","onWheel","smoothingQuality","otherProps","useState","setState","canvasRef","useCallback","canvas","getContext","imageSmoothingEnabled","imageSmoothingQuality","getBoundingClientRect","Array","isArray","sortedElements","onMouseMove","onWheelFn","onClickFn","removeEventListener","preventDefault","addEventListener","requestAnimationFrame","React","preloadImages","images","image"],"mappings":"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"}
|
package/dist/index.modern.js
CHANGED
@@ -234,6 +234,7 @@ function elementRightClick(e, elements, tileSize, state) {
|
|
234
234
|
|
235
235
|
var LEFT_BUTTON = 1;
|
236
236
|
var selectedObject = null;
|
237
|
+
var unselectTimeoutId = 0;
|
237
238
|
function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover) {
|
238
239
|
var newProps = _extends({}, props);
|
239
240
|
|
@@ -272,6 +273,17 @@ function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYA
|
|
272
273
|
newProps.top += event.screenY - props.prevY;
|
273
274
|
}
|
274
275
|
}
|
276
|
+
|
277
|
+
if (event.nativeEvent.pointerType !== 'mouse') {
|
278
|
+
unselectTimeoutId = setTimeout(function () {
|
279
|
+
console.log('unselect');
|
280
|
+
selectedObject = null;
|
281
|
+
setProps(_extends({}, newProps, {
|
282
|
+
prevX: null,
|
283
|
+
prevY: null
|
284
|
+
}));
|
285
|
+
}, 300);
|
286
|
+
}
|
275
287
|
} else {
|
276
288
|
if (onHover) {
|
277
289
|
onHover(collideElement(event, elements, left, top, tileSize, props.zoom));
|
@@ -597,7 +609,7 @@ function renderCanvas(context, width, height, elements, tileSize, state) {
|
|
597
609
|
}
|
598
610
|
}
|
599
611
|
|
600
|
-
var _excluded = ["elements", "width", "height", "trackMouseMove", "minZoom", "maxZoom", "tileSize", "onClick", "onRightClick", "onHover", "onElementMoved", "lockXAxis", "lockYAxis", "smoothingQuality", "dragObjects", "deltaLeft", "deltaTop"];
|
612
|
+
var _excluded = ["elements", "width", "height", "trackMouseMove", "minZoom", "maxZoom", "tileSize", "onClick", "onRightClick", "onHover", "onElementMoved", "onWheel", "lockXAxis", "lockYAxis", "smoothingQuality", "dragObjects", "deltaLeft", "deltaTop"];
|
601
613
|
var prevEvent;
|
602
614
|
function Canvas2D(_ref) {
|
603
615
|
var elements = _ref.elements,
|
@@ -615,6 +627,7 @@ function Canvas2D(_ref) {
|
|
615
627
|
onRightClick = _ref.onRightClick,
|
616
628
|
onHover = _ref.onHover,
|
617
629
|
onElementMoved = _ref.onElementMoved,
|
630
|
+
onWheel = _ref.onWheel,
|
618
631
|
_ref$lockXAxis = _ref.lockXAxis,
|
619
632
|
lockXAxis = _ref$lockXAxis === void 0 ? false : _ref$lockXAxis,
|
620
633
|
_ref$lockYAxis = _ref.lockYAxis,
|
@@ -684,13 +697,15 @@ function Canvas2D(_ref) {
|
|
684
697
|
};
|
685
698
|
}
|
686
699
|
|
687
|
-
var
|
700
|
+
var onWheelFn = function onWheelFn(e) {
|
701
|
+
if (onWheel) {
|
702
|
+
onWheel(e);
|
703
|
+
}
|
688
704
|
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
}
|
705
|
+
if (minZoom !== maxZoom) {
|
706
|
+
mouseWheel(e, state, setState, minZoom, maxZoom);
|
707
|
+
}
|
708
|
+
};
|
694
709
|
|
695
710
|
var onClickFn = null;
|
696
711
|
|
@@ -723,8 +738,8 @@ function Canvas2D(_ref) {
|
|
723
738
|
ref: canvasRef,
|
724
739
|
width: width,
|
725
740
|
height: height,
|
726
|
-
|
727
|
-
onWheel:
|
741
|
+
onPointerMove: onMouseMove,
|
742
|
+
onWheel: onWheelFn,
|
728
743
|
onClick: onClickFn,
|
729
744
|
className: "canvas2d-wrapper"
|
730
745
|
}, otherProps));
|
package/dist/index.modern.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/functions/calcTileSize.js","../src/collisions/inCircle.js","../src/collisions/inPoly.js","../src/collisions/inRect.js","../src/collisions/collideElement.js","../src/events/elementClick.js","../src/events/elementRightClick.js","../src/events/mouseMove.js","../src/events/mouseWheel.js","../src/functions/sortElements.js","../src/shapes/CanvasObject.js","../src/shapes/ColoredCanvasObject.js","../src/shapes/Circle.js","../src/shapes/CanvasImage.js","../src/shapes/Rect.js","../src/shapes/Polygon.js","../src/render/renderCircle.js","../src/render/renderImage.js","../src/render/renderRect.js","../src/render/renderPolygon.js","../src/render/renderCanvas.js","../src/Canvas2D.js","../src/functions/preloadImages.js"],"sourcesContent":["export default function calcTileSize(tileSize, zoom) {\n\treturn tileSize * zoom;\n}\n","export default function inCircle(element, x, y, left, top, localTileSize) {\n\tconst distance = (\n\t\t(x - left) * (x - left) +\n\t\t(y - top) * (y - top)\n\t);\n\n\treturn (distance <= ((element.radius * localTileSize) * (element.radius * localTileSize)));\n}","export default function inPoly(element, x, y, mouseX, mouseY, localTileSize) {\n\tconst j = element.points.length - 1;\n\tlet counter = false;\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tconst iX = element.points[i].x * localTileSize;\n\t\tconst iY = element.points[i].y * localTileSize;\n\n\t\t// The mouse is exactly at a polygon point\n\t\tif(mouseX === iX && mouseY === iY) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst jX = element.points[j].x * localTileSize;\n\t\tconst jY = element.points[j].y * localTileSize;\n\n\t\tif((iY > y) !== (jY > y)) {\n\t\t\tconst slope = (mouseX - iX) * (jY - iY) - (jX - iX) * (mouseY - iY);\n\n\t\t\t// On the boundary\n\t\t\tif(slope === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Alternate, odd count = inside, even count = outside\n\t\t\tif((slope < 0) !== (jY < iY)) {\n\t\t\t\tcounter = !counter;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn counter;\n}\n","export default function inRect(element, x, y, left, top, localTileSize) {\n\tconst width = element.width * localTileSize;\n\tconst height = element.height * localTileSize;\n\n\treturn (x <= left && left <= (x + width) && y <= top && top <= (y + height));\n}","import calcTileSize from '../functions/calcTileSize';\n\nimport inCircle from './inCircle';\nimport inPoly from './inPoly';\nimport inRect from './inRect';\n\nexport default function collideElement(e, elements, left, top, tileSize, zoom) {\n\tconst localTileSize = calcTileSize(tileSize, zoom);\n\n\tfor(const element of elements) {\n\t\tconst x = element.x * localTileSize;\n\t\tconst y = element.y * localTileSize;\n\n\t\tswitch(element.constructorName) {\n\t\t\tcase 'Rect':\n\t\t\tcase 'CanvasImage':\n\t\t\t\tif(inRect(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Circle':\n\t\t\t\tif(inCircle(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Polygon':\n\t\t\t\tif(inPoly(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn null;\n}","import collideElement from '../collisions/collideElement';\n\nexport default function elementClick(e, elements, tileSize, state) {\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\n\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\n\tif(clickedElement !== null) {\n\t\treturn clickedElement;\n\t}\n\n\treturn {\n\t\tid: null,\n\t\telement: null,\n\t\toriginalEvent: e,\n\t};\n}\n","import collideElement from '../collisions/collideElement';\r\n\r\nexport default function elementRightClick(e, elements, tileSize, state) {\r\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\r\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\r\n\r\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\r\n\tif(clickedElement !== null) {\r\n\t\treturn clickedElement;\r\n\t}\r\n\r\n\treturn {\r\n\t\tid: null,\r\n\t\telement: null,\r\n\t\toriginalEvent: e,\r\n\t};\r\n}\r\n","import collideElement from '../collisions/collideElement';\n\nconst LEFT_BUTTON = 1;\nlet selectedObject = null;\n\nexport default function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover) {\n\tconst newProps = {\n\t\t...props,\n\t};\n\n\tconst left = -props.left - props.deltaLeft + event.pageX - event.target.offsetLeft;\n\tconst top = -props.top - props.deltaTop + event.pageY - event.target.offsetTop;\n\n\tif(event.nativeEvent.buttons === LEFT_BUTTON && !!props.prevX) {\n\t\tlet moved = false;\n\t\tif(dragObjects) {\n\t\t\tif(selectedObject === null) {\n\t\t\t\tselectedObject = collideElement(event, elements, left, top, tileSize, props.zoom);\n\t\t\t}\n\n\t\t\tif(selectedObject !== null && selectedObject.element.draggable) {\n\t\t\t\tselectedObject.element.x = (-props.left - props.deltaLeft) + (event.clientX - props.boundingClientRect.left) - selectedObject.element.width / 2;\n\t\t\t\tselectedObject.element.y = (-props.top - props.deltaLeft) + (event.clientY - props.boundingClientRect.top) - selectedObject.element.height / 2;\n\n\t\t\t\tmoved = true;\n\n\t\t\t\tif(onElementMoved) {\n\t\t\t\t\tonElementMoved(\n\t\t\t\t\t\tselectedObject,\n\t\t\t\t\t\t(event.screenX - props.prevX),\n\t\t\t\t\t\t(event.screenY - props.prevY),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif(onHover) {\n\t\t\t\t\tonHover(null);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(!moved) {\n\t\t\tif(!lockXAxis) {\n\t\t\t\tnewProps.left += (event.screenX - props.prevX);\n\t\t\t}\n\n\t\t\tif(!lockYAxis) {\n\t\t\t\tnewProps.top += (event.screenY - props.prevY);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(onHover) {\n\t\t\tonHover(collideElement(event, elements, left, top, tileSize, props.zoom));\n\t\t}\n\n\t\tselectedObject = null;\n\t}\n\n\tsetProps({\n\t\t...newProps,\n\t\tprevX: event.screenX,\n\t\tprevY: event.screenY,\n\t});\n}\n","export default function mouseWheel(event, props, setProps, minZoom, maxZoom) {\n\tlet zoom = props.zoom;\n\tif(event.deltaY < 0) {\n\t\tzoom += 0.05;\n\t} else {\n\t\tzoom -= 0.05;\n\t}\n\n\tzoom = Math.max(zoom, minZoom);\n\tzoom = Math.min(zoom, maxZoom);\n\n\t/** TODO: zoom on mouse **/\n\n\tsetProps({\n\t\t...props,\n\t\tzoom,\n\t});\n}\n","export default function sortElements(elements) {\n\telements.sort((a, b) => {\n\t\tif(a.zIndex !== b.zIndex) {\n\t\t\treturn a.zIndex - b.zIndex;\n\t\t}\n\n\t\tif(a.fill === b.fill) {\n\t\t\tif(a.stroke === b.stroke) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif(a.stroke < b.stroke) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn -1;\n\t\t}\n\n\t\tif(a.fill < b.fill) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn -1;\n\t});\n\n\treturn elements;\n}\n","export default class CanvasObject {\n\tconstructor(id, x, y, zIndex, draggable) {\n\t\tthis.id = id;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis['z-index'] = zIndex;\n\t\tthis.draggable = draggable;\n\t}\n\n\tset zIndex(zIndex) {\n\t\tthis['z-index'] = zIndex;\n\t}\n\n\tget zIndex() {\n\t\treturn this['z-index'] || 0;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasObject';\n\t}\n}\n","import CanvasObject from './CanvasObject';\n\nexport default class ColoredCanvasObject extends CanvasObject {\n\tconstructor(id, x, y, fill, stroke, zIndex, draggable) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.fill = fill;\n\t\tthis.stroke = stroke;\n\t}\n\n\tget constructorName() {\n\t\treturn 'ColoredCanvasObject';\n\t}\n}","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Circle extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of circle center in canvas\n\t * @param {number}\t\t\ty Top coordinate of circle center in canvas\n\t * @param {number} \t\tradius Circle radius in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, radius, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.radius = radius;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Circle';\n\t}\n}\n\n","import CanvasObject from './CanvasObject';\n\nexport default class CanvasImage extends CanvasObject {\n\t/**\n\t * Represents an Image that will be created on the canvas.\n\t * Note: a cache to prevent too much loading is implemented, you can create as much\n\t * images as you want of the same source without any performance issue.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of picture in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of picture in canvas\n\t * @param {number} \t\twidth Picture width in canvas\n\t * @param {number} \t\theight Picture height in canvas\n\t * @param {string} \tsrc \tImage source link\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, src, zIndex, draggable }) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.src = src;\n\t}\n\n\tcrop(x, y, width, height) {\n\t\tthis.sx = sx;\n\t\tthis.sy = sx;\n\t\tthis.swidth = swidth;\n\t\tthis.sheight = sheight;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasImage';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Rect extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of rectangle in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of rectangle in canvas\n\t * @param {number} \t\twidth Rectangle width in canvas\n\t * @param {number} \t\theight Rectangle height in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Rect';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Polygon extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tpoints Array of coordinates {x, y} of the polygon points\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, points, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, points[0].x, points[0].y, fill, stroke, zIndex, draggable);\n\n\t\tthis.points = points;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Polygon';\n\t}\n}\n","export default function renderCircle(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.arc(\n\t\tleft + element.x * localTileSize,\n\t\ttop + element.y * localTileSize,\n\t\telement.radius * localTileSize,\n\t\t0,\n\t\t2 * Math.PI\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","window.__canvas2dWrapper__ = {};\nwindow.__canvas2dWrapper__.imgCache = {};\n\nexport default function renderImage(context, element, left, top, localTileSize) {\n\tif(!__canvas2dWrapper__.imgCache[element.src]) {\n\t\t__canvas2dWrapper__.imgCache[element.src] = new Image();\n\t\t__canvas2dWrapper__.imgCache[element.src].src = element.src;\n\t}\n\n\tif(!element.sx) {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t} else {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\telement.sx,\n\t\t\telement.sy,\n\t\t\telement.swidth,\n\t\t\telement.sheight,\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tif(element.fill) {\n\t\tcontext.fillRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n\n\tif(element.stroke) {\n\t\tcontext.strokeRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.moveTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tcontext.lineTo(\n\t\t\tleft + element.points[i].x * localTileSize,\n\t\t\ttop + element.points[i].y * localTileSize,\n\t\t);\n\t}\n\n\tcontext.lineTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","import Circle from '../shapes/Circle';\nimport CanvasImage from '../shapes/CanvasImage';\nimport Rect from '../shapes/Rect';\nimport Polygon from '../shapes/Polygon';\n\nimport calcTileSize from '../functions/calcTileSize';\n\nimport renderCircle from './renderCircle';\nimport renderImage from './renderImage';\nimport renderRect from './renderRect';\nimport renderPolygon from './renderPolygon';\n\nconst renderFn = {\n\t[(new Circle({})).constructorName]: renderCircle,\n\t[(new CanvasImage({})).constructorName]: renderImage,\n\t[(new Rect({})).constructorName]: renderRect,\n\t[(new Polygon({ points: [{}] })).constructorName]: renderPolygon,\n};\n\nexport default function renderCanvas(\n\tcontext,\n\twidth,\n\theight,\n\telements,\n\ttileSize,\n\tstate,\n) {\n\tconst left = state.left + state.deltaLeft;\n\tconst top = state.top + state.deltaTop;\n\n\tlet prevFillStyle = '';\n\tlet prevStrokeStyle = '';\n\n\tconst localTileSize = calcTileSize(tileSize, state.zoom);\n\n\tcontext.clearRect(0, 0, width, height);\n\n\tfor(const element of elements) {\n\t\tif(\n\t\t\telement.fill !== prevFillStyle &&\n\t\t\ttypeof element.fill !== 'undefined'\n\t\t) {\n\t\t\tcontext.fillStyle = element.fill;\n\t\t\tprevFillStyle = element.fill;\n\t\t}\n\n\t\tif(\n\t\t\telement.stroke !== prevStrokeStyle &&\n\t\t\ttypeof element.stroke !== 'undefined'\n\t\t) {\n\t\t\tcontext.strokeStyle = element.stroke;\n\t\t\tprevStrokeStyle = element.stroke;\n\t\t}\n\n\t\tconst type = element.constructorName;\n\t\tif(renderFn[type]) {\n\t\t\trenderFn[type](context, element, left, top, localTileSize);\n\t\t} else {\n\t\t\tthrow new Error('Unsupported shape type:' + type);\n\t\t}\n\t}\n}\n","import React, { useCallback, useState } from 'react';\n\nimport './index.css';\n\nimport elementClick from './events/elementClick';\nimport elementRightClick from './events/elementRightClick';\nimport mouseMove from './events/mouseMove';\nimport mouseWheel from './events/mouseWheel';\n\nimport sortElements from './functions/sortElements';\n\nimport renderCanvas from './render/renderCanvas';\n\nlet prevEvent;\n\nexport default function Canvas2D({\n\telements,\n\twidth,\n\theight,\n\ttrackMouseMove = true,\n\tminZoom = 1,\n\tmaxZoom = 1,\n\ttileSize = 1,\n\tonClick,\n\tonRightClick,\n\tonHover,\n\tonElementMoved,\n\tlockXAxis = false,\n\tlockYAxis = false,\n\tsmoothingQuality='medium',\n\tdragObjects=false,\n\tdeltaLeft=0,\n\tdeltaTop=0,\n\t...otherProps\n}) {\n\t// Hooks\n\tconst [state, setState] = useState({});\n\tconst canvasRef = useCallback((canvas) => {\n\t\tif(canvas !== null) {\n\t\t\tconst context = canvas.getContext('2d');\n\n\t\t\tif(smoothingQuality === false) {\n\t\t\t\tcontext.imageSmoothingEnabled = false;\n\t\t\t} else {\n\t\t\t\tcontext.imageSmoothingEnabled = true;\n\t\t\t\tcontext.imageSmoothingQuality = smoothingQuality;\n\t\t\t}\n\n\t\t\tsetState({\n\t\t\t\tboundingClientRect: canvas.getBoundingClientRect(),\n\t\t\t\tcanvas,\n\t\t\t\tcontext,\n\t\t\t\tleft: width/2,\n\t\t\t\ttop: height/2,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tzoom: 1,\n\t\t\t});\n\t\t}\n\t}, []);\n\n\tstate.deltaTop = deltaTop;\n\tstate.deltaLeft = deltaLeft;\n\n\t// Check inputs\n\tif(typeof elements !== 'object' || !Array.isArray(elements)) {\n\t\tthrow new Error('Invalid elements, should be an array !');\n\t}\n\n\tif(typeof width !== 'number' || typeof height !== 'number') {\n\t\tthrow new Error('width/height should be specified and be numbers.');\n\t}\n\n\tif(minZoom > maxZoom) {\n\t\tthrow new Error('minZoom should be lower than maxZoom.');\n\t}\n\n\tif(typeof onClick !== 'function' && typeof onClick !== 'undefined') {\n\t\tthrow new Error('onClick should be a function.');\n\t}\n\n\t// Sort elements\n\tconst sortedElements = sortElements(elements);\n\n\t// Render\n\tlet onMouseMove = null;\n\tif(trackMouseMove) {\n\t\tonMouseMove = (e) => mouseMove(e, elements, tileSize, state, setState, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover);\n\t}\n\n\tlet onWheel = null;\n\tif(minZoom !== maxZoom) {\n\t\tonWheel = (e) => mouseWheel(e, state, setState, minZoom, maxZoom);\n\t}\n\n\tlet onClickFn = null;\n\tif(onClick) {\n\t\tonClickFn = (e) => onClick(elementClick(e, elements, tileSize, state));\n\t}\n\n\tif(onRightClick && state.canvas) {\n\t\tif(prevEvent) {\n\t\t\tstate.canvas.removeEventListener('contextmenu', prevEvent);\n\t\t}\n\t\tprevEvent = (e) => {\n\t\t\te.preventDefault();\n\t\t\tonRightClick(elementRightClick(e, elements, tileSize, state));\n\t\t};\n\t\tstate.canvas.addEventListener('contextmenu', prevEvent);\n\t}\n\n\t// Canvas render loop\n\tif(state.context) {\n\t\twindow.requestAnimationFrame(() => {\n\t\t\trenderCanvas(\n\t\t\t\tstate.context,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tsortedElements,\n\t\t\t\ttileSize,\n\t\t\t\tstate,\n\t\t\t);\n\t\t});\n\t}\n\n\treturn (\n\t\t<canvas\n\t\t\tref={canvasRef}\n\t\t\twidth={width}\n\t\t\theight={height}\n\t\t\tonMouseMove={onMouseMove}\n\t\t\tonWheel={onWheel}\n\t\t\tonClick={onClickFn}\n\t\t\tclassName=\"canvas2d-wrapper\"\n\t\t\t{...otherProps}\n\t\t/>\n\t);\n};\n","export default function preloadImages(images) {\r\n\tfor(const image of images) {\r\n\t\t__canvas2dWrapper__.imgCache[image] = new Image();\r\n\t\t__canvas2dWrapper__.imgCache[image].src = image;\r\n\t}\r\n}"],"names":["calcTileSize","tileSize","zoom","inCircle","element","x","y","left","top","localTileSize","distance","radius","inPoly","mouseX","mouseY","j","points","length","counter","i","iX","iY","jX","jY","slope","inRect","width","height","collideElement","e","elements","constructorName","id","originalEvent","elementClick","state","deltaLeft","pageX","target","offsetLeft","deltaTop","pageY","offsetTop","clickedElement","elementRightClick","LEFT_BUTTON","selectedObject","mouseMove","event","props","setProps","lockXAxis","lockYAxis","dragObjects","onElementMoved","onHover","newProps","nativeEvent","buttons","prevX","moved","draggable","clientX","boundingClientRect","clientY","screenX","screenY","prevY","mouseWheel","minZoom","maxZoom","deltaY","Math","max","min","sortElements","sort","a","b","zIndex","fill","stroke","CanvasObject","ColoredCanvasObject","Circle","CanvasImage","src","crop","sx","sy","swidth","sheight","Rect","Polygon","renderCircle","context","beginPath","arc","PI","window","__canvas2dWrapper__","imgCache","renderImage","Image","drawImage","renderRect","fillRect","strokeRect","moveTo","lineTo","renderFn","renderPolygon","renderCanvas","prevFillStyle","prevStrokeStyle","clearRect","fillStyle","strokeStyle","type","Error","prevEvent","Canvas2D","trackMouseMove","onClick","onRightClick","smoothingQuality","otherProps","useState","setState","canvasRef","useCallback","canvas","getContext","imageSmoothingEnabled","imageSmoothingQuality","getBoundingClientRect","Array","isArray","sortedElements","onMouseMove","onWheel","onClickFn","removeEventListener","preventDefault","addEventListener","requestAnimationFrame","preloadImages","images","image"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/functions/calcTileSize.js","../src/collisions/inCircle.js","../src/collisions/inPoly.js","../src/collisions/inRect.js","../src/collisions/collideElement.js","../src/events/elementClick.js","../src/events/elementRightClick.js","../src/events/mouseMove.js","../src/events/mouseWheel.js","../src/functions/sortElements.js","../src/shapes/CanvasObject.js","../src/shapes/ColoredCanvasObject.js","../src/shapes/Circle.js","../src/shapes/CanvasImage.js","../src/shapes/Rect.js","../src/shapes/Polygon.js","../src/render/renderCircle.js","../src/render/renderImage.js","../src/render/renderRect.js","../src/render/renderPolygon.js","../src/render/renderCanvas.js","../src/Canvas2D.js","../src/functions/preloadImages.js"],"sourcesContent":["export default function calcTileSize(tileSize, zoom) {\n\treturn tileSize * zoom;\n}\n","export default function inCircle(element, x, y, left, top, localTileSize) {\n\tconst distance = (\n\t\t(x - left) * (x - left) +\n\t\t(y - top) * (y - top)\n\t);\n\n\treturn (distance <= ((element.radius * localTileSize) * (element.radius * localTileSize)));\n}","export default function inPoly(element, x, y, mouseX, mouseY, localTileSize) {\n\tconst j = element.points.length - 1;\n\tlet counter = false;\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tconst iX = element.points[i].x * localTileSize;\n\t\tconst iY = element.points[i].y * localTileSize;\n\n\t\t// The mouse is exactly at a polygon point\n\t\tif(mouseX === iX && mouseY === iY) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst jX = element.points[j].x * localTileSize;\n\t\tconst jY = element.points[j].y * localTileSize;\n\n\t\tif((iY > y) !== (jY > y)) {\n\t\t\tconst slope = (mouseX - iX) * (jY - iY) - (jX - iX) * (mouseY - iY);\n\n\t\t\t// On the boundary\n\t\t\tif(slope === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Alternate, odd count = inside, even count = outside\n\t\t\tif((slope < 0) !== (jY < iY)) {\n\t\t\t\tcounter = !counter;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn counter;\n}\n","export default function inRect(element, x, y, left, top, localTileSize) {\n\tconst width = element.width * localTileSize;\n\tconst height = element.height * localTileSize;\n\n\treturn (x <= left && left <= (x + width) && y <= top && top <= (y + height));\n}","import calcTileSize from '../functions/calcTileSize';\n\nimport inCircle from './inCircle';\nimport inPoly from './inPoly';\nimport inRect from './inRect';\n\nexport default function collideElement(e, elements, left, top, tileSize, zoom) {\n\tconst localTileSize = calcTileSize(tileSize, zoom);\n\n\tfor(const element of elements) {\n\t\tconst x = element.x * localTileSize;\n\t\tconst y = element.y * localTileSize;\n\n\t\tswitch(element.constructorName) {\n\t\t\tcase 'Rect':\n\t\t\tcase 'CanvasImage':\n\t\t\t\tif(inRect(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Circle':\n\t\t\t\tif(inCircle(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Polygon':\n\t\t\t\tif(inPoly(element, x, y, left, top, localTileSize)) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: element.id,\n\t\t\t\t\t\telement,\n\t\t\t\t\t\toriginalEvent: e,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn null;\n}","import collideElement from '../collisions/collideElement';\n\nexport default function elementClick(e, elements, tileSize, state) {\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\n\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\n\tif(clickedElement !== null) {\n\t\treturn clickedElement;\n\t}\n\n\treturn {\n\t\tid: null,\n\t\telement: null,\n\t\toriginalEvent: e,\n\t};\n}\n","import collideElement from '../collisions/collideElement';\r\n\r\nexport default function elementRightClick(e, elements, tileSize, state) {\r\n\tconst left = -state.left - state.deltaLeft + e.pageX - e.target.offsetLeft;\r\n\tconst top = -state.top - state.deltaTop + e.pageY - e.target.offsetTop;\r\n\r\n\tconst clickedElement = collideElement(e, elements, left, top, tileSize, state.zoom);\r\n\tif(clickedElement !== null) {\r\n\t\treturn clickedElement;\r\n\t}\r\n\r\n\treturn {\r\n\t\tid: null,\r\n\t\telement: null,\r\n\t\toriginalEvent: e,\r\n\t};\r\n}\r\n","import collideElement from '../collisions/collideElement';\r\n\r\nconst LEFT_BUTTON = 1;\r\nlet selectedObject = null;\r\nlet unselectTimeoutId = 0;\r\n\r\nexport default function mouseMove(event, elements, tileSize, props, setProps, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover) {\r\n\tconst newProps = {\r\n\t\t...props,\r\n\t};\r\n\r\n\tconst left = -props.left - props.deltaLeft + event.pageX - event.target.offsetLeft;\r\n\tconst top = -props.top - props.deltaTop + event.pageY - event.target.offsetTop;\r\n\r\n\tif(event.nativeEvent.buttons === LEFT_BUTTON && !!props.prevX) {\r\n\t\tlet moved = false;\r\n\t\tif(dragObjects) {\r\n\t\t\tif(selectedObject === null) {\r\n\t\t\t\tselectedObject = collideElement(event, elements, left, top, tileSize, props.zoom);\r\n\t\t\t}\r\n\r\n\t\t\tif(selectedObject !== null && selectedObject.element.draggable) {\r\n\t\t\t\tselectedObject.element.x = (-props.left - props.deltaLeft) + (event.clientX - props.boundingClientRect.left) - selectedObject.element.width / 2;\r\n\t\t\t\tselectedObject.element.y = (-props.top - props.deltaLeft) + (event.clientY - props.boundingClientRect.top) - selectedObject.element.height / 2;\r\n\r\n\t\t\t\tmoved = true;\r\n\r\n\t\t\t\tif(onElementMoved) {\r\n\t\t\t\t\tonElementMoved(\r\n\t\t\t\t\t\tselectedObject,\r\n\t\t\t\t\t\t(event.screenX - props.prevX),\r\n\t\t\t\t\t\t(event.screenY - props.prevY),\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(onHover) {\r\n\t\t\t\t\tonHover(null);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!moved) {\r\n\t\t\t// Lock Axis\r\n\t\t\tif(!lockXAxis) {\r\n\t\t\t\tnewProps.left += (event.screenX - props.prevX);\r\n\t\t\t}\r\n\r\n\t\t\tif(!lockYAxis) {\r\n\t\t\t\tnewProps.top += (event.screenY - props.prevY);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(event.nativeEvent.pointerType !== 'mouse') {\r\n\t\t\tunselectTimeoutId = setTimeout(() => {\r\n\t\t\t\tconsole.log('unselect');\r\n\t\t\t\tselectedObject = null;\r\n\t\t\t\tsetProps({\r\n\t\t\t\t\t...newProps,\r\n\t\t\t\t\tprevX: null,\r\n\t\t\t\t\tprevY: null,\r\n\t\t\t\t});\t\t\t\t\r\n\t\t\t}, 300);\r\n\t\t}\r\n\t} else {\r\n\t\tif(onHover) {\r\n\t\t\tonHover(collideElement(event, elements, left, top, tileSize, props.zoom));\r\n\t\t}\r\n\r\n\t\tselectedObject = null;\r\n\t}\r\n\r\n\tsetProps({\r\n\t\t...newProps,\r\n\t\tprevX: event.screenX,\r\n\t\tprevY: event.screenY,\r\n\t});\r\n}\r\n","export default function mouseWheel(event, props, setProps, minZoom, maxZoom) {\n\tlet zoom = props.zoom;\n\tif(event.deltaY < 0) {\n\t\tzoom += 0.05;\n\t} else {\n\t\tzoom -= 0.05;\n\t}\n\n\tzoom = Math.max(zoom, minZoom);\n\tzoom = Math.min(zoom, maxZoom);\n\n\t/** TODO: zoom on mouse **/\n\n\tsetProps({\n\t\t...props,\n\t\tzoom,\n\t});\n}\n","export default function sortElements(elements) {\n\telements.sort((a, b) => {\n\t\tif(a.zIndex !== b.zIndex) {\n\t\t\treturn a.zIndex - b.zIndex;\n\t\t}\n\n\t\tif(a.fill === b.fill) {\n\t\t\tif(a.stroke === b.stroke) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif(a.stroke < b.stroke) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn -1;\n\t\t}\n\n\t\tif(a.fill < b.fill) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn -1;\n\t});\n\n\treturn elements;\n}\n","export default class CanvasObject {\n\tconstructor(id, x, y, zIndex, draggable) {\n\t\tthis.id = id;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis['z-index'] = zIndex;\n\t\tthis.draggable = draggable;\n\t}\n\n\tset zIndex(zIndex) {\n\t\tthis['z-index'] = zIndex;\n\t}\n\n\tget zIndex() {\n\t\treturn this['z-index'] || 0;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasObject';\n\t}\n}\n","import CanvasObject from './CanvasObject';\n\nexport default class ColoredCanvasObject extends CanvasObject {\n\tconstructor(id, x, y, fill, stroke, zIndex, draggable) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.fill = fill;\n\t\tthis.stroke = stroke;\n\t}\n\n\tget constructorName() {\n\t\treturn 'ColoredCanvasObject';\n\t}\n}","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Circle extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of circle center in canvas\n\t * @param {number}\t\t\ty Top coordinate of circle center in canvas\n\t * @param {number} \t\tradius Circle radius in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, radius, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.radius = radius;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Circle';\n\t}\n}\n\n","import CanvasObject from './CanvasObject';\n\nexport default class CanvasImage extends CanvasObject {\n\t/**\n\t * Represents an Image that will be created on the canvas.\n\t * Note: a cache to prevent too much loading is implemented, you can create as much\n\t * images as you want of the same source without any performance issue.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of picture in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of picture in canvas\n\t * @param {number} \t\twidth Picture width in canvas\n\t * @param {number} \t\theight Picture height in canvas\n\t * @param {string} \tsrc \tImage source link\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, src, zIndex, draggable }) {\n\t\tsuper(id, x, y, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.src = src;\n\t}\n\n\tcrop(x, y, width, height) {\n\t\tthis.sx = sx;\n\t\tthis.sy = sx;\n\t\tthis.swidth = swidth;\n\t\tthis.sheight = sheight;\n\t}\n\n\tget constructorName() {\n\t\treturn 'CanvasImage';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Rect extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tx Left coordinate of top-left corner of rectangle in canvas\n\t * @param {number}\t\t\ty Top coordinate of top-left corner of rectangle in canvas\n\t * @param {number} \t\twidth Rectangle width in canvas\n\t * @param {number} \t\theight Rectangle height in canvas\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, x, y, width, height, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, x, y, fill, stroke, zIndex, draggable);\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Rect';\n\t}\n}\n","import ColoredCanvasObject from './ColoredCanvasObject';\n\nexport default class Polygon extends ColoredCanvasObject {\n\t/**\n\t * Represents a Rectangle that will be created on the canvas.\n\t *\n\t * @param {string|number} id \t\tIdentifier (used in click callback)\n\t * @param {number}\t\t\tpoints Array of coordinates {x, y} of the polygon points\n\t * @param {string} \tfill \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.fillStyle\n\t * @param {string} \tstroke \tDOMString, CanvasGradient or CanvsPattern representing what should be put in CanvasRenderingContext2D.strokeStyle\n\t * @param {number} \tzIndex \tStack order of the element\n\t */\n\tconstructor({ id, points, fill, stroke, zIndex, draggable }) {\n\t\tsuper(id, points[0].x, points[0].y, fill, stroke, zIndex, draggable);\n\n\t\tthis.points = points;\n\t}\n\n\tget constructorName() {\n\t\treturn 'Polygon';\n\t}\n}\n","export default function renderCircle(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.arc(\n\t\tleft + element.x * localTileSize,\n\t\ttop + element.y * localTileSize,\n\t\telement.radius * localTileSize,\n\t\t0,\n\t\t2 * Math.PI\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","window.__canvas2dWrapper__ = {};\nwindow.__canvas2dWrapper__.imgCache = {};\n\nexport default function renderImage(context, element, left, top, localTileSize) {\n\tif(!__canvas2dWrapper__.imgCache[element.src]) {\n\t\t__canvas2dWrapper__.imgCache[element.src] = new Image();\n\t\t__canvas2dWrapper__.imgCache[element.src].src = element.src;\n\t}\n\n\tif(!element.sx) {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t} else {\n\t\tcontext.drawImage(\n\t\t\t__canvas2dWrapper__.imgCache[element.src],\n\t\t\telement.sx,\n\t\t\telement.sy,\n\t\t\telement.swidth,\n\t\t\telement.sheight,\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tif(element.fill) {\n\t\tcontext.fillRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n\n\tif(element.stroke) {\n\t\tcontext.strokeRect(\n\t\t\tleft + element.x * localTileSize,\n\t\t\ttop + element.y * localTileSize,\n\t\t\telement.width * localTileSize,\n\t\t\telement.height * localTileSize,\n\t\t);\n\t}\n}\n","export default function renderRect(context, element, left, top, localTileSize) {\n\tcontext.beginPath();\n\n\tcontext.moveTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tfor(let i = 0; i < element.points.length; i++) {\n\t\tcontext.lineTo(\n\t\t\tleft + element.points[i].x * localTileSize,\n\t\t\ttop + element.points[i].y * localTileSize,\n\t\t);\n\t}\n\n\tcontext.lineTo(\n\t\tleft + element.points[0].x * localTileSize,\n\t\ttop + element.points[0].y * localTileSize,\n\t);\n\n\tif(element.fill) {\n\t\tcontext.fill();\n\t}\n\tif(element.stroke) {\n\t\tcontext.stroke();\n\t}\n}\n","import Circle from '../shapes/Circle';\nimport CanvasImage from '../shapes/CanvasImage';\nimport Rect from '../shapes/Rect';\nimport Polygon from '../shapes/Polygon';\n\nimport calcTileSize from '../functions/calcTileSize';\n\nimport renderCircle from './renderCircle';\nimport renderImage from './renderImage';\nimport renderRect from './renderRect';\nimport renderPolygon from './renderPolygon';\n\nconst renderFn = {\n\t[(new Circle({})).constructorName]: renderCircle,\n\t[(new CanvasImage({})).constructorName]: renderImage,\n\t[(new Rect({})).constructorName]: renderRect,\n\t[(new Polygon({ points: [{}] })).constructorName]: renderPolygon,\n};\n\nexport default function renderCanvas(\n\tcontext,\n\twidth,\n\theight,\n\telements,\n\ttileSize,\n\tstate,\n) {\n\tconst left = state.left + state.deltaLeft;\n\tconst top = state.top + state.deltaTop;\n\n\tlet prevFillStyle = '';\n\tlet prevStrokeStyle = '';\n\n\tconst localTileSize = calcTileSize(tileSize, state.zoom);\n\n\tcontext.clearRect(0, 0, width, height);\n\n\tfor(const element of elements) {\n\t\tif(\n\t\t\telement.fill !== prevFillStyle &&\n\t\t\ttypeof element.fill !== 'undefined'\n\t\t) {\n\t\t\tcontext.fillStyle = element.fill;\n\t\t\tprevFillStyle = element.fill;\n\t\t}\n\n\t\tif(\n\t\t\telement.stroke !== prevStrokeStyle &&\n\t\t\ttypeof element.stroke !== 'undefined'\n\t\t) {\n\t\t\tcontext.strokeStyle = element.stroke;\n\t\t\tprevStrokeStyle = element.stroke;\n\t\t}\n\n\t\tconst type = element.constructorName;\n\t\tif(renderFn[type]) {\n\t\t\trenderFn[type](context, element, left, top, localTileSize);\n\t\t} else {\n\t\t\tthrow new Error('Unsupported shape type:' + type);\n\t\t}\n\t}\n}\n","import React, { useCallback, useState } from 'react';\r\n\r\nimport './index.css';\r\n\r\nimport elementClick from './events/elementClick';\r\nimport elementRightClick from './events/elementRightClick';\r\nimport mouseMove from './events/mouseMove';\r\nimport mouseWheel from './events/mouseWheel';\r\n\r\nimport sortElements from './functions/sortElements';\r\n\r\nimport renderCanvas from './render/renderCanvas';\r\n\r\nlet prevEvent;\r\n\r\nexport default function Canvas2D({\r\n\telements,\r\n\twidth,\r\n\theight,\r\n\ttrackMouseMove = true,\r\n\tminZoom = 1,\r\n\tmaxZoom = 1,\r\n\ttileSize = 1,\r\n\tonClick,\r\n\tonRightClick,\r\n\tonHover,\r\n\tonElementMoved,\r\n\tonWheel,\r\n\tlockXAxis = false,\r\n\tlockYAxis = false,\r\n\tsmoothingQuality='medium',\r\n\tdragObjects=false,\r\n\tdeltaLeft=0,\r\n\tdeltaTop=0,\r\n\t...otherProps\r\n}) {\r\n\t// Hooks\r\n\tconst [state, setState] = useState({});\r\n\tconst canvasRef = useCallback((canvas) => {\r\n\t\tif(canvas !== null) {\r\n\t\t\tconst context = canvas.getContext('2d');\r\n\r\n\t\t\tif(smoothingQuality === false) {\r\n\t\t\t\tcontext.imageSmoothingEnabled = false;\r\n\t\t\t} else {\r\n\t\t\t\tcontext.imageSmoothingEnabled = true;\r\n\t\t\t\tcontext.imageSmoothingQuality = smoothingQuality;\r\n\t\t\t}\r\n\r\n\t\t\tsetState({\r\n\t\t\t\tboundingClientRect: canvas.getBoundingClientRect(),\r\n\t\t\t\tcanvas,\r\n\t\t\t\tcontext,\r\n\t\t\t\tleft: width/2,\r\n\t\t\t\ttop: height/2,\r\n\t\t\t\twidth,\r\n\t\t\t\theight,\r\n\t\t\t\tzoom: 1,\r\n\t\t\t});\r\n\t\t}\r\n\t}, []);\r\n\r\n\tstate.deltaTop = deltaTop;\r\n\tstate.deltaLeft = deltaLeft;\r\n\r\n\t// Check inputs\r\n\tif(typeof elements !== 'object' || !Array.isArray(elements)) {\r\n\t\tthrow new Error('Invalid elements, should be an array !');\r\n\t}\r\n\r\n\tif(typeof width !== 'number' || typeof height !== 'number') {\r\n\t\tthrow new Error('width/height should be specified and be numbers.');\r\n\t}\r\n\r\n\tif(minZoom > maxZoom) {\r\n\t\tthrow new Error('minZoom should be lower than maxZoom.');\r\n\t}\r\n\r\n\tif(typeof onClick !== 'function' && typeof onClick !== 'undefined') {\r\n\t\tthrow new Error('onClick should be a function.');\r\n\t}\r\n\r\n\t// Sort elements\r\n\tconst sortedElements = sortElements(elements);\r\n\r\n\t// Render\r\n\tlet onMouseMove = null;\r\n\tif(trackMouseMove) {\r\n\t\tonMouseMove = (e) => mouseMove(e, elements, tileSize, state, setState, lockXAxis, lockYAxis, dragObjects, onElementMoved, onHover);\r\n\t}\r\n\r\n\tlet onWheelFn = (e) => {\r\n\t\tif(onWheel) {\r\n\t\t\tonWheel(e);\r\n\t\t}\r\n\t\t\r\n\t\tif(minZoom !== maxZoom) {\r\n\t\t\tmouseWheel(e, state, setState, minZoom, maxZoom);\r\n\t\t}\r\n\t}\r\n\r\n\tlet onClickFn = null;\r\n\tif(onClick) {\r\n\t\tonClickFn = (e) => onClick(elementClick(e, elements, tileSize, state));\r\n\t}\r\n\r\n\tif(onRightClick && state.canvas) {\r\n\t\tif(prevEvent) {\r\n\t\t\tstate.canvas.removeEventListener('contextmenu', prevEvent);\r\n\t\t}\r\n\t\tprevEvent = (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tonRightClick(elementRightClick(e, elements, tileSize, state));\r\n\t\t};\r\n\t\tstate.canvas.addEventListener('contextmenu', prevEvent);\r\n\t}\r\n\r\n\t// Canvas render loop\r\n\tif(state.context) {\r\n\t\twindow.requestAnimationFrame(() => {\r\n\t\t\trenderCanvas(\r\n\t\t\t\tstate.context,\r\n\t\t\t\twidth,\r\n\t\t\t\theight,\r\n\t\t\t\tsortedElements,\r\n\t\t\t\ttileSize,\r\n\t\t\t\tstate,\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\treturn (\r\n\t\t<canvas\r\n\t\t\tref={canvasRef}\r\n\t\t\twidth={width}\r\n\t\t\theight={height}\r\n\t\t\tonPointerMove={onMouseMove}\r\n\t\t\tonWheel={onWheelFn}\r\n\t\t\tonClick={onClickFn}\r\n\t\t\tclassName=\"canvas2d-wrapper\"\r\n\t\t\t{...otherProps}\r\n\t\t/>\r\n\t);\r\n};\r\n","export default function preloadImages(images) {\r\n\tfor(const image of images) {\r\n\t\t__canvas2dWrapper__.imgCache[image] = new Image();\r\n\t\t__canvas2dWrapper__.imgCache[image].src = image;\r\n\t}\r\n}"],"names":["calcTileSize","tileSize","zoom","inCircle","element","x","y","left","top","localTileSize","distance","radius","inPoly","mouseX","mouseY","j","points","length","counter","i","iX","iY","jX","jY","slope","inRect","width","height","collideElement","e","elements","constructorName","id","originalEvent","elementClick","state","deltaLeft","pageX","target","offsetLeft","deltaTop","pageY","offsetTop","clickedElement","elementRightClick","LEFT_BUTTON","selectedObject","unselectTimeoutId","mouseMove","event","props","setProps","lockXAxis","lockYAxis","dragObjects","onElementMoved","onHover","newProps","nativeEvent","buttons","prevX","moved","draggable","clientX","boundingClientRect","clientY","screenX","screenY","prevY","pointerType","setTimeout","console","log","mouseWheel","minZoom","maxZoom","deltaY","Math","max","min","sortElements","sort","a","b","zIndex","fill","stroke","CanvasObject","ColoredCanvasObject","Circle","CanvasImage","src","crop","sx","sy","swidth","sheight","Rect","Polygon","renderCircle","context","beginPath","arc","PI","window","__canvas2dWrapper__","imgCache","renderImage","Image","drawImage","renderRect","fillRect","strokeRect","moveTo","lineTo","renderFn","renderPolygon","renderCanvas","prevFillStyle","prevStrokeStyle","clearRect","fillStyle","strokeStyle","type","Error","prevEvent","Canvas2D","trackMouseMove","onClick","onRightClick","onWheel","smoothingQuality","otherProps","useState","setState","canvasRef","useCallback","canvas","getContext","imageSmoothingEnabled","imageSmoothingQuality","getBoundingClientRect","Array","isArray","sortedElements","onMouseMove","onWheelFn","onClickFn","removeEventListener","preventDefault","addEventListener","requestAnimationFrame","preloadImages","images","image"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "canvas2d-wrapper",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.4.0",
|
4
4
|
"description": "A React Wrapper to use HTML5 canvas with mouse move and zoom abilities.",
|
5
5
|
"author": "Elanis",
|
6
6
|
"license": "MIT",
|
@@ -24,25 +24,25 @@
|
|
24
24
|
"deploy": "gh-pages -d example/build"
|
25
25
|
},
|
26
26
|
"peerDependencies": {
|
27
|
-
"react": "^17.0.0"
|
27
|
+
"react": "^17.0.0 || ^18.0.0"
|
28
28
|
},
|
29
29
|
"devDependencies": {
|
30
30
|
"babel-eslint": "^10.0.3",
|
31
31
|
"cross-env": "^7.0.2",
|
32
|
-
"eslint": "^
|
32
|
+
"eslint": "^8.12.0",
|
33
33
|
"eslint-config-standard": "^16.0.3",
|
34
34
|
"eslint-config-standard-react": "^11.0.1",
|
35
35
|
"eslint-plugin-import": "^2.18.2",
|
36
36
|
"eslint-plugin-node": "^11.0.0",
|
37
|
-
"eslint-plugin-promise": "^
|
38
|
-
"eslint-plugin-react": "^7.
|
37
|
+
"eslint-plugin-promise": "^6.0.0",
|
38
|
+
"eslint-plugin-react": "^7.29.4",
|
39
39
|
"eslint-plugin-standard": "^5.0.0",
|
40
40
|
"gh-pages": "^3.2.3",
|
41
41
|
"microbundle-crl": "^0.13.10",
|
42
42
|
"npm-run-all": "^4.1.5",
|
43
43
|
"postcss-flexbugs-fixes": "^5.0.2",
|
44
44
|
"postcss-normalize": "^10.0.1",
|
45
|
-
"postcss-preset-env": "^7.4.
|
45
|
+
"postcss-preset-env": "^7.4.3",
|
46
46
|
"react": "^17.0.2",
|
47
47
|
"react-dom": "^17.0.2",
|
48
48
|
"react-scripts": "^5.0.0"
|