{"version":3,"file":"X_commonControls.min.mjs","sources":["../../../src/controls/X_commonControls.ts"],"sourcesContent":["//@ts-nocheck\nimport { changeWidth } from './changeWidth';\nimport { Control } from './Control';\nimport { scaleCursorStyleHandler, scalingEqually } from './scale';\nimport {\n  scaleOrSkewActionName,\n  scaleSkewCursorStyleHandler,\n  scalingYOrSkewingX,\n} from './scaleSkew';\nimport { renderCircleControl } from './controlRendering';\n\n// use this function if you want to generate new controls for every instance\nexport const createObjectDefaultControls = () => ({\n  tl: new Control({\n    x: -0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  tr: new Control({\n    x: 0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  bl: new Control({\n    x: -0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  br: new Control({\n    x: 0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  // mtr: new Control({\n  //   x: 0,\n  //   y: -0.5,\n  //   actionHandler: rotationWithSnapping,\n  //   cursorStyleHandler: rotationStyleHandler,\n  //   offsetY: -40,\n  //   withConnection: true,\n  //   actionName: 'rotate',\n  // }),\n});\n\nexport const createObjectDefaultNoRotateControls = () => ({\n  tl: new Control({\n    x: -0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  tr: new Control({\n    x: 0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  bl: new Control({\n    x: -0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  br: new Control({\n    x: 0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n});\n\nexport const createObjectImageControls = () => ({\n  tl: new Control({\n    x: -0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  tr: new Control({\n    x: 0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  bl: new Control({\n    x: -0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n\n  br: new Control({\n    x: 0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n});\nexport const createObjectFileControls = () => ({\n  tl: new Control({\n    x: -0.5,\n    y: -0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n  br: new Control({\n    x: 0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n});\nexport const createObjectArrowControls = () => ({\n  tl: new Control({\n    x: -0.5,\n    y: -0.5,\n    cursorStyle: 'crosshair',\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n  br: new Control({\n    x: 0.5,\n    y: 0.5,\n    cursorStyleHandler: scaleCursorStyleHandler,\n    actionHandler: scalingEqually,\n  }),\n});\n\nexport const createObjectConnectorControls = function (targetObject: any) {\n  function renderCustomControl(control, ctx, left, top, fabricObject) {\n    let cornerSize, cornerColor;\n\n    // if (control.targetObject.hoveringControl === control.controlName) {\n    //   cornerSize = 15;\n    //   cornerColor = 'red';\n    // } else {\n    cornerSize = 10;\n    cornerColor = 'white';\n    // }\n\n    const styleOverride1 = {\n      cornerSize: cornerSize,\n      cornerColor,\n      lineWidth: 2,\n    };\n\n    renderCircleControl.call(\n      fabricObject,\n      ctx,\n      left,\n      top,\n      styleOverride1,\n      fabricObject\n    );\n  }\n  return {\n    mtaStart: new Control({\n      x: 0,\n      y: -0.5,\n      offsetX: 0,\n      offsetY: -20,\n      render: renderCustomControl.bind(this, {\n        controlName: 'mtaStart',\n        targetObject,\n      }),\n      mouseDownHandler: (eventData, transformData) => {\n        // this.controlMousedownProcess(transformData, 0.0, -0.5);\n\n        return true;\n      },\n      name: 'mtaStart',\n    }),\n    mbaStart: new Control({\n      x: 0,\n      y: 0.5,\n      offsetX: 0,\n      offsetY: 20,\n      render: renderCustomControl.bind(this, {\n        controlName: 'mbaStart',\n        targetObject,\n      }),\n      mouseDownHandler: (eventData, transformData) => {\n        // this.controlMousedownProcess(transformData, 0.0, 0.5);\n        return true;\n      },\n      name: 'mbaStart',\n    }),\n    mlaStart: new Control({\n      x: -0.5,\n      y: 0,\n      offsetX: -20,\n      offsetY: 0,\n      render: renderCustomControl.bind(this, {\n        controlName: 'mlaStart',\n        targetObject,\n      }),\n      mouseDownHandler: (eventData, transformData) => {\n        // this.controlMousedownProcess(transformData, -0.5, 0.0);\n        return true;\n      },\n      name: 'mlaStart',\n    }),\n    mraStart: new Control({\n      x: 0.5,\n      y: 0,\n      offsetX: 20,\n      offsetY: 0,\n      render: renderCustomControl.bind(this, {\n        controlName: 'mraStart',\n        targetObject,\n      }),\n      mouseDownHandler: (eventData, transformData) => {\n        // this.controlMousedownProcess(transformData, 0.5, 0.0);\n        return true;\n      },\n      name: 'mraStart',\n    }),\n  };\n};\n\nexport const createResizeControls = () => ({\n  mr: new Control({\n    x: 0.5,\n    y: 0,\n    offsetX: 20,\n    offsetY: 0,\n    actionHandler: changeWidth,\n    cursorStyleHandler: scaleSkewCursorStyleHandler,\n    actionName: 'resizing',\n  }),\n  ml: new Control({\n    x: -0.5,\n    y: 0,\n    offsetX: -20,\n    offsetY: 0,\n    actionHandler: changeWidth,\n    cursorStyleHandler: scaleSkewCursorStyleHandler,\n    actionName: 'resizing',\n  }),\n  mb: new Control({\n    x: 0,\n    y: 0.5,\n    offsetX: 0,\n    offsetY: 20,\n    cursorStyleHandler: scaleSkewCursorStyleHandler,\n    actionHandler: scalingYOrSkewingX,\n    getActionName: scaleOrSkewActionName,\n  }),\n\n  mt: new Control({\n    x: 0,\n    y: -0.5,\n    offsetX: 0,\n    offsetY: -20,\n    cursorStyleHandler: scaleSkewCursorStyleHandler,\n    actionHandler: scalingYOrSkewingX,\n    getActionName: scaleOrSkewActionName,\n  }),\n});\n\nexport const createResizeControlsForText = () => ({\n  mr: new Control({\n    x: 0.5,\n    y: 0,\n    actionHandler: changeWidth,\n    cursorStyleHandler: scaleSkewCursorStyleHandler,\n    actionName: 'resizing',\n  }),\n  ml: new Control({\n    x: -0.5,\n    y: 0,\n    actionHandler: changeWidth,\n    cursorStyleHandler: scaleSkewCursorStyleHandler,\n    actionName: 'resizing',\n  }),\n});\n\nexport const createTextboxDefaultControls = () => ({\n  //...createObjectDefaultControls(),\n  ...createResizeControlsForText(),\n});\nexport const createRectNotesDefaultControls = (targetObject: any) => ({\n  ...createObjectDefaultNoRotateControls(),\n  ...createObjectConnectorControls(targetObject),\n});\nexport const createShapeNotesDefaultControls = (targetObject: any) => ({\n  ...createObjectDefaultNoRotateControls(),\n  // ...createResizeControls(),\n  ...createObjectConnectorControls(targetObject),\n});\nexport const createPathDefaultControls = () => ({\n  ...createObjectDefaultNoRotateControls(),\n});\nexport const createImageDefaultControls = () => ({\n  ...createObjectImageControls(),\n});\nexport const createFileDefaultControls = () => ({\n  ...createObjectFileControls(),\n});\n"],"names":["createObjectDefaultNoRotateControls","tl","Control","x","y","cursorStyleHandler","scaleCursorStyleHandler","actionHandler","scalingEqually","tr","bl","br","createObjectConnectorControls","targetObject","renderCustomControl","control","ctx","left","top","fabricObject","cornerSize","cornerColor","styleOverride1","lineWidth","renderCircleControl","call","mtaStart","offsetX","offsetY","render","bind","this","controlName","mouseDownHandler","eventData","transformData","name","mbaStart","mlaStart","mraStart","createResizeControlsForText","mr","changeWidth","scaleSkewCursorStyleHandler","actionName","ml","createTextboxDefaultControls","_objectSpread","createRectNotesDefaultControls","createShapeNotesDefaultControls"],"mappings":"kYAoDaA,MAAAA,EAAsCA,KAAO,CACxDC,GAAI,IAAIC,EAAQ,CACdC,GAAI,GACJC,GAAI,GACJC,mBAAoBC,EACpBC,cAAeC,IAGjBC,GAAI,IAAIP,EAAQ,CACdC,EAAG,GACHC,GAAI,GACJC,mBAAoBC,EACpBC,cAAeC,IAGjBE,GAAI,IAAIR,EAAQ,CACdC,GAAI,GACJC,EAAG,GACHC,mBAAoBC,EACpBC,cAAeC,IAGjBG,GAAI,IAAIT,EAAQ,CACdC,EAAG,GACHC,EAAG,GACHC,mBAAoBC,EACpBC,cAAeC,MA+DNI,EAAgC,SAAUC,GACrD,SAASC,EAAoBC,EAASC,EAAKC,EAAMC,EAAKC,GACpD,IAAIC,EAAYC,EAMhBD,EAAa,GACbC,EAAc,QAGd,MAAMC,EAAiB,CACrBF,WALW,GAMXC,YALY,QAMZE,UAAW,GAGbC,EAAoBC,KAClBN,EACAH,EACAC,EACAC,EACAI,EACAH,EAEJ,CACA,MAAO,CACLO,SAAU,IAAIxB,EAAQ,CACpBC,EAAG,EACHC,GAAI,GACJuB,QAAS,EACTC,SAAU,GACVC,OAAQf,EAAoBgB,KAAKC,KAAM,CACrCC,YAAa,WACbnB,iBAEFoB,iBAAkBA,CAACC,EAAWC,KAGrB,EAETC,KAAM,aAERC,SAAU,IAAInC,EAAQ,CACpBC,EAAG,EACHC,EAAG,GACHuB,QAAS,EACTC,QAAS,GACTC,OAAQf,EAAoBgB,KAAKC,KAAM,CACrCC,YAAa,WACbnB,iBAEFoB,iBAAkBA,CAACC,EAAWC,KAErB,EAETC,KAAM,aAERE,SAAU,IAAIpC,EAAQ,CACpBC,GAAI,GACJC,EAAG,EACHuB,SAAU,GACVC,QAAS,EACTC,OAAQf,EAAoBgB,KAAKC,KAAM,CACrCC,YAAa,WACbnB,iBAEFoB,iBAAkBA,CAACC,EAAWC,KAErB,EAETC,KAAM,aAERG,SAAU,IAAIrC,EAAQ,CACpBC,EAAG,GACHC,EAAG,EACHuB,QAAS,GACTC,QAAS,EACTC,OAAQf,EAAoBgB,KAAKC,KAAM,CACrCC,YAAa,WACbnB,iBAEFoB,iBAAkBA,CAACC,EAAWC,KAErB,EAETC,KAAM,aAGZ,EA0CaI,EAA8BA,KAAO,CAChDC,GAAI,IAAIvC,EAAQ,CACdC,EAAG,GACHC,EAAG,EACHG,cAAemC,EACfrC,mBAAoBsC,EACpBC,WAAY,aAEdC,GAAI,IAAI3C,EAAQ,CACdC,GAAI,GACJC,EAAG,EACHG,cAAemC,EACfrC,mBAAoBsC,EACpBC,WAAY,eAIHE,EAA+BA,IAAAC,EAEvCP,CAAAA,EAAAA,KAEQQ,EAAkCnC,GAAiBkC,EAAAA,EAC3D/C,CAAAA,EAAAA,KACAY,EAA8BC,IAEtBoC,EAAmCpC,GAAiBkC,EAAAA,EAC5D/C,CAAAA,EAAAA,KAEAY,EAA8BC"}