{"version":3,"sources":["jsdelivr-header.js","/npm/@jagoodhand/reaviz@14.4.5/dist/index.js"],"names":[],"mappings":"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A,GAED,IAAK,MACL,IAAK,MACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,IAAK,KACL,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,MACL,OAAO,EACP,OAAO,IAGT,KAAM,CACL,GAAI,MACJ,GAAI,QAGN,CACC,KAAM,CACL,EACA,EACA,GAED,IAAK,KACL,IAAK,MACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,IAAK,MACL,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,KACL,IAAK,MACL,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,KACL,IAAK,QAGP,KAAM,CACL,EAAG,KACH,GAAI,QAGN,CACC,KAAM,CACL,EACA,EACA,GAED,IAAK,KACL,GAAI,MACJ,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,IAAK,IACL,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,GAAI,MACJ,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,EACL,GAAI,EACJ,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,KACL,GAAI,QAGN,KAAM,CACL,GAAI,MACJ,EAAG,QAGL,CACC,KAAM,CACL,EACA,EACA,GAED,GAAI,MACJ,GAAI,KACJ,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,GAAI,KACJ,OAAO,IAGT,KAAM,CACL,EAAG,MACH,EAAG,QAGL,CACC,KAAM,CACL,EACA,EACA,GAED,IAAK,IACL,GAAI,MACJ,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,GAAI,KACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,KACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,IACL,GAAI,MACJ,OAAO,IAGT,KAAM,CACL,GAAI,MACJ,EAAG,OAGL,CACC,KAAM,CACL,EACA,EACA,GAED,IAAK,MACL,IAAK,KACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,EACL,IAAK,KACL,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,KACL,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,OAGP,KAAM,CACL,GAAI,MACJ,GAAI,QAGN,CACC,KAAM,CACL,EACA,EACA,EACA,GAED,GAAI,KACJ,GAAI,MACJ,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,EACL,GAAI,EACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,GAAI,QAGN,KAAM,CACL,GAAI,KACJ,EAAG,OAGL,CACC,KAAM,CACL,EACA,EACA,EACA,GAED,GAAI,MACJ,IAAK,KACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,GAAI,KACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,IAAK,OAGP,KAAM,CACL,EAAG,MACH,EAAG,QAGL,CACC,KAAM,CACL,EACA,EACA,EACA,GAED,GAAI,KACJ,IAAK,MACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,IAAK,KACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,IAAK,MACL,OAAO,IAGT,KAAM,CACL,EAAG,MACH,GAAI,OAGN,CACC,KAAM,CACL,EACA,EACA,EACA,GAED,IAAK,EACL,IAAK,KACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,KACL,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,IAAK,MACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,EACL,IAAK,OAGP,KAAM,CACL,GAAI,MACJ,GAAI,QAGN,CACC,KAAM,CACL,EACA,EACA,EACA,GAED,IAAK,MACL,GAAI,MACJ,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,IAAK,IACL,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,IAAK,KACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,EACL,IAAK,KACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,GAAI,QAGN,KAAM,CACL,GAAI,MACJ,EAAG,OAGL,CACC,KAAM,CACL,EACA,EACA,EACA,EACA,GAED,GAAI,KACJ,IAAK,MACL,KAAM,CACL,CACC,IAAK,EACL,KAAM,IACN,GAAI,MACJ,IAAK,KACL,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,MACL,GAAI,MACJ,OAAO,EACP,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,IAAK,EACL,IAAK,KACL,OAAO,GAER,CACC,IAAK,EACL,KAAM,IACN,GAAI,KACJ,IAAK,MACL,OAAO,IAGT,KAAM,CACL,EAAG,EACH,EAAG,KAaL,GATQ,CACR,GAAI,IACJ,GAAI,EACJ,MAAO,KACP,OAAQ,QAmBT,SAAS,GAAU,GACf,MAAuB,iBAAT,EAAE,EACpB,CAyBA,SAAS,GAAU,GAEf,MAAM,EAAa,EACd,QAAQ,GAAwB,IAAlB,EAAE,KAAK,SACrB,MAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,OAEzB,EAAgB,EAAW,KAAK,GAAM,EAAE,MAExC,GA5BY,EA4BQ,EA3BnB,IAAI,MAAM,GAAK,EAAM,QACvB,OACA,KAAI,CAAC,EAAK,IAAM,EAAM,QAAO,CAAC,EAAK,IAAM,EAAK,GAAK,OAH5D,IAAsB,EA6BlB,MAEM,EAFe,EAAK,MAAM,EAAG,EAAK,QAEZ,KAAK,GAAM,IAAI,GAAG,MAAK,CAAC,EAAG,IAAM,EAAc,QAAQ,GAAK,EAAc,QAAQ,OAG9G,EAAO,MAAK,CAAC,EAAG,KAAM,SAAE,OAAS,EAAE,SA9CzB,EA+CD,EAAE,OA/CS,MAAM,KAAK,CAAE,OAAQ,IAAS,CAAC,EAAG,IAAM,KA+CzC,QAAO,CAAC,EAAM,IAAM,GAAQ,EAAc,QAAQ,EAAE,IAAM,EAAc,QAAQ,EAAE,KAAK,GA/CjG,IAAC,CA+CkG,IAE5G,MAAM,EAAY,EAAK,KAAK,IACxB,MAAM,EAAO,IAAI,EAAE,MAAM,MAAK,CAAC,EAAG,IAAM,EAAc,QAAQ,GAAK,EAAc,QAAQ,KACnF,EAAM,EAAK,KAAK,KACtB,MAAO,CACH,KAAM,EAAE,KACR,OACA,MACH,IAEL,MAAO,CACH,YAAa,EAAW,OACxB,KAAM,EAAO,KAAK,GAxC1B,SAAgB,EAAO,GACnB,MAAM,EAAM,EAAM,KAAK,KACjB,EAAQ,EAAK,MAAM,GAAM,EAAE,MAAQ,IACzC,MAAO,CACH,MACA,KAAM,EACN,MAAO,aAAqC,EAAS,EAAM,OAAS,EAE5E,CAgCgC,CAAO,EAAG,KAE1C,CA8DA,SAAS,GAAgB,EAAM,GAC3B,OA3CJ,UAAqB,KAAE,EAAI,YAAE,GAAe,GACxC,MAAM,EAAQ,GAAO,KAAK,IAAI,GAAO,OAAS,EAAG,IAC3C,EAAI,KAAK,IAAI,EAAI,MAAQ,EAAM,GAAG,MAAO,EAAI,OAAS,EAAM,GAAG,QAC/D,EAAI,GAAK,EAAM,GAAG,GAAK,EAAI,MAAQ,EAAI,EAAM,GAAG,OAAS,EAAI,EAC7D,EAAI,GAAK,EAAM,GAAG,GAAK,EAAI,OAAS,EAAI,EAAM,GAAG,QAAU,EAAI,EAC/D,EAAM,GAAM,EAAI,EAAI,EACpB,EAAM,GAAM,EAAI,EAAI,EACpB,EAAY,EAAM,KAAK,KAAI,CAAC,EAAG,IAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,GAAI,OAAO,OAAO,CAAE,KAAM,EAAK,GAAI,GAAI,EAAG,EAAE,IAAK,GAAI,EAAG,EAAE,IAAK,KAAM,CACvJ,EAAG,EAAG,EAAE,KAAK,GACb,EAAG,EAAG,EAAE,KAAK,KACX,EAAE,KACN,CACE,KAAM,CACF,EAAG,EAAG,EAAE,KAAK,GACb,EAAG,EAAG,EAAE,KAAK,KAGnB,CAAC,IAAO,GAAU,GAClB,CACE,GAAI,EAAE,GAAK,EACX,GAAI,EAAE,GAAK,GAEb,CACE,EAAG,EAAE,EAAI,MAajB,OAXsB,EAAM,cAAc,KAAI,CAAC,EAAG,KAAM,CACpD,KAAM,CACF,EAAG,EAAG,EAAE,KAAK,GACb,EAAG,EAAG,EAAE,KAAK,IAEjB,GAAI,EAAG,EAAE,IACT,GAAI,EAAG,EAAE,IACT,KAAM,EAAK,GACX,IAAK,EAAU,GACf,KAAM,EAAE,KAAK,KAAK,GAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,GAAI,CAAE,GAAI,EAAG,EAAE,IAAK,GAAI,EAAG,EAAE,YAErE,KAAK,IAAM,OAAC,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,GAAI,CAAE,MAnD7C,EAmDwE,EAnDrE,EAmDwE,EAlD9F,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAC3B,KAAK,IACN,MAAM,EAAM,EAAK,EAAI,KAIrB,MAAO,KAHI,GAAU,GAAO,EAAI,GAAK,EAAI,KAC9B,GAAU,GAAO,EAAI,GAAK,EAAI,KAC7B,GAAU,GAAO,EAAI,SAAW,KACb,EAAI,MAAQ,EAAI,KAAK,EAAI,MAAQ,EAAI,KAAK,EAAI,MAAM,EAAI,IAAI,IAE1F,KAAK,UATZ,IAA8B,EAAG,CAmDsF,GACvH,CAMW,CAAY,GAAU,GAAO,EACxC,CAEA,MAAM,GAAc,EAAG,KAAI,OAAM,QAAO,SAAQ,UAAS,YAAW,qBAAoB,OAAM,WAAU,aACpG,MAAM,EAAc,EAAM,aAAa,IACnC,MAAM,EAAa,EAAK,KAAK,IAAM,CAC/B,IAAK,EAAE,IAAI,KAAK,KAChB,KAAM,EAAE,IACR,KAAM,EAAE,SAEZ,IAAI,EAcJ,OAZI,EADS,cAAT,EACa,GAAgB,EAAY,CACrC,OAAQ,EAAe,OACvB,MAAO,EAAe,QAIb,EAAQ,OAAO,EAAY,CACpC,OAAQ,EAAe,OACvB,MAAO,EAAe,MACtB,SAAmB,UAAT,IAGV,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAQ,KAAM,EAAY,SAAU,EAAU,GAAI,EAAe,SAAM,EAAQ,GACpI,CAAC,EAAM,EAAU,EAAQ,IAC5B,OAAQ,EAAW,IAAI,GAAgB,OAAO,OAAO,CAAE,GAAI,EAAI,MAAO,EAAO,OAAQ,EAAQ,QAAS,EAAS,mBAAoB,EAAoB,cAAc,EAAO,cAAc,EAAO,QAAQ,EAAO,UAAW,GAAa,CAAE,SAAU,SAAgB,EAAQ,EAEhR,GAAY,aAAe,CACvB,KAAM,OACN,OAAQ,EAAW,IAAI,GAAY,CAAC,OAAG,IAG3C,MAAM,GAAS,EAAG,KAAI,OAAM,OAAM,OAAM,WAAU,UAAS,eAAc,eAAc,WAAU,UAAU,EAAW,IAAI,GAAc,CAAC,OAAG,OACxI,MAAO,EAAgB,GAAqB,EAAM,UAAS,GACrD,EAAY,EAAM,OAAO,MACzB,EAAa,EAAW,GAAqB,CAAE,MAAM,EAAO,MAAO,IACnE,WAAE,EAAU,YAAE,GAAgB,GAAe,CAC/C,cAAgB,IACZ,GAAkB,GAClB,SAA4D,EAAa,EAAM,EAEnF,aAAe,IACX,GAAkB,GAClB,SAA4D,EAAa,EAAM,IAGjF,EAAU,IAAa,EACvB,iBAAiB,KACjB,EACI,qBAAqB,KACrB,EACV,OAAQ,EAAW,KAAK,EAAM,SAAU,CAAE,SAAU,CAAC,EAAW,IAAI,EAAa,OAAO,OAAQ,CAAE,GAAI,GAAG,WAAa,IAAK,EAAW,KAAM,EAAS,QAAS,CAC9I,EAAG,EAAK,EACR,GAAI,EAAK,EACT,GAAI,EAAK,GACV,QAAS,CACR,EAAG,EAAK,EACR,GAAI,EAAK,EACT,GAAI,EAAK,GACV,WAAY,EAAY,QAAS,EAAS,cAAe,EAAa,aAAc,QAAc,GACzG,GAAS,EAAW,KAAK,EAAM,SAAU,CAAE,SAAU,CAAC,EAAW,IAAI,GAAM,CAAE,GAAI,QAAQ,IAAM,KAAM,iBAAiB,WAAS,GACvH,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAM,GAAI,gBAAgB,IAAM,KAAM,QAAQ,UAAY,GAC9G,GAAa,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAU,GAAI,YAAY,IAAM,MAAO,QAAQ,GACxG,IAAY,EAAQ,MAAM,UAAa,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAS,UAAW,EAAgB,UAAW,EAAW,MAAO,CAAE,EAAG,EAAK,KAAK,KAAM,EAAG,EAAK,KAAK,WAAS,UAAa,EAAQ,EAG1N,GAAc,EAAG,KAAI,OAAM,SAAQ,QAAO,EAAM,OAAO,OAAQ,WAAW,GAAI,aAAa,aAAc,eAC3G,MAAM,EAAa,EAAW,GAAqB,CAAE,MAAM,EAAO,MAAO,GACzE,IACI,EADA,GAAY,EAMhB,GAJI,IACA,EAAQ,EAAO,GACf,EAAY,EAAM,eAAe,KAEhC,EAAW,CACZ,MAAM,EAAO,EACP,GAAS,CACP,IAAK,EAAK,KAAK,IACf,aACA,WACA,MAAO,EAAK,IAEd,EAAK,KAAK,IAChB,OAAQ,EAAW,IAAI,EAAa,OAAO,KAAM,OAAO,OAAO,CAAE,QAAS,CAClE,EAAG,EAAK,EACR,EAAG,EAAK,GACT,QAAS,CACR,EAAG,EAAK,EACR,EAAG,EAAK,GACT,WAAY,EAAY,GAAI,GAAG,SAAW,MAAO,CAAE,cAAe,OAAQ,aAAY,YAAY,KAAM,EAAM,WAAY,UAAY,CAAE,SAAU,SAAS,EACtK,CACA,OAAQ,EAAW,IAAI,IAAK,OAAO,OAAO,CAAE,MAAO,CAAE,UAAW,aAAa,EAAK,QAAQ,EAAK,SAAY,CAAE,SAAU,SAAU,EAAQ,EAGvI,GAAe,EAAG,KAAI,OAAM,cAAa,WAAU,SAAQ,YAC7D,MAAM,EAAa,EAAW,GAAqB,CAAE,MAAM,EAAO,MAAO,GAoBzE,OAAO,EAAW,IAAI,EAAM,SAAU,CAAE,SAAU,EAAK,KAnBlC,CAAC,EAAM,KACxB,MAAM,EAAO,GAAS,CAClB,OACA,cACA,MAAO,EAAK,KACZ,UAEE,EAAW,EACX,EAAyB,QAAE,EAAyB,QAAE,GAAM,OAAO,IAAK,OAAO,GAC/E,QACN,OAAQ,EAAW,KAAK,EAAa,OAAO,EAAG,OAAO,OAAO,CAAE,QAAS,CAChE,MAAO,GACP,QAAS,GACV,QAAS,CACR,MAAO,EACP,QAAS,GACV,WAAY,GAAc,CAAE,SAAU,CAAC,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAQ,GAAI,GAAG,WAAa,SAAU,EAAU,KAAM,EAAM,KAAM,QAAQ,GAC5J,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAO,GAAI,GAAG,UAAY,SAAU,EAAU,KAAM,EAAM,KAAM,QAAY,MAAa,EAAK,KAAK,IAAK,UAEpF,EAAO,EAEvF,GAAa,aAAe,CACxB,YAAa,YACb,UAAU,EACV,OAAQ,EAAW,IAAI,GAAQ,CAAC,OAAG,GACnC,MAAO,EAAW,IAAI,GAAa,CAAC,OAAG,IAG3C,MAAM,GAAc,EAAG,OAAM,KAAI,QAAO,SAAQ,YAAW,qBAAoB,UAAS,aACpF,MAAM,EAAU,EAAM,aAAY,CAAC,EAAI,IACpB,EAAY,OAAO,KAAK,CAAC,EAAI,IAAK,QAAQ,EAIlD,CAHM,EAAY,UAAU,CAAE,SAAU,IAC1C,KAAK,GAAM,EAAE,OACb,MAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,QACX,UACrB,CAAC,IACE,EAAc,EAAM,aAAa,IACnC,IAAI,WAAE,EAAU,YAAE,GAAgB,EAAI,EAAO,GAAO,EAAI,CAAC,aAAc,gBACvE,MAAM,EAAU,EAAQ,EAAY,GACpC,OAAQ,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAQ,GAAI,GAAG,EAAK,YAAa,KAAM,QAAW,EAAQ,GAC/G,CAAC,EAAQ,IACZ,OAAQ,EAAW,IAAI,GAAgB,OAAO,OAAO,CAAE,GAAI,EAAI,MAAO,EAAO,OAAQ,EAAQ,mBAAoB,EAAoB,QAAS,EAAS,cAAc,EAAO,cAAc,EAAO,UAAW,GAAa,CAAE,SAAU,SAAgB,EAAQ,EAEjQ,GAAY,aAAe,CACvB,KAAM,GACN,QAAS,GACT,OAAQ,EAAW,IAAI,GAAc,CAAC,OAAG,IAG7C,MAAM,GAAe,EAAG,KAAI,OAAM,OAAM,OAAM,YAAW,WAAU,iBAC/D,MAAM,EAAM,EAAK,KAAK,IAChB,EAAQ,EAAK,GAAK,EAAK,GACvB,EAAO,EAAoB,EAAK,EAAY,GAC5C,EAAO,GAAS,CAClB,MACA,aACA,WACA,SAAU,GACV,OACA,SAAU,GACV,QACA,OAAQ,EAAK,GAAK,EAAK,KAErB,EAAwB,UAAd,EACV,GACc,WAAd,GACK,EAAQ,EAAK,OAAS,EACvB,EAAQ,EAAK,MAAQ,GAC/B,OAAQ,EAAW,IAAI,IAAK,OAAO,OAAO,CAAE,MAAO,CAAE,UAAW,aAAa,eAAwB,CAAE,SAAU,EAAW,IAAI,OAAQ,OAAO,OAAO,CAAE,GAAI,GAAG,SAAW,MAAO,CAAE,cAAe,OAAQ,aAAY,YAAY,KAAM,GAAQ,CAAE,SAAU,SAAS,UAAY,EAAQ,EAE7R,GAAa,aAAe,CACxB,KAAM,OACN,MAAM,EACN,SAAU,GACV,WAAY,aACZ,UAAW,SAGf,MAAM,GAAc,EAAG,OAAM,OAAM,WAAU,SAAQ,UAAS,eAAc,eAAc,cACtF,MAAO,EAAgB,GAAqB,EAAM,UAAS,GACrD,EAAU,EAAM,OAAO,MACvB,EAAa,EAAW,GAAqB,CAAE,MAAM,EAAO,MAAO,GACnE,EAAc,EAAiB,EAAyB,QAAE,GAAM,OAAO,IAAK,MAAQ,GACpF,WAAE,EAAU,YAAE,GAAgB,GAAe,CAC/C,cAAgB,IACZ,GAAkB,GAClB,SAA4D,EAAa,EAAO,EAAK,EAEzF,aAAe,IACX,GAAkB,GAClB,SAA4D,EAAa,EAAO,EAAK,IAGvF,EAAe,EAAM,SAAQ,KAC/B,MAAM,EAAU,GACP,EAAK,OAGH,IAAI,EAAO,EAAK,QAAS,EAAK,KAAK,KAF/B,GAIf,OAAO,EAAO,GAAM,KAAK,OAAO,GACjC,CAAC,IACJ,OAAQ,EAAW,KAAK,EAAM,SAAU,CAAE,SAAU,CAAC,EAAW,IAAI,EAAa,OAAO,KAAM,CAAE,IAAK,EAAS,QAAS,CACvG,KAAM,EACN,MAAO,EAAK,GAAK,EAAK,GACtB,OAAQ,EAAK,GAAK,EAAK,IACxB,QAAS,CACR,KAAM,EACN,MAAO,EAAK,GAAK,EAAK,GACtB,OAAQ,EAAK,GAAK,EAAK,IACxB,MAAO,CAAE,UAAU,WAAY,EAAY,QAAU,IACpD,SAAkD,EAAQ,EAAO,EAAK,EACvE,cAAe,EAAa,aAAc,QAAc,GAC/D,IAAY,EAAQ,MAAM,UAAa,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAS,UAAW,EAAgB,UAAW,EAAS,MAAO,CAAE,EAAG,EAAK,MAAO,EAAG,SAAkB,UAAa,EAAQ,EAEzN,GAAY,aAAe,CACvB,OAAQ,UACR,QAAS,EAAW,IAAI,GAAc,CAAC,OAAG,IAG9C,MAAM,GAAgB,EAAG,KAAI,OAAM,cAAa,WAAU,OAAM,YAC5D,MAAM,EAAa,EAAW,GAAqB,CAAE,MAAM,EAAO,MAAO,GAwBzE,OAAO,EAAW,IAAI,EAAM,SAAU,CAAE,SAAU,EAAK,KAAI,CAAC,EAAG,IAvB5C,EAAC,EAAM,KACtB,MAAM,EAAO,GAAS,CAClB,OACA,cACA,MAAO,EAAK,KACZ,UAEE,EAAW,EACX,EAAyB,QAAE,EAAyB,QAAE,GAAM,OAAO,IAAK,OAAO,GAC/E,QACN,OAAQ,EAAW,KAAK,EAAa,OAAO,EAAG,OAAO,OAAO,CAAE,QAAS,CAChE,MAAO,GACP,QAAS,EACT,EAAG,EAAK,GACR,EAAG,EAAK,IACT,QAAS,CACR,MAAO,EACP,QAAS,EACT,EAAG,EAAK,GACR,EAAG,EAAK,IACT,WAAY,GAAc,CAAE,SAAU,CAAC,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAM,GAAI,GAAG,KAAM,EAAK,KAAK,WAAY,SAAU,EAAU,KAAM,EAAM,KAAM,QAAQ,GACzK,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAO,GAAI,GAAG,KAAM,EAAK,KAAK,YAAa,KAAM,EAAM,KAAM,QAAY,MAAa,EAAK,KAAK,IAAK,EAEpF,CAAW,EAAG,WAAW,EAAO,EAE7G,GAAc,aAAe,CACzB,YAAa,YACb,UAAU,EACV,KAAM,EAAW,IAAI,GAAa,CAAC,OAAG,GACtC,MAAO,EAAW,IAAI,GAAc,CAAC,OAAG,IAG5C,MAAM,GAAU,EAAG,OAAM,KAAI,qBAAoB,eAAc,aAAY,eAAc,QAAO,SAAQ,YAAW,UAAS,aACxH,MAAM,EAAU,EAAM,aAAY,CAAC,EAAI,KACnC,MAAM,EAAO,EAAY,UAAU,CAAE,KAAM,IAAS,GAAM,EAAE,OACvD,KAAK,GAAM,EAAE,OACb,MAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,OAQzB,EAPI,EAAY,UACjB,KAAK,CAAC,EAAI,IACV,KAAK,EAAY,iBACjB,OAAM,GACN,aAAa,GACb,aAAa,GACb,WAAW,EACH,CAAE,GACT,EAAQ,GACR,EAAe,KACb,aAAmC,EAAS,EAAK,SAEjD,EAAM,KAAK,GAEf,IAAK,IAAI,KAAU,aAAmC,EAAS,EAAK,WAAa,GAC7E,EAAY,EAChB,EAGJ,OADA,EAAY,GACL,CAAK,GACb,CAAC,EAAM,EAAc,EAAc,IAChC,EAAc,EAAM,aAAa,IACnC,IAAI,WAAE,EAAU,YAAE,GAAgB,EAAI,EAAO,GAAO,EAAI,CAAC,aAAc,gBACvE,MAAM,EAAQ,EAAQ,EAAY,GAClC,OAAQ,EAAW,IAAI,EAAI,aAAc,OAAO,OAAO,CAAE,QAAS,GAAU,EAAM,CAAE,GAAI,GAAG,GAAM,EAAK,YAAa,KAAM,SAAU,EAAQ,GAC5I,CAAC,EAAQ,EAAS,IACrB,OAAQ,EAAW,IAAI,GAAgB,OAAO,OAAO,CAAE,GAAI,EAAI,MAAO,EAAO,OAAQ,EAAQ,mBAAoB,EAAoB,QAAS,EAAS,cAAc,EAAO,cAAc,EAAO,UAAW,GAAa,CAAE,SAAU,SAAgB,EAAQ,EAEjQ,GAAQ,aAAe,CACnB,QAAS,EACT,aAAc,EACd,aAAc,EACd,WAAY,GACZ,OAAQ,EAAW,IAAI,GAAe,CAAC,OAAG,GAC1C,KAAM,IAGV,IACI,GAAgB,mCAAhB,GAAgE,yCAAhE,GAAoH,uCAApH,GAAyK,0CAAzK,GAA+N,wCAA/N,GAA+Q,oCAA/Q,GAA8T,uCAA9T,GAAkX,yCAAlX,GAAsa,uCAAta,GAA2d,0CAA3d,GAAihB,wCAAjhB,GAAskB,yCAAtkB,GAA2nB,wCAA3nB,GAA8qB,uCAA9qB,GAA2tB,kCAC/tB,GAFiB,goGAIjB,MAAM,GAAgB,EAAG,OAAM,cAAa,gBAAe,iBAAgB,oBAAmB,iBAAgB,cAAa,eAAc,gBAAe,gBAAe,cAAa,cAAa,mBAAkB,uBAC/M,MAAM,EAAY,EAAM,aAAY,CAAC,EAAM,KACvC,MAAM,EAAO,GAAS,CAClB,OACA,cACA,MAAO,EAAK,KACZ,UAEJ,OAAQ,EAAW,IAAI,MAAO,OAAO,OAAO,CAAE,UAAW,EAA6B,QAAE,GAAgB,IAAsB,CAAE,SAAU,EAAW,IAAI,EAAa,OAAO,IAAK,CAAE,WAAY,GAAoB,UAAW,EAA6B,QAAE,GAAW,GAAe,QAAS,CAAE,MAAO,MAAQ,QAAS,CAAE,MAAO,GAAG,EAAK,SAAW,MAAO,CAAE,WAAY,SAAU,UAAY,EAAQ,GAC3Y,CAAC,EAAc,EAAmB,EAAa,IAClD,OAAQ,EAAW,IAAI,EAAW,SAAU,CAAE,SAAU,EAAK,KAAI,CAAC,EAAG,KAC7D,MAAM,EAAQ,EAAc,EAAY,EAAE,IAAK,GAAK,EAAE,IAChD,EAAa,EACb,EAAY,EAAE,SAAS,MAAO,GAC9B,EAAY,EAAE,SAAS,OAC7B,OAAQ,EAAW,KAAK,MAAO,OAAO,OAAO,CAAE,KAAM,WAAY,UAAW,EAA6B,QAAE,GAAY,EAAe,CAC9H,CAAC,IAAkB,EACnB,CAAC,IAAsC,WAAlB,EACrB,CAAC,IAAqC,UAAlB,EACpB,CAAC,IAAmC,QAAlB,EAClB,CAAC,IAAoC,SAAlB,EACnB,CAAC,IAAsC,WAAlB,EACrB,CAAC,IAAmC,QAAlB,EAClB,CAAC,IAAqC,UAAlB,EACpB,CAAC,IAAmC,QAAlB,EAClB,CAAC,IAAoC,SAAlB,IACnB,aAAc,IAAM,aAA2D,EAAS,EAAiB,GAAI,aAAc,IAAM,aAA2D,EAAS,EAAiB,GAAI,QAAS,IAAM,aAAiD,EAAS,EAAY,IAAM,CAAE,SAAU,CAAC,EAAW,IAAI,QAAS,OAAO,OAAO,CAAE,UAAW,EAA6B,QAAE,GAAa,IAAmB,CAAE,SAAU,SAAU,GAAS,EAAU,EAAG,GAAI,EAAW,IAAI,QAAS,OAAO,OAAO,CAAE,MAAO,EAAY,UAAW,EAA6B,QAAE,GAAkB,IAAmB,CAAE,SAAU,EAAW,IAAI,QAAS,CAAE,SAAU,QAAc,UAAY,MAAa,EAAE,IAAK,UACltB,EAAQ,EAEtB,GAAc,aAAe,CACzB,YAAa,YACb,cAAe,MACf,cAAe,QAGnB,MAAM,GAAU,EAAG,OAAM,KAAI,YAAW,gBAAe,QAAO,aAC1D,MAAM,EAAQ,EAAI,MAAM,GAClB,EAAa,EAAM,SAAQ,KAC7B,MAAM,EAAS,EAAQ,IAAI,GAAO,GAAM,EAAE,OACpC,EAAsB,GAAV,EAAc,CAAC,GAAK,CAAC,EAAG,GACpC,EAAa,EAAQ,cAAc,OAAO,GAAW,WAAW,CAAC,EAAG,MACpE,EAAS,EAAK,KAAK,GAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,GAAI,CAAE,KAAM,EAAW,EAAE,MAAO,SAAU,CAClG,MAAO,EAAE,KACT,QAAU,EAAK,OAAS,EAAE,KAAQ,SAQ1C,MANsB,QAAlB,EACA,EAAO,MAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,OAEV,SAAlB,GACL,EAAO,MAAK,CAAC,EAAG,IAAM,EAAE,KAAO,EAAE,OAE9B,CAAM,GACd,CAAC,EAAM,IACV,OAAQ,EAAW,IAAI,EAAa,OAAO,QAAS,OAAO,OAAO,CAAE,KAAM,OAAQ,SAAU,CACpF,QAAS,CACL,WAAY,CACR,gBAAiB,IACjB,kBAAmB,IAG3B,QAAS,CACL,WAAY,CACR,gBAAiB,IACjB,cAAe,MAGxB,GAAI,EAAO,UAAW,EAAW,MAAO,GAAS,CAAE,SAAU,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAQ,KAAM,QAAc,UAAY,EAAQ,EAEpK,GAAQ,aAAe,CACnB,KAAM,GACN,cAAe,OACf,OAAQ,EAAW,IAAI,GAAe,CAAC,OAAG,IAG9C,MAAM,GAAc,EAAG,QAAO,QAAO,QAAO,QAAO,SAAQ,YAAW,WAAU,aAAY,mBACxF,MACM,EADW,EAAM,IAAU,EACT,EAAa,EAC/B,EAAa,EACb,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,IAAqB,CAAE,MAAQ,EAAQ,EAAS,KAAS,CAC3F,MAAM,EACN,MAAO,GAEX,OAAQ,EAAW,IAAI,EAAa,OAAO,IAAK,CAAE,QAAS,CACnD,WAAY,EACZ,UACD,QAAS,CACR,WAAY,EACZ,UACD,YAAa,EAAY,UAAW,GAAa,EAAO,EAEnE,GAAY,aAAe,CACvB,WAAY,GAAQ,UAAU,GAC9B,aAAc,UACd,OAAQ,GACR,UAAU,GAGd,IACI,GAAmB,gCACvB,GAFe,6MAIf,MAAM,GAAQ,EAAG,MAAK,MAAK,YAAW,SAAQ,MAAK,QAAO,QAAO,cAC7D,MAAM,EAAQ,EAAQ,cAAc,OAAO,CAAC,EAAK,IAAM,MAAM,CAAC,EAAG,MAC3D,EAAO,EAAM,MAAM,GACzB,OAAQ,EAAW,IAAI,MAAO,OAAO,OAAO,CAAE,UAAW,EAA6B,QAAE,GAAe,GAAY,MAAO,OAAO,OAAO,CAAE,IAAK,GAAG,OAAW,IAAU,CAAE,SAAU,EAAK,KAAK,GAAW,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAQ,MAAO,EAAK,OAAQ,MAAO,EAAO,MAAO,EAAO,MAAO,GAAS,YAAa,EAAQ,EAErV,GAAM,aAAe,CACjB,IAAK,EACL,IAAK,IACL,QAAS,GACT,IAAK,GACL,MAAO,CAAC,EACR,OAAQ,EAAW,IAAI,GAAa,CAAC,OAAG,IAG5C,MAAM,GAAoB,GAAW,EAAW,IAAI,GAAkB,OAAO,OAAO,CAAC,EAAG,QAAQ,GAChG,GAAiB,aAAe,CAC5B,KAAM,KACN,KAAM,UACN,QAAS,EAAW,IAAI,GAAmB,CAAE,MAAM,QAAQ,IAG/D,MAAM,GAAc,GAAW,EAAW,IAAI,GAAiB,OAAO,OAAO,CAAC,EAAG,QAAQ,GACzF,GAAW,aAAe,CACtB,OAAQ,EAAW,IAAI,GAAkB,CAAC,OAAG,GAC7C,KAAO,EAAW,IAAI,GAAY,CAAE,KAAM,WAAY,KAAM,EAAW,IAAI,GAAqB,CAAE,MAAO,EAAG,IAAK,KAAM,KAAM,EAAW,IAAI,GAAmB,CAAC,OAAG,SAAW,SAAW,IAG7L,EAAQ,KAAO,GACf,EAAQ,UAAY,GACpB,EAAQ,WAAa,GACrB,EAAQ,mBAAqB,GAC7B,EAAQ,IAAM,GACd,EAAQ,SAAW,GACnB,EAAQ,SAAW,GACnB,EAAQ,QAAU,GAClB,EAAQ,cAAgB,GACxB,EAAQ,UAAY,GACpB,EAAQ,kBAAoB,GAC5B,EAAQ,MAAQ,GAChB,EAAQ,WAAa,GACrB,EAAQ,OAAS,GACjB,EAAQ,YAAc,GACtB,EAAQ,YAAc,GACtB,EAAQ,aAAe,GACvB,EAAQ,eAAiB,GACzB,EAAQ,gBAAkB,GAC1B,EAAQ,WAAa,GACrB,EAAQ,cAAgB,GACxB,EAAQ,eAAiB,GACzB,EAAQ,aAAe,GACvB,EAAQ,cAAgB,GACxB,EAAQ,aAAe,GACvB,EAAQ,aAAe,GACvB,EAAQ,MAAQ,GAChB,EAAQ,mBAAqB,GAC7B,EAAQ,eAAiB,GACzB,EAAQ,oBAAsB,GAC9B,EAAQ,qBAAuB,GAC/B,EAAQ,SAAW,GACnB,EAAQ,aAAe,GACvB,EAAQ,WAAa,GACrB,EAAQ,SAAW,GACnB,EAAQ,eAAiB,GACzB,EAAQ,SAAW,GACnB,EAAQ,QAAU,GAClB,EAAQ,YAAc,GACtB,EAAQ,cAAgB,GACxB,EAAQ,kBAAoB,GAC5B,EAAQ,mBAAqB,GAC7B,EAAQ,KAAO,GACf,EAAQ,UAAY,GACpB,EAAQ,WAAa,GACrB,EAAQ,WAAa,EACrB,EAAQ,eAAiB,EACzB,EAAQ,oBAAsB,EAC9B,EAAQ,mBAAqB,EAC7B,EAAQ,qBAAuB,EAC/B,EAAQ,YAAc,GACtB,EAAQ,eAAiB,GACzB,EAAQ,oBAAsB,GAC9B,EAAQ,kBAAoB,GAC5B,EAAQ,YAAc,GACtB,EAAQ,qBAAuB,EAC/B,EAAQ,oBAAsB,GAC9B,EAAQ,sBAAwB,GAChC,EAAQ,YAAc,GACtB,EAAQ,qBAAuB,GAC/B,EAAQ,oBAAsB,GAC9B,EAAQ,sBAAwB,GAChC,EAAQ,IAAM,GACd,EAAQ,UAtvKU,EAAG,OAAO,EAAG,QAAO,UAAS,KAAI,KAAI,UAAU,KAAgB,MAC7E,MAAM,EAAM,EAAM,OAAO,OAClB,EAAQ,GAAa,EAAM,UAAS,GAC3C,OAAQ,EAAW,KAAK,EAAM,SAAU,CAAE,SAAU,CAAC,EAAW,IAAI,EAAa,OAAO,OAAQ,CAAE,QAAS,CAC3F,QAAS,EACT,MAAO,KACR,QAAS,CACR,QAAS,EACT,MAAO,GACR,WAAY,CACX,MAAe,GAAR,GACR,IAAK,EAAK,UAAW,GAAc,GAAI,EAAI,GAAI,EAAI,EAAG,EAAM,aAAc,IAAM,GAAU,GAAO,aAAc,IAAM,GAAU,GAAQ,QAAS,QAAW,GAClK,GAAY,EAAW,IAAI,EAAU,QAAS,CAAE,QAAS,EAAQ,UAAW,EAAK,UAAW,GAAa,QAAS,QAAW,UAAa,EAAQ,EA2uK9J,EAAQ,mBAAqB,GAC7B,EAAQ,eAAiB,GACzB,EAAQ,SAAW,GACnB,EAAQ,KAAO,GACf,EAAQ,MAAQ,GAChB,EAAQ,YAAc,GACtB,EAAQ,WAAa,GACrB,EAAQ,KAAO,GACf,EAAQ,IAAM,GACd,EAAQ,OAAS,GACjB,EAAQ,YAAc,GACtB,EAAQ,aAAe,GACvB,EAAQ,SAAW,GACnB,EAAQ,YAAc,GACtB,EAAQ,WAAa,GACrB,EAAQ,iBAAmB,GAC3B,EAAQ,WAAa,GACrB,EAAQ,gBAAkB,GAC1B,EAAQ,iBAAmB,GAC3B,EAAQ,WAAa,GACrB,EAAQ,cAAgB,GACxB,EAAQ,kBAAoB,GAC5B,EAAQ,oBAAsB,GAC9B,EAAQ,eAAiB,GACzB,EAAQ,oBAAsB,GAC9B,EAAQ,mBAAqB,GAC7B,EAAQ,qBAAuB,GAC/B,EAAQ,UAAY,GACpB,EAAQ,eAAiB,GACzB,EAAQ,gBAAkB,GAC1B,EAAQ,YAAc,GACtB,EAAQ,eAAiB,GACzB,EAAQ,iBAAmB,GAC3B,EAAQ,oBAAsB,GAC9B,EAAQ,kBAAoB,GAC5B,EAAQ,sBAAwB,GAChC,EAAQ,eAAiB,GACzB,EAAQ,eAAiB,GACzB,EAAQ,WAAa,GACrB,EAAQ,kBAAoB,GAC5B,EAAQ,kBA9/IkB,EAAG,KAAI,QAAO,SAAQ,UAAS,YAAW,qBAAoB,cAAa,SAAQ,OAAM,WAC/G,MAAM,EAAY,EAAM,aAAY,CAAC,EAAgB,EAAO,KACxD,MAAM,EAAU,GAAW,CAAE,KAAM,EAAgB,QAAQ,IACrD,EAAU,GAAW,CAAE,KAAM,IAC7B,EAAS,EAAQ,YAClB,MAAM,CAAC,EAAG,EAAI,KAAK,KACnB,OAAO,GAEZ,MAAO,CACH,OAFW,GAAgB,EAAO,EAAO,GAGzC,SACH,GACF,IACG,EAAc,EAAM,aAAa,IACnC,MAAM,WAAE,EAAU,YAAE,EAAW,GAAE,GAAO,EAClC,EAAc,KAAK,IAAI,EAAY,GAAe,EAClD,EAAiB,GAAsB,IACvC,OAAE,EAAM,OAAE,GAAW,EAAU,EAAgB,EAAa,GAClE,OAAQ,EAAW,KAAK,EAAM,SAAU,CAAE,SAAU,CAAC,GAAS,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAM,OAAQ,EAAQ,OAAQ,EAAa,MAAO,EAAY,YAAa,QAAe,GAC5L,EAAW,IAAI,EAAI,aAAc,CAAE,QAAS,EAAQ,GAAI,EAAI,KAAM,EAAgB,OAAQ,EAAQ,OAAQ,QAAU,UAAY,EAAQ,GACjJ,CAAC,EAAM,EAAW,EAAa,EAAQ,IAC1C,OAAQ,EAAW,IAAI,GAAgB,OAAO,OAAO,CAAE,GAAI,EAAI,mBAAoB,EAAoB,MAAO,EAAO,OAAQ,EAAQ,QAAS,EAAS,cAAc,EAAO,cAAc,EAAO,QAAQ,EAAM,UAAW,GAAa,CAAE,SAAU,SAAgB,EAAQ,EA0+I/Q,EAAQ,mBAAqB,GAC7B,EAAQ,oBAAsB,GAC9B,EAAQ,WAAa,GACrB,EAAQ,OAAS,GACjB,EAAQ,YAAc,GACtB,EAAQ,WAAa,GACrB,EAAQ,WAAa,GACrB,EAAQ,YAAc,GACtB,EAAQ,aAAe,GACvB,EAAQ,cAAgB,GACxB,EAAQ,iBAAmB,GAC3B,EAAQ,WAzmJY,GAAW,EAAW,IAAI,GAAiB,OAAO,OAAO,CAAC,EAAG,EAAO,CAAE,QAAS,EAAG,UAAW,KAAM,OAAQ,EAAW,IAAI,GAAkB,CAAE,KAAM,mBAAoB,YAAa,oBAAqB,QAAS,EAAW,IAAI,GAAa,CAAE,QAAS,EAAW,IAAI,GAAc,CAAE,cAAc,EAAM,UAAW,CACxT,OAAQ,YACT,QAAS,CAAC,EAAM,IAAW,EAAW,IAAI,GAAiB,CAAE,MAAO,EAAO,MAAO,CAC7E,EAAG,EAAY,EAAK,GACpB,EAAG,GAAG,EAAY,KAAK,IAAI,EAAK,KAAK,GAAG,aACvC,SAAY,SAAW,GAAS,IAAK,CAClD,EAAW,IAAI,GAAK,CAAE,MAAO,EAAG,WAAY,KAAM,UAAW,EAAG,SAAU,EAAW,IAAI,GAAU,CAAE,MAAO,CAChG,EAAW,IAAI,GAAc,CAAE,OAAQ,KAAM,YAAa,IAAO,SACjE,EAAW,IAAI,GAAc,CAAE,OAAQ,MAAO,YAAa,GAAK,eAC/D,IAAW,SACxB,EAAW,IAAI,GAAK,CAAE,MAAO,EAAG,WAAY,KAAM,UAAW,EAAG,SAAU,EAAW,IAAI,GAAU,CAAE,MAAO,CAChG,EAAW,IAAI,GAAc,CAAE,OAAQ,KAAM,YAAa,GAAK,QAC/D,EAAW,IAAI,GAAc,CAAE,OAAQ,MAAO,YAAa,IAAO,gBACjE,IAAW,iBACvB,GAAS,MAAO,EAAW,IAAI,GAAa,CAAE,KAAM,QAAS,SAAU,KAAM,WAAY,EAAW,IAAI,GAAuB,CAAE,KAAM,KAAM,MAAO,WAAQ,SAAW,GAAS,MAAO,EAAW,IAAI,GAAa,CAAE,KAAM,WAAY,SAAU,KAAM,WAAY,EAAW,IAAI,GAAuB,CAAE,KAAM,KAAM,MAAO,WAAQ,SAAW,UAAY,GA4lJ1W,EAAQ,eAAiB,GACzB,EAAQ,iBAAmB,GAC3B,EAAQ,kBAAoB,GAC5B,EAAQ,gBAAkB,GAC1B,EAAQ,iBAAmB,GAC3B,EAAQ,2BAA6B,GACrC,EAAQ,4BAA8B,GACtC,EAAQ,0BAA4B,GACpC,EAAQ,2BAA6B,GACrC,EAAQ,yBAA2B,GACnC,EAAQ,kCAAoC,GAC5C,EAAQ,6BAA+B,GACvC,EAAQ,QAAU,GAClB,EAAQ,YAAc,GACtB,EAAQ,gBAAkB,GAC1B,EAAQ,QAAU,GAClB,EAAQ,aAAe,GACvB,EAAQ,YAAc,GACtB,EAAQ,cAAgB,GACxB,EAAQ,QAAU,GAClB,EAAQ,YAAc,GACtB,EAAQ,UAAY,GACpB,EAAQ,eAAiB,GACzB,EAAQ,WAAa,GACrB,EAAQ,KAAO,GACf,EAAQ,QAAU,GAClB,EAAQ,eAAiB,GACzB,EAAQ,yBAA2B,GACnC,EAAQ,kBAAoB,GAC5B,EAAQ,UA91QR,SAAmB,EAAQ,EAAY,GAMnC,OALe,EAAQ,YAClB,OAAO,GAAM,EAAE,IACf,OAAO,EAAO,UACd,WAAW,EAAO,MAAM,GAChB,CAAO,GACR,KAAK,IAAQ,CACrB,GAAI,EAAI,GACR,GAAI,EAAI,GACR,EAAG,EAAI,OACP,GAAI,EACJ,GAAI,EAAI,UAEhB,EAk1QA,EAAQ,gBAAkB,GAC1B,EAAQ,mBAAqB,GAC7B,EAAQ,qBAAuB,GAC/B,EAAQ,sBAAwB,GAChC,EAAQ,eAAiB,GACzB,EAAQ,eAAiB,GACzB,EAAQ,oBAAsB,EAC9B,EAAQ,oBAAsB,GAC9B,EAAQ,gBAAkB,GAC1B,EAAQ,uBAAyB,GACjC,EAAQ,OAAS,GACjB,EAAQ,YAAc,EACtB,EAAQ,cAAgB,GACxB,EAAQ,gBAAkB,GAC1B,EAAQ,SAAW,GACnB,EAAQ,WAluSY,GAAa,EAAU,KAAK,GAAM,IAAM,GAmuS5D,EAAQ,aAAe,GACvB,EAAQ,iBAAmB,EAC3B,EAAQ,cAAgB,GACxB,EAAQ,cAAgB,GACxB,EAAQ,eAAiB,GACzB,EAAQ,uBAAyB,GACjC,EAAQ,kBAAoB,GAC5B,EAAQ,0BAA4B,GACpC,EAAQ,2BAA6B,GACrC,EAAQ,YAAc,EACtB,EAAQ,aAAe,GACvB,EAAQ,mBAAqB,GAC7B,EAAQ,qBAAuB,GAC/B,EAAQ,gBAAkB,GAC1B,EAAQ,SAAW,EACnB,EAAQ,WAAa,GACrB,EAAQ,UAAY,GACpB,EAAQ,WAAa,GACrB,EAAQ,UAAY,GACpB,EAAQ,sBAjkTuB,GACvB,EAAW,QAFC,KAGL,EAA8B,QAAE,EAAW,OAJtC,KAI0D,aAAc,CAChF,MAAO,KAGR,EAA8B,QAAE,EAAW,aAAc,CAAE,MAAO,KA4jT7E,EAAQ,YAAc,GACtB,EAAQ,cAAgB,GACxB,EAAQ,4BAA8B,GACtC,EAAQ,eAAiB,GACzB,EAAQ,4BAA8B,GACtC,EAAQ,YAAc,EACtB,EAAQ,QAAU,GAClB,EAAQ,oBAAsB,GAC9B,EAAQ,SAAW,GACnB,EAAQ,SA3nRS,KACb,MAAM,EAAU,EAAM,WAAW,IACjC,QAAgB,IAAZ,EACA,MAAM,IAAI,MAAM,yDAEpB,OAAO,CAAO,EAunRlB,EAAQ,SAAW,GACnB,EAAQ,SAAW,GACnB,EAAQ,SAAW,GAEnB,OAAO,eAAe,EAAS,aAAc,CAAE,OAAO,GAEvD","file":"/npm/@jagoodhand/reaviz@14.4.5/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@jagoodhand/reaviz@14.4.5/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('rdk'), require('ellipsize'), require('d3-array'), require('calculate-size'), require('d3-scale'), require('d3-shape'), require('human-format'), require('transformation-matrix'), require('classnames'), require('memoize-bind'), require('react-cool-dimensions'), require('big-integer'), require('chroma-js'), require('reablocks'), require('memoize-one'), require('react-fast-compare'), require('framer-motion'), require('d3-interpolate'), require('d3-geo'), require('d3-sankey'), require('@upsetjs/venn.js'), require('invert-color'), require('d3-hierarchy')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', 'rdk', 'ellipsize', 'd3-array', 'calculate-size', 'd3-scale', 'd3-shape', 'human-format', 'transformation-matrix', 'classnames', 'memoize-bind', 'react-cool-dimensions', 'big-integer', 'chroma-js', 'reablocks', 'memoize-one', 'react-fast-compare', 'framer-motion', 'd3-interpolate', 'd3-geo', 'd3-sankey', '@upsetjs/venn.js', 'invert-color', 'd3-hierarchy'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.reaviz = {}, global.jsxRuntime, global.react, global.rdk, global.ellipsize, global.d3Array, global.calculateSize, global.d3Scale, global.d3Shape, global.humanFormat, global.transformationMatrix, global.classNames, global.bind, global.useDimensions, global.bigInt, global.chroma, global.reablocks, global.memoize, global.isEqual, global.framerMotion, global.d3Interpolate, global.d3Geo, global.d3Sankey, global.venn_js, global.invert, global.d3Hierarchy));\n}(this, (function (exports, jsxRuntime, react, rdk, ellipsize, d3Array, calculateSize, d3Scale, d3Shape, humanFormat, transformationMatrix, classNames, bind, useDimensions, bigInt, chroma, reablocks, memoize, isEqual, framerMotion, d3Interpolate, d3Geo, d3Sankey, venn_js, invert, d3Hierarchy) { 'use strict';\n\n  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n  var ellipsize__default = /*#__PURE__*/_interopDefaultLegacy(ellipsize);\n  var calculateSize__default = /*#__PURE__*/_interopDefaultLegacy(calculateSize);\n  var humanFormat__default = /*#__PURE__*/_interopDefaultLegacy(humanFormat);\n  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);\n  var bind__default = /*#__PURE__*/_interopDefaultLegacy(bind);\n  var useDimensions__default = /*#__PURE__*/_interopDefaultLegacy(useDimensions);\n  var bigInt__default = /*#__PURE__*/_interopDefaultLegacy(bigInt);\n  var chroma__default = /*#__PURE__*/_interopDefaultLegacy(chroma);\n  var memoize__default = /*#__PURE__*/_interopDefaultLegacy(memoize);\n  var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);\n  var invert__default = /*#__PURE__*/_interopDefaultLegacy(invert);\n\n  class LinearAxisTickLabel extends react.Component {\r\n      getAlign() {\r\n          const { align, half } = this.props;\r\n          if ((align === 'inside' || align === 'outside') && half === 'center') {\r\n              return 'center';\r\n          }\r\n          if (align === 'inside') {\r\n              return half === 'start' ? 'end' : 'start';\r\n          }\r\n          if (align === 'outside') {\r\n              return half === 'start' ? 'start' : 'end';\r\n          }\r\n          return align;\r\n      }\r\n      getTickLineSpacing() {\r\n          const { line } = this.props;\r\n          if (!line) {\r\n              return [0, 0];\r\n          }\r\n          const size = line.props.size;\r\n          const position = line.props.position;\r\n          if (position === 'start') {\r\n              return [size * -1, 0];\r\n          }\r\n          else if (position === 'end') {\r\n              return [0, size];\r\n          }\r\n          else {\r\n              return [size * -0.5, size * 0.5];\r\n          }\r\n      }\r\n      getOffset() {\r\n          const { padding, position, rotation, orientation } = this.props;\r\n          const adjustedPadding = typeof padding === 'number'\r\n              ? {\r\n                  fromAxis: padding,\r\n                  alongAxis: padding\r\n              }\r\n              : padding;\r\n          const spacing = this.getTickLineSpacing();\r\n          const offset1 = position === 'start'\r\n              ? spacing[0] - adjustedPadding.fromAxis\r\n              : position === 'end'\r\n                  ? spacing[1] + adjustedPadding.fromAxis\r\n                  : 0;\r\n          const align = this.getAlign();\r\n          let offset2 = rotation === true ? -5 : 0;\r\n          offset2 +=\r\n              align === 'center'\r\n                  ? 0\r\n                  : align === 'start'\r\n                      ? -adjustedPadding.alongAxis\r\n                      : adjustedPadding.alongAxis;\r\n          const horz = orientation === 'horizontal';\r\n          return {\r\n              [horz ? 'x' : 'y']: offset2,\r\n              [horz ? 'y' : 'x']: offset1\r\n          };\r\n      }\r\n      getTextPosition() {\r\n          const { angle, orientation, position } = this.props;\r\n          let transform = '';\r\n          let textAnchor = '';\r\n          let alignmentBaseline = 'middle';\r\n          if (angle !== 0) {\r\n              transform = `rotate(${angle})`;\r\n              textAnchor = 'end';\r\n          }\r\n          else {\r\n              const align = this.getAlign();\r\n              if (orientation === 'horizontal') {\r\n                  textAnchor =\r\n                      align === 'center' ? 'middle' : align === 'start' ? 'end' : 'start';\r\n                  if (position === 'start') {\r\n                      alignmentBaseline = 'baseline';\r\n                  }\r\n                  else if (position === 'end') {\r\n                      alignmentBaseline = 'hanging';\r\n                  }\r\n              }\r\n              else {\r\n                  alignmentBaseline =\r\n                      align === 'center'\r\n                          ? 'middle'\r\n                          : align === 'start'\r\n                              ? 'baseline'\r\n                              : 'hanging';\r\n                  if (position === 'start') {\r\n                      textAnchor = 'end';\r\n                  }\r\n                  else if (position === 'end') {\r\n                      textAnchor = 'start';\r\n                  }\r\n                  else {\r\n                      textAnchor = 'middle';\r\n                  }\r\n              }\r\n          }\r\n          return {\r\n              transform,\r\n              textAnchor: this.props.textAnchor || textAnchor,\r\n              alignmentBaseline\r\n          };\r\n      }\r\n      render() {\r\n          const { fill, text, fullText, fontSize, fontFamily, className } = this.props;\r\n          const { x, y } = this.getOffset();\r\n          const textPosition = this.getTextPosition();\r\n          return (jsxRuntime.jsxs(\"g\", Object.assign({ transform: `translate(${x}, ${y})`, fontSize: fontSize, fontFamily: fontFamily }, { children: [jsxRuntime.jsx(\"title\", { children: fullText }, void 0),\r\n                  jsxRuntime.jsx(\"text\", Object.assign({}, textPosition, { fill: fill, className: className }, { children: text }), void 0)] }), void 0));\r\n      }\r\n  }\r\n  LinearAxisTickLabel.defaultProps = {\r\n      fill: '#8F979F',\r\n      fontSize: 11,\r\n      fontFamily: 'sans-serif',\r\n      rotation: true,\r\n      padding: 0,\r\n      align: 'center'\r\n  };\n\n  class LinearAxisTickLine extends react.PureComponent {\r\n      positionTick() {\r\n          const { size, position, orientation } = this.props;\r\n          const isVertical = orientation === 'vertical';\r\n          const tickSize = size || 0;\r\n          const start = position === 'start'\r\n              ? tickSize * -1\r\n              : position === 'center'\r\n                  ? tickSize * -0.5\r\n                  : 0;\r\n          const end = start + tickSize;\r\n          return {\r\n              x1: isVertical ? end : 0,\r\n              x2: isVertical ? start : 0,\r\n              y1: isVertical ? 0 : start,\r\n              y2: isVertical ? 0 : end\r\n          };\r\n      }\r\n      render() {\r\n          const { strokeColor, strokeWidth, className } = this.props;\r\n          const path = this.positionTick();\r\n          return (jsxRuntime.jsx(\"line\", Object.assign({ className: className, strokeWidth: strokeWidth, stroke: strokeColor }, path), void 0));\r\n      }\r\n  }\r\n  LinearAxisTickLine.defaultProps = {\r\n      strokeColor: '#8F979F',\r\n      strokeWidth: 1,\r\n      size: 5\r\n  };\n\n  // https://stackoverflow.com/questions/673905/best-way-to-determine-users-locale-within-browser\r\n  const getNavigatorLanguage = () => {\r\n      if (typeof window === 'undefined') {\r\n          return 'en';\r\n      }\r\n      if (navigator.languages && navigator.languages.length) {\r\n          return navigator.languages[0];\r\n      }\r\n      if (navigator.userLanguage ||\r\n          navigator.language ||\r\n          navigator.browserLanguage) {\r\n          return 'en';\r\n      }\r\n  };\r\n  const locale = getNavigatorLanguage();\r\n  const options = {\r\n      year: 'numeric',\r\n      month: 'numeric',\r\n      day: 'numeric',\r\n      hour12: true,\r\n      formatMatcher: 'best fit'\r\n  };\r\n  /**\r\n   * Format a value based on type.\r\n   */\r\n  function formatValue(value) {\r\n      if (value !== undefined) {\r\n          if (value instanceof Date) {\r\n              return value.toLocaleDateString(locale, options);\r\n          }\r\n          else if (typeof value === 'number') {\r\n              return value.toLocaleString();\r\n          }\r\n          return value;\r\n      }\r\n      return 'No value';\r\n  }\n\n  const ONE_DAY = 60 * 60 * 24;\r\n  const DURATION_TICK_STEPS = [\r\n      0.001,\r\n      0.005,\r\n      0.01,\r\n      0.05,\r\n      0.1,\r\n      0.5,\r\n      1,\r\n      5,\r\n      10,\r\n      15,\r\n      60,\r\n      60 * 15,\r\n      60 * 30,\r\n      60 * 60,\r\n      60 * 60 * 2,\r\n      60 * 60 * 4,\r\n      60 * 60 * 6,\r\n      60 * 60 * 8,\r\n      60 * 60 * 12,\r\n      ONE_DAY // 24 h\r\n  ];\r\n  /**\r\n   * Reduce the ticks to the max number of ticks.\r\n   */\r\n  function reduceTicks(ticks, maxTicks) {\r\n      if (ticks.length > maxTicks) {\r\n          const reduced = [];\r\n          const modulus = Math.floor(ticks.length / maxTicks);\r\n          for (let i = 0; i < ticks.length; i++) {\r\n              if (i % modulus === 0) {\r\n                  reduced.push(ticks[i]);\r\n              }\r\n          }\r\n          ticks = reduced;\r\n      }\r\n      return ticks;\r\n  }\r\n  /**\r\n   * Determine the max ticks for the available width.\r\n   */\r\n  function getMaxTicks(size, dimension) {\r\n      const tickWidth = Math.max(size, 0);\r\n      return Math.floor(dimension / tickWidth);\r\n  }\r\n  /**\r\n   * Formats the ticks in a duration format.\r\n   */\r\n  function getDurationTicks(domain, maxTicks) {\r\n      const domainWidth = domain[1] - domain[0];\r\n      let tickStep = null;\r\n      for (const s of DURATION_TICK_STEPS) {\r\n          if (domainWidth / s < maxTicks) {\r\n              tickStep = s;\r\n              break;\r\n          }\r\n      }\r\n      if (tickStep === null) {\r\n          const numDayTicks = domainWidth / ONE_DAY;\r\n          const dayStep = Math.ceil(numDayTicks / maxTicks);\r\n          tickStep = ONE_DAY * dayStep;\r\n      }\r\n      const ticks = [domain[0]];\r\n      while (ticks[ticks.length - 1] + tickStep <= domain[1]) {\r\n          ticks.push(ticks[ticks.length - 1] + tickStep);\r\n      }\r\n      return ticks;\r\n  }\r\n  /**\r\n   * Get the tick values from the scale.\r\n   */\r\n  function getTicks(scale, tickValues, type, maxTicks = 100, interval) {\r\n      let result;\r\n      if (tickValues) {\r\n          result = tickValues;\r\n      }\r\n      else {\r\n          if (scale.ticks) {\r\n              if (type === 'duration') {\r\n                  result = getDurationTicks(scale.domain(), maxTicks);\r\n              }\r\n              else if (interval) {\r\n                  result = scale.ticks(interval);\r\n              }\r\n              else {\r\n                  if (type === 'time') {\r\n                      // If its time, we need to handle the time count\r\n                      // manually because d3 does this odd rounding\r\n                      result = scale.ticks();\r\n                      result = reduceTicks(result, maxTicks);\r\n                  }\r\n                  else {\r\n                      result = scale.ticks(maxTicks);\r\n                  }\r\n              }\r\n          }\r\n          else {\r\n              tickValues = scale.domain();\r\n              result = reduceTicks(tickValues, maxTicks);\r\n          }\r\n      }\r\n      return result;\r\n  }\n\n  const calculateDimensions = (text, fontFamily, fontSize) => {\r\n      // SSR Rendering doesn't support canvas measurements\r\n      // we have to make a guess in this case...\r\n      if (typeof document === 'undefined') {\r\n          return {\r\n              width: text.length * 8,\r\n              height: 25\r\n          };\r\n      }\r\n      return calculateSize__default['default'](text, {\r\n          font: fontFamily,\r\n          fontSize: `${fontSize}px`\r\n      });\r\n  };\n\n  class LinearAxisTickSeries extends react.Component {\r\n      /**\r\n       * Gets the adjusted scale given offsets.\r\n       */\r\n      getAdjustedScale() {\r\n          const { scale } = this.props;\r\n          if (scale.bandwidth) {\r\n              let offset = scale.bandwidth() / 2;\r\n              if (scale.round()) {\r\n                  offset = Math.round(offset);\r\n              }\r\n              return (d) => +scale(d) + offset;\r\n          }\r\n          else {\r\n              return (d) => +scale(d);\r\n          }\r\n      }\r\n      /**\r\n       * Gets the x/y position for a given tick.\r\n       */\r\n      getPosition(scaledTick) {\r\n          const { orientation } = this.props;\r\n          if (orientation === 'horizontal') {\r\n              return { x: scaledTick, y: 0 };\r\n          }\r\n          else {\r\n              return { x: 0, y: scaledTick };\r\n          }\r\n      }\r\n      /**\r\n       * Gets the dimension (height/width) this axis is calculating on.\r\n       */\r\n      getDimension() {\r\n          const { height, width, orientation } = this.props;\r\n          return orientation === 'vertical' ? height : width;\r\n      }\r\n      /**\r\n       * Calculates the rotation angle that the ticks need to be shifted to.\r\n       * This equation will measure the length of the text in a external canvas\r\n       * object and determine what the longest label is and rotate until they fit.\r\n       */\r\n      getRotationAngle(ticks) {\r\n          if (!this.props.label) {\r\n              return 0;\r\n          }\r\n          const label = this.props.label.props;\r\n          const dimension = this.getDimension();\r\n          const maxTicksLength = d3Array.max(ticks, (tick) => tick.width);\r\n          let angle = 0;\r\n          if (label.rotation) {\r\n              if (label.rotation === true) {\r\n                  let baseWidth = maxTicksLength;\r\n                  const maxBaseWidth = Math.floor(dimension / ticks.length);\r\n                  while (baseWidth > maxBaseWidth && angle > -90) {\r\n                      angle -= 30;\r\n                      baseWidth = Math.cos(angle * (Math.PI / 180)) * maxTicksLength;\r\n                  }\r\n              }\r\n              else {\r\n                  angle = label.rotation;\r\n              }\r\n          }\r\n          return angle;\r\n      }\r\n      /**\r\n       * Gets the formatted label of the tick.\r\n       */\r\n      getLabelFormat() {\r\n          const { label, scale } = this.props;\r\n          if (label && label.props.format) {\r\n              return label.props.format;\r\n          }\r\n          else if (scale.tickFormat) {\r\n              return scale.tickFormat.apply(scale, [5]);\r\n          }\r\n          else {\r\n              return (v) => formatValue(v);\r\n          }\r\n      }\r\n      /**\r\n       * Gets the ticks given the dimensions and scales and returns\r\n       * the text and position.\r\n       */\r\n      getTicks() {\r\n          const { scale, tickSize, tickValues, interval, axis, label } = this.props;\r\n          const dimension = this.getDimension();\r\n          const maxTicks = getMaxTicks(tickSize, dimension);\r\n          const ticks = getTicks(scale, tickValues, axis.type, maxTicks, interval);\r\n          const adjustedScale = this.getAdjustedScale();\r\n          const format = this.getLabelFormat();\r\n          const midpoint = dimension / 2;\r\n          return ticks.map((tick) => {\r\n              const fullText = format(tick);\r\n              const scaledTick = adjustedScale(tick);\r\n              const position = this.getPosition(scaledTick);\r\n              const text = ellipsize__default['default'](fullText, 18);\r\n              const size = label\r\n                  ? calculateDimensions(text, label.props.fontFamily, label.props.fontSize.toString())\r\n                  : {};\r\n              return Object.assign(Object.assign(Object.assign({}, position), size), { text,\r\n                  fullText, half: scaledTick === midpoint\r\n                      ? 'center'\r\n                      : scaledTick < midpoint\r\n                          ? 'start'\r\n                          : 'end' });\r\n          });\r\n      }\r\n      render() {\r\n          const { label, line, height, width, orientation } = this.props;\r\n          const ticks = this.getTicks();\r\n          const angle = this.getRotationAngle(ticks);\r\n          return (jsxRuntime.jsx(react.Fragment, { children: ticks.map((tick, i) => (jsxRuntime.jsxs(\"g\", Object.assign({ transform: `translate(${tick.x}, ${tick.y})` }, { children: [line && (jsxRuntime.jsx(rdk.CloneElement, { element: line, height: height, width: width, orientation: orientation }, void 0)),\r\n                      label && (jsxRuntime.jsx(rdk.CloneElement, { element: label, text: tick.text, fullText: tick.fullText, half: tick.half, angle: angle, orientation: orientation, line: line }, void 0))] }), i))) }, void 0));\r\n      }\r\n  }\r\n  LinearAxisTickSeries.defaultProps = {\r\n      line: jsxRuntime.jsx(LinearAxisTickLine, {}, void 0),\r\n      label: jsxRuntime.jsx(LinearAxisTickLabel, {}, void 0),\r\n      tickSize: 30\r\n  };\n\n  const LinearAxisLine = ({ strokeColor, strokeWidth, strokeGradient, scale, orientation, className }) => {\r\n      const id = rdk.useId();\r\n      const [range0, range1] = scale.range();\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"line\", { className: className, x1: orientation === 'vertical' ? 0 : range0, \r\n                  // Workaround for a Chrome/Firefox bug where it won't render gradients for straight lines\r\n                  x2: orientation === 'vertical' ? 0.00001 : range1, y1: orientation === 'vertical' ? range0 : 0, y2: orientation === 'vertical' ? range1 : 0.00001, strokeWidth: strokeWidth, stroke: strokeGradient ? `url(#axis-gradient-${id})` : strokeColor }, void 0),\r\n              strokeGradient && (jsxRuntime.jsx(rdk.CloneElement, { element: strokeGradient, id: `axis-gradient-${id}` }, void 0))] }, void 0));\r\n  };\r\n  LinearAxisLine.defaultProps = {\r\n      strokeColor: '#8F979F',\r\n      strokeWidth: 1\r\n  };\n\n  class LinearAxis extends react.Component {\r\n      constructor(props) {\r\n          super(props);\r\n          this.ref = react.createRef();\r\n          this.state = {\r\n              height: props.height,\r\n              width: props.width\r\n          };\r\n      }\r\n      componentDidMount() {\r\n          this.updateDimensions();\r\n      }\r\n      componentDidUpdate(prevProps) {\r\n          const { height, width, scale } = this.props;\r\n          if (width !== prevProps.width ||\r\n              height !== prevProps.height ||\r\n              scale !== prevProps.scale) {\r\n              this.updateDimensions();\r\n          }\r\n      }\r\n      updateDimensions() {\r\n          const { onDimensionsChange, orientation, position } = this.props;\r\n          const shouldOffset = position !== 'center';\r\n          let height;\r\n          let width;\r\n          if (shouldOffset) {\r\n              const dims = this.ref.current.getBoundingClientRect();\r\n              width = Math.floor(dims.width);\r\n              height = Math.floor(dims.height);\r\n          }\r\n          if (orientation === 'vertical') {\r\n              if (this.state.width !== width) {\r\n                  this.setState({ width });\r\n                  onDimensionsChange({ width });\r\n              }\r\n          }\r\n          else {\r\n              if (this.state.height !== height) {\r\n                  this.setState({ height });\r\n                  onDimensionsChange({ height });\r\n              }\r\n          }\r\n      }\r\n      getPosition() {\r\n          const { position, width, height, orientation } = this.props;\r\n          let translateY = 0;\r\n          let translateX = 0;\r\n          if (position === 'end' && orientation === 'horizontal') {\r\n              translateY = height;\r\n          }\r\n          else if (position === 'center' && orientation === 'horizontal') {\r\n              translateY = height / 2;\r\n          }\r\n          else if (position === 'end' && orientation === 'vertical') {\r\n              translateX = width;\r\n          }\r\n          else if (position === 'center' && orientation === 'vertical') {\r\n              translateX = width / 2;\r\n          }\r\n          return { translateX, translateY };\r\n      }\r\n      render() {\r\n          const { scale, height, width, orientation, axisLine, tickSeries } = this.props;\r\n          const { translateX, translateY } = this.getPosition();\r\n          return (jsxRuntime.jsxs(\"g\", Object.assign({ transform: `translate(${translateX}, ${translateY})`, ref: this.ref }, { children: [axisLine && (jsxRuntime.jsx(rdk.CloneElement, { element: axisLine, height: height, width: width, scale: scale, orientation: orientation }, void 0)),\r\n                  (tickSeries.props.line || tickSeries.props.label) && (jsxRuntime.jsx(rdk.CloneElement, { element: tickSeries, height: height, width: width, scale: scale, orientation: orientation, axis: this.props }, void 0))] }), void 0));\r\n      }\r\n  }\r\n  LinearAxis.defaultProps = {\r\n      axisLine: jsxRuntime.jsx(LinearAxisLine, {}, void 0),\r\n      tickSeries: jsxRuntime.jsx(LinearAxisTickSeries, {}, void 0),\r\n      scaled: false,\r\n      roundDomains: false,\r\n      onDimensionsChange: () => undefined\r\n  };\n\n  const LinearXAxisTickLabel = (props) => jsxRuntime.jsx(LinearAxisTickLabel, Object.assign({}, props), void 0);\r\n  LinearXAxisTickLabel.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLabel.defaultProps), { rotation: true, position: 'end', align: 'center' });\r\n  const LinearXAxisTickLine = (props) => jsxRuntime.jsx(LinearAxisTickLine, Object.assign({}, props), void 0);\r\n  LinearXAxisTickLine.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLine.defaultProps), { position: 'end' });\r\n  const LinearXAxisTickSeries = (props) => jsxRuntime.jsx(LinearAxisTickSeries, Object.assign({}, props), void 0);\r\n  LinearXAxisTickSeries.defaultProps = Object.assign(Object.assign({}, LinearAxisTickSeries.defaultProps), { tickSize: 75, line: jsxRuntime.jsx(LinearXAxisTickLine, {}, void 0), label: jsxRuntime.jsx(LinearXAxisTickLabel, {}, void 0) });\r\n  const LinearXAxis = (props) => (jsxRuntime.jsx(LinearAxis, Object.assign({}, props), void 0));\r\n  LinearXAxis.defaultProps = Object.assign(Object.assign({}, LinearAxis.defaultProps), { position: 'end', roundDomains: false, scaled: false, type: 'value', orientation: 'horizontal', tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, {}, void 0) });\n\n  const LinearYAxisTickLabel = (props) => jsxRuntime.jsx(LinearAxisTickLabel, Object.assign({}, props), void 0);\r\n  LinearYAxisTickLabel.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLabel.defaultProps), { rotation: false, position: 'start', align: 'center' });\r\n  const LinearYAxisTickLine = (props) => jsxRuntime.jsx(LinearAxisTickLine, Object.assign({}, props), void 0);\r\n  LinearYAxisTickLine.defaultProps = Object.assign(Object.assign({}, LinearAxisTickLine.defaultProps), { position: 'start' });\r\n  const LinearYAxisTickSeries = (props) => jsxRuntime.jsx(LinearAxisTickSeries, Object.assign({}, props), void 0);\r\n  LinearYAxisTickSeries.defaultProps = Object.assign(Object.assign({}, LinearAxisTickSeries.defaultProps), { tickSize: 30, line: jsxRuntime.jsx(LinearYAxisTickLine, {}, void 0), label: jsxRuntime.jsx(LinearYAxisTickLabel, {}, void 0) });\r\n  const LinearYAxis = (props) => (jsxRuntime.jsx(LinearAxis, Object.assign({}, props), void 0));\r\n  LinearYAxis.defaultProps = Object.assign(Object.assign({}, LinearAxis.defaultProps), { orientation: 'vertical', scaled: false, roundDomains: false, type: 'value', position: 'start', tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, {}, void 0) });\n\n  /**\r\n   * Returns whether the axis has a visual element or not.\r\n   */\r\n  const isAxisVisible = (axis) => !!axis.tickSeries.props.label || !!axis.tickSeries.props.line;\n\n  const RadialAxisTickLine = ({ stroke, size, position, innerRadius, outerRadius }) => {\r\n      const x1 = position === 'outside' ? size : -(outerRadius - innerRadius);\r\n      return (jsxRuntime.jsx(\"line\", { x1: x1, x2: 0, stroke: stroke, style: { pointerEvents: 'none' } }, void 0));\r\n  };\r\n  RadialAxisTickLine.defaultProps = {\r\n      stroke: 'rgba(113, 128, 141, .5)',\r\n      size: 10,\r\n      position: 'inside'\r\n  };\n\n  const rad2deg = (angle) => (angle * 180) / Math.PI;\r\n  const RadialAxisTickLabel = ({ point, autoRotate, rotation, padding, data, fill, fontFamily, fontSize, format, lineSize, index }) => {\r\n      const { transform, textAnchor } = react.useMemo(() => {\r\n          let textAnchor;\r\n          let transform;\r\n          if (autoRotate) {\r\n              const l = point >= Math.PI;\r\n              const r = point < 2 * Math.PI;\r\n              // TODO: This centers the text, determine better way later\r\n              if ((rotation >= 85 && rotation <= 95) ||\r\n                  (rotation <= -85 && rotation >= -95)) {\r\n                  textAnchor = 'middle';\r\n              }\r\n              else if (l && r) {\r\n                  textAnchor = 'end';\r\n              }\r\n              else {\r\n                  textAnchor = 'start';\r\n              }\r\n              transform = `rotate(${90 - rad2deg(point)}, ${padding}, 0)`;\r\n          }\r\n          else {\r\n              const shouldRotate = rotation > 100 && rotation;\r\n              const rotate = shouldRotate ? 180 : 0;\r\n              const translate = shouldRotate ? -30 : 0;\r\n              textAnchor = shouldRotate ? 'end' : 'start';\r\n              transform = `rotate(${rotate}) translate(${translate})`;\r\n          }\r\n          return {\r\n              transform,\r\n              textAnchor\r\n          };\r\n      }, [autoRotate, padding, point, rotation]);\r\n      const text = format ? format(data, index) : formatValue(data);\r\n      return (jsxRuntime.jsxs(\"g\", Object.assign({ transform: transform }, { children: [jsxRuntime.jsx(\"title\", { children: text }, void 0),\r\n              jsxRuntime.jsx(\"text\", Object.assign({ dy: \"0.35em\", x: lineSize + 5, textAnchor: textAnchor, fill: fill, fontFamily: fontFamily, fontSize: fontSize }, { children: text }), void 0)] }), void 0));\r\n  };\r\n  RadialAxisTickLabel.defaultProps = {\r\n      fill: '#71808d',\r\n      fontSize: 11,\r\n      padding: 15,\r\n      fontFamily: 'sans-serif',\r\n      autoRotate: true\r\n  };\n\n  const RadialAxisTick = ({ line, label, scale, outerRadius, data, index, padding, innerRadius }) => {\r\n      const point = scale(data);\r\n      const rotation = (point * 180) / Math.PI - 90;\r\n      const transform = `rotate(${rotation}) translate(${outerRadius + padding},0)`;\r\n      const lineSize = line ? line.props.size : 0;\r\n      return (jsxRuntime.jsxs(\"g\", Object.assign({ transform: transform }, { children: [line && (jsxRuntime.jsx(rdk.CloneElement, { element: line, innerRadius: innerRadius, outerRadius: outerRadius }, void 0)),\r\n              label && (jsxRuntime.jsx(rdk.CloneElement, { element: label, index: index, point: point, rotation: rotation, lineSize: lineSize, data: data }, void 0))] }), void 0));\r\n  };\r\n  RadialAxisTick.defaultProps = {\r\n      outerRadius: 0,\r\n      padding: 0,\r\n      line: jsxRuntime.jsx(RadialAxisTickLine, {}, void 0),\r\n      label: jsxRuntime.jsx(RadialAxisTickLabel, {}, void 0)\r\n  };\n\n  const RadialAxisTickSeries = ({ scale, count, outerRadius, tick, tickValues, innerRadius, interval, type }) => {\r\n      const ticks = getTicks(scale, tickValues, type, count, interval || count);\r\n      return (jsxRuntime.jsx(react.Fragment, { children: ticks.map((data, i) => (jsxRuntime.jsx(rdk.CloneElement, { element: tick, index: i, scale: scale, data: data, innerRadius: innerRadius, outerRadius: outerRadius }, i))) }, void 0));\r\n  };\r\n  RadialAxisTickSeries.defaultProps = {\r\n      count: 12,\r\n      type: 'time',\r\n      tick: jsxRuntime.jsx(RadialAxisTick, {}, void 0)\r\n  };\n\n  const RadialAxisArc = ({ index, stroke, strokeDasharray, scale }) => {\r\n      const r = scale(index);\r\n      const strokeColor = typeof stroke === 'string' ? stroke : stroke(index);\r\n      const strokeDash = typeof strokeDasharray === 'string'\r\n          ? strokeDasharray\r\n          : strokeDasharray(index);\r\n      return (jsxRuntime.jsx(\"circle\", { fill: \"none\", strokeDasharray: strokeDash, stroke: strokeColor, style: { pointerEvents: 'none' }, cx: \"0\", cy: \"0\", r: r }, void 0));\r\n  };\r\n  RadialAxisArc.defaultProps = {\r\n      stroke: '#71808d',\r\n      strokeDasharray: '1,4'\r\n  };\n\n  /**\r\n   * Given a set of arcs, return an array of points for each arc.\r\n   */\r\n  const getPointsForLevels = ({ count, outerRadius, ticks, arcs }) => {\r\n      const levels = [];\r\n      const polyangle = (Math.PI * 2) / ticks;\r\n      for (const level of arcs) {\r\n          const hyp = (level / count) * outerRadius;\r\n          const points = [];\r\n          for (let vertex = 0; vertex < ticks; vertex++) {\r\n              const theta = vertex * polyangle;\r\n              points.push({\r\n                  x: hyp * Math.sin(Math.PI - theta),\r\n                  y: hyp * Math.cos(Math.PI - theta)\r\n              });\r\n          }\r\n          levels.push([...points, points[0]]);\r\n      }\r\n      return levels;\r\n  };\n\n  const RadialAxisArcSeries = ({ count, innerRadius, outerRadius, line, arc, tickValues }) => {\r\n      const scale = d3Scale.scaleLinear()\r\n          .domain([0, count])\r\n          .range([innerRadius, outerRadius]);\r\n      const arcs = scale.ticks(count);\r\n      const points = getPointsForLevels({\r\n          count,\r\n          outerRadius,\r\n          ticks: tickValues.length,\r\n          arcs\r\n      });\r\n      return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [line && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: points.map((d, i) => (jsxRuntime.jsx(rdk.CloneElement, { element: line, data: d, index: i }, i))) }, void 0)),\r\n              arc && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: arcs.map((d) => (jsxRuntime.jsx(rdk.CloneElement, { element: arc, index: d, scale: scale }, d))) }, void 0))] }, void 0));\r\n  };\r\n  RadialAxisArcSeries.defaultProps = {\r\n      type: 'arc',\r\n      count: 12,\r\n      arc: jsxRuntime.jsx(RadialAxisArc, {}, void 0)\r\n  };\n\n  const RadialAxisArcLine = ({ data, stroke, index }) => {\r\n      const lineGenerator = d3Shape.line()\r\n          .x((d) => d.x)\r\n          .y((d) => d.y);\r\n      const d = lineGenerator(data);\r\n      const strokeColor = typeof stroke === 'string' ? stroke : stroke(index);\r\n      return (jsxRuntime.jsx(\"path\", { d: d, stroke: strokeColor, fill: \"none\", style: { pointerEvents: 'none' } }, void 0));\r\n  };\r\n  RadialAxisArcLine.defaultProps = {\r\n      stroke: '#71808d'\r\n  };\n\n  const humanFormatScale = new humanFormat__default['default'].Scale({\r\n      k: 1000,\r\n      M: 1000000,\r\n      B: 1000000000\r\n  });\r\n  const humanFormatMillionScale = new humanFormat__default['default'].Scale({\r\n      M: 1,\r\n      B: 1000,\r\n      T: 1000000\r\n  });\r\n  const ONE_MILLION = 1000000;\r\n  const ONE_BILLION = 1000000000;\r\n  const humanFormatBigInteger = (bigInteger) => {\r\n      if (bigInteger.greater(ONE_BILLION)) {\r\n          return humanFormat__default['default'](bigInteger.divide(ONE_MILLION).toJSNumber(), {\r\n              scale: humanFormatMillionScale\r\n          });\r\n      }\r\n      return humanFormat__default['default'](bigInteger.toJSNumber(), { scale: humanFormatScale });\r\n  };\r\n  const bigIntegerToLocaleString = (bigInteger) => {\r\n      let i = 0;\r\n      let formattedString = '';\r\n      for (const c of bigInteger.toString().split('').reverse()) {\r\n          if (i > 0 && i % 3 === 0) {\r\n              formattedString = ',' + formattedString;\r\n          }\r\n          formattedString = c + formattedString;\r\n          i++;\r\n      }\r\n      return formattedString;\r\n  };\n\n  /**\r\n   * Given a margins object, returns the top/left/right/bottom positions.\r\n   */\r\n  function parseMargins(margins) {\r\n      let top = 0;\r\n      let right = 0;\r\n      let bottom = 0;\r\n      let left = 0;\r\n      if (Array.isArray(margins)) {\r\n          if (margins.length === 2) {\r\n              top = margins[0];\r\n              bottom = margins[0];\r\n              left = margins[1];\r\n              right = margins[1];\r\n          }\r\n          else if (margins.length === 4) {\r\n              top = margins[0];\r\n              right = margins[1];\r\n              bottom = margins[2];\r\n              left = margins[3];\r\n          }\r\n      }\r\n      else if (margins !== undefined) {\r\n          top = margins;\r\n          right = margins;\r\n          bottom = margins;\r\n          left = margins;\r\n      }\r\n      return {\r\n          top,\r\n          right,\r\n          bottom,\r\n          left\r\n      };\r\n  }\r\n  /**\r\n   * Calculates the margins for the chart.\r\n   */\r\n  function calculateMarginOffsets(height, width, margins) {\r\n      const { left, right, bottom, top } = margins;\r\n      const newHeight = height - top - bottom;\r\n      const newWidth = width - left - right;\r\n      return {\r\n          height: newHeight,\r\n          width: newWidth\r\n      };\r\n  }\r\n  /**\r\n   * Calculates the dimensions for the chart.\r\n   */\r\n  function getDimension({ xOffset, yOffset, height, width, margins }) {\r\n      const parsedMargins = parseMargins(margins);\r\n      const marginDims = calculateMarginOffsets(height, width, parsedMargins);\r\n      const chartWidth = marginDims.width - xOffset;\r\n      const chartHeight = marginDims.height - yOffset;\r\n      return {\r\n          xOffset,\r\n          yOffset,\r\n          height,\r\n          width,\r\n          chartWidth,\r\n          chartHeight,\r\n          xMargin: xOffset + parsedMargins.left,\r\n          yMargin: parsedMargins.top\r\n      };\r\n  }\n\n  /**\r\n   * Gets the min/max values handling nested arrays.\r\n   */\r\n  function extent(data, attr) {\r\n      const accessor = (val, fn) => {\r\n          if (Array.isArray(val.data)) {\r\n              return fn(val.data, (vv) => vv[attr]);\r\n          }\r\n          return val[attr];\r\n      };\r\n      const minVal = d3Array.min(data, (d) => accessor(d, d3Array.min));\r\n      const maxVal = d3Array.max(data, (d) => accessor(d, d3Array.max));\r\n      return [minVal, maxVal];\r\n  }\r\n  /**\r\n   * Get the domain for the Y Axis.\r\n   */\r\n  function getYDomain({ data, scaled = false, isDiverging = false }) {\r\n      const [startY, endY] = extent(data, 'y');\r\n      const [startY1, endY1] = extent(data, 'y1');\r\n      // If dealing w/ negative numbers, we should\r\n      // normalize the top and bottom values\r\n      if (startY < 0 || isDiverging) {\r\n          const posStart = -startY;\r\n          const maxNum = Math.max(posStart, endY);\r\n          return [-maxNum, maxNum];\r\n      }\r\n      // Scaled start scale at non-zero\r\n      if (scaled) {\r\n          return [startY1, endY1];\r\n      }\r\n      // Start at 0 based\r\n      return [0, endY1];\r\n  }\r\n  /**\r\n   * Get the domain for the X Axis.\r\n   */\r\n  function getXDomain({ data, scaled = false, isDiverging = false }) {\r\n      const startX0 = extent(data, 'x0')[0];\r\n      const endX1 = extent(data, 'x1')[1];\r\n      // Histograms use dates for start/end\r\n      if (typeof startX0 === 'number' && typeof endX1 === 'number') {\r\n          // If dealing w/ negative numbers, we should\r\n          // normalize the top and bottom values\r\n          if (startX0 < 0 || isDiverging) {\r\n              const posStart = -startX0;\r\n              const maxNum = Math.max(posStart, endX1);\r\n              return [-maxNum, maxNum];\r\n          }\r\n          // If not scaled, return 0/max domains\r\n          if (!scaled) {\r\n              return [0, endX1];\r\n          }\r\n      }\r\n      // Scaled start scale at non-zero\r\n      return [startX0, endX1];\r\n  }\n\n  /**\r\n   * Helper function for interpolation.\r\n   */\r\n  function interpolate(type) {\r\n      if (type === 'smooth') {\r\n          return d3Shape.curveMonotoneX;\r\n      }\r\n      else if (type === 'step') {\r\n          return d3Shape.curveStep;\r\n      }\r\n      else {\r\n          return d3Shape.curveLinear;\r\n      }\r\n  }\n\n  /**\r\n   * Add ability to calculate scale band position.\r\n   * Reference: https://stackoverflow.com/questions/38633082/d3-getting-invert-value-of-band-scales\r\n   */\r\n  const scaleBandInvert = (scale) => {\r\n      const domain = scale.domain();\r\n      const paddingOuter = scale(domain[0]);\r\n      const eachBand = scale.step();\r\n      const [, end] = scale.range();\r\n      return (offset) => {\r\n          let index = Math.floor((offset - paddingOuter) / eachBand);\r\n          // Handle horizontal charts...\r\n          if (end === 0) {\r\n              index = index * -1;\r\n          }\r\n          return domain[Math.max(0, Math.min(index, domain.length - 1))];\r\n      };\r\n  };\r\n  /**\r\n   * Given a point position, get the closes data point in the dataset.\r\n   */\r\n  const getClosestPoint = (pos, scale, data, attr = 'x') => {\r\n      if (scale.invert) {\r\n          const domain = scale.invert(pos);\r\n          // Select the index\r\n          const bisect = d3Array.bisector((d) => d[attr]).right;\r\n          const index = bisect(data, domain);\r\n          // Determine min index\r\n          const minIndex = Math.max(0, index - 1);\r\n          const before = data[minIndex];\r\n          // Determine max index\r\n          const maxIndex = Math.min(data.length - 1, index);\r\n          const after = data[maxIndex];\r\n          // Determine which is closest to the point\r\n          let beforeVal = before[attr];\r\n          let afterVal = after[attr];\r\n          beforeVal = domain - beforeVal;\r\n          afterVal = afterVal - domain;\r\n          return beforeVal < afterVal ? before : after;\r\n      }\r\n      else {\r\n          // If we have a band scale, handle that special\r\n          const domain = scale.domain();\r\n          let prop;\r\n          // Of course the Marimekko is a pain...\r\n          if (scale.mariemkoInvert) {\r\n              prop = scale.mariemkoInvert(pos);\r\n          }\r\n          else {\r\n              prop = scaleBandInvert(scale)(pos);\r\n          }\r\n          const idx = domain.indexOf(prop);\r\n          return data[idx];\r\n      }\r\n  };\r\n  /**\r\n   * Given an event, get the parent svg element;\r\n   */\r\n  const getParentSVG = (event) => {\r\n      // set node to targets owner svg\r\n      let node = event.target.ownerSVGElement;\r\n      // find the outermost svg\r\n      if (node) {\r\n          while (node.ownerSVGElement) {\r\n              node = node.ownerSVGElement;\r\n          }\r\n      }\r\n      return node;\r\n  };\r\n  /**\r\n   * Given an event, get the relative X/Y position for a target.\r\n   */\r\n  const getPositionForTarget = ({ target, clientX, clientY }) => {\r\n      const rect = target.getBoundingClientRect();\r\n      return {\r\n          x: clientX - ((rect === null || rect === void 0 ? void 0 : rect.left) || 0) - target.clientLeft,\r\n          y: clientY - ((rect === null || rect === void 0 ? void 0 : rect.top) || 0) - target.clientTop\r\n      };\r\n  };\r\n  /**\r\n   * Gets the point from q given matrix.\r\n   */\r\n  const getPointFromMatrix = (event, matrix) => {\r\n      const parent = getParentSVG(event);\r\n      if (!parent) {\r\n          return null;\r\n      }\r\n      // Determines client coordinates relative to the editor component\r\n      const { top, left } = parent.getBoundingClientRect();\r\n      const x = event.clientX - left;\r\n      const y = event.clientY - top;\r\n      // Transforms the coordinate to world coordinate (in the SVG/DIV world)\r\n      return transformationMatrix.applyToPoint(transformationMatrix.inverse(matrix), { x, y });\r\n  };\r\n  /**\r\n   * Get the start/end matrix.\r\n   */\r\n  const getLimitMatrix = (height, width, matrix) => transformationMatrix.applyToPoints(matrix, [\r\n      { x: 0, y: 0 },\r\n      { x: width, y: height }\r\n  ]);\r\n  /**\r\n   * Constrain the matrix.\r\n   */\r\n  const constrainMatrix = (height, width, matrix) => {\r\n      const [min, max] = getLimitMatrix(height, width, matrix);\r\n      if (max.x < width || max.y < height) {\r\n          return true;\r\n      }\r\n      if (min.x > 0 || min.y > 0) {\r\n          return true;\r\n      }\r\n      return false;\r\n  };\r\n  /**\r\n   * Determine if scale factor is less than allowed.\r\n   */\r\n  const lessThanScaleFactorMin = (value, scaleFactor) => value.scaleFactorMin && value.d * scaleFactor <= value.scaleFactorMin;\r\n  /**\r\n   * Determine if scale factor is larger than allowed.\r\n   */\r\n  const moreThanScaleFactorMax = (value, scaleFactor) => value.scaleFactorMax && value.d * scaleFactor >= value.scaleFactorMax;\r\n  /**\r\n   * Determine if both min and max scale fctors are going out of bounds.\r\n   */\r\n  const isZoomLevelGoingOutOfBounds = (value, scaleFactor) => {\r\n      const a = lessThanScaleFactorMin(value, scaleFactor) && scaleFactor < 1;\r\n      const b = moreThanScaleFactorMax(value, scaleFactor) && scaleFactor > 1;\r\n      return a || b;\r\n  };\n\n  /**\r\n   * Toggle the text selection of the body.\r\n   */\r\n  function toggleTextSelection(allowSelection) {\r\n      const style = allowSelection ? '' : 'none';\r\n      [\r\n          '-webkit-touch-callout',\r\n          '-webkit-user-select',\r\n          '-khtml-user-select',\r\n          '-moz-user-select',\r\n          '-ms-user-select',\r\n          'user-select'\r\n      ].forEach((prop) => (document.body.style[prop] = style));\r\n  }\n\n  /**\r\n   * Calculates whether the stroke should be shown.\r\n   */\r\n  function calculateShowStroke(current, data) {\r\n      const i = data.indexOf(current);\r\n      let showLine = false;\r\n      const prev = data[i - 1];\r\n      if (i > 0 && prev.y) {\r\n          showLine = true;\r\n      }\r\n      const cur = data[i];\r\n      if (cur.y) {\r\n          showLine = true;\r\n      }\r\n      const next = data[i + 1];\r\n      if (i < data.length - 1 && next.y) {\r\n          showLine = true;\r\n      }\r\n      return showLine;\r\n  }\n\n  /**\r\n   * Get the angle from a radian.\r\n   */\r\n  const getDegrees = (radians) => (radians / Math.PI) * 180 - 90;\n\n  const functionProps = (prop, val, data) => {\r\n      if (typeof val === 'function') {\r\n          return val(data);\r\n      }\r\n      else if (prop === 'className') {\r\n          return classNames__default['default'](val);\r\n      }\r\n      else if (val !== undefined || val !== null) {\r\n          return val;\r\n      }\r\n      return {};\r\n  };\r\n  const constructFunctionProps = (props, data) => ({\r\n      className: functionProps('className', props.className, data),\r\n      style: functionProps('style', props.style, data)\r\n  });\n\n  /**\r\n   * Given a dataset and a list of accessors, returns a unique collection.\r\n   */\r\n  function uniqueBy(data, ...accessors) {\r\n      const result = [];\r\n      const ittr = (arr, depth) => {\r\n          for (const a of arr) {\r\n              const acc = accessors[depth];\r\n              if (acc === undefined) {\r\n                  throw new Error(`Accessor not found for depth: ${depth}`);\r\n              }\r\n              const val = acc(a);\r\n              if (Array.isArray(val)) {\r\n                  ittr(val, depth + 1);\r\n              }\r\n              else if (!result.includes(val)) {\r\n                  result.push(val);\r\n              }\r\n          }\r\n      };\r\n      ittr(data, 0);\r\n      return result;\r\n  }\n\n  function wrapText({ key, x = 0, size, paddingY, wrap = true, paddingX, width, height, fontFamily, fontSize }) {\r\n      size = size || calculateDimensions(key, fontFamily, fontSize);\r\n      const words = key.toString().split(/\\s+/);\r\n      if (words.length > 1 && size.width > width) {\r\n          let rows = [];\r\n          let maxWidth = 0;\r\n          let maxHeight = 0;\r\n          let curText = '';\r\n          let currWidth = 0;\r\n          let nextText = '';\r\n          let nextWidth = 0;\r\n          for (const word of words) {\r\n              nextText = curText === '' ? word : `${curText} ${word}`;\r\n              nextWidth = calculateDimensions(nextText, fontFamily, fontSize).width;\r\n              if (nextWidth <= width - (paddingX ? 2 * paddingX : 0)) {\r\n                  curText = nextText;\r\n                  currWidth = nextWidth;\r\n              }\r\n              else {\r\n                  rows.push(curText);\r\n                  maxWidth = Math.max(maxWidth, currWidth);\r\n                  curText = word;\r\n                  currWidth = calculateDimensions(curText, fontFamily, fontSize).width;\r\n              }\r\n          }\r\n          rows.push(curText);\r\n          maxHeight = rows.length * size.height;\r\n          if (height && maxHeight >= height - (paddingY ? 2 * paddingY : 0)) {\r\n              return null;\r\n          }\r\n          if (width && maxWidth >= width - (paddingX ? 2 * paddingX : 0)) {\r\n              return null;\r\n          }\r\n          if (!wrap && rows.length > 1) {\r\n              return rows[0];\r\n          }\r\n          return rows.map((r, i) => (jsxRuntime.jsx(\"tspan\", Object.assign({ dominantBaseline: \"alphabetic\", style: { baselineShift: '0%' }, dy: i > 0\r\n                  ? size.height\r\n                  : height\r\n                      ? size.height / 2 - 5\r\n                      : -maxHeight / 2 + size.height, x: x }, { children: r }), i)));\r\n      }\r\n      if (height && size.height + paddingY >= height) {\r\n          return null;\r\n      }\r\n      if (width && size.width + paddingX >= width) {\r\n          return null;\r\n      }\r\n      // NOTE: 5px seems to magic number for making it center\r\n      return (jsxRuntime.jsx(\"tspan\", Object.assign({ dominantBaseline: \"alphabetic\", style: { baselineShift: '0%' }, dy: size.height / 2 - 5, x: x }, { children: key }), void 0));\r\n  }\n\n  const RadialAxis = ({ arcs, ticks, xScale, height, width, innerRadius, type }) => {\r\n      const outerRadius = Math.min(height, width) / 2;\r\n      // TODO: This is a hack to get the ticks in the parent\r\n      // component. This is because the ticks are needed\r\n      // for the arcs's lines.\r\n      const tickValues = getTicks(xScale, ticks.props.tickValues, type, ticks.props.count, ticks.props.interval || ticks.props.count);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [arcs && (jsxRuntime.jsx(rdk.CloneElement, { element: arcs, outerRadius: outerRadius, innerRadius: innerRadius, tickValues: tickValues }, void 0)),\r\n              ticks && (jsxRuntime.jsx(rdk.CloneElement, { element: ticks, scale: xScale, type: type, innerRadius: innerRadius, outerRadius: outerRadius }, void 0))] }, void 0));\r\n  };\r\n  RadialAxis.defaultProps = {\r\n      innerRadius: 10,\r\n      type: 'value',\r\n      arcs: jsxRuntime.jsx(RadialAxisArcSeries, {}, void 0),\r\n      ticks: jsxRuntime.jsx(RadialAxisTickSeries, {}, void 0)\r\n  };\n\n  class Move extends react.Component {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.started = false;\r\n          this.deltaX = 0;\r\n          this.deltaY = 0;\r\n          this.prevXPosition = 0;\r\n          this.prevYPosition = 0;\r\n          this.onMouseMove = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              const { movementX, movementY } = event;\r\n              this.deltaX = this.deltaX + movementX;\r\n              this.deltaY = this.deltaY + movementY;\r\n              if (this.checkThreshold()) {\r\n                  this.disableText(true);\r\n                  this.setCursor(true);\r\n                  this.deltaX = 0;\r\n                  this.deltaY = 0;\r\n                  this.started = true;\r\n                  this.props.onMoveStart({\r\n                      nativeEvent: event,\r\n                      type: 'mouse'\r\n                  });\r\n              }\r\n              else {\r\n                  this.rqf = requestAnimationFrame(() => {\r\n                      this.props.onMove({\r\n                          nativeEvent: event,\r\n                          type: 'mouse',\r\n                          x: movementX,\r\n                          y: movementY\r\n                      });\r\n                  });\r\n              }\r\n          };\r\n          this.onMouseUp = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              this.disposeHandlers();\r\n              if (this.started) {\r\n                  this.props.onMoveEnd({\r\n                      nativeEvent: event,\r\n                      type: 'mouse'\r\n                  });\r\n              }\r\n              else {\r\n                  this.props.onMoveCancel({\r\n                      nativeEvent: event,\r\n                      type: 'mouse'\r\n                  });\r\n              }\r\n          };\r\n          this.onTouchMove = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              // Calculate delta from previous position and current\r\n              const { clientX, clientY } = this.getTouchCoords(event);\r\n              const deltaX = clientX - this.prevXPosition;\r\n              const deltaY = clientY - this.prevYPosition;\r\n              // Track the delta\r\n              this.deltaX = this.deltaX + deltaX;\r\n              this.deltaY = this.deltaY + deltaY;\r\n              if (this.checkThreshold()) {\r\n                  this.disableText(true);\r\n                  this.setCursor(true);\r\n                  this.deltaX = 0;\r\n                  this.deltaY = 0;\r\n                  this.started = true;\r\n                  this.props.onMoveStart({\r\n                      // TODO: Come back and clean this up...\r\n                      nativeEvent: Object.assign(Object.assign({}, event), { clientX,\r\n                          clientY }),\r\n                      type: 'touch'\r\n                  });\r\n              }\r\n              else {\r\n                  this.rqf = requestAnimationFrame(() => {\r\n                      this.props.onMove({\r\n                          // TODO: Come back and clean this up...\r\n                          nativeEvent: Object.assign(Object.assign({}, event), { clientX,\r\n                              clientY }),\r\n                          type: 'touch',\r\n                          x: deltaX,\r\n                          y: deltaY\r\n                      });\r\n                  });\r\n              }\r\n              this.prevXPosition = clientX;\r\n              this.prevYPosition = clientY;\r\n          };\r\n          this.onTouchEnd = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              this.disposeHandlers();\r\n              if (this.started) {\r\n                  this.props.onMoveEnd({\r\n                      nativeEvent: event,\r\n                      type: 'touch'\r\n                  });\r\n              }\r\n              else {\r\n                  this.props.onMoveCancel({\r\n                      nativeEvent: event,\r\n                      type: 'touch'\r\n                  });\r\n              }\r\n          };\r\n      }\r\n      componentWillUnmount() {\r\n          cancelAnimationFrame(this.rqf);\r\n          this.disposeHandlers();\r\n      }\r\n      disposeHandlers() {\r\n          window.removeEventListener('mousemove', this.onMouseMove);\r\n          window.removeEventListener('mouseup', this.onMouseUp);\r\n          window.removeEventListener('touchmove', this.onTouchMove);\r\n          window.removeEventListener('touchend', this.onTouchEnd);\r\n          this.setCursor(false);\r\n          this.disableText(true);\r\n      }\r\n      disableText(shouldDisable) {\r\n          if (this.props.disableText) {\r\n              toggleTextSelection(shouldDisable);\r\n          }\r\n      }\r\n      setCursor(set) {\r\n          let { cursor } = this.props;\r\n          if (cursor) {\r\n              if (!set) {\r\n                  cursor = 'inherit';\r\n              }\r\n              document.body.style['cursor'] = cursor;\r\n          }\r\n      }\r\n      checkThreshold() {\r\n          const { threshold } = this.props;\r\n          return (!this.started &&\r\n              (Math.abs(this.deltaX) > threshold || Math.abs(this.deltaY) > threshold));\r\n      }\r\n      getTouchCoords(event) {\r\n          const { clientX, clientY } = event.touches[0];\r\n          return {\r\n              clientX,\r\n              clientY\r\n          };\r\n      }\r\n      onMouseDown(event) {\r\n          const { preventRightClick, disabled } = this.props;\r\n          const shouldCancel = event.nativeEvent.which === 3 && preventRightClick;\r\n          if (shouldCancel || disabled) {\r\n              return;\r\n          }\r\n          event.preventDefault();\r\n          event.stopPropagation();\r\n          this.started = false;\r\n          // Always bind event so we cancel movement even if no action was taken\r\n          window.addEventListener('mousemove', this.onMouseMove);\r\n          window.addEventListener('mouseup', this.onMouseUp);\r\n      }\r\n      onTouchStart(event) {\r\n          const { disabled } = this.props;\r\n          if (disabled || event.touches.length !== 1) {\r\n              return;\r\n          }\r\n          event.preventDefault();\r\n          event.stopPropagation();\r\n          this.started = false;\r\n          this.prevXPosition = event.touches[0].clientX;\r\n          this.prevYPosition = event.touches[0].clientY;\r\n          // Always bind event so we cancel movement even if no action was taken\r\n          window.addEventListener('touchmove', this.onTouchMove);\r\n          window.addEventListener('touchend', this.onTouchEnd);\r\n      }\r\n      render() {\r\n          return react.Children.map(this.props.children, (child) => react.cloneElement(child, Object.assign(Object.assign({}, child.props), { onMouseDown: (e) => {\r\n                  this.onMouseDown(e);\r\n                  if (child.props.onMouseDown) {\r\n                      child.props.onMouseDown(e);\r\n                  }\r\n              }, onTouchStart: (e) => {\r\n                  this.onTouchStart(e);\r\n                  if (child.props.onTouchStart) {\r\n                      child.props.onTouchStart(e);\r\n                  }\r\n              } })));\r\n      }\r\n  }\r\n  Move.defaultProps = {\r\n      preventRightClick: true,\r\n      disableText: true,\r\n      threshold: 0,\r\n      onMoveStart: () => undefined,\r\n      onMove: () => undefined,\r\n      onMoveEnd: () => undefined,\r\n      onMoveCancel: () => undefined\r\n  };\n\n  function styleInject(css, ref) {\n    if ( ref === void 0 ) ref = {};\n    var insertAt = ref.insertAt;\n\n    if (!css || typeof document === 'undefined') { return; }\n\n    var head = document.head || document.getElementsByTagName('head')[0];\n    var style = document.createElement('style');\n    style.type = 'text/css';\n\n    if (insertAt === 'top') {\n      if (head.firstChild) {\n        head.insertBefore(style, head.firstChild);\n      } else {\n        head.appendChild(style);\n      }\n    } else {\n      head.appendChild(style);\n    }\n\n    if (style.styleSheet) {\n      style.styleSheet.cssText = css;\n    } else {\n      style.appendChild(document.createTextNode(css));\n    }\n  }\n\n  var css_248z$r = \".BrushHandle-module_handle__1HtKb {\\n  fill: var(--color-handle-fill);\\n  stroke: var(--color-handle-stroke);\\n}\\n\\n.BrushHandle-module_dragging__k86sG {\\n  fill: var(--color-handle-drag-fill);\\n}\\n\\n.BrushHandle-module_dot__vx-R8 {\\n  fill: var(--color-handle-dots);\\n}\\n\\n.BrushHandle-module_line__1jJ7Y {\\n  stroke: var(--color-handle-line);\\n}\\n\";\n  var css$r = {\"handle\":\"BrushHandle-module_handle__1HtKb\",\"dragging\":\"BrushHandle-module_dragging__k86sG\",\"dot\":\"BrushHandle-module_dot__vx-R8\",\"line\":\"BrushHandle-module_line__1jJ7Y\"};\n  styleInject(css_248z$r);\n\n  class BrushHandle extends react.PureComponent {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.state = {\r\n              isDragging: false\r\n          };\r\n      }\r\n      onMoveStart() {\r\n          this.setState({\r\n              isDragging: true\r\n          });\r\n      }\r\n      onMove(event) {\r\n          this.props.onHandleDrag(event.x);\r\n      }\r\n      onMoveEnd() {\r\n          this.setState({\r\n              isDragging: false\r\n          });\r\n      }\r\n      render() {\r\n          const { height } = this.props;\r\n          const { isDragging } = this.state;\r\n          return (jsxRuntime.jsx(Move, Object.assign({ cursor: \"ew-resize\", onMoveStart: bind__default['default'](this.onMoveStart, this), onMove: bind__default['default'](this.onMove, this), onMoveEnd: bind__default['default'](this.onMoveEnd, this) }, { children: jsxRuntime.jsxs(\"g\", { children: [jsxRuntime.jsx(\"line\", { className: css$r.line, y1: \"0\", y2: height, x1: \"5\", x2: \"5\" }, void 0),\r\n                      jsxRuntime.jsx(\"rect\", { className: classNames__default['default'](css$r.handle, { [css$r.dragging]: isDragging }), height: height - 10, style: { cursor: 'ew-resize' }, width: 8, y: \"5\", y1: height - 5 }, void 0),\r\n                      jsxRuntime.jsx(\"g\", Object.assign({ transform: `translate(-1, ${height / 2 - 10})`, style: { pointerEvents: 'none' } }, { children: d3Array.range(5).map((i) => (jsxRuntime.jsx(\"circle\", { cy: i * 5, cx: \"5\", r: \".5\", className: css$r.dot }, i))) }), void 0)] }, void 0) }), void 0));\r\n      }\r\n  }\n\n  var css_248z$q = \".BrushSlice-module_slice__sa839 {\\n  fill: var(--color-primary);\\n}\\n\\n.BrushSlice-module_unsliced__1Ls_5 {\\n  fill: var(--color-background);\\n  opacity: 0.5;\\n  pointer-events: none;\\n}\\n\";\n  var css$q = {\"slice\":\"BrushSlice-module_slice__sa839\",\"unsliced\":\"BrushSlice-module_unsliced__1Ls_5\"};\n  styleInject(css_248z$q);\n\n  class BrushSlice extends react.PureComponent {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.state = {\r\n              isDragging: false\r\n          };\r\n      }\r\n      onMoveStart() {\r\n          const { start, end, width } = this.props;\r\n          const hasNoSlice = start === 0 && end === width;\r\n          if (!hasNoSlice) {\r\n              this.setState({\r\n                  isDragging: true\r\n              });\r\n          }\r\n      }\r\n      onMove({ x }) {\r\n          const { onBrushChange, width } = this.props;\r\n          let { start, end } = this.props;\r\n          start = start + x;\r\n          end = end + x;\r\n          if (start >= 0 && end <= width) {\r\n              onBrushChange({\r\n                  start,\r\n                  end\r\n              });\r\n          }\r\n      }\r\n      onMoveEnd() {\r\n          this.setState({\r\n              isDragging: false\r\n          });\r\n      }\r\n      onHandleDrag(direction, deltaX) {\r\n          const { onBrushChange } = this.props;\r\n          let { start, end } = this.props;\r\n          start = direction === 'start' ? start + deltaX : start;\r\n          end = direction !== 'start' ? end + deltaX : end;\r\n          onBrushChange({\r\n              start,\r\n              end\r\n          });\r\n      }\r\n      render() {\r\n          const { height, start, end, width } = this.props;\r\n          const { isDragging } = this.state;\r\n          const sliceWidth = Math.max(end - start, 0);\r\n          const endSliceWidth = Math.max(width - end, 0);\r\n          const hasNoSlice = start === 0 && end === width;\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"rect\", { className: css$q.unsliced, height: height, width: start }, void 0),\r\n                  jsxRuntime.jsx(\"rect\", { transform: `translate(${end}, 0)`, className: css$q.unsliced, height: height, width: endSliceWidth }, void 0),\r\n                  jsxRuntime.jsxs(\"g\", Object.assign({ transform: `translate(${start}, 0)` }, { children: [jsxRuntime.jsx(Move, Object.assign({ cursor: \"grabbing\", onMoveStart: bind__default['default'](this.onMoveStart, this), onMove: bind__default['default'](this.onMove, this), onMoveEnd: bind__default['default'](this.onMoveEnd, this) }, { children: jsxRuntime.jsx(\"rect\", { className: css$q.slice, height: height, width: sliceWidth, style: {\r\n                                      cursor: isDragging ? 'grabbing' : 'grab',\r\n                                      opacity: hasNoSlice ? 0 : 0.1,\r\n                                      pointerEvents: !hasNoSlice ? 'initial' : 'none'\r\n                                  } }, void 0) }), void 0),\r\n                          jsxRuntime.jsx(\"g\", Object.assign({ transform: 'translate(-4, 0)' }, { children: jsxRuntime.jsx(BrushHandle, { height: height, onHandleDrag: bind__default['default'](this.onHandleDrag, this, 'start') }, void 0) }), void 0),\r\n                          jsxRuntime.jsx(\"g\", Object.assign({ transform: `translate(${sliceWidth - 5}, 0)` }, { children: jsxRuntime.jsx(BrushHandle, { height: height, onHandleDrag: bind__default['default'](this.onHandleDrag, this, 'end') }, void 0) }), void 0)] }), void 0)] }, void 0));\r\n      }\r\n  }\n\n  class Brush extends react.PureComponent {\r\n      constructor(props) {\r\n          super(props);\r\n          this.state = {\r\n              isSlicing: false,\r\n              isPanning: false,\r\n              start: props.start || 0,\r\n              end: props.end || props.width\r\n          };\r\n      }\r\n      componentDidUpdate(prevProps) {\r\n          // If no brush is defined and width updates, update the offset of the end handle.\r\n          if (prevProps.width !== this.props.width &&\r\n              this.state.end === prevProps.width) {\r\n              this.setState({ end: this.props.width });\r\n          }\r\n          // Don't update if we are doing the slicing\r\n          if (!this.state.isSlicing && !this.state.isPanning) {\r\n              const { start, end } = this.props;\r\n              const startUpdated = start !== prevProps.start && start !== this.state.start;\r\n              const endUpdated = end !== prevProps.end && end !== this.state.end;\r\n              if (startUpdated || endUpdated) {\r\n                  this.setState(Object.assign({}, this.ensurePositionInBounds(start, end)));\r\n              }\r\n          }\r\n      }\r\n      getStartEnd(event, state = this.state) {\r\n          const { x } = this.getPositionsForPanEvent(event);\r\n          let start;\r\n          let end;\r\n          if (x < state.initial) {\r\n              start = x;\r\n              end = state.initial;\r\n          }\r\n          else {\r\n              start = state.initial;\r\n              end = x;\r\n          }\r\n          return this.ensurePositionInBounds(start, end, state);\r\n      }\r\n      getPositionsForPanEvent(event) {\r\n          const eventObj = {\r\n              target: this.ref,\r\n              clientX: event.clientX,\r\n              clientY: event.clientY\r\n          };\r\n          return getPositionForTarget(eventObj);\r\n      }\r\n      ensurePositionInBounds(newStart, newEnd, state = this.state) {\r\n          const { width } = this.props;\r\n          let start = newStart;\r\n          let end = newEnd;\r\n          if (start === undefined || start <= 0) {\r\n              start = 0;\r\n          }\r\n          if (end === undefined) {\r\n              end = width;\r\n          }\r\n          if (start > end) {\r\n              start = state.start;\r\n          }\r\n          if (end < start) {\r\n              end = state.end;\r\n          }\r\n          if (end >= width) {\r\n              end = width;\r\n          }\r\n          return { start, end };\r\n      }\r\n      onMoveStart(event) {\r\n          const { disabled } = this.props;\r\n          if (!disabled) {\r\n              const positions = this.getPositionsForPanEvent(event.nativeEvent);\r\n              this.setState({\r\n                  isSlicing: true,\r\n                  initial: positions.x\r\n              });\r\n          }\r\n      }\r\n      onMove(event) {\r\n          const { disabled } = this.props;\r\n          if (!disabled) {\r\n              this.setState((prev) => {\r\n                  const { onBrushChange } = this.props;\r\n                  // Use setState callback so we can get the true previous value\r\n                  // rather than the bulk updated value react will trigger\r\n                  const { start, end } = this.getStartEnd(event.nativeEvent, prev);\r\n                  if (onBrushChange) {\r\n                      onBrushChange({\r\n                          start,\r\n                          end\r\n                      });\r\n                  }\r\n                  return {\r\n                      start,\r\n                      end\r\n                  };\r\n              });\r\n          }\r\n      }\r\n      onMoveEnd() {\r\n          this.setState({\r\n              isSlicing: false\r\n          });\r\n      }\r\n      onMoveCancel() {\r\n          const val = {\r\n              start: 0,\r\n              end: this.props.width\r\n          };\r\n          this.setState(val);\r\n          if (this.props.onBrushChange) {\r\n              this.props.onBrushChange(val);\r\n          }\r\n      }\r\n      onSliceChange(event) {\r\n          const val = this.ensurePositionInBounds(event.start, event.end);\r\n          this.setState(val);\r\n          if (this.props.onBrushChange) {\r\n              this.props.onBrushChange(val);\r\n          }\r\n      }\r\n      render() {\r\n          const { children, disabled, height, width } = this.props;\r\n          const { isSlicing, start, end } = this.state;\r\n          return (jsxRuntime.jsx(Move, Object.assign({ cursor: \"crosshair\", onMoveStart: bind__default['default'](this.onMoveStart, this), onMove: bind__default['default'](this.onMove, this), onMoveEnd: bind__default['default'](this.onMoveEnd, this), onMoveCancel: bind__default['default'](this.onMoveCancel, this) }, { children: jsxRuntime.jsxs(\"g\", Object.assign({ style: {\r\n                      pointerEvents: isSlicing ? 'none' : 'auto',\r\n                      cursor: disabled ? '' : 'crosshair'\r\n                  } }, { children: [children, !disabled && (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"rect\", { ref: (ref) => (this.ref = ref), height: height, width: width, opacity: 0 }, void 0),\r\n                              start !== undefined && end !== undefined && (jsxRuntime.jsx(BrushSlice, { start: start, end: end, height: height, width: width, onBrushChange: bind__default['default'](this.onSliceChange, this) }, void 0))] }, void 0))] }), void 0) }), void 0));\r\n      }\r\n  }\r\n  Brush.defaultProps = {\r\n      disabled: false,\r\n      height: 0,\r\n      width: 0,\r\n      onBrushChange: () => undefined\r\n  };\n\n  /*! *****************************************************************************\r\n  Copyright (c) Microsoft Corporation. All rights reserved.\r\n  Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n  this file except in compliance with the License. You may obtain a copy of the\r\n  License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n  THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n  KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n  WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n  MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n  See the Apache Version 2.0 License for specific language governing permissions\r\n  and limitations under the License.\r\n  ***************************************************************************** */\r\n\r\n  function __rest(s, e) {\r\n      var t = {};\r\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n          t[p] = s[p];\r\n      if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n          for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n              if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                  t[p[i]] = s[p[i]];\r\n          }\r\n      return t;\r\n  }\n\n  class ChartBrush extends react.Component {\r\n      getBrushOffset() {\r\n          let start;\r\n          let end;\r\n          const { disabled, domain, scale } = this.props;\r\n          if (!disabled && domain) {\r\n              start = scale(domain[0]);\r\n              end = scale(domain[1]);\r\n          }\r\n          return { start, end };\r\n      }\r\n      onBrushChange(event) {\r\n          const { onBrushChange, scale, width } = this.props;\r\n          if (onBrushChange) {\r\n              let domain;\r\n              if (event.start !== undefined &&\r\n                  event.end !== undefined &&\r\n                  (event.start !== 0 || event.end !== width)) {\r\n                  if (scale.invert) {\r\n                      const start = scale.invert(event.start);\r\n                      const end = scale.invert(event.end);\r\n                      domain = [start, end];\r\n                  }\r\n                  else {\r\n                      // invert scaleBend\r\n                      const band = scale.step();\r\n                      const start = Math.ceil((event.start - band / 2) / band);\r\n                      const end = Math.ceil((event.end - band / 2) / band);\r\n                      domain = [scale.domain()[start], scale.domain()[end]];\r\n                  }\r\n              }\r\n              onBrushChange({\r\n                  domain\r\n              });\r\n          }\r\n      }\r\n      render() {\r\n          const _a = this.props, { scale, height, width, children } = _a, rest = __rest(_a, [\"scale\", \"height\", \"width\", \"children\"]);\r\n          return (jsxRuntime.jsx(Brush, Object.assign({}, rest, this.getBrushOffset(), { height: height, width: width, onBrushChange: bind__default['default'](this.onBrushChange, this) }, { children: children }), void 0));\r\n      }\r\n  }\r\n  ChartBrush.defaultProps = {};\n\n  const ChartContext = react.createContext({});\r\n  const { Provider: ChartProvider, Consumer: ChartConsumer } = ChartContext;\r\n  const useChart = () => {\r\n      const context = react.useContext(ChartContext);\r\n      if (context === undefined) {\r\n          throw new Error('`useChart` hook must be used within a `ChartProvider`');\r\n      }\r\n      return context;\r\n  };\n\n  var css_248z$p = \".ChartContainer-module_container__1PaLd {\\n  /** Old mappings - to be removed in next major */\\n  --color-background: rgb(51, 51, 51);\\n  --color-on-background: #fff;\\n\\n  --color-tooltip: rgba(0, 5, 11, 0.9);\\n  --color-on-tooltip: #fff;\\n\\n  --color-handle-fill: #2c343a;\\n  --color-handle-stroke: #67c2e4;\\n  --color-handle-drag-fill: transparent;\\n  --color-handle-dots: #67c2e4;\\n  --color-handle-line: #67c2e4;\\n\\n  /** New mappings */\\n  --tooltip-background: var(--color-tooltip);\\n  --tooltip-color: var(--color-on-tooltip);\\n  --tooltip-border-radius: 5px;\\n  --tooltip-spacing: 5px;\\n\\n  --chart-background: var(--color-background);\\n  --chart-color: var(--color-on-background);\\n\\n  --chart-handle-fill: var(--color-handle-fill);\\n  --chart-handle-stroke: var(--color-handle-stroke);\\n  --chart-handle-drag-fill: var(--color-handle-drag-fill);\\n  --chart-handle-dots: var(--color-handle-dots);\\n  --chart-handle-line: var(--color-handle-line);\\n}\\n\";\n  var css$p = {\"container\":\"ChartContainer-module_container__1PaLd\"};\n  styleInject(css_248z$p);\n\n  const ChartContainer = (_a) => {\r\n      var { className, children, center, centerX, centerY, style, margins, containerClassName, xAxisVisible, yAxisVisible, id } = _a, rest = __rest(_a, [\"className\", \"children\", \"center\", \"centerX\", \"centerY\", \"style\", \"margins\", \"containerClassName\", \"xAxisVisible\", \"yAxisVisible\", \"id\"]);\r\n      const curId = rdk.useId(id);\r\n      const [xAxisSized, setXAxisSized] = react.useState(false);\r\n      const [yAxisSized, setYAxisSized] = react.useState(false);\r\n      const [xOffset, setXOffset] = react.useState(0);\r\n      const [yOffset, setYOffset] = react.useState(0);\r\n      const { observe, width, height } = useDimensions__default['default']();\r\n      const chartSized = react.useMemo(() => {\r\n          if (!height || !width) {\r\n              return false;\r\n          }\r\n          // TODO: @amcdnl refactor this to account for 0-2 axises on x/y\r\n          if (xAxisVisible && !xAxisSized) {\r\n              return false;\r\n          }\r\n          if (yAxisVisible && !yAxisSized) {\r\n              return false;\r\n          }\r\n          return true;\r\n      }, [height, width, xAxisSized, xAxisVisible, yAxisVisible, yAxisSized]);\r\n      const onUpdateAxes = react.useCallback((orientation, event) => {\r\n          if (orientation === 'horizontal') {\r\n              setXAxisSized(true);\r\n          }\r\n          else {\r\n              setYAxisSized(true);\r\n          }\r\n          if (event.height) {\r\n              setYOffset(event.height);\r\n          }\r\n          if (event.width) {\r\n              setXOffset(event.width);\r\n          }\r\n      }, []);\r\n      const childProps = react.useMemo(() => (Object.assign({ chartSized, id: curId, updateAxes: onUpdateAxes, yAxisSized,\r\n          xAxisSized }, getDimension({\r\n          margins,\r\n          height,\r\n          width,\r\n          yOffset,\r\n          xOffset\r\n      }))), [\r\n          chartSized,\r\n          curId,\r\n          onUpdateAxes,\r\n          yAxisSized,\r\n          xAxisSized,\r\n          margins,\r\n          height,\r\n          width,\r\n          yOffset,\r\n          xOffset\r\n      ]);\r\n      const translateX = center || centerX ? width / 2 : childProps.xMargin;\r\n      const translateY = center || centerY ? height / 2 : childProps.yMargin;\r\n      const styleHeight = rest.height !== undefined && rest.height !== null ? rest.height : '100%';\r\n      const styleWidth = rest.width !== undefined && rest.width !== null ? rest.width : '100%';\r\n      return (jsxRuntime.jsx(\"div\", Object.assign({ ref: observe, style: { height: styleHeight, width: styleWidth }, className: classNames__default['default'](containerClassName, css$p.container) }, { children: jsxRuntime.jsx(ChartProvider, Object.assign({ value: childProps }, { children: height > 0 && width > 0 && (jsxRuntime.jsx(\"svg\", Object.assign({ width: width, height: height, className: className, style: style }, { children: jsxRuntime.jsx(\"g\", Object.assign({ transform: `translate(${translateX}, ${translateY})` }, { children: children(childProps) }), void 0) }), void 0)) }), void 0) }), void 0));\r\n  };\n\n  function normalizeValue(value, maxBigInt) {\r\n      if (bigInt__default['default'].isInstance(value)) {\r\n          if (maxBigInt.greater(1000000)) {\r\n              const divideBy = maxBigInt.divide(1000000);\r\n              return value.divide(divideBy).toJSNumber();\r\n          }\r\n          else {\r\n              return value.toJSNumber();\r\n          }\r\n      }\r\n      else {\r\n          return value;\r\n      }\r\n  }\r\n  function normalizeValueForFormatting(value) {\r\n      if (bigInt__default['default'].isInstance(value)) {\r\n          return bigIntegerToLocaleString(value);\r\n      }\r\n      return value;\r\n  }\r\n  function getMaxBigIntegerForNested(series) {\r\n      let maxBigInteger = bigInt__default['default'].one;\r\n      for (const group of series) {\r\n          const maxBigIntegerForGroup = getMaxBigIntegerForShallow(group.data);\r\n          if (maxBigIntegerForGroup.greater(maxBigInteger)) {\r\n              maxBigInteger = maxBigIntegerForGroup;\r\n          }\r\n      }\r\n      return maxBigInteger;\r\n  }\r\n  function getMaxBigIntegerForShallow(series) {\r\n      let maxBigInteger = bigInt__default['default'].one;\r\n      for (const point of series) {\r\n          if (bigInt__default['default'].isInstance(point.data)) {\r\n              const bigInteger = point.data;\r\n              if (bigInteger.greater(maxBigInteger)) {\r\n                  maxBigInteger = bigInteger;\r\n              }\r\n          }\r\n      }\r\n      return maxBigInteger;\r\n  }\n\n  /**\r\n   * Accepts a `ChartDataShape` and transforms it to a chart readable data shape.\r\n   *\r\n   * Example:\r\n   *\r\n   *   [{\r\n   *    key: 'Threat Intel',\r\n   *    data: [{ key:'2011', data: 25 }]\r\n   *   }]\r\n   *\r\n   * will be transformed to:\r\n   *\r\n   *  [{\r\n   *    key: 'Threat Intel',\r\n   *    data: [\r\n   *      key: 'Threat Intel',\r\n   *      x: '2011',\r\n   *      y: 25\r\n   *    ]\r\n   *  }]\r\n   */\r\n  function buildNestedChartData(series, sort = false, direction = 'vertical') {\r\n      let result = [];\r\n      const maxBigInteger = getMaxBigIntegerForNested(series);\r\n      const isVertical = direction === 'vertical';\r\n      for (const point of series) {\r\n          for (const nestedPoint of point.data) {\r\n              const key = normalizeValueForFormatting(point.key);\r\n              let idx = result.findIndex((r) => {\r\n                  const left = r.key;\r\n                  if (left instanceof Date && key instanceof Date) {\r\n                      return left.getTime() === key.getTime();\r\n                  }\r\n                  return left === key;\r\n              });\r\n              if (idx === -1) {\r\n                  result.push({\r\n                      key,\r\n                      metadata: point.metadata,\r\n                      data: []\r\n                  });\r\n                  idx = result.length - 1;\r\n              }\r\n              const x = normalizeValue(isVertical ? nestedPoint.key : nestedPoint.data, maxBigInteger);\r\n              const y = normalizeValue(isVertical ? nestedPoint.data : nestedPoint.key, maxBigInteger);\r\n              result[idx].data.push({\r\n                  key,\r\n                  value: normalizeValueForFormatting(nestedPoint.data),\r\n                  metadata: nestedPoint.metadata,\r\n                  id: point.id,\r\n                  x,\r\n                  x0: isVertical ? x : 0,\r\n                  x1: x,\r\n                  y,\r\n                  y0: isVertical ? 0 : y,\r\n                  y1: y\r\n              });\r\n          }\r\n      }\r\n      // Sort the series data based on the median value\r\n      if (sort) {\r\n          result = result.sort((a, b) => {\r\n              const aMax = d3Array.median(a.data, (d) => d.y);\r\n              const bMax = d3Array.median(b.data, (d) => d.y);\r\n              return aMax < bMax ? 1 : -1;\r\n          });\r\n      }\r\n      return result;\r\n  }\r\n  function addToChartType(a, b) {\r\n      if (bigInt__default['default'].isInstance(a) && bigInt__default['default'].isInstance(b)) {\r\n          return a.add(b);\r\n      }\r\n      else if (a instanceof Date && typeof b === 'number') {\r\n          return new Date(a.valueOf() + b);\r\n      }\r\n      else if (typeof a === 'number' && typeof b === 'number') {\r\n          return a + b;\r\n      }\r\n      else {\r\n          throw new Error('Invalid types to addToChartTypes');\r\n      }\r\n  }\r\n  /**\r\n   * Accepts a shallow shape and normalizes it to a chart readable format.\r\n   */\r\n  function buildShallowChartData(series, direction = 'vertical', binSize = undefined) {\r\n      const result = [];\r\n      const maxBigInteger = getMaxBigIntegerForShallow(series);\r\n      const isVertical = direction === 'vertical';\r\n      for (const point of series) {\r\n          const isTuple = Array.isArray(point.data);\r\n          let k1 = point.key;\r\n          if (binSize) {\r\n              k1 = addToChartType(point.key, binSize);\r\n          }\r\n          const props = {\r\n              k0: normalizeValue(point.key, maxBigInteger),\r\n              k1: normalizeValue(k1, maxBigInteger),\r\n              v0: normalizeValue(isTuple ? point.data[0] : 0, maxBigInteger),\r\n              v1: normalizeValue(isTuple ? point.data[1] : point.data, maxBigInteger)\r\n          };\r\n          const xProp = isVertical ? 'k' : 'v';\r\n          const yProp = isVertical ? 'v' : 'k';\r\n          result.push({\r\n              key: normalizeValueForFormatting(props.k0),\r\n              value: normalizeValueForFormatting(props.v1),\r\n              metadata: point.metadata,\r\n              id: point.id,\r\n              x: props[`${xProp}1`],\r\n              x0: props[`${xProp}0`],\r\n              x1: props[`${xProp}1`],\r\n              y: props[`${yProp}1`],\r\n              y0: props[`${yProp}0`],\r\n              y1: props[`${yProp}1`]\r\n          });\r\n      }\r\n      return result;\r\n  }\n\n  /**\r\n   * Build a histogram given data set.\r\n   */\r\n  function buildBins(xScale, thresholds, data) {\r\n      const layout = d3Array.histogram()\r\n          .value((d) => d.x)\r\n          .domain(xScale.domain())\r\n          .thresholds(xScale.ticks(thresholds));\r\n      const bins = layout(data);\r\n      return bins.map((bin) => ({\r\n          x0: bin.x0,\r\n          x1: bin.x1,\r\n          y: bin.length,\r\n          y0: 0,\r\n          y1: bin.length\r\n      }));\r\n  }\n\n  /**\r\n   * Given a dataset like:\r\n   *\r\n   *   [{\r\n   *    key: 'Threat Intel',\r\n   *    data: [{ key:'2011', data: 25 }]\r\n   *   }]\r\n   *\r\n   * it will transform it to:\r\n   *\r\n   *  [\r\n   *    { x: 'Theat Intel', '2011': 25 }\r\n   *  ]\r\n   */\r\n  function transformDataToStack$1(data) {\r\n      const result = [];\r\n      const maxBigInteger = getMaxBigIntegerForNested(data);\r\n      for (const category of data) {\r\n          for (const value of category.data) {\r\n              let idx = result.findIndex((r) => {\r\n                  if (r.x instanceof Date && category.key instanceof Date) {\r\n                      return r.x.getTime() === category.key.getTime();\r\n                  }\r\n                  return r.x === category.key;\r\n              });\r\n              if (idx === -1) {\r\n                  result.push({\r\n                      metadata: category.metadata,\r\n                      x: category.key,\r\n                      formattedValues: {}\r\n                  });\r\n                  idx = result.length - 1;\r\n              }\r\n              result[idx].metadata = value.metadata;\r\n              result[idx][value.key] = normalizeValue(value.data, maxBigInteger);\r\n              result[idx].formattedValues[value.key] =\r\n                  normalizeValueForFormatting(value.data);\r\n          }\r\n      }\r\n      return result;\r\n  }\r\n  /**\r\n   * Translates the stack data to a chart standard dataset.\r\n   */\r\n  function transformStackToData$1(stackData, direction = 'vertical') {\r\n      const result = [];\r\n      const isVertical = direction === 'vertical';\r\n      // Transform the data from the d3 stack format to our internal format\r\n      for (const category of stackData) {\r\n          for (const point of category) {\r\n              const key = point.data.x;\r\n              let idx = result.findIndex((r) => {\r\n                  if (r.key instanceof Date && key instanceof Date) {\r\n                      return r.key.getTime() === key.getTime();\r\n                  }\r\n                  return r.key === key;\r\n              });\r\n              if (idx === -1) {\r\n                  result.push({\r\n                      key,\r\n                      data: []\r\n                  });\r\n                  idx = result.length - 1;\r\n              }\r\n              const categoryKey = category.key;\r\n              const y = point.data[categoryKey];\r\n              const [y0, y1] = point;\r\n              result[idx].data.push({\r\n                  metadata: point.data.metadata,\r\n                  key,\r\n                  x: isVertical ? categoryKey : y1,\r\n                  x0: isVertical ? categoryKey : y0,\r\n                  x1: isVertical ? categoryKey : y1,\r\n                  y: isVertical ? y : categoryKey,\r\n                  y0: isVertical ? y0 : categoryKey,\r\n                  y1: isVertical ? y1 : categoryKey,\r\n                  value: point.data.formattedValues[categoryKey]\r\n              });\r\n          }\r\n      }\r\n      return result;\r\n  }\r\n  /**\r\n   * Builds a stack dataset from the standard data format.\r\n   */\r\n  function buildBarStackData(data = [], offset = 'default', direction = 'vertical') {\r\n      const keys = uniqueBy(data, (d) => d.data, (d) => d.key);\r\n      const stackData = transformDataToStack$1(data);\r\n      let stackFn = d3Shape.stack();\r\n      if (offset === 'expand') {\r\n          stackFn = stackFn.offset(d3Shape.stackOffsetExpand);\r\n      }\r\n      else if (offset === 'diverging') {\r\n          stackFn = stackFn.offset(d3Shape.stackOffsetDiverging);\r\n      }\r\n      const result = stackFn.keys(keys)(stackData);\r\n      return transformStackToData$1(result, direction);\r\n  }\n\n  /**\r\n   * Builds a stack dataset from the standard data format.\r\n   */\r\n  function buildMarimekkoData(data = []) {\r\n      const result = buildBarStackData(data, 'expand');\r\n      const sums = {};\r\n      // Calculate the sum for each series and the total sum\r\n      let totalSum = 0;\r\n      for (const series of result) {\r\n          const sum = series.data.reduce((acc, cur) => acc + cur.y, 0);\r\n          sums[series.key] = sum;\r\n          totalSum += sum;\r\n      }\r\n      // Calculate the x0/x1 for each series\r\n      let prev = 0;\r\n      for (const series of result) {\r\n          const x0 = prev;\r\n          const x1 = prev + sums[series.key] / totalSum;\r\n          prev = x1;\r\n          for (const point of series.data) {\r\n              point.x0 = x0;\r\n              point.x1 = x1;\r\n          }\r\n      }\r\n      return result;\r\n  }\n\n  /**\r\n   * Given a dataset like:\r\n   *\r\n   *   [{\r\n   *    key: 'Threat Intel',\r\n   *    data: [{ key:'2011', data: 25 }]\r\n   *   }]\r\n   *\r\n   * it will transform it to:\r\n   *\r\n   *  [\r\n   *    { x: '2011', 'Theat Intel': 25 }\r\n   *  ]\r\n   */\r\n  function transformDataToStack(data) {\r\n      const result = [];\r\n      const maxBigInteger = getMaxBigIntegerForNested(data);\r\n      for (const category of data) {\r\n          for (const value of category.data) {\r\n              let idx = result.findIndex((r) => {\r\n                  if (r.x instanceof Date && value.key instanceof Date) {\r\n                      return r.x.getTime() === value.key.getTime();\r\n                  }\r\n                  return r.x === value.key;\r\n              });\r\n              if (idx === -1) {\r\n                  result.push({\r\n                      x: value.key,\r\n                      formattedValues: {}\r\n                  });\r\n                  idx = result.length - 1;\r\n              }\r\n              result[idx][category.key] = normalizeValue(value.data, maxBigInteger);\r\n              result[idx].formattedValues[category.key] = normalizeValueForFormatting(value.data);\r\n          }\r\n      }\r\n      return result;\r\n  }\r\n  /**\r\n   * Translates the stack data to a chart standard dataset.\r\n   */\r\n  function transformStackToData(stackData) {\r\n      const result = [];\r\n      for (const category of stackData) {\r\n          const series = [];\r\n          for (const point of category) {\r\n              const [y0, y1] = point;\r\n              const x = point.data.x;\r\n              series.push({\r\n                  key: category.key,\r\n                  x,\r\n                  x0: x,\r\n                  x1: x,\r\n                  y: y1 - y0,\r\n                  y0,\r\n                  y1,\r\n                  value: point.data.formattedValues[category.key]\r\n              });\r\n          }\r\n          result.push({\r\n              key: category.key,\r\n              data: series\r\n          });\r\n      }\r\n      return result;\r\n  }\r\n  /**\r\n   * Builds a stack dataset from the standard data format.\r\n   */\r\n  function buildStackData(data, normalized = false) {\r\n      const keys = uniqueBy(data, (d) => d.key);\r\n      const stackData = transformDataToStack(data);\r\n      const stackFn = !normalized ? d3Shape.stack() : d3Shape.stack().offset(d3Shape.stackOffsetExpand);\r\n      const result = stackFn.keys(keys)(stackData);\r\n      return transformStackToData(result);\r\n  }\n\n  const buildWaterfall = (series, direction = 'vertical', binSize = undefined) => {\r\n      const data = buildShallowChartData(series, direction, binSize);\r\n      const isVertical = direction === 'vertical';\r\n      const v = isVertical ? 'y' : 'x';\r\n      let cumulative = 0;\r\n      for (const point of data) {\r\n          point[`${v}0`] = cumulative;\r\n          cumulative += point[v];\r\n          point[`${v}1`] = cumulative;\r\n          point[v] = cumulative;\r\n      }\r\n      return data;\r\n  };\n\n  class Pan extends react.Component {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.prevXPosition = 0;\r\n          this.prevYPosition = 0;\r\n          this.started = false;\r\n          this.deltaX = 0;\r\n          this.deltaY = 0;\r\n          this.childRef = react.createRef();\r\n          this.onMouseDown = (event) => {\r\n              // Stop at disabled\r\n              if (this.props.disabled) {\r\n                  return;\r\n              }\r\n              // Ignore right click\r\n              if (event.which === 3) {\r\n                  return;\r\n              }\r\n              // If global panning is turned off, it will only pan on the container\r\n              if (!this.props.globalPanning &&\r\n                  event.target &&\r\n                  !event.target.classList.contains('pan-container')) {\r\n                  return;\r\n              }\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              toggleTextSelection(false);\r\n              this.started = false;\r\n              // Always bind event so we cancel movement even if no action was taken\r\n              window.addEventListener('mousemove', this.onMouseMove);\r\n              window.addEventListener('mouseup', this.onMouseUp);\r\n          };\r\n          this.onMouseMove = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              this.deltaX = this.deltaX + event.movementX;\r\n              this.deltaY = this.deltaY + event.movementY;\r\n              if (this.checkThreshold()) {\r\n                  if (this.props.cursor) {\r\n                      document.body.style['cursor'] = this.props.cursor;\r\n                  }\r\n                  this.deltaX = 0;\r\n                  this.deltaY = 0;\r\n                  this.started = true;\r\n                  this.onPanStart(event, 'mouse');\r\n              }\r\n              else {\r\n                  this.pan(event.movementX, event.movementY, event, 'mouse');\r\n              }\r\n          };\r\n          this.onMouseUp = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              this.disposeHandlers();\r\n              toggleTextSelection(true);\r\n              if (this.started) {\r\n                  this.onPanEnd(event, 'mouse');\r\n              }\r\n              else {\r\n                  this.props.onPanCancel({\r\n                      nativeEvent: event,\r\n                      source: 'mouse'\r\n                  });\r\n              }\r\n          };\r\n          this.onTouchStart = (event) => {\r\n              // Stop at disabled\r\n              if (this.props.disabled) {\r\n                  return;\r\n              }\r\n              // Reqquire more than one touch\r\n              if (event.touches.length !== 1) {\r\n                  return;\r\n              }\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              toggleTextSelection(false);\r\n              this.started = false;\r\n              this.prevXPosition = event.touches[0].clientX;\r\n              this.prevYPosition = event.touches[0].clientY;\r\n              // Always bind event so we cancel movement even if no action was taken\r\n              window.addEventListener('touchmove', this.onTouchMove);\r\n              window.addEventListener('touchend', this.onTouchEnd);\r\n          };\r\n          this.onTouchMove = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              // Calculate delta from previous position and current\r\n              const x = event.touches[0].clientX;\r\n              const y = event.touches[0].clientY;\r\n              const deltaX = x - this.prevXPosition;\r\n              const deltaY = y - this.prevYPosition;\r\n              this.deltaX = this.deltaX + deltaX;\r\n              this.deltaY = this.deltaY + deltaY;\r\n              if (this.checkThreshold()) {\r\n                  this.deltaX = 0;\r\n                  this.deltaY = 0;\r\n                  this.started = true;\r\n                  this.onPanStart(event, 'touch');\r\n              }\r\n              else {\r\n                  const contrained = this.pan(deltaX, deltaY, event, 'touch');\r\n                  if (!contrained) {\r\n                      this.prevXPosition = x;\r\n                      this.prevYPosition = y;\r\n                  }\r\n              }\r\n          };\r\n          this.onTouchEnd = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              this.disposeHandlers();\r\n              toggleTextSelection(true);\r\n              if (this.started) {\r\n                  this.onPanEnd(event, 'touch');\r\n              }\r\n              else {\r\n                  this.props.onPanCancel({\r\n                      nativeEvent: event,\r\n                      source: 'touch'\r\n                  });\r\n              }\r\n          };\r\n      }\r\n      componentDidMount() {\r\n          if (this.childRef.current) {\r\n              this.childRef.current.addEventListener('mousedown', this.onMouseDown, {\r\n                  passive: false\r\n              });\r\n              this.childRef.current.addEventListener('touchstart', this.onTouchStart, {\r\n                  passive: false\r\n              });\r\n          }\r\n      }\r\n      componentWillUnmount() {\r\n          this.disposeHandlers();\r\n          if (this.childRef.current) {\r\n              this.childRef.current.removeEventListener('mousedown', this.onMouseDown);\r\n              this.childRef.current.removeEventListener('touchstart', this.onTouchStart);\r\n          }\r\n      }\r\n      disposeHandlers() {\r\n          window.removeEventListener('mousemove', this.onMouseMove);\r\n          window.removeEventListener('mouseup', this.onMouseUp);\r\n          window.removeEventListener('touchmove', this.onTouchMove);\r\n          window.removeEventListener('touchend', this.onTouchEnd);\r\n          // Reset cursor on body back to original\r\n          document.body.style['cursor'] = 'inherit';\r\n          toggleTextSelection(true);\r\n      }\r\n      checkThreshold() {\r\n          const { threshold } = this.props;\r\n          return (!this.started &&\r\n              (Math.abs(this.deltaX) > threshold || Math.abs(this.deltaY) > threshold));\r\n      }\r\n      onPanStart(nativeEvent, source) {\r\n          this.props.onPanStart({\r\n              nativeEvent,\r\n              source\r\n          });\r\n      }\r\n      onPanMove(x, y, source, nativeEvent) {\r\n          this.props.onPanMove({\r\n              source,\r\n              nativeEvent,\r\n              x,\r\n              y\r\n          });\r\n      }\r\n      onPanEnd(nativeEvent, source) {\r\n          const { onPanEnd } = this.props;\r\n          onPanEnd({\r\n              nativeEvent,\r\n              source\r\n          });\r\n      }\r\n      pan(x, y, nativeEvent, source) {\r\n          const { scale, constrain, width, height, matrix } = this.props;\r\n          const newMatrix = transformationMatrix.smoothMatrix(transformationMatrix.transform(matrix, transformationMatrix.translate(x / scale, y / scale)), 100);\r\n          const shouldConstrain = constrain && constrainMatrix(height, width, newMatrix);\r\n          if (!shouldConstrain) {\r\n              this.onPanMove(newMatrix.e, newMatrix.f, source, nativeEvent);\r\n          }\r\n          return shouldConstrain;\r\n      }\r\n      render() {\r\n          return jsxRuntime.jsx(\"g\", Object.assign({ ref: this.childRef }, { children: this.props.children }), void 0);\r\n      }\r\n  }\r\n  Pan.defaultProps = {\r\n      x: 0,\r\n      y: 0,\r\n      disabled: false,\r\n      scale: 1,\r\n      threshold: 10,\r\n      globalPanning: true,\r\n      onPanStart: () => undefined,\r\n      onPanMove: () => undefined,\r\n      onPanEnd: () => undefined,\r\n      onPanCancel: () => undefined\r\n  };\n\n  /**\r\n   * Gets the position between a given set of points.\r\n   */\r\n  const getMidpoint = (pointA, pointB) => ({\r\n      x: (pointA.x + pointB.x) / 2,\r\n      y: (pointA.y + pointB.y) / 2\r\n  });\r\n  /**\r\n   * Gets the distance between a given set of points.\r\n   */\r\n  const getDistanceBetweenPoints = (pointA, pointB) => Math.sqrt(Math.pow(pointB.y - pointA.y, 2) + Math.pow(pointB.x - pointA.x, 2));\r\n  /**\r\n   * Get touch points.\r\n   */\r\n  function getTouchPoints(event, node) {\r\n      const { left, top } = node.getBoundingClientRect();\r\n      const [pointA, pointB] = [...event.touches].map((touch) => ({\r\n          x: touch.clientX - Math.round(left),\r\n          y: touch.clientY - Math.round(top)\r\n      }));\r\n      const distance = getDistanceBetweenPoints(pointA, pointB);\r\n      const midpoint = getMidpoint(pointA, pointB);\r\n      return {\r\n          pointA,\r\n          pointB,\r\n          distance,\r\n          midpoint\r\n      };\r\n  }\n\n  class Zoom extends react.Component {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.childRef = react.createRef();\r\n          this.onMouseWheel = (event) => {\r\n              const { disableMouseWheel, requireZoomModifier, matrix, onZoomEnd } = this.props;\r\n              if (disableMouseWheel) {\r\n                  return false;\r\n              }\r\n              const hasModifier = event.metaKey || event.ctrlKey;\r\n              if (requireZoomModifier && !hasModifier) {\r\n                  return false;\r\n              }\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              const point = getPointFromMatrix(event, matrix);\r\n              if (point) {\r\n                  const { x, y } = point;\r\n                  const step = this.getStep(event.deltaY);\r\n                  this.scale(x, y, step, event);\r\n                  // Do small timeout to 'guess' when its done zooming\r\n                  clearTimeout(this.timeout);\r\n                  this.timeout = setTimeout(() => onZoomEnd(), 500);\r\n              }\r\n          };\r\n          this.onTouchStart = (event) => {\r\n              if (event.touches.length === 2) {\r\n                  event.preventDefault();\r\n                  event.stopPropagation();\r\n                  toggleTextSelection(false);\r\n                  this.firstTouch = getTouchPoints(event, this.childRef.current);\r\n                  this.lastDistance = this.firstTouch.distance;\r\n                  window.addEventListener('touchmove', this.onTouchMove);\r\n                  window.addEventListener('touchend', this.onTouchEnd);\r\n              }\r\n          };\r\n          this.onTouchMove = (event) => {\r\n              if (event.touches.length === 2) {\r\n                  event.preventDefault();\r\n                  event.stopPropagation();\r\n                  const { distance } = getTouchPoints(event, this.childRef.current);\r\n                  const distanceFactor = distance / this.lastDistance;\r\n                  const point = transformationMatrix.applyToPoint(transformationMatrix.inverse(this.props.matrix), {\r\n                      x: this.firstTouch.midpoint.x,\r\n                      y: this.firstTouch.midpoint.y\r\n                  });\r\n                  if (point.x && point.y) {\r\n                      const outside = this.scale(point.x, point.y, distanceFactor, event);\r\n                      if (!outside) {\r\n                          this.lastDistance = distance;\r\n                      }\r\n                  }\r\n              }\r\n          };\r\n          this.onTouchEnd = (event) => {\r\n              event.preventDefault();\r\n              event.stopPropagation();\r\n              window.removeEventListener('touchmove', this.onTouchMove);\r\n              window.removeEventListener('touchend', this.onTouchEnd);\r\n              toggleTextSelection(true);\r\n              this.props.onZoomEnd();\r\n          };\r\n      }\r\n      componentDidMount() {\r\n          const { disabled, disableMouseWheel } = this.props;\r\n          const ref = this.childRef.current;\r\n          if (!disabled && ref) {\r\n              if (!disableMouseWheel) {\r\n                  ref.addEventListener('mousewheel', this.onMouseWheel, {\r\n                      passive: false\r\n                  });\r\n              }\r\n              ref.addEventListener('touchstart', this.onTouchStart, { passive: false });\r\n          }\r\n      }\r\n      componentWillUnmount() {\r\n          window.removeEventListener('touchmove', this.onTouchMove);\r\n          window.removeEventListener('touchend', this.onTouchEnd);\r\n          cancelAnimationFrame(this.rqf);\r\n          clearTimeout(this.timeout);\r\n          const ref = this.childRef.current;\r\n          if (ref) {\r\n              ref.removeEventListener('mousewheel', this.onMouseWheel);\r\n              ref.removeEventListener('touchstart', this.onTouchStart);\r\n          }\r\n          toggleTextSelection(true);\r\n      }\r\n      getStep(delta) {\r\n          const { scaleFactor } = this.props;\r\n          return -delta > 0 ? scaleFactor + 1 : 1 - scaleFactor;\r\n      }\r\n      scale(x, y, step, nativeEvent) {\r\n          const { minZoom, maxZoom, onZoom, matrix } = this.props;\r\n          const outside = isZoomLevelGoingOutOfBounds({\r\n              d: matrix.a,\r\n              scaleFactorMin: minZoom,\r\n              scaleFactorMax: maxZoom\r\n          }, step);\r\n          if (!outside) {\r\n              const newMatrix = transformationMatrix.smoothMatrix(transformationMatrix.transform(matrix, transformationMatrix.translate(x, y), transformationMatrix.scale(step, step), transformationMatrix.translate(-x, -y)), 100);\r\n              this.rqf = requestAnimationFrame(() => {\r\n                  onZoom({\r\n                      scale: newMatrix.a,\r\n                      x: newMatrix.e,\r\n                      y: newMatrix.f,\r\n                      nativeEvent\r\n                  });\r\n              });\r\n          }\r\n          return outside;\r\n      }\r\n      render() {\r\n          const { style, children } = this.props;\r\n          return (jsxRuntime.jsx(\"g\", Object.assign({ ref: this.childRef, style: style }, { children: children }), void 0));\r\n      }\r\n  }\r\n  Zoom.defaultProps = {\r\n      x: 0,\r\n      y: 0,\r\n      scale: 1,\r\n      scaleFactor: 0.1,\r\n      minZoom: 1,\r\n      maxZoom: 10\r\n  };\n\n  var css_248z$o = \".DiscreteLegend-module_container__MpmKP {\\n  display: flex;\\n  overflow: auto;\\n}\\n\\n  .DiscreteLegend-module_container__MpmKP.DiscreteLegend-module_horizontal__3Mt5B {\\n    align-items: center;\\n    flex-direction: row;\\n  }\\n\\n  .DiscreteLegend-module_container__MpmKP.DiscreteLegend-module_vertical__M1d-S {\\n    flex-direction: column;\\n  }\\n\";\n  var css$o = {\"container\":\"DiscreteLegend-module_container__MpmKP\",\"horizontal\":\"DiscreteLegend-module_horizontal__3Mt5B\",\"vertical\":\"DiscreteLegend-module_vertical__M1d-S\"};\n  styleInject(css_248z$o);\n\n  const DiscreteLegend = ({ entries, orientation, style, className }) => (jsxRuntime.jsx(\"div\", Object.assign({ className: classNames__default['default'](css$o.container, className, {\r\n          [css$o.horizontal]: orientation === 'horizontal',\r\n          [css$o.vertical]: orientation === 'vertical'\r\n      }), style: style }, { children: entries.map((entry, index) => (jsxRuntime.jsx(rdk.CloneElement, { element: entry, orientation: orientation }, `dle-${index}`))) }), void 0));\r\n  DiscreteLegend.defaultProps = {\r\n      orientation: 'vertical'\r\n  };\n\n  var css_248z$n = \".DiscreteLegendSymbol-module_symbol__1n4Gb {\\n  width: 15px;\\n  height: 3px;\\n}\\n\";\n  var css$n = {\"symbol\":\"DiscreteLegendSymbol-module_symbol__1n4Gb\"};\n  styleInject(css_248z$n);\n\n  const DiscreteLegendSymbol = ({ className, color }) => (jsxRuntime.jsx(\"div\", { className: classNames__default['default'](css$n.symbol, className), style: { background: color } }, void 0));\n\n  var css_248z$m = \".DiscreteLegendEntry-module_entry__2kjdn {\\n  display: flex;\\n  color: var(--color-on-primary);\\n  padding: 8px;\\n  will-change: transparency;\\n  transition: opacity 150ms ease-in;\\n}\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ {\\n    flex-direction: row;\\n    align-items: center;\\n  }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ:first-child {\\n      padding-top: 0;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ:last-child {\\n      padding-bottom: 0;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ .DiscreteLegendEntry-module_label__2e4-v {\\n      margin-left: 8px;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_vertical__2LxhZ svg {\\n      display: block;\\n      margin: 0 auto;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv {\\n    align-items: center;\\n    flex-direction: row;\\n  }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv:first-child {\\n      padding-left: 0;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv:last-child {\\n      padding-right: 0;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn.DiscreteLegendEntry-module_horizontal__37dGv .DiscreteLegendEntry-module_label__2e4-v {\\n      margin-left: 8px;\\n    }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn .DiscreteLegendEntry-module_label__2e4-v {\\n    font-size: 12px;\\n  }\\n\\n  .DiscreteLegendEntry-module_entry__2kjdn svg {\\n    width: 15px;\\n    height: 15px;\\n  }\\n\";\n  var css$m = {\"entry\":\"DiscreteLegendEntry-module_entry__2kjdn\",\"vertical\":\"DiscreteLegendEntry-module_vertical__2LxhZ\",\"label\":\"DiscreteLegendEntry-module_label__2e4-v\",\"horizontal\":\"DiscreteLegendEntry-module_horizontal__37dGv\"};\n  styleInject(css_248z$m);\n\n  const DiscreteLegendEntry = ({ label, symbol, title, className, color, style, orientation, onMouseEnter, onMouseLeave, onClick }) => (jsxRuntime.jsxs(\"div\", Object.assign({ title: title, className: classNames__default['default'](css$m.entry, className, {\r\n          [css$m.vertical]: orientation === 'vertical',\r\n          [css$m.horizontal]: orientation === 'horizontal'\r\n      }), onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, style: style }, { children: [jsxRuntime.jsx(rdk.CloneElement, { element: symbol, color: color }, void 0),\r\n          jsxRuntime.jsx(\"span\", Object.assign({ className: css$m.label }, { children: label }), void 0)] }), void 0));\r\n  DiscreteLegendEntry.defaultProps = {\r\n      symbol: jsxRuntime.jsx(DiscreteLegendSymbol, {}, void 0),\r\n      orientation: 'horizontal'\r\n  };\n\n  var css_248z$l = \".SequentialLegend-module_container__2EkZd {\\n  display: flex;\\n  height: 100%;\\n}\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP {\\n    flex-direction: column;\\n    max-width: 55px;\\n  }\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP .SequentialLegend-module_start__1Pb9A,\\n    .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP .SequentialLegend-module_end__3RWw0 {\\n      text-align: center;\\n      padding: 5px 0;\\n      width: 100%;\\n    }\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_vertical__1DXNP .SequentialLegend-module_gradient__3aF0r {\\n      width: 25px;\\n      margin: 0 auto;\\n    }\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA {\\n    flex-direction: row-reverse;\\n  }\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_start__1Pb9A,\\n    .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_end__3RWw0 {\\n      max-width: 20%;\\n    }\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_start__1Pb9A {\\n      text-align: right;\\n      padding-left: 5px;\\n    }\\n\\n  .SequentialLegend-module_container__2EkZd.SequentialLegend-module_horizontal__2Q9EA .SequentialLegend-module_end__3RWw0 {\\n      text-align: left;\\n      padding-right: 5px;\\n    }\\n\\n  .SequentialLegend-module_container__2EkZd .SequentialLegend-module_gradient__3aF0r {\\n    flex: 1;\\n    width: 100%;\\n    border-radius: 2px;\\n  }\\n\\n  .SequentialLegend-module_container__2EkZd .SequentialLegend-module_start__1Pb9A,\\n  .SequentialLegend-module_container__2EkZd .SequentialLegend-module_end__3RWw0 {\\n    color: var(--color-on-primary);\\n    font-size: 12px;\\n    white-space: nowrap;\\n    overflow: hidden;\\n    text-overflow: ellipsis;\\n  }\\n\\n[dir=\\\"ltr\\\"] :export {\\n  start-top: SequentialLegend-module_start__1Pb9A;\\n  start-left: SequentialLegend-module_start__1Pb9A;\\n}\\n\\n[dir=\\\"rtl\\\"] :export {\\n  start-top: SequentialLegend-module_start__1Pb9A;\\n  start-right: SequentialLegend-module_start__1Pb9A;\\n}\\n\\n[dir=\\\"ltr\\\"] :export {\\n  end-bottom: SequentialLegend-module_end__3RWw0;\\n  end-right: SequentialLegend-module_end__3RWw0;\\n}\\n\\n[dir=\\\"rtl\\\"] :export {\\n  end-bottom: SequentialLegend-module_end__3RWw0;\\n  end-left: SequentialLegend-module_end__3RWw0;\\n}\\n\";\n  var css$l = {\"container\":\"SequentialLegend-module_container__2EkZd\",\"vertical\":\"SequentialLegend-module_vertical__1DXNP\",\"gradient\":\"SequentialLegend-module_gradient__3aF0r\",\"horizontal\":\"SequentialLegend-module_horizontal__2Q9EA\"};\n  styleInject(css_248z$l);\n\n  class SequentialLegend extends react.PureComponent {\r\n      render() {\r\n          const { orientation, className, style, colorScheme, data } = this.props;\r\n          // Generate the color gradient\r\n          const color = chroma__default['default']\r\n              .scale(colorScheme)\r\n              .colors(10)\r\n              .reverse()\r\n              .map((c, i) => `${c} ${i * 10}%`)\r\n              .join(',');\r\n          // Get the extent from the data passed\r\n          const [end, start] = d3Array.extent(uniqueBy(data, (d) => d.data, (d) => d.data));\r\n          // Get direction\r\n          const gradientDir = orientation === 'vertical' ? '' : 'to left,';\r\n          return (jsxRuntime.jsxs(\"div\", Object.assign({ style: style, className: classNames__default['default'](css$l.container, className, {\r\n                  [css$l.vertical]: orientation === 'vertical',\r\n                  [css$l.horizontal]: orientation === 'horizontal'\r\n              }) }, { children: [jsxRuntime.jsx(\"div\", Object.assign({ className: css$l.start }, { children: formatValue(start) }), void 0),\r\n                  jsxRuntime.jsx(\"div\", { className: css$l.gradient, style: {\r\n                          background: `linear-gradient(${gradientDir}${color})`\r\n                      } }, void 0),\r\n                  jsxRuntime.jsx(\"div\", Object.assign({ className: css$l.end }, { children: formatValue(end) }), void 0)] }), void 0));\r\n      }\r\n  }\r\n  SequentialLegend.defaultProps = {\r\n      colorScheme: ['rgba(28, 107, 86, 0.5)', '#2da283'],\r\n      orientation: 'vertical'\r\n  };\n\n  var css_248z$k = \".Gridline-module_gridLine__1K6sy {\\n  shape-rendering: crispEdges;\\n  pointer-events: none;\\n}\\n\";\n  var css$k = {\"gridLine\":\"Gridline-module_gridLine__1K6sy\"};\n  styleInject(css_248z$k);\n\n  const Gridline = ({ strokeWidth, direction, className, strokeColor, data, height, width, scale, strokeDasharray }) => {\r\n      const coords = react.useMemo(() => {\r\n          const pos = scale(data);\r\n          if (direction === 'x') {\r\n              return {\r\n                  x1: pos,\r\n                  x2: pos,\r\n                  y1: 0,\r\n                  y2: height\r\n              };\r\n          }\r\n          else {\r\n              return {\r\n                  y1: pos,\r\n                  y2: pos,\r\n                  x1: 0,\r\n                  x2: width\r\n              };\r\n          }\r\n      }, [direction, data, height, width, scale]);\r\n      return (jsxRuntime.jsx(\"line\", Object.assign({}, coords, { className: classNames__default['default'](css$k.gridLine, className), strokeDasharray: strokeDasharray, strokeWidth: strokeWidth, stroke: strokeColor, fill: \"none\" }), void 0));\r\n  };\r\n  Gridline.defaultProps = {\r\n      strokeWidth: 1,\r\n      strokeDasharray: '2 5',\r\n      direction: 'all',\r\n      strokeColor: 'rgba(153, 153, 153, 0.5)'\r\n  };\n\n  const GridlineSeries = ({ line, stripe, yScale, xScale, yAxis, xAxis, height, width }) => {\r\n      const shouldRenderY = (direction) => direction === 'all' || direction === 'y';\r\n      const shouldRenderX = (direction) => direction === 'all' || direction === 'x';\r\n      const { yAxisGrid, xAxisGrid } = react.useMemo(() => {\r\n          return {\r\n              yAxisGrid: getTicks(yScale, yAxis.tickSeries.props.tickValues, yAxis.type, getMaxTicks(yAxis.tickSeries.props.tickSize, height), yAxis.tickSeries.props.interval),\r\n              xAxisGrid: getTicks(xScale, xAxis.tickSeries.props.tickValues, xAxis.type, getMaxTicks(xAxis.tickSeries.props.tickSize, width), xAxis.tickSeries.props.interval)\r\n          };\r\n      }, [height, width, xAxis, yAxis, yScale, xScale]);\r\n      const renderGroup = react.useCallback((element, grid, scale, direction, type) => {\r\n          return grid.map((point, index) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx(rdk.CloneElement, { element: element, index: index, scale: scale, data: point, height: height, width: width, direction: direction }, void 0) }, `${type}-${direction}-${index}`)));\r\n      }, [height, width]);\r\n      const renderSeries = react.useCallback((yAxisGrid, xAxisGrid, element, type) => {\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [shouldRenderY(element.props.direction) &&\r\n                      renderGroup(element, yAxisGrid, yScale, 'y', type), shouldRenderX(element.props.direction) &&\r\n                      renderGroup(element, xAxisGrid, xScale, 'x', type)] }, void 0));\r\n      }, [renderGroup, xScale, yScale]);\r\n      return (jsxRuntime.jsxs(\"g\", Object.assign({ style: { pointerEvents: 'none' } }, { children: [line && renderSeries(yAxisGrid, xAxisGrid, line, 'line'), stripe && renderSeries(yAxisGrid, xAxisGrid, stripe, 'stripe')] }), void 0));\r\n  };\r\n  GridlineSeries.defaultProps = {\r\n      line: jsxRuntime.jsx(Gridline, { direction: \"all\" }, void 0),\r\n      stripe: null\r\n  };\n\n  var css_248z$j = \".GridStripe-module_gridStripe__1UttV {\\n  pointer-events: none;\\n}\\n\";\n  var css$j = {\"gridStripe\":\"GridStripe-module_gridStripe__1UttV\"};\n  styleInject(css_248z$j);\n\n  const GridStripe = ({ fill, className, position, data, height, width, scale, index }) => {\r\n      const coords = react.useMemo(() => {\r\n          const pos = scale(data);\r\n          const stripeFill = index % 2 ? 'none' : fill;\r\n          const dim = scale.bandwidth();\r\n          if (position === 'vertical') {\r\n              return {\r\n                  y: 0,\r\n                  x: pos,\r\n                  height: height,\r\n                  width: dim,\r\n                  fill: stripeFill\r\n              };\r\n          }\r\n          else {\r\n              return {\r\n                  y: pos,\r\n                  x: 0,\r\n                  height: dim,\r\n                  width,\r\n                  fill: stripeFill\r\n              };\r\n          }\r\n      }, [scale, data, index, height, width, fill, position]);\r\n      return jsxRuntime.jsx(\"rect\", Object.assign({ className: classNames__default['default'](css$j.gridStripe, className) }, coords), void 0);\r\n  };\r\n  GridStripe.defaultProps = {\r\n      fill: '#393c3e'\r\n  };\n\n  var css_248z$i = \".MarkLine-module_markLine__2002U {\\n  pointer-events: none;\\n  stroke-dasharray: 4, 4;\\n  stroke-linecap: round;\\n}\\n\";\n  var css$i = {\"markLine\":\"MarkLine-module_markLine__2002U\"};\n  styleInject(css_248z$i);\n\n  const MarkLine = ({ pointX, height, strokeWidth = 1, strokeColor = '#eee' }) => (jsxRuntime.jsx(\"line\", { stroke: strokeColor, strokeWidth: strokeWidth, y1: \"0\", vectorEffect: \"non-scaling-stroke\", y2: height, x1: pointX, x2: pointX, className: css$i.markLine }, void 0));\n\n  const GradientStop = ({ color, offset, stopOpacity = 1 }) => jsxRuntime.jsx(\"stop\", { offset: offset, stopOpacity: stopOpacity, stopColor: color }, void 0);\n\n  const Gradient = ({ id, color, direction = 'vertical', stops = [\r\n      jsxRuntime.jsx(GradientStop, { offset: \"0%\", stopOpacity: 0.3 }, \"start\"),\r\n      jsxRuntime.jsx(GradientStop, { offset: \"80%\", stopOpacity: 1 }, \"stop\")\r\n  ] }) => {\r\n      const pos = direction === 'vertical'\r\n          ? {\r\n              x1: '10%',\r\n              x2: '10%',\r\n              y1: '100%',\r\n              y2: '0%'\r\n          }\r\n          : {\r\n              y1: '0%',\r\n              y2: '0%',\r\n              x1: '0%',\r\n              x2: '100%'\r\n          };\r\n      return (jsxRuntime.jsx(\"linearGradient\", Object.assign({ spreadMethod: \"pad\", id: id }, pos, { children: stops.map((stop, index) => (jsxRuntime.jsx(rdk.CloneElement, { element: stop, color: stop.props.color || color }, `gradient-${index}`))) }), void 0));\r\n  };\n\n  const RadialGradient = ({ id, color, radius = '30%', stops = [\r\n      jsxRuntime.jsx(GradientStop, { offset: \"0%\", stopOpacity: 0.2 }, \"start\"),\r\n      jsxRuntime.jsx(GradientStop, { offset: \"80%\", stopOpacity: 0.7 }, \"stop\")\r\n  ] }) => (jsxRuntime.jsx(\"radialGradient\", Object.assign({ id: id, cx: 0, cy: 0, r: radius, gradientUnits: \"userSpaceOnUse\" }, { children: stops.map((stop, index) => (jsxRuntime.jsx(rdk.CloneElement, { element: stop, color: color }, `gradient-${index}`))) }), void 0));\n\n  const Mask = ({ id, fill }) => (jsxRuntime.jsx(\"mask\", Object.assign({ id: id }, { children: jsxRuntime.jsx(\"rect\", { x: \"0\", y: \"0\", width: \"100%\", height: \"100%\", fill: fill }, void 0) }), void 0));\n\n  const Stripes = ({ id, fill }) => (jsxRuntime.jsx(\"pattern\", Object.assign({ id: id, width: \"4\", height: \"4\", patternUnits: \"userSpaceOnUse\", patternTransform: \"rotate(45)\" }, { children: jsxRuntime.jsx(\"rect\", { className: \"area-stripe\", width: \"1\", height: \"4\", fill: fill }, void 0) }), void 0));\n\n  var css_248z$h = \".TooltipTemplate-module_label__1-9Eq {\\n  font-size: 16px;\\n  margin-bottom: 3px;\\n  color: var(--color-on-tooltip);\\n}\\n\\n.TooltipTemplate-module_value__3RhFW {\\n  font-size: 13px;\\n  color: var(--color-on-tooltip);\\n  opacity: 0.7;\\n}\\n\\n.TooltipTemplate-module_subValue__2jKhI {\\n  display: block;\\n  text-align: left;\\n  padding: 3px 5px;\\n}\\n\\n.TooltipTemplate-module_subValue__2jKhI .TooltipTemplate-module_subValueColor__2Mkos {\\n    width: 5px;\\n    height: 15px;\\n    margin-right: 8px;\\n    display: inline-block;\\n  }\\n\\n.TooltipTemplate-module_subValue__2jKhI .TooltipTemplate-module_subValueName__MtlOy {\\n    margin-right: 5px;\\n  }\\n\";\n  var css$h = {\"label\":\"TooltipTemplate-module_label__1-9Eq\",\"value\":\"TooltipTemplate-module_value__3RhFW\",\"subValue\":\"TooltipTemplate-module_subValue__2jKhI\",\"subValueColor\":\"TooltipTemplate-module_subValueColor__2Mkos\",\"subValueName\":\"TooltipTemplate-module_subValueName__MtlOy\"};\n  styleInject(css_248z$h);\n\n  const TooltipTemplate = ({ value, color, className }) => {\r\n      if (!value) {\r\n          return null;\r\n      }\r\n      const renderValues = (data, index) => {\r\n          const fill = color(data, index);\r\n          return (jsxRuntime.jsxs(\"span\", Object.assign({ className: css$h.subValue }, { children: [jsxRuntime.jsx(\"span\", { className: css$h.subValueColor, style: { backgroundColor: fill } }, void 0),\r\n                  jsxRuntime.jsxs(\"span\", Object.assign({ className: css$h.subValueName }, { children: [formatValue(data.key || data.x), \":\"] }), void 0),\r\n                  jsxRuntime.jsx(\"span\", { children: formatValue(data.value || data.y) }, void 0)] }), void 0));\r\n      };\r\n      const renderMultiple = (value) => {\r\n          const excessCount = value.data.length - 15;\r\n          const pagedValues = value.data.slice(0, 15);\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [pagedValues.map((point, i) => (jsxRuntime.jsx(react.Fragment, { children: renderValues(point, i) }, i))),\r\n                  excessCount > 0 && jsxRuntime.jsxs(\"div\", { children: [\"...\", excessCount, \" more...\"] }, void 0)] }, void 0));\r\n      };\r\n      const isMultiple = Array.isArray(value.data);\r\n      return (jsxRuntime.jsxs(\"div\", Object.assign({ className: className, role: \"tooltip\" }, { children: [jsxRuntime.jsx(\"div\", Object.assign({ className: css$h.label }, { children: formatValue(value.x) }), void 0),\r\n              jsxRuntime.jsxs(\"div\", Object.assign({ className: css$h.value }, { children: [isMultiple && renderMultiple(value),\r\n                      !isMultiple && (jsxRuntime.jsx(react.Fragment, { children: formatValue(value.value ||\r\n                              value.y) }, void 0))] }), void 0)] }), void 0));\r\n  };\n\n  const ChartTooltip = (_a) => {\r\n      var { content, value, data, color } = _a, rest = __rest(_a, [\"content\", \"value\", \"data\", \"color\"]);\r\n      return (jsxRuntime.jsx(reablocks.Tooltip, Object.assign({}, rest, { content: () => {\r\n              if (!value && !data) {\r\n                  return null;\r\n              }\r\n              return typeof content === 'function'\r\n                  ? content(data || value, color)\r\n                  : react.cloneElement(content, Object.assign(Object.assign({}, content.props), { value,\r\n                      color }));\r\n          } }), void 0));\r\n  };\r\n  ChartTooltip.defaultProps = {\r\n      content: jsxRuntime.jsx(TooltipTemplate, {}, void 0)\r\n  };\n\n  class TooltipArea extends react.Component {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.state = {};\r\n          this.ref = react.createRef();\r\n          this.transformData = memoize__default['default']((series) => {\r\n              const { inverse, isHorizontal } = this.props;\r\n              const result = [];\r\n              if (inverse) {\r\n                  for (const point of series) {\r\n                      const seriesPoint = point;\r\n                      if (Array.isArray(seriesPoint.data)) {\r\n                          for (const nestedPoint of seriesPoint.data) {\r\n                              const right = nestedPoint.x;\r\n                              let idx = result.findIndex((r) => {\r\n                                  const left = r.x;\r\n                                  if (left instanceof Date && right instanceof Date) {\r\n                                      return left.getTime() === right.getTime();\r\n                                  }\r\n                                  return left === right;\r\n                              });\r\n                              if (idx === -1) {\r\n                                  result.push({\r\n                                      x: nestedPoint.x,\r\n                                      data: []\r\n                                  });\r\n                                  idx = result.length - 1;\r\n                              }\r\n                              const data = result[idx].data;\r\n                              if (Array.isArray(data)) {\r\n                                  data.push(nestedPoint);\r\n                              }\r\n                          }\r\n                      }\r\n                      else {\r\n                          result.push(point);\r\n                      }\r\n                  }\r\n              }\r\n              else {\r\n                  for (const point of series) {\r\n                      const nestedPoint = point;\r\n                      if (Array.isArray(nestedPoint.data)) {\r\n                          result.push(Object.assign(Object.assign({}, nestedPoint), { x: nestedPoint.key, data: nestedPoint.data.map((d) => (Object.assign(Object.assign({}, d), { key: !isHorizontal ? d.x : d.y, value: !isHorizontal ? d.y : d.x }))) }));\r\n                      }\r\n                      else {\r\n                          const shallowPoint = point;\r\n                          result.push(Object.assign(Object.assign({}, shallowPoint), { \r\n                              // Histograms special logic...\r\n                              x: shallowPoint.key === undefined ? shallowPoint.x0 : point.key, y: shallowPoint.value === undefined\r\n                                  ? shallowPoint.y\r\n                                  : shallowPoint.value }));\r\n                      }\r\n                  }\r\n              }\r\n              return result;\r\n          });\r\n      }\r\n      getXCoord(x, y) {\r\n          const { isRadial, width, height } = this.props;\r\n          // If the shape is radial, we need to convert the X coords to a radial format.\r\n          if (isRadial) {\r\n              const outerRadius = Math.min(width, height) / 2;\r\n              let rad = Math.atan2(y - outerRadius, x - outerRadius) + Math.PI / 2;\r\n              // TODO: Figure out what the 'correct' way to do this is...\r\n              if (rad < 0) {\r\n                  rad += Math.PI * 2;\r\n              }\r\n              return rad;\r\n          }\r\n          return x;\r\n      }\r\n      onMouseMove(event) {\r\n          const { xScale, yScale, onValueEnter, height, width, data, isRadial, isHorizontal, placement } = this.props;\r\n          const { value } = this.state;\r\n          const transformed = this.transformData(data);\r\n          // Get our default placement\r\n          let newPlacement = placement;\r\n          if (!placement) {\r\n              if (isHorizontal) {\r\n                  newPlacement = 'right';\r\n              }\r\n              else {\r\n                  newPlacement = 'top';\r\n              }\r\n          }\r\n          // Get the path container element\r\n          let target = this.ref.current;\r\n          const { y, x } = getPositionForTarget({\r\n              target: target,\r\n              // Manually pass the x/y from the event\r\n              clientX: event.clientX,\r\n              clientY: event.clientY\r\n          });\r\n          // Need to flip scales/coords if we are a horz layout\r\n          let keyScale;\r\n          let valueScale;\r\n          let coord;\r\n          if (isHorizontal) {\r\n              keyScale = yScale;\r\n              valueScale = xScale;\r\n              coord = y;\r\n          }\r\n          else {\r\n              coord = this.getXCoord(x, y);\r\n              keyScale = xScale;\r\n              valueScale = yScale;\r\n          }\r\n          const newValue = getClosestPoint(coord, keyScale, transformed);\r\n          if (!isEqual__default['default'](newValue, value) && newValue) {\r\n              const pointX = keyScale(newValue.x);\r\n              let pointY = valueScale(newValue.y);\r\n              let marginX = 0;\r\n              let marginY = 0;\r\n              if (isNaN(pointY)) {\r\n                  pointY = height / 2;\r\n                  marginX = 10;\r\n                  if (!placement) {\r\n                      newPlacement = 'right';\r\n                  }\r\n              }\r\n              else {\r\n                  marginY = -10;\r\n              }\r\n              // If the points didn't change, don't trigger an update\r\n              if (pointX === this.prevX && pointY === this.prevY) {\r\n                  return;\r\n              }\r\n              this.prevY = pointY;\r\n              this.prevX = pointX;\r\n              const target = event.target;\r\n              const { top, left } = target.getBoundingClientRect();\r\n              let offsetX = 0;\r\n              let offsetY = 0;\r\n              if (isRadial) {\r\n                  // If its radial, we need to convert the coords to radial format\r\n                  const outerRadius = Math.min(width, height) / 2;\r\n                  offsetX = pointY * Math.cos(pointX - Math.PI / 2) + outerRadius;\r\n                  offsetY = pointY * Math.sin(pointX - Math.PI / 2) + outerRadius;\r\n              }\r\n              else {\r\n                  offsetX = pointX;\r\n                  offsetY = pointY;\r\n              }\r\n              offsetX += left + marginX;\r\n              offsetY += top + marginY;\r\n              this.setState({\r\n                  placement: newPlacement,\r\n                  visible: true,\r\n                  value: newValue,\r\n                  offsetX,\r\n                  offsetY\r\n              });\r\n              onValueEnter({\r\n                  visible: true,\r\n                  value: newValue,\r\n                  pointY,\r\n                  pointX,\r\n                  offsetX,\r\n                  offsetY,\r\n                  nativeEvent: event\r\n              });\r\n          }\r\n      }\r\n      onMouseLeave() {\r\n          this.prevX = undefined;\r\n          this.prevY = undefined;\r\n          this.setState({\r\n              value: undefined,\r\n              visible: false\r\n          });\r\n          this.props.onValueLeave();\r\n      }\r\n      getTooltipReference() {\r\n          const { offsetX, offsetY } = this.state;\r\n          return {\r\n              width: 4,\r\n              height: 4,\r\n              top: offsetY,\r\n              left: offsetX\r\n          };\r\n      }\r\n      renderRadial() {\r\n          let { height, width, innerRadius, outerRadius } = this.props;\r\n          innerRadius = innerRadius || 0;\r\n          outerRadius = outerRadius || Math.min(width, height) / 2;\r\n          const d = d3Shape.arc()({\r\n              innerRadius,\r\n              outerRadius,\r\n              startAngle: 180,\r\n              endAngle: Math.PI / 2\r\n          });\r\n          return (jsxRuntime.jsx(\"path\", { d: d, opacity: \"0\", cursor: \"auto\", ref: this.ref, onMouseMove: bind__default['default'](this.onMouseMove, this) }, void 0));\r\n      }\r\n      renderLinear() {\r\n          const { height, width } = this.props;\r\n          return (jsxRuntime.jsx(\"rect\", { height: height, ref: this.ref, width: width, opacity: 0, cursor: \"auto\", onMouseMove: bind__default['default'](this.onMouseMove, this) }, void 0));\r\n      }\r\n      render() {\r\n          const { isRadial, children, tooltip, disabled, color } = this.props;\r\n          const { visible, placement, value } = this.state;\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [disabled && children, !disabled && (jsxRuntime.jsxs(\"g\", Object.assign({ onMouseLeave: bind__default['default'](this.onMouseLeave, this) }, { children: [isRadial && this.renderRadial(), !isRadial && this.renderLinear(), jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: visible, placement: placement, modifiers: {\r\n                                  offset: {\r\n                                      offset: '0, 15px'\r\n                                  }\r\n                              }, reference: this.getTooltipReference(), color: color, value: value }, void 0), children] }), void 0))] }, void 0));\r\n      }\r\n  }\r\n  TooltipArea.defaultProps = {\r\n      isRadial: false,\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0),\r\n      inverse: true,\r\n      onValueEnter: () => undefined,\r\n      onValueLeave: () => undefined\r\n  };\n\n  class ZoomPan extends react.Component {\r\n      constructor() {\r\n          super(...arguments);\r\n          this.zoomRef = react.createRef();\r\n          this.panRef = react.createRef();\r\n          this.state = {\r\n              isZooming: false,\r\n              isPanning: false,\r\n              matrix: transformationMatrix.identity()\r\n          };\r\n      }\r\n      static getDerivedStateFromProps(props, state) {\r\n          // TODO: the types in the library don't seem to be correct...\r\n          const matrix = transformationMatrix.transform(transformationMatrix.fromDefinition([\r\n              { type: 'translate', tx: props.x, ty: props.y },\r\n              { type: 'scale', sx: props.scale, sy: props.scale }\r\n          ]));\r\n          if (!isEqual__default['default'](matrix, state.matrix)) {\r\n              return {\r\n                  matrix\r\n              };\r\n          }\r\n          return null;\r\n      }\r\n      onPanStart(event) {\r\n          this.setState({\r\n              isPanning: true\r\n          });\r\n          this.props.onPanStart(event);\r\n      }\r\n      onPanMove(event) {\r\n          this.props.onZoomPan({\r\n              scale: this.props.scale,\r\n              x: event.x,\r\n              y: event.y,\r\n              type: 'pan',\r\n              nativeEvent: event.nativeEvent\r\n          });\r\n          this.props.onPanMove(event);\r\n      }\r\n      onPanEnd(event) {\r\n          this.setState({ isPanning: false });\r\n          this.props.onPanEnd(event);\r\n      }\r\n      onZoom(event) {\r\n          this.props.onZoomPan({\r\n              x: event.x,\r\n              y: event.y,\r\n              scale: event.scale,\r\n              nativeEvent: event.nativeEvent,\r\n              type: 'zoom'\r\n          });\r\n          this.props.onZoom(event);\r\n      }\r\n      onZoomEnd() {\r\n          this.setState({\r\n              isZooming: false\r\n          });\r\n          this.props.onZoomEnd();\r\n      }\r\n      render() {\r\n          const { height, width, children, disabled, pannable, maxZoom, minZoom, zoomable, scale, x, y, disableMouseWheel, constrain, zoomStep, onPanCancel, requireZoomModifier, globalPanning } = this.props;\r\n          const { isZooming, isPanning } = this.state;\r\n          const cursor = pannable ? 'move' : 'auto';\r\n          const selection = isZooming || isPanning ? 'none' : 'auto';\r\n          const matrix = transformationMatrix.fromObject(this.state.matrix);\r\n          return (jsxRuntime.jsx(Pan, Object.assign({ x: x, y: y, scale: scale, matrix: matrix, constrain: constrain, height: height, width: width, disabled: !pannable || disabled, ref: this.panRef, globalPanning: globalPanning, onPanStart: bind__default['default'](this.onPanStart, this), onPanMove: bind__default['default'](this.onPanMove, this), onPanEnd: bind__default['default'](this.onPanEnd, this), onPanCancel: onPanCancel }, { children: jsxRuntime.jsxs(Zoom, Object.assign({ ref: this.zoomRef, disabled: !zoomable || disabled, scaleFactor: zoomStep, disableMouseWheel: disableMouseWheel, maxZoom: maxZoom, minZoom: minZoom, scale: scale, x: x, y: y, style: { cursor }, requireZoomModifier: requireZoomModifier, matrix: matrix, onZoom: bind__default['default'](this.onZoom, this), onZoomEnd: bind__default['default'](this.onZoomEnd, this) }, { children: [!disabled && (jsxRuntime.jsx(\"rect\", { height: height, width: width, opacity: 0, className: \"pan-container\" }, void 0)),\r\n                      jsxRuntime.jsx(\"g\", Object.assign({ style: {\r\n                              pointerEvents: selection,\r\n                              userSelect: selection\r\n                          } }, { children: children }), void 0)] }), void 0) }), void 0));\r\n      }\r\n  }\r\n  ZoomPan.defaultProps = {\r\n      maxZoom: 10,\r\n      minZoom: 0,\r\n      zoomStep: 0.1,\r\n      pannable: true,\r\n      zoomable: true,\r\n      constrain: true,\r\n      height: 0,\r\n      width: 0,\r\n      x: 0,\r\n      y: 0,\r\n      scale: 1,\r\n      globalPanning: true,\r\n      onPanStart: () => undefined,\r\n      onPanMove: () => undefined,\r\n      onPanEnd: () => undefined,\r\n      onPanCancel: () => undefined,\r\n      onZoom: () => undefined,\r\n      onZoomEnd: () => undefined\r\n  };\n\n  /**\r\n   * Gets the X Scale function.\r\n   */\r\n  function getXScale({ type, roundDomains, data, width, domain, padding, scaled, isMultiSeries = false, isDiverging = false }) {\r\n      let scale;\r\n      if (type === 'time' || type === 'duration' || type === 'value') {\r\n          if (type === 'time') {\r\n              scale = d3Scale.scaleTime().rangeRound([0, width]);\r\n          }\r\n          else {\r\n              scale = d3Scale.scaleLinear().rangeRound([0, width]);\r\n          }\r\n          scale = scale.domain(domain || getXDomain({ data, scaled, isDiverging }));\r\n      }\r\n      else {\r\n          if (!domain) {\r\n              if (isMultiSeries) {\r\n                  domain = uniqueBy(data, (d) => d.key);\r\n              }\r\n              else {\r\n                  domain = uniqueBy(data, (d) => d.x);\r\n              }\r\n          }\r\n          scale = d3Scale.scaleBand()\r\n              .rangeRound([0, width])\r\n              .padding(padding || 0)\r\n              .domain(domain);\r\n      }\r\n      return roundDomains ? scale.nice() : scale;\r\n  }\r\n  /**\r\n   * Gets the Y Scale function.\r\n   */\r\n  function getYScale({ type, height, data, domain, roundDomains = false, scaled = false, padding = 0, isMultiSeries = false, isDiverging = false }) {\r\n      let scale;\r\n      if (type === 'time' || type === 'value' || type === 'duration') {\r\n          scale = d3Scale.scaleLinear()\r\n              .range([height, 0])\r\n              .domain(domain || getYDomain({ data, scaled, isDiverging }));\r\n      }\r\n      else {\r\n          if (!domain) {\r\n              if (isMultiSeries) {\r\n                  domain = uniqueBy(data, (d) => d.key);\r\n              }\r\n              else {\r\n                  domain = uniqueBy(data, (d) => d.y);\r\n              }\r\n          }\r\n          scale = d3Scale.scaleBand()\r\n              .rangeRound([height, 0])\r\n              .padding(padding)\r\n              .domain(domain);\r\n      }\r\n      return roundDomains ? scale.nice() : scale;\r\n  }\n\n  /**\r\n   * Get a linear scale for the mariemko chart.\r\n   */\r\n  const getMarimekkoScale = (width, roundDomains) => {\r\n      const scale = d3Scale.scaleLinear().rangeRound([0, width]);\r\n      return roundDomains ? scale.nice() : scale;\r\n  };\r\n  /**\r\n   * Builds a fake scale function to get a group scale for a marimekko value scale.\r\n   */\r\n  const getMarimekkoGroupScale = ({ data, width, valueScale, padding }) => {\r\n      const domain = uniqueBy(data, (d) => d.key);\r\n      const barCount = data.length;\r\n      const widthMinusPadding = width - padding * (barCount - 1);\r\n      const xMultiplier = widthMinusPadding / width;\r\n      // Given a data series, find the x0/x1 for it.\r\n      const getXRange = (series) => {\r\n          const [val] = series.data;\r\n          const x0 = valueScale(val.x0);\r\n          const x1 = valueScale(val.x1);\r\n          return { x0, x1 };\r\n      };\r\n      const scale = (arg) => {\r\n          let result = 0;\r\n          const index = data.findIndex((d) => d.key === arg);\r\n          const series = data[index];\r\n          if (series && series.data && series.data.length) {\r\n              const { x1, x0 } = getXRange(series);\r\n              result = (x1 - x0) / 2 + x0;\r\n              if (padding) {\r\n                  result = result * xMultiplier + index * padding;\r\n              }\r\n          }\r\n          return result;\r\n      };\r\n      scale.range = () => [0, width];\r\n      scale.domain = () => domain;\r\n      // Special invert function for marimekko\r\n      scale.mariemkoInvert = (offset) => {\r\n          let found;\r\n          for (let i = 0; i < domain.length; i++) {\r\n              const attr = domain[i];\r\n              const series = data[i];\r\n              const { x1, x0 } = getXRange(series);\r\n              if (offset >= x0 - padding / 2 && offset <= x1 - padding / 2) {\r\n                  found = attr;\r\n                  break;\r\n              }\r\n          }\r\n          return found;\r\n      };\r\n      return scale;\r\n  };\n\n  /**\r\n   * Get the group scale aka x0.\r\n   */\r\n  function getGroupScale({ dimension, padding, data, direction = 'vertical' }) {\r\n      const domain = uniqueBy(data, (d) => d.key);\r\n      const spacing = domain.length / (dimension / padding + 1);\r\n      const range = direction === 'vertical' ? [0, dimension] : [dimension, 0];\r\n      return d3Scale.scaleBand()\r\n          .rangeRound(range)\r\n          .paddingInner(spacing)\r\n          .paddingOuter(spacing / 2)\r\n          .domain(domain);\r\n  }\r\n  /**\r\n   * Get the inner scale aka x1.\r\n   */\r\n  function getInnerScale({ groupScale, padding, data, prop = 'x' }) {\r\n      const dimension = groupScale.bandwidth();\r\n      const domain = uniqueBy(data, (d) => d.data, (d) => d[prop]);\r\n      const spacing = domain.length / (dimension / padding + 1);\r\n      return d3Scale.scaleBand()\r\n          .rangeRound([0, dimension])\r\n          .paddingInner(spacing)\r\n          .domain(domain);\r\n  }\n\n  /**\r\n   * Get the Y Scale for a given set of radiuses.\r\n   * Reference: https://github.com/d3/d3-scale/issues/90\r\n   */\r\n  const getRadialYScale = (innerRadius, outerRadius, domain) => {\r\n      if (domain[0] === 0 && domain[1] === 0) {\r\n          // If all values are 0, set the domain to [0, 1], so the zero values are\r\n          // all at the bottom of the chart, not the middle.\r\n          domain = [0, 1];\r\n      }\r\n      const y = d3Scale.scaleLinear()\r\n          .range([innerRadius * innerRadius, outerRadius * outerRadius])\r\n          .domain(domain);\r\n      const yScale = Object.assign((d) => Math.sqrt(y(d)), y);\r\n      return yScale;\r\n  };\n\n  class ChartZoomPan extends react.Component {\r\n      onZoomPan(event) {\r\n          const { width, data, axisType, roundDomains, onZoomPan } = this.props;\r\n          const can = event.type === 'zoom' || (event.type === 'pan' && event.scale > 1);\r\n          if (can) {\r\n              const scale = getXScale({\r\n                  width: width,\r\n                  type: axisType,\r\n                  roundDomains,\r\n                  data\r\n              });\r\n              const newScale = scale.copy().domain(scale\r\n                  .range()\r\n                  .map((x) => (x - event.x) / event.scale)\r\n                  .map(scale.clamp(true).invert, event.x));\r\n              onZoomPan({\r\n                  domain: newScale.domain(),\r\n                  isZoomed: event.scale !== 1\r\n              });\r\n          }\r\n      }\r\n      getOffset() {\r\n          let zoomOffset = {\r\n              scale: undefined,\r\n              x: undefined\r\n          };\r\n          const { disabled, domain, width, data, axisType, roundDomains } = this.props;\r\n          if (!disabled && domain) {\r\n              const xScale = getXScale({\r\n                  width,\r\n                  type: axisType,\r\n                  roundDomains,\r\n                  data\r\n              });\r\n              let offset = xScale(domain[0]);\r\n              const endOffset = xScale(domain[1]);\r\n              const scale = width / (endOffset - offset);\r\n              // Apply the new scale to the offset so its scaled correctly\r\n              offset = offset * scale;\r\n              zoomOffset = {\r\n                  scale: scale,\r\n                  x: -offset\r\n              };\r\n          }\r\n          return zoomOffset;\r\n      }\r\n      render() {\r\n          const _a = this.props, { data, height, children, width, onZoomPan } = _a, rest = __rest(_a, [\"data\", \"height\", \"children\", \"width\", \"onZoomPan\"]);\r\n          const { scale, x } = this.getOffset();\r\n          return (jsxRuntime.jsx(ZoomPan, Object.assign({}, rest, { scale: scale, x: x, height: height, width: width, pannable: scale > 1, onZoomPan: bind__default['default'](this.onZoomPan, this) }, { children: children }), void 0));\r\n      }\r\n  }\r\n  ChartZoomPan.defaultProps = {\r\n      onZoomPan: () => undefined\r\n  };\n\n  const DEFAULT_TRANSITION = {\r\n      type: 'spring',\r\n      velocity: 5,\r\n      damping: 20,\r\n      // https://github.com/framer/motion/issues/1513#issuecomment-1121133717\r\n      restDelta: 0.01,\r\n      restSpeed: 0.01\r\n  };\n\n  const MotionPath = (_a) => {\r\n      var { custom, transition } = _a, rest = __rest(_a, [\"custom\", \"transition\"]);\r\n      const d = framerMotion.useMotionValue(custom.exit.d);\r\n      const prevPath = framerMotion.useMotionValue(custom.exit.d);\r\n      const spring = framerMotion.useSpring(prevPath, Object.assign(Object.assign({}, DEFAULT_TRANSITION), { from: 0, to: 1 }));\r\n      react.useEffect(() => {\r\n          const interpolator = d3Interpolate.interpolate(prevPath.get(), custom.enter.d);\r\n          const unsub = spring.onChange((v) => d.set(interpolator(v)));\r\n          prevPath.set(custom.enter.d);\r\n          return unsub;\r\n      });\r\n      const _b = custom.enter, { d: enterD } = _b, enterRest = __rest(_b, [\"d\"]);\r\n      const _c = custom.exit, exitRest = __rest(_c, [\"d\"]);\r\n      return (jsxRuntime.jsx(framerMotion.motion.path, Object.assign({}, rest, { initial: exitRest, exit: exitRest, animate: enterRest, transition: transition, d: transition.type !== false ? d : enterD }), void 0));\r\n  };\n\n  /**\r\n   * Color Schemes\r\n   * Credits: https://gka.github.io/chroma.js/#chroma-brewer\r\n   */\r\n  const schemes = Object.assign({ cybertron: chroma__default['default'].scale(['#2d60e8', '#26efb5']).correctLightness().colors(8) }, chroma__default['default'].brewer);\n\n  /**\r\n   * Given a point, get the key attributes for it.\r\n   */\r\n  const rangeHelper = (point, attribute) => point.map((r, i) => {\r\n      if (r) {\r\n          if (r[attribute] !== undefined) {\r\n              return r[attribute];\r\n          }\r\n          else if (r.data && r.data[attribute] !== undefined) {\r\n              return r.data[attribute];\r\n          }\r\n      }\r\n      return i;\r\n  });\r\n  /**\r\n   * Get a color given a range.\r\n   */\r\n  const getColor = (props) => {\r\n      let { point, colorScheme, attribute, index, data, active, isMultiSeries, domain, key, scale } = Object.assign({ attribute: 'key', isMultiSeries: false, scale: d3Scale.scaleOrdinal }, props);\r\n      if (typeof colorScheme === 'string' && schemes[colorScheme]) {\r\n          colorScheme = schemes[colorScheme];\r\n      }\r\n      if (Array.isArray(colorScheme)) {\r\n          if (!domain) {\r\n              if (isMultiSeries && Array.isArray(data)) {\r\n                  const maxIdx = d3Array.maxIndex(data, (d) => d.data.length);\r\n                  const maxVal = data[maxIdx];\r\n                  data = maxVal.data;\r\n              }\r\n              domain = rangeHelper(data, attribute);\r\n          }\r\n          key = key !== undefined ? key : point[attribute];\r\n          return scale(colorScheme).domain(domain)(key);\r\n      }\r\n      else if (typeof colorScheme === 'function') {\r\n          return colorScheme(point, index, active);\r\n      }\r\n      else {\r\n          return colorScheme;\r\n      }\r\n  };\n\n  const COUNT_DEFAULTS = {\r\n      from: 0,\r\n      duration: 1,\r\n      delay: 0,\r\n      format: true,\r\n      decimalPlaces: 0\r\n  };\r\n  const useCount = ({ from, to, duration, delay, prefix, suffix, decimalPlaces, format }) => {\r\n      const nodeRef = react.useRef(null);\r\n      from = from || COUNT_DEFAULTS.from;\r\n      duration = duration || COUNT_DEFAULTS.duration;\r\n      delay = delay || COUNT_DEFAULTS.delay;\r\n      format = format || COUNT_DEFAULTS.format;\r\n      decimalPlaces = decimalPlaces || COUNT_DEFAULTS.decimalPlaces;\r\n      react.useEffect(() => {\r\n          const node = nodeRef.current;\r\n          const controls = framerMotion.animate(from, to, {\r\n              duration,\r\n              delay,\r\n              onUpdate(value) {\r\n                  let formatted = value;\r\n                  if (decimalPlaces) {\r\n                      formatted = Number(value.toFixed(decimalPlaces));\r\n                  }\r\n                  else {\r\n                      formatted = Number(value.toFixed(0));\r\n                  }\r\n                  if (format) {\r\n                      formatted = formatted.toLocaleString();\r\n                  }\r\n                  if (node) {\r\n                      if (prefix) {\r\n                          formatted = `${prefix}${formatted}`;\r\n                      }\r\n                      if (suffix) {\r\n                          formatted = `${formatted}${suffix}`;\r\n                      }\r\n                      node.textContent = formatted;\r\n                  }\r\n              }\r\n          });\r\n          return () => controls.stop();\r\n      }, [from, to, duration, delay, decimalPlaces, format, prefix, suffix]);\r\n      return nodeRef;\r\n  };\n\n  const Count = (_a) => {\r\n      var { className } = _a, rest = __rest(_a, [\"className\"]);\r\n      const ref = useCount(rest);\r\n      return jsxRuntime.jsx(\"span\", { ref: ref, className: className }, void 0);\r\n  };\r\n  Count.defaultProps = {\r\n      from: 0,\r\n      duration: 1,\r\n      delay: 0,\r\n      localize: true,\r\n      decimalPlaces: 0\r\n  };\n\n  var css_248z$g = \".ScatterPoint-module_inactive__3ahvT {\\n  opacity: 0.2;\\n}\\n\";\n  var css$g = {\"inactive\":\"ScatterPoint-module_inactive__3ahvT\"};\n  styleInject(css_248z$g);\n\n  const ScatterPoint = (_a) => {\r\n      var { symbol, index, id, data, xScale, yScale, active, tooltip, cursor, size, color, animated, onClick, onMouseEnter, onMouseLeave } = _a, rest = __rest(_a, [\"symbol\", \"index\", \"id\", \"data\", \"xScale\", \"yScale\", \"active\", \"tooltip\", \"cursor\", \"size\", \"color\", \"animated\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\"]);\r\n      const rectRef = react.useRef(null);\r\n      const [tooltipVisible, setTooltipVisible] = react.useState(false);\r\n      const extras = react.useMemo(() => constructFunctionProps(rest, data), [rest, data]);\r\n      const r = react.useMemo(() => (typeof size === 'function' ? size(data) : size), [size, data]);\r\n      const renderedSymbol = react.useMemo(() => (symbol ? symbol(data) : null), [data, symbol]);\r\n      const transitionProps = react.useMemo(() => animated\r\n          ? Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: index * 0.005 }) : {\r\n          type: false,\r\n          delay: 0\r\n      }, [index, animated]);\r\n      const enterProps = react.useMemo(() => {\r\n          let cy = yScale(data.y1);\r\n          if (yScale.bandwidth) {\r\n              const width = yScale.bandwidth();\r\n              cy = cy + width / 2;\r\n          }\r\n          return {\r\n              x: xScale(data.x),\r\n              y: cy\r\n          };\r\n      }, [data, yScale]);\r\n      const exitProps = react.useMemo(() => {\r\n          const [yStartDomain] = yScale.domain();\r\n          return {\r\n              y: yScale(yStartDomain),\r\n              x: xScale(data.x)\r\n          };\r\n      }, [data, yScale]);\r\n      const fill = react.useMemo(() => getColor({\r\n          colorScheme: color,\r\n          index,\r\n          point: data\r\n      }), [data, color, index]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"g\", Object.assign({ ref: rectRef, onMouseEnter: () => {\r\n                      setTooltipVisible(true);\r\n                      onMouseEnter(data);\r\n                  }, onMouseLeave: () => {\r\n                      setTooltipVisible(false);\r\n                      onMouseLeave(data);\r\n                  }, onClick: () => onClick(data), className: classNames__default['default']({\r\n                      [css$g.inactive]: !active\r\n                  }) }, { children: symbol ? (jsxRuntime.jsx(framerMotion.motion.g, Object.assign({}, extras, { initial: {\r\n                          translateX: exitProps.x,\r\n                          translateY: exitProps.y,\r\n                          opacity: 0\r\n                      }, animate: {\r\n                          translateX: enterProps.x,\r\n                          translateY: enterProps.y,\r\n                          opacity: 1\r\n                      }, exit: {\r\n                          translateX: exitProps.x,\r\n                          translateY: exitProps.y,\r\n                          opacity: 0\r\n                      }, transition: transitionProps }, { children: renderedSymbol }), `symbol-${id}-${data.id}`)) : (jsxRuntime.jsx(framerMotion.motion.circle, { className: extras.className, style: Object.assign(Object.assign({}, extras.style), { cursor }), initial: {\r\n                          cx: exitProps.x,\r\n                          cy: exitProps.y,\r\n                          fill,\r\n                          r,\r\n                          opacity: 0\r\n                      }, animate: {\r\n                          cx: enterProps.x,\r\n                          cy: enterProps.y,\r\n                          opacity: 1,\r\n                          fill,\r\n                          r\r\n                      }, exit: {\r\n                          cx: exitProps.x,\r\n                          cy: exitProps.y,\r\n                          fill,\r\n                          r,\r\n                          opacity: 0\r\n                      }, transition: transitionProps }, `symbol-${id}-${data.id}`)) }), void 0),\r\n              tooltip && !tooltip.props.disabled && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: tooltipVisible, reference: rectRef, value: data }, void 0))] }, void 0));\r\n  };\r\n  ScatterPoint.defaultProps = {\r\n      active: true,\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0),\r\n      cursor: 'pointer',\r\n      size: 4,\r\n      color: schemes.cybertron[0],\r\n      animated: true,\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined\r\n  };\n\n  // For bubble charts, often symbols exceed the area\r\n  // and we want to add a little bit of padding to prevent clipping\r\n  const PADDING$1 = 25;\r\n  const HALF_PADDING$1 = PADDING$1 / 2;\r\n  const ScatterSeries = (_a) => {\r\n      var { data, height, width, id, isZoomed, activeIds, point } = _a, rest = __rest(_a, [\"data\", \"height\", \"width\", \"id\", \"isZoomed\", \"activeIds\", \"point\"]);\r\n      const renderPoint = react.useCallback((pointData, index) => {\r\n          let pointId;\r\n          if (pointData.id) {\r\n              pointId = pointData.id;\r\n          }\r\n          const key = pointId || index;\r\n          const active = !(activeIds && activeIds.length) || activeIds.includes(pointId);\r\n          const visible = point.props.visible;\r\n          if (visible && !visible(pointData, index)) {\r\n              return jsxRuntime.jsx(react.Fragment, {}, key);\r\n          }\r\n          return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: point }, rest, { id: id, data: pointData, index: index, active: active }), key));\r\n      }, [point, id, rest, activeIds]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"defs\", { children: jsxRuntime.jsx(\"clipPath\", Object.assign({ id: `${id}-path` }, { children: jsxRuntime.jsx(\"rect\", { width: isZoomed ? width : width + PADDING$1, height: height + PADDING$1, x: isZoomed ? 0 : -HALF_PADDING$1, y: -HALF_PADDING$1 }, void 0) }), void 0) }, void 0),\r\n              jsxRuntime.jsx(\"g\", Object.assign({ clipPath: `url(#${id}-path)` }, { children: data.map(renderPoint) }), void 0)] }, void 0));\r\n  };\r\n  ScatterSeries.defaultProps = {\r\n      point: jsxRuntime.jsx(ScatterPoint, {}, void 0)\r\n  };\n\n  var css_248z$f = \".ScatterPlot-module_scatterPlot__1gWRV {\\n  overflow: visible;\\n}\\n\";\n  var css$f = {\"scatterPlot\":\"ScatterPlot-module_scatterPlot__1gWRV\"};\n  styleInject(css_248z$f);\n\n  const ScatterPlot = ({ id, width, height, margins, className, series, xAxis, yAxis, data, gridlines, containerClassName, brush, zoomPan, secondaryAxis }) => {\r\n      const zoomControlled = react.useMemo(() => { var _a, _b; \r\n      // eslint-disable-next-line\r\n      return !((_b = (_a = zoomPan === null || zoomPan === void 0 ? void 0 : zoomPan.props) === null || _a === void 0 ? void 0 : _a.domain) === null || _b === void 0 ? void 0 : _b.hasOwnProperty('domain')); }, [zoomPan]);\r\n      const timeout = react.useRef(null);\r\n      const [preventAnimation, setPreventAnimation] = react.useState(false);\r\n      const [zoomDomain, setZoomDomain] = react.useState(null);\r\n      const [isZoomed, setIsZoomed] = react.useState(false);\r\n      const aggregatedData = react.useMemo(() => buildShallowChartData(data), [data]);\r\n      const getScales = react.useCallback((chartHeight, chartWidth) => {\r\n          const yScale = getYScale({\r\n              roundDomains: yAxis.props.roundDomains,\r\n              type: yAxis.props.type,\r\n              height: chartHeight,\r\n              data: aggregatedData,\r\n              domain: yAxis.props.domain\r\n          });\r\n          const xScale = getXScale({\r\n              width: chartWidth,\r\n              type: xAxis.props.type,\r\n              roundDomains: xAxis.props.roundDomains,\r\n              data: aggregatedData,\r\n              domain: zoomDomain || xAxis.props.domain\r\n          });\r\n          return {\r\n              yScale,\r\n              xScale\r\n          };\r\n      }, [yAxis, xAxis, aggregatedData, zoomDomain]);\r\n      const onZoomPan = react.useCallback((event) => {\r\n          if (zoomControlled) {\r\n              setPreventAnimation(true);\r\n              setZoomDomain(event.domain);\r\n              setIsZoomed(event.isZoomed);\r\n              clearTimeout(timeout.current);\r\n              timeout.current = setTimeout(() => setPreventAnimation(true), 500);\r\n          }\r\n      }, [zoomControlled]);\r\n      const renderChart = react.useCallback(({ chartHeight, chartWidth, id, updateAxes, chartSized }) => {\r\n          const { yScale, xScale } = getScales(chartHeight, chartWidth);\r\n          const animated = preventAnimation === true ? false : series.props.animated;\r\n          const disableBrush = aggregatedData.length <= 1;\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [chartSized && gridlines && (jsxRuntime.jsx(rdk.CloneElement, { element: gridlines, height: chartHeight, width: chartWidth, yScale: yScale, xScale: xScale, yAxis: yAxis.props, xAxis: xAxis.props }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: xAxis, height: chartHeight, width: chartWidth, scale: xScale, onDimensionsChange: (e) => updateAxes('horizontal', e) }, void 0),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: yAxis, height: chartHeight, width: chartWidth, scale: yScale, onDimensionsChange: (e) => updateAxes('vertical', e) }, void 0),\r\n                  secondaryAxis &&\r\n                      secondaryAxis.map((axis, i) => (jsxRuntime.jsx(rdk.CloneElement, { element: axis, height: chartHeight, width: chartWidth, onDimensionsChange: (e) => updateAxes('horizontal', e) }, i))),\r\n                  chartSized && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ disabled: disableBrush, element: brush, height: chartHeight, width: chartWidth, scale: xScale }, { children: jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: zoomPan, onZoomPan: onZoomPan, height: chartHeight, width: chartWidth, axisType: xAxis.props.type, roundDomains: xAxis.props.roundDomains, data: aggregatedData, domain: zoomDomain }, { children: jsxRuntime.jsx(rdk.CloneElement, { element: series, id: `area-series-${id}`, data: aggregatedData, height: chartHeight, width: chartWidth, yScale: yScale, xScale: xScale, isZoomed: isZoomed, animated: animated }, void 0) }), void 0) }), void 0))] }, void 0));\r\n      }, [\r\n          getScales,\r\n          preventAnimation,\r\n          series,\r\n          gridlines,\r\n          yAxis,\r\n          xAxis,\r\n          secondaryAxis,\r\n          brush,\r\n          zoomPan,\r\n          onZoomPan,\r\n          aggregatedData,\r\n          zoomDomain,\r\n          isZoomed\r\n      ]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, containerClassName: containerClassName, margins: margins, xAxisVisible: isAxisVisible(xAxis.props), yAxisVisible: isAxisVisible(yAxis.props), className: classNames__default['default'](css$f.scatterPlot, className) }, { children: renderChart }), void 0));\r\n  };\r\n  ScatterPlot.defaultProps = {\r\n      data: [],\r\n      xAxis: jsxRuntime.jsx(LinearXAxis, { type: \"time\" }, void 0),\r\n      yAxis: jsxRuntime.jsx(LinearYAxis, { type: \"value\" }, void 0),\r\n      series: jsxRuntime.jsx(ScatterSeries, {}, void 0),\r\n      gridlines: jsxRuntime.jsx(GridlineSeries, {}, void 0),\r\n      brush: null,\r\n      zoomPan: null\r\n  };\n\n  var css_248z$e = \".PointSeries-module_point__3cXpV {\\n  stroke: rgba(255, 255, 255, 0.5);\\n  stroke-width: 1px;\\n}\\n\";\n  var css$e = {\"point\":\"PointSeries-module_point__3cXpV\"};\n  styleInject(css_248z$e);\n\n  const PointSeries = ({ data, xScale, yScale, animated, point, color, height, width, id, activeValues, show }) => {\r\n      const getIsVisible = react.useCallback((point, index) => {\r\n          const isActive = activeValues && point && isEqual__default['default'](activeValues.x, point.x);\r\n          if (show === 'hover') {\r\n              return isActive;\r\n          }\r\n          else if (show === 'first') {\r\n              if (activeValues) {\r\n                  return isActive;\r\n              }\r\n              else {\r\n                  return index === 0;\r\n              }\r\n          }\r\n          else if (show === 'last') {\r\n              if (activeValues) {\r\n                  return isActive;\r\n              }\r\n              else {\r\n                  return index === data.length - 1;\r\n              }\r\n          }\r\n          return show;\r\n      }, [activeValues, data.length, show]);\r\n      return (jsxRuntime.jsx(ScatterSeries, { height: height, width: width, id: id, animated: animated, data: data, xScale: xScale, yScale: yScale, point: jsxRuntime.jsx(rdk.CloneElement, { element: point, color: color, className: css$e.point, size: 4, tooltip: null, visible: getIsVisible }, void 0) }, void 0));\r\n  };\r\n  PointSeries.defaultProps = {\r\n      show: 'hover',\r\n      point: jsxRuntime.jsx(ScatterPoint, {}, void 0)\r\n  };\n\n  const Area = (_a) => {\r\n      var { id, gradient, mask, data, color, index, total, xScale, yScale, animated, interpolation } = _a, rest = __rest(_a, [\"id\", \"gradient\", \"mask\", \"data\", \"color\", \"index\", \"total\", \"xScale\", \"yScale\", \"animated\", \"interpolation\"]);\r\n      const stroke = color(data, index);\r\n      const coords = react.useMemo(() => {\r\n          return data.map((item) => ({\r\n              x: xScale(item.x),\r\n              x1: xScale(item.x) - xScale(item.x1),\r\n              y: yScale(item.y),\r\n              y0: yScale(item.y0),\r\n              y1: yScale(item.y1)\r\n          }));\r\n      }, [data, xScale, yScale]);\r\n      const getAreaPath = react.useCallback((d) => {\r\n          // If the input data is a single value and this is the only\r\n          // area in a series, fill the available space with an area:\r\n          if (d.length === 1 && total === 1) {\r\n              const [point] = d;\r\n              // Assume the single data point's `x` value\r\n              // is the middle of the graph:\r\n              const midpoint = point.x;\r\n              d = [Object.assign({}, point), Object.assign({}, point)];\r\n              const [start, end] = d;\r\n              start.x = 0;\r\n              end.x = midpoint * 2;\r\n          }\r\n          const fn = d3Shape.area()\r\n              .x((d) => d.x)\r\n              .y0((d) => d.y0)\r\n              .y1((d) => d.y1)\r\n              .curve(interpolate(interpolation));\r\n          return fn(d);\r\n      }, [interpolation, total]);\r\n      const enter = react.useMemo(() => {\r\n          const areaPath = getAreaPath(coords);\r\n          return {\r\n              d: areaPath === null ? undefined : areaPath\r\n          };\r\n      }, [coords, getAreaPath]);\r\n      const exit = react.useMemo(() => {\r\n          const maxY = Math.max(...yScale.range());\r\n          const coords = data.map((item) => ({\r\n              x: xScale(item.x),\r\n              x1: 0,\r\n              y: 0,\r\n              y1: maxY,\r\n              y0: maxY\r\n          }));\r\n          const areaPath = getAreaPath(coords);\r\n          return {\r\n              d: areaPath === null ? undefined : areaPath\r\n          };\r\n      }, [data, getAreaPath, xScale, yScale]);\r\n      const fill = react.useMemo(() => {\r\n          if (mask) {\r\n              return `url(#mask-pattern-${id})`;\r\n          }\r\n          else {\r\n              if (gradient) {\r\n                  return `url(#gradient-${id})`;\r\n              }\r\n              return '';\r\n          }\r\n      }, [gradient, id, mask]);\r\n      const transition = react.useMemo(() => {\r\n          if (animated) {\r\n              return Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: index * 0.05 });\r\n          }\r\n          else {\r\n              return {\r\n                  type: false,\r\n                  delay: 0\r\n              };\r\n          }\r\n      }, [animated, index]);\r\n      const renderArea = react.useCallback(() => {\r\n          const maskPath = mask ? `url(#mask-${id})` : '';\r\n          const extras = constructFunctionProps(rest, data);\r\n          return (jsxRuntime.jsx(MotionPath, Object.assign({}, extras, { pointerEvents: \"none\", mask: maskPath, fill: fill, transition: transition, custom: {\r\n                  enter,\r\n                  exit\r\n              } }), void 0));\r\n      }, [data, enter, exit, fill, id, mask, rest, transition]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [renderArea(), mask && (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Mask, { id: `mask-${id}`, fill: `url(#gradient-${id})` }, void 0),\r\n                      jsxRuntime.jsx(rdk.CloneElement, { element: mask, id: `mask-pattern-${id}`, fill: stroke }, void 0)] }, void 0)),\r\n              gradient && (jsxRuntime.jsx(rdk.CloneElement, { element: gradient, id: `gradient-${id}`, color: stroke }, void 0))] }, void 0));\r\n  };\r\n  Area.defaultProps = {\r\n      gradient: jsxRuntime.jsx(Gradient, {}, void 0),\r\n      interpolation: 'linear'\r\n  };\n\n  const Line = (_a) => {\r\n      var { width, data, color, index, strokeWidth, hasArea, animated, yScale, xScale, showZeroStroke, interpolation } = _a, rest = __rest(_a, [\"width\", \"data\", \"color\", \"index\", \"strokeWidth\", \"hasArea\", \"animated\", \"yScale\", \"xScale\", \"showZeroStroke\", \"interpolation\"]);\r\n      const [pathLength, setPathLength] = react.useState(null);\r\n      const ghostPathRef = react.useRef(null);\r\n      react.useEffect(() => {\r\n          if (ghostPathRef.current) {\r\n              setPathLength(ghostPathRef.current.getTotalLength());\r\n          }\r\n      }, [data, xScale, yScale, width]);\r\n      const getLinePath = react.useCallback((point) => {\r\n          const fn = d3Shape.line()\r\n              .x((d) => d.x)\r\n              .y((d) => d.y1)\r\n              .defined((d) => showZeroStroke || calculateShowStroke(d, point))\r\n              .curve(interpolate(interpolation));\r\n          return fn(point);\r\n      }, [interpolation, showZeroStroke]);\r\n      const transition = react.useMemo(() => {\r\n          if (animated) {\r\n              return Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: hasArea ? 0 : index * 0.05 });\r\n          }\r\n          else {\r\n              return {\r\n                  type: false,\r\n                  delay: 0\r\n              };\r\n          }\r\n      }, [animated, hasArea, index]);\r\n      const coords = react.useMemo(() => {\r\n          return data.map((item) => ({\r\n              x: xScale(item.x),\r\n              x1: xScale(item.x) - xScale(item.x1),\r\n              y: yScale(item.y),\r\n              y0: yScale(item.y0),\r\n              y1: yScale(item.y1)\r\n          }));\r\n      }, [data, xScale, yScale]);\r\n      const enter = react.useMemo(() => {\r\n          const linePath = getLinePath(coords);\r\n          let strokeDasharray = '';\r\n          if (!hasArea && pathLength !== null) {\r\n              strokeDasharray = `${pathLength} ${pathLength}`;\r\n          }\r\n          return {\r\n              d: linePath === null ? undefined : linePath,\r\n              strokeDashoffset: 0,\r\n              strokeDasharray: strokeDasharray\r\n          };\r\n      }, [coords, getLinePath, hasArea, pathLength]);\r\n      const exit = react.useMemo(() => {\r\n          let newCoords = coords;\r\n          if (hasArea) {\r\n              const maxY = Math.max(...yScale.range());\r\n              newCoords = data.map((item) => ({\r\n                  x: xScale(item.x),\r\n                  x1: 0,\r\n                  y: maxY,\r\n                  y1: maxY,\r\n                  y0: maxY\r\n              }));\r\n          }\r\n          const linePath = getLinePath(newCoords);\r\n          let strokeDasharray = '';\r\n          let strokeDashoffset = 0;\r\n          if (!hasArea && pathLength !== null) {\r\n              strokeDasharray = `${pathLength} ${pathLength}`;\r\n              strokeDashoffset = pathLength;\r\n          }\r\n          return {\r\n              d: linePath === null ? undefined : linePath,\r\n              strokeDasharray,\r\n              strokeDashoffset\r\n          };\r\n      }, [coords, data, getLinePath, hasArea, pathLength, xScale, yScale]);\r\n      const stroke = color(data, index);\r\n      const extras = constructFunctionProps(rest, data);\r\n      const showLine = hasArea || pathLength !== null;\r\n      // framer-motion freaks out when these are added for area\r\n      if (hasArea) {\r\n          delete enter.strokeDashoffset;\r\n          delete exit.strokeDashoffset;\r\n      }\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [showLine && (jsxRuntime.jsx(MotionPath, Object.assign({}, extras, { pointerEvents: \"none\", stroke: stroke, strokeWidth: strokeWidth, fill: \"none\", transition: transition, custom: {\r\n                      enter,\r\n                      exit\r\n                  } }), void 0)),\r\n              !hasArea && (jsxRuntime.jsx(\"path\", { opacity: \"0\", d: enter.d, ref: ghostPathRef, pointerEvents: \"none\" }, void 0))] }, void 0));\r\n  };\r\n  Line.defaultProps = {\r\n      showZeroStroke: true,\r\n      strokeWidth: 3\r\n  };\n\n  // For area charts, often symbols exceed the area\r\n  // and we want to add a little bit of padding to prevent clipping\r\n  const PADDING = 25;\r\n  const HALF_PADDING = PADDING / 2;\r\n  const AreaSeries = ({ data, height, id, width, isZoomed, tooltip, xScale, yScale, type, markLine, symbols, animated, area, interpolation, line, colorScheme }) => {\r\n      const [activeValues, setActiveValues] = react.useState(null);\r\n      const [activePoint, setActivePoint] = react.useState(null);\r\n      const onValueEnter = react.useCallback((event) => {\r\n          setActivePoint(event.pointX);\r\n          setActiveValues(event.value);\r\n      }, []);\r\n      const onValueLeave = react.useCallback(() => {\r\n          setActivePoint(undefined);\r\n          setActiveValues(undefined);\r\n      }, []);\r\n      const isMulti = type === 'grouped' || type === 'stacked' || type === 'stackedNormalized';\r\n      const getPointColor = react.useCallback((point, index) => {\r\n          var _a;\r\n          const key = Array.isArray(point) ? (_a = point === null || point === void 0 ? void 0 : point[0]) === null || _a === void 0 ? void 0 : _a.key : point === null || point === void 0 ? void 0 : point.key;\r\n          return getColor({\r\n              data,\r\n              colorScheme,\r\n              active: activeValues,\r\n              point,\r\n              index,\r\n              key\r\n          });\r\n      }, [activeValues, colorScheme, data]);\r\n      const renderArea = react.useCallback((data, index = 0, total = 1) => {\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [line && (jsxRuntime.jsx(rdk.CloneElement, { element: line, xScale: xScale, yScale: yScale, data: data, width: width, index: index, hasArea: area !== null, animated: animated, interpolation: interpolation, color: getPointColor }, void 0)),\r\n                  area && (jsxRuntime.jsx(rdk.CloneElement, { element: area, id: `${id}-area-${index}`, xScale: xScale, yScale: yScale, data: data, index: index, total: total, animated: animated, interpolation: interpolation, color: getPointColor }, void 0))] }, void 0));\r\n      }, [\r\n          animated,\r\n          area,\r\n          getPointColor,\r\n          id,\r\n          interpolation,\r\n          line,\r\n          width,\r\n          xScale,\r\n          yScale\r\n      ]);\r\n      const renderSymbols = react.useCallback((data, index = 0) => {\r\n          const visible = symbols !== null;\r\n          const activeSymbols = (symbols && symbols.props.activeValues) || activeValues;\r\n          // Animations are only valid for Area\r\n          const isAnimated = area !== undefined && animated && !activeSymbols;\r\n          return (jsxRuntime.jsx(react.Fragment, { children: visible && (jsxRuntime.jsx(rdk.CloneElement, { element: symbols, id: id, height: height, width: width, activeValues: activeSymbols, xScale: xScale, yScale: yScale, index: index, data: data, animated: isAnimated, color: () => getPointColor(data, index) }, `point-series-${id}`)) }, void 0));\r\n      }, [\r\n          activeValues,\r\n          animated,\r\n          area,\r\n          getPointColor,\r\n          height,\r\n          id,\r\n          symbols,\r\n          width,\r\n          xScale,\r\n          yScale\r\n      ]);\r\n      const renderMarkLine = react.useCallback(() => {\r\n          return (jsxRuntime.jsx(react.Fragment, { children: activeValues && markLine && (jsxRuntime.jsx(rdk.CloneElement, { element: markLine, height: height, pointX: activePoint }, void 0)) }, void 0));\r\n      }, [activePoint, activeValues, height, markLine]);\r\n      const renderSingleSeries = react.useCallback((data) => {\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [renderArea(data), renderMarkLine(), renderSymbols(data)] }, void 0));\r\n      }, [renderArea, renderMarkLine, renderSymbols]);\r\n      const renderMultiSeries = react.useCallback((data) => {\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [data\r\n                      .map((point, index) => (jsxRuntime.jsx(react.Fragment, { children: renderArea(point.data, index, data.length) }, `${point.key.toString()}`)))\r\n                      .reverse(), renderMarkLine(), data\r\n                      .map((point, index) => (jsxRuntime.jsx(react.Fragment, { children: renderSymbols(point.data, index) }, `${point.key.toString()}`)))\r\n                      .reverse()] }, void 0));\r\n      }, [renderArea, renderMarkLine, renderSymbols]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"defs\", { children: jsxRuntime.jsx(\"clipPath\", Object.assign({ id: `${id}-path` }, { children: jsxRuntime.jsx(\"rect\", { width: isZoomed ? width : width + PADDING, height: height + PADDING, x: isZoomed ? 0 : -HALF_PADDING, y: -HALF_PADDING }, void 0) }), void 0) }, void 0),\r\n              jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: tooltip, xScale: xScale, yScale: yScale, data: data, height: height, width: width, color: getPointColor, onValueEnter: onValueEnter, onValueLeave: onValueLeave }, { children: jsxRuntime.jsxs(\"g\", Object.assign({ clipPath: `url(#${id}-path)` }, { children: [isMulti && renderMultiSeries(data),\r\n                          !isMulti &&\r\n                              renderSingleSeries(data)] }), void 0) }), void 0)] }, void 0));\r\n  };\r\n  AreaSeries.defaultProps = {\r\n      colorScheme: 'cybertron',\r\n      animated: true,\r\n      interpolation: 'linear',\r\n      type: 'standard',\r\n      line: jsxRuntime.jsx(Line, {}, void 0),\r\n      area: jsxRuntime.jsx(Area, {}, void 0),\r\n      markLine: jsxRuntime.jsx(MarkLine, {}, void 0),\r\n      tooltip: jsxRuntime.jsx(TooltipArea, {}, void 0),\r\n      symbols: jsxRuntime.jsx(PointSeries, {}, void 0)\r\n  };\n\n  const StackedNormalizedAreaSeries = (_a) => {\r\n      var { type, symbols } = _a, rest = __rest(_a, [\"type\", \"symbols\"]);\r\n      return (jsxRuntime.jsx(AreaSeries, Object.assign({}, rest, { type: \"stackedNormalized\", symbols: symbols && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: symbols }, symbols.props, { point: jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: symbols.props.point }, symbols.props.point.props, { tooltip: null }), void 0) }), void 0)) }), void 0));\r\n  };\r\n  StackedNormalizedAreaSeries.defaultProps = Object.assign(Object.assign({}, AreaSeries.defaultProps), { type: 'stackedNormalized', tooltip: (jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { content: (series, color) => {\r\n                  if (!series) {\r\n                      return null;\r\n                  }\r\n                  const value = Object.assign(Object.assign({}, series), { data: series.data.map((d) => (Object.assign(Object.assign({}, d), { value: `${formatValue(d.value)} ∙ ${formatValue(Math.floor((d.y1 - d.y0) * 100))}%` }))) });\r\n                  return jsxRuntime.jsx(TooltipTemplate, { color: color, value: value }, void 0);\r\n              } }, void 0) }, void 0)) });\n\n  const StackedAreaSeries = (_a) => {\r\n      var { type, symbols } = _a, rest = __rest(_a, [\"type\", \"symbols\"]);\r\n      return (jsxRuntime.jsx(AreaSeries, Object.assign({}, rest, { type: \"stacked\", symbols: symbols && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: symbols }, symbols.props, { point: jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: symbols.props.point }, symbols.props.point.props, { tooltip: null }), void 0) }), void 0)) }), void 0));\r\n  };\r\n  StackedAreaSeries.defaultProps = Object.assign(Object.assign({}, AreaSeries.defaultProps), { type: 'stacked' });\n\n  var css_248z$d = \".AreaChart-module_areaChart__1BikF {\\n  overflow: visible;\\n}\\n\";\n  var css$d = {\"areaChart\":\"AreaChart-module_areaChart__1BikF\"};\n  styleInject(css_248z$d);\n\n  const AreaChart = ({ xAxis, yAxis, id, data, width, height, margins, className, containerClassName, series, gridlines, brush, zoomPan, secondaryAxis }) => {\r\n      const zoom = zoomPan ? zoomPan.props : {};\r\n      const [zoomDomain, setZoomDomain] = react.useState(zoom.domain);\r\n      const [preventAnimation, setPreventAnimation] = react.useState(false);\r\n      const [isZoomed, setIsZoomed] = react.useState(!!zoom.domain);\r\n      // eslint-disable-next-line\r\n      const [zoomControlled] = react.useState(!zoom.hasOwnProperty('domain'));\r\n      const timeoutRef = react.useRef(null);\r\n      const seriesType = series.props.type;\r\n      const isMultiSeries = seriesType === 'stacked' ||\r\n          seriesType === 'stackedNormalized' ||\r\n          seriesType === 'grouped';\r\n      const animated = preventAnimation === true ? false : series.props.animated;\r\n      react.useEffect(() => {\r\n          if (zoomPan) {\r\n              const zoom = zoomPan.props;\r\n              if (!zoomControlled && zoom.domain !== zoomDomain) {\r\n                  setZoomDomain(zoom.domain);\r\n                  setIsZoomed(!!zoom.domain);\r\n              }\r\n          }\r\n      }, [zoomControlled, zoomDomain, zoomPan]);\r\n      const aggregatedData = react.useMemo(() => {\r\n          if (seriesType === 'stacked' || seriesType === 'stackedNormalized') {\r\n              return buildStackData(data, seriesType === 'stackedNormalized');\r\n          }\r\n          else if (seriesType === 'grouped') {\r\n              return buildNestedChartData(data, true);\r\n          }\r\n          else {\r\n              return buildShallowChartData(data);\r\n          }\r\n      }, [data, seriesType]);\r\n      const getScales = react.useCallback((chartWidth, chartHeight) => {\r\n          const xScale = getXScale({\r\n              width: chartWidth,\r\n              type: xAxis.props.type,\r\n              roundDomains: xAxis.props.roundDomains,\r\n              data: aggregatedData,\r\n              domain: zoomDomain || xAxis.props.domain,\r\n              isMultiSeries\r\n          });\r\n          const yScale = getYScale({\r\n              roundDomains: yAxis.props.roundDomains,\r\n              type: yAxis.props.type,\r\n              height: chartHeight,\r\n              data: aggregatedData,\r\n              domain: yAxis.props.domain,\r\n              isMultiSeries\r\n          });\r\n          return { xScale, yScale };\r\n      }, [\r\n          aggregatedData,\r\n          isMultiSeries,\r\n          xAxis.props.domain,\r\n          xAxis.props.roundDomains,\r\n          xAxis.props.type,\r\n          yAxis.props.domain,\r\n          yAxis.props.roundDomains,\r\n          yAxis.props.type,\r\n          zoomDomain\r\n      ]);\r\n      const onZoomPan = react.useCallback((event) => {\r\n          if (zoomControlled) {\r\n              setZoomDomain(event.domain);\r\n              setIsZoomed(event.isZoomed);\r\n              setPreventAnimation(true);\r\n              clearTimeout(timeoutRef.current);\r\n              timeoutRef.current = setTimeout(() => setPreventAnimation(false));\r\n          }\r\n      }, [zoomControlled]);\r\n      const renderChart = react.useCallback(({ chartHeight, chartWidth, id, updateAxes, chartSized }) => {\r\n          const { xScale, yScale } = getScales(chartWidth, chartHeight);\r\n          const disableBrush = aggregatedData.length <= 1;\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [chartSized && gridlines && (jsxRuntime.jsx(rdk.CloneElement, { element: gridlines, height: chartHeight, width: chartWidth, yScale: yScale, xScale: xScale, yAxis: yAxis.props, xAxis: xAxis.props }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: xAxis, height: chartHeight, width: chartWidth, scale: xScale, onDimensionsChange: (event) => updateAxes('horizontal', event) }, void 0),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: yAxis, height: chartHeight, width: chartWidth, scale: yScale, onDimensionsChange: (event) => updateAxes('vertical', event) }, void 0),\r\n                  secondaryAxis &&\r\n                      secondaryAxis.map((axis, i) => (jsxRuntime.jsx(rdk.CloneElement, { element: axis, height: chartHeight, width: chartWidth, onDimensionsChange: (event) => updateAxes('horizontal', event) }, i))),\r\n                  chartSized && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ disabled: disableBrush, element: brush, height: chartHeight, width: chartWidth, scale: xScale }, { children: jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: zoomPan, onZoomPan: onZoomPan, height: chartHeight, width: chartWidth, axisType: xAxis.props.type, roundDomains: xAxis.props.roundDomains, data: aggregatedData, domain: zoomDomain }, { children: jsxRuntime.jsx(rdk.CloneElement, { element: series, id: `area-series-${id}`, data: aggregatedData, height: chartHeight, width: chartWidth, yScale: yScale, xScale: xScale, isZoomed: isZoomed, animated: animated }, void 0) }), void 0) }), void 0))] }, void 0));\r\n      }, [\r\n          aggregatedData,\r\n          animated,\r\n          brush,\r\n          getScales,\r\n          gridlines,\r\n          isZoomed,\r\n          onZoomPan,\r\n          secondaryAxis,\r\n          series,\r\n          xAxis,\r\n          yAxis,\r\n          zoomDomain,\r\n          zoomPan\r\n      ]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, containerClassName: containerClassName, xAxisVisible: isAxisVisible(xAxis.props), yAxisVisible: isAxisVisible(yAxis.props), className: classNames__default['default'](css$d.areaChart, className, series.type) }, { children: renderChart }), void 0));\r\n  };\r\n  AreaChart.defaultProps = {\r\n      data: [],\r\n      xAxis: jsxRuntime.jsx(LinearXAxis, { type: \"time\" }, void 0),\r\n      yAxis: jsxRuntime.jsx(LinearYAxis, { type: \"value\" }, void 0),\r\n      series: jsxRuntime.jsx(AreaSeries, {}, void 0),\r\n      gridlines: jsxRuntime.jsx(GridlineSeries, {}, void 0),\r\n      brush: null,\r\n      zoomPan: null\r\n  };\n\n  const StackedAreaChart = (props) => (jsxRuntime.jsx(AreaChart, Object.assign({}, props), void 0));\r\n  StackedAreaChart.defaultProps = {\r\n      series: jsxRuntime.jsx(StackedAreaSeries, {}, void 0)\r\n  };\n\n  const StackedNormalizedAreaChart = (props) => jsxRuntime.jsx(AreaChart, Object.assign({}, props), void 0);\r\n  StackedNormalizedAreaChart.defaultProps = {\r\n      series: jsxRuntime.jsx(StackedNormalizedAreaSeries, {}, void 0),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { type: \"value\", tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { label: jsxRuntime.jsx(LinearYAxisTickLabel, { rotation: false, format: (data) => `${data * 100}%` }, void 0) }, void 0) }, void 0))\r\n  };\n\n  const Bar = ({ activeBrightness, id, gradient, data, barIndex, color, yScale, barCount, xScale, groupIndex, minHeight, rangeLines, animated, active, type, tooltip, layout, mask, label, cursor, rx, ry, isCategorical, className, style, width, padding, guide, xScale1, onMouseEnter, onClick, onMouseMove, onMouseLeave }) => {\r\n      const isVertical = react.useMemo(() => layout === 'vertical', [layout]);\r\n      const rect = react.useRef(null);\r\n      const [internalActive, setInternalActive] = react.useState(active);\r\n      const calculateLinearScalePadding = react.useCallback((scale, offset, size) => {\r\n          // This function calculates the padding on a linear scale used by the marimekko chart.\r\n          const totalSize = scale.range()[1];\r\n          const sizeMinusPadding = totalSize - padding * (barCount - 1);\r\n          const multiplier = sizeMinusPadding / totalSize;\r\n          offset = offset * multiplier + groupIndex * padding;\r\n          size = size * multiplier;\r\n          return { size, offset };\r\n      }, [barCount, groupIndex, padding]);\r\n      const getExit = react.useCallback(({ x, y, width, height }) => {\r\n          let newX = isVertical ? x : Math.min(...xScale.range());\r\n          let newY = isVertical ? Math.max(...yScale.range()) : y;\r\n          const newHeight = isVertical ? 0 : height;\r\n          const newWidth = isVertical ? width : 0;\r\n          if (type === 'stackedDiverging') {\r\n              if (isVertical) {\r\n                  newY = newY / 2;\r\n              }\r\n              else {\r\n                  newX = newX / 2;\r\n              }\r\n          }\r\n          return {\r\n              x: newX,\r\n              y: newY,\r\n              height: newHeight,\r\n              width: newWidth\r\n          };\r\n      }, [isVertical, type, xScale, yScale]);\r\n      const getKeyCoords = react.useCallback((v, v0, v1, scale, sizeOverride, isCategorical, padding) => {\r\n          let offset;\r\n          let size;\r\n          if (isCategorical) {\r\n              if (scale.bandwidth) {\r\n                  offset = scale(v);\r\n                  size = scale.bandwidth();\r\n                  if (sizeOverride) {\r\n                      if (offset) {\r\n                          offset = offset + size / 2 - sizeOverride / 2;\r\n                      }\r\n                      else {\r\n                          // Stacked bar charts don't have offsets...\r\n                          offset = size / 2 - sizeOverride / 2;\r\n                      }\r\n                      size = sizeOverride;\r\n                  }\r\n              }\r\n              else {\r\n                  if (sizeOverride) {\r\n                      throw new Error('Not a valid option for this scale type');\r\n                  }\r\n                  offset = scale(v0);\r\n                  size = scale(v1 - v0);\r\n                  if (padding) {\r\n                      const calc = calculateLinearScalePadding(scale, offset, size);\r\n                      offset = calc.offset;\r\n                      size = calc.size;\r\n                  }\r\n              }\r\n          }\r\n          else {\r\n              if (sizeOverride) {\r\n                  throw new Error('Not a valid option for this scale type');\r\n              }\r\n              const c0 = scale(v0);\r\n              const c1 = scale(v1);\r\n              const delta = c1 - c0;\r\n              offset = c0;\r\n              size = Math.max(delta - 1, 0);\r\n          }\r\n          return {\r\n              offset: isNaN(offset) ? 0 : offset,\r\n              size: isNaN(size) ? 0 : size\r\n          };\r\n      }, [calculateLinearScalePadding]);\r\n      const getValueCoords = react.useCallback((v0, v1, scale) => {\r\n          const c0 = scale(v0);\r\n          const c1 = scale(v1);\r\n          const size = Math.abs(c0 - c1);\r\n          const minSize = Math.max(minHeight || 0, size);\r\n          const offset = Math.min(c0, c1);\r\n          return {\r\n              offset: isNaN(offset) ? 0 : offset,\r\n              size: isNaN(minSize) ? 0 : minSize\r\n          };\r\n      }, [minHeight]);\r\n      const getCoords = react.useCallback((data) => {\r\n          let newYScale = yScale;\r\n          let newXScale = xScale;\r\n          if (xScale1) {\r\n              if (isVertical) {\r\n                  newXScale = xScale1;\r\n              }\r\n              else {\r\n                  newYScale = xScale1;\r\n              }\r\n          }\r\n          if (isVertical) {\r\n              const xCoords = getKeyCoords(data.x, data.x0, data.x1, newXScale, width, isCategorical, padding);\r\n              const yCoords = getValueCoords(data.y0, data.y1, newYScale);\r\n              return {\r\n                  x: xCoords.offset,\r\n                  width: xCoords.size,\r\n                  y: yCoords.offset,\r\n                  height: yCoords.size\r\n              };\r\n          }\r\n          else {\r\n              const yCoords = getKeyCoords(data.y, data.y0, data.y1, newYScale, width, isCategorical, padding);\r\n              const xCoords = getValueCoords(data.x0, data.x1, newXScale);\r\n              return {\r\n                  x: xCoords.offset,\r\n                  width: xCoords.size,\r\n                  y: yCoords.offset,\r\n                  height: yCoords.size\r\n              };\r\n          }\r\n      }, [\r\n          getKeyCoords,\r\n          getValueCoords,\r\n          isCategorical,\r\n          isVertical,\r\n          padding,\r\n          width,\r\n          xScale,\r\n          xScale1,\r\n          yScale\r\n      ]);\r\n      const onMouseEnterInternal = react.useCallback((event) => {\r\n          // Only tooltip bars rely on this...\r\n          if (tooltip) {\r\n              setInternalActive(true);\r\n          }\r\n          onMouseEnter({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      }, [data, onMouseEnter, tooltip]);\r\n      const onMouseLeaveInternal = react.useCallback((event) => {\r\n          // Only tooltip bars rely on this...\r\n          if (tooltip) {\r\n              setInternalActive(false);\r\n          }\r\n          onMouseLeave({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      }, [data, onMouseLeave, tooltip]);\r\n      const onMouseClick = react.useCallback((event) => {\r\n          onClick({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      }, [data, onClick]);\r\n      const getFill = react.useCallback((color) => {\r\n          if (mask) {\r\n              return `url(#mask-pattern-${id})`;\r\n          }\r\n          else {\r\n              if (gradient) {\r\n                  return `url(#gradient-${id})`;\r\n              }\r\n              return color;\r\n          }\r\n      }, [gradient, id, mask]);\r\n      const tooltipData = react.useMemo(() => {\r\n          const xAttr = isCategorical ? 'x' : 'x0';\r\n          let x = data[xAttr];\r\n          // Stacked diverging negative numbers\r\n          // in horizontal layouts need to pull x0\r\n          if (data.x0 < 0) {\r\n              x = data.x0;\r\n          }\r\n          const matches = isVertical\r\n              ? data.key && data.key !== x\r\n              : data.key && data.key !== data.y;\r\n          if (matches) {\r\n              x = `${data.key} ∙ ${x}`;\r\n          }\r\n          return {\r\n              y: data.y,\r\n              x\r\n          };\r\n      }, [data, isCategorical, isVertical]);\r\n      const getTransition = react.useCallback((index) => {\r\n          if (animated) {\r\n              let delay = 0;\r\n              if (layout === 'vertical') {\r\n                  delay = (index / barCount) * 0.5;\r\n              }\r\n              else {\r\n                  delay = ((barCount - index) / barCount) * 0.5;\r\n              }\r\n              return Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: delay });\r\n          }\r\n          else {\r\n              return {\r\n                  type: false,\r\n                  delay: 0\r\n              };\r\n          }\r\n      }, [animated, barCount, layout]);\r\n      const renderBar = react.useCallback((currentColorShade, coords, index) => {\r\n          const maskPath = mask ? `url(#mask-${id})` : '';\r\n          const fill = getFill(currentColorShade);\r\n          const initialExit = getExit(coords);\r\n          const extras = constructFunctionProps({ className, style }, data);\r\n          const transition = getTransition(index);\r\n          // UGH: https://github.com/framer/motion/issues/384\r\n          const initial = Object.assign(Object.assign({}, initialExit), { attrX: initialExit.x, attrY: initialExit.y, fill });\r\n          delete initial.x;\r\n          delete initial.y;\r\n          const animate = Object.assign(Object.assign({}, coords), { attrX: coords.x, attrY: coords.y, fill });\r\n          delete animate.x;\r\n          delete animate.y;\r\n          return (jsxRuntime.jsx(\"g\", Object.assign({ ref: rect }, { children: jsxRuntime.jsx(framerMotion.motion.rect, { className: classNames__default['default'](extras.className), style: Object.assign(Object.assign({}, extras.style), { cursor }), mask: maskPath, rx: rx, ry: ry, initial: initial, animate: animate, exit: initial, transition: transition, onMouseEnter: onMouseEnterInternal, onMouseLeave: onMouseLeaveInternal, onClick: onMouseClick, onMouseMove: onMouseMove }, void 0) }), void 0));\r\n      }, [\r\n          className,\r\n          cursor,\r\n          data,\r\n          getExit,\r\n          getFill,\r\n          getTransition,\r\n          id,\r\n          mask,\r\n          onMouseClick,\r\n          onMouseEnterInternal,\r\n          onMouseLeaveInternal,\r\n          onMouseMove,\r\n          rx,\r\n          ry,\r\n          style\r\n      ]);\r\n      const renderGuideBar = react.useCallback(() => {\r\n          if (!guide) {\r\n              return null;\r\n          }\r\n          // If we are stacked, only render the first bar\r\n          if (type === 'stacked' && barIndex !== 0) {\r\n              return null;\r\n          }\r\n          // No reason to show them since they are always 100% tall\r\n          if (type === 'stackedNormalized' || type === 'marimekko') {\r\n              console.error('Guide bars are not supported for these chart types');\r\n              return null;\r\n          }\r\n          const valueScale = isVertical ? yScale : xScale;\r\n          const [start, end] = valueScale.domain();\r\n          const attr = isVertical ? 'y' : 'x';\r\n          // For stacked diverging we need to flip the points for positive / negative bars\r\n          const attrStart = type === 'stackedDiverging' ? '0' : '1';\r\n          const endPoint = type === 'stackedDiverging' ? start : end;\r\n          const startPoint = type === 'stackedDiverging' && data[attr] > 0\r\n              ? end\r\n              : endPoint;\r\n          const coords = getCoords(Object.assign(Object.assign({}, data), { [attr]: endPoint, [`${attr}${attrStart}`]: startPoint }));\r\n          return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: guide }, coords, { active: active }), void 0));\r\n      }, [\r\n          active,\r\n          barIndex,\r\n          data,\r\n          getCoords,\r\n          guide,\r\n          isVertical,\r\n          type,\r\n          xScale,\r\n          yScale\r\n      ]);\r\n      const isActive = tooltip ? internalActive : active;\r\n      const stroke = color(data, barIndex);\r\n      const coords = getCoords(data);\r\n      const currentColorShade = active\r\n          ? chroma__default['default'](stroke).brighten(activeBrightness).hex()\r\n          : stroke;\r\n      const rangeLineColor = (rangeLines && rangeLines.props.color) || stroke;\r\n      const rangeLineColorShade = active\r\n          ? chroma__default['default'](rangeLineColor).brighten(activeBrightness)\r\n          : rangeLineColor;\r\n      const index = groupIndex !== undefined ? groupIndex : barIndex;\r\n      const scale = isVertical ? yScale : xScale;\r\n      const barLabel = isVertical ? tooltipData.y : tooltipData.x;\r\n      const placement = layout === 'vertical' ? 'top' : 'right';\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [renderGuideBar(), renderBar(currentColorShade, coords, index), rangeLines && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: rangeLines }, coords, { index: index, data: data, scale: scale, color: rangeLineColorShade, barCount: barCount, animated: animated, layout: layout, type: type }), void 0)),\r\n              mask && (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Mask, { id: `mask-${id}`, fill: `url(#gradient-${id})` }, void 0),\r\n                      jsxRuntime.jsx(rdk.CloneElement, { element: mask, id: `mask-pattern-${id}`, fill: stroke }, void 0)] }, void 0)),\r\n              gradient && (jsxRuntime.jsx(rdk.CloneElement, { element: gradient, id: `gradient-${id}`, direction: layout, color: currentColorShade }, void 0)),\r\n              label && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: label }, coords, { text: formatValue(barLabel), index: index, data: data, scale: scale, fill: label.props.fill || currentColorShade, barCount: barCount, animated: animated, layout: layout, type: type }), void 0)),\r\n              tooltip && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: !!isActive, reference: rect, color: color, value: tooltipData, placement: tooltip.props.placement || placement, data: data }, void 0))] }, void 0));\r\n  };\r\n  Bar.defaultProps = {\r\n      activeBrightness: 0.5,\r\n      rx: 0,\r\n      ry: 0,\r\n      cursor: 'auto',\r\n      rangeLines: null,\r\n      label: null,\r\n      tooltip: null,\r\n      layout: 'vertical',\r\n      guide: null,\r\n      gradient: jsxRuntime.jsx(Gradient, {}, void 0),\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined,\r\n      onMouseMove: () => undefined\r\n  };\n\n  const BarSeries = ({ data, tooltip, xScale, yScale, height, width, colorScheme, xScale1, bar, padding, animated, isCategorical, layout, type, id }) => {\r\n      const ref = react.useRef(null);\r\n      const [activeValues, setActiveValues] = react.useState(null);\r\n      const isVertical = react.useMemo(() => layout === 'vertical', [layout]);\r\n      const isMultiSeries = react.useMemo(() => {\r\n          return (type === 'grouped' ||\r\n              type === 'stacked' ||\r\n              type === 'marimekko' ||\r\n              type === 'stackedNormalized' ||\r\n              type === 'stackedDiverging');\r\n      }, [type]);\r\n      const getTransform = react.useCallback((data) => {\r\n          let xPos = 0;\r\n          let yPos = 0;\r\n          if (type !== 'marimekko') {\r\n              if (layout === 'vertical') {\r\n                  const val = xScale(data.key);\r\n                  xPos = val;\r\n              }\r\n              else {\r\n                  const val = yScale(data.key);\r\n                  yPos = val;\r\n              }\r\n          }\r\n          return `translate(${xPos}, ${yPos})`;\r\n      }, [layout, type, xScale, yScale]);\r\n      const getBarColor = react.useCallback((point, index) => {\r\n          let key = 'key';\r\n          if (isMultiSeries) {\r\n              if (layout === 'vertical') {\r\n                  key = 'x';\r\n              }\r\n              else {\r\n                  key = 'y';\r\n              }\r\n          }\r\n          // histograms...\r\n          if (point[key] === undefined) {\r\n              key = 'x0';\r\n          }\r\n          return getColor({\r\n              colorScheme,\r\n              point,\r\n              index,\r\n              data,\r\n              isMultiSeries,\r\n              attribute: key\r\n          });\r\n      }, [colorScheme, data, isMultiSeries, layout]);\r\n      const onMouseMove = react.useCallback((event) => {\r\n          var _a;\r\n          // Manuallly call mouse move so we don't have to kill bar pointer events\r\n          (_a = ref.current) === null || _a === void 0 ? void 0 : _a.onMouseMove(event);\r\n      }, []);\r\n      const onValueEnter = react.useCallback((event) => {\r\n          setActiveValues(event.value);\r\n      }, []);\r\n      const onValueLeave = react.useCallback(() => {\r\n          setActiveValues(null);\r\n      }, []);\r\n      const renderBar = react.useCallback((data, barIndex, barCount, groupIndex) => {\r\n          const active = activeValues && activeValues.x === data.key;\r\n          let newYScale = yScale;\r\n          let newXScale = xScale;\r\n          if (xScale1) {\r\n              if (isVertical) {\r\n                  newXScale = xScale1;\r\n              }\r\n              else {\r\n                  newYScale = xScale1;\r\n              }\r\n          }\r\n          // Histograms dont have keys\r\n          let key = barIndex.toString();\r\n          if (data.key) {\r\n              key = `${data.key.toString()}-${groupIndex}-${data.x}`;\r\n          }\r\n          let barElements = Array.isArray(bar) ? bar[barIndex] : bar;\r\n          if (!bar) {\r\n              barElements = jsxRuntime.jsx(Bar, {}, void 0);\r\n          }\r\n          return (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx(rdk.CloneElement, { element: barElements, id: `${id}-bar-${groupIndex}-${barIndex}`, animated: animated, active: active, xScale: newXScale, xScale1: xScale1, yScale: newYScale, padding: padding, barCount: barCount, groupIndex: groupIndex, barIndex: barIndex, data: data, isCategorical: isCategorical, color: getBarColor, layout: layout, type: type, onMouseMove: onMouseMove }, void 0) }, key));\r\n      }, [\r\n          activeValues,\r\n          animated,\r\n          bar,\r\n          getBarColor,\r\n          id,\r\n          isCategorical,\r\n          isVertical,\r\n          layout,\r\n          onMouseMove,\r\n          padding,\r\n          type,\r\n          xScale,\r\n          xScale1,\r\n          yScale\r\n      ]);\r\n      const renderBarGroup = react.useCallback((data, barCount, groupIndex) => {\r\n          return (jsxRuntime.jsx(react.Fragment, { children: data.map((barData, barIndex) => renderBar(barData, barIndex, barCount, groupIndex)) }, void 0));\r\n      }, [renderBar]);\r\n      return (jsxRuntime.jsxs(rdk.CloneElement, Object.assign({ element: tooltip, childRef: ref, xScale: xScale, yScale: yScale, data: data, height: height, width: width, inverse: false, isHorizontal: layout === 'horizontal', color: getBarColor, onValueEnter: onValueEnter, onValueLeave: onValueLeave }, { children: [isMultiSeries &&\r\n                  data.map((groupData, index) => (jsxRuntime.jsx(\"g\", Object.assign({ transform: getTransform(groupData) }, { children: renderBarGroup(groupData.data, data.length, index) }), `bar-group-${index}`))),\r\n              !isMultiSeries &&\r\n                  renderBarGroup(data, data.length)] }), void 0));\r\n  };\r\n  BarSeries.defaultProps = {\r\n      type: 'standard',\r\n      padding: 0.1,\r\n      groupPadding: 16,\r\n      animated: true,\r\n      tooltip: (jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { followCursor: true, modifiers: {\r\n                  offset: '5px, 5px'\r\n              } }, void 0) }, void 0)),\r\n      colorScheme: 'cybertron',\r\n      bar: jsxRuntime.jsx(Bar, {}, void 0),\r\n      layout: 'vertical'\r\n  };\n\n  const RangeLines = ({ layout, color, x, y, scale, type, height, position, strokeWidth, width, animated, index, barCount, data }) => {\r\n      const isVertical = react.useMemo(() => layout === 'vertical', [layout]);\r\n      const rangeLineHeight = react.useMemo(() => Math.min(strokeWidth, isVertical ? height : width), [height, isVertical, strokeWidth, width]);\r\n      const [newWidth, newHeight] = react.useMemo(() => [\r\n          isVertical ? width : rangeLineHeight,\r\n          isVertical ? rangeLineHeight : height\r\n      ], [height, isVertical, rangeLineHeight, width]);\r\n      const enterProps = react.useMemo(() => {\r\n          let newY = y;\r\n          let newX = x;\r\n          // If its diverging and the value is negative, we\r\n          // need to reverse the type...\r\n          const isTop = position === 'top';\r\n          const direction = isVertical\r\n              ? data.y < 0 && isTop\r\n                  ? 'bottom'\r\n                  : position\r\n              : data.x0 < 0 && isTop\r\n                  ? 'bottom'\r\n                  : position;\r\n          if (isVertical) {\r\n              if (direction === 'top') {\r\n                  newY = y;\r\n              }\r\n              else {\r\n                  newY = y + height - rangeLineHeight;\r\n              }\r\n          }\r\n          else {\r\n              if (direction === 'top') {\r\n                  newX = x + width - rangeLineHeight;\r\n              }\r\n              else {\r\n                  newX = x;\r\n              }\r\n          }\r\n          return {\r\n              x: newX,\r\n              y: newY,\r\n              opacity: 1\r\n          };\r\n      }, [\r\n          data.x0,\r\n          data.y,\r\n          height,\r\n          isVertical,\r\n          position,\r\n          rangeLineHeight,\r\n          width,\r\n          x,\r\n          y\r\n      ]);\r\n      const exitProps = react.useMemo(() => {\r\n          let newY = y;\r\n          let newX = x;\r\n          if (isVertical) {\r\n              const maxY = Math.max(...scale.range());\r\n              if (position === 'top') {\r\n                  newY = maxY;\r\n              }\r\n              else {\r\n                  newY = maxY + height - rangeLineHeight;\r\n              }\r\n          }\r\n          else {\r\n              const minX = Math.min(...scale.range());\r\n              if (position === 'top') {\r\n                  newX = minX;\r\n              }\r\n              else {\r\n                  newX = minX + width - rangeLineHeight;\r\n              }\r\n          }\r\n          if (type === 'stackedDiverging') {\r\n              if (isVertical) {\r\n                  newY = newY / 2;\r\n              }\r\n              else {\r\n                  newX = newX / 2;\r\n              }\r\n          }\r\n          return {\r\n              y: newY,\r\n              x: newX,\r\n              opacity: 0\r\n          };\r\n      }, [height, isVertical, position, rangeLineHeight, scale, type, width, x, y]);\r\n      const delay = react.useMemo(() => {\r\n          let delay = 0;\r\n          if (animated) {\r\n              if (layout === 'vertical') {\r\n                  return (index / barCount) * 0.5;\r\n              }\r\n              else {\r\n                  return ((barCount - index) / barCount) * 0.5;\r\n              }\r\n          }\r\n          return delay;\r\n      }, [animated, barCount, index, layout]);\r\n      // UGH: https://github.com/framer/motion/issues/384\r\n      const initial = react.useMemo(() => {\r\n          const r = Object.assign(Object.assign({}, exitProps), { attrX: exitProps.x, attrY: exitProps.y });\r\n          delete r.x;\r\n          delete r.y;\r\n          return r;\r\n      }, [exitProps]);\r\n      const animate = react.useMemo(() => {\r\n          const r = Object.assign(Object.assign({}, enterProps), { attrX: enterProps.x, attrY: enterProps.y });\r\n          delete r.x;\r\n          delete r.y;\r\n          return r;\r\n      }, [enterProps]);\r\n      return (jsxRuntime.jsx(framerMotion.motion.rect, { pointerEvents: \"none\", fill: color, width: newWidth, height: newHeight, initial: initial, animate: animate, exit: initial, transition: Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay }) }, void 0));\r\n  };\r\n  RangeLines.defaultProps = {\r\n      position: 'top',\r\n      strokeWidth: 1,\r\n      layout: 'vertical'\r\n  };\n\n  const StackedBarSeries = (props) => (jsxRuntime.jsx(BarSeries, Object.assign({ type: \"stackedNormalized\" }, props), void 0));\r\n  StackedBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), { type: 'stacked', bar: (jsxRuntime.jsx(Bar, { gradient: jsxRuntime.jsx(Gradient, { stops: [\r\n                  jsxRuntime.jsx(GradientStop, { offset: \"5%\", stopOpacity: 0.1 }, \"start\"),\r\n                  jsxRuntime.jsx(GradientStop, { offset: \"90%\", stopOpacity: 0.7 }, \"stop\")\r\n              ] }, void 0), rangeLines: jsxRuntime.jsx(RangeLines, { position: \"top\", strokeWidth: 3 }, void 0) }, void 0)) });\n\n  const StackedNormalizedBarSeries = (props) => jsxRuntime.jsx(BarSeries, Object.assign({ type: \"stackedNormalized\" }, props), void 0);\r\n  StackedNormalizedBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), { type: 'stackedNormalized', tooltip: (jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { followCursor: true, modifiers: {\r\n                  offset: '5px, 5px'\r\n              }, content: (point, color) => {\r\n                  point.data = point.data.map((d) => {\r\n                      // Handle horz case\r\n                      const start = isNaN(d.y0) ? d.x0 : d.y0;\r\n                      const end = isNaN(d.y1) ? d.x1 : d.y1;\r\n                      return Object.assign(Object.assign({}, d), { value: `${formatValue(Math.floor((end - start) * 100))}%` });\r\n                  });\r\n                  return jsxRuntime.jsx(TooltipTemplate, { value: point, color: color }, void 0);\r\n              } }, void 0) }, void 0)), bar: (jsxRuntime.jsx(Bar, { gradient: jsxRuntime.jsx(Gradient, { stops: [\r\n                  jsxRuntime.jsx(GradientStop, { offset: \"5%\", stopOpacity: 0.1 }, \"start\"),\r\n                  jsxRuntime.jsx(GradientStop, { offset: \"90%\", stopOpacity: 0.7 }, \"stop\")\r\n              ] }, void 0), rangeLines: jsxRuntime.jsx(RangeLines, { position: \"top\", strokeWidth: 3 }, void 0) }, void 0)) });\n\n  const MarimekkoBarSeries = (props) => (jsxRuntime.jsx(BarSeries, Object.assign({ type: \"marimekko\" }, props), void 0));\r\n  MarimekkoBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), { type: 'marimekko', padding: 10, tooltip: (jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { followCursor: true, modifiers: {\r\n                  offset: '5px, 5px'\r\n              }, content: (point, color) => {\r\n                  const data = Object.assign(Object.assign({}, point), { data: point.data.map((d) => (Object.assign(Object.assign({}, d), { value: `${formatValue(d.value)} ∙ ${formatValue(Math.floor((d.y1 - d.y0) * 100))}%` }))) });\r\n                  return jsxRuntime.jsx(TooltipTemplate, { value: data, color: color }, void 0);\r\n              } }, void 0) }, void 0)), bar: (jsxRuntime.jsx(Bar, { padding: 10, gradient: jsxRuntime.jsx(Gradient, { stops: [\r\n                  jsxRuntime.jsx(GradientStop, { offset: \"5%\", stopOpacity: 0.1 }, \"start\"),\r\n                  jsxRuntime.jsx(GradientStop, { offset: \"90%\", stopOpacity: 0.7 }, \"stop\")\r\n              ] }, void 0), rangeLines: jsxRuntime.jsx(RangeLines, { position: \"top\", strokeWidth: 3 }, void 0) }, void 0)) });\n\n  const BarLabel = ({ fontSize, fontFamily, fill, layout, className, text, x, y, height, position, width, data, padding, scale, type, animated, index, barCount }) => {\r\n      const isVertical = react.useMemo(() => layout === 'vertical', [layout]);\r\n      const textAnchor = isVertical ? 'middle' : 'start';\r\n      const enterProps = react.useMemo(() => {\r\n          let newY = y;\r\n          let newX = x;\r\n          // If its diverging and the value is negative, we\r\n          // need to reverse the type...\r\n          const isTop = position === 'top';\r\n          const direction = isVertical\r\n              ? data.y < 0 && isTop\r\n                  ? 'bottom'\r\n                  : position\r\n              : data.x0 < 0 && isTop\r\n                  ? 'bottom'\r\n                  : position;\r\n          if (isVertical) {\r\n              if (direction === 'top') {\r\n                  newY = y - padding;\r\n              }\r\n              else if (direction === 'center') {\r\n                  newY = y + height / 2;\r\n              }\r\n              else if (direction === 'bottom') {\r\n                  newY = y + height - padding;\r\n              }\r\n              newX = newX + width / 2;\r\n          }\r\n          else {\r\n              if (direction === 'top') {\r\n                  newX = x + width + padding;\r\n              }\r\n              else if (direction === 'center') {\r\n                  newX = x + width / 2;\r\n              }\r\n              else if (direction === 'bottom') {\r\n                  newX = x + padding;\r\n              }\r\n              newY = newY + height / 2;\r\n          }\r\n          return {\r\n              translateX: newX,\r\n              translateY: newY,\r\n              opacity: 1\r\n          };\r\n      }, [data.x0, data.y, height, isVertical, padding, position, width, x, y]);\r\n      const exitProps = react.useMemo(() => {\r\n          let newY = y;\r\n          let newX = x;\r\n          if (isVertical) {\r\n              const maxY = Math.max(...scale.range());\r\n              if (position === 'top') {\r\n                  newY = maxY;\r\n              }\r\n              else {\r\n                  newY = maxY + height + padding;\r\n              }\r\n              newX = newX + width / 2;\r\n          }\r\n          else {\r\n              const minX = Math.min(...scale.range());\r\n              if (position === 'top') {\r\n                  newX = minX;\r\n              }\r\n              else {\r\n                  newX = minX + width + padding;\r\n              }\r\n              newY = newY + height / 2;\r\n          }\r\n          if (type === 'stackedDiverging') {\r\n              if (isVertical) {\r\n                  newY = newY / 2;\r\n              }\r\n              else {\r\n                  newX = newX / 2;\r\n              }\r\n          }\r\n          return {\r\n              translateY: newY,\r\n              translateX: newX,\r\n              opacity: 0\r\n          };\r\n      }, [height, isVertical, padding, position, scale, type, width, x, y]);\r\n      const delay = react.useMemo(() => {\r\n          let delay = 0;\r\n          if (animated) {\r\n              if (layout === 'vertical') {\r\n                  return (index / barCount) * 0.5;\r\n              }\r\n              else {\r\n                  return ((barCount - index) / barCount) * 0.5;\r\n              }\r\n          }\r\n          return delay;\r\n      }, [animated, barCount, index, layout]);\r\n      return (jsxRuntime.jsx(framerMotion.motion.g, Object.assign({ initial: exitProps, animate: enterProps, exit: exitProps, transition: Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay }), fontSize: fontSize, fontFamily: fontFamily }, { children: jsxRuntime.jsx(\"text\", Object.assign({ fill: fill, className: className, textAnchor: textAnchor }, { children: text }), void 0) }), void 0));\r\n  };\r\n  BarLabel.defaultProps = {\r\n      position: 'top',\r\n      layout: 'vertical',\r\n      fontSize: 13,\r\n      padding: 5,\r\n      fontFamily: 'sans-serif',\r\n      fill: '#000'\r\n  };\n\n  const HistogramBarSeries = (_a) => {\r\n      var rest = __rest(_a, [\"type\"]);\r\n      return jsxRuntime.jsx(BarSeries, Object.assign({}, rest), void 0);\r\n  };\r\n  HistogramBarSeries.defaultProps = Object.assign(Object.assign({}, BarSeries.defaultProps), { colorScheme: schemes.cybertron[0], tooltip: (jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { followCursor: true, modifiers: {\r\n                  offset: '5px, 5px'\r\n              }, content: (point, color) => {\r\n                  const data = Object.assign(Object.assign({}, point), { x: `${formatValue(point.x0)} - ${formatValue(point.x1)}`, value: point.y });\r\n                  return jsxRuntime.jsx(TooltipTemplate, { value: data, color: color }, void 0);\r\n              } }, void 0) }, void 0)) });\n\n  const GuideBar = (_a) => {\r\n      var { active, opacity = 0.15 } = _a, rest = __rest(_a, [\"active\", \"opacity\"]);\r\n      const { x, y } = rest, other = __rest(rest, [\"x\", \"y\"]);\r\n      return (jsxRuntime.jsx(framerMotion.motion.rect, Object.assign({}, other, { pointerEvents: \"none\", initial: \"hidden\", animate: active ? 'visible' : 'hidden', variants: {\r\n              hidden: { opacity: 0, attrX: x, attrY: y },\r\n              visible: { opacity, attrX: x, attrY: y }\r\n          } }), void 0));\r\n  };\r\n  GuideBar.defaultProps = {\r\n      fill: '#eee',\r\n      opacity: 0.15\r\n  };\n\n  var css_248z$c = \".BarChart-module_barChart__36biH {\\n  overflow: visible;\\n}\\n\\n  .BarChart-module_barChart__36biH.BarChart-module_stackedNormalized__3l5Vx .bar, .BarChart-module_barChart__36biH.BarChart-module_stacked__12DMR .bar, .BarChart-module_barChart__36biH.BarChart-module_marimekko__33Uhg .bar {\\n      stroke: var(--color-background);\\n      stroke-width: 0.2;\\n    }\\n\";\n  var css$c = {\"barChart\":\"BarChart-module_barChart__36biH\",\"stackedNormalized\":\"BarChart-module_stackedNormalized__3l5Vx\",\"stacked\":\"BarChart-module_stacked__12DMR\",\"marimekko\":\"BarChart-module_marimekko__33Uhg\"};\n  styleInject(css_248z$c);\n\n  const BarChart = ({ id, width, height, margins, className, data, xAxis, yAxis, series, brush, gridlines, secondaryAxis, containerClassName }) => {\r\n      const isVertical = react.useMemo(() => series.props.layout === 'vertical', [series]);\r\n      const keyAxis = react.useMemo(() => (isVertical ? xAxis : yAxis), [yAxis, xAxis, isVertical]);\r\n      const isDiverging = react.useMemo(() => series.props.type === 'stackedDiverging', [series.props.type]);\r\n      const getMarimekkoGroupScales = react.useCallback((aggregatedData, axis, width) => {\r\n          const keyScale = getMarimekkoScale(width, axis.props.roundDomains);\r\n          const groupScale = getMarimekkoGroupScale({\r\n              width,\r\n              padding: series.props.padding,\r\n              data: aggregatedData,\r\n              valueScale: keyScale\r\n          });\r\n          return {\r\n              keyScale,\r\n              groupScale\r\n          };\r\n      }, [series.props.padding]);\r\n      const getMultiGroupScales = react.useCallback((aggregatedData, height, width) => {\r\n          const { groupPadding, layout } = series.props;\r\n          const groupScale = getGroupScale({\r\n              dimension: isVertical ? width : height,\r\n              direction: layout,\r\n              padding: groupPadding,\r\n              data: aggregatedData\r\n          });\r\n          const keyScale = getInnerScale({\r\n              groupScale: groupScale,\r\n              padding: series.props.padding,\r\n              data: aggregatedData,\r\n              prop: isVertical ? 'x' : 'y'\r\n          });\r\n          return {\r\n              groupScale,\r\n              keyScale\r\n          };\r\n      }, [isVertical, series.props]);\r\n      const getKeyScale = react.useCallback((aggregatedData, axis, isMultiSeries, width) => {\r\n          return getXScale({\r\n              width,\r\n              type: axis.props.type,\r\n              roundDomains: axis.props.roundDomains,\r\n              data: aggregatedData,\r\n              padding: series.props.padding,\r\n              domain: axis.props.domain,\r\n              isMultiSeries,\r\n              isDiverging\r\n          });\r\n      }, [isDiverging, series]);\r\n      const getValueScale = react.useCallback((aggregatedData, axis, isMultiSeries, height) => {\r\n          return getYScale({\r\n              roundDomains: axis.props.roundDomains,\r\n              padding: series.props.padding,\r\n              type: axis.props.type,\r\n              height,\r\n              data: aggregatedData,\r\n              domain: axis.props.domain,\r\n              isMultiSeries,\r\n              isDiverging\r\n          });\r\n      }, [isDiverging, series]);\r\n      const getScalesAndData = react.useCallback((chartHeight, chartWidth) => {\r\n          const { type, layout } = series.props;\r\n          const isMarimekko = type === 'marimekko';\r\n          const isGrouped = type === 'grouped';\r\n          const isStacked = type === 'stacked' ||\r\n              type === 'stackedNormalized' ||\r\n              type === 'stackedDiverging';\r\n          const isMultiSeries = isGrouped || isStacked;\r\n          let aggregatedData;\r\n          if (isStacked) {\r\n              let distroType = 'default';\r\n              if (type === 'stackedNormalized') {\r\n                  distroType = 'expand';\r\n              }\r\n              else if (type === 'stackedDiverging') {\r\n                  distroType = 'diverging';\r\n              }\r\n              aggregatedData = buildBarStackData(data, distroType, layout);\r\n          }\r\n          else if (type === 'waterfall') {\r\n              aggregatedData = buildWaterfall(data, layout, series.props.binSize);\r\n          }\r\n          else if (isMarimekko) {\r\n              aggregatedData = buildMarimekkoData(data);\r\n          }\r\n          else if (isGrouped) {\r\n              aggregatedData = buildNestedChartData(data, false, layout);\r\n          }\r\n          else {\r\n              aggregatedData = buildShallowChartData(data, layout, series.props.binSize);\r\n          }\r\n          let yScale;\r\n          let xScale;\r\n          let xScale1;\r\n          if (isVertical) {\r\n              if (isGrouped) {\r\n                  const { keyScale, groupScale } = getMultiGroupScales(aggregatedData, chartHeight, chartWidth);\r\n                  xScale = groupScale;\r\n                  xScale1 = keyScale;\r\n              }\r\n              else if (isMarimekko) {\r\n                  const { keyScale, groupScale } = getMarimekkoGroupScales(aggregatedData, xAxis, chartWidth);\r\n                  xScale = groupScale;\r\n                  xScale1 = keyScale;\r\n              }\r\n              else {\r\n                  xScale = getKeyScale(aggregatedData, xAxis, isMultiSeries, chartWidth);\r\n              }\r\n              yScale = getValueScale(aggregatedData, yAxis, isMultiSeries, chartHeight);\r\n          }\r\n          else {\r\n              if (isGrouped) {\r\n                  const { keyScale, groupScale } = getMultiGroupScales(aggregatedData, chartHeight, chartWidth);\r\n                  yScale = groupScale;\r\n                  xScale1 = keyScale;\r\n                  xScale = getKeyScale(aggregatedData, xAxis, isMultiSeries, chartWidth);\r\n              }\r\n              else if (isMarimekko) {\r\n                  throw new Error('Marimekko is currently not supported for horizontal layouts');\r\n              }\r\n              else {\r\n                  xScale = getKeyScale(aggregatedData, xAxis, isMultiSeries, chartWidth);\r\n                  yScale = getValueScale(aggregatedData, yAxis, isMultiSeries, chartHeight);\r\n              }\r\n          }\r\n          return { xScale, xScale1, yScale, aggregatedData };\r\n      }, [\r\n          getKeyScale,\r\n          data,\r\n          getMarimekkoGroupScales,\r\n          getMultiGroupScales,\r\n          getValueScale,\r\n          isVertical,\r\n          series.props,\r\n          xAxis,\r\n          yAxis\r\n      ]);\r\n      const renderChart = react.useCallback((containerProps) => {\r\n          const { chartHeight, chartWidth, id, updateAxes, chartSized } = containerProps;\r\n          const { xScale, xScale1, yScale, aggregatedData } = getScalesAndData(chartHeight, chartWidth);\r\n          const isCategorical = keyAxis.props.type === 'category';\r\n          const disableBrush = aggregatedData.length <= 1;\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [chartSized && gridlines && (jsxRuntime.jsx(rdk.CloneElement, { element: gridlines, height: chartHeight, width: chartWidth, yScale: yScale, xScale: xScale, yAxis: yAxis.props, xAxis: xAxis.props }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: xAxis, height: chartHeight, width: chartWidth, scale: xScale, onDimensionsChange: (event) => updateAxes(isVertical ? 'horizontal' : 'vertical', event) }, void 0),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: yAxis, height: chartHeight, width: chartWidth, scale: yScale, onDimensionsChange: (event) => updateAxes(isVertical ? 'vertical' : 'horizontal', event) }, void 0),\r\n                  secondaryAxis &&\r\n                      secondaryAxis.map((axis, i) => (jsxRuntime.jsx(rdk.CloneElement, { element: axis, height: chartHeight, width: chartWidth, onDimensionsChange: (event) => updateAxes('horizontal', event) }, i))),\r\n                  chartSized && (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ disabled: disableBrush, element: brush, height: chartHeight, width: chartWidth, scale: xScale }, { children: jsxRuntime.jsx(rdk.CloneElement, { element: series, id: `bar-series-${id}`, data: aggregatedData, height: chartHeight, width: chartWidth, isCategorical: isCategorical, xScale: xScale, xScale1: xScale1, yScale: yScale }, void 0) }), void 0))] }, void 0));\r\n      }, [\r\n          brush,\r\n          getScalesAndData,\r\n          gridlines,\r\n          isVertical,\r\n          keyAxis,\r\n          secondaryAxis,\r\n          series,\r\n          xAxis,\r\n          yAxis\r\n      ]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, containerClassName: containerClassName, xAxisVisible: isAxisVisible(xAxis.props), yAxisVisible: isAxisVisible(yAxis.props), className: classNames__default['default'](css$c.barChart, className, css$c[series.props.type]) }, { children: renderChart }), void 0));\r\n  };\r\n  BarChart.defaultProps = {\r\n      data: [],\r\n      xAxis: (jsxRuntime.jsx(LinearXAxis, { type: \"category\", tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { tickSize: 20 }, void 0) }, void 0)),\r\n      yAxis: jsxRuntime.jsx(LinearYAxis, { type: \"value\" }, void 0),\r\n      series: jsxRuntime.jsx(BarSeries, {}, void 0),\r\n      gridlines: jsxRuntime.jsx(GridlineSeries, {}, void 0),\r\n      brush: null\r\n  };\n\n  const MarimekkoChart = (props) => (jsxRuntime.jsx(BarChart, Object.assign({}, props), void 0));\r\n  MarimekkoChart.defaultProps = {\r\n      series: jsxRuntime.jsx(MarimekkoBarSeries, {}, void 0),\r\n      xAxis: (jsxRuntime.jsx(LinearXAxis, { type: \"category\", tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { tickSize: 15 }, void 0) }, void 0)),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { type: \"value\", tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { label: jsxRuntime.jsx(LinearYAxisTickLabel, { rotation: false, format: (data) => `${data * 100}%` }, void 0) }, void 0) }, void 0))\r\n  };\n\n  const StackedBarChart = (props) => (jsxRuntime.jsx(BarChart, Object.assign({}, props), void 0));\r\n  StackedBarChart.defaultProps = {\r\n      series: jsxRuntime.jsx(StackedBarSeries, {}, void 0)\r\n  };\n\n  const StackedNormalizedBarChart = (props) => jsxRuntime.jsx(BarChart, Object.assign({}, props), void 0);\r\n  StackedNormalizedBarChart.defaultProps = {\r\n      series: jsxRuntime.jsx(StackedNormalizedBarSeries, {}, void 0),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { type: \"value\", tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { label: jsxRuntime.jsx(LinearYAxisTickLabel, { rotation: false, format: (data) => `${data * 100}%` }, void 0) }, void 0) }, void 0))\r\n  };\n\n  const HistogramBarChart = (props) => jsxRuntime.jsx(BarChart, Object.assign({}, props), void 0);\r\n  HistogramBarChart.defaultProps = {\r\n      series: jsxRuntime.jsx(HistogramBarSeries, {}, void 0)\r\n  };\n\n  const LineSeries = (props) => (jsxRuntime.jsx(AreaSeries, Object.assign({}, props), void 0));\r\n  LineSeries.defaultProps = Object.assign(Object.assign({}, AreaSeries.defaultProps), { area: null, line: jsxRuntime.jsx(Line, { strokeWidth: 3 }, void 0) });\n\n  const LineChart = (props) => (jsxRuntime.jsx(AreaChart, Object.assign({}, props), void 0));\r\n  LineChart.defaultProps = Object.assign(Object.assign({}, AreaChart.defaultProps), { series: jsxRuntime.jsx(LineSeries, {}, void 0) });\n\n  const Map$1 = ({ id, width, height, margins, className, containerClassName, markers, data, fill, projection = 'mercator' }) => {\r\n      const getProjection = react.useCallback(({ chartWidth, chartHeight }) => {\r\n          if (projection === 'natural-earth') {\r\n              return d3Geo.geoNaturalEarth1()\r\n                  .fitSize([chartWidth, chartHeight], data)\r\n                  .center([0, 0]);\r\n          }\r\n          return d3Geo.geoMercator()\r\n              .fitSize([chartWidth, chartHeight], data)\r\n              .center([0, 35]);\r\n      }, [data, projection]);\r\n      const renderMarker = react.useCallback((marker, index, projection) => {\r\n          const position = projection(marker.props.coordinates);\r\n          if (!position) {\r\n              console.warn(`Position for ${marker.props.coordinates.toString()} not found.`);\r\n              return null;\r\n          }\r\n          return (jsxRuntime.jsx(rdk.CloneElement, { element: marker, cx: position[0], cy: position[1], index: index }, void 0));\r\n      }, []);\r\n      const renderCountry = react.useCallback((point, index, path) => {\r\n          // Exclude ATA\r\n          if (point.id === '010') {\r\n              return null;\r\n          }\r\n          return jsxRuntime.jsx(\"path\", { d: path(point), fill: fill }, `path-${index}`);\r\n      }, [fill]);\r\n      const renderChart = react.useCallback((containerProps) => {\r\n          if (!data) {\r\n              return null;\r\n          }\r\n          const geoProjection = getProjection(containerProps);\r\n          const path = d3Geo.geoPath().projection(geoProjection);\r\n          return (jsxRuntime.jsxs(framerMotion.motion.g, Object.assign({ initial: {\r\n                  opacity: 0\r\n              }, animate: {\r\n                  opacity: 1\r\n              } }, { children: [data.features.map((point, index) => renderCountry(point, index, path)), markers &&\r\n                      markers.map((marker, index) => (jsxRuntime.jsx(react.Fragment, { children: renderMarker(marker, index, geoProjection) }, `marker-${index}`)))] }), void 0));\r\n      }, [data, getProjection, markers, renderCountry, renderMarker]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, containerClassName: containerClassName, xAxisVisible: false, yAxisVisible: false, className: className }, { children: (props) => renderChart(props) }), void 0));\r\n  };\r\n  Map$1.defaultProps = {\r\n      fill: 'rgba(255, 255, 255, 0.3)'\r\n  };\n\n  var css_248z$b = \".MapMarker-module_marker__3uyJu {\\n  fill: var(--color-primary);\\n  cursor: pointer;\\n}\\n\";\n  var css$b = {\"marker\":\"MapMarker-module_marker__3uyJu\"};\n  styleInject(css_248z$b);\n\n  // Set padding modifier for the tooltips\r\n  const modifiers$1 = {\r\n      offset: {\r\n          offset: '0, 3px'\r\n      }\r\n  };\r\n  const MapMarker = ({ size = 3, index, tooltip, cx, cy, onClick = () => undefined }) => {\r\n      const ref = react.useRef(null);\r\n      const [active, setActive] = react.useState(false);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(framerMotion.motion.circle, { initial: {\r\n                      opacity: 0,\r\n                      scale: 0.02\r\n                  }, animate: {\r\n                      opacity: 1,\r\n                      scale: 1\r\n                  }, transition: {\r\n                      delay: index * 0.3\r\n                  }, ref: ref, className: css$b.marker, cx: cx, cy: cy, r: size, onMouseEnter: () => setActive(true), onMouseLeave: () => setActive(false), onClick: onClick }, void 0),\r\n              tooltip && (jsxRuntime.jsx(reablocks.Tooltip, { visible: active, reference: ref, modifiers: modifiers$1, content: tooltip }, void 0))] }, void 0));\r\n  };\n\n  const useInterpolate$1 = ({ data, animated, arc }) => {\r\n      const prevEnter = react.useRef(null);\r\n      const exit = react.useMemo(() => {\r\n          const startAngle = data.startAngle;\r\n          const endAngle = animated ? startAngle : data.endAngle;\r\n          return Object.assign(Object.assign({}, data), { startAngle,\r\n              endAngle });\r\n      }, [data, animated]);\r\n      const transition = react.useMemo(() => animated\r\n          ? Object.assign({}, DEFAULT_TRANSITION) : {\r\n          delay: 0\r\n      }, [animated]);\r\n      // Cache the previous for transition use later\r\n      const previousEnter = prevEnter.current\r\n          ? Object.assign({}, prevEnter.current) : undefined;\r\n      prevEnter.current = Object.assign({}, data);\r\n      const d = framerMotion.useMotionValue('');\r\n      const prevPath = framerMotion.useMotionValue(exit);\r\n      const spring = framerMotion.useSpring(prevPath, Object.assign(Object.assign({}, DEFAULT_TRANSITION), { from: 0, to: 1 }));\r\n      react.useEffect(() => {\r\n          const from = previousEnter || prevPath.get();\r\n          const interpolator = d3Interpolate.interpolate(from, data);\r\n          const unsub = spring.onChange((v) => d.set(arc(interpolator(v))));\r\n          prevPath.set(data);\r\n          return unsub;\r\n      }, [arc, d, data, prevPath, previousEnter, spring]);\r\n      return {\r\n          d,\r\n          transition\r\n      };\r\n  };\n\n  /**\r\n   * Hover intent identifies if the user actually is\r\n   * intending to over by measuring the position of the mouse\r\n   * once a pointer enters and determining if in a duration if\r\n   * the mouse moved inside a certain threshold and fires the events.\r\n   */\r\n  const useHoverIntent = ({ sensitivity = 7, interval = 50, timeout = 10, disabled, onPointerOver, onPointerOut }) => {\r\n      const mouseOver = react.useRef(false);\r\n      const timer = react.useRef(null);\r\n      const state = react.useRef(0);\r\n      const coords = react.useRef({\r\n          x: null,\r\n          y: null,\r\n          px: null,\r\n          py: null\r\n      });\r\n      const onMouseMove = react.useCallback((event) => {\r\n          coords.current.x = event.clientX;\r\n          coords.current.y = event.clientY;\r\n      }, []);\r\n      const comparePosition = react.useCallback((event) => {\r\n          timer.current = clearTimeout(timer.current);\r\n          const { px, x, py, y } = coords.current;\r\n          if (Math.abs(px - x) + Math.abs(py - y) < sensitivity) {\r\n              state.current = 1;\r\n              onPointerOver(event);\r\n          }\r\n          else {\r\n              coords.current.px = x;\r\n              coords.current.py = y;\r\n              timer.current = setTimeout(() => comparePosition(event), interval);\r\n          }\r\n      }, [interval, onPointerOver, sensitivity]);\r\n      const cleanup = react.useCallback(() => {\r\n          clearTimeout(timer.current);\r\n          document.removeEventListener('mousemove', onMouseMove, false);\r\n      }, [onMouseMove]);\r\n      const pointerOver = react.useCallback((event) => {\r\n          if (!disabled) {\r\n              mouseOver.current = true;\r\n              cleanup();\r\n              if (state.current !== 1) {\r\n                  coords.current.px = event.nativeEvent.x;\r\n                  coords.current.py = event.nativeEvent.y;\r\n                  document.addEventListener('mousemove', onMouseMove, false);\r\n                  timer.current = setTimeout(() => comparePosition(event), timeout);\r\n              }\r\n          }\r\n      }, [cleanup, comparePosition, disabled, onMouseMove, timeout]);\r\n      const delay = react.useCallback((event) => {\r\n          timer.current = clearTimeout(timer.current);\r\n          state.current = 0;\r\n          onPointerOut(event);\r\n      }, [onPointerOut]);\r\n      const pointerOut = react.useCallback((event) => {\r\n          mouseOver.current = false;\r\n          cleanup();\r\n          if (state.current === 1) {\r\n              timer.current = setTimeout(() => delay(event), timeout);\r\n          }\r\n      }, [cleanup, delay, timeout]);\r\n      return {\r\n          pointerOver,\r\n          pointerOut\r\n      };\r\n  };\n\n  const PieArc = ({ color, data, arc, cursor, animated, disabled, onClick, onMouseEnter, onMouseLeave, tooltip }) => {\r\n      var _a;\r\n      const arcRef = react.useRef(null);\r\n      const { transition, d } = useInterpolate$1({ animated, arc, data });\r\n      const [active, setActive] = react.useState(false);\r\n      const fill = react.useMemo(() => (active ? chroma__default['default'](color).brighten(0.5) : color), [color, active]);\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              if (!disabled) {\r\n                  setActive(true);\r\n                  onMouseEnter({\r\n                      value: data.data,\r\n                      nativeEvent: event\r\n                  });\r\n              }\r\n          },\r\n          onPointerOut: (event) => {\r\n              if (!disabled) {\r\n                  setActive(false);\r\n                  onMouseLeave({\r\n                      value: data.data,\r\n                      nativeEvent: event\r\n                  });\r\n              }\r\n          }\r\n      });\r\n      return (jsxRuntime.jsxs(\"g\", Object.assign({ ref: arcRef }, { children: [jsxRuntime.jsx(framerMotion.motion.path, { role: \"graphics-symbol\", transition: transition, d: d, style: { cursor }, fill: fill, onPointerOver: pointerOver, onPointerOut: pointerOut, onClick: (event) => {\r\n                      if (!disabled) {\r\n                          onClick({\r\n                              value: data.data,\r\n                              nativeEvent: event\r\n                          });\r\n                      }\r\n                  } }, void 0),\r\n              !((_a = tooltip === null || tooltip === void 0 ? void 0 : tooltip.props) === null || _a === void 0 ? void 0 : _a.disabled) && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: !!active, reference: arcRef, value: { y: data.data.data, x: data.data.key } }, void 0))] }), void 0));\r\n  };\r\n  PieArc.defaultProps = {\r\n      cursor: 'initial',\r\n      animated: true,\r\n      disabled: false,\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined,\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0)\r\n  };\n\n  /**\r\n   * Finds intermediate point between two points so that this three points\r\n   * can be nicely connected by two lines. One of this lines must be horizontal\r\n   */\r\n  function findBreakPoint([startX, startY], [endX, endY]) {\r\n      let breakPoint = [0, 0];\r\n      // whether we should create breakpoint near pie or near label\r\n      const breakPointCondition = (endY - startY) * Math.sign(startY) >= 0;\r\n      if (breakPointCondition) {\r\n          // extend the line starting from startY till the endY\r\n          let scale = Math.abs(endY / startY) || 1;\r\n          const minScale = 1;\r\n          const maxScale = Math.abs(endX / startX) || 1;\r\n          scale = Math.max(Math.min(maxScale, scale), minScale);\r\n          breakPoint = [startX * scale, endY];\r\n      }\r\n      else {\r\n          // some arbitrary scale to ensure that break point will be placed\r\n          // at some horizontal distance from the end point\r\n          let scale = 0.85;\r\n          const minScale = Math.abs(startX / endX) || 1;\r\n          const maxScale = 1;\r\n          scale = Math.max(Math.min(maxScale, scale), minScale);\r\n          breakPoint = [endX * scale, startY];\r\n      }\r\n      return breakPoint;\r\n  }\n\n  const getTextAnchor = ({ startAngle, endAngle }) => \r\n  // we could also use the sign of position[0]\r\n  startAngle + (endAngle - startAngle) / 2 < Math.PI ? 'start' : 'end';\r\n  const PieArcLabel = ({ centroid, data, lineStroke, padding, fontSize, fontFill, format, fontFamily, position, outerRadius, width, height }) => {\r\n      const textAnchor = getTextAnchor(data);\r\n      const text = format\r\n          ? format(Object.assign(Object.assign({}, data.data), { textAnchor }))\r\n          : formatValue(data.data.key);\r\n      const [posX, posY] = position;\r\n      // we want to have at least some pixels of straight line (margin)\r\n      // from pie section till we start to change line direction\r\n      const minRadius = outerRadius + 4;\r\n      const startPoint = centroid(data);\r\n      const innerPoint = d3Shape.arc()\r\n          .innerRadius(minRadius)\r\n          .outerRadius(minRadius)\r\n          .centroid(data);\r\n      const breakPoint = findBreakPoint(innerPoint, position);\r\n      return (jsxRuntime.jsxs(framerMotion.motion.g, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: {\r\n              duration: 0.1\r\n          } }, { children: [typeof text === 'string' ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(\"title\", { children: text }, void 0),\r\n                      jsxRuntime.jsx(\"text\", Object.assign({ dy: padding, fill: fontFill, fontSize: fontSize, fontFamily: fontFamily, textAnchor: textAnchor, style: {\r\n                              shapeRendering: 'crispEdges',\r\n                              transform: `translate3d(${posX}px,${posY}px, 0)`\r\n                          } }, { children: text }), void 0)] }, void 0)) : (jsxRuntime.jsx(\"foreignObject\", Object.assign({ width: width, height: height, style: {\r\n                      transform: `translate3d(${textAnchor === 'start' ? posX : posX - width}px,${posY - height / 2}px, 0)`,\r\n                      color: fontFill,\r\n                      fontFamily,\r\n                      fontSize\r\n                  } }, { children: text }), void 0)),\r\n              jsxRuntime.jsx(\"polyline\", { fill: \"none\", stroke: lineStroke, points: `${startPoint},${innerPoint},${breakPoint},${position}` }, void 0)] }), void 0));\r\n  };\r\n  PieArcLabel.defaultProps = {\r\n      format: undefined,\r\n      lineStroke: 'rgba(127,127,127,0.5)',\r\n      fontFill: '#8F979F',\r\n      fontSize: 11,\r\n      fontFamily: 'sans-serif',\r\n      padding: '.35em',\r\n      height: 11\r\n  };\n\n  const factor = 1.2;\r\n  const midAngle = (d) => d.startAngle + (d.endAngle - d.startAngle) / 2;\r\n  const labelVisible = (arc) => arc.endAngle - arc.startAngle > Math.PI / 30;\r\n  function shouldDisplayLabel(displayAllLabels, arcData) {\r\n      return displayAllLabels || labelVisible(arcData);\r\n  }\r\n  function calculateOuterRadius(outerRadius, data, point, explode) {\r\n      if (!explode || data === undefined) {\r\n          return outerRadius;\r\n      }\r\n      const maxVal = d3Array.max(data, (d) => d.value);\r\n      return (outerRadius * point.value) / maxVal;\r\n  }\r\n  function calculateCentroid(data, innerRadius, outerRadius, explode) {\r\n      return (point) => {\r\n          const newOuter = calculateOuterRadius(outerRadius, data, point, explode);\r\n          return d3Shape.arc()\r\n              .innerRadius(innerRadius)\r\n              .outerRadius(newOuter)\r\n              .centroid(point);\r\n      };\r\n  }\r\n  function calculateRadius(height, width, label, arcWidth, doughnut) {\r\n      const minDimension = Math.min(width, height);\r\n      let outerRadius = minDimension / 2;\r\n      let labelWidth = 0;\r\n      if (label) {\r\n          labelWidth = label.props.width;\r\n          if (labelWidth) {\r\n              const outerArcRadius = width / 2 - labelWidth;\r\n              outerRadius = Math.min(outerArcRadius / factor, height / 2);\r\n          }\r\n          else {\r\n              outerRadius = minDimension / 3;\r\n              labelWidth = width / 2 - outerRadius * factor;\r\n          }\r\n      }\r\n      const innerRadius = doughnut ? outerRadius * (1 - arcWidth) : 0;\r\n      return {\r\n          outerRadius,\r\n          innerRadius,\r\n          labelWidth\r\n      };\r\n  }\r\n  function calculateInnerArc(data, innerRadius, outerRadius, cornerRadius, padAngle, padRadius, explode) {\r\n      return (point) => {\r\n          const newOuter = calculateOuterRadius(outerRadius, data, point, explode);\r\n          return d3Shape.arc()\r\n              .innerRadius(innerRadius)\r\n              .outerRadius(newOuter)\r\n              .cornerRadius(cornerRadius)\r\n              .padRadius(padRadius)\r\n              .padAngle(padAngle)(point);\r\n      };\r\n  }\r\n  function calculateLabelPositions(data, outerRadius, minDistance, cornerRadius, padAngle, padRadius, displayAllLabels) {\r\n      const outerArcRadius = outerRadius * factor;\r\n      const outerArc = d3Shape.arc()\r\n          .innerRadius(outerArcRadius)\r\n          .outerRadius(outerArcRadius)\r\n          .cornerRadius(cornerRadius)\r\n          .padAngle(padAngle)\r\n          .padRadius(padRadius);\r\n      const positions = data.map((d) => {\r\n          if (!shouldDisplayLabel(displayAllLabels, d)) {\r\n              return null;\r\n          }\r\n          const pos = outerArc.centroid(d);\r\n          // reposition the labels to the left/right from outerArc centroid\r\n          // so that all labels won't collide with pie\r\n          // when we will vertically reposition them\r\n          pos[0] = outerArcRadius * (midAngle(d) < Math.PI ? 1 : -1);\r\n          return pos;\r\n      });\r\n      for (let i = 0; i < data.length - 1; i++) {\r\n          if (!positions[i]) {\r\n              continue;\r\n          }\r\n          const [aPosX, aPosY] = positions[i];\r\n          for (let j = i + 1; j < data.length; j++) {\r\n              if (!positions[j]) {\r\n                  continue;\r\n              }\r\n              const [bPosX, bPosY] = positions[j];\r\n              // if they're on the same side (both with - or + sign)\r\n              if (bPosX * aPosX > 0) {\r\n                  // if they're overlapping\r\n                  const overlap = minDistance - Math.abs(bPosY - aPosY);\r\n                  if (overlap > 0) {\r\n                      // push the second up or down\r\n                      positions[j][1] += Math.sign(bPosX) * overlap;\r\n                  }\r\n              }\r\n          }\r\n      }\r\n      return positions;\r\n  }\n\n  const PieArcSeries = ({ doughnut, arcWidth, label, colorScheme, width, displayAllLabels, height, explode, animated, cornerRadius, padAngle, padRadius, arc, data }) => {\r\n      const { outerRadius, innerRadius, labelWidth } = calculateRadius(height, width, label, arcWidth, doughnut);\r\n      const innerArc = calculateInnerArc(data, innerRadius, outerRadius, cornerRadius, padAngle, padRadius, explode);\r\n      const positions = label\r\n          ? calculateLabelPositions(data, outerRadius, \r\n          // 4 is for vertical margins between labels\r\n          label.props.height + 4, cornerRadius, padAngle, padRadius, displayAllLabels)\r\n          : [];\r\n      const centroid = calculateCentroid(data, innerRadius, outerRadius, explode);\r\n      return (jsxRuntime.jsx(react.Fragment, { children: data.map((arcData, index) => (jsxRuntime.jsxs(react.Fragment, { children: [positions[index] && (jsxRuntime.jsx(rdk.CloneElement, { element: label, data: arcData, centroid: centroid, outerRadius: outerRadius, width: labelWidth, position: positions[index] }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: arc, data: arcData, animated: animated, arc: innerArc, color: getColor({\r\n                          data,\r\n                          colorScheme,\r\n                          point: arcData.data,\r\n                          index\r\n                      }) }, void 0)] }, arcData.data.key.toString()))) }, void 0));\r\n  };\r\n  PieArcSeries.defaultProps = {\r\n      animated: true,\r\n      colorScheme: 'cybertron',\r\n      innerRadius: 0,\r\n      cornerRadius: 0,\r\n      padAngle: 0,\r\n      padRadius: 0,\r\n      explode: false,\r\n      displayAllLabels: false,\r\n      arcWidth: 0.25,\r\n      label: jsxRuntime.jsx(PieArcLabel, {}, void 0),\r\n      arc: jsxRuntime.jsx(PieArc, {}, void 0)\r\n  };\n\n  const PieChart = ({ id, width, height, className, containerClassName, displayAllLabels, data = [], margins, series }) => {\r\n      const getData = react.useMemo(() => {\r\n          const pieLayout = d3Shape.pie().value((d) => Number(d.data));\r\n          // Explode sort doesn't work right...\r\n          if (!series.props.explode) {\r\n              pieLayout.sort(null);\r\n          }\r\n          return pieLayout(data);\r\n      }, [data, series]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, containerClassName: containerClassName, xAxisVisible: false, yAxisVisible: false, center: true, className: classNames__default['default'](className) }, { children: ({ chartWidth, chartHeight }) => (jsxRuntime.jsx(rdk.CloneElement, { element: series, data: getData, height: chartHeight, width: chartWidth, displayAllLabels: displayAllLabels }, void 0)) }), void 0));\r\n  };\r\n  PieChart.defaultProps = {\r\n      margins: 10,\r\n      series: jsxRuntime.jsx(PieArcSeries, {}, void 0)\r\n  };\n\n  const JUSTIFICATION = {\r\n      justify: d3Sankey.sankeyJustify,\r\n      center: d3Sankey.sankeyCenter,\r\n      left: d3Sankey.sankeyLeft,\r\n      right: d3Sankey.sankeyRight\r\n  };\r\n  const Sankey = (_a) => {\r\n      var { width, height, margins, className, animated, links, justification, nodeWidth, nodePadding, colorScheme, nodes, containerClassName } = _a, rest = __rest(_a, [\"width\", \"height\", \"margins\", \"className\", \"animated\", \"links\", \"justification\", \"nodeWidth\", \"nodePadding\", \"colorScheme\", \"nodes\", \"containerClassName\"]);\r\n      const id = rdk.useId(rest.id);\r\n      const [activeNodes, setActiveNodes] = react.useState([]);\r\n      const [activeLinks, setActiveLinks] = react.useState([]);\r\n      const getNodeColor = react.useCallback((node, index) => {\r\n          if (colorScheme) {\r\n              return getColor({\r\n                  data: nodes,\r\n                  colorScheme,\r\n                  point: nodes[index],\r\n                  index\r\n              });\r\n          }\r\n          else {\r\n              return node.props.color;\r\n          }\r\n      }, [colorScheme, nodes]);\r\n      const onNodeActive = react.useCallback((node) => {\r\n          const activeNodes = [node];\r\n          const activeLinks = [];\r\n          if (node.sourceLinks) {\r\n              activeLinks.push(...node.sourceLinks);\r\n              node.sourceLinks.forEach((sourceLink) => {\r\n                  const sourceLinkTarget = sourceLink.target;\r\n                  if (sourceLinkTarget.index !== node.index) {\r\n                      activeNodes.push(sourceLinkTarget);\r\n                  }\r\n              });\r\n          }\r\n          if (node.targetLinks) {\r\n              activeLinks.push(...node.targetLinks);\r\n              node.targetLinks.forEach((targetLink) => {\r\n                  const targetLinkSource = targetLink.source;\r\n                  if (targetLinkSource.index !== node.index) {\r\n                      activeNodes.push(targetLinkSource);\r\n                  }\r\n              });\r\n          }\r\n          setActiveNodes(activeNodes);\r\n          setActiveLinks(activeLinks);\r\n      }, []);\r\n      const onLinkActive = react.useCallback((link) => {\r\n          const activeNodes = [\r\n              link.source,\r\n              link.target\r\n          ];\r\n          const activeLinks = [link];\r\n          setActiveNodes(activeNodes);\r\n          setActiveLinks(activeLinks);\r\n      }, []);\r\n      const onInactive = react.useCallback(() => {\r\n          setActiveNodes([]);\r\n          setActiveLinks([]);\r\n      }, []);\r\n      const nodeMap = react.useMemo(() => {\r\n          // Not sure what this is for\r\n          const nodeMap = new Map();\r\n          nodes.forEach((node) => node && nodeMap.set(node.props.title, node));\r\n          return nodeMap;\r\n      }, [nodes]);\r\n      const renderNode = react.useCallback((computedNode, index, chartWidth, node) => {\r\n          const active = activeNodes.some((node) => node.index === computedNode.index);\r\n          const disabled = activeNodes.length > 0 && !active;\r\n          return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: node, active: active, animated: animated, disabled: disabled, chartWidth: chartWidth, onMouseEnter: () => onNodeActive(computedNode), onMouseLeave: () => onInactive() }, computedNode), `node-${index}`));\r\n      }, [activeNodes, animated, onInactive, onNodeActive]);\r\n      const renderLink = react.useCallback((computedLink, index) => {\r\n          const active = activeLinks.some((link) => link.index === computedLink.index);\r\n          const disabled = activeLinks.length > 0 && !active;\r\n          return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: links[index], active: active, animated: animated, chartId: `sankey-${id}`, disabled: disabled }, computedLink, { onMouseEnter: () => onLinkActive(computedLink), onMouseLeave: () => onInactive() }), `link-${index}`));\r\n      }, [activeLinks, id, animated, links, onInactive, onLinkActive]);\r\n      const getNodesAndLinks = react.useCallback((chartWidth, chartHeight) => {\r\n          const sankeyChart = d3Sankey.sankey()\r\n              .extent([\r\n              [1, 1],\r\n              [chartWidth, chartHeight]\r\n          ])\r\n              .nodeWidth(nodeWidth)\r\n              .nodePadding(nodePadding)\r\n              .nodeAlign(JUSTIFICATION[justification])\r\n              .nodeId((node) => node.id || node.index);\r\n          const nodesCopy = nodes.map((node, index) => ({\r\n              id: node.props.id,\r\n              title: node.props.title,\r\n              color: getNodeColor(node, index)\r\n          }));\r\n          const linksCopy = links.map((link) => ({\r\n              source: link.props.source,\r\n              target: link.props.target,\r\n              value: link.props.value\r\n          }));\r\n          const { nodes: sankeyNodes, links: sankeyLinks } = sankeyChart({\r\n              nodes: nodesCopy,\r\n              links: linksCopy\r\n          });\r\n          /*\r\n        // NOTE: Not sure what this is doing\r\n        sankeyNodes.sort((a, b) => {\r\n          const aX0 = a && a.x0 ? a.x0 : 0;\r\n          const aY0 = a && a.y0 ? a.y0 : 0;\r\n          const bX0 = b && b.x0 ? b.x0 : 0;\r\n          const bY0 = b && b.y0 ? b.y0 : 0;\r\n          return aX0 - bX0 || aY0 - bY0;\r\n        });\r\n        */\r\n          return { sankeyNodes, sankeyLinks };\r\n      }, [getNodeColor, justification, links, nodePadding, nodeWidth, nodes]);\r\n      const renderChart = react.useCallback(({ id, chartWidth, chartHeight, chartSized }) => {\r\n          if (!chartSized) {\r\n              return null;\r\n          }\r\n          const { sankeyNodes, sankeyLinks } = getNodesAndLinks(chartWidth, chartHeight);\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [sankeyLinks.map((link, index) => renderLink(link, index)),\r\n                  sankeyNodes.map((node, index) => renderNode(node, index, chartWidth, nodeMap.get(node.title)))] }, \"group\"));\r\n      }, [getNodesAndLinks, nodeMap, renderLink, renderNode]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, containerClassName: containerClassName, height: height, margins: margins, className: className }, { children: renderChart }), void 0));\r\n  };\r\n  Sankey.defaultProps = {\r\n      animated: true,\r\n      justification: 'justify',\r\n      nodeWidth: 15,\r\n      nodePadding: 10\r\n  };\n\n  var css_248z$a = \".SankeyLabel-module_label__2_aSZ {\\n  font-size: 12px;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n      -ms-user-select: none;\\n          user-select: none;\\n  pointer-events: none;\\n}\\n\";\n  var css$a = {\"label\":\"SankeyLabel-module_label__2_aSZ\"};\n  styleInject(css_248z$a);\n\n  const LABEL_PADDING = 5;\r\n  const SankeyLabel = ({ active, chartWidth, className, nodeWidth, disabled, fill, format, node, position, opacity, padding, visible }) => {\r\n      const x0 = (node === null || node === void 0 ? void 0 : node.x0) || 0;\r\n      const x1 = (node === null || node === void 0 ? void 0 : node.x1) || 0;\r\n      const y0 = (node === null || node === void 0 ? void 0 : node.y0) || 0;\r\n      const y1 = (node === null || node === void 0 ? void 0 : node.y1) || 0;\r\n      const paddedWidth = nodeWidth + LABEL_PADDING;\r\n      const width = chartWidth || 0;\r\n      const showRightSide = x0 < width / 2;\r\n      let x = showRightSide ? x1 + paddedWidth : x0 - paddedWidth;\r\n      const y = (y1 + y0) / 2;\r\n      let textAnchor = showRightSide ? 'start' : 'end';\r\n      if (position === 'outside') {\r\n          textAnchor = showRightSide ? 'end' : 'start';\r\n          x = showRightSide ? x1 - paddedWidth : x0 + paddedWidth;\r\n      }\r\n      if (!visible || !node) {\r\n          return null;\r\n      }\r\n      return (jsxRuntime.jsx(\"text\", Object.assign({ className: classNames__default['default'](css$a.label, className), x: x, y: y, dy: \"0.35em\", textAnchor: textAnchor, fill: fill, opacity: opacity(active, disabled), style: { padding } }, { children: typeof format === 'function'\r\n              ? format({ x, y, textAnchor, node })\r\n              : node.title }), void 0));\r\n  };\r\n  SankeyLabel.defaultProps = {\r\n      active: false,\r\n      fill: '#fff',\r\n      position: 'inside',\r\n      opacity: (active, disabled) => (active ? 1 : disabled ? 0.2 : 0.9),\r\n      visible: true\r\n  };\n\n  const DEFAULT_COLOR = 'rgba(255, 255, 255, 0.2)';\n\n  var css_248z$9 = \".SankeyLink-module_link__hzYa8 {\\n  fill: none;\\n  transition: stroke-opacity 100ms ease-in-out, stroke 100ms ease-in-out;\\n  mix-blend-mode: screen;\\n}\\n\\n.SankeyLink-module_tooltip__28O9b {\\n  text-align: center;\\n  pointer-events: none;\\n}\\n\\n.SankeyLink-module_tooltip__28O9b .SankeyLink-module_tooltipLabel__odxY7 {\\n    font-size: 16px;\\n    margin-bottom: 3px;\\n    color: rgba(255, 255, 255, 1);\\n    text-align: center;\\n  }\\n\\n.SankeyLink-module_tooltip__28O9b .SankeyLink-module_tooltipValue__cTGcv {\\n    font-size: 13px;\\n    color: rgba(255, 255, 255, 0.7);\\n    text-align: center;\\n  }\\n\";\n  var css$9 = {\"link\":\"SankeyLink-module_link__hzYa8\",\"tooltip\":\"SankeyLink-module_tooltip__28O9b\",\"tooltipLabel\":\"SankeyLink-module_tooltipLabel__odxY7\",\"tooltipValue\":\"SankeyLink-module_tooltipValue__cTGcv\"};\n  styleInject(css_248z$9);\n\n  const SankeyLink = ({ gradient, index, source, target, tooltip, chartId, value, active, className, disabled, opacity, style, width, color, y0, y1, onClick, onMouseEnter, onMouseLeave }) => {\r\n      var _a;\r\n      const linkSource = source;\r\n      const linkTarget = target;\r\n      const [hovered, setHovered] = react.useState(false);\r\n      const linkRef = react.useRef(null);\r\n      const getLink = react.useCallback(() => {\r\n          return { index, y0, y1, value, width, source, target };\r\n      }, [index, source, target, value, width, y0, y1]);\r\n      const stroke = react.useMemo(() => {\r\n          if (gradient) {\r\n              return `url(#${chartId}-gradient-${index})`;\r\n          }\r\n          else if (color) {\r\n              return color;\r\n          }\r\n          return DEFAULT_COLOR;\r\n      }, [chartId, gradient, index, color]);\r\n      const enterProps = react.useMemo(() => {\r\n          const path = d3Sankey.sankeyLinkHorizontal();\r\n          const d = path(getLink());\r\n          const strokeWidth = Math.max(1, width);\r\n          return { d, strokeWidth };\r\n      }, [getLink, width]);\r\n      const exitProps = react.useMemo(() => {\r\n          const path = d3Sankey.sankeyLinkHorizontal();\r\n          const d = path(Object.assign(Object.assign({}, getLink()), { width: 0 }));\r\n          return { d, strokeWidth: 0 };\r\n      }, [getLink]);\r\n      const renderTooltipContent = react.useCallback(() => {\r\n          return (jsxRuntime.jsxs(\"div\", Object.assign({ className: css$9.tooltip }, { children: [jsxRuntime.jsx(\"div\", Object.assign({ className: css$9.tooltipLabel }, { children: `${source.title} → ${target.title}` }), void 0),\r\n                  jsxRuntime.jsx(\"div\", Object.assign({ className: css$9.tooltipValue }, { children: formatValue(value) }), void 0)] }), void 0));\r\n      }, [source, target, value]);\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              setHovered(true);\r\n              onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(event);\r\n          },\r\n          onPointerOut: (event) => {\r\n              setHovered(false);\r\n              onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);\r\n          }\r\n      });\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [gradient && (jsxRuntime.jsxs(\"linearGradient\", Object.assign({ id: `${chartId}-gradient-${index}`, gradientUnits: \"userSpaceOnUse\", x1: linkSource.x1, x2: linkTarget.x0 }, { children: [jsxRuntime.jsx(\"stop\", { offset: \"0%\", stopColor: linkSource.color }, void 0),\r\n                      jsxRuntime.jsx(\"stop\", { offset: \"100%\", stopColor: linkTarget.color }, void 0)] }), void 0)),\r\n              jsxRuntime.jsx(\"g\", Object.assign({ ref: linkRef }, { children: jsxRuntime.jsx(framerMotion.motion.path, { className: classNames__default['default'](css$9.link, className), style: style, initial: exitProps, animate: enterProps, exit: exitProps, transition: {\r\n                          duration: 0.5\r\n                      }, stroke: stroke, strokeOpacity: opacity(active, disabled), onClick: onClick, onPointerOver: pointerOver, onPointerOut: pointerOut }, `sankey-link-${enterProps.d}-${index}`) }), void 0),\r\n              !((_a = tooltip === null || tooltip === void 0 ? void 0 : tooltip.props) === null || _a === void 0 ? void 0 : _a.disabled) && (jsxRuntime.jsx(rdk.CloneElement, { content: renderTooltipContent, element: tooltip, visible: hovered, reference: linkRef }, void 0))] }, void 0));\r\n  };\r\n  SankeyLink.defaultProps = {\r\n      active: false,\r\n      animated: true,\r\n      disabled: false,\r\n      gradient: true,\r\n      opacity: (active, disabled) => (active ? 0.5 : disabled ? 0.1 : 0.35),\r\n      tooltip: (jsxRuntime.jsx(reablocks.Tooltip, { followCursor: true, modifiers: {\r\n              offset: {\r\n                  offset: '0, 5px'\r\n              }\r\n          } }, void 0)),\r\n      width: 0\r\n  };\n\n  var css_248z$8 = \".SankeyNode-module_node__1rkj0 {\\n  transition: opacity 100ms ease-in-out, fill-opacity 100ms ease-in-out;\\n}\\n\\n.SankeyNode-module_tooltip__1SZ4e {\\n  text-align: center;\\n  padding: 0 8px;\\n  pointer-events: none;\\n}\\n\\n.SankeyNode-module_tooltip__1SZ4e .SankeyNode-module_tooltipLabel__HfJ93 {\\n    font-size: 16px;\\n    margin-bottom: 3px;\\n    color: rgba(255, 255, 255, 1);\\n    text-align: center;\\n  }\\n\\n.SankeyNode-module_tooltip__1SZ4e .SankeyNode-module_tooltipValue__lnd_m {\\n    font-size: 13px;\\n    color: rgba(255, 255, 255, 0.7);\\n    text-align: center;\\n  }\\n\";\n  var css$8 = {\"node\":\"SankeyNode-module_node__1rkj0\",\"tooltip\":\"SankeyNode-module_tooltip__1SZ4e\",\"tooltipLabel\":\"SankeyNode-module_tooltipLabel__HfJ93\",\"tooltipValue\":\"SankeyNode-module_tooltipValue__lnd_m\"};\n  styleInject(css_248z$8);\n\n  const SankeyNode = ({ active, chartWidth, label, tooltip, title, value, className, color, disabled, index, opacity, style, width, x0, x1, y0, y1, id, sourceLinks, targetLinks, onClick, onMouseEnter, onMouseLeave }) => {\r\n      var _a;\r\n      const node = {\r\n          id,\r\n          title,\r\n          color,\r\n          sourceLinks,\r\n          targetLinks,\r\n          value,\r\n          index,\r\n          x0,\r\n          x1,\r\n          y0,\r\n          y1\r\n      };\r\n      const nodeWidth = width || (x1 && x0 && x1 - x0 > 0 ? x1 - x0 : 0);\r\n      const nodeHeight = y1 && y0 && y1 - y0 > 0 ? y1 - y0 : 0;\r\n      const [hovered, setHovered] = react.useState(false);\r\n      const rectRef = react.useRef(null);\r\n      const renderTooltipContent = react.useCallback(() => {\r\n          return (jsxRuntime.jsxs(\"div\", Object.assign({ className: css$8.tooltip }, { children: [jsxRuntime.jsx(\"div\", Object.assign({ className: css$8.tooltipLabel }, { children: title }), void 0),\r\n                  jsxRuntime.jsx(\"div\", Object.assign({ className: css$8.tooltipValue }, { children: formatValue(value) }), void 0)] }), void 0));\r\n      }, [title, value]);\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              setHovered(true);\r\n              onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(event);\r\n          },\r\n          onPointerOut: (event) => {\r\n              setHovered(false);\r\n              onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);\r\n          }\r\n      });\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(framerMotion.motion.g, Object.assign({ ref: rectRef }, { children: jsxRuntime.jsx(framerMotion.motion.rect, { className: classNames__default['default'](css$8.node, className), fillOpacity: opacity(active, disabled), style: style, width: nodeWidth, height: nodeHeight, fill: color, initial: {\r\n                          opacity: 0,\r\n                          attrX: x0,\r\n                          attrY: y0\r\n                      }, animate: {\r\n                          opacity: 1,\r\n                          attrX: x0,\r\n                          attrY: y0\r\n                      }, exit: {\r\n                          opacity: 0,\r\n                          attrX: x0,\r\n                          attrY: y0\r\n                      }, transition: {\r\n                          duration: 0.1\r\n                      }, onClick: onClick, onPointerOver: pointerOver, onPointerOut: pointerOut }, `sankey-node-${x0}-${x1}-${y0}-${y1}-${index}`) }), void 0),\r\n              label !== null && (jsxRuntime.jsx(rdk.CloneElement, { active: active, element: label, disabled: disabled, chartWidth: chartWidth, nodeWidth: nodeWidth, node: node }, void 0)),\r\n              !((_a = tooltip === null || tooltip === void 0 ? void 0 : tooltip.props) === null || _a === void 0 ? void 0 : _a.disabled) && (jsxRuntime.jsx(rdk.CloneElement, { content: renderTooltipContent, element: tooltip, visible: hovered, reference: rectRef }, void 0))] }, void 0));\r\n  };\r\n  SankeyNode.defaultProps = {\r\n      active: false,\r\n      animated: true,\r\n      color: DEFAULT_COLOR,\r\n      disabled: false,\r\n      label: jsxRuntime.jsx(SankeyLabel, {}, void 0),\r\n      opacity: (active, disabled) => (active ? 1 : disabled ? 0.2 : 0.9),\r\n      tooltip: (jsxRuntime.jsx(reablocks.Tooltip, { followCursor: true, modifiers: {\r\n              offset: {\r\n                  offset: '0, 5px'\r\n              }\r\n          } }, void 0))\r\n  };\n\n  const SparklineChart = (props) => jsxRuntime.jsx(LineChart, Object.assign({}, props), void 0);\r\n  SparklineChart.defaultProps = {\r\n      gridlines: null,\r\n      series: (jsxRuntime.jsx(AreaSeries, { symbols: jsxRuntime.jsx(PointSeries, { show: \"hover\" }, void 0), interpolation: \"smooth\", markLine: null, area: null, line: jsxRuntime.jsx(Line, { strokeWidth: 2 }, void 0) }, void 0)),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { scaled: true, type: \"value\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { line: null, label: null }, void 0) }, void 0)),\r\n      xAxis: (jsxRuntime.jsx(LinearXAxis, { type: \"time\", scaled: true, axisLine: null, tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { line: null, label: null }, void 0) }, void 0))\r\n  };\n\n  const AreaSparklineChart = (props) => jsxRuntime.jsx(AreaChart, Object.assign({}, props), void 0);\r\n  AreaSparklineChart.defaultProps = {\r\n      gridlines: null,\r\n      series: (jsxRuntime.jsx(AreaSeries, { symbols: jsxRuntime.jsx(PointSeries, { show: \"hover\" }, void 0), interpolation: \"smooth\", markLine: null, area: jsxRuntime.jsx(Area, { mask: jsxRuntime.jsx(Stripes, {}, void 0), gradient: jsxRuntime.jsx(Gradient, { stops: [\r\n                      jsxRuntime.jsx(GradientStop, { offset: \"10%\", stopOpacity: 0 }, \"start\"),\r\n                      jsxRuntime.jsx(GradientStop, { offset: \"80%\", stopOpacity: 1 }, \"stop\")\r\n                  ] }, void 0) }, void 0), line: jsxRuntime.jsx(Line, { strokeWidth: 3 }, void 0) }, void 0)),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { type: \"value\", scaled: true, axisLine: null, tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { line: null, label: null }, void 0) }, void 0)),\r\n      xAxis: (jsxRuntime.jsx(LinearXAxis, { type: \"time\", scaled: true, axisLine: null, tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { line: null, label: null }, void 0) }, void 0))\r\n  };\n\n  const BarSparklineChart = (props) => jsxRuntime.jsx(BarChart, Object.assign({}, props), void 0);\r\n  BarSparklineChart.defaultProps = {\r\n      gridlines: null,\r\n      series: jsxRuntime.jsx(BarSeries, { colorScheme: schemes.cybertron[0] }, void 0),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { type: \"value\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { line: null, label: null }, void 0) }, void 0)),\r\n      xAxis: (jsxRuntime.jsx(LinearXAxis, { type: \"category\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { line: null, label: null }, void 0) }, void 0))\r\n  };\n\n  const SonarChart = (props) => (jsxRuntime.jsx(StackedBarChart, Object.assign({}, props, { margins: 0, gridlines: null, series: jsxRuntime.jsx(StackedBarSeries, { type: \"stackedDiverging\", colorScheme: \"rgb(17, 207, 247)\", tooltip: jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { followCursor: true, modifiers: {\r\n                      offset: '5px, 5px'\r\n                  }, content: (data, color) => (jsxRuntime.jsx(TooltipTemplate, { color: color, value: {\r\n                          x: formatValue(data.x),\r\n                          y: `${formatValue(Math.abs(data.data[0].y))}`\r\n                      } }, void 0)) }, void 0) }, void 0), bar: [\r\n              jsxRuntime.jsx(Bar, { width: 1, rangeLines: null, minHeight: 1, gradient: jsxRuntime.jsx(Gradient, { stops: [\r\n                          jsxRuntime.jsx(GradientStop, { offset: \"5%\", stopOpacity: 0.7 }, \"start\"),\r\n                          jsxRuntime.jsx(GradientStop, { offset: \"90%\", stopOpacity: 1 }, \"stop\")\r\n                      ] }, void 0) }, \"first\"),\r\n              jsxRuntime.jsx(Bar, { width: 1, rangeLines: null, minHeight: 1, gradient: jsxRuntime.jsx(Gradient, { stops: [\r\n                          jsxRuntime.jsx(GradientStop, { offset: \"5%\", stopOpacity: 1 }, \"stop\"),\r\n                          jsxRuntime.jsx(GradientStop, { offset: \"90%\", stopOpacity: 0.7 }, \"start\")\r\n                      ] }, void 0) }, \"second\")\r\n          ] }, void 0), yAxis: jsxRuntime.jsx(LinearYAxis, { type: \"value\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { line: null, label: null }, void 0) }, void 0), xAxis: jsxRuntime.jsx(LinearXAxis, { type: \"category\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { line: null, label: null }, void 0) }, void 0) }), void 0));\n\n  const RadialArea = ({ id, data, className, yScale, color, animated, index, outerRadius, xScale, innerRadius, interpolation, gradient }) => {\r\n      const transition = react.useMemo(() => animated\r\n          ? Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: index * 0.05 }) : {\r\n          type: false,\r\n          delay: 0\r\n      }, [animated, index]);\r\n      const getFill = react.useCallback((c) => {\r\n          if (!gradient) {\r\n              return c;\r\n          }\r\n          return `url(#${id}-gradient)`;\r\n      }, [id, gradient]);\r\n      const getPath = react.useCallback((d) => {\r\n          const curve = interpolation === 'smooth' ? d3Shape.curveCardinalClosed : d3Shape.curveLinearClosed;\r\n          const radialFn = d3Shape.radialArea()\r\n              .angle((dd) => xScale(dd.x))\r\n              .innerRadius((_) => innerRadius)\r\n              .outerRadius((d) => yScale(d.y))\r\n              .curve(curve);\r\n          return radialFn(d);\r\n      }, [xScale, yScale, interpolation, innerRadius]);\r\n      const enter = react.useMemo(() => ({\r\n          d: getPath(data),\r\n          opacity: 1\r\n      }), [data, getPath]);\r\n      const exit = react.useMemo(() => {\r\n          const [yStart] = yScale.domain();\r\n          return {\r\n              d: getPath(data.map((d) => (Object.assign(Object.assign({}, d), { y: yStart })))),\r\n              opacity: 0\r\n          };\r\n      }, [data, getPath, yScale]);\r\n      const fill = color(data, 0);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(MotionPath, { custom: {\r\n                      enter,\r\n                      exit\r\n                  }, transition: transition, pointerEvents: \"none\", className: className, fill: getFill(color) }, void 0),\r\n              gradient && (jsxRuntime.jsx(rdk.CloneElement, { element: gradient, id: `${id}-gradient`, radius: outerRadius, color: fill }, void 0))] }, void 0));\r\n  };\r\n  RadialArea.defaultProps = {\r\n      gradient: jsxRuntime.jsx(RadialGradient, {}, void 0)\r\n  };\n\n  const RadialLine = ({ xScale, yScale, className, index, hasArea, color, data, interpolation, strokeWidth, animated }) => {\r\n      const fill = color(data, index);\r\n      const getPath = react.useCallback((preData) => {\r\n          const curve = interpolation === 'smooth' ? d3Shape.curveCardinalClosed : d3Shape.curveLinearClosed;\r\n          const radialFn = d3Shape.radialLine()\r\n              .angle((d) => xScale(d.x))\r\n              .radius((d) => yScale(d.y))\r\n              .curve(curve);\r\n          return radialFn(preData);\r\n      }, [xScale, yScale, interpolation]);\r\n      const transition = react.useMemo(() => animated\r\n          ? Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: hasArea ? 0 : index * 0.05 }) : {\r\n          type: false,\r\n          delay: 0\r\n      }, [animated, index, hasArea]);\r\n      const enter = react.useMemo(() => ({\r\n          d: getPath(data),\r\n          opacity: 1\r\n      }), [data, getPath]);\r\n      const exit = react.useMemo(() => {\r\n          const [yStart] = yScale.domain();\r\n          return {\r\n              d: getPath(data.map((d) => (Object.assign(Object.assign({}, d), { y: yStart })))),\r\n              opacity: 0\r\n          };\r\n      }, [data, yScale, getPath]);\r\n      return (jsxRuntime.jsx(MotionPath, { custom: {\r\n              enter,\r\n              exit\r\n          }, transition: transition, className: className, pointerEvents: \"none\", stroke: fill, fill: \"none\", strokeWidth: strokeWidth }, void 0));\r\n  };\r\n  RadialLine.defaultProps = {\r\n      strokeWidth: 2,\r\n      animated: true\r\n  };\n\n  const RadialScatterPlot = ({ id, width, height, margins, className, containerClassName, innerRadius, series, axis, data }) => {\r\n      const getScales = react.useCallback((aggregatedData, outer, inner) => {\r\n          const yDomain = getYDomain({ data: aggregatedData, scaled: false });\r\n          const xDomain = getXDomain({ data: aggregatedData });\r\n          const xScale = d3Scale.scaleTime()\r\n              .range([0, 2 * Math.PI])\r\n              .domain(xDomain);\r\n          const yScale = getRadialYScale(inner, outer, yDomain);\r\n          return {\r\n              yScale,\r\n              xScale\r\n          };\r\n      }, []);\r\n      const renderChart = react.useCallback((containerProps) => {\r\n          const { chartWidth, chartHeight, id } = containerProps;\r\n          const outerRadius = Math.min(chartWidth, chartHeight) / 2;\r\n          const aggregatedData = buildShallowChartData(data);\r\n          const { yScale, xScale } = getScales(aggregatedData, outerRadius, innerRadius);\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [axis && (jsxRuntime.jsx(rdk.CloneElement, { element: axis, xScale: xScale, height: chartHeight, width: chartWidth, innerRadius: innerRadius }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: series, id: id, data: aggregatedData, xScale: xScale, yScale: yScale }, void 0)] }, void 0));\r\n      }, [data, getScales, innerRadius, series, axis]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, containerClassName: containerClassName, width: width, height: height, margins: margins, xAxisVisible: false, yAxisVisible: false, center: true, className: className }, { children: renderChart }), void 0));\r\n  };\n\n  var css_248z$7 = \".RadialScatterPoint-module_inactive__1RkCR {\\n  opacity: 0.4;\\n  transition: opacity 200ms ease-in-out;\\n}\\n\";\n  var css$7 = {\"inactive\":\"RadialScatterPoint-module_inactive__1RkCR\"};\n  styleInject(css_248z$7);\n\n  const RadialScatterPoint = (_a) => {\r\n      var { size, data, color, index, symbol, active, tooltip, yScale, xScale, animated, className } = _a, rest = __rest(_a, [\"size\", \"data\", \"color\", \"index\", \"symbol\", \"active\", \"tooltip\", \"yScale\", \"xScale\", \"animated\", \"className\"]);\r\n      const ref = react.useRef(null);\r\n      const [hovered, setHovered] = react.useState(false);\r\n      function onMouseEnter(event) {\r\n          setHovered(true);\r\n          rest.onMouseEnter({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      }\r\n      function onMouseLeave(event) {\r\n          setHovered(false);\r\n          rest.onMouseLeave({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      }\r\n      function onClick(event) {\r\n          rest.onClick({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      }\r\n      function getTranslate(data) {\r\n          const fn = d3Shape.radialLine()\r\n              .radius((d) => yScale(d.y))\r\n              .angle((d) => xScale(d.x));\r\n          // Parse the generated path to get point coordinates\r\n          // Ref: https://bit.ly/2CnZcPl\r\n          const path = fn([data]);\r\n          if (path) {\r\n              const [translateX, translateY] = path.slice(1).slice(0, -1).split(',');\r\n              return {\r\n                  translateX: parseFloat(translateX),\r\n                  translateY: parseFloat(translateY)\r\n              };\r\n          }\r\n      }\r\n      function getTransition() {\r\n          if (animated) {\r\n              return Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: index * 0.005 });\r\n          }\r\n          else {\r\n              return {\r\n                  type: false,\r\n                  delay: 0\r\n              };\r\n          }\r\n      }\r\n      const fill = typeof color === 'function' ? color(data, index) : color;\r\n      const transform = getTranslate(data);\r\n      const sizeVal = typeof size === 'function' ? size(data) : size;\r\n      const transition = getTransition();\r\n      const [yStart] = yScale.domain();\r\n      const exitTransform = getTranslate(Object.assign(Object.assign({}, data), { y: yStart }));\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsxs(framerMotion.motion.g, Object.assign({ initial: Object.assign(Object.assign({}, exitTransform), { opacity: 0 }), animate: Object.assign(Object.assign({}, transform), { opacity: 1 }), exit: Object.assign(Object.assign({}, exitTransform), { opacity: 0 }), transition: transition, ref: ref, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onClick: onClick, className: classNames__default['default'](className, {\r\n                      [css$7.inactive]: !active\r\n                  }) }, { children: [symbol && symbol(data), !symbol && jsxRuntime.jsx(\"circle\", { r: sizeVal, fill: fill }, void 0)] }), void 0),\r\n              tooltip && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: hovered, reference: ref, value: data }, void 0))] }, void 0));\r\n  };\r\n  RadialScatterPoint.defaultProps = {\r\n      size: 3,\r\n      color: schemes.cybertron[0],\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0),\r\n      active: true,\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined\r\n  };\n\n  const RadialScatterSeries = ({ data, point, xScale, yScale, animated, activeIds }) => {\r\n      const [internalActiveIds, setInternalActiveIds] = react.useState(activeIds);\r\n      react.useEffect(() => {\r\n          setInternalActiveIds(activeIds || []);\r\n      }, [activeIds]);\r\n      const onMouseEnter = react.useCallback(({ value }) => {\r\n          // Only perform this on unmanaged activations\r\n          if (!activeIds) {\r\n              setInternalActiveIds([value.id]);\r\n          }\r\n      }, []);\r\n      const onMouseLeave = react.useCallback(() => {\r\n          // Only perform this on unmanaged activations\r\n          if (!activeIds) {\r\n              setInternalActiveIds([]);\r\n          }\r\n      }, []);\r\n      const renderPoint = react.useCallback((d, index) => {\r\n          let dataId;\r\n          if (d.id) {\r\n              dataId = d.id;\r\n          }\r\n          else {\r\n              console.warn('No \\'id\\' property provided for scatter point; provide one via \\'id\\'.');\r\n          }\r\n          const key = dataId || index;\r\n          const active = !(internalActiveIds && internalActiveIds.length) || internalActiveIds.includes(dataId);\r\n          const visible = point.props.visible;\r\n          if (visible && !visible(d, index)) {\r\n              return jsxRuntime.jsx(react.Fragment, {}, key);\r\n          }\r\n          return (jsxRuntime.jsx(rdk.CloneElement, { element: point, data: d, index: index, active: active, xScale: xScale, yScale: yScale, animated: animated, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, key));\r\n      }, [point, internalActiveIds, xScale, yScale, animated, onMouseEnter, onMouseLeave]);\r\n      return jsxRuntime.jsx(react.Fragment, { children: data.map(renderPoint) }, void 0);\r\n  };\r\n  RadialScatterSeries.defaultProps = {\r\n      point: jsxRuntime.jsx(RadialScatterPoint, {}, void 0),\r\n      animated: true\r\n  };\n\n  const RadialPointSeries = ({ data, xScale, yScale, animated, color, activeValues, show, point }) => {\r\n      const isVisible = react.useCallback((point, index) => {\r\n          const isActive = activeValues && point && isEqual__default['default'](activeValues.x, point.x);\r\n          if (show === 'hover') {\r\n              return isActive;\r\n          }\r\n          else if (show === 'first') {\r\n              if (activeValues) {\r\n                  return isActive;\r\n              }\r\n              else {\r\n                  return index === 0;\r\n              }\r\n          }\r\n          else if (show === 'last') {\r\n              if (activeValues) {\r\n                  return isActive;\r\n              }\r\n              else {\r\n                  return index === data.length - 1;\r\n              }\r\n          }\r\n          return show;\r\n      }, [data, activeValues, show]);\r\n      return (jsxRuntime.jsx(RadialScatterSeries, { animated: animated, data: data, xScale: xScale, yScale: yScale, point: jsxRuntime.jsx(rdk.CloneElement, { element: point, color: color, tooltip: null, visible: isVisible }, void 0) }, void 0));\r\n  };\r\n  RadialPointSeries.defaultProps = {\r\n      show: 'hover',\r\n      type: 'standard',\r\n      point: jsxRuntime.jsx(RadialScatterPoint, {}, void 0)\r\n  };\n\n  const RadialAreaSeries = ({ area, line, symbols, tooltip, xScale, yScale, data, id, animated, width, height, innerRadius, outerRadius, type, colorScheme, interpolation }) => {\r\n      const [activeValues, setActiveValues] = react.useState(null);\r\n      const isMulti = type === 'grouped';\r\n      const getColorForPoint = react.useCallback((point, index) => {\r\n          var _a;\r\n          const key = Array.isArray(point) ? (_a = point === null || point === void 0 ? void 0 : point[0]) === null || _a === void 0 ? void 0 : _a.key : point === null || point === void 0 ? void 0 : point.key;\r\n          return getColor({\r\n              colorScheme,\r\n              data,\r\n              index,\r\n              point,\r\n              key\r\n          });\r\n      }, [colorScheme, data]);\r\n      const renderArea = react.useCallback((point, index = 0) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [area && (jsxRuntime.jsx(rdk.CloneElement, { element: area, id: `${id}-radial-area-${index}`, xScale: xScale, yScale: yScale, animated: animated, color: getColorForPoint, index: index, data: point, interpolation: interpolation, outerRadius: outerRadius, innerRadius: innerRadius }, void 0)),\r\n              line && (jsxRuntime.jsx(rdk.CloneElement, { element: line, xScale: xScale, yScale: yScale, hasArea: area !== null, index: index, animated: animated, interpolation: interpolation, color: getColorForPoint, data: point }, void 0))] }, void 0)), [\r\n          animated,\r\n          area,\r\n          getColorForPoint,\r\n          id,\r\n          innerRadius,\r\n          interpolation,\r\n          line,\r\n          outerRadius,\r\n          xScale,\r\n          yScale\r\n      ]);\r\n      const renderSymbols = react.useCallback((data, index = 0) => {\r\n          // Animations are only valid for Area\r\n          const activeSymbols = (symbols && symbols.props.activeValues) || activeValues;\r\n          const isAnimated = area !== undefined && animated && !activeSymbols;\r\n          return (jsxRuntime.jsx(rdk.CloneElement, { element: symbols, activeValues: activeValues, xScale: xScale, index: index, yScale: yScale, data: data, animated: isAnimated, color: getColorForPoint }, void 0));\r\n      }, [activeValues, animated, area, getColorForPoint, symbols, xScale, yScale]);\r\n      const renderSingleSeries = react.useCallback((points) => (jsxRuntime.jsxs(react.Fragment, { children: [renderArea(points), symbols && renderSymbols(points)] }, void 0)), [renderArea, renderSymbols, symbols]);\r\n      const renderMultiSeries = react.useCallback((points) => (jsxRuntime.jsxs(react.Fragment, { children: [points\r\n                  .map((point, index) => (jsxRuntime.jsx(react.Fragment, { children: renderArea(point.data, index) }, `${point.key.toString()}`)))\r\n                  .reverse(),\r\n              points\r\n                  .map((point, index) => (jsxRuntime.jsx(react.Fragment, { children: renderSymbols(point.data, index) }, `${point.key.toString()}`)))\r\n                  .reverse()] }, void 0)), [renderArea, renderSymbols]);\r\n      return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: tooltip, xScale: xScale, yScale: yScale, data: data, height: height, width: width, isRadial: true, innerRadius: innerRadius, outerRadius: outerRadius, color: getColorForPoint, onValueEnter: (event) => setActiveValues(event.value), onValueLeave: () => setActiveValues(null) }, { children: jsxRuntime.jsxs(\"g\", Object.assign({ clipPath: `url(#${id}-path)` }, { children: [isMulti &&\r\n                      renderMultiSeries(data),\r\n                  !isMulti &&\r\n                      renderSingleSeries(data)] }), void 0) }), void 0));\r\n  };\r\n  RadialAreaSeries.defaultProps = {\r\n      colorScheme: schemes.cybertron,\r\n      interpolation: 'smooth',\r\n      type: 'standard',\r\n      animated: true,\r\n      area: jsxRuntime.jsx(RadialArea, {}, void 0),\r\n      line: jsxRuntime.jsx(RadialLine, {}, void 0),\r\n      symbols: jsxRuntime.jsx(RadialPointSeries, {}, void 0),\r\n      tooltip: jsxRuntime.jsx(TooltipArea, {}, void 0)\r\n  };\n\n  const RadialAreaChart = ({ id, width, height, className, data, containerClassName, innerRadius, series, axis, margins }) => {\r\n      const getXScale = react.useCallback((points) => {\r\n          let xScale;\r\n          if ((axis === null || axis === void 0 ? void 0 : axis.props.type) === 'category') {\r\n              const isMultiSeries = series.props.type === 'grouped';\r\n              let xDomain;\r\n              if (isMultiSeries) {\r\n                  xDomain = uniqueBy(points, (dd) => dd.data, (dd) => dd.x);\r\n              }\r\n              else {\r\n                  xDomain = uniqueBy(points, (dd) => dd.x);\r\n              }\r\n              xScale = d3Scale.scaleBand()\r\n                  .range([0, 2 * Math.PI])\r\n                  .domain(xDomain);\r\n          }\r\n          else {\r\n              const xDomain = getXDomain({ data: points });\r\n              xScale = d3Scale.scaleTime()\r\n                  .range([0, 2 * Math.PI])\r\n                  .domain(xDomain);\r\n          }\r\n          return xScale;\r\n      }, [axis === null || axis === void 0 ? void 0 : axis.props.type, series.props.type]);\r\n      const getScales = react.useCallback((preData, outerRadius, innerRadius) => {\r\n          const isMultiSeries = series.props.type === 'grouped';\r\n          let d;\r\n          if (isMultiSeries) {\r\n              d = buildNestedChartData(preData, true);\r\n          }\r\n          else {\r\n              d = buildShallowChartData(preData);\r\n          }\r\n          const xScale = getXScale(d);\r\n          const yDomain = getYDomain({ data: d, scaled: false });\r\n          const yScale = getRadialYScale(innerRadius, outerRadius, yDomain);\r\n          return {\r\n              yScale,\r\n              xScale,\r\n              result: d\r\n          };\r\n      }, [getXScale, series.props.type]);\r\n      const renderChart = react.useCallback((containerProps) => {\r\n          const { chartWidth, chartHeight, id } = containerProps;\r\n          const outerRadius = Math.min(chartWidth, chartHeight) / 2;\r\n          const { yScale, xScale, result } = getScales(data, outerRadius, innerRadius);\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [axis && (jsxRuntime.jsx(rdk.CloneElement, { element: axis, xScale: xScale, height: chartHeight, width: chartWidth, innerRadius: innerRadius }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: series, id: id, data: result, xScale: xScale, yScale: yScale, height: chartHeight, width: chartWidth, outerRadius: outerRadius, innerRadius: innerRadius }, void 0)] }, void 0));\r\n      }, [getScales, data, innerRadius, axis, series]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, containerClassName: containerClassName, margins: margins, xAxisVisible: false, yAxisVisible: false, center: true, className: className }, { children: renderChart }), void 0));\r\n  };\r\n  RadialAreaChart.defaultProps = {\r\n      innerRadius: 0.1,\r\n      series: jsxRuntime.jsx(RadialAreaSeries, {}, void 0),\r\n      axis: jsxRuntime.jsx(RadialAxis, {}, void 0),\r\n      margins: 75\r\n  };\n\n  const pi = Math.PI,\n      tau = 2 * pi,\n      epsilon = 1e-6,\n      tauEpsilon = tau - epsilon;\n\n  function Path() {\n    this._x0 = this._y0 = // start of current subpath\n    this._x1 = this._y1 = null; // end of current subpath\n    this._ = \"\";\n  }\n\n  function path() {\n    return new Path;\n  }\n\n  Path.prototype = path.prototype = {\n    constructor: Path,\n    moveTo: function(x, y) {\n      this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n    },\n    closePath: function() {\n      if (this._x1 !== null) {\n        this._x1 = this._x0, this._y1 = this._y0;\n        this._ += \"Z\";\n      }\n    },\n    lineTo: function(x, y) {\n      this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n    },\n    quadraticCurveTo: function(x1, y1, x, y) {\n      this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n    },\n    bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n      this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n    },\n    arcTo: function(x1, y1, x2, y2, r) {\n      x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n      var x0 = this._x1,\n          y0 = this._y1,\n          x21 = x2 - x1,\n          y21 = y2 - y1,\n          x01 = x0 - x1,\n          y01 = y0 - y1,\n          l01_2 = x01 * x01 + y01 * y01;\n\n      // Is the radius negative? Error.\n      if (r < 0) throw new Error(\"negative radius: \" + r);\n\n      // Is this path empty? Move to (x1,y1).\n      if (this._x1 === null) {\n        this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n      }\n\n      // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n      else if (!(l01_2 > epsilon));\n\n      // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n      // Equivalently, is (x1,y1) coincident with (x2,y2)?\n      // Or, is the radius zero? Line to (x1,y1).\n      else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n        this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n      }\n\n      // Otherwise, draw an arc!\n      else {\n        var x20 = x2 - x0,\n            y20 = y2 - y0,\n            l21_2 = x21 * x21 + y21 * y21,\n            l20_2 = x20 * x20 + y20 * y20,\n            l21 = Math.sqrt(l21_2),\n            l01 = Math.sqrt(l01_2),\n            l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n            t01 = l / l01,\n            t21 = l / l21;\n\n        // If the start tangent is not coincident with (x0,y0), line to.\n        if (Math.abs(t01 - 1) > epsilon) {\n          this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n        }\n\n        this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n      }\n    },\n    arc: function(x, y, r, a0, a1, ccw) {\n      x = +x, y = +y, r = +r, ccw = !!ccw;\n      var dx = r * Math.cos(a0),\n          dy = r * Math.sin(a0),\n          x0 = x + dx,\n          y0 = y + dy,\n          cw = 1 ^ ccw,\n          da = ccw ? a0 - a1 : a1 - a0;\n\n      // Is the radius negative? Error.\n      if (r < 0) throw new Error(\"negative radius: \" + r);\n\n      // Is this path empty? Move to (x0,y0).\n      if (this._x1 === null) {\n        this._ += \"M\" + x0 + \",\" + y0;\n      }\n\n      // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n      else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n        this._ += \"L\" + x0 + \",\" + y0;\n      }\n\n      // Is this arc empty? We’re done.\n      if (!r) return;\n\n      // Does the angle go the wrong way? Flip the direction.\n      if (da < 0) da = da % tau + tau;\n\n      // Is this a complete circle? Draw two arcs to complete the circle.\n      if (da > tauEpsilon) {\n        this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n      }\n\n      // Is this arc non-empty? Draw an arc!\n      else if (da > epsilon) {\n        this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n      }\n    },\n    rect: function(x, y, w, h) {\n      this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n    },\n    toString: function() {\n      return this._;\n    }\n  };\n\n  const MotionBar = (_a) => {\r\n      var { custom, transition, arc } = _a, rest = __rest(_a, [\"custom\", \"transition\", \"arc\"]);\r\n      const d = framerMotion.useMotionValue('');\r\n      const prevPath = framerMotion.useMotionValue(custom.exit);\r\n      const spring = framerMotion.useSpring(prevPath, Object.assign(Object.assign({}, DEFAULT_TRANSITION), { from: 0, to: 1 }));\r\n      react.useEffect(() => {\r\n          const from = custom.previousEnter\r\n              ? custom.previousEnter.y\r\n              : prevPath.get().y;\r\n          const interpolator = d3Interpolate.interpolate(from, custom.enter.y);\r\n          const unsub = spring.onChange((v) => d.set(arc(Object.assign(Object.assign({}, custom.enter), { y: interpolator(v) }))));\r\n          prevPath.set(custom.enter);\r\n          return unsub;\r\n      });\r\n      const _b = custom.enter, { d: enterD } = _b, enterRest = __rest(_b, [\"d\"]);\r\n      const _c = custom.exit, exitRest = __rest(_c, [\"d\"]);\r\n      return (jsxRuntime.jsx(framerMotion.motion.path, Object.assign({}, rest, { initial: exitRest, exit: exitRest, animate: enterRest, transition: transition, d: transition.type !== false ? d : enterD }), void 0));\r\n  };\n\n  const RadialGuideBar = ({ active, path, fill = '#eee', opacity = 0.2 }) => (jsxRuntime.jsx(framerMotion.motion.path, { d: path, fill: fill, pointerEvents: \"none\", initial: \"hidden\", animate: active ? 'visible' : 'hidden', variants: {\r\n          hidden: { opacity: 0 },\r\n          visible: { opacity }\r\n      } }, void 0));\r\n  RadialGuideBar.defaultProps = {\r\n      fill: '#eee',\r\n      opacity: 0.2\r\n  };\n\n  const RadialBar = ({ animated, innerRadius, xScale, yScale, curved, id, gradient, barCount, className, data, active, guide, index, color, onClick, onMouseEnter, onMouseLeave }) => {\r\n      const previousEnter = react.useRef(null);\r\n      const fill = color(data, index);\r\n      const currentColorShade = active ? chroma__default['default'](fill).brighten(0.5) : fill;\r\n      const transition = react.useMemo(() => {\r\n          // const { animated, barCount, index } = this.props;\r\n          if (animated) {\r\n              return Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: (index / barCount) * 0.5 });\r\n          }\r\n          else {\r\n              return {\r\n                  type: false,\r\n                  delay: 0\r\n              };\r\n          }\r\n      }, [animated, barCount, index]);\r\n      const getFill = react.useCallback((color) => {\r\n          if (!gradient) {\r\n              return color;\r\n          }\r\n          return `url(#${id}-gradient)`;\r\n      }, [gradient, id]);\r\n      const getArc = react.useCallback((data) => {\r\n          const outerRadius = yScale(data.y);\r\n          if (curved) {\r\n              const startAngle = xScale(data.x);\r\n              const endAngle = startAngle + xScale.bandwidth();\r\n              const arcFn = d3Shape.arc()\r\n                  .innerRadius(innerRadius)\r\n                  .outerRadius(outerRadius)\r\n                  .startAngle(startAngle)\r\n                  .endAngle(endAngle)\r\n                  .padAngle(0.01)\r\n                  .padRadius(innerRadius);\r\n              return arcFn(data);\r\n          }\r\n          else {\r\n              const startAngle = xScale(data.x) - Math.PI * 0.5;\r\n              const endAngle = startAngle + xScale.bandwidth();\r\n              const innerAngleDistance = endAngle - startAngle;\r\n              const arcLength = innerRadius * innerAngleDistance;\r\n              const outerAngleDistance = arcLength / outerRadius;\r\n              const halfAngleDistanceDelta = (innerAngleDistance - outerAngleDistance) / 2;\r\n              const pathFn = path();\r\n              pathFn.arc(0, 0, innerRadius, startAngle, endAngle);\r\n              pathFn.arc(0, 0, outerRadius, endAngle - halfAngleDistanceDelta, startAngle + halfAngleDistanceDelta, true);\r\n              return pathFn.toString();\r\n          }\r\n      }, [curved, innerRadius, xScale, yScale]);\r\n      const renderBar = react.useCallback((color) => {\r\n          const fill = getFill(color);\r\n          // Track previous props\r\n          const prev = previousEnter.current\r\n              ? Object.assign({}, previousEnter.current) : undefined;\r\n          previousEnter.current = Object.assign({}, data);\r\n          const [yStart, yEnd] = yScale.domain();\r\n          const exit = Object.assign(Object.assign({}, data), { y: yStart });\r\n          const guidePath = getArc(Object.assign(Object.assign({}, data), { y: yEnd }));\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [guide && (jsxRuntime.jsx(rdk.CloneElement, { element: guide, active: active, path: guidePath }, void 0)),\r\n                  jsxRuntime.jsx(MotionBar, { arc: getArc, custom: {\r\n                          enter: data,\r\n                          exit,\r\n                          previousEnter: prev\r\n                      }, transition: transition, fill: fill, className: className, onMouseEnter: (event) => onMouseEnter({\r\n                          value: data,\r\n                          nativeEvent: event\r\n                      }), onMouseLeave: (event) => onMouseLeave({\r\n                          value: data,\r\n                          nativeEvent: event\r\n                      }), onClick: (event) => onClick({\r\n                          value: data,\r\n                          nativeEvent: event\r\n                      }) }, void 0)] }, void 0));\r\n      }, [\r\n          active,\r\n          className,\r\n          data,\r\n          getArc,\r\n          getFill,\r\n          guide,\r\n          onClick,\r\n          onMouseEnter,\r\n          onMouseLeave,\r\n          transition,\r\n          yScale\r\n      ]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [renderBar(currentColorShade), gradient && jsxRuntime.jsx(Gradient, { id: `${id}-gradient`, color: currentColorShade }, void 0)] }, void 0));\r\n  };\r\n  RadialBar.defaultProps = {\r\n      gradient: true,\r\n      curved: false,\r\n      guide: jsxRuntime.jsx(RadialGuideBar, {}, void 0),\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined\r\n  };\n\n  const RadialBarSeries = ({ data, id, innerRadius, outerRadius, xScale, yScale, height, width, tooltip, colorScheme, bar, animated }) => {\r\n      const [activeValues, setActiveValues] = react.useState(null);\r\n      const renderBar = react.useCallback((point, index) => {\r\n          const active = activeValues && data && isEqual__default['default'](activeValues.x, point.x);\r\n          return (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx(rdk.CloneElement, { element: bar, id: `radialbar-${id}-${index}`, index: index, data: point, xScale: xScale, active: active, yScale: yScale, innerRadius: innerRadius, color: (point) => getColor({ data, point, index: 0, colorScheme }), barCount: data.length, animated: animated }, void 0) }, index));\r\n      }, [\r\n          activeValues,\r\n          animated,\r\n          bar,\r\n          colorScheme,\r\n          data,\r\n          id,\r\n          innerRadius,\r\n          xScale,\r\n          yScale\r\n      ]);\r\n      return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: tooltip, xScale: xScale, yScale: yScale, data: data, height: height, width: width, isRadial: true, innerRadius: innerRadius, outerRadius: outerRadius, onValueEnter: (event) => setActiveValues(event.value), onValueLeave: () => setActiveValues(null), color: (point, index) => getColor({ data, point, index, colorScheme }) }, { children: jsxRuntime.jsx(\"g\", Object.assign({ clipPath: `url(#${id}-path)` }, { children: data.map(renderBar) }), void 0) }), void 0));\r\n  };\r\n  RadialBarSeries.defaultProps = {\r\n      colorScheme: schemes.cybertron[0],\r\n      tooltip: jsxRuntime.jsx(TooltipArea, { tooltip: jsxRuntime.jsx(ChartTooltip, { followCursor: true }, void 0) }, void 0),\r\n      bar: jsxRuntime.jsx(RadialBar, {}, void 0),\r\n      animated: true\r\n  };\n\n  const RadialBarChart = ({ id, width, height, margins, className, containerClassName, data, innerRadius, series, axis }) => {\r\n      const getScales = react.useCallback((preData, innerRadius, outerRadius) => {\r\n          const newData = buildShallowChartData(preData);\r\n          const xDomain = uniqueBy(newData, (d) => d.x);\r\n          const yDomain = getYDomain({ data: newData, scaled: false });\r\n          const xScale = d3Scale.scaleBand()\r\n              .range([0, 2 * Math.PI])\r\n              .domain(xDomain);\r\n          const yScale = getRadialYScale(innerRadius, outerRadius, yDomain);\r\n          return {\r\n              xScale,\r\n              yScale,\r\n              newData\r\n          };\r\n      }, []);\r\n      const renderChart = react.useCallback(({ chartWidth, chartHeight, id }) => {\r\n          const outerRadius = Math.min(chartWidth, chartHeight) / 2;\r\n          const { yScale, xScale, newData } = getScales(data, innerRadius, outerRadius);\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [axis && (jsxRuntime.jsx(rdk.CloneElement, { element: axis, xScale: xScale, height: chartHeight, width: chartWidth, innerRadius: innerRadius }, void 0)),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: series, id: id, data: newData, height: chartHeight, width: chartWidth, xScale: xScale, yScale: yScale, innerRadius: innerRadius, outerRadius: outerRadius }, void 0)] }, void 0));\r\n      }, [axis, data, getScales, innerRadius, series]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, xAxisVisible: false, yAxisVisible: false, center: true, className: className, containerClassName: containerClassName }, { children: renderChart }), void 0));\r\n  };\r\n  RadialBarChart.defaultProps = {\r\n      innerRadius: 0.1,\r\n      margins: 75,\r\n      axis: jsxRuntime.jsx(RadialAxis, {}, void 0),\r\n      series: jsxRuntime.jsx(RadialBarSeries, {}, void 0)\r\n  };\n\n  const RadialGaugeArc = ({ data, startAngle, endAngle, innerRadius, outerRadius, cornerRadius, padAngle, color, animated, disabled, fill, onClick, onMouseEnter, onMouseLeave, tooltip }) => {\r\n      /**\r\n       * This function will generate the arcs\r\n       * https://github.com/d3/d3-shape#arcs\r\n       */\r\n      const arcGenerator = react.useMemo(() => {\r\n          return d3Shape.arc()\r\n              .innerRadius(innerRadius)\r\n              .outerRadius(outerRadius)\r\n              .cornerRadius(cornerRadius);\r\n      }, [innerRadius, outerRadius, cornerRadius]);\r\n      const arcData = {\r\n          // @ts-ignore Data must be passed\r\n          data: data || {},\r\n          startAngle,\r\n          endAngle,\r\n          padAngle\r\n      };\r\n      return (jsxRuntime.jsxs(\"g\", { children: [fill && jsxRuntime.jsx(\"circle\", { fill: fill, r: outerRadius }, void 0),\r\n              jsxRuntime.jsx(PieArc, { arc: arcGenerator, data: arcData, animated: animated, color: color, disabled: disabled, tooltip: tooltip, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, void 0)] }, void 0));\r\n  };\r\n  RadialGaugeArc.defaultProps = {\r\n      cornerRadius: 0,\r\n      padAngle: 0,\r\n      padRadius: 0,\r\n      color: '#353d44',\r\n      animated: true,\r\n      disabled: false,\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined,\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0)\r\n  };\n\n  var css_248z$6 = \".RadialGaugeLabel-module_valueLabel__1WLmV {\\n  font-size: 14px;\\n  font-weight: 400;\\n  fill: var(--color-on-background);\\n  opacity: 0.6;\\n}\\n\";\n  var css$6 = {\"valueLabel\":\"RadialGaugeLabel-module_valueLabel__1WLmV\"};\n  styleInject(css_248z$6);\n\n  const RadialGaugeLabel = ({ data, className, offset, onClick = () => undefined }) => {\r\n      const label = formatValue(data.key);\r\n      return (jsxRuntime.jsx(\"text\", Object.assign({ x: \"0\", y: offset, textAnchor: \"middle\", \r\n          // This is only valid when placed below the chart\r\n          alignmentBaseline: 'text-after-edge', onClick: (nativeEvent) => onClick({ data, nativeEvent }), className: classNames__default['default'](className, css$6.valueLabel) }, { children: label }), void 0));\r\n  };\n\n  var css_248z$5 = \".RadialGaugeValueLabel-module_valueLabel__2IASh {\\n  font-size: 18px;\\n  font-weight: 400;\\n  fill: var(--color-on-background);\\n}\\n\";\n  var css$5 = {\"valueLabel\":\"RadialGaugeValueLabel-module_valueLabel__2IASh\"};\n  styleInject(css_248z$5);\n\n  const RadialGaugeValueLabel = ({ data, className }) => {\r\n      const ref = useCount({\r\n          to: data.data\r\n      });\r\n      return (jsxRuntime.jsx(\"text\", { dy: \"-0.5em\", x: \"0\", y: \"15\", textAnchor: \"middle\", className: classNames__default['default'](className, css$5.valueLabel), ref: ref }, void 0));\r\n  };\n\n  const RadialGaugeOuterArc = (props) => jsxRuntime.jsx(RadialGaugeArc, Object.assign({}, props), void 0);\r\n  RadialGaugeOuterArc.defaultProps = {\r\n      animated: false,\r\n      disabled: true\r\n  };\n\n  const RadialGaugeSeries = (_a) => {\r\n      var { data, scale, startAngle, endAngle, arcWidth, outerArc, innerArc, label, valueLabel, colorScheme, padding, minGaugeWidth } = _a, props = __rest(_a, [\"data\", \"scale\", \"startAngle\", \"endAngle\", \"arcWidth\", \"outerArc\", \"innerArc\", \"label\", \"valueLabel\", \"colorScheme\", \"padding\", \"minGaugeWidth\"]);\r\n      const { columns, width, height, xScale, yScale } = react.useMemo(() => {\r\n          let rows = 1;\r\n          let columns = data.length;\r\n          if (props.width / data.length < minGaugeWidth) {\r\n              while (props.width / columns < minGaugeWidth) {\r\n                  rows += 1;\r\n                  columns = Math.ceil(data.length / rows);\r\n              }\r\n          }\r\n          const xScale = d3Scale.scaleBand();\r\n          xScale.domain(d3Array.range(columns));\r\n          xScale.rangeRound([0, props.width], 0.1);\r\n          const yScale = d3Scale.scaleBand();\r\n          yScale.domain(d3Array.range(rows));\r\n          yScale.rangeRound([0, props.height], 0.1);\r\n          return {\r\n              columns,\r\n              xScale,\r\n              yScale,\r\n              width: xScale.bandwidth(),\r\n              height: yScale.bandwidth()\r\n          };\r\n      }, [data.length, minGaugeWidth, props.height, props.width]);\r\n      const renderGauge = react.useCallback((point, index) => {\r\n          const dataEndAngle = scale(point.data);\r\n          const outerRadius = d3Array.min([width - padding * 2, height - padding * 2]) / 2;\r\n          const innerRadius = outerRadius - arcWidth;\r\n          const labelOffset = height / 2;\r\n          const x = xScale(index % columns);\r\n          const y = yScale(Math.floor(index / columns));\r\n          const xOffset = x + width / 2;\r\n          const yOffset = y + height / 2;\r\n          return (jsxRuntime.jsxs(\"g\", Object.assign({ transform: `translate(${xOffset}, ${yOffset})` }, { children: [outerArc &&\r\n                      react.cloneElement(outerArc, {\r\n                          outerRadius,\r\n                          innerRadius,\r\n                          startAngle,\r\n                          endAngle\r\n                      }), innerArc &&\r\n                      react.cloneElement(innerArc, {\r\n                          outerRadius,\r\n                          innerRadius,\r\n                          startAngle,\r\n                          endAngle: dataEndAngle,\r\n                          data: point,\r\n                          color: getColor({\r\n                              data,\r\n                              colorScheme,\r\n                              point,\r\n                              index\r\n                          })\r\n                      }), valueLabel && react.cloneElement(valueLabel, { data: point }), label && react.cloneElement(label, { data: point, offset: labelOffset })] }), point.key.toLocaleString()));\r\n      }, [\r\n          arcWidth,\r\n          colorScheme,\r\n          columns,\r\n          data,\r\n          endAngle,\r\n          height,\r\n          innerArc,\r\n          label,\r\n          outerArc,\r\n          padding,\r\n          scale,\r\n          startAngle,\r\n          valueLabel,\r\n          width,\r\n          xScale,\r\n          yScale\r\n      ]);\r\n      return jsxRuntime.jsx(react.Fragment, { children: data.map(renderGauge) }, void 0);\r\n  };\r\n  RadialGaugeSeries.defaultProps = {\r\n      arcWidth: 5,\r\n      outerArc: jsxRuntime.jsx(RadialGaugeOuterArc, {}, void 0),\r\n      innerArc: jsxRuntime.jsx(RadialGaugeArc, {}, void 0),\r\n      label: jsxRuntime.jsx(RadialGaugeLabel, {}, void 0),\r\n      valueLabel: jsxRuntime.jsx(RadialGaugeValueLabel, {}, void 0),\r\n      colorScheme: ['#00ECB1'],\r\n      padding: 20,\r\n      minGaugeWidth: 50\r\n  };\n\n  var css_248z$4 = \".StackedRadialGaugeValueLabel-module_stackedValueLabel__1t9Tt {\\n  font-size: 18px;\\n  font-weight: 400;\\n  fill: var(--color-on-background);\\n}\\n\";\n  var css$4 = {\"stackedValueLabel\":\"StackedRadialGaugeValueLabel-module_stackedValueLabel__1t9Tt\"};\n  styleInject(css_248z$4);\n\n  const StackedRadialGaugeValueLabel = ({ label, className, yOffset }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: label && (jsxRuntime.jsx(\"text\", Object.assign({ x: \"0\", y: yOffset, textAnchor: \"middle\", alignmentBaseline: \"middle\", className: classNames__default['default'](className, css$4.stackedValueLabel) }, { children: label }), void 0)) }, void 0));\r\n  StackedRadialGaugeValueLabel.defaultProps = {\r\n      yOffset: 0\r\n  };\n\n  const StackedRadialGaugeSeries = ({ data, width, height, scale, startAngle, endAngle, outerArc, innerArc, label, supportingLabel, colorScheme, fillFactor, arcPadding }) => {\r\n      const radius = Math.min(width, height) / 2;\r\n      const innerRadius = radius * (1 - Math.min(fillFactor, 1));\r\n      const rAxis = d3Scale.scaleBand()\r\n          .domain(d3Array.range(data.length))\r\n          .range([innerRadius, radius])\r\n          .paddingInner(arcPadding);\r\n      const renderStackedGauges = react.useCallback((point, index) => {\r\n          const dataEndAngle = scale(point.data);\r\n          const outerRadius = rAxis(index);\r\n          const innerRadius = outerRadius - rAxis.bandwidth();\r\n          return (jsxRuntime.jsxs(\"g\", { children: [outerArc &&\r\n                      react.cloneElement(outerArc, {\r\n                          outerRadius,\r\n                          innerRadius,\r\n                          startAngle,\r\n                          endAngle\r\n                      }), innerArc &&\r\n                      react.cloneElement(innerArc, {\r\n                          outerRadius,\r\n                          innerRadius,\r\n                          startAngle,\r\n                          endAngle: dataEndAngle,\r\n                          data: point,\r\n                          color: getColor({\r\n                              data,\r\n                              colorScheme,\r\n                              point,\r\n                              index\r\n                          })\r\n                      })] }, point.key.toLocaleString()));\r\n      }, [rAxis, colorScheme, data, endAngle, innerArc, outerArc, scale, startAngle]);\r\n      return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(\"g\", Object.assign({ transform: `translate(${width / 2}, ${height / 2})` }, { children: [data.map(renderStackedGauges), supportingLabel, label] }), void 0) }, void 0));\r\n  };\r\n  StackedRadialGaugeSeries.defaultProps = {\r\n      outerArc: jsxRuntime.jsx(RadialGaugeArc, { disabled: true, animated: false }, void 0),\r\n      innerArc: jsxRuntime.jsx(RadialGaugeArc, { animated: true }, void 0),\r\n      label: jsxRuntime.jsx(StackedRadialGaugeValueLabel, {}, void 0),\r\n      colorScheme: ['#00ECB1'],\r\n      fillFactor: 0.2,\r\n      arcPadding: 0.15\r\n  };\n\n  var css_248z$3 = \".StackedRadialGaugeSupportingLabel-module_stackedSupportingLabel__2QsFu {\\n  font-size: 12px;\\n  font-weight: 400;\\n  fill: var(--color-on-background);\\n}\\n\";\n  var css$3 = {\"stackedSupportingLabel\":\"StackedRadialGaugeSupportingLabel-module_stackedSupportingLabel__2QsFu\"};\n  styleInject(css_248z$3);\n\n  const StackedRadialGaugeSupportingLabel = ({ label, className, yOffset }) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: label && (jsxRuntime.jsx(\"text\", Object.assign({ x: \"0\", y: yOffset - 20, textAnchor: \"middle\", alignmentBaseline: \"middle\", className: classNames__default['default'](className, css$3.stackedSupportingLabel) }, { children: label }), void 0)) }, void 0));\r\n  StackedRadialGaugeSupportingLabel.defaultProps = {\r\n      yOffset: 0\r\n  };\n\n  const RadialGauge = ({ id, width, height, margins, className, data, minValue, maxValue, startAngle, endAngle, series, containerClassName }) => {\r\n      const scale = d3Scale.scaleLinear()\r\n          .domain([minValue, maxValue])\r\n          .range([startAngle, endAngle]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, xAxisVisible: false, yAxisVisible: false, className: className, containerClassName: containerClassName }, { children: (props) => react.cloneElement(series, {\r\n              scale,\r\n              data,\r\n              startAngle,\r\n              endAngle,\r\n              width: props.width,\r\n              height: props.height\r\n          }) }), void 0));\r\n  };\r\n  RadialGauge.defaultProps = {\r\n      minValue: 0,\r\n      maxValue: 100,\r\n      startAngle: 0,\r\n      endAngle: Math.PI * 2,\r\n      series: jsxRuntime.jsx(RadialGaugeSeries, {}, void 0)\r\n  };\n\n  var css_248z$2 = \".HeatmapCell-module_cell__2iO3O {\\n  transition: stroke 150ms ease-in-out;\\n}\\n\";\n  var css$2 = {\"cell\":\"HeatmapCell-module_cell__2iO3O\"};\n  styleInject(css_248z$2);\n\n  // Set padding modifier for the tooltips\r\n  const modifiers = {\r\n      offset: {\r\n          offset: '0, 3px'\r\n      }\r\n  };\r\n  const HeatmapCell = (_a) => {\r\n      var { rx, ry, cursor, tooltip, onClick, onMouseEnter, onMouseLeave, data, animated, cellIndex, cellCount, fill, x, y, style, className } = _a, rest = __rest(_a, [\"rx\", \"ry\", \"cursor\", \"tooltip\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"data\", \"animated\", \"cellIndex\", \"cellCount\", \"fill\", \"x\", \"y\", \"style\", \"className\"]);\r\n      const [active, setActive] = react.useState(false);\r\n      const rect = react.useRef(null);\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              setActive(true);\r\n              onMouseEnter({\r\n                  value: data,\r\n                  nativeEvent: event\r\n              });\r\n          },\r\n          onPointerOut: (event) => {\r\n              setActive(false);\r\n              onMouseLeave({\r\n                  value: data,\r\n                  nativeEvent: event\r\n              });\r\n          }\r\n      });\r\n      const onMouseClick = (event) => {\r\n          onClick({\r\n              value: data,\r\n              nativeEvent: event\r\n          });\r\n      };\r\n      const tooltipData = react.useMemo(() => ({\r\n          y: data.value,\r\n          x: `${data.key} ∙ ${data.x}`,\r\n          data\r\n      }), [data]);\r\n      const transition = react.useMemo(() => {\r\n          if (animated) {\r\n              return Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: (cellIndex / cellCount) * 0.005 });\r\n          }\r\n          else {\r\n              return {\r\n                  type: false,\r\n                  delay: 0\r\n              };\r\n          }\r\n      }, [animated, cellIndex, cellCount]);\r\n      const extras = constructFunctionProps({ style, className }, data);\r\n      const isTransparent = fill === 'transparent';\r\n      const stroke = active && !isTransparent ? chroma__default['default'](fill).brighten(1) : fill;\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(\"g\", Object.assign({ ref: rect }, { children: jsxRuntime.jsx(framerMotion.motion.rect, Object.assign({}, rest, { fill: fill, stroke: stroke, x: x, y: y, rx: rx, ry: ry, style: Object.assign(Object.assign({}, extras.style), { cursor }), className: classNames__default['default'](css$2.cell, extras.className), initial: {\r\n                          opacity: 0\r\n                      }, animate: {\r\n                          opacity: 1\r\n                      }, exit: {\r\n                          opacity: 0\r\n                      }, transition: transition, onPointerOver: pointerOver, onPointerOut: pointerOut, onClick: onMouseClick }), void 0) }), void 0),\r\n              tooltip && !tooltip.props.disabled && !isTransparent && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: active, modifiers: tooltip.props.modifiers || modifiers, reference: rect, value: tooltipData }, void 0))] }, void 0));\r\n  };\r\n  HeatmapCell.defaultProps = {\r\n      rx: 2,\r\n      ry: 2,\r\n      cursor: 'auto',\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0),\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined\r\n  };\n\n  const getValueScale = (data, colorScheme, emptyColor) => {\r\n      const valueDomain = d3Array.extent(uniqueBy(data, (d) => d.data, (d) => d.value));\r\n      return (point) => {\r\n          // For 0 values, lets show a placeholder fill\r\n          if (point === undefined || point === null) {\r\n              return emptyColor;\r\n          }\r\n          return getColor({\r\n              scale: d3Scale.scaleQuantile,\r\n              domain: valueDomain,\r\n              key: point,\r\n              colorScheme\r\n          });\r\n      };\r\n  };\r\n  const HeatmapSeries = ({ animated, emptyColor, colorScheme, cell: cellElement, xScale, yScale, data, id }) => {\r\n      const valueScale = getValueScale(data, colorScheme, emptyColor);\r\n      const height = yScale.bandwidth();\r\n      const width = xScale.bandwidth();\r\n      const cellCount = [...yScale.domain(), ...xScale.domain()].length;\r\n      const renderCell = ({ row, cell, rowIndex, cellIndex, width, height, cellCount }) => {\r\n          const x = xScale(row.key);\r\n          const y = yScale(cell.x);\r\n          const fill = valueScale(cell.value);\r\n          return (jsxRuntime.jsx(rdk.CloneElement, { element: cellElement, animated: animated, cellIndex: rowIndex + cellIndex, cellCount: cellCount, x: x, y: y, fill: fill, width: width, height: height, data: cell }, `${id}-${rowIndex}-${cellIndex}`));\r\n      };\r\n      return (jsxRuntime.jsx(react.Fragment, { children: data.map((row, rowIndex) => row.data.map((cell, cellIndex) => renderCell({\r\n              height,\r\n              width,\r\n              valueScale,\r\n              cellCount,\r\n              row,\r\n              cell,\r\n              rowIndex,\r\n              cellIndex\r\n          }))) }, void 0));\r\n  };\r\n  HeatmapSeries.defaultProps = {\r\n      padding: 0.1,\r\n      animated: true,\r\n      emptyColor: 'rgba(200,200,200,0.08)',\r\n      colorScheme: ['rgba(28, 107, 86, 0.5)', '#2da283'],\r\n      cell: jsxRuntime.jsx(HeatmapCell, {}, void 0)\r\n  };\n\n  const Heatmap = ({ data, margins, series, yAxis, xAxis, secondaryAxis, id, width, height, className, containerClassName }) => {\r\n      const getScalesData = react.useCallback((chartHeight, chartWidth) => {\r\n          const nestedData = buildNestedChartData(data);\r\n          const xDomain = xAxis.props.domain || uniqueBy(nestedData, (d) => d.key);\r\n          const xScale = d3Scale.scaleBand()\r\n              .range([0, chartWidth])\r\n              .domain(xDomain)\r\n              .paddingInner(series.props.padding || 0.1);\r\n          const yDomain = yAxis.props.domain ||\r\n              uniqueBy(nestedData, (d) => d.data, (d) => d.x);\r\n          const yScale = d3Scale.scaleBand()\r\n              .domain(yDomain)\r\n              .range([chartHeight, 0])\r\n              .paddingInner(series.props.padding || 0.1);\r\n          return {\r\n              yScale,\r\n              xScale,\r\n              data: nestedData\r\n          };\r\n      }, [data, xAxis, yAxis, series]);\r\n      const renderChart = react.useCallback((containerProps) => {\r\n          const { chartWidth, chartHeight, updateAxes, id } = containerProps;\r\n          const { xScale, yScale, data: scalesData } = getScalesData(chartHeight, chartWidth);\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(rdk.CloneElement, { element: xAxis, height: chartHeight, width: chartWidth, scale: xScale, onDimensionsChange: (event) => updateAxes('horizontal', event) }, void 0),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: yAxis, height: chartHeight, width: chartWidth, scale: yScale, onDimensionsChange: (event) => updateAxes('vertical', event) }, void 0),\r\n                  secondaryAxis &&\r\n                      secondaryAxis.map((axis, i) => (jsxRuntime.jsx(rdk.CloneElement, { element: axis, height: chartHeight, width: chartWidth, onDimensionsChange: (event) => updateAxes('horizontal', event) }, i))),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: series, id: `heat-series-${id}`, data: scalesData, xScale: xScale, yScale: yScale }, void 0)] }, void 0));\r\n      }, [getScalesData, secondaryAxis, series, xAxis, yAxis]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, containerClassName: containerClassName, xAxisVisible: isAxisVisible(xAxis.props), yAxisVisible: isAxisVisible(yAxis.props), className: className }, { children: renderChart }), void 0));\r\n  };\r\n  Heatmap.defaultProps = {\r\n      data: [],\r\n      margins: 10,\r\n      series: jsxRuntime.jsx(HeatmapSeries, { padding: 0.3 }, void 0),\r\n      yAxis: (jsxRuntime.jsx(LinearYAxis, { type: \"category\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { line: null, label: jsxRuntime.jsx(LinearYAxisTickLabel, { padding: 5 }, void 0) }, void 0) }, void 0)),\r\n      xAxis: (jsxRuntime.jsx(LinearXAxis, { type: \"category\", axisLine: null, tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { line: null, label: jsxRuntime.jsx(LinearXAxisTickLabel, { padding: 5 }, void 0) }, void 0) }, void 0))\r\n  };\n\n  const getFirstOfMonth = (date) => new Date(date.getFullYear(), date.getMonth(), 1);\r\n  const addWeeksToDate = (date, weeks) => {\r\n      const d = new Date(date.getTime());\r\n      d.setDate(d.getDate() + weeks * 7);\r\n      return d;\r\n  };\r\n  const getStartOfDay = (date) => {\r\n      const d = new Date(date.getTime());\r\n      d.setHours(0, 0, 0, 0);\r\n      return d;\r\n  };\r\n  const getNewDayFromDay = (date, num) => {\r\n      const d = new Date(date.getTime());\r\n      d.setDate(d.getDate() + num);\r\n      return d;\r\n  };\r\n  const weekDays = (() => {\r\n      const base = new Date(Date.UTC(2017, 0, 2));\r\n      return d3Array.range(7).map(() => {\r\n          const name = base.toLocaleDateString('default', { weekday: 'short' });\r\n          base.setDate(base.getDate() + 1);\r\n          return name;\r\n      });\r\n  })();\r\n  const buildDataScales = (rawData, view) => {\r\n      var _a;\r\n      // Get the most recent date to get the range from\r\n      // From the end date, lets find the start year/month of that\r\n      // From that start year/month, lets find the end year/month for our bounds\r\n      const startDate = d3Array.min(rawData, (d) => d.key) || new Date();\r\n      const start = getFirstOfMonth(startDate);\r\n      const endDomain = view === 'year' ? 53 : 5;\r\n      const end = addWeeksToDate(start, endDomain);\r\n      // Base on the view type, swap out some ranges\r\n      const xDomainRange = view === 'year' ? 53 : 5;\r\n      // Build our x/y domains for days of week + number of weeks in year\r\n      const yDomain = d3Array.range(7).reverse();\r\n      const xDomain = d3Array.range(xDomainRange);\r\n      // Filter out dates that are not in the start/end ranges\r\n      // and turn them into something our chart can read\r\n      const dates = rawData\r\n          .filter((d) => d.key.getTime() > start.getTime() ||\r\n          d.key.getTime() < end.getTime())\r\n          .map((d) => ({\r\n          key: getStartOfDay(d.key),\r\n          data: d.data\r\n      }));\r\n      // Find the first day of the duration and subtract the delta\r\n      const firstDayOfStart = start.getDay();\r\n      const curDate = getNewDayFromDay(start, -firstDayOfStart);\r\n      const rows = [];\r\n      // Build out the dataset for the n duration\r\n      for (let week = 0; week < xDomainRange; week++) {\r\n          const row = {\r\n              key: week,\r\n              data: []\r\n          };\r\n          for (let day = 0; day <= 6; day++) {\r\n              const dayValue = dates.find((d) => d.key.getTime() === curDate.getTime());\r\n              row.data.push({\r\n                  key: day,\r\n                  data: (_a = dayValue === null || dayValue === void 0 ? void 0 : dayValue.data) !== null && _a !== void 0 ? _a : undefined,\r\n                  metadata: {\r\n                      date: new Date(curDate.getTime()),\r\n                      start: start,\r\n                      end: end\r\n                  }\r\n              });\r\n              curDate.setDate(curDate.getDate() + 1);\r\n          }\r\n          rows.push(row);\r\n      }\r\n      return {\r\n          data: rows,\r\n          yDomain,\r\n          xDomain,\r\n          start\r\n      };\r\n  };\n\n  // Format the xAxis label for the start + n week\r\n  const xAxisLabelFormat = (start) => (weeks) => addWeeksToDate(start, weeks).toLocaleString('default', { month: 'long' });\r\n  const CalendarHeatmap = (_a) => {\r\n      var { view, data } = _a, rest = __rest(_a, [\"view\", \"data\"]);\r\n      const { data: domainData, yDomain, xDomain, start } = react.useMemo(() => buildDataScales(data, view), [data, view]);\r\n      // For month, only pass 1 tick value\r\n      const xTickValues = view === 'year' ? undefined : [1];\r\n      // Get the yAxis label formatting based on view type\r\n      const yAxisLabelFormat = view === 'year' ? (d) => weekDays[d] : () => null;\r\n      return (jsxRuntime.jsx(Heatmap, Object.assign({}, rest, { data: domainData, yAxis: jsxRuntime.jsx(LinearYAxis, { type: \"category\", axisLine: null, domain: yDomain, tickSeries: jsxRuntime.jsx(LinearYAxisTickSeries, { tickSize: 20, line: null, label: jsxRuntime.jsx(LinearYAxisTickLabel, { padding: 5, format: yAxisLabelFormat }, void 0) }, void 0) }, void 0), xAxis: jsxRuntime.jsx(LinearXAxis, { type: \"category\", axisLine: null, domain: xDomain, tickSeries: jsxRuntime.jsx(LinearXAxisTickSeries, { line: null, tickValues: xTickValues, label: jsxRuntime.jsx(LinearXAxisTickLabel, { padding: 5, align: \"end\", format: xAxisLabelFormat(start) }, void 0) }, void 0) }, void 0) }), void 0));\r\n  };\r\n  CalendarHeatmap.defaultProps = {\r\n      view: 'year',\r\n      series: (jsxRuntime.jsx(HeatmapSeries, { padding: 0.3, emptyColor: \"transparent\", cell: jsxRuntime.jsx(HeatmapCell, { tooltip: jsxRuntime.jsx(ChartTooltip, { content: (d) => `${formatValue(d.data.metadata.date)} ∙ ${formatValue(d.data.value)}` }, void 0) }, void 0) }, void 0))\r\n  };\n\n  const LinearGaugeBar = (props) => (jsxRuntime.jsx(Bar, Object.assign({}, props), void 0));\r\n  LinearGaugeBar.defaultProps = {\r\n      tooltip: (jsxRuntime.jsx(ChartTooltip, { placement: \"top\", content: (data) => (jsxRuntime.jsx(TooltipTemplate, { value: { y: data.value, x: data.y } }, void 0)) }, void 0))\r\n  };\n\n  const LinearGaugeOuterBar = (_a) => {\r\n      var { height, width, fill } = _a, rest = __rest(_a, [\"height\", \"width\", \"fill\"]);\r\n      return (jsxRuntime.jsx(\"rect\", Object.assign({}, rest, { fill: fill, width: Math.max(width, 0), height: Math.max(height, 0) }), void 0));\r\n  };\r\n  LinearGaugeOuterBar.defaultProps = {\r\n      fill: '#484848'\r\n  };\n\n  const LinearGaugeSeries = (_a) => {\r\n      var { height, width, bar, outerBar, isMultiSeries } = _a, rest = __rest(_a, [\"height\", \"width\", \"bar\", \"outerBar\", \"isMultiSeries\"]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [!isMultiSeries && outerBar && (jsxRuntime.jsx(rdk.CloneElement, { element: outerBar, height: height, width: width }, void 0)),\r\n              jsxRuntime.jsx(BarSeries, Object.assign({}, rest, { layout: \"horizontal\", tooltip: null, bar: jsxRuntime.jsx(rdk.CloneElement, { element: bar }, void 0) }), void 0)] }, void 0));\r\n  };\r\n  LinearGaugeSeries.defaultProps = {\r\n      outerBar: jsxRuntime.jsx(LinearGaugeOuterBar, {}, void 0),\r\n      bar: jsxRuntime.jsx(LinearGaugeBar, {}, void 0)\r\n  };\n\n  const LinearGauge = ({ id, width, height, margins, className, containerClassName, series, data, minValue, maxValue }) => {\r\n      const transformedData = react.useMemo(() => {\r\n          if (Array.isArray(data)) {\r\n              return buildBarStackData([\r\n                  {\r\n                      key: 'default',\r\n                      data\r\n                  }\r\n              ], 'expand', 'horizontal');\r\n          }\r\n          else {\r\n              return buildShallowChartData([data], 'horizontal');\r\n          }\r\n      }, [data]);\r\n      const getScales = react.useCallback((isMultiSeries, data, width, height, minValue, maxValue) => {\r\n          const domain = !isMultiSeries ? [minValue, maxValue] : undefined;\r\n          const keyScale = getXScale({\r\n              width,\r\n              type: 'value',\r\n              data,\r\n              domain,\r\n              isMultiSeries\r\n          });\r\n          const valueScale = getYScale({\r\n              type: 'category',\r\n              height,\r\n              data,\r\n              isMultiSeries\r\n          });\r\n          return {\r\n              keyScale,\r\n              valueScale\r\n          };\r\n      }, []);\r\n      const renderChart = react.useCallback(({ chartHeight, chartWidth, id, chartSized }) => {\r\n          const isMultiSeries = Array.isArray(data);\r\n          const type = isMultiSeries ? 'stackedNormalized' : 'standard';\r\n          const { keyScale, valueScale } = getScales(isMultiSeries, transformedData, chartWidth, chartHeight, minValue, maxValue);\r\n          return (jsxRuntime.jsx(react.Fragment, { children: chartSized && (jsxRuntime.jsx(rdk.CloneElement, { element: series, id: `linear-gauge-series-${id}`, data: transformedData, isCategorical: true, xScale: keyScale, yScale: valueScale, type: type, height: chartHeight, width: chartWidth, isMultiSeries: isMultiSeries }, void 0)) }, void 0));\r\n      }, [data, getScales, maxValue, minValue, series, transformedData]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, className: className, containerClassName: containerClassName }, { children: renderChart }), void 0));\r\n  };\r\n  LinearGauge.defaultProps = {\r\n      minValue: 0,\r\n      maxValue: 100,\r\n      series: jsxRuntime.jsx(LinearGaugeSeries, {}, void 0)\r\n  };\n\n  const useInterpolate = ({ data, animated }) => {\r\n      const transition = animated\r\n          ? Object.assign({}, DEFAULT_TRANSITION) : {\r\n          delay: 0,\r\n          type: false\r\n      };\r\n      const d = framerMotion.useMotionValue(data.path);\r\n      const prevPath = framerMotion.useMotionValue(data.path);\r\n      const spring = framerMotion.useSpring(prevPath, {\r\n          from: 0,\r\n          to: 1\r\n      });\r\n      react.useEffect(() => {\r\n          const interpolator = d3Interpolate.interpolate(prevPath.get(), data.path);\r\n          spring.onChange((v) => d.set(interpolator(v)));\r\n          prevPath.set(data.path);\r\n      });\r\n      return { transition, d };\r\n  };\n\n  const VennArc = ({ data, fill, disabled, animated, stroke, mask, id, style, active, inactiveStyle, activeStyle, initialStyle, strokeWidth, gradient, tooltip, onClick, onMouseEnter, onMouseLeave }) => {\r\n      var _a, _b;\r\n      const [internalActive, setInternalActive] = react.useState(false);\r\n      const arcRef = react.useRef(null);\r\n      const { transition, d } = useInterpolate({ animated, data });\r\n      const currentStyle = active\r\n          ? activeStyle\r\n          : active === null\r\n              ? inactiveStyle\r\n              : initialStyle;\r\n      const arcFill = gradient && !mask\r\n          ? `url(#gradient-${id})`\r\n          : mask\r\n              ? `url(#mask-pattern-${id})`\r\n              : fill;\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              if (!disabled) {\r\n                  setInternalActive(true);\r\n                  onMouseEnter({\r\n                      value: data.data,\r\n                      nativeEvent: event\r\n                  });\r\n              }\r\n          },\r\n          onPointerOut: (event) => {\r\n              if (!disabled) {\r\n                  setInternalActive(false);\r\n                  onMouseLeave({\r\n                      value: data.data,\r\n                      nativeEvent: event\r\n                  });\r\n              }\r\n          }\r\n      });\r\n      return (jsxRuntime.jsxs(\"g\", Object.assign({ title: data.data.key, onPointerOver: pointerOver, onPointerOut: pointerOut, onClick: (event) => {\r\n              if (!disabled) {\r\n                  onClick({\r\n                      value: data.data,\r\n                      nativeEvent: event\r\n                  });\r\n              }\r\n          } }, { children: [jsxRuntime.jsx(framerMotion.motion.path, { ref: arcRef, fill: arcFill, id: `${id}-arc`, strokeWidth: strokeWidth, stroke: stroke, transition: transition, d: d, initial: initialStyle, animate: currentStyle, style: style }, void 0),\r\n              mask && (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Mask, { id: `mask-${id}`, fill: `url(#gradient-${id})` }, void 0),\r\n                      jsxRuntime.jsx(rdk.CloneElement, { element: mask, id: `mask-pattern-${id}`, fill: fill }, void 0)] }, void 0)),\r\n              gradient && (jsxRuntime.jsx(rdk.CloneElement, { element: gradient, id: `gradient-${id}`, color: fill }, void 0)),\r\n              tooltip && !tooltip.props.disabled && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: !!internalActive, reference: arcRef, value: { y: data.data.size, x: (_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.sets) === null || _b === void 0 ? void 0 : _b.join(' | ') } }, void 0))] }), void 0));\r\n  };\r\n  VennArc.defaultProps = {\r\n      active: false,\r\n      inactiveStyle: { opacity: 0.3 },\r\n      activeStyle: { opacity: 0.8 },\r\n      initialStyle: { opacity: 0.6 },\r\n      strokeWidth: 3,\r\n      gradient: jsxRuntime.jsx(Gradient, {}, void 0),\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0),\r\n      onClick: () => undefined,\r\n      onMouseEnter: () => undefined,\r\n      onMouseLeave: () => undefined\r\n  };\n\n  const VennLabel = ({ data, format, id, active, labelType, showAll, wrap, animated, fill, fontSize, fontFamily }) => {\r\n      var _a, _b, _c, _d, _e;\r\n      // If the text area is very large, then lets just skip showing the label\r\n      if (!showAll && !((_a = data.arcs) === null || _a === void 0 ? void 0 : _a.filter((a) => a.large).length)) {\r\n          return null;\r\n      }\r\n      const key = labelType === 'key' ? (_c = (_b = data.data) === null || _b === void 0 ? void 0 : _b.sets) === null || _c === void 0 ? void 0 : _c.join(' | ') : data.data.size;\r\n      const transition = animated ? DEFAULT_TRANSITION : { delay: 0, type: false };\r\n      const text = wrap\r\n          ? wrapText({\r\n              key,\r\n              x: data.text.x,\r\n              fontFamily,\r\n              fontSize,\r\n              width: (_e = (_d = data === null || data === void 0 ? void 0 : data.circles) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.radius\r\n          })\r\n          : key;\r\n      return (jsxRuntime.jsx(framerMotion.motion.text, Object.assign({ id: `${id}-text`, style: { pointerEvents: 'none', fontFamily, fontSize }, fill: fill, initial: {\r\n              attrX: data.text.x,\r\n              attrY: data.text.y,\r\n              opacity: 1\r\n          }, animate: {\r\n              attrX: data.text.x,\r\n              attrY: data.text.y,\r\n              opacity: active === null ? 0.3 : 1\r\n          }, transition: transition, textAnchor: \"middle\" }, { children: format ? format(data) : text }), void 0));\r\n  };\r\n  VennLabel.defaultProps = {\r\n      labelType: 'key',\r\n      showAll: false,\r\n      wrap: true,\r\n      animated: true,\r\n      fill: '#000',\r\n      fontSize: 11,\r\n      fontFamily: 'sans-serif'\r\n  };\n\n  const VennOuterLabel = ({ data, format, animated, fill, fontSize, fontFamily }) => {\r\n      const transition = animated ? DEFAULT_TRANSITION : { delay: 0, type: false };\r\n      const text = data.set.data.key;\r\n      const label = format ? format(data) : text;\r\n      const isElement = react.isValidElement(label);\r\n      const showIcon = isElement && data.set.icon;\r\n      // TODO: framer-motion doesn't seem to like the translates on the g\r\n      // initial={pos} animate={pos}\r\n      const pos = {\r\n          x: showIcon ? data.set.icon.x : data.set.text.x,\r\n          y: showIcon ? data.set.icon.y : data.set.text.y\r\n      };\r\n      return (jsxRuntime.jsx(react.Fragment, { children: isElement ? (jsxRuntime.jsx(\"g\", Object.assign({ style: { transform: `translate(${pos.x}px, ${pos.y}px)` } }, { children: label }), void 0)) : (jsxRuntime.jsx(framerMotion.motion.text, Object.assign({ fill: fill, style: { pointerEvents: 'none', fontFamily, fontSize }, textAnchor: data.set.align === 'middle' ? 'center' : data.set.align, alignmentBaseline: data.set.verticalAlign, initial: {\r\n                  attrX: pos.x,\r\n                  attrY: pos.y\r\n              }, animate: {\r\n                  attrX: pos.x,\r\n                  attrY: pos.y\r\n              }, transition: transition }, { children: label }), void 0)) }, void 0));\r\n  };\r\n  VennOuterLabel.defaultProps = {\r\n      animated: true,\r\n      fill: '#000',\r\n      fontSize: 14,\r\n      fontFamily: 'sans-serif'\r\n  };\n\n  const getSafeKey = (d) => { var _a, _b; return (_b = (_a = d.data) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.replace(' ', ''); };\r\n  const VennSeries = ({ data, id, selections, animated, disabled, colorScheme, outerLabel, arc, label }) => {\r\n      const transition = animated ? DEFAULT_TRANSITION : { type: false, delay: 0 };\r\n      const [actives, setActives] = react.useState([]);\r\n      const [hovered, setHovered] = react.useState(null);\r\n      const onActivate = react.useCallback((point) => {\r\n          setHovered(point);\r\n          setActives(data\r\n              .filter((d) => { var _a; return ((_a = d.data) === null || _a === void 0 ? void 0 : _a.key.indexOf(point)) > -1; })\r\n              .map((d) => { var _a; return (_a = d.data) === null || _a === void 0 ? void 0 : _a.key; }));\r\n      }, [data]);\r\n      const renderArc = react.useCallback((d, index) => {\r\n          var _a;\r\n          // Get the colors of the fill\r\n          const fill = getColor({\r\n              data,\r\n              colorScheme,\r\n              point: d.data,\r\n              index\r\n          });\r\n          const textFill = fill\r\n              ? invert__default['default'](chroma__default['default'](fill).darken(0.5).hex(), true)\r\n              : 'white';\r\n          const arcFill = arc.props.fill || fill;\r\n          const key = (_a = d === null || d === void 0 ? void 0 : d.data) === null || _a === void 0 ? void 0 : _a.key;\r\n          const safeKey = getSafeKey(d);\r\n          const isSelected = selections === null || selections === void 0 ? void 0 : selections.includes(key);\r\n          // Get the state of the arc\r\n          const isHovered = hovered === key || isSelected;\r\n          const isActive = isSelected ||\r\n              actives.includes(key) ||\r\n              (actives.length > 0 ? null : false);\r\n          // Get the colors for the stroke\r\n          const stroke = typeof arc.props.stroke === 'function'\r\n              ? // @ts-ignore\r\n                  arc.props.stroke(data, index, isActive, isHovered)\r\n              : arc.props.stroke;\r\n          const arcStroke = stroke ||\r\n              chroma__default['default'](arcFill)\r\n                  .darken(isActive ? 0.8 : 0.5)\r\n                  .hex();\r\n          return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(rdk.CloneElement, { element: arc, id: `${id}-${safeKey}`, data: d, fill: arcFill, stroke: arcStroke, disabled: disabled, animated: animated, active: isActive, onMouseEnter: () => onActivate(key), onMouseLeave: () => {\r\n                          setActives([]);\r\n                          setHovered(null);\r\n                      } }, void 0),\r\n                  label && (jsxRuntime.jsx(rdk.CloneElement, { element: label, data: d, id: `${id}-${safeKey}`, active: isActive, animated: animated, fill: textFill }, void 0)),\r\n                  d.set && outerLabel && (jsxRuntime.jsx(rdk.CloneElement, { element: outerLabel, data: d, animated: animated }, void 0))] }, safeKey));\r\n      }, [\r\n          data,\r\n          colorScheme,\r\n          arc,\r\n          selections,\r\n          hovered,\r\n          actives,\r\n          id,\r\n          disabled,\r\n          animated,\r\n          label,\r\n          outerLabel,\r\n          onActivate\r\n      ]);\r\n      const topArcs = react.useMemo(() => {\r\n          const result = [];\r\n          if (actives.length > 0) {\r\n              result.push(...actives.filter((s) => s !== hovered));\r\n          }\r\n          if (selections === null || selections === void 0 ? void 0 : selections.length) {\r\n              result.push(...selections.filter((s) => !actives.includes(s) && s !== hovered));\r\n          }\r\n          if (hovered) {\r\n              result.push(hovered);\r\n          }\r\n          return result;\r\n      }, [hovered, actives, selections]);\r\n      return (jsxRuntime.jsxs(framerMotion.motion.g, Object.assign({ initial: { opacity: 0, scale: 0 }, animate: { opacity: 1, scale: 1 }, transition: transition }, { children: [data.map(renderArc), topArcs.length > 0 &&\r\n                  topArcs.map((a) => (jsxRuntime.jsx(\"use\", { xlinkHref: `#${id}-${a}-arc`, style: { pointerEvents: 'none' } }, a))),\r\n              data.map((d, index) => (jsxRuntime.jsx(\"use\", { xlinkHref: `#${id}-${getSafeKey(d)}-text`, style: { pointerEvents: 'none' } }, index)))] }), void 0));\r\n  };\r\n  VennSeries.defaultProps = {\r\n      animated: true,\r\n      disabled: false,\r\n      colorScheme: 'cybertron',\r\n      outerLabel: jsxRuntime.jsx(VennOuterLabel, {}, void 0),\r\n      arc: jsxRuntime.jsx(VennArc, {}, void 0),\r\n      label: jsxRuntime.jsx(VennLabel, {}, void 0)\r\n  };\n\n  var sets$5 = [\n  ];\n  var intersections$5 = [\n  ];\n  var bb$5 = {\n  \tx: 0,\n  \ty: 0,\n  \twidth: 10,\n  \theight: 10\n  };\n  var venn0 = {\n  \tsets: sets$5,\n  \tintersections: intersections$5,\n  \tbb: bb$5\n  };\n\n  var sets$4 = [\n  \t{\n  \t\tcx: 0,\n  \t\tcy: 0,\n  \t\tr: 5,\n  \t\ttext: {\n  \t\t\tx: 3.5,\n  \t\t\ty: -4\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"bottom\"\n  \t}\n  ];\n  var intersections$4 = [\n  \t{\n  \t\tsets: [\n  \t\t\t0\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: 5,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -5,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 5,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 0\n  \t\t}\n  \t}\n  ];\n  var bb$4 = {\n  \tx: -5,\n  \ty: -5,\n  \twidth: 10,\n  \theight: 10\n  };\n  var venn1 = {\n  \tsets: sets$4,\n  \tintersections: intersections$4,\n  \tbb: bb$4\n  };\n\n  var sets$3 = [\n  \t{\n  \t\tcx: -4,\n  \t\tcy: 0,\n  \t\tr: 5,\n  \t\ttext: {\n  \t\t\tx: -7.5,\n  \t\t\ty: 4\n  \t\t},\n  \t\talign: \"end\",\n  \t\tverticalAlign: \"top\"\n  \t},\n  \t{\n  \t\tcx: 4,\n  \t\tcy: 0,\n  \t\tr: 5,\n  \t\ttext: {\n  \t\t\tx: 7.5,\n  \t\t\ty: -4\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"bottom\"\n  \t}\n  ];\n  var intersections$3 = [\n  \t{\n  \t\tsets: [\n  \t\t\t0\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: -3,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 3,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: true\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -3,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -4,\n  \t\t\ty: 0\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: 3,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -3,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: true\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 3,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 4,\n  \t\t\ty: 0\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: 3,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -3,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 3,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 0\n  \t\t}\n  \t}\n  ];\n  var bb$3 = {\n  \tx: -9,\n  \ty: -5,\n  \twidth: 18,\n  \theight: 10\n  };\n  var venn2 = {\n  \tsets: sets$3,\n  \tintersections: intersections$3,\n  \tbb: bb$3\n  };\n\n  var sets$2 = [\n  \t{\n  \t\tcx: -3.464,\n  \t\tcy: -2,\n  \t\tr: 5,\n  \t\ttext: {\n  \t\t\tx: -7,\n  \t\t\ty: -6\n  \t\t},\n  \t\talign: \"end\"\n  \t},\n  \t{\n  \t\tcx: 3.464,\n  \t\tcy: -2,\n  \t\tr: 5,\n  \t\ttext: {\n  \t\t\tx: 7,\n  \t\t\ty: -6\n  \t\t},\n  \t\talign: \"start\"\n  \t},\n  \t{\n  \t\tcx: 0,\n  \t\tcy: 4,\n  \t\tr: 5,\n  \t\ttext: {\n  \t\t\tx: 4,\n  \t\t\ty: 7.5\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"top\"\n  \t}\n  ];\n  var intersections$2 = [\n  \t{\n  \t\tsets: [\n  \t\t\t0\n  \t\t],\n  \t\tx1: -4.855,\n  \t\ty1: 2.803,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: -1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -5.606,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: -4.855,\n  \t\t\t\ty2: 2.803,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -4.216,\n  \t\t\ty: -2.434\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: -5.606,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: 4.855,\n  \t\t\t\ty2: 2.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -5.606,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 4.216,\n  \t\t\ty: -2.434\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2\n  \t\t],\n  \t\tx1: -4.855,\n  \t\ty1: 2.803,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 1.606,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 4.855,\n  \t\t\t\ty2: 2.803,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: -4.855,\n  \t\t\t\ty2: 2.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 4.869\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: -5.606,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: -1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: 1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -5.606,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: -2.404\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2\n  \t\t],\n  \t\tx1: -4.855,\n  \t\ty1: 2.803,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: -1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 1.606,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: -4.855,\n  \t\t\t\ty2: 2.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -2.082,\n  \t\t\ty: 1.202\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 4.855,\n  \t\ty1: 2.803,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: 1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 1.606,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: 4.855,\n  \t\t\t\ty2: 2.803,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.082,\n  \t\t\ty: 1.202\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 1.39,\n  \t\ty1: -0.803,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 0,\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 1.606,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 1,\n  \t\t\t\tx2: -1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tref: 2,\n  \t\t\t\tx2: 1.39,\n  \t\t\t\ty2: -0.803,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 0\n  \t\t}\n  \t}\n  ];\n  var bb$2 = {\n  \tx: -8.464,\n  \ty: -7,\n  \twidth: 16.928,\n  \theight: 16\n  };\n  var venn3 = {\n  \tsets: sets$2,\n  \tintersections: intersections$2,\n  \tbb: bb$2\n  };\n\n  var sets$1 = [\n  \t{\n  \t\tcx: 0.439,\n  \t\tcy: -1.061,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 45,\n  \t\ttext: {\n  \t\t\tx: 4.5,\n  \t\t\ty: -4.5\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"bottom\"\n  \t},\n  \t{\n  \t\tcx: 2.561,\n  \t\tcy: 1.061,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 45,\n  \t\ttext: {\n  \t\t\tx: 4,\n  \t\t\ty: 3.75\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"top\"\n  \t},\n  \t{\n  \t\tcx: -2.561,\n  \t\tcy: 1.061,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: -45,\n  \t\ttext: {\n  \t\t\tx: -4,\n  \t\t\ty: 3.7\n  \t\t},\n  \t\talign: \"end\",\n  \t\tverticalAlign: \"top\"\n  \t},\n  \t{\n  \t\tcx: -0.439,\n  \t\tcy: -1.061,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: -45,\n  \t\ttext: {\n  \t\t\tx: -4.5,\n  \t\t\ty: -4.5\n  \t\t},\n  \t\talign: \"end\",\n  \t\tverticalAlign: \"bottom\"\n  \t}\n  ];\n  var intersections$1 = [\n  \t{\n  \t\tsets: [\n  \t\t\t0\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: -3.94,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 4.328,\n  \t\t\t\ty2: -2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -3.94,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.914,\n  \t\t\ty: -3.536\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1\n  \t\t],\n  \t\tx1: 4.328,\n  \t\ty1: -2.828,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 5.006,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: true\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 1.328,\n  \t\t\t\ty2: 2.828\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 3.108,\n  \t\t\t\ty2: -0.328\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 4.328,\n  \t\t\t\ty2: -2.828\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 5.036,\n  \t\t\ty: -1.414\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: 5.006,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -4.328,\n  \t\t\t\ty2: -2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: true\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.108,\n  \t\t\t\ty2: -0.328\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.328,\n  \t\t\t\ty2: 2.828\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 5.006\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -5.036,\n  \t\t\ty: -1.414\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t3\n  \t\t],\n  \t\tx1: -4.328,\n  \t\ty1: -2.828,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -3.94,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -4.328,\n  \t\t\t\ty2: -2.828,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -2.914,\n  \t\t\ty: -3.536\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1\n  \t\t],\n  \t\tx1: 4.328,\n  \t\ty1: -2.828,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.108,\n  \t\t\t\ty2: -0.328,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 4.328,\n  \t\t\t\ty2: -2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 3.205,\n  \t\t\ty: -1.672\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2\n  \t\t],\n  \t\tx1: -1.328,\n  \t\ty1: 2.828,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.108,\n  \t\t\t\ty2: -0.328,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.328,\n  \t\t\t\ty2: 2.828,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -2.212,\n  \t\t\ty: 1.591\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: -3.94,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 0.188,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: -3.94,\n  \t\t\t\tsweep: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: -1.87\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 1.328,\n  \t\ty1: 2.828,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 5.006,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.328,\n  \t\t\t\ty2: 2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 2.346,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 1.328,\n  \t\t\t\ty2: 2.828\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 3.393\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 3.108,\n  \t\ty1: -0.328,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 1.328,\n  \t\t\t\ty2: 2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.108,\n  \t\t\t\ty2: -0.328,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.212,\n  \t\t\ty: 1.591\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: -3.108,\n  \t\ty1: -0.328,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -4.328,\n  \t\t\t\ty2: -2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.108,\n  \t\t\t\ty2: -0.328,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -3.205,\n  \t\t\ty: -1.672\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: 2.346,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.328,\n  \t\t\t\ty2: 2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 2.346,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -0.766,\n  \t\t\ty: 2.31\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 2.179,\n  \t\ty1: -1.858,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.108,\n  \t\t\t\ty2: -0.328,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 0.188,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tsweep: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 1.558,\n  \t\t\ty: -0.056\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: -0.969,\n  \t\ty1: 1.755,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.108,\n  \t\t\t\ty2: -0.328,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -2.179,\n  \t\t\t\ty2: -1.858,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 0.188,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.969,\n  \t\t\t\ty2: 1.755\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -1.558,\n  \t\t\ty: -0.056\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 1.328,\n  \t\ty1: 2.828,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 2.346,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 1.328,\n  \t\t\t\ty2: 2.828,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0.766,\n  \t\t\ty: 2.31\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 0,\n  \t\ty1: 0.188,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 2.346,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.969,\n  \t\t\t\ty2: 1.755,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0,\n  \t\t\t\ty2: 0.188,\n  \t\t\t\tsweep: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 1.43\n  \t\t}\n  \t}\n  ];\n  var bb$1 = {\n  \tx: -6.5,\n  \ty: -5,\n  \twidth: 13,\n  \theight: 10\n  };\n  var venn4 = {\n  \tsets: sets$1,\n  \tintersections: intersections$1,\n  \tbb: bb$1\n  };\n\n  var sets = [\n  \t{\n  \t\tcx: 0.5,\n  \t\tcy: -1,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 0,\n  \t\ttext: {\n  \t\t\tx: 2.25,\n  \t\t\ty: -5\n  \t\t},\n  \t\ticon: {\n  \t\t\tx: 0,\n  \t\t\ty: -6.3\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"bottom\"\n  \t},\n  \t{\n  \t\tcx: 1.106,\n  \t\tcy: 0.167,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 72,\n  \t\ttext: {\n  \t\t\tx: 4.5,\n  \t\t\ty: 1.5\n  \t\t},\n  \t\ticon: {\n  \t\t\tx: 6.2,\n  \t\t\ty: -1.9\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"top\"\n  \t},\n  \t{\n  \t\tcx: 0.183,\n  \t\tcy: 1.103,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 144,\n  \t\ticon: {\n  \t\t\tx: 3.2,\n  \t\t\ty: 6\n  \t\t},\n  \t\ttext: {\n  \t\t\tx: 4,\n  \t\t\ty: 4\n  \t\t},\n  \t\talign: \"start\",\n  \t\tverticalAlign: \"bottom\"\n  \t},\n  \t{\n  \t\tcx: -0.992,\n  \t\tcy: 0.515,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 216,\n  \t\ticon: {\n  \t\t\tx: -4.4,\n  \t\t\ty: 5.2\n  \t\t},\n  \t\ttext: {\n  \t\t\tx: -4.7,\n  \t\t\ty: 2\n  \t\t},\n  \t\talign: \"end\",\n  \t\tverticalAlign: \"bottom\"\n  \t},\n  \t{\n  \t\tcx: -0.797,\n  \t\tcy: -0.785,\n  \t\trx: 2.5,\n  \t\try: 5,\n  \t\trotation: 288,\n  \t\ticon: {\n  \t\t\tx: -6,\n  \t\t\ty: -2\n  \t\t},\n  \t\ttext: {\n  \t\t\tx: -4,\n  \t\t\ty: -3.6\n  \t\t},\n  \t\talign: \"end\",\n  \t\tverticalAlign: \"bottom\"\n  \t}\n  ];\n  var intersections = [\n  \t{\n  \t\tsets: [\n  \t\t\t0\n  \t\t],\n  \t\tx1: -1.653,\n  \t\ty1: -3.541,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.857,\n  \t\t\t\ty2: -2.666,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.5,\n  \t\t\t\ty2: -2.648,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.495,\n  \t\t\t\ty2: -3.303,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.653,\n  \t\t\t\ty2: -3.541\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0.5,\n  \t\t\ty: -5\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1\n  \t\t],\n  \t\tx1: 2.857,\n  \t\ty1: -2.666,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.419,\n  \t\t\t\ty2: 1.893,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 3.291,\n  \t\t\t\ty2: 1.559,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.988,\n  \t\t\t\ty2: -1.492,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.857,\n  \t\t\t\ty2: -2.666\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 4.91,\n  \t\t\ty: -1.07\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2\n  \t\t],\n  \t\tx1: 3.419,\n  \t\ty1: 1.893,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.744,\n  \t\t\t\ty2: 3.837,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.466,\n  \t\t\t\ty2: 3.612,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.342,\n  \t\t\t\ty2: 2.381,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 3.419,\n  \t\t\t\ty2: 1.893\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.534,\n  \t\t\ty: 4.339\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t3\n  \t\t],\n  \t\tx1: -0.744,\n  \t\ty1: 3.837,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.879,\n  \t\t\t\ty2: 0.478,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.579,\n  \t\t\t\ty2: 0.673,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.54,\n  \t\t\t\ty2: 2.963,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.744,\n  \t\t\t\ty2: 3.837\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -3.343,\n  \t\t\ty: 3.751\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t4\n  \t\t],\n  \t\tx1: -3.879,\n  \t\ty1: 0.478,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.653,\n  \t\t\t\ty2: -3.541,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.746,\n  \t\t\t\ty2: -3.196,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.294,\n  \t\t\t\ty2: -0.549,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.879,\n  \t\t\t\ty2: 0.478\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -4.601,\n  \t\t\ty: -2.021\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1\n  \t\t],\n  \t\tx1: 2.5,\n  \t\ty1: -2.648,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.857,\n  \t\t\t\ty2: -2.666,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.988,\n  \t\t\t\ty2: -1.492,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.572,\n  \t\t\t\ty2: -1.839,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.5,\n  \t\t\t\ty2: -2.648\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.741,\n  \t\t\ty: -2.152\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 2.342,\n  \t\ty1: 2.381,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.466,\n  \t\t\t\ty2: 3.612,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.257,\n  \t\t\t\ty2: 2.922,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.342,\n  \t\t\t\ty2: 2.381,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0.5,\n  \t\t\ty: 3.5\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t3\n  \t\t],\n  \t\tx1: -0.495,\n  \t\ty1: -3.303,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.5,\n  \t\t\t\ty2: -2.648,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 1.51,\n  \t\t\t\ty2: -2.515,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.495,\n  \t\t\t\ty2: -3.303,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 1.653,\n  \t\t\ty: -3.125\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -1.653,\n  \t\ty1: -3.541,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.495,\n  \t\t\t\ty2: -3.303,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.954,\n  \t\t\t\ty2: -3.015,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.746,\n  \t\t\t\ty2: -3.196,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.653,\n  \t\t\t\ty2: -3.541\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -1.199,\n  \t\t\ty: -3.272\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 3.291,\n  \t\ty1: 1.559,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.419,\n  \t\t\t\ty2: 1.893,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.342,\n  \t\t\t\ty2: 2.381,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.544,\n  \t\t\t\ty2: 1.878,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 3.291,\n  \t\t\t\ty2: 1.559\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.894,\n  \t\t\ty: 1.942\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t3\n  \t\t],\n  \t\tx1: -1.54,\n  \t\ty1: 2.963,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.579,\n  \t\t\t\ty2: 0.673,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -2.7,\n  \t\t\t\ty2: 1.147,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.54,\n  \t\t\t\ty2: 2.963,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -3.174,\n  \t\t\ty: 1.557\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t4\n  \t\t],\n  \t\tx1: 2.988,\n  \t\ty1: -1.492,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.291,\n  \t\t\t\ty2: 1.559,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.858,\n  \t\t\t\ty2: 0.659,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.988,\n  \t\t\t\ty2: -1.492,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 3.483,\n  \t\t\ty: 0.606\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: -0.466,\n  \t\ty1: 3.612,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.744,\n  \t\t\t\ty2: 3.837,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.54,\n  \t\t\t\ty2: 2.963,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1,\n  \t\t\t\ty2: 3,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.466,\n  \t\t\t\ty2: 3.612\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -0.953,\n  \t\t\ty: 3.352\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -3.294,\n  \t\ty1: -0.549,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.746,\n  \t\t\t\ty2: -3.196,\n  \t\t\t\tsweep: true\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.925,\n  \t\t\t\ty2: -2.213\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.294,\n  \t\t\t\ty2: -0.549\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -2.462,\n  \t\t\ty: -2.538\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -3.579,\n  \t\ty1: 0.673,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.879,\n  \t\t\t\ty2: 0.478,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.294,\n  \t\t\t\ty2: -0.549,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.162,\n  \t\t\t\ty2: -0.024,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.579,\n  \t\t\t\ty2: 0.673\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -3.483,\n  \t\t\ty: 0.13\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2\n  \t\t],\n  \t\tx1: 2.544,\n  \t\ty1: 1.878,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.342,\n  \t\t\t\ty2: 2.381,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.257,\n  \t\t\t\ty2: 2.922,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.983,\n  \t\t\t\ty2: 2.049,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.544,\n  \t\t\t\ty2: 1.878\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 1.457,\n  \t\t\ty: 2.331\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 1.51,\n  \t\ty1: -2.515,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.5,\n  \t\t\t\ty2: -2.648,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.572,\n  \t\t\t\ty2: -1.839,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 1.51,\n  \t\t\t\ty2: -2.515,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.194,\n  \t\t\ty: -2.334\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t4\n  \t\t],\n  \t\tx1: 2.572,\n  \t\ty1: -1.839,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.988,\n  \t\t\t\ty2: -1.492,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.858,\n  \t\t\t\ty2: 0.659,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.253,\n  \t\t\t\ty2: -0.302,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.572,\n  \t\t\t\ty2: -1.839\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.667,\n  \t\t\ty: -0.665\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 0.257,\n  \t\ty1: 2.922,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.466,\n  \t\t\t\ty2: 3.612,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1,\n  \t\t\t\ty2: 3,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.257,\n  \t\t\t\ty2: 2.922,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -0.403,\n  \t\t\ty: 3.178\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -1.746,\n  \t\ty1: -3.196,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.954,\n  \t\t\t\ty2: -3.015,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.925,\n  \t\t\t\ty2: -2.213,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.746,\n  \t\t\t\ty2: -3.196,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -1.542,\n  \t\t\ty: -2.808\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -0.495,\n  \t\ty1: -3.303,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 1.51,\n  \t\t\t\ty2: -2.515,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.409,\n  \t\t\t\ty2: -2.236,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -0.954,\n  \t\t\t\ty2: -3.015,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.495,\n  \t\t\t\ty2: -3.303\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0.192,\n  \t\t\ty: -2.742\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: -1.54,\n  \t\ty1: 2.963,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -2.7,\n  \t\t\t\ty2: 1.147,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.645,\n  \t\t\t\ty2: 1.568,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1,\n  \t\t\t\ty2: 3,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.54,\n  \t\t\t\ty2: 2.963\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -1.767,\n  \t\t\ty: 2.106\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t4\n  \t\t],\n  \t\tx1: 2.858,\n  \t\ty1: 0.659,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 3.291,\n  \t\t\t\ty2: 1.559,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.544,\n  \t\t\t\ty2: 1.878,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.858,\n  \t\t\t\ty2: 0.659,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.898,\n  \t\t\ty: 1.365\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -2.7,\n  \t\ty1: 1.147,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.579,\n  \t\t\t\ty2: 0.673,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.162,\n  \t\t\t\ty2: -0.024,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -2.7,\n  \t\t\t\ty2: 1.147,\n  \t\t\t\tlarge: false\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -3.147,\n  \t\t\ty: 0.599\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t2,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -3.294,\n  \t\ty1: -0.549,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.925,\n  \t\t\t\ty2: -2.213,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -2,\n  \t\t\t\ty2: -1.08,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -3.162,\n  \t\t\t\ty2: -0.024,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.294,\n  \t\t\t\ty2: -0.549\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -2.548,\n  \t\t\ty: -1.029\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t3\n  \t\t],\n  \t\tx1: 0.983,\n  \t\ty1: 2.049,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.257,\n  \t\t\t\ty2: 2.922,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1,\n  \t\t\t\ty2: 3,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.645,\n  \t\t\t\ty2: 1.568,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.983,\n  \t\t\t\ty2: 2.049\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -0.407,\n  \t\t\ty: 2.31\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t4\n  \t\t],\n  \t\tx1: 2.253,\n  \t\ty1: -0.302,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.858,\n  \t\t\t\ty2: 0.659,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.544,\n  \t\t\t\ty2: 1.878,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.983,\n  \t\t\t\ty2: 2.049,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 2.253,\n  \t\t\t\ty2: -0.302\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 2.071,\n  \t\t\ty: 1.101\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: 1.51,\n  \t\ty1: -2.515,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.572,\n  \t\t\t\ty2: -1.839,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.253,\n  \t\t\t\ty2: -0.302,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: 0.409,\n  \t\t\t\ty2: -2.236,\n  \t\t\t\tsweep: false,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 1.51,\n  \t\t\t\ty2: -2.515,\n  \t\t\t\tsweep: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 1.687,\n  \t\t\ty: -1.63\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t2,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -2,\n  \t\ty1: -1.08,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.925,\n  \t\t\t\ty2: -2.213,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -0.954,\n  \t\t\t\ty2: -3.015,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.409,\n  \t\t\t\ty2: -2.236,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -2,\n  \t\t\t\ty2: -1.08\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -1.028,\n  \t\t\ty: -2.108\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: -1.645,\n  \t\ty1: 1.568,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -2.7,\n  \t\t\t\ty2: 1.147,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -3.162,\n  \t\t\t\ty2: -0.024,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -2,\n  \t\t\t\ty2: -1.08,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"o\",\n  \t\t\t\tx2: -1.645,\n  \t\t\t\ty2: 1.568\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: -2.323,\n  \t\t\ty: 0.327\n  \t\t}\n  \t},\n  \t{\n  \t\tsets: [\n  \t\t\t0,\n  \t\t\t1,\n  \t\t\t2,\n  \t\t\t3,\n  \t\t\t4\n  \t\t],\n  \t\tx1: 0.409,\n  \t\ty1: -2.236,\n  \t\tarcs: [\n  \t\t\t{\n  \t\t\t\tref: 2,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 2.253,\n  \t\t\t\ty2: -0.302,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 3,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.983,\n  \t\t\t\ty2: 2.049,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 4,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -1.645,\n  \t\t\t\ty2: 1.568,\n  \t\t\t\tsweep: true,\n  \t\t\t\tlarge: false\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 0,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: -2,\n  \t\t\t\ty2: -1.08,\n  \t\t\t\tsweep: true\n  \t\t\t},\n  \t\t\t{\n  \t\t\t\tref: 1,\n  \t\t\t\tmode: \"i\",\n  \t\t\t\tx2: 0.409,\n  \t\t\t\ty2: -2.236,\n  \t\t\t\tsweep: true\n  \t\t\t}\n  \t\t],\n  \t\ttext: {\n  \t\t\tx: 0,\n  \t\t\ty: 0\n  \t\t}\n  \t}\n  ];\n  var bb = {\n  \tx: -5.5,\n  \ty: -6,\n  \twidth: 11.6,\n  \theight: 11.8\n  };\n  var venn5 = {\n  \tsets: sets,\n  \tintersections: intersections,\n  \tbb: bb\n  };\n\n  // Static shapes for rendering\r\n  const shapes = [venn0, venn1, venn2, venn3, venn4, venn5];\r\n  /**\r\n   * Sort helper.\r\n   * Reference: https://stackoverflow.com/a/64449554/1288340\r\n   */\r\n  const upto = (limit) => Array.from({ length: limit }, (_, i) => i);\r\n  /**\r\n   * Detect ellipse.\r\n   * Reference: https://github.com/upsetjs/chartjs-chart-venn/blob/master/src/model/generate.ts#L4\r\n   */\r\n  function isEllipse(d) {\r\n      return typeof d.rx === 'number';\r\n  }\r\n  /**\r\n   * Generate all combinations of a given array.\r\n   * Reference: https://stackoverflow.com/questions/5752002/find-all-possible-subset-combos-in-an-array\r\n   */\r\n  function combinations(array) {\r\n      return new Array(1 << array.length)\r\n          .fill()\r\n          .map((_e1, i) => array.filter((_e2, j) => i & (1 << j)));\r\n  }\r\n  /**\r\n   * Given a array set, lookup the data.\r\n   */\r\n  function lookup(combo, data) {\r\n      const key = combo.join('|');\r\n      const found = data.find((d) => d.key === key);\r\n      return {\r\n          key,\r\n          sets: combo,\r\n          size: (found === null || found === void 0 ? void 0 : found.size) || 0\r\n      };\r\n  }\r\n  /**\r\n   * Build the data combinations for the layout.\r\n   */\r\n  function buildData(data) {\r\n      // Collect all unique sets and sort by size\r\n      const uniqueSets = data\r\n          .filter((d) => d.sets.length === 1)\r\n          .sort((a, b) => b.size - a.size);\r\n      // Map our unique sets\r\n      const uniqueSetKeys = uniqueSets.map((u) => u.key);\r\n      // Build all combos and return 1+ combos\r\n      const sets = combinations(uniqueSetKeys);\r\n      const filteredSets = sets.slice(1, sets.length);\r\n      // Sort the child sets based on the parent\r\n      const result = filteredSets.map((d) => [...d].sort((a, b) => uniqueSetKeys.indexOf(a) - uniqueSetKeys.indexOf(b)));\r\n      // Sort the data based on index of keys and length\r\n      // Reference: https://stackoverflow.com/a/64449554/1288340\r\n      result.sort((a, b) => a.length - b.length ||\r\n          upto(a.length).reduce((diff, i) => diff || uniqueSetKeys.indexOf(a[i]) - uniqueSetKeys.indexOf(b[i]), 0));\r\n      // reshape the data key so they will match combos\r\n      const keyedData = data.map((d) => {\r\n          const sets = [...d.sets].sort((a, b) => uniqueSetKeys.indexOf(a) - uniqueSetKeys.indexOf(b));\r\n          const key = sets.join('|');\r\n          return {\r\n              size: d.size,\r\n              sets,\r\n              key\r\n          };\r\n      });\r\n      return {\r\n          uniqueCount: uniqueSets.length,\r\n          data: result.map((r) => lookup(r, keyedData))\r\n      };\r\n  }\r\n  /**\r\n   * Generate the arc slice path.\r\n   * Reference: https://github.com/upsetjs/chartjs-chart-venn/blob/master/src/model/generate.ts#L4\r\n   */\r\n  function generateArcSlicePath(s, refs) {\r\n      return `M ${s.x1},${s.y1} ${s.arcs\r\n        .map((arc) => {\r\n        const ref = refs[arc.ref];\r\n        const rx = isEllipse(ref) ? ref.rx : ref.r;\r\n        const ry = isEllipse(ref) ? ref.ry : ref.r;\r\n        const rot = isEllipse(ref) ? ref.rotation : 0;\r\n        return `A ${rx} ${ry} ${rot} ${arc.large ? 1 : 0} ${arc.sweep ? 1 : 0} ${arc.x2} ${arc.y2}`;\r\n    })\r\n        .join(' ')}`;\r\n  }\r\n  /**\r\n   * Build the layout for the given chart.\r\n   * Reference: https://github.com/upsetjs/chartjs-chart-venn/blob/master/src/model/generate.ts#L4\r\n   */\r\n  function buildLayout({ data, uniqueCount }, box) {\r\n      const shape = shapes[Math.min(shapes.length - 1, uniqueCount)];\r\n      const f = Math.min(box.width / shape.bb.width, box.height / shape.bb.height);\r\n      const x = f * -shape.bb.x + (box.width - f * shape.bb.width) / 2 + 0;\r\n      const y = f * -shape.bb.y + (box.height - f * shape.bb.height) / 2 + 0;\r\n      const mx = (v) => x + f * v;\r\n      const my = (v) => y + f * v;\r\n      const shapeSets = shape.sets.map((c, i) => (Object.assign(Object.assign(Object.assign({}, c), Object.assign({ data: data[i], cx: mx(c.cx), cy: my(c.cy), text: {\r\n              x: mx(c.text.x),\r\n              y: my(c.text.y)\r\n          } }, (c.icon\r\n          ? {\r\n              icon: {\r\n                  x: mx(c.icon.x),\r\n                  y: my(c.icon.y)\r\n              }\r\n          }\r\n          : {}))), (isEllipse(c)\r\n          ? {\r\n              rx: c.rx * f,\r\n              ry: c.ry * f\r\n          }\r\n          : {\r\n              r: c.r * f\r\n          }))));\r\n      const intersections = shape.intersections.map((c, i) => ({\r\n          text: {\r\n              x: mx(c.text.x),\r\n              y: my(c.text.y)\r\n          },\r\n          x1: mx(c.x1),\r\n          y1: my(c.y1),\r\n          data: data[i],\r\n          set: shapeSets[i],\r\n          arcs: c.arcs.map((a) => (Object.assign(Object.assign({}, a), { x2: mx(a.x2), y2: my(a.y2) })))\r\n      }));\r\n      return intersections.map((i) => (Object.assign(Object.assign({}, i), { path: generateArcSlicePath(i, shapeSets) })));\r\n  }\r\n  /**\r\n   * Generate the star euler layout.\r\n   * Adapted from: https://github.com/upsetjs/chartjs-chart-venn\r\n   */\r\n  function starEulerLayout(data, bb) {\r\n      return buildLayout(buildData(data), bb);\r\n  }\n\n  const VennDiagram = ({ id, type, width, height, margins, className, containerClassName, data, disabled, series }) => {\r\n      const renderChart = react.useCallback((containerProps) => {\r\n          const normalized = data.map((d) => ({\r\n              key: d.key.join('|'),\r\n              sets: d.key,\r\n              size: d.data\r\n          }));\r\n          let layoutData;\r\n          if (type === 'starEuler') {\r\n              layoutData = starEulerLayout(normalized, {\r\n                  height: containerProps.height,\r\n                  width: containerProps.width\r\n              });\r\n          }\r\n          else {\r\n              layoutData = venn_js.layout(normalized, {\r\n                  height: containerProps.height,\r\n                  width: containerProps.width,\r\n                  distinct: type !== 'euler'\r\n              });\r\n          }\r\n          return (jsxRuntime.jsx(rdk.CloneElement, { element: series, data: layoutData, disabled: disabled, id: containerProps.id }, void 0));\r\n      }, [data, disabled, series, type]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, margins: margins, containerClassName: containerClassName, xAxisVisible: false, yAxisVisible: false, center: false, className: className }, { children: renderChart }), void 0));\r\n  };\r\n  VennDiagram.defaultProps = {\r\n      type: 'venn',\r\n      series: jsxRuntime.jsx(VennSeries, {}, void 0)\r\n  };\n\n  const Bubble = ({ id, data, fill, mask, gradient, onClick, onMouseEnter, onMouseLeave, animated, tooltip = jsxRuntime.jsx(ChartTooltip, {}, void 0) }) => {\r\n      const [internalActive, setInternalActive] = react.useState(false);\r\n      const bubbleRef = react.useRef(null);\r\n      const transition = animated ? DEFAULT_TRANSITION : { type: false, delay: 0 };\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              setInternalActive(true);\r\n              onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(event);\r\n          },\r\n          onPointerOut: (event) => {\r\n              setInternalActive(false);\r\n              onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);\r\n          }\r\n      });\r\n      const arcFill = gradient && !mask\r\n          ? `url(#gradient-${id})`\r\n          : mask\r\n              ? `url(#mask-pattern-${id})`\r\n              : fill;\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(framerMotion.motion.circle, { id: `${id}-bubble`, ref: bubbleRef, fill: arcFill, initial: {\r\n                      r: data.r,\r\n                      cx: data.x,\r\n                      cy: data.y\r\n                  }, animate: {\r\n                      r: data.r,\r\n                      cx: data.x,\r\n                      cy: data.y\r\n                  }, transition: transition, onClick: onClick, onPointerOver: pointerOver, onPointerOut: pointerOut }, void 0),\r\n              mask && (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Mask, { id: `mask-${id}`, fill: `url(#gradient-${id})` }, void 0),\r\n                      jsxRuntime.jsx(rdk.CloneElement, { element: mask, id: `mask-pattern-${id}`, fill: fill }, void 0)] }, void 0)),\r\n              gradient && (jsxRuntime.jsx(rdk.CloneElement, { element: gradient, id: `gradient-${id}`, color: fill }, void 0)),\r\n              tooltip && !tooltip.props.disabled && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: !!internalActive, reference: bubbleRef, value: { y: data.data.data, x: data.data.key } }, void 0))] }, void 0));\r\n  };\n\n  const BubbleLabel = ({ id, data, format, wrap = true, fill = '#000', fontSize = 14, fontFamily = 'sans-serif', animated }) => {\r\n      const transition = animated ? DEFAULT_TRANSITION : { type: false, delay: 0 };\r\n      let isElement = false;\r\n      let label;\r\n      if (format) {\r\n          label = format(data);\r\n          isElement = react.isValidElement(label);\r\n      }\r\n      if (!isElement) {\r\n          const text = wrap\r\n              ? wrapText({\r\n                  key: data.data.key,\r\n                  fontFamily,\r\n                  fontSize,\r\n                  width: data.r\r\n              })\r\n              : data.data.key;\r\n          return (jsxRuntime.jsx(framerMotion.motion.text, Object.assign({ initial: {\r\n                  x: data.x,\r\n                  y: data.y\r\n              }, animate: {\r\n                  x: data.x,\r\n                  y: data.y\r\n              }, transition: transition, id: `${id}-text`, style: { pointerEvents: 'none', fontFamily, fontSize }, fill: fill, textAnchor: \"middle\" }, { children: text }), void 0));\r\n      }\r\n      return (jsxRuntime.jsx(\"g\", Object.assign({ style: { transform: `translate(${data.x}px, ${data.y}px)` } }, { children: label }), void 0));\r\n  };\n\n  const BubbleSeries = ({ id, data, colorScheme, animated, bubble, label }) => {\r\n      const transition = animated ? DEFAULT_TRANSITION : { type: false, delay: 0 };\r\n      const renderBubble = (item, index) => {\r\n          const fill = getColor({\r\n              data,\r\n              colorScheme,\r\n              point: item.data,\r\n              index\r\n          });\r\n          const textFill = fill\r\n              ? invert__default['default'](chroma__default['default'](fill).darken(0.5).hex(), true)\r\n              : 'white';\r\n          return (jsxRuntime.jsxs(framerMotion.motion.g, Object.assign({ initial: {\r\n                  scale: 0.5,\r\n                  opacity: 0\r\n              }, animate: {\r\n                  scale: 1,\r\n                  opacity: 1\r\n              }, transition: transition }, { children: [jsxRuntime.jsx(rdk.CloneElement, { element: bubble, id: `${id}-bubble`, animated: animated, data: item, fill: fill }, void 0),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: label, id: `${id}-label`, animated: animated, data: item, fill: textFill }, void 0)] }), item.data.key));\r\n      };\r\n      return jsxRuntime.jsx(react.Fragment, { children: data.map(renderBubble) }, void 0);\r\n  };\r\n  BubbleSeries.defaultProps = {\r\n      colorScheme: 'cybertron',\r\n      animated: true,\r\n      bubble: jsxRuntime.jsx(Bubble, {}, void 0),\r\n      label: jsxRuntime.jsx(BubbleLabel, {}, void 0)\r\n  };\n\n  const BubbleChart = ({ data, id, width, height, className, containerClassName, margins, series }) => {\r\n      const getData = react.useCallback((cw, ch) => {\r\n          const bubble = d3Hierarchy.pack().size([cw, ch]).padding(3);\r\n          const root = d3Hierarchy.hierarchy({ children: data })\r\n              .sum((d) => d.data)\r\n              .sort((a, b) => b.data - a.data);\r\n          return bubble(root).leaves();\r\n      }, [data]);\r\n      const renderChart = react.useCallback((_a) => {\r\n          var { chartWidth, chartHeight } = _a, rest = __rest(_a, [\"chartWidth\", \"chartHeight\"]);\r\n          const circles = getData(chartWidth, chartHeight);\r\n          return (jsxRuntime.jsx(rdk.CloneElement, { element: series, id: `${rest.id}-series`, data: circles }, void 0));\r\n      }, [series, getData]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, containerClassName: containerClassName, margins: margins, xAxisVisible: false, yAxisVisible: false, className: className }, { children: renderChart }), void 0));\r\n  };\r\n  BubbleChart.defaultProps = {\r\n      data: [],\r\n      margins: 10,\r\n      series: jsxRuntime.jsx(BubbleSeries, {}, void 0)\r\n  };\n\n  const TreeMapLabel = ({ id, data, fill, wrap, placement, fontSize, fontFamily }) => {\r\n      const key = data.data.key;\r\n      const width = data.x1 - data.x0;\r\n      const size = calculateDimensions(key, fontFamily, fontSize);\r\n      const text = wrapText({\r\n          key,\r\n          fontFamily,\r\n          fontSize,\r\n          paddingX: 10,\r\n          wrap,\r\n          paddingY: 10,\r\n          width,\r\n          height: data.y1 - data.y0\r\n      });\r\n      const offsetX = placement === 'start'\r\n          ? 10\r\n          : placement === 'middle'\r\n              ? (width - size.width) / 2\r\n              : width - size.width - 10;\r\n      return (jsxRuntime.jsx(\"g\", Object.assign({ style: { transform: `translate(${offsetX}px, 15px)` } }, { children: jsxRuntime.jsx(\"text\", Object.assign({ id: `${id}-text`, style: { pointerEvents: 'none', fontFamily, fontSize }, fill: fill }, { children: text }), void 0) }), void 0));\r\n  };\r\n  TreeMapLabel.defaultProps = {\r\n      fill: '#FFF',\r\n      wrap: true,\r\n      fontSize: 14,\r\n      fontFamily: 'sans-serif',\r\n      placement: 'start'\r\n  };\n\n  const TreeMapRect = ({ data, fill, animated, cursor, tooltip, onMouseEnter, onMouseLeave, onClick }) => {\r\n      const [internalActive, setInternalActive] = react.useState(false);\r\n      const rectRef = react.useRef(null);\r\n      const transition = animated ? DEFAULT_TRANSITION : { type: false, delay: 0 };\r\n      const currentFill = internalActive ? chroma__default['default'](fill).darken(0.8).hex() : fill;\r\n      const { pointerOut, pointerOver } = useHoverIntent({\r\n          onPointerOver: (event) => {\r\n              setInternalActive(true);\r\n              onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(event, data);\r\n          },\r\n          onPointerOut: (event) => {\r\n              setInternalActive(false);\r\n              onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event, data);\r\n          }\r\n      });\r\n      const tooltipLabel = react.useMemo(() => {\r\n          const getKey = (node) => {\r\n              if (!node.parent) {\r\n                  return [];\r\n              }\r\n              return [...getKey(node.parent), node.data.key];\r\n          };\r\n          return getKey(data).join(' -> ');\r\n      }, [data]);\r\n      return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(framerMotion.motion.rect, { ref: rectRef, initial: {\r\n                      fill: currentFill,\r\n                      width: data.x1 - data.x0,\r\n                      height: data.y1 - data.y0\r\n                  }, animate: {\r\n                      fill: currentFill,\r\n                      width: data.x1 - data.x0,\r\n                      height: data.y1 - data.y0\r\n                  }, style: { cursor }, transition: transition, onClick: (event) => {\r\n                      onClick === null || onClick === void 0 ? void 0 : onClick(event, data);\r\n                  }, onPointerOver: pointerOver, onPointerOut: pointerOut }, void 0),\r\n              tooltip && !tooltip.props.disabled && (jsxRuntime.jsx(rdk.CloneElement, { element: tooltip, visible: !!internalActive, reference: rectRef, value: { y: data.value, x: tooltipLabel } }, void 0))] }, void 0));\r\n  };\r\n  TreeMapRect.defaultProps = {\r\n      cursor: 'pointer',\r\n      tooltip: jsxRuntime.jsx(ChartTooltip, {}, void 0)\r\n  };\n\n  const TreeMapSeries = ({ id, data, colorScheme, animated, rect, label }) => {\r\n      const transition = animated ? DEFAULT_TRANSITION : { type: false, delay: 0 };\r\n      const renderItem = (item, index) => {\r\n          const fill = getColor({\r\n              data,\r\n              colorScheme,\r\n              point: item.data,\r\n              index\r\n          });\r\n          const textFill = fill\r\n              ? invert__default['default'](chroma__default['default'](fill).darken(0.5).hex(), true)\r\n              : 'white';\r\n          return (jsxRuntime.jsxs(framerMotion.motion.g, Object.assign({ initial: {\r\n                  scale: 0.5,\r\n                  opacity: 0,\r\n                  x: item.x0,\r\n                  y: item.y0\r\n              }, animate: {\r\n                  scale: 1,\r\n                  opacity: 1,\r\n                  x: item.x0,\r\n                  y: item.y0\r\n              }, transition: transition }, { children: [jsxRuntime.jsx(rdk.CloneElement, { element: rect, id: `${id}-${item.data.key}-rect`, animated: animated, data: item, fill: fill }, void 0),\r\n                  jsxRuntime.jsx(rdk.CloneElement, { element: label, id: `${id}-${item.data.key}-label`, data: item, fill: textFill }, void 0)] }), item.data.key));\r\n      };\r\n      return jsxRuntime.jsx(react.Fragment, { children: data.map((d, index) => renderItem(d, index)) }, void 0);\r\n  };\r\n  TreeMapSeries.defaultProps = {\r\n      colorScheme: 'cybertron',\r\n      animated: true,\r\n      rect: jsxRuntime.jsx(TreeMapRect, {}, void 0),\r\n      label: jsxRuntime.jsx(TreeMapLabel, {}, void 0)\r\n  };\n\n  const TreeMap = ({ data, id, containerClassName, paddingInner, paddingTop, paddingOuter, width, height, className, margins, series }) => {\r\n      const getData = react.useCallback((cw, ch) => {\r\n          const root = d3Hierarchy.hierarchy({ data: data }, (d) => d.data)\r\n              .sum((d) => d.data)\r\n              .sort((a, b) => b.data - a.data);\r\n          const t = d3Hierarchy.treemap()\r\n              .size([cw, ch])\r\n              .tile(d3Hierarchy.treemapSquarify)\r\n              .round(true)\r\n              .paddingInner(paddingInner)\r\n              .paddingOuter(paddingOuter)\r\n              .paddingTop(paddingTop);\r\n          const tree = t(root);\r\n          const nodes = [];\r\n          const getAllNodes = (node) => {\r\n              if (node === null || node === void 0 ? void 0 : node.parent) {\r\n                  // Don't add root node\r\n                  nodes.push(node);\r\n              }\r\n              for (let child of (node === null || node === void 0 ? void 0 : node.children) || []) {\r\n                  getAllNodes(child);\r\n              }\r\n          };\r\n          getAllNodes(tree);\r\n          return nodes;\r\n      }, [data, paddingInner, paddingOuter, paddingTop]);\r\n      const renderChart = react.useCallback((_a) => {\r\n          var { chartWidth, chartHeight } = _a, rest = __rest(_a, [\"chartWidth\", \"chartHeight\"]);\r\n          const datas = getData(chartWidth, chartHeight);\r\n          return (jsxRuntime.jsx(rdk.CloneElement, Object.assign({ element: series }, rest, { id: `${id || rest.id}-series`, data: datas }), void 0));\r\n      }, [series, getData, id]);\r\n      return (jsxRuntime.jsx(ChartContainer, Object.assign({ id: id, width: width, height: height, containerClassName: containerClassName, margins: margins, xAxisVisible: false, yAxisVisible: false, className: className }, { children: renderChart }), void 0));\r\n  };\r\n  TreeMap.defaultProps = {\r\n      margins: 0,\r\n      paddingInner: 5,\r\n      paddingOuter: 5,\r\n      paddingTop: 30,\r\n      series: jsxRuntime.jsx(TreeMapSeries, {}, void 0),\r\n      data: []\r\n  };\n\n  var css_248z$1 = \".BarListSeries-module_item__1fb4J {\\n  margin-bottom: 5px;\\n  align-items: center;\\n  display: grid;\\n  grid-column-gap: 5px;\\n  grid-row-gap: 3px;\\n}\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelStart__OpicV.BarListSeries-module_valueEnd__1QfO2 {\\n      grid-template-columns: 2fr 2fr 1fr;\\n      grid-template-areas: 'label bar value-label';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelBottom__11ZOW.BarListSeries-module_valueEnd__1QfO2 {\\n      grid-template-columns: 1fr 50px;\\n      grid-template-areas:\\n        'bar value-label'\\n        'label label';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelNone__68u4T .BarListSeries-module_label__3LXR5 {\\n      display: none;\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelNone__68u4T.BarListSeries-module_valueEnd__1QfO2 {\\n      grid-template-columns: 1fr 50px;\\n      grid-template-areas: 'bar value-label';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelEnd__2dfgR.BarListSeries-module_valueStart__1UJ9n {\\n      grid-template-columns: 50px 1fr 1fr;\\n      grid-template-areas: 'value-label bar label';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelTop__2RF1v.BarListSeries-module_valueStart__1UJ9n {\\n      grid-template-columns: 50px 1fr;\\n      grid-template-areas:\\n        'label label'\\n        'value-label bar';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelTop__2RF1v.BarListSeries-module_valueEnd__1QfO2 {\\n      grid-template-columns: 1fr 50px;\\n      grid-template-areas:\\n        'label label'\\n        'bar value-label';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelTop__2RF1v.BarListSeries-module_valueBottom__3MQPh {\\n      grid-template-columns: 1fr;\\n      grid-template-areas:\\n        'label'\\n        'bar'\\n        'value-label';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelTop__2RF1v.BarListSeries-module_valueNone__30MDP {\\n      grid-template-columns: 1fr;\\n      grid-template-areas:\\n        'label'\\n        'bar';\\n    }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_labelTop__2RF1v.BarListSeries-module_valueNone__30MDP .BarListSeries-module_valueLabel__12ml9 {\\n        display: none;\\n      }\\n\\n  .BarListSeries-module_item__1fb4J.BarListSeries-module_clickable__-5P9q {\\n    cursor: pointer;\\n  }\\n\\n  .BarListSeries-module_item__1fb4J .BarListSeries-module_label__3LXR5,\\n  .BarListSeries-module_item__1fb4J .BarListSeries-module_valueLabel__12ml9 {\\n    cursor: inherit;\\n  }\\n\\n  .BarListSeries-module_item__1fb4J .BarListSeries-module_label__3LXR5 {\\n    grid-area: label;\\n  }\\n\\n  .BarListSeries-module_item__1fb4J .BarListSeries-module_valueLabel__12ml9 {\\n    grid-area: value-label;\\n    line-height: 10px;\\n    text-overflow: ellipsis;\\n    overflow-x: hidden;\\n  }\\n\\n  .BarListSeries-module_item__1fb4J .BarListSeries-module_outerBar__vulkD {\\n    grid-area: bar;\\n    width: 100%;\\n    height: 10px;\\n    display: flex;\\n    align-items: center;\\n  }\\n\\n  .BarListSeries-module_item__1fb4J .BarListSeries-module_bar__3ZHW_ {\\n    height: 5px;\\n  }\\n\";\n  var css$1 = {\"item\":\"BarListSeries-module_item__1fb4J\",\"labelStart\":\"BarListSeries-module_labelStart__OpicV\",\"valueEnd\":\"BarListSeries-module_valueEnd__1QfO2\",\"labelBottom\":\"BarListSeries-module_labelBottom__11ZOW\",\"labelNone\":\"BarListSeries-module_labelNone__68u4T\",\"label\":\"BarListSeries-module_label__3LXR5\",\"labelEnd\":\"BarListSeries-module_labelEnd__2dfgR\",\"valueStart\":\"BarListSeries-module_valueStart__1UJ9n\",\"labelTop\":\"BarListSeries-module_labelTop__2RF1v\",\"valueBottom\":\"BarListSeries-module_valueBottom__3MQPh\",\"valueNone\":\"BarListSeries-module_valueNone__30MDP\",\"valueLabel\":\"BarListSeries-module_valueLabel__12ml9\",\"clickable\":\"BarListSeries-module_clickable__-5P9q\",\"outerBar\":\"BarListSeries-module_outerBar__vulkD\",\"bar\":\"BarListSeries-module_bar__3ZHW_\"};\n  styleInject(css_248z$1);\n\n  const BarListSeries = ({ data, colorScheme, itemClassName, labelClassName, outerBarClassName, valueClassName, labelFormat, barClassName, labelPosition, valuePosition, valueFormat, onItemClick, onItemMouseEnter, onItemMouseLeave }) => {\r\n      const renderBar = react.useCallback((item, index) => {\r\n          const fill = getColor({\r\n              data,\r\n              colorScheme,\r\n              point: item.data,\r\n              index\r\n          });\r\n          return (jsxRuntime.jsx(\"div\", Object.assign({ className: classNames__default['default'](css$1.outerBar, outerBarClassName) }, { children: jsxRuntime.jsx(framerMotion.motion.div, { transition: DEFAULT_TRANSITION, className: classNames__default['default'](css$1.bar, barClassName), initial: { width: '0%' }, animate: { width: `${item.data}%` }, style: { background: fill } }, void 0) }), void 0));\r\n      }, [barClassName, outerBarClassName, colorScheme, data]);\r\n      return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: data.map((d, i) => {\r\n              const label = labelFormat ? labelFormat(d.key, i) : d.key;\r\n              const valueLabel = valueFormat\r\n                  ? valueFormat(d.metadata.value, i)\r\n                  : formatValue(d.metadata.value);\r\n              return (jsxRuntime.jsxs(\"div\", Object.assign({ role: \"listitem\", className: classNames__default['default'](css$1.item, itemClassName, {\r\n                      [css$1.clickable]: onItemClick,\r\n                      [css$1.valueBottom]: valuePosition === 'bottom',\r\n                      [css$1.valueStart]: valuePosition === 'start',\r\n                      [css$1.valueEnd]: valuePosition === 'end',\r\n                      [css$1.valueNone]: valuePosition === 'none',\r\n                      [css$1.labelBottom]: labelPosition === 'bottom',\r\n                      [css$1.labelTop]: labelPosition === 'top',\r\n                      [css$1.labelStart]: labelPosition === 'start',\r\n                      [css$1.labelEnd]: labelPosition === 'end',\r\n                      [css$1.labelNone]: labelPosition === 'none'\r\n                  }), onMouseEnter: () => onItemMouseEnter === null || onItemMouseEnter === void 0 ? void 0 : onItemMouseEnter(d), onMouseLeave: () => onItemMouseLeave === null || onItemMouseLeave === void 0 ? void 0 : onItemMouseLeave(d), onClick: () => onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(d) }, { children: [jsxRuntime.jsx(\"label\", Object.assign({ className: classNames__default['default'](css$1.label, labelClassName) }, { children: label }), void 0), renderBar(d, i), jsxRuntime.jsx(\"label\", Object.assign({ title: valueLabel, className: classNames__default['default'](css$1.valueLabel, valueClassName) }, { children: jsxRuntime.jsx(\"small\", { children: valueLabel }, void 0) }), void 0)] }), d.key));\r\n          }) }, void 0));\r\n  };\r\n  BarListSeries.defaultProps = {\r\n      colorScheme: 'cybertron',\r\n      labelPosition: 'top',\r\n      valuePosition: 'none'\r\n  };\n\n  const BarList = ({ data, id, className, sortDirection, style, series }) => {\r\n      const curId = rdk.useId(id);\r\n      const mashedData = react.useMemo(() => {\r\n          const maxVal = d3Array.max(data, (d) => d.data);\r\n          const domainVal = maxVal == 0 ? [0] : [0, maxVal];\r\n          const groupScale = d3Scale.scaleLinear().domain(domainVal).rangeRound([0, 100]);\r\n          const mashed = data.map((d) => (Object.assign(Object.assign({}, d), { data: groupScale(d.data), metadata: {\r\n                  value: d.data,\r\n                  percent: (data.length * d.data) / 100\r\n              } })));\r\n          if (sortDirection === 'asc') {\r\n              mashed.sort((a, b) => a.data - b.data);\r\n          }\r\n          else if (sortDirection === 'desc') {\r\n              mashed.sort((a, b) => b.data - a.data);\r\n          }\r\n          return mashed;\r\n      }, [data, sortDirection]);\r\n      return (jsxRuntime.jsx(framerMotion.motion.section, Object.assign({ role: \"list\", variants: {\r\n              initial: {\r\n                  transition: {\r\n                      staggerChildren: 0.05,\r\n                      staggerDirection: -1\r\n                  }\r\n              },\r\n              animate: {\r\n                  transition: {\r\n                      staggerChildren: 0.07,\r\n                      delayChildren: 0.2\r\n                  }\r\n              }\r\n          }, id: curId, className: className, style: style }, { children: jsxRuntime.jsx(rdk.CloneElement, { element: series, data: mashedData }, void 0) }), void 0));\r\n  };\r\n  BarList.defaultProps = {\r\n      data: [],\r\n      sortDirection: 'desc',\r\n      series: jsxRuntime.jsx(BarListSeries, {}, void 0)\r\n  };\n\n  const MeterColumn = ({ index, scale, value, count, height, className, animated, activeFill, inActiveFill }) => {\r\n      const isActive = scale(index) <= value;\r\n      const fill = isActive ? activeFill : inActiveFill;\r\n      const transition = animated\r\n          ? Object.assign(Object.assign({}, DEFAULT_TRANSITION), { delay: (index / count) * 0.5 }) : {\r\n          type: false,\r\n          delay: 0\r\n      };\r\n      return (jsxRuntime.jsx(framerMotion.motion.div, { initial: {\r\n              background: inActiveFill,\r\n              height\r\n          }, animate: {\r\n              background: fill,\r\n              height\r\n          }, tranisition: transition, className: className }, index));\r\n  };\r\n  MeterColumn.defaultProps = {\r\n      activeFill: schemes.cybertron[0],\r\n      inActiveFill: '#414242',\r\n      height: 32,\r\n      animated: true\r\n  };\n\n  var css_248z = \".Meter-module_container__1w4SZ {\\n  display: flex;\\n  flex-direction: row;\\n  justify-content: space-between;\\n  align-items: center;\\n}\\n\\n  .Meter-module_container__1w4SZ > div {\\n    flex: 1;\\n  }\\n\";\n  var css = {\"container\":\"Meter-module_container__1w4SZ\"};\n  styleInject(css_248z);\n\n  const Meter = ({ min, max, className, column, gap, style, value, columns }) => {\r\n      const scale = d3Scale.scaleLinear().domain([min, max]).range([0, 100]);\r\n      const cols = scale.ticks(columns);\r\n      return (jsxRuntime.jsx(\"div\", Object.assign({ className: classNames__default['default'](css.container, className), style: Object.assign({ gap: `${gap}px` }, style) }, { children: cols.map((index) => (jsxRuntime.jsx(rdk.CloneElement, { element: column, count: cols.length, index: index, scale: scale, value: value }, index))) }), void 0));\r\n  };\r\n  Meter.defaultProps = {\r\n      min: 0,\r\n      max: 100,\r\n      columns: 10,\r\n      gap: 15,\r\n      style: {},\r\n      column: jsxRuntime.jsx(MeterColumn, {}, void 0)\r\n  };\n\n  const RadarChartSeries = (props) => (jsxRuntime.jsx(RadialAreaSeries, Object.assign({}, props), void 0));\r\n  RadarChartSeries.defaultProps = {\r\n      area: null,\r\n      type: 'grouped',\r\n      symbols: jsxRuntime.jsx(RadialPointSeries, { show: true }, void 0)\r\n  };\n\n  const RadarChart = (props) => (jsxRuntime.jsx(RadialAreaChart, Object.assign({}, props), void 0));\r\n  RadarChart.defaultProps = {\r\n      series: jsxRuntime.jsx(RadarChartSeries, {}, void 0),\r\n      axis: (jsxRuntime.jsx(RadialAxis, { type: \"category\", arcs: jsxRuntime.jsx(RadialAxisArcSeries, { count: 5, arc: null, line: jsxRuntime.jsx(RadialAxisArcLine, {}, void 0) }, void 0) }, void 0))\r\n  };\n\n  exports.Area = Area;\n  exports.AreaChart = AreaChart;\n  exports.AreaSeries = AreaSeries;\n  exports.AreaSparklineChart = AreaSparklineChart;\n  exports.Bar = Bar;\n  exports.BarChart = BarChart;\n  exports.BarLabel = BarLabel;\n  exports.BarList = BarList;\n  exports.BarListSeries = BarListSeries;\n  exports.BarSeries = BarSeries;\n  exports.BarSparklineChart = BarSparklineChart;\n  exports.Brush = Brush;\n  exports.BrushSlice = BrushSlice;\n  exports.Bubble = Bubble;\n  exports.BubbleChart = BubbleChart;\n  exports.BubbleLabel = BubbleLabel;\n  exports.BubbleSeries = BubbleSeries;\n  exports.COUNT_DEFAULTS = COUNT_DEFAULTS;\n  exports.CalendarHeatmap = CalendarHeatmap;\n  exports.ChartBrush = ChartBrush;\n  exports.ChartConsumer = ChartConsumer;\n  exports.ChartContainer = ChartContainer;\n  exports.ChartContext = ChartContext;\n  exports.ChartProvider = ChartProvider;\n  exports.ChartTooltip = ChartTooltip;\n  exports.ChartZoomPan = ChartZoomPan;\n  exports.Count = Count;\n  exports.DEFAULT_TRANSITION = DEFAULT_TRANSITION;\n  exports.DiscreteLegend = DiscreteLegend;\n  exports.DiscreteLegendEntry = DiscreteLegendEntry;\n  exports.DiscreteLegendSymbol = DiscreteLegendSymbol;\n  exports.Gradient = Gradient;\n  exports.GradientStop = GradientStop;\n  exports.GridStripe = GridStripe;\n  exports.Gridline = Gridline;\n  exports.GridlineSeries = GridlineSeries;\n  exports.GuideBar = GuideBar;\n  exports.Heatmap = Heatmap;\n  exports.HeatmapCell = HeatmapCell;\n  exports.HeatmapSeries = HeatmapSeries;\n  exports.HistogramBarChart = HistogramBarChart;\n  exports.HistogramBarSeries = HistogramBarSeries;\n  exports.Line = Line;\n  exports.LineChart = LineChart;\n  exports.LineSeries = LineSeries;\n  exports.LinearAxis = LinearAxis;\n  exports.LinearAxisLine = LinearAxisLine;\n  exports.LinearAxisTickLabel = LinearAxisTickLabel;\n  exports.LinearAxisTickLine = LinearAxisTickLine;\n  exports.LinearAxisTickSeries = LinearAxisTickSeries;\n  exports.LinearGauge = LinearGauge;\n  exports.LinearGaugeBar = LinearGaugeBar;\n  exports.LinearGaugeOuterBar = LinearGaugeOuterBar;\n  exports.LinearGaugeSeries = LinearGaugeSeries;\n  exports.LinearXAxis = LinearXAxis;\n  exports.LinearXAxisTickLabel = LinearXAxisTickLabel;\n  exports.LinearXAxisTickLine = LinearXAxisTickLine;\n  exports.LinearXAxisTickSeries = LinearXAxisTickSeries;\n  exports.LinearYAxis = LinearYAxis;\n  exports.LinearYAxisTickLabel = LinearYAxisTickLabel;\n  exports.LinearYAxisTickLine = LinearYAxisTickLine;\n  exports.LinearYAxisTickSeries = LinearYAxisTickSeries;\n  exports.Map = Map$1;\n  exports.MapMarker = MapMarker;\n  exports.MarimekkoBarSeries = MarimekkoBarSeries;\n  exports.MarimekkoChart = MarimekkoChart;\n  exports.MarkLine = MarkLine;\n  exports.Mask = Mask;\n  exports.Meter = Meter;\n  exports.MeterColumn = MeterColumn;\n  exports.MotionPath = MotionPath;\n  exports.Move = Move;\n  exports.Pan = Pan;\n  exports.PieArc = PieArc;\n  exports.PieArcLabel = PieArcLabel;\n  exports.PieArcSeries = PieArcSeries;\n  exports.PieChart = PieChart;\n  exports.PointSeries = PointSeries;\n  exports.RadarChart = RadarChart;\n  exports.RadarChartSeries = RadarChartSeries;\n  exports.RadialArea = RadialArea;\n  exports.RadialAreaChart = RadialAreaChart;\n  exports.RadialAreaSeries = RadialAreaSeries;\n  exports.RadialAxis = RadialAxis;\n  exports.RadialAxisArc = RadialAxisArc;\n  exports.RadialAxisArcLine = RadialAxisArcLine;\n  exports.RadialAxisArcSeries = RadialAxisArcSeries;\n  exports.RadialAxisTick = RadialAxisTick;\n  exports.RadialAxisTickLabel = RadialAxisTickLabel;\n  exports.RadialAxisTickLine = RadialAxisTickLine;\n  exports.RadialAxisTickSeries = RadialAxisTickSeries;\n  exports.RadialBar = RadialBar;\n  exports.RadialBarChart = RadialBarChart;\n  exports.RadialBarSeries = RadialBarSeries;\n  exports.RadialGauge = RadialGauge;\n  exports.RadialGaugeArc = RadialGaugeArc;\n  exports.RadialGaugeLabel = RadialGaugeLabel;\n  exports.RadialGaugeOuterArc = RadialGaugeOuterArc;\n  exports.RadialGaugeSeries = RadialGaugeSeries;\n  exports.RadialGaugeValueLabel = RadialGaugeValueLabel;\n  exports.RadialGradient = RadialGradient;\n  exports.RadialGuideBar = RadialGuideBar;\n  exports.RadialLine = RadialLine;\n  exports.RadialPointSeries = RadialPointSeries;\n  exports.RadialScatterPlot = RadialScatterPlot;\n  exports.RadialScatterPoint = RadialScatterPoint;\n  exports.RadialScatterSeries = RadialScatterSeries;\n  exports.RangeLines = RangeLines;\n  exports.Sankey = Sankey;\n  exports.SankeyLabel = SankeyLabel;\n  exports.SankeyLink = SankeyLink;\n  exports.SankeyNode = SankeyNode;\n  exports.ScatterPlot = ScatterPlot;\n  exports.ScatterPoint = ScatterPoint;\n  exports.ScatterSeries = ScatterSeries;\n  exports.SequentialLegend = SequentialLegend;\n  exports.SonarChart = SonarChart;\n  exports.SparklineChart = SparklineChart;\n  exports.StackedAreaChart = StackedAreaChart;\n  exports.StackedAreaSeries = StackedAreaSeries;\n  exports.StackedBarChart = StackedBarChart;\n  exports.StackedBarSeries = StackedBarSeries;\n  exports.StackedNormalizedAreaChart = StackedNormalizedAreaChart;\n  exports.StackedNormalizedAreaSeries = StackedNormalizedAreaSeries;\n  exports.StackedNormalizedBarChart = StackedNormalizedBarChart;\n  exports.StackedNormalizedBarSeries = StackedNormalizedBarSeries;\n  exports.StackedRadialGaugeSeries = StackedRadialGaugeSeries;\n  exports.StackedRadialGaugeSupportingLabel = StackedRadialGaugeSupportingLabel;\n  exports.StackedRadialGaugeValueLabel = StackedRadialGaugeValueLabel;\n  exports.Stripes = Stripes;\n  exports.TooltipArea = TooltipArea;\n  exports.TooltipTemplate = TooltipTemplate;\n  exports.TreeMap = TreeMap;\n  exports.TreeMapLabel = TreeMapLabel;\n  exports.TreeMapRect = TreeMapRect;\n  exports.TreeMapSeries = TreeMapSeries;\n  exports.VennArc = VennArc;\n  exports.VennDiagram = VennDiagram;\n  exports.VennLabel = VennLabel;\n  exports.VennOuterLabel = VennOuterLabel;\n  exports.VennSeries = VennSeries;\n  exports.Zoom = Zoom;\n  exports.ZoomPan = ZoomPan;\n  exports.addWeeksToDate = addWeeksToDate;\n  exports.bigIntegerToLocaleString = bigIntegerToLocaleString;\n  exports.buildBarStackData = buildBarStackData;\n  exports.buildBins = buildBins;\n  exports.buildDataScales = buildDataScales;\n  exports.buildMarimekkoData = buildMarimekkoData;\n  exports.buildNestedChartData = buildNestedChartData;\n  exports.buildShallowChartData = buildShallowChartData;\n  exports.buildStackData = buildStackData;\n  exports.buildWaterfall = buildWaterfall;\n  exports.calculateDimensions = calculateDimensions;\n  exports.calculateShowStroke = calculateShowStroke;\n  exports.constrainMatrix = constrainMatrix;\n  exports.constructFunctionProps = constructFunctionProps;\n  exports.extent = extent;\n  exports.formatValue = formatValue;\n  exports.functionProps = functionProps;\n  exports.getClosestPoint = getClosestPoint;\n  exports.getColor = getColor;\n  exports.getDegrees = getDegrees;\n  exports.getDimension = getDimension;\n  exports.getDurationTicks = getDurationTicks;\n  exports.getGroupScale = getGroupScale;\n  exports.getInnerScale = getInnerScale;\n  exports.getLimitMatrix = getLimitMatrix;\n  exports.getMarimekkoGroupScale = getMarimekkoGroupScale;\n  exports.getMarimekkoScale = getMarimekkoScale;\n  exports.getMaxBigIntegerForNested = getMaxBigIntegerForNested;\n  exports.getMaxBigIntegerForShallow = getMaxBigIntegerForShallow;\n  exports.getMaxTicks = getMaxTicks;\n  exports.getParentSVG = getParentSVG;\n  exports.getPointFromMatrix = getPointFromMatrix;\n  exports.getPositionForTarget = getPositionForTarget;\n  exports.getRadialYScale = getRadialYScale;\n  exports.getTicks = getTicks;\n  exports.getXDomain = getXDomain;\n  exports.getXScale = getXScale;\n  exports.getYDomain = getYDomain;\n  exports.getYScale = getYScale;\n  exports.humanFormatBigInteger = humanFormatBigInteger;\n  exports.interpolate = interpolate;\n  exports.isAxisVisible = isAxisVisible;\n  exports.isZoomLevelGoingOutOfBounds = isZoomLevelGoingOutOfBounds;\n  exports.normalizeValue = normalizeValue;\n  exports.normalizeValueForFormatting = normalizeValueForFormatting;\n  exports.reduceTicks = reduceTicks;\n  exports.schemes = schemes;\n  exports.toggleTextSelection = toggleTextSelection;\n  exports.uniqueBy = uniqueBy;\n  exports.useChart = useChart;\n  exports.useCount = useCount;\n  exports.weekDays = weekDays;\n  exports.wrapText = wrapText;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"]}