UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 8.12 kB
{"version":3,"file":"croppingControls.mjs","sources":["../../extensions/cropping_controls/croppingControls.ts"],"sourcesContent":["import { Control, controlsUtils } from 'fabric';\nimport {\n changeCropHeight,\n changeCropWidth,\n changeCropX,\n changeCropY,\n ghostScalePositionHandler,\n scaleEquallyCropGenerator,\n} from './croppingHandlers';\nimport { renderCornerControl } from './renderCornerControl';\n\nconst { scaleCursorStyleHandler } = controlsUtils;\n\nconst cropActionName = () => 'crop';\n// use this function if you want to generate new controls for every instance\nexport const createImageCroppingControls = () => ({\n // scaling image\n tls: new Control({\n x: -0.5,\n y: -0.5,\n cursorStyleHandler: scaleCursorStyleHandler,\n positionHandler: ghostScalePositionHandler,\n actionHandler: scaleEquallyCropGenerator(-0.5, -0.5),\n }),\n brs: new Control({\n x: 0.5,\n y: 0.5,\n cursorStyleHandler: scaleCursorStyleHandler,\n positionHandler: ghostScalePositionHandler,\n actionHandler: scaleEquallyCropGenerator(0.5, 0.5),\n }),\n trs: new Control({\n x: 0.5,\n y: -0.5,\n cursorStyleHandler: scaleCursorStyleHandler,\n positionHandler: ghostScalePositionHandler,\n actionHandler: scaleEquallyCropGenerator(0.5, -0.5),\n }),\n bls: new Control({\n x: -0.5,\n y: 0.5,\n cursorStyleHandler: scaleCursorStyleHandler,\n positionHandler: ghostScalePositionHandler,\n actionHandler: scaleEquallyCropGenerator(-0.5, 0.5),\n }),\n // cropping image\n mlc: new Control({\n x: -0.5,\n y: 0,\n sizeX: 4,\n sizeY: 20,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: changeCropX,\n getActionName: cropActionName,\n }),\n\n mrc: new Control({\n x: 0.5,\n y: 0,\n sizeX: 4,\n sizeY: 20,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: changeCropWidth,\n getActionName: cropActionName,\n }),\n\n mbc: new Control({\n x: 0,\n y: 0.5,\n sizeX: 20,\n sizeY: 4,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: changeCropHeight,\n getActionName: cropActionName,\n }),\n\n mtc: new Control({\n x: 0,\n y: -0.5,\n sizeX: 20,\n sizeY: 4,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: changeCropY,\n getActionName: cropActionName,\n }),\n\n tlc: new Control({\n angle: 0,\n x: -0.5,\n y: -0.5,\n sizeX: 20,\n sizeY: 4,\n render: renderCornerControl,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: (...args) => {\n const cropX = changeCropX(...args);\n const cropY = changeCropY(...args);\n return cropX || cropY;\n },\n getActionName: cropActionName,\n }),\n\n trc: new Control({\n angle: 90,\n x: 0.5,\n y: -0.5,\n sizeX: 20,\n sizeY: 4,\n render: renderCornerControl,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: (...args) => {\n const width = changeCropWidth(...args);\n const cropY = changeCropY(...args);\n return width || cropY;\n },\n getActionName: cropActionName,\n }),\n\n blc: new Control({\n angle: 270,\n x: -0.5,\n y: 0.5,\n sizeX: 20,\n sizeY: 4,\n render: renderCornerControl,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: (...args) => {\n const height = changeCropHeight(...args);\n const cropX = changeCropX(...args);\n return height || cropX;\n },\n getActionName: cropActionName,\n }),\n\n brc: new Control({\n angle: 180,\n x: 0.5,\n y: 0.5,\n sizeX: 20,\n sizeY: 4,\n render: renderCornerControl,\n cursorStyleHandler: scaleCursorStyleHandler,\n actionHandler: (...args) => {\n const height = changeCropHeight(...args);\n const width = changeCropWidth(...args);\n return height || width;\n },\n getActionName: cropActionName,\n }),\n});\n"],"names":["scaleCursorStyleHandler","controlsUtils","cropActionName","createImageCroppingControls","tls","Control","x","y","cursorStyleHandler","positionHandler","ghostScalePositionHandler","actionHandler","scaleEquallyCropGenerator","brs","trs","bls","mlc","sizeX","sizeY","changeCropX","getActionName","mrc","changeCropWidth","mbc","changeCropHeight","mtc","changeCropY","tlc","angle","render","renderCornerControl","cropX","arguments","cropY","trc","width","blc","height","brc"],"mappings":"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"}