{"version":3,"file":"useLinkTo.js","names":[],"sources":["esm/link/useLinkTo.js"],"sourcesContent":["import { appendBaseUrl } from \"../fork/getPathFromState-mods\";\nimport { stripGroupSegmentsFromPath } from \"../router/matchers\";\nimport { useOneRouter } from \"../router/router\";\n\nfunction eventShouldPreventDefault(e) {\n\tif (e?.defaultPrevented) return false;\n\tif (\"button\" in e && !e.metaKey && !e.altKey && !e.ctrlKey && !e.shiftKey && (e.button == null || e.button === 0) && [\n\t\tvoid 0,\n\t\tnull,\n\t\t\"\",\n\t\t\"self\"\n\t].includes(e.currentTarget.target)) return true;\n\treturn false;\n}\nfunction useLinkTo(props) {\n\tconst { linkTo } = useOneRouter();\n\tconst onPress = (e) => {\n\t\tconst event = props.replace ? \"REPLACE\" : \"PUSH\";\n\t\tlet shouldHandle = false;\n\t\tif (!e) shouldHandle = e ? !e.defaultPrevented : true;\n\t\telse if (eventShouldPreventDefault(e)) {\n\t\t\te.preventDefault();\n\t\t\tshouldHandle = true;\n\t\t}\n\t\tif (shouldHandle) {\n\t\t\tconst options = props.mask ? { mask: { href: props.mask } } : void 0;\n\t\t\tlinkTo(props.href, event, options);\n\t\t}\n\t};\n\treturn {\n\t\thref: appendBaseUrl(stripGroupSegmentsFromPath(props.mask || props.href) || \"/\"),\n\t\trole: \"link\",\n\t\tonPress\n\t};\n}\n\nexport { useLinkTo };"],"mappings":";;;;;AAIA,SAAS,0BAA0B,GAAG;CACrC,IAAI,GAAG,kBAAkB,OAAO;CAChC,IAAI,YAAY,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,UAAU,QAAQ,EAAE,WAAW,MAAM;EACpH,KAAK;EACL;EACA;EACA;CACD,CAAC,CAAC,SAAS,EAAE,cAAc,MAAM,GAAG,OAAO;CAC3C,OAAO;AACR;AACA,SAAS,UAAU,OAAO;CACzB,MAAM,EAAE,WAAW,aAAa;CAChC,MAAM,WAAW,MAAM;EACtB,MAAM,QAAQ,MAAM,UAAU,YAAY;EAC1C,IAAI,eAAe;EACnB,IAAI,CAAC,GAAG,eAAe,IAAI,CAAC,EAAE,mBAAmB;OAC5C,IAAI,0BAA0B,CAAC,GAAG;GACtC,EAAE,eAAe;GACjB,eAAe;EAChB;EACA,IAAI,cAAc;GACjB,MAAM,UAAU,MAAM,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,KAAK,EAAE,IAAI,KAAK;GACnE,OAAO,MAAM,MAAM,OAAO,OAAO;EAClC;CACD;CACA,OAAO;EACN,MAAM,cAAc,2BAA2B,MAAM,QAAQ,MAAM,IAAI,KAAK,GAAG;EAC/E,MAAM;EACN;CACD;AACD"}