{ "version": 3, "sources": [ "rect.ts" ], "names": [ "closest", "getElementRect", "parentNode", "extend", "is", "getStringOptionResult", "value", "target", "element", "getRect", "resolveRectLike", "functionArgs", "returnValue", "string", "func", "rectToXY", "rect", "x", "left", "y", "top", "xywhToTlbr", "right", "width", "bottom", "height", "tlbrToXywh", "addEdges", "edges", "delta" ], "mappings": "kBAESA,oBAASC,gBAAgBC,MAAkB,4BAC7CC,MAAY,0BACZC,MAAQ,sBAER,SAASC,sBAAuBC,EAAYC,EAAoBC,GACrE,MAAc,WAAVF,EAA6BJ,EAAWM,GAE9B,SAAVF,EAA2BC,EAAOE,QAAQD,GAEvCR,EAAQQ,EAASF,UAGnB,SAASI,gBACdJ,EACAC,EACAC,EACAG,GAEA,IAAIC,EAAmBN,EAYvB,OAXIF,EAAGS,OAAOD,GACZA,EAAcP,sBAAsBO,EAAaL,EAAQC,GAElDJ,EAAGU,KAAKF,KACfA,EAAcA,KAAeD,IAG3BP,EAAGI,QAAQI,KACbA,EAAcX,EAAeW,IAGxBA,SAGF,SAASG,SAAUC,GACxB,OAAQA,GAAQ,CACdC,EAAG,MAAOD,EAAOA,EAAKC,EAAID,EAAKE,KAC/BC,EAAG,MAAOH,EAAOA,EAAKG,EAAIH,EAAKI,YAI5B,SAASC,WAA6CL,GAU3D,OATIA,GAAU,SAAUA,GAAQ,QAASA,KACvCA,EAAOb,EAAO,GAAIa,IAEbE,KAASF,EAAKC,GAAK,EACxBD,EAAKI,IAASJ,EAAKG,GAAK,EACxBH,EAAKM,MAASN,EAAKM,OAAYN,EAAKE,KAAOF,EAAKO,MAChDP,EAAKQ,OAASR,EAAKQ,QAAYR,EAAKI,IAAMJ,EAAKS,QAG1CT,SAGF,SAASU,WAAYV,GAU1B,OATIA,GAAU,MAAOA,GAAQ,MAAOA,KAClCA,EAAOb,EAAO,GAAIa,IAEbC,EAASD,EAAKE,MAAQ,EAC3BF,EAAKG,EAASH,EAAKI,KAAQ,EAC3BJ,EAAKO,MAASP,EAAKO,QAAYP,EAAKM,OAAS,GAAMN,EAAKC,EACxDD,EAAKS,OAAST,EAAKS,SAAYT,EAAKQ,QAAU,GAAKR,EAAKG,GAGnDH,SAGF,SAASW,SAAUC,EAAoBZ,EAAYa,GACpDD,EAAMV,OAAUF,EAAKE,MAAUW,EAAMZ,GACrCW,EAAMN,QAAUN,EAAKM,OAAUO,EAAMZ,GACrCW,EAAMR,MAAUJ,EAAKI,KAAUS,EAAMV,GACrCS,EAAMJ,SAAUR,EAAKQ,QAAUK,EAAMV,GAEzCH,EAAKO,MAAQP,EAAKM,MAAQN,EAAKE,KAC/BF,EAAKS,OAAST,EAAKQ,OAASR,EAAKI", "sourcesContent": [ "import { HasGetRect, RectResolvable, Rect, Element, Point, FullRect, EdgeOptions } from '../types'\n\nimport { closest, getElementRect, parentNode } from './domUtils'\nimport extend from './extend'\nimport is from './is'\n\nexport function getStringOptionResult (value: any, target: HasGetRect, element: Node) {\n if (value === 'parent') { return parentNode(element) }\n\n if (value === 'self') { return target.getRect(element as Element) }\n\n return closest(element, value)\n}\n\nexport function resolveRectLike (\n value: RectResolvable,\n target?: HasGetRect,\n element?: Node,\n functionArgs?: T,\n) {\n let returnValue: any = value\n if (is.string(returnValue)) {\n returnValue = getStringOptionResult(returnValue, target, element)\n }\n else if (is.func(returnValue)) {\n returnValue = returnValue(...functionArgs)\n }\n\n if (is.element(returnValue)) {\n returnValue = getElementRect(returnValue)\n }\n\n return returnValue as Rect\n}\n\nexport function rectToXY (rect: Rect | Point) {\n return rect && {\n x: 'x' in rect ? rect.x : rect.left,\n y: 'y' in rect ? rect.y : rect.top,\n }\n}\n\nexport function xywhToTlbr> (rect: T) {\n if (rect && !('left' in rect && 'top' in rect)) {\n rect = extend({}, rect)\n\n rect.left = rect.x || 0\n rect.top = rect.y || 0\n rect.right = rect.right || (rect.left + rect.width)\n rect.bottom = rect.bottom || (rect.top + rect.height)\n }\n\n return rect as Rect & T\n}\n\nexport function tlbrToXywh (rect: Rect & Partial) {\n if (rect && !('x' in rect && 'y' in rect)) {\n rect = extend({}, rect)\n\n rect.x = rect.left || 0\n rect.y = rect.top || 0\n rect.width = rect.width || ((rect.right || 0) - rect.x)\n rect.height = rect.height || ((rect.bottom || 0) - rect.y)\n }\n\n return rect as FullRect & Point\n}\n\nexport function addEdges (edges: EdgeOptions, rect: Rect, delta: Point) {\n if (edges.left) { rect.left += delta.x }\n if (edges.right) { rect.right += delta.x }\n if (edges.top) { rect.top += delta.y }\n if (edges.bottom) { rect.bottom += delta.y }\n\n rect.width = rect.right - rect.left\n rect.height = rect.bottom - rect.top\n}\n" ] }