(function($) {
$.fn.annotatorPNG = function(options) {
var settings = $.extend({
heightCanvas: "600px",
widthCanvas: "800px",
}, options);
var flagToolbox = "annotator-png-toolbox";
var flagContainer = "annotator-png-container";
var flagContainerAnnotation = "annotator-png-container-annotation";
var flagUploadImage = "annotator-png-upload-image";
var flagAddArrow = "annotator-png-add-arrow";
var flagAddTextbox = "annotator-png-add-textbox";
var flagAddSymbol = "annotator-png-add-symbol";
var flagColourPicker = "annotator-png-colour-picker";
var flagEraseMode = "annotator-png-erase-mode";
var flagSaveImage = "annotator-png-save-image";
var flagCanvasAnnotation = "annotator-png-canvas-annotation";
var keyFabric = "fabric";
var keyIsEraseMode = "isEraseMode";
function getCanvas() {
let $annotatorPNG = $(document).find("." + flagAnnotatorPNG);
let $canvasAnnotation = $annotatorPNG.find("canvas." + flagCanvasAnnotation);
let canvas = $canvasAnnotation.data(keyFabric);
console.log("canvas: ", canvas);
return canvas;
}
function deleteSelectedObjects() {
let canvas = getCanvas();
const activeObject = canvas.getActiveObject();
if (activeObject) {
console.log("active object type:", activeObject.type);
if (activeObject.type === 'activeSelection') {
// If it's a multi-selection, remove all selected objects
activeObject.forEachObject(function(obj) {
canvas.remove(obj);
});
canvas.discardActiveObject();
} else {
// If it's a single object, just remove it
canvas.remove(activeObject);
}
canvas.requestRenderAll();
}
}
return this.each(function() {
var $annotatorPNG = $(this);
$annotatorPNG.data(keyIsEraseMode, false);
const symbols = ['Orange Arrow.png'];
// Make elements
var $toolbox = $('
');
var $inputUploadImage = $('');
$toolbox.append($inputUploadImage);
var $buttonAddArrow = $('');
$toolbox.append($buttonAddArrow);
var $buttonAddTextbox = $('');
$toolbox.append($buttonAddTextbox);
var $selectAddSymbol = $('');
$selectAddSymbol.append($("