{"version":3,"file":"basic.mjs","names":[],"sources":["../../../extensions/aligning_guidelines/util/basic.ts"],"sourcesContent":["import type { FabricObject, Point } from 'fabric';\nimport type { PointMap } from '../typedefs';\n\nexport function getDistance(a: number, b: number) {\n  return Math.abs(a - b);\n}\n\nexport function getDistanceList(point: Point, list: Point[], type: 'x' | 'y') {\n  let dis = Infinity;\n  let arr: Point[] = [];\n  for (const item of list) {\n    const v = getDistance(point[type], item[type]);\n    if (dis > v) {\n      arr = [];\n      dis = v;\n    }\n    if (dis == v) {\n      arr.push(item);\n    }\n  }\n  return { dis, arr };\n}\n\nexport function getPointMap(target: FabricObject): PointMap {\n  const coords = target.getCoords();\n  return {\n    tl: coords[0],\n    tr: coords[1],\n    br: coords[2],\n    bl: coords[3],\n    mt: coords[0].add(coords[1]).scalarDivide(2),\n    mr: coords[1].add(coords[2]).scalarDivide(2),\n    mb: coords[2].add(coords[3]).scalarDivide(2),\n    ml: coords[3].add(coords[0]).scalarDivide(2),\n  };\n}\n\nexport function getContraryMap(target: FabricObject): PointMap {\n  const aCoords = target.aCoords ?? target.calcACoords();\n  return {\n    tl: aCoords.br,\n    tr: aCoords.bl,\n    br: aCoords.tl,\n    bl: aCoords.tr,\n    mt: aCoords.br.add(aCoords.bl).scalarDivide(2),\n    mr: aCoords.bl.add(aCoords.tl).scalarDivide(2),\n    mb: aCoords.tl.add(aCoords.tr).scalarDivide(2),\n    ml: aCoords.tr.add(aCoords.br).scalarDivide(2),\n  };\n}\n"],"mappings":";AAGA,SAAgB,YAAY,GAAW,GAAW;AAChD,QAAO,KAAK,IAAI,IAAI,EAAE;;AAGxB,SAAgB,gBAAgB,OAAc,MAAe,MAAiB;CAC5E,IAAI,MAAM;CACV,IAAI,MAAe,EAAE;AACrB,MAAK,MAAM,QAAQ,MAAM;EACvB,MAAM,IAAI,YAAY,MAAM,OAAO,KAAK,MAAM;AAC9C,MAAI,MAAM,GAAG;AACX,SAAM,EAAE;AACR,SAAM;;AAER,MAAI,OAAO,EACT,KAAI,KAAK,KAAK;;AAGlB,QAAO;EAAE;EAAK;EAAK;;AAGrB,SAAgB,YAAY,QAAgC;CAC1D,MAAM,SAAS,OAAO,WAAW;AACjC,QAAO;EACL,IAAI,OAAO;EACX,IAAI,OAAO;EACX,IAAI,OAAO;EACX,IAAI,OAAO;EACX,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,aAAa,EAAE;EAC5C,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,aAAa,EAAE;EAC5C,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,aAAa,EAAE;EAC5C,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,aAAa,EAAE;EAC7C;;AAGH,SAAgB,eAAe,QAAgC;;CAC7D,MAAM,WAAA,kBAAU,OAAO,aAAA,QAAA,oBAAA,KAAA,IAAA,kBAAW,OAAO,aAAa;AACtD,QAAO;EACL,IAAI,QAAQ;EACZ,IAAI,QAAQ;EACZ,IAAI,QAAQ;EACZ,IAAI,QAAQ;EACZ,IAAI,QAAQ,GAAG,IAAI,QAAQ,GAAG,CAAC,aAAa,EAAE;EAC9C,IAAI,QAAQ,GAAG,IAAI,QAAQ,GAAG,CAAC,aAAa,EAAE;EAC9C,IAAI,QAAQ,GAAG,IAAI,QAAQ,GAAG,CAAC,aAAa,EAAE;EAC9C,IAAI,QAAQ,GAAG,IAAI,QAAQ,GAAG,CAAC,aAAa,EAAE;EAC/C"}