{ "version": 3, "sources": [ "edges.ts" ], "names": [ "clone", "extend", "makeModifier", "snapSize", "snapEdges", "start", "arg", "edges", "state", "targetFields", "left", "top", "set", "defaults", "targets", "range", "offset", "x", "y" ], "mappings": "OA6BOA,MAAW,mCACXC,MAAY,oDAEVC,MAAiD,qCAGjDC,MAAgB,iBAgBzB,MAAMC,EAAyD,CAC7DC,MAbcC,GACd,MAAMC,MAAEA,GAAUD,EAElB,OAAKC,GAELD,EAAIE,MAAMC,aAAeH,EAAIE,MAAMC,cAAgB,CACjD,CAACF,EAAMG,KAAO,OAAS,QAASH,EAAMI,IAAM,MAAQ,WAG/CR,EAASE,MAAMC,IAND,MAWrBM,IAAKT,EAASS,IACdC,SAAUZ,EACRD,EAAMG,EAASU,UACf,CACEC,QAAS,KACTC,MAAO,KACPC,OAAQ,CAAEC,EAAG,EAAGC,EAAG,qBAKVhB,EAAaE,EAAW,oBAC9BA", "sourcesContent": [ "/**\n * @module modifiers/snapEdges\n *\n * @description\n * WOW> This module allows snapping of the edges of targets during resize\n * interactions.\n *\n * ```js\n * interact(target).resizable({\n * snapEdges: {\n * targets: [interact.snappers.grid({ x: 100, y: 50 })],\n * },\n * })\n *\n * interact(target).resizable({\n * snapEdges: {\n * targets: [\n * interact.snappers.grid({\n * top: 50,\n * left: 50,\n * bottom: 100,\n * right: 100,\n * }),\n * ],\n * },\n * })\n * ```\n */\n\nimport clone from '@interactjs/utils/clone'\nimport extend from '@interactjs/utils/extend'\n\nimport { makeModifier, ModifierArg, ModifierModule } from '../base'\n\nimport { SnapOptions, SnapState } from './pointer'\nimport { snapSize } from './size'\n\nexport type SnapEdgesOptions = Pick\n\nfunction start (arg: ModifierArg) {\n const { edges } = arg\n\n if (!edges) { return null }\n\n arg.state.targetFields = arg.state.targetFields || [\n [edges.left ? 'left' : 'right', edges.top ? 'top' : 'bottom'],\n ]\n\n return snapSize.start(arg)\n}\n\nconst snapEdges: ModifierModule = {\n start,\n set: snapSize.set,\n defaults: extend(\n clone(snapSize.defaults),\n {\n targets: null,\n range: null,\n offset: { x: 0, y: 0 },\n } as const,\n ),\n}\n\nexport default makeModifier(snapEdges, 'snapEdges')\nexport { snapEdges }\n" ] }