{
  "version": 3,
  "sources": ["../src/link.tsx"],
  "sourcesContent": ["import { useContext, useMemo } from '@wordpress/element';\nimport { getQueryArgs, getPath, buildQueryString } from '@wordpress/url';\nimport { ConfigContext, type NavigationOptions, useHistory } from './router';\n\nexport function useLink( to: string, options: NavigationOptions = {} ) {\n\tconst history = useHistory();\n\tconst { pathArg, beforeNavigate } = useContext( ConfigContext );\n\tfunction onClick( event: React.SyntheticEvent< HTMLAnchorElement > ) {\n\t\tevent?.preventDefault();\n\t\thistory.navigate( to, options );\n\t}\n\tconst query = getQueryArgs( to );\n\tconst path = getPath( 'http://domain.com/' + to ) ?? '';\n\tconst link = useMemo( () => {\n\t\treturn beforeNavigate\n\t\t\t? beforeNavigate( { path, query } )\n\t\t\t: { path, query };\n\t}, [ path, query, beforeNavigate ] );\n\n\tconst [ before ] = window.location.href.split( '?' );\n\n\treturn {\n\t\thref: `${ before }?${ buildQueryString( {\n\t\t\t[ pathArg ]: link.path,\n\t\t\t...link.query,\n\t\t} ) }`,\n\t\tonClick,\n\t};\n}\n\nexport function Link( {\n\tto,\n\toptions,\n\tchildren,\n\t...props\n}: {\n\tto: string;\n\toptions?: NavigationOptions;\n\tchildren: React.ReactNode;\n} ) {\n\tconst { href, onClick } = useLink( to, options );\n\n\treturn (\n\t\t<a href={ href } onClick={ onClick } { ...props }>\n\t\t\t{ children }\n\t\t</a>\n\t);\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AACpC,iBAAwD;AACxD,oBAAkE;AAyChE;AAvCK,SAAS,QAAS,IAAY,UAA6B,CAAC,GAAI;AACtE,QAAM,cAAU,0BAAW;AAC3B,QAAM,EAAE,SAAS,eAAe,QAAI,2BAAY,2BAAc;AAC9D,WAAS,QAAS,OAAmD;AACpE,WAAO,eAAe;AACtB,YAAQ,SAAU,IAAI,OAAQ;AAAA,EAC/B;AACA,QAAM,YAAQ,yBAAc,EAAG;AAC/B,QAAM,WAAO,oBAAS,uBAAuB,EAAG,KAAK;AACrD,QAAM,WAAO,wBAAS,MAAM;AAC3B,WAAO,iBACJ,eAAgB,EAAE,MAAM,MAAM,CAAE,IAChC,EAAE,MAAM,MAAM;AAAA,EAClB,GAAG,CAAE,MAAM,OAAO,cAAe,CAAE;AAEnC,QAAM,CAAE,MAAO,IAAI,OAAO,SAAS,KAAK,MAAO,GAAI;AAEnD,SAAO;AAAA,IACN,MAAM,GAAI,MAAO,QAAK,6BAAkB;AAAA,MACvC,CAAE,OAAQ,GAAG,KAAK;AAAA,MAClB,GAAG,KAAK;AAAA,IACT,CAAE,CAAE;AAAA,IACJ;AAAA,EACD;AACD;AAEO,SAAS,KAAM;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAII;AACH,QAAM,EAAE,MAAM,QAAQ,IAAI,QAAS,IAAI,OAAQ;AAE/C,SACC,4CAAC,OAAE,MAAc,SAAsB,GAAG,OACvC,UACH;AAEF;",
  "names": []
}
