1 |
- {"version":3,"file":"js/chunk-vendors-3e2fe043.7e8fb004.js","mappings":"0FAoBA,IAAIA,EAAU,EAAQ,OAEtB,EAAQ,MAER,EAAQ,OAER,IAAIC,EAAe,EAAQ,OAEvBC,EAAe,EAAQ,OAoB3BF,EAAQG,eAAeF,EAAa,gBAAiB,WACrDD,EAAQI,eAAeF,EAAa,iB,uBC7BpC,IAAIG,EAAsB,EAAQ,OAE9BC,EAAc,EAAQ,OAoBtBC,EAAWD,EAAYE,OAAO,CAChCC,KAAM,uBACNC,aAAc,CAAC,OAAQ,SACvBC,eAAgB,SAAUC,EAAQC,GAChC,OAAOR,EAAoBS,KAAKC,YAAaD,KAAM,CACjDE,oBAAoB,GAExB,EACAC,cAAe,QACfC,cAAe,CACbC,iBAAkB,cAClBC,OAAQ,EACRC,EAAG,EACHC,iBAAiB,EACjBC,WAAY,SACZC,YAAa,EAEbC,aAAc,SAEdC,aAAc,CACZC,OAAQ,EAERC,MAAO,IAEPC,UAAW,QAUbC,WAAY,MAYhBC,EAAOC,QAAUzB,C,wBCpEjB,IAAIP,EAAU,EAAQ,OAElBiC,EAAa,EAAQ,OAErBC,EAAe,EAAQ,OAEvBC,EAAS,EAAQ,OAEjBC,EAAe,EAAQ,OAoBvB7B,EAAWP,EAAQqC,gBAAgB,CACrC5B,KAAM,gBACN6B,KAAM,WACJxB,KAAKyB,YAAc,IAAIN,EAAWC,EACpC,EACAM,OAAQ,SAAUC,EAAa5B,EAAS6B,GACtC,IAAIC,EAAOF,EAAYG,UACnBC,EAAmB/B,KAAKyB,YAC5BM,EAAiBC,WAAWH,GAC5B7B,KAAKiC,MAAMC,IAAIH,EAAiBE,MAClC,EACAE,gBAAiB,SAAUR,EAAa5B,EAAS6B,GAC/C,IAAIC,EAAOF,EAAYG,UACvB9B,KAAKiC,MAAMG,QACX,IAAIC,EAAMf,IAAegB,MAAMX,GAE3BU,EAAIE,UACNF,EAAIE,SAAS,CACXC,MAAO,EACPC,IAAKZ,EAAKa,SACTb,GAGL7B,KAAKyB,YAAYkB,aAAad,EAChC,EACAe,sBAAuB,SAAUjB,GAC/B,IAAIkB,EAAWlB,EAAYtB,iBAEvBwC,GAAYA,EAASC,mBACvB9C,KAAKiC,MAAMc,UAAY1B,EAAO2B,MAAMH,EAASC,oBAC7C9C,KAAKiC,MAAMgB,qBAEf,EACAC,OAAQ,SAAUnD,EAAS6B,GACzB5B,KAAKyB,aAAezB,KAAKyB,YAAYyB,OAAOtB,EAC9C,EACAuB,QAAS,WAAa,IAGxBlC,EAAOC,QAAUzB,C,wBCnEjB,IAAIP,EAAU,EAAQ,OAEtB,EAAQ,OAER,EAAQ,OAER,IAAIkE,EAAY,EAAQ,OAEpBC,EAAe,EAAQ,OAEvBC,EAAa,EAAQ,OAoBzBpE,EAAQG,eAAe+D,EAAU,WACjClE,EAAQI,eAAe+D,GACvBnE,EAAQqE,kBAAkBD,EAAW,U,wBChCrC,IAAIpE,EAAU,EAAQ,OAElBsE,EAAS,EAAQ,OAEjBC,EAAmB,EAAQ,OAE3BC,EAAS,EAAQ,OAEjBC,EAAkBD,EAAOC,gBAEzBC,EAAgB,EAAQ,OAExBC,EAA+BD,EAAcC,6BAE7CC,EAAuB,EAAQ,OAoB/BC,EAAe7E,EAAQ8E,kBAAkB,CAC3CrE,KAAM,gBACN6B,KAAM,SAAU1B,GACdiE,EAAaE,WAAWjE,KAAM,OAAQkE,WAGtClE,KAAKmE,qBAAuB,IAAIL,EAAqBN,EAAOY,KAAKpE,KAAK8B,QAAS9B,MAAOwD,EAAOY,KAAKpE,KAAKqE,WAAYrE,OAEnHA,KAAKsE,kBAAkBxE,EACzB,EACAD,eAAgB,SAAUC,EAAQC,GAChC,OAAO0D,EAAiBzD,KAAM,CAC5BuE,gBAAiB,CAAC,SAClBC,gBAAiBhB,EAAOiB,MAAMZ,EAA8B7D,OAEhE,EACAsE,kBAAmB,SAAUxE,GAE3B6D,EAAgB7D,EAAQ,YAAa,CAAC,SACtC,IAAI4E,EAAqB5E,EAAO6E,UAC5BC,EAAuB9E,EAAO+E,SAASF,UAE3CD,EAAmBI,KAAOJ,EAAmBI,MAAQhF,EAAOiF,MAAMD,KAClEF,EAAqBE,KAAOF,EAAqBE,MAAQhF,EAAO+E,SAASE,MAAMD,IACjF,EAEAE,cAAe,SAAUC,GACvB,IAAIpD,EAAO7B,KAAK8B,UACZoD,EAASnB,EAAaoB,UAAUnF,KAAM,gBAAiBiF,GACvDG,EAAWvD,EAAKwD,aAAa,SAC7BC,EAAMzD,EAAK0D,OAAOH,GAItB,OAFAF,EAAOM,QAAWF,IAAYzD,EAAK4D,IAAIL,EAAUH,GAAaK,EAAM,KAAKI,QAAQ,GAAzD,EACxBR,EAAOS,MAAMC,KAAK,WACXV,CACT,EACA9E,cAAe,CACbE,OAAQ,EAERC,EAAG,EAEHC,iBAAiB,EACjBqF,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,OAAQ,GAMRC,QAAS,KACTC,QAAS,OACTC,KAAM,aAENC,IAAK,EACLC,YAAa,SACbtB,MAAO,CACLD,MAAM,EACNwB,SAAU,SAGZ3B,UAAW,CACTG,MAAM,EACNyB,OAAQ,GACRC,UAAW,CAETC,MAAO,EACP9G,KAAM,UAGV+G,UAAW,CAETC,YAAa,OACbC,YAAa,GAEf/B,SAAU,CACRE,MAAO,CACLD,MAAM,OAKVrF,EAAWsE,EACf9C,EAAOC,QAAUzB,C,wBCtHjB,IAAIoH,EAAU,EAAQ,OAElBrD,EAAS,EAAQ,OAEjBsD,EAAY,EAAQ,OA0BxB,SAASC,EAAYlF,EAAMmF,GACzBH,EAAQI,MAAMC,KAAKlH,MACnB,IAAImH,EAAU,IAAIN,EAAQO,QACtBzC,EAAY,IAAIkC,EAAQQ,SACxBC,EAAO,IAAIT,EAAQU,KACvBvH,KAAKkC,IAAIiF,GACTnH,KAAKkC,IAAIyC,GACT3E,KAAKkC,IAAIoF,GAETtH,KAAKwH,iBAAmB,SAAUC,EAAWC,GAC3B,aAAZA,GACF/C,EAAUgD,OAAShD,EAAUiD,YAC7BN,EAAKK,OAASL,EAAKM,cAEnBjD,EAAUgD,OAAShD,EAAUkD,aAC7BP,EAAKK,OAASL,EAAKO,aAEvB,EAEA7H,KAAKgC,WAAWH,EAAMmF,GAAK,EAC7B,CAEA,IAAIc,EAAmBf,EAAYgB,UAC/BC,EAAoB,CAAC,YAAa,WAEtCF,EAAiB9F,WAAa,SAAUH,EAAMmF,EAAKiB,GACjD,IAAId,EAAUnH,KAAKkI,QAAQ,GACvBvG,EAAcE,EAAKsG,UACnBC,EAAYvG,EAAKwG,aAAarB,GAC9BsB,EAASzG,EAAK0G,cAAcvB,GAC5BwB,EAAU3G,EAAKwG,aAAarB,GAAKvB,IAAIuC,GACzCQ,EAAqB,MAAXA,EAAkB,EAAIA,EAEhCrB,EAAQsB,SAAS,CAAC,GAEdR,GACFd,EAAQuB,SAAS,CACfC,OAAQL,EAAOK,SAEjBxB,EAAQyB,SAAS,CACfJ,QAAS,IAEX3B,EAAQgC,UAAU1B,EAAS,CACzB2B,MAAO,CACLN,QAASA,IAEV7G,EAAaqF,IAEhBH,EAAQkC,YAAY5B,EAAS,CAC3B2B,MAAO,CACLN,QAASA,GAEXQ,MAAO,CACLL,OAAQL,EAAOK,SAEhBhH,EAAaqF,GAIlB,IAAIiC,EAAiBb,EAAUc,SAAS,aACpCC,EAActH,EAAKuH,cAAcpC,EAAK,SAC1CG,EAAQyB,SAASpF,EAAO6F,SAAS,CAC/BC,SAAU,QACVC,KAAMJ,GACLF,EAAeO,aAAa,CAAC,cAChCrC,EAAQsC,WAAaR,EAAeC,SAAS,YAAYM,eAEzDxJ,KAAK0J,aAAa7H,EAAMmF,GAExBH,EAAQ8C,cAAc3J,KACxB,EAEA8H,EAAiB4B,aAAe,SAAU7H,EAAMmF,GAC9C,IAAIrC,EAAY3E,KAAKkI,QAAQ,GACzB0B,EAAY5J,KAAKkI,QAAQ,GACzBvG,EAAcE,EAAKsG,UACnBC,EAAYvG,EAAKwG,aAAarB,GAC9BsB,EAASzG,EAAK0G,cAAcvB,GAC5B6C,EAAcvB,EAAOvD,MACrBoE,EAActH,EAAKuH,cAAcpC,EAAK,SAC1CH,EAAQkC,YAAYpE,EAAW,CAC7BqE,MAAO,CACLL,OAAQkB,EAAYC,YAAcD,EAAYC,aAE/CnI,EAAaqF,GAChBH,EAAQkC,YAAYa,EAAW,CAC7Bd,MAAO,CACLiB,EAAGF,EAAYE,EACfC,EAAGH,EAAYG,IAEhBrI,EAAaqF,GAChB4C,EAAUK,KAAK,CACbC,SAAUL,EAAYK,SACtBC,OAAQ,CAACN,EAAYE,EAAGF,EAAYG,GACpCI,GAAI,KAEN,IAAIC,EAAajC,EAAUc,SAAS,SAChCoB,EAAkBlC,EAAUc,SAAS,kBACrCqB,EAAiBnC,EAAUc,SAAS,aACpCsB,EAAsBpC,EAAUc,SAAS,sBACzCC,EAActH,EAAKuH,cAAcpC,EAAK,SAC1CH,EAAQ4D,cAAcb,EAAUd,MAAOc,EAAUH,WAAa,CAAC,EAAGY,EAAYC,EAAiB,CAC7FI,aAAc7I,EAAKsG,UACnBwC,eAAgB3D,EAChB4D,YAAa/I,EAAKgJ,QAAQ7D,GAC1B8D,UAAW3B,EACX4B,iBAAkBlB,EAAYmB,QAC7B,CACDC,UAAWpB,EAAYoB,UACvBC,kBAAmBrB,EAAYsB,gBAEjCvB,EAAUjC,OAASiC,EAAU/B,cAAgBwC,EAAW5E,IAAI,QAC5DmE,EAAUhC,aAAe0C,EAAgB7E,IAAI,QAC7Cd,EAAUgD,OAAShD,EAAUkD,cAAgB0C,EAAe9E,IAAI,QAChEd,EAAUiD,aAAe4C,EAAoB/E,IAAI,QAEjDd,EAAUiE,SAAS,CACjBwC,OAAQjC,IAEVxE,EAAUiE,SAAS2B,EAAerB,SAAS,aAAamC,gBACxD1G,EAAU8E,WAAae,EAAoBtB,SAAS,aAAamC,cACnE,EAEA7H,EAAO8H,SAASvE,EAAaF,EAAQI,OACrC,IAAIsE,EAAazE,EAAUpH,OAAO,CAChCC,KAAM,SACN+B,OAAQ,SAAUC,EAAa5B,EAAS6B,GACtC,IAAIC,EAAOF,EAAYG,UACnB0J,EAAUxL,KAAKyL,MACfxJ,EAAQjC,KAAKiC,MACjBJ,EAAK6J,KAAKF,GAAStJ,KAAI,SAAU8E,GAC/B,IAAI2E,EAAc,IAAI5E,EAAYlF,EAAMmF,GACxCnF,EAAK+J,iBAAiB5E,EAAK2E,GAC3B1J,EAAMC,IAAIyJ,EACZ,IAAGE,QAAO,SAAUC,EAAQC,GAC1B,IAAIC,EAAWR,EAAQS,iBAAiBF,GACxCC,EAAShK,WAAWH,EAAMiK,GAC1B7J,EAAMC,IAAI8J,GACVnK,EAAK+J,iBAAiBE,EAAQE,EAChC,IAAG9I,QAAO,SAAU8D,GAClB,IAAIgF,EAAWR,EAAQS,iBAAiBjF,GACxC/E,EAAMiB,OAAO8I,EACf,IAAGE,UACHlM,KAAKyL,MAAQ5J,CACf,EACAqB,OAAQ,WACNlD,KAAKiC,MAAMkK,YACXnM,KAAKyL,MAAQ,IACf,EACAtI,QAAS,WAAa,IAEpB1D,EAAW8L,EACftK,EAAOC,QAAUzB,C,wBCtLjB,IAAI6I,EAAS,EAAQ,OAEjB8D,EAAU,EAAQ,OAElBC,EAAeD,EAAQC,aACvBC,EAAYF,EAAQE,UAoBxB,SAASC,EAAY5K,EAAaC,GAChC,OAAO0G,EAAOkE,cAAc7K,EAAY8K,qBAAsB,CAC5DhG,MAAO7E,EAAI8K,WACXC,OAAQ/K,EAAIgL,aAEhB,CAEA,SAASC,EAAiBhL,EAAMsE,GAQ9B,IAPA,IAAIf,EAAWvD,EAAKwD,aAAa,SAC7ByH,EAAWjL,EAAKkL,SAAS3H,GAAU,SAAU4H,GAC/C,OAAOA,CACT,IACIC,EAAU,GACVC,EAAuB,cAAT/G,EAETgH,EAAI,EAAGC,EAAMvL,EAAKa,QAASyK,EAAIC,EAAKD,IAC3CF,EAAQE,GAAKA,EAYf,MARoB,oBAAThH,EACT8G,EAAQ9G,KAAKA,GACK,SAATA,GACT8G,EAAQ9G,MAAK,SAAUkH,EAAGC,GACxB,OAAOJ,EAAcJ,EAASO,GAAKP,EAASQ,GAAKR,EAASQ,GAAKR,EAASO,EAC1E,IAGKJ,CACT,CAEA,SAASpD,EAAYhI,GACnBA,EAAK0L,MAAK,SAAUvG,GAClB,IAOIiE,EACAuC,EACAC,EACA3D,EAVA1B,EAAYvG,EAAKwG,aAAarB,GAC9BqD,EAAajC,EAAUc,SAAS,SAChCwE,EAAgBrD,EAAW5E,IAAI,YAC/B8E,EAAiBnC,EAAUc,SAAS,aACpCZ,EAASzG,EAAK0G,cAAcvB,GAC5B2B,EAASL,EAAOK,OAChBgF,EAAkC,UAAlBD,GAA+C,WAAlBA,GAAgD,WAAlBA,GAAgD,eAAlBA,GAAoD,gBAAlBA,EAM/I,GAAIC,EACoB,eAAlBD,GACFF,GAAS7E,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EAAI,EAC5C8E,GAAS9E,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACxCsC,EAAY,QACe,gBAAlByC,GACTF,GAAS7E,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EAAI,EAC5C8E,GAAS9E,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACxCsC,EAAY,UAEZuC,GAAS7E,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACtE8E,GAAS9E,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACtEsC,EAAY,UAGdnB,EAAa,CAAC,CAAC0D,EAAOC,GAAQ,CAACD,EAAOC,QACjC,CACL,IAAIG,EACAC,EACAC,EACAC,EAAexD,EAAe9E,IAAI,UAEhB,SAAlBiI,GAEFE,GAAMjF,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCkF,GAAMlF,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,SACe,UAAlByC,GAETE,GAAMjF,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCkF,GAAMlF,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,QACe,aAAlByC,GAETE,EAAKjF,EAAO,GAAG,GACfkF,EAAKlF,EAAO,GAAG,GACfmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,OACe,gBAAlByC,GAETE,EAAKjF,EAAO,GAAG,GACfkF,EAAKlF,EAAO,GAAG,GACfmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,UACe,YAAlByC,GAETE,EAAKjF,EAAO,GAAG,GACfkF,EAAKlF,EAAO,GAAG,GACfmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,SACe,eAAlByC,GAETE,EAAKjF,EAAO,GAAG,GACfkF,EAAKlF,EAAO,GAAG,GACfmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,UAGZ2C,GAAMjF,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCkF,GAAMlF,EAAO,GAAG,GAAKA,EAAO,GAAG,IAAM,EACrCmF,EAAKF,EAAKG,EACVP,EAAQM,EAAK,EACb7C,EAAY,QAGd,IAAI+C,EAAKH,EACT/D,EAAa,CAAC,CAAC8D,EAAIC,GAAK,CAACC,EAAIE,IAC7BP,EAAQO,CACV,CAEA1F,EAAOvD,MAAQ,CACb+E,WAAYA,EACZC,EAAGyD,EACHxD,EAAGyD,EACHtC,cAAe,SACfF,UAAWA,EACXD,OAAQ2C,EAEZ,GACF,CAEA,SAASlO,EAASM,EAAS6B,EAAKqM,GAC9BlO,EAAQmO,iBAAiB,UAAU,SAAUvM,GAC3C,IAAIE,EAAOF,EAAYG,UACnBsD,EAAWvD,EAAKwD,aAAa,SAC7Bc,EAAOxE,EAAY8D,IAAI,QACvB0I,EAAW5B,EAAY5K,EAAaC,GACpCqL,EAAUJ,EAAiBhL,EAAMsE,GACjCiI,EAAa,CAAC/B,EAAa1K,EAAY8D,IAAI,WAAY0I,EAAS1H,OAAQ4F,EAAa1K,EAAY8D,IAAI,WAAY0I,EAAS1H,QAC1H4H,EAAaxM,EAAKyM,cAAclJ,GAChCmJ,EAAM5M,EAAY8D,IAAI,OACtB+I,EAAM7M,EAAY8D,IAAI,OAEf,MAAP8I,IACFA,EAAME,KAAKF,IAAIF,EAAW,GAAI,IAGrB,MAAPG,IACFA,EAAMH,EAAW,IAGnB,IAAIhI,EAAc1E,EAAY8D,IAAI,eAC9BW,EAAMzE,EAAY8D,IAAI,OACtBiJ,GAAcP,EAASxB,OAASvG,GAAOvE,EAAKa,QAAU,IAAMb,EAAKa,QACjEsH,EAAImE,EAASnE,EAEb2E,EAAgB,SAAU3H,EAAK4H,GAEjC,IAEIC,EAFA7B,EAAMnL,EAAK4D,IAAIL,EAAU4B,IAAQ,EACjC8H,EAAYxC,EAAUU,EAAK,CAACuB,EAAKC,GAAMJ,GAAY,GAGvD,OAAQ/H,GACN,IAAK,OACHwI,EAAKV,EAASpE,EACd,MAEF,IAAK,SACH8E,EAAKV,EAASpE,GAAKoE,EAAS1H,MAAQqI,GAAa,EACjD,MAEF,IAAK,QACHD,EAAKV,EAASpE,EAAIoE,EAAS1H,MAAQqI,EACnC,MAGJ,MAAO,CAAC,CAACD,EAAID,GAAO,CAACC,EAAKC,EAAWF,GACvC,EAEa,cAATzI,IAEFuI,GAAcA,EACdtI,GAAOA,EACP4D,GAAKmE,EAASxB,OACdM,EAAUA,EAAQ8B,WAGpB,IAAK,IAAI5B,EAAI,EAAGA,EAAIF,EAAQ1G,OAAQ4G,IAAK,CACvC,IAAInG,EAAMiG,EAAQE,GACd6B,EAAU/B,EAAQE,EAAI,GACtB/E,EAAYvG,EAAKwG,aAAarB,GAC9B2F,EAASvE,EAAU3C,IAAI,oBAEb,MAAVkH,EACFA,EAAS+B,GAET/B,EAASN,EAAaM,EAAQwB,EAASxB,QAE1B,cAATxG,IACFwG,GAAUA,IAId,IAAInK,EAAQmM,EAAc3H,EAAKgD,GAC3BvH,EAAMkM,EAAcK,EAAShF,EAAI2C,GACrC3C,GAAK2C,EAASvG,EACdvE,EAAKoN,cAAcjI,EAAK,CACtB2B,OAAQnG,EAAM0M,OAAOzM,EAAI0M,QAAQJ,YAErC,CAEAlF,EAAYhI,EACd,GACF,CAEAZ,EAAOC,QAAUzB,C,wBCnPjB,EAAQ,OAER,EAAQ,M,wBCFR,IAAIgE,EAAmB,EAAQ,OAE3BjE,EAAc,EAAQ,OAoBtB4P,EAAc5P,EAAYE,OAAO,CACnCC,KAAM,eACNE,eAAgB,SAAUC,EAAQC,GAChC,OAAO0D,EAAiBzD,KAAM,CAAC,SACjC,EACAI,cAAe,CACbE,OAAQ,EACRC,EAAG,EAEH8O,OAAQ,CAAC,MAAO,OAChB7O,iBAAiB,EACjB8O,OAAQ,MACRC,WAAY,IACZC,UAAW,GACXC,WAAW,EAEXlB,IAAK,EAELC,IAAK,IAELkB,YAAa,GAEbC,SAAU,CAER7K,MAAM,EACN0B,UAAW,CAEToJ,MAAO,CAAC,CAAC,GAAK,WAAY,CAAC,GAAK,WAAY,CAAC,EAAG,YAChDnJ,MAAO,KAIXoJ,UAAW,CAET/K,MAAM,EAENyB,OAAQ,GAERC,UAAW,CACToJ,MAAO,OACPnJ,MAAO,EACP9G,KAAM,UAIVmQ,SAAU,CAERhL,MAAM,EAEN4K,YAAa,EAEbnJ,OAAQ,EAERC,UAAW,CACToJ,MAAO,OACPnJ,MAAO,EACP9G,KAAM,UAGVoQ,UAAW,CACTjL,MAAM,EACNkL,SAAU,EAEVJ,MAAO,QAETK,QAAS,CACPnL,MAAM,EACNyB,OAAQ,MACRE,MAAO,GAETC,UAAW,CACTkJ,MAAO,QAETM,MAAO,CACLpL,MAAM,EAENqL,aAAc,CAAC,EAAG,QAElBP,MAAO,OACPQ,SAAU,IAEZC,OAAQ,CACNvL,MAAM,EACNwL,gBAAiB,gBACjB1J,YAAa,EACbD,YAAa,OACbF,MAAO,IACPkG,OAAQ,KAER4D,QAAS,CAAC,EAAG,IAEbJ,aAAc,CAAC,EAAG,OAGlBP,MAAO,OACPQ,SAAU,OAIZ3Q,EAAW2P,EACfnO,EAAOC,QAAUzB,C,wBC1HjB,IAAI+Q,EAAc,EAAQ,OAEtB3J,EAAU,EAAQ,OAElBC,EAAY,EAAQ,OAEpBsF,EAAU,EAAQ,OAElBC,EAAeD,EAAQC,aACvBoE,EAAQrE,EAAQqE,MAChBnE,EAAYF,EAAQE,UAoBxB,SAASoE,EAAc/O,EAAaC,GAClC,IAAIyN,EAAS1N,EAAY8D,IAAI,UACzBgB,EAAQ7E,EAAI8K,WACZC,EAAS/K,EAAIgL,YACb+D,EAAOlC,KAAKF,IAAI9H,EAAOkG,GACvBiE,EAAKvE,EAAagD,EAAO,GAAIzN,EAAI8K,YACjCmE,EAAKxE,EAAagD,EAAO,GAAIzN,EAAIgL,aACjCkE,EAAIzE,EAAa1K,EAAY8D,IAAI,UAAWkL,EAAO,GACvD,MAAO,CACLC,GAAIA,EACJC,GAAIA,EACJC,EAAGA,EAEP,CAEA,SAASC,EAAYhM,EAAOiM,GAS1B,OARIA,IAC4B,kBAAnBA,EACTjM,EAAQiM,EAAeC,QAAQ,UAAoB,MAATlM,EAAgBA,EAAQ,IAC/B,oBAAnBiM,IAChBjM,EAAQiM,EAAejM,KAIpBA,CACT,CAEA,IAAImM,EAAgB,EAAVzC,KAAK0C,GACXC,EAAYtK,EAAUpH,OAAO,CAC/BC,KAAM,QACN+B,OAAQ,SAAUC,EAAa5B,EAAS6B,GACtC5B,KAAKiC,MAAMkK,YACX,IAAIkF,EAAY1P,EAAY8D,IAAI,4BAC5B6L,EAAUZ,EAAc/O,EAAaC,GAEzC5B,KAAKuR,YAAY5P,EAAa5B,EAAS6B,EAAKyP,EAAWC,EACzD,EACAnO,QAAS,WAAa,EACtBoO,YAAa,SAAU5P,EAAa5B,EAAS6B,EAAKyP,EAAWC,GAY3D,IAXA,IAAIrP,EAAQjC,KAAKiC,MACbuP,EAAgB7P,EAAYuH,SAAS,YACrCuI,EAAiBD,EAActI,SAAS,aACxCuG,EAAY9N,EAAY8D,IAAI,aAC5B8J,GAAc5N,EAAY8D,IAAI,cAAgB,IAAMgJ,KAAK0C,GACzD3B,GAAY7N,EAAY8D,IAAI,YAAc,IAAMgJ,KAAK0C,GACrDO,GAAkBlC,EAAWD,GAAc2B,EAC3CS,EAAepC,EACfqC,EAAgBH,EAAehM,IAAI,SACnCoM,EAAWL,EAAc/L,IAAI,QAExB0H,EAAI,EAAG0E,GAAY1E,EAAIkE,EAAU9K,OAAQ4G,IAAK,CAErD,IAAI3H,EAAUiJ,KAAKF,IAAIE,KAAKD,IAAI6C,EAAUlE,GAAG,GAAI,GAAI,GAEjD2E,GADAtC,EAAWD,EAAamC,EAAiBlM,EAChC,IAAIqB,EAAQkL,OAAO,CAC9B/I,MAAO,CACLuG,WAAYoC,EACZnC,SAAUA,EACVoB,GAAIU,EAAQV,GACZC,GAAIS,EAAQT,GACZpB,UAAWA,EACXuC,GAAIV,EAAQR,EAAIc,EAChBd,EAAGQ,EAAQR,GAEbmB,QAAQ,KAEVH,EAAOlJ,SAAS,CACdW,KAAM8H,EAAUlE,GAAG,KAErB2E,EAAOlJ,SAAS6I,EAAepG,aAE/B,CAAC,QAAS,cAAe,iBACzBpJ,EAAMC,IAAI4P,GACVH,EAAenC,CACjB,CAEA,IAAI0C,EAAW,SAAU1M,GAEvB,GAAIA,GAAW,EACb,OAAO6L,EAAU,GAAG,GAGtB,IAAK,IAAIlE,EAAI,EAAGA,EAAIkE,EAAU9K,OAAQ4G,IACpC,GAAIkE,EAAUlE,GAAG,IAAM3H,IAAkB,IAAN2H,EAAU,EAAIkE,EAAUlE,EAAI,GAAG,IAAM3H,EACtE,OAAO6L,EAAUlE,GAAG,GAKxB,OAAOkE,EAAUlE,EAAI,GAAG,EAC1B,EAEA,IAAKsC,EAAW,CACd,IAAI0C,EAAM5C,EACVA,EAAaC,EACbA,EAAW2C,CACb,CAEAnS,KAAKoS,aAAazQ,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,EAAS/B,EAAYC,EAAUC,GAEtFzP,KAAKqS,eAAe1Q,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,EAAS/B,EAAYC,EAAUC,GAExFzP,KAAKsS,aAAa3Q,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,GAEvDtR,KAAKuS,cAAc5Q,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,EAC1D,EACAc,aAAc,SAAUzQ,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,EAAS/B,EAAYC,EAAUC,GAoB1F,IAnBA,IAAIxN,EAAQjC,KAAKiC,MACb2O,EAAKU,EAAQV,GACbC,EAAKS,EAAQT,GACbC,EAAIQ,EAAQR,EACZ0B,GAAU7Q,EAAY8D,IAAI,OAC1BgN,GAAU9Q,EAAY8D,IAAI,OAC1BiN,EAAiB/Q,EAAYuH,SAAS,aACtCyJ,EAAYhR,EAAYuH,SAAS,YACjCmB,EAAa1I,EAAYuH,SAAS,aAClCwG,EAAc/N,EAAY8D,IAAI,eAC9BmN,EAAiBD,EAAUlN,IAAI,eAC/BoN,EAAexG,EAAaqG,EAAejN,IAAI,UAAWqL,GAC1DgC,EAAUzG,EAAasG,EAAUlN,IAAI,UAAWqL,GAChDiC,EAAQxD,EACRyD,GAAQxD,EAAWD,GAAcG,EACjCuD,EAAUD,EAAOJ,EACjBM,EAAiBR,EAAexJ,SAAS,aAAamC,eACtD8H,EAAgBR,EAAUzJ,SAAS,aAAamC,eAE3C8B,EAAI,EAAGA,GAAKuC,EAAavC,IAAK,CACrC,IAAIiG,EAAQ3E,KAAK4E,IAAIN,GACjBO,EAAQ7E,KAAK8E,IAAIR,GAErB,GAAIL,EAAejN,IAAI,QAAS,CAC9B,IAAIoK,EAAY,IAAIhJ,EAAQ2M,KAAK,CAC/BxK,MAAO,CACL4E,GAAIwF,EAAQtC,EAAIF,EAChB/C,GAAIyF,EAAQxC,EAAID,EAChB/C,GAAIsF,GAAStC,EAAI+B,GAAgBjC,EACjC5C,GAAIsF,GAASxC,EAAI+B,GAAgBhC,GAEnC/H,MAAOoK,EACPjB,QAAQ,IAGoB,SAA1BiB,EAAe9H,QACjByE,EAAUjH,SAAS,CACjBwC,OAAQ8G,EAAS/E,EAAIuC,KAIzBzN,EAAMC,IAAI2N,EACZ,CAGA,GAAIxF,EAAW5E,IAAI,QAAS,CAC1B,IAAIV,EAAQgM,EAAYN,EAAMtD,EAAIuC,GAAe+C,EAASD,GAAUA,GAASnI,EAAW5E,IAAI,cACxFuK,EAAW3F,EAAW5E,IAAI,YAC1BqF,EAAYoH,EAAS/E,EAAIuC,GAC7BzN,EAAMC,IAAI,IAAI2E,EAAQU,KAAK,CACzBuB,MAAOjC,EAAQ4M,aAAa,CAAC,EAAGpJ,EAAY,CAC1C/C,KAAMvC,EACNgF,EAAGqJ,GAAStC,EAAI+B,EAAe7C,GAAYY,EAC3C5G,EAAGsJ,GAASxC,EAAI+B,EAAe7C,GAAYa,EAC3C3F,kBAAmBoI,GAAS,GAAM,MAAQA,EAAQ,GAAM,SAAW,SACnErI,UAAWmI,GAAS,GAAM,OAASA,EAAQ,GAAM,QAAU,UAC1D,CACDtI,UAAWA,IAEbmH,QAAQ,IAEZ,CAGA,GAAIU,EAAUlN,IAAI,SAAW0H,IAAMuC,EAAa,CAC9C,IAAK,IAAIgE,EAAI,EAAGA,GAAKd,EAAgBc,IAAK,CACpCN,EAAQ3E,KAAK4E,IAAIN,GACjBO,EAAQ7E,KAAK8E,IAAIR,GADrB,IAEIY,EAAW,IAAI9M,EAAQ2M,KAAK,CAC9BxK,MAAO,CACL4E,GAAIwF,EAAQtC,EAAIF,EAChB/C,GAAIyF,EAAQxC,EAAID,EAChB/C,GAAIsF,GAAStC,EAAIgC,GAAWlC,EAC5B5C,GAAIsF,GAASxC,EAAIgC,GAAWjC,GAE9BoB,QAAQ,EACRnJ,MAAOqK,IAGoB,SAAzBA,EAAc/H,QAChBuI,EAAS/K,SAAS,CAChBwC,OAAQ8G,GAAU/E,EAAIuG,EAAId,GAAkBlD,KAIhDzN,EAAMC,IAAIyR,GACVZ,GAASE,CACX,CAEAF,GAASE,CACX,MACEF,GAASC,CAEb,CACF,EACAX,eAAgB,SAAU1Q,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,EAAS/B,EAAYC,EAAUC,GAC5F,IAAIxN,EAAQjC,KAAKiC,MACbuJ,EAAUxL,KAAKyL,MAEnB,GAAK9J,EAAY8D,IAAI,gBAArB,CAQA,IAAImO,EAAc,EAAEjS,EAAY8D,IAAI,QAAS9D,EAAY8D,IAAI,QACzDoO,EAAc,CAACtE,EAAYC,GAC3B3N,EAAOF,EAAYG,UACnBsD,EAAWvD,EAAKwD,aAAa,SACjCxD,EAAK6J,KAAKF,GAAStJ,KAAI,SAAU8E,GAC/B,IAAIiJ,EAAU,IAAIO,EAAY,CAC5BxH,MAAO,CACL+J,MAAOxD,KAGX1I,EAAQgC,UAAUoH,EAAS,CACzBjH,MAAO,CACL+J,MAAOzG,EAAUzK,EAAK4D,IAAIL,EAAU4B,GAAM4M,EAAaC,GAAa,KAErElS,GACHM,EAAMC,IAAI+N,GACVpO,EAAK+J,iBAAiB5E,EAAKiJ,EAC7B,IAAGpE,QAAO,SAAUC,EAAQC,GAC1B,IAAIkE,EAAUzE,EAAQS,iBAAiBF,GACvClF,EAAQkC,YAAYkH,EAAS,CAC3BjH,MAAO,CACL+J,MAAOzG,EAAUzK,EAAK4D,IAAIL,EAAU0G,GAAS8H,EAAaC,GAAa,KAExElS,GACHM,EAAMC,IAAI+N,GACVpO,EAAK+J,iBAAiBE,EAAQmE,EAChC,IAAG/M,QAAO,SAAU8D,GAClB,IAAIiJ,EAAUzE,EAAQS,iBAAiBjF,GACvC/E,EAAMiB,OAAO+M,EACf,IAAG/D,UACHrK,EAAKiS,mBAAkB,SAAU7D,EAASjJ,GACxC,IAAIoB,EAAYvG,EAAKwG,aAAarB,GAC9B+M,EAAe3L,EAAUc,SAAS,WACtC+G,EAAQvH,SAAS,CACfqB,EAAGuH,EAAQV,GACX5G,EAAGsH,EAAQT,GACXpK,MAAO4F,EAAa0H,EAAatO,IAAI,SAAU6L,EAAQR,GACvDA,EAAGzE,EAAa0H,EAAatO,IAAI,UAAW6L,EAAQR,KAEtDb,EAAQxH,SAASL,EAAUc,SAAS,aAAaM,gBAEtB,SAAvByG,EAAQnH,MAAMS,MAChB0G,EAAQrH,SAAS,OAAQsJ,EAAS5F,EAAUzK,EAAK4D,IAAIL,EAAU4B,GAAM4M,EAAa,CAAC,EAAG,IAAI,KAG5F/M,EAAQ8C,cAAcsG,EAAS7H,EAAUc,SAAS,sBAAsBM,eAC1E,IACAxJ,KAAKyL,MAAQ5J,CAjDb,MAJE2J,GAAWA,EAAQsI,mBAAkB,SAAUE,GAC7C/R,EAAMiB,OAAO8Q,EACf,GAoDJ,EACA1B,aAAc,SAAU3Q,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,GAC3D,IAAIzP,EAAOF,EAAYG,UACnBsD,EAAWvD,EAAKwD,aAAa,SAC7B4O,EAAatS,EAAYuH,SAAS,SAEtC,GAAI+K,EAAWxO,IAAI,QAAS,CAC1B,IAAI0K,EAAe8D,EAAWxO,IAAI,gBAC9BsE,EAAIuH,EAAQV,GAAKvE,EAAa8D,EAAa,GAAImB,EAAQR,GACvD9G,EAAIsH,EAAQT,GAAKxE,EAAa8D,EAAa,GAAImB,EAAQR,GACvD0B,GAAU7Q,EAAY8D,IAAI,OAC1BgN,GAAU9Q,EAAY8D,IAAI,OAC1ByO,EAAQvS,EAAYG,UAAU2D,IAAIL,EAAU,GAC5C0F,EAAYoH,EAAS5F,EAAU4H,EAAO,CAAC1B,EAAQC,GAAS,CAAC,EAAG,IAAI,IACpEzS,KAAKiC,MAAMC,IAAI,IAAI2E,EAAQU,KAAK,CAC9B0K,QAAQ,EACRnJ,MAAOjC,EAAQ4M,aAAa,CAAC,EAAGQ,EAAY,CAC1ClK,EAAGA,EACHC,EAAGA,EAEH1C,KAAMzF,EAAKgJ,QAAQ,GACnBI,UAAW,SACXC,kBAAmB,UAClB,CACDJ,UAAWA,EACXqJ,WAAW,MAGjB,CACF,EACA5B,cAAe,SAAU5Q,EAAa5B,EAAS6B,EAAKsQ,EAAUZ,GAC5D,IAAI8C,EAAczS,EAAYuH,SAAS,UACnCsJ,GAAU7Q,EAAY8D,IAAI,OAC1BgN,GAAU9Q,EAAY8D,IAAI,OAE9B,GAAI2O,EAAY3O,IAAI,QAAS,CAC3B,IAAI0K,EAAeiE,EAAY3O,IAAI,gBAC/BsE,EAAIuH,EAAQV,GAAKvE,EAAa8D,EAAa,GAAImB,EAAQR,GACvD9G,EAAIsH,EAAQT,GAAKxE,EAAa8D,EAAa,GAAImB,EAAQR,GACvDrK,EAAQ4F,EAAa+H,EAAY3O,IAAI,SAAU6L,EAAQR,GACvDnE,EAASN,EAAa+H,EAAY3O,IAAI,UAAW6L,EAAQR,GACzDjP,EAAOF,EAAYG,UACnBoS,EAAQrS,EAAK4D,IAAI5D,EAAKwD,aAAa,SAAU,GAC7CyF,EAAYoH,EAAS5F,EAAU4H,EAAO,CAAC1B,EAAQC,GAAS,CAAC,EAAG,IAAI,IACpEzS,KAAKiC,MAAMC,IAAI,IAAI2E,EAAQU,KAAK,CAC9B0K,QAAQ,EACRnJ,MAAOjC,EAAQ4M,aAAa,CAAC,EAAGW,EAAa,CAC3CrK,EAAGA,EACHC,EAAGA,EACH1C,KAAMyJ,EACNmD,EAAOE,EAAY3O,IAAI,cACvB4O,UAAWC,MAAM7N,GAAS,KAAOA,EACjC8N,WAAYD,MAAM3H,GAAU,KAAOA,EACnC1B,UAAW,SACXC,kBAAmB,UAClB,CACDJ,UAAWA,EACXqJ,WAAW,MAGjB,CACF,IAEE1U,EAAW2R,EACfnQ,EAAOC,QAAUzB,C,wBCpWjB,IAAI+U,EAAO,EAAQ,OAoBf/U,EAAW+U,EAAK9U,OAAO,CACzBC,KAAM,sBACNqJ,MAAO,CACL+J,MAAO,EACPtM,MAAO,GACPqK,EAAG,GACH/G,EAAG,EACHC,EAAG,GAELyK,UAAW,SAAUC,EAAK1L,GACxB,IAAI2L,EAAUlG,KAAK4E,IACfuB,EAAUnG,KAAK8E,IACfzC,EAAI9H,EAAM8H,EACVrK,EAAQuC,EAAMvC,MACdsM,EAAQ/J,EAAM+J,MACdhJ,EAAIf,EAAMe,EAAI4K,EAAQ5B,GAAStM,GAASA,GAASqK,EAAI,EAAI,EAAI,GAC7D9G,EAAIhB,EAAMgB,EAAI4K,EAAQ7B,GAAStM,GAASA,GAASqK,EAAI,EAAI,EAAI,GACjEiC,EAAQ/J,EAAM+J,MAAQtE,KAAK0C,GAAK,EAChCuD,EAAIG,OAAO9K,EAAGC,GACd0K,EAAII,OAAO9L,EAAMe,EAAI4K,EAAQ5B,GAAStM,EAAOuC,EAAMgB,EAAI4K,EAAQ7B,GAAStM,GACxEiO,EAAII,OAAO9L,EAAMe,EAAI4K,EAAQ3L,EAAM+J,OAASjC,EAAG9H,EAAMgB,EAAI4K,EAAQ5L,EAAM+J,OAASjC,GAChF4D,EAAII,OAAO9L,EAAMe,EAAI4K,EAAQ5B,GAAStM,EAAOuC,EAAMgB,EAAI4K,EAAQ7B,GAAStM,GACxEiO,EAAII,OAAO/K,EAAGC,EAEhB,IAGF/I,EAAOC,QAAUzB,C,wBC/CjB,IAAIP,EAAU,EAAQ,OAElB6V,EAAO,EAAQ,OAEfvR,EAAS,EAAQ,OAEjBE,EAAS,EAAQ,OAEjBC,EAAkBD,EAAOC,gBAEzBqR,EAAQ,EAAQ,MAEhBC,EAAU,EAAQ,OAElBC,EAAaD,EAAQC,WAErBC,EAA0B,EAAQ,OAElCrR,EAAuB,EAAQ,OAoB/BsR,EAAclW,EAAQ8E,kBAAkB,CAC1CrE,KAAM,eACN6B,KAAM,SAAU1B,GACdsV,EAAYnR,WAAWjE,KAAM,OAAQkE,WACrC,IAAImR,EAAOrV,KAEX,SAASsV,IACP,OAAOD,EAAKE,eACd,CAGAvV,KAAKmE,qBAAuB,IAAIL,EAAqBwR,EAAmBA,GACxEtV,KAAKwV,kBAAkB1V,EAAO2V,OAAS3V,EAAO4V,OAE9C1V,KAAK2V,uBACP,EACAC,YAAa,SAAU9V,GACrBsV,EAAYnR,WAAWjE,KAAM,cAAekE,WAC5ClE,KAAKwV,kBAAkB1V,EAAO2V,OAAS3V,EAAO4V,OAE9C1V,KAAK2V,uBACP,EACAE,qBAAsB,SAAU/V,GAC9BsV,EAAYnR,WAAWjE,KAAM,uBAAwBkE,WACrDP,EAAgB7D,EAAQ,CAAC,aAAc,CAAC,QAC1C,EACAD,eAAgB,SAAUC,EAAQC,GAChC,IAAI0V,EAAQ3V,EAAO2V,OAAS3V,EAAO4V,OAAS,GACxCI,EAAQhW,EAAO+B,MAAQ/B,EAAOgW,OAAS,GACvCT,EAAOrV,KAEX,GAAI8V,GAASL,EACX,OAAON,EAAwBW,EAAOL,EAAOzV,MAAM,EAAM+V,GAAYlU,KAGvE,SAASkU,EAAWC,EAAUC,GAE5BD,EAASE,WAAW,gBAAgB,SAAUC,GAC5C,IAAIC,EAAmBf,EAAKgB,kBACxBC,EAAcH,EAAMI,WAAW,YAC/BC,EAAgBJ,EAAiBE,GAOrC,OALIE,IACFA,EAAcC,YAAcN,EAAMM,YAClCN,EAAMM,YAAcD,GAGfL,CACT,IACA,IAAIO,EAAiBrB,EAAKnM,SAAS,aAE/ByN,EAAkB,IAAI3B,EAAM,CAC9BjQ,MAAO2R,EAAe5W,QACrB4W,EAAeD,YAAa1W,GAC3B6W,EAAyBvB,EAAKnM,SAAS,sBACvC2N,EAA0B,IAAI7B,EAAM,CACtCnQ,SAAU,CACRE,MAAO6R,EAAuB9W,SAE/B8W,EAAuBH,YAAa1W,GAMvC,SAAS+W,EAAcC,GAErB,OADAA,EAAO/W,KAAKgX,UAAUD,GACfA,GAAoB,UAAZA,EAAK,GAAiBJ,EAAkBI,GAAoB,aAAZA,EAAK,IAAiC,UAAZA,EAAK,GAAiBF,EAA0B7W,KAAKyW,WAChJ,CARAR,EAASC,WAAW,gBAAgB,SAAUC,GAE5C,OADAA,EAAMc,mBAAmBH,GAClBX,CACT,GAMF,CACF,EAKAe,SAAU,WACR,OAAOlX,KAAK8B,UAAUqV,KACxB,EAKAC,YAAa,WACX,OAAOpX,KAAKkX,WAAWjB,QACzB,EAKAX,kBAAmB,WACjB,OAAOtV,KAAKuV,eACd,EAKA8B,cAAe,SAAUpS,EAAWqS,EAAgBC,GAClD,GAAiB,SAAbA,EAAqB,CACvB,IAAIvB,EAAWhW,KAAK8B,UAChBoD,EAASlF,KAAKgF,cAAcC,EAAWsS,GACvCC,EAAOxB,EAASmB,MAAMM,eAAexS,GACrCyS,EAAa1B,EAASnL,QAAQ2M,EAAKG,MAAM1S,WACzC2S,EAAa5B,EAASnL,QAAQ2M,EAAKK,MAAM5S,WACzC6S,EAAO,GASX,OARc,MAAdJ,GAAsBI,EAAKlS,KAAK8R,GAClB,MAAdE,GAAsBE,EAAKlS,KAAKgS,GAChCE,EAAO5C,EAAW4C,EAAKC,KAAK,QAExB7S,EAAOgP,QACT4D,GAAQ,MAAQ5C,EAAWhQ,EAAOgP,QAG7B4D,CACT,CAEE,OAAO1C,EAAYnR,WAAWjE,KAAM,gBAAiBkE,UAEzD,EACAyR,sBAAuB,WACrB,IAAIqC,EAAaxU,EAAOyU,IAAIjY,KAAKF,OAAOkY,YAAc,IAAI,SAAUE,GAElE,OAAyB,MAAlBA,EAAShE,MAAgBgE,EAAW1U,EAAO9D,OAAO,CACvDwU,MAAO,GACNgE,EACL,IACIC,EAAiB,IAAIpD,EAAK,CAAC,SAAU/U,MACzCmY,EAAeC,SAASJ,GACxBhY,KAAKuV,gBAAkB4C,EACvBnY,KAAKqW,kBAAoB8B,EAAepL,UAAS,SAAU/F,GACzD,OAAOmR,EAAe9P,aAAarB,GAAK,EAC1C,GACF,EACAqR,QAAS,SAAUC,GACjBtY,KAAKF,OAAOwY,KAAOA,CACrB,EACAC,UAAW,SAAUlJ,GACnBrP,KAAKF,OAAOuP,OAASA,CACvB,EACAmJ,mBAAoB,WAClB,OAAOpD,EAAYjQ,UAAUnF,KAAM,yBACP,UAAvBA,KAAKyF,IAAI,WAAyBzF,KAAKyF,IAAI,yBAClD,EACArF,cAAe,CACbE,OAAQ,EACRC,EAAG,EACHF,iBAAkB,OAMlBG,iBAAiB,EACjBiY,gBAAgB,EAChBnQ,OAAQ,KACRoQ,oBAAoB,EAEpBC,SAAU,CACRC,aAAa,GAGfC,MAAO,CACLC,WAAY,KAEZC,UAAW,CAAC,EAAG,IACfC,QAAS,GAETC,SAAU,GAEVC,WAAY,GACZC,iBAAiB,GAEnBtT,KAAM,SACNC,IAAK,SAKLsT,OAAQ,SACRpY,WAAY,GACZqY,WAAY,CAAC,OAAQ,QACrBC,eAAgB,GAChBC,UAAW,CACTjT,SAAU,SACV0J,SAAU,GAEZwJ,WAAW,EACXC,MAAM,EAENpK,OAAQ,KACRiJ,KAAM,EAENoB,eAAgB,GAUhB3U,MAAO,CACLD,MAAM,EACN6U,UAAW,OAEbjT,UAAW,CAAC,EACZF,UAAW,CACToJ,MAAO,OACPnJ,MAAO,EACPmT,UAAW,EACXpR,QAAS,IAEX3D,SAAU,CACRE,MAAO,CACLD,MAAM,OAKVrF,EAAW2V,EACfnU,EAAOC,QAAUzB,C,wBClQjB,IAAIP,EAAU,EAAQ,OAElBsE,EAAS,EAAQ,OAEjBrC,EAAa,EAAQ,OAErB0Y,EAAW,EAAQ,OAEnBC,EAAiB,EAAQ,MAEzBC,EAAa,EAAQ,OAErBC,EAAgB,EAAQ,OAExBC,EAAsBD,EAAcC,oBAEpCpT,EAAU,EAAQ,OAElBqT,EAAa,EAAQ,OAErBC,EAAe,EAAQ,OAEvBC,EAAqBD,EAAaC,mBAoBlCC,EAAkB,uBAClBC,EAAoB,yBACpBC,EAAkB,CAAC,YAAa,WAChCC,EAAkB,CAAC,YAAa,WAEpC,SAASC,EAAeC,EAAMC,GAC5B,IAAInS,EAAUkS,EAAKE,UAAU,WAC7B,OAAkB,MAAXpS,EAAkBA,EAAUkS,EAAKxR,WAAWzD,IAAIkV,EACzD,CAEA,SAASE,EAAYH,EAAMC,EAAaG,GACtC,IAAI9G,EAAK0G,EAAKK,eACVvS,EAAUiS,EAAeC,EAAMC,GAEf,MAAhBG,IACS,MAAXtS,IAAoBA,EAAU,GAC9BA,GAAWsS,GAGb9G,EAAGgH,UAAYhH,EAAGgH,WAClBhH,EAAGiH,UAAS,SAAUC,GACpB,IAAKA,EAAMC,QAAS,CAClB,IAAIC,EAAOF,EAAMG,yBAEL,MAARD,GAAgC,MAAhBN,IAClBM,EAAO5S,GAGT0S,EAAMtS,SAAS,UAAWwS,EAC5B,CACF,GACF,CAEA,SAASE,EAAWZ,EAAMC,GACxB,IAAInS,EAAUiS,EAAeC,EAAMC,GAC/B3G,EAAK0G,EAAKK,eAId/G,EAAGiH,UAAS,SAAUC,IACnBA,EAAMC,SAAWD,EAAMtS,SAAS,UAAWJ,EAC9C,IACAwL,EAAGuH,WAAavH,EAAGuH,WACrB,CAEA,IAAI9b,EAAWP,EAAQqC,gBAAgB,CACrC5B,KAAM,QACN6B,KAAM,SAAUzB,EAAS6B,GACvB,IAAI4Z,EAAa,IAAIra,EACjBsa,EAAW,IAAI5B,EACf5X,EAAQjC,KAAKiC,MACjBjC,KAAK0b,YAAc,IAAI5B,EAAelY,EAAI+Z,SAC1C3b,KAAK4b,gBAAkB,CACrBC,OAAQ5Z,GAEVA,EAAMC,IAAIsZ,EAAWvZ,OACrBA,EAAMC,IAAIuZ,EAASxZ,OACnBjC,KAAKyB,YAAc+Z,EACnBxb,KAAK8b,UAAYL,EACjBzb,KAAK+b,cAAe,CACtB,EACAra,OAAQ,SAAUC,EAAa5B,EAAS6B,GACtC,IAAIoa,EAAYhc,KACZ6C,EAAWlB,EAAYtB,iBAC3BL,KAAK0D,OAAS/B,EACd,IAAI6Z,EAAaxb,KAAKyB,YAClBga,EAAWzb,KAAK8b,UAChB7Z,EAAQjC,KAAKiC,MAEjB,GAAsB,SAAlBY,EAASlD,KAAiB,CAC5B,IAAIsc,EAAe,CACjB3V,SAAUzD,EAASyD,SACnBxF,MAAO+B,EAAS/B,OAGdd,KAAK+b,aACP9Z,EAAMgI,KAAKgS,GAEXpV,EAAQkC,YAAY9G,EAAOga,EAActa,EAE7C,CAGAuY,EAAWvY,EAAYuV,WAAYkD,EAAmBzY,IACtD,IAAIE,EAAOF,EAAYG,UACvB0Z,EAAWxZ,WAAWH,GACtB,IAAIoU,EAAWtU,EAAYyV,cAC3BqE,EAASzZ,WAAWiU,GAEpBjW,KAAKkc,0BAELlc,KAAKmc,kBAAkBxa,EAAa5B,EAAS6B,GAE7Cwa,aAAapc,KAAKqc,gBAClB,IAAIC,EAAc3a,EAAY2a,YAC1BnD,EAAkBxX,EAAY8D,IAAI,yBAElC6W,GACFtc,KAAKuc,2BAA2BD,EAAanD,GAG/CtX,EAAKiS,mBAAkB,SAAUE,EAAIhN,GACnC,IAAIoB,EAAYvG,EAAKwG,aAAarB,GAElCgN,EAAGwI,IAAI,QAAQA,IAAI,WACnB,IAAIhD,EAAYpR,EAAU3C,IAAI,aAE1B+T,GACFxF,EAAGyI,GAAG,QAAQ,WACRH,IACFA,EAAYI,UACX1c,KAAK2c,YAAc3c,KAAKuc,2BAA2BD,EAAanD,GACjEmD,EAAYM,SAAS5V,GAErBnF,EAAKoN,cAAcjI,EAAKgN,EAAG1N,UAE/B,GAAGtG,MAAMyc,GAAG,WAAW,WACjBH,GACFA,EAAYO,WAAW7V,EAE3B,GAAGhH,MAGLgU,EAAG8I,aAAatD,GAAa8C,GAC7BtI,EAAGqG,IAAoBrG,EAAGwI,IAAI,YAAaxI,EAAGqG,IAC9CrG,EAAGsG,IAAsBtG,EAAGwI,IAAI,WAAYxI,EAAGsG,IAE3ClS,EAAU3C,IAAI,wBAChBuO,EAAGyI,GAAG,YAAazI,EAAGqG,GAAmB,WACvC2B,EAAUe,cAEVnb,EAAIob,eAAe,CACjBrd,KAAM,qBACNsd,SAAUtb,EAAYub,GACtBjY,UAAW+O,EAAG/O,WAElB,GACA+O,EAAGyI,GAAG,WAAYzI,EAAGsG,GAAqB,WACxC0B,EAAUmB,iBAAiBvb,EAC7B,GAEJ,GAAG5B,MACH6B,EAAKsV,MAAMiG,UAAS,SAAU5F,GAC5B,IAAIxD,EAAKwD,EAAKuD,eACd/G,EAAGqG,IAAoBrG,EAAGwI,IAAI,YAAaxI,EAAGqG,IAC9CrG,EAAGsG,IAAsBtG,EAAGwI,IAAI,WAAYxI,EAAGsG,IAE3C9C,EAAKtO,WAAWzD,IAAI,wBACtBuO,EAAGyI,GAAG,YAAazI,EAAGqG,GAAmB,WACvC2B,EAAUe,cAEVnb,EAAIob,eAAe,CACjBrd,KAAM,qBACNsd,SAAUtb,EAAYub,GACtBG,cAAe7F,EAAKvS,WAExB,GACA+O,EAAGyI,GAAG,WAAYzI,EAAGsG,GAAqB,WACxC0B,EAAUmB,iBAAiBvb,EAC7B,GAEJ,IACA,IAAI0b,EAAoD,aAA9B3b,EAAY8D,IAAI,WAA4B9D,EAAY8D,IAAI,wBAClFmL,EAAK/O,EAAK0b,UAAU,MACpB1M,EAAKhP,EAAK0b,UAAU,MACxB1b,EAAKiS,mBAAkB,SAAUE,EAAIhN,GACnC,IAAIoB,EAAYvG,EAAKwG,aAAarB,GAC9BwW,EAAcpV,EAAU3C,IAAI,iBAAmB,EAC/CgY,EAAazJ,EAAG0J,gBAEpB,GAAIJ,EAAqB,CACvB,IAAIK,EAAM9b,EAAK0G,cAAcvB,GACzB4W,EAAMnP,KAAKoP,MAAMF,EAAI,GAAK9M,EAAI8M,EAAI,GAAK/M,GAEvCgN,EAAM,IACRA,EAAgB,EAAVnP,KAAK0C,GAASyM,GAGtB,IAAIE,EAASH,EAAI,GAAK/M,EAElBkN,IACFF,GAAYnP,KAAK0C,IAGnB,IAAI4M,EAAeD,EAAS,OAAS,QACrCjX,EAAQmX,iBAAiBP,EAAY,CACnCQ,cAAeL,EACfG,aAAcA,EACdG,WAAY,UACX,CACDH,aAAcA,GAElB,MACElX,EAAQmX,iBAAiBP,EAAY,CACnCQ,aAAcT,GAAe/O,KAAK0C,GAAK,KAG7C,IACAnR,KAAK+b,cAAe,CACtB,EACA5Y,QAAS,WACPnD,KAAK0b,aAAe1b,KAAK0b,YAAYvY,UACrCnD,KAAK4b,gBAAkB,CAAC,EAExB5b,KAAK+c,aACP,EACAI,iBAAkB,SAAUvb,EAAKuc,GAC/B,IAAI9I,EAAOrV,KAEXA,KAAK+c,cAEL/c,KAAKoe,mBAAqBC,YAAW,WACnChJ,EAAK+I,mBAAqB,KAC1Bxc,EAAIob,eAAe,CACjBrd,KAAM,uBACNsd,SAAU5H,EAAK3R,OAAOwZ,IAE1B,GAAG,IACL,EACAH,YAAa,WACP/c,KAAKoe,qBACPhC,aAAapc,KAAKoe,oBAClBpe,KAAKoe,mBAAqB,KAE9B,EACA1F,mBAAoB,SAAU/W,EAAa5B,EAAS6B,EAAKqM,GACvD,IAAIpM,EAAOF,EAAYG,UACnBqV,EAAQtV,EAAKsV,MACblS,EAAYgJ,EAAQhJ,UACpBoY,EAAgBpP,EAAQoP,cACxBiB,EAAOnH,EAAMoH,eAAetZ,GAC5BuS,EAAOL,EAAMM,eAAe4F,IAE3BiB,GAAS9G,KAIdL,EAAMqH,UAAS,SAAUF,GACvBzD,EAAYyD,EAAM/D,EAAiB,GACrC,IACApD,EAAMiG,UAAS,SAAU5F,GACvBqD,EAAYrD,EAAMgD,EAAiB,GACrC,IAEI8D,IACFhD,EAAWgD,EAAM/D,GACjB/W,EAAO+J,KAAK+Q,EAAK7I,OAAO,SAAUgJ,GAC5BA,EAAaxZ,UAAY,IAI7BqW,EAAWmD,EAAcjE,GACzBc,EAAWmD,EAAa9G,MAAO4C,GAC/Be,EAAWmD,EAAa5G,MAAO0C,GACjC,KAGE/C,IACF8D,EAAW9D,EAAMgD,GACjBc,EAAW9D,EAAKG,MAAO4C,GACvBe,EAAW9D,EAAKK,MAAO0C,IAE3B,EACAmE,qBAAsB,SAAU/c,EAAa5B,EAAS6B,EAAKqM,GACzD,IAAIkJ,EAAQxV,EAAYG,UAAUqV,MAClCA,EAAMqH,UAAS,SAAUF,GACvBzD,EAAYyD,EAAM/D,EACpB,IACApD,EAAMiG,UAAS,SAAU5F,GACvBqD,EAAYrD,EAAMgD,EACpB,GACF,EACA+B,2BAA4B,SAAUD,EAAanD,GACjD,IAAI9D,EAAOrV,MAEX,SAAUgT,IACRsJ,EAAYtJ,MAAK,SAAU2L,GACzBtJ,EAAK1S,aAAa0S,EAAK3R,SACtB2R,EAAKsH,YAAcgC,KAAaxF,EAAkB9D,EAAKgH,eAAiBgC,WAAWrL,EAAM,IAAMA,IAClG,GACD,EALD,EAMF,EACAmJ,kBAAmB,SAAUxa,EAAa5B,EAAS6B,GACjD,IAAIgd,EAAa5e,KAAK0b,YAClBmD,EAAiB7e,KAAK4b,gBACtB3Z,EAAQjC,KAAKiC,MACjB2c,EAAWE,mBAAkB,SAAUC,EAAGhV,EAAGC,GAC3C,IAAIgV,EAAO/c,EAAMgd,kBAEjB,OADAD,EAAKE,eAAejd,EAAMc,WACnBic,EAAKG,QAAQpV,EAAGC,KAAOiQ,EAAoB8E,EAAGnd,EAAKD,EAC5D,IAE0C,SAAtCA,EAAYtB,iBAAiBV,MAKjCif,EAAWQ,OAAOzd,EAAY8D,IAAI,SAClCoZ,EAAeQ,UAAY1d,EAAY8D,IAAI,cAC3CoZ,EAAevG,KAAO3W,EAAYtB,iBAAiBif,UACnDV,EAAWpC,IAAI,OAAOA,IAAI,QAAQC,GAAG,OAAO,SAAUsC,GACpDhF,EAAWwF,gBAAgBV,EAAgBE,EAAES,GAAIT,EAAEU,IACnD7d,EAAIob,eAAe,CACjBC,SAAUtb,EAAYub,GACtBvd,KAAM,YACN6f,GAAIT,EAAES,GACNC,GAAIV,EAAEU,IAEV,IAAGhD,GAAG,QAAQ,SAAUsC,GACtBhF,EAAW2F,iBAAiBb,EAAgBE,EAAEje,MAAOie,EAAEY,QAASZ,EAAEa,SAClEhe,EAAIob,eAAe,CACjBC,SAAUtb,EAAYub,GACtBvd,KAAM,YACN2Y,KAAMyG,EAAEje,MACR6e,QAASZ,EAAEY,QACXC,QAASb,EAAEa,UAGb5f,KAAKkc,0BAELhC,EAAWvY,EAAYuV,WAAYkD,EAAmBzY,IAEtD3B,KAAK8b,UAAUnZ,cACjB,GAAG3C,OA9BD4e,EAAWiB,SA+Bf,EACA3D,wBAAyB,WACvB,IAAIva,EAAc3B,KAAK0D,OACnB7B,EAAOF,EAAYG,UACnBge,EAAY1F,EAAmBzY,GAC/Boe,EAAW,CAACD,EAAWA,GAC3Bje,EAAKiS,mBAAkB,SAAUE,EAAIhN,GACnCgN,EAAG/J,KAAK,QAAS8V,EACnB,GACF,EACApd,aAAc,SAAUhB,GACtBuY,EAAWvY,EAAYuV,WAAYkD,EAAmBzY,IAEtD3B,KAAKyB,YAAYkB,eAEjB3C,KAAK8b,UAAUnZ,cACjB,EACAO,OAAQ,SAAUnD,EAAS6B,GACzB5B,KAAKyB,aAAezB,KAAKyB,YAAYyB,SACrClD,KAAK8b,WAAa9b,KAAK8b,UAAU5Y,QACnC,IAGFjC,EAAOC,QAAUzB,C,wBCrYjB,IAAIugB,EAAY,EAAQ,OAEpBC,EAAO,EAAQ,OAEf9F,EAAe,EAAQ,OAEvB+F,EAAgB/F,EAAa+F,cAoB7BC,EAAK,GACLC,EAAK,GACLC,EAAK,GACLC,EAAcN,EAAUM,YACxBC,EAAeN,EAAKO,WACpBC,EAAUhS,KAAKiS,IAEnB,SAASC,EAAqBC,EAAavR,EAAQC,GASjD,IARA,IAIIuR,EAJAC,EAAKF,EAAY,GACjBG,EAAKH,EAAY,GACjBI,EAAKJ,EAAY,GACjBK,EAAIC,IAEJC,EAAe7R,EAASA,EACxB8R,EAAW,GAENC,EAAK,GAAKA,GAAM,GAAKA,GAAM,GAAK,CACvClB,EAAG,GAAKG,EAAYQ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIK,GACzClB,EAAG,GAAKG,EAAYQ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIK,GACzC,IAAI3V,EAAO+U,EAAQF,EAAaJ,EAAI9Q,GAAU8R,GAE1CzV,EAAOuV,IACTA,EAAIvV,EACJmV,EAAIQ,EAER,CAIA,IAAK,IAAIlU,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAE3B,IAAImU,EAAOT,EAAIO,EAGfhB,EAAG,GAAKE,EAAYQ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIH,GACzCT,EAAG,GAAKE,EAAYQ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIH,GACzCR,EAAG,GAAKC,EAAYQ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIM,GACzCjB,EAAG,GAAKC,EAAYQ,EAAG,GAAIC,EAAG,GAAIC,EAAG,GAAIM,GACrC5V,EAAO6U,EAAaH,EAAI/Q,GAAU8R,EAEtC,GAAIV,EAAQ/U,GAAQ,IAClB,MAIF,IAAI6V,EAAWhB,EAAaF,EAAIhR,GAAU8R,EAC1CC,GAAY,EAER1V,EAAO,EACL6V,GAAY,EACdV,GAAQO,EAERP,GAAQO,EAGNG,GAAY,EACdV,GAAQO,EAERP,GAAQO,CAGd,CAEA,OAAOP,CACT,CAGA,SAASphB,EAAS0X,EAAOrW,GACvB,IAAI0gB,EAAO,GACPC,EAAqBzB,EAAUyB,mBAC/BC,EAAM,CAAC,GAAI,GAAI,IACfC,EAAO,CAAC,GAAI,IACZC,EAAI,GACR9gB,GAAS,EACTqW,EAAMiG,UAAS,SAAU5F,EAAMxQ,GAC7B,IAAI8C,EAAa0N,EAAK+F,YAClBsE,EAAarK,EAAKoD,UAAU,cAC5BkH,EAAWtK,EAAKoD,UAAU,YAEzB9Q,EAAWiY,aACdjY,EAAWiY,WAAa,CAAC9B,EAAKjd,MAAM8G,EAAW,IAAKmW,EAAKjd,MAAM8G,EAAW,KAEtEA,EAAW,IACbA,EAAWiY,WAAWnc,KAAKqa,EAAKjd,MAAM8G,EAAW,MAIrD,IAAIkY,EAAiBlY,EAAWiY,WAEhC,GAAqB,MAAjBjY,EAAW,GAAY,CAKzB,GAJAmW,EAAKgC,KAAKP,EAAI,GAAIM,EAAe,IACjC/B,EAAKgC,KAAKP,EAAI,GAAIM,EAAe,IACjC/B,EAAKgC,KAAKP,EAAI,GAAIM,EAAe,IAE7BH,GAA6B,SAAfA,EAAuB,CACvC,IAAI7gB,EAAakf,EAAc1I,EAAKG,OAChCkJ,EAAIF,EAAqBe,EAAKM,EAAe,GAAIhhB,EAAaF,GAElE2gB,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIb,EAAGW,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,GACjBC,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIb,EAAGW,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,EACnB,CAEA,GAAIM,GAAyB,SAAbA,EAAqB,CAC/B9gB,EAAakf,EAAc1I,EAAKK,OAChCgJ,EAAIF,EAAqBe,EAAKM,EAAe,GAAIhhB,EAAaF,GAElE2gB,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIb,EAAGW,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,GACjBC,EAAmBC,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIA,EAAI,GAAG,GAAIb,EAAGW,GACvDE,EAAI,GAAG,GAAKF,EAAK,GACjBE,EAAI,GAAG,GAAKF,EAAK,EACnB,CAGAvB,EAAKgC,KAAKnY,EAAW,GAAI4X,EAAI,IAC7BzB,EAAKgC,KAAKnY,EAAW,GAAI4X,EAAI,IAC7BzB,EAAKgC,KAAKnY,EAAW,GAAI4X,EAAI,GAC/B,KACK,CAMD,GALAzB,EAAKgC,KAAKN,EAAK,GAAIK,EAAe,IAClC/B,EAAKgC,KAAKN,EAAK,GAAIK,EAAe,IAClC/B,EAAKiC,IAAIN,EAAGD,EAAK,GAAIA,EAAK,IAC1B1B,EAAKkC,UAAUP,EAAGA,GAEdC,GAA6B,SAAfA,EAAuB,CACnC7gB,EAAakf,EAAc1I,EAAKG,OACpCsI,EAAKmC,YAAYT,EAAK,GAAIA,EAAK,GAAIC,EAAG5gB,EAAaF,EACrD,CAEA,GAAIghB,GAAyB,SAAbA,EAAqB,CAC/B9gB,EAAakf,EAAc1I,EAAKK,OACpCoI,EAAKmC,YAAYT,EAAK,GAAIA,EAAK,GAAIC,GAAI5gB,EAAaF,EACtD,CAEAmf,EAAKgC,KAAKnY,EAAW,GAAI6X,EAAK,IAC9B1B,EAAKgC,KAAKnY,EAAW,GAAI6X,EAAK,GAChC,CACJ,GACF,CAEA1gB,EAAOC,QAAUzB,C","sources":["webpack://app/./node_modules/echarts/lib/chart/effectScatter.js","webpack://app/./node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","webpack://app/./node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","webpack://app/./node_modules/echarts/lib/chart/funnel.js","webpack://app/./node_modules/echarts/lib/chart/funnel/FunnelSeries.js","webpack://app/./node_modules/echarts/lib/chart/funnel/FunnelView.js","webpack://app/./node_modules/echarts/lib/chart/funnel/funnelLayout.js","webpack://app/./node_modules/echarts/lib/chart/gauge.js","webpack://app/./node_modules/echarts/lib/chart/gauge/GaugeSeries.js","webpack://app/./node_modules/echarts/lib/chart/gauge/GaugeView.js","webpack://app/./node_modules/echarts/lib/chart/gauge/PointerPath.js","webpack://app/./node_modules/echarts/lib/chart/graph/GraphSeries.js","webpack://app/./node_modules/echarts/lib/chart/graph/GraphView.js","webpack://app/./node_modules/echarts/lib/chart/graph/adjustEdge.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./effectScatter/EffectScatterSeries\");\n\nrequire(\"./effectScatter/EffectScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('effectScatter', 'circle'));\necharts.registerLayout(layoutPoints('effectScatter'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.effectScatter',\n dependencies: ['grid', 'polar'],\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n },\n brushSelector: 'point',\n defaultOption: {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n effectType: 'ripple',\n progressive: 0,\n // When to show the effect, option: 'render'|'emphasis'\n showEffectOn: 'render',\n // Ripple effect config\n rippleEffect: {\n period: 4,\n // Scale of ripple\n scale: 2.5,\n // Brush type can be fill or stroke\n brushType: 'fill'\n },\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // symbol: null, // 图形类型\n symbolSize: 10 // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2\n // symbolRotate: null, // 图形旋转控制\n // large: false,\n // Available when large is true\n // largeThreshold: 2000,\n // itemStyle: {\n // opacity: 1\n // }\n\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar EffectSymbol = require(\"../helper/EffectSymbol\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar pointsLayout = require(\"../../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n type: 'effectScatter',\n init: function () {\n this._symbolDraw = new SymbolDraw(EffectSymbol);\n },\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var effectSymbolDraw = this._symbolDraw;\n effectSymbolDraw.updateData(data);\n this.group.add(effectSymbolDraw.group);\n },\n updateTransform: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n this.group.dirty();\n var res = pointsLayout().reset(seriesModel);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout(data);\n },\n _updateGroupTransform: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.getRoamTransform) {\n this.group.transform = matrix.clone(coordSys.getRoamTransform());\n this.group.decomposeTransform();\n }\n },\n remove: function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(api);\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./funnel/FunnelSeries\");\n\nrequire(\"./funnel/FunnelView\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar funnelLayout = require(\"./funnel/funnelLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(dataColor('funnel'));\necharts.registerLayout(funnelLayout);\necharts.registerProcessor(dataFilter('funnel'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar _sourceHelper = require(\"../../data/helper/sourceHelper\");\n\nvar makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased;\n\nvar LegendVisualProvider = require(\"../../visual/LegendVisualProvider\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FunnelSeries = echarts.extendSeriesModel({\n type: 'series.funnel',\n init: function (option) {\n FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis\n\n this._defaultLabelLine(option);\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex);\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n legendHoverLink: true,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n // 默认取数据最小最大值\n // min: 0,\n // max: 100,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n // 'ascending', 'descending'\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n // color: 各异,\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = FunnelSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\nfunction FunnelPiece(data, idx) {\n graphic.Group.call(this);\n var polygon = new graphic.Polygon();\n var labelLine = new graphic.Polyline();\n var text = new graphic.Text();\n this.add(polygon);\n this.add(labelLine);\n this.add(text);\n\n this.highDownOnUpdate = function (fromState, toState) {\n if (toState === 'emphasis') {\n labelLine.ignore = labelLine.hoverIgnore;\n text.ignore = text.hoverIgnore;\n } else {\n labelLine.ignore = labelLine.normalIgnore;\n text.ignore = text.normalIgnore;\n }\n };\n\n this.updateData(data, idx, true);\n}\n\nvar funnelPieceProto = FunnelPiece.prototype;\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nfunnelPieceProto.updateData = function (data, idx, firstCreate) {\n var polygon = this.childAt(0);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var opacity = data.getItemModel(idx).get(opacityAccessPath);\n opacity = opacity == null ? 1 : opacity; // Reset style\n\n polygon.useStyle({});\n\n if (firstCreate) {\n polygon.setShape({\n points: layout.points\n });\n polygon.setStyle({\n opacity: 0\n });\n graphic.initProps(polygon, {\n style: {\n opacity: opacity\n }\n }, seriesModel, idx);\n } else {\n graphic.updateProps(polygon, {\n style: {\n opacity: opacity\n },\n shape: {\n points: layout.points\n }\n }, seriesModel, idx);\n } // Update common style\n\n\n var itemStyleModel = itemModel.getModel('itemStyle');\n var visualColor = data.getItemVisual(idx, 'color');\n polygon.setStyle(zrUtil.defaults({\n lineJoin: 'round',\n fill: visualColor\n }, itemStyleModel.getItemStyle(['opacity'])));\n polygon.hoverStyle = itemStyleModel.getModel('emphasis').getItemStyle();\n\n this._updateLabel(data, idx);\n\n graphic.setHoverStyle(this);\n};\n\nfunnelPieceProto._updateLabel = function (data, idx) {\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.updateProps(labelLine, {\n shape: {\n points: labelLayout.linePoints || labelLayout.linePoints\n }\n }, seriesModel, idx);\n graphic.updateProps(labelText, {\n style: {\n x: labelLayout.x,\n y: labelLayout.y\n }\n }, seriesModel, idx);\n labelText.attr({\n rotation: labelLayout.rotation,\n origin: [labelLayout.x, labelLayout.y],\n z2: 10\n });\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultText: data.getName(idx),\n autoColor: visualColor,\n useInsideStyle: !!labelLayout.inside\n }, {\n textAlign: labelLayout.textAlign,\n textVerticalAlign: labelLayout.verticalAlign\n });\n labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n labelText.hoverIgnore = !labelHoverModel.get('show');\n labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n labelLine.setStyle({\n stroke: visualColor\n });\n labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n};\n\nzrUtil.inherits(FunnelPiece, graphic.Group);\nvar FunnelView = ChartView.extend({\n type: 'funnel',\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n data.diff(oldData).add(function (idx) {\n var funnelPiece = new FunnelPiece(data, idx);\n data.setItemGraphicEl(idx, funnelPiece);\n group.add(funnelPiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx);\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n group.remove(piePiece);\n }).execute();\n this._data = data;\n },\n remove: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: function () {}\n});\nvar _default = FunnelView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = require(\"../../util/layout\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction getSortedIndices(data, sort) {\n var valueDim = data.mapDimension('value');\n var valueArr = data.mapArray(valueDim, function (val) {\n return val;\n });\n var indices = [];\n var isAscending = sort === 'ascending';\n\n for (var i = 0, len = data.count(); i < len; i++) {\n indices[i] = i;\n } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n if (typeof sort === 'function') {\n indices.sort(sort);\n } else if (sort !== 'none') {\n indices.sort(function (a, b) {\n return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n });\n }\n\n return indices;\n}\n\nfunction labelLayout(data) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var labelLineModel = itemModel.getModel('labelLine');\n var layout = data.getItemLayout(idx);\n var points = layout.points;\n var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n var textAlign;\n var textX;\n var textY;\n var linePoints;\n\n if (isLabelInside) {\n if (labelPosition === 'insideLeft') {\n textX = (points[0][0] + points[3][0]) / 2 + 5;\n textY = (points[0][1] + points[3][1]) / 2;\n textAlign = 'left';\n } else if (labelPosition === 'insideRight') {\n textX = (points[1][0] + points[2][0]) / 2 - 5;\n textY = (points[1][1] + points[2][1]) / 2;\n textAlign = 'right';\n } else {\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n textAlign = 'center';\n }\n\n linePoints = [[textX, textY], [textX, textY]];\n } else {\n var x1;\n var y1;\n var x2;\n var labelLineLen = labelLineModel.get('length');\n\n if (labelPosition === 'left') {\n // Left side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'right') {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n } else if (labelPosition === 'rightTop') {\n // RightTop side\n x1 = points[1][0];\n y1 = points[1][1];\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'top';\n } else if (labelPosition === 'rightBottom') {\n // RightBottom side\n x1 = points[2][0];\n y1 = points[2][1];\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'bottom';\n } else if (labelPosition === 'leftTop') {\n // LeftTop side\n x1 = points[0][0];\n y1 = points[1][1];\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'leftBottom') {\n // LeftBottom side\n x1 = points[3][0];\n y1 = points[2][1];\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n }\n\n var y2 = y1;\n linePoints = [[x1, y1], [x2, y2]];\n textY = y2;\n }\n\n layout.label = {\n linePoints: linePoints,\n x: textX,\n y: textY,\n verticalAlign: 'middle',\n textAlign: textAlign,\n inside: isLabelInside\n };\n });\n}\n\nfunction _default(ecModel, api, payload) {\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var sort = seriesModel.get('sort');\n var viewRect = getViewRect(seriesModel, api);\n var indices = getSortedIndices(data, sort);\n var sizeExtent = [parsePercent(seriesModel.get('minSize'), viewRect.width), parsePercent(seriesModel.get('maxSize'), viewRect.width)];\n var dataExtent = data.getDataExtent(valueDim);\n var min = seriesModel.get('min');\n var max = seriesModel.get('max');\n\n if (min == null) {\n min = Math.min(dataExtent[0], 0);\n }\n\n if (max == null) {\n max = dataExtent[1];\n }\n\n var funnelAlign = seriesModel.get('funnelAlign');\n var gap = seriesModel.get('gap');\n var itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\n var y = viewRect.y;\n\n var getLinePoints = function (idx, offY) {\n // End point index is data.count() and we assign it 0\n var val = data.get(valueDim, idx) || 0;\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n var x0;\n\n switch (funnelAlign) {\n case 'left':\n x0 = viewRect.x;\n break;\n\n case 'center':\n x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = viewRect.x + viewRect.width - itemWidth;\n break;\n }\n\n return [[x0, offY], [x0 + itemWidth, offY]];\n };\n\n if (sort === 'ascending') {\n // From bottom to top\n itemHeight = -itemHeight;\n gap = -gap;\n y += viewRect.height;\n indices = indices.reverse();\n }\n\n for (var i = 0; i < indices.length; i++) {\n var idx = indices[i];\n var nextIdx = indices[i + 1];\n var itemModel = data.getItemModel(idx);\n var height = itemModel.get('itemStyle.height');\n\n if (height == null) {\n height = itemHeight;\n } else {\n height = parsePercent(height, viewRect.height);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = getLinePoints(idx, y);\n var end = getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n\n labelLayout(data);\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./gauge/GaugeSeries\");\n\nrequire(\"./gauge/GaugeView\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GaugeSeries = SeriesModel.extend({\n type: 'series.gauge',\n getInitialData: function (option, ecModel) {\n return createListSimply(this, ['value']);\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n // 默认全局居中\n center: ['50%', '50%'],\n legendHoverLink: true,\n radius: '75%',\n startAngle: 225,\n endAngle: -45,\n clockwise: true,\n // 最小值\n min: 0,\n // 最大值\n max: 100,\n // 分割段数,默认为10\n splitNumber: 10,\n // 坐标轴线\n axisLine: {\n // 默认显示,属性show控制显示与否\n show: true,\n lineStyle: {\n // 属性lineStyle控制线条样式\n color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']],\n width: 30\n }\n },\n // 分隔线\n splitLine: {\n // 默认显示,属性show控制显示与否\n show: true,\n // 属性length控制线长\n length: 30,\n // 属性lineStyle(详见lineStyle)控制线条样式\n lineStyle: {\n color: '#eee',\n width: 2,\n type: 'solid'\n }\n },\n // 坐标轴小标记\n axisTick: {\n // 属性show控制显示与否,默认不显示\n show: true,\n // 每份split细分多少段\n splitNumber: 5,\n // 属性length控制线长\n length: 8,\n // 属性lineStyle控制线条样式\n lineStyle: {\n color: '#eee',\n width: 1,\n type: 'solid'\n }\n },\n axisLabel: {\n show: true,\n distance: 5,\n // formatter: null,\n color: 'auto'\n },\n pointer: {\n show: true,\n length: '80%',\n width: 8\n },\n itemStyle: {\n color: 'auto'\n },\n title: {\n show: true,\n // x, y,单位px\n offsetCenter: [0, '-40%'],\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#333',\n fontSize: 15\n },\n detail: {\n show: true,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n borderColor: '#ccc',\n width: 100,\n height: null,\n // self-adaption\n padding: [5, 10],\n // x, y,单位px\n offsetCenter: [0, '40%'],\n // formatter: null,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: 'auto',\n fontSize: 30\n }\n }\n});\nvar _default = GaugeSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar PointerPath = require(\"./PointerPath\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar round = _number.round;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction parsePosition(seriesModel, api) {\n var center = seriesModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], api.getWidth());\n var cy = parsePercent(center[1], api.getHeight());\n var r = parsePercent(seriesModel.get('radius'), size / 2);\n return {\n cx: cx,\n cy: cy,\n r: r\n };\n}\n\nfunction formatLabel(label, labelFormatter) {\n if (labelFormatter) {\n if (typeof labelFormatter === 'string') {\n label = labelFormatter.replace('{value}', label != null ? label : '');\n } else if (typeof labelFormatter === 'function') {\n label = labelFormatter(label);\n }\n }\n\n return label;\n}\n\nvar PI2 = Math.PI * 2;\nvar GaugeView = ChartView.extend({\n type: 'gauge',\n render: function (seriesModel, ecModel, api) {\n this.group.removeAll();\n var colorList = seriesModel.get('axisLine.lineStyle.color');\n var posInfo = parsePosition(seriesModel, api);\n\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n },\n dispose: function () {},\n _renderMain: function (seriesModel, ecModel, api, colorList, posInfo) {\n var group = this.group;\n var axisLineModel = seriesModel.getModel('axisLine');\n var lineStyleModel = axisLineModel.getModel('lineStyle');\n var clockwise = seriesModel.get('clockwise');\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n var angleRangeSpan = (endAngle - startAngle) % PI2;\n var prevEndAngle = startAngle;\n var axisLineWidth = lineStyleModel.get('width');\n var showAxis = axisLineModel.get('show');\n\n for (var i = 0; showAxis && i < colorList.length; i++) {\n // Clamp\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n var endAngle = startAngle + angleRangeSpan * percent;\n var sector = new graphic.Sector({\n shape: {\n startAngle: prevEndAngle,\n endAngle: endAngle,\n cx: posInfo.cx,\n cy: posInfo.cy,\n clockwise: clockwise,\n r0: posInfo.r - axisLineWidth,\n r: posInfo.r\n },\n silent: true\n });\n sector.setStyle({\n fill: colorList[i][1]\n });\n sector.setStyle(lineStyleModel.getLineStyle( // Because we use sector to simulate arc\n // so the properties for stroking are useless\n ['color', 'borderWidth', 'borderColor']));\n group.add(sector);\n prevEndAngle = endAngle;\n }\n\n var getColor = function (percent) {\n // Less than 0\n if (percent <= 0) {\n return colorList[0][1];\n }\n\n for (var i = 0; i < colorList.length; i++) {\n if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n return colorList[i][1];\n }\n } // More than 1\n\n\n return colorList[i - 1][1];\n };\n\n if (!clockwise) {\n var tmp = startAngle;\n startAngle = endAngle;\n endAngle = tmp;\n }\n\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\n\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\n\n this._renderTitle(seriesModel, ecModel, api, getColor, posInfo);\n\n this._renderDetail(seriesModel, ecModel, api, getColor, posInfo);\n },\n _renderTicks: function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\n var group = this.group;\n var cx = posInfo.cx;\n var cy = posInfo.cy;\n var r = posInfo.r;\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var splitLineModel = seriesModel.getModel('splitLine');\n var tickModel = seriesModel.getModel('axisTick');\n var labelModel = seriesModel.getModel('axisLabel');\n var splitNumber = seriesModel.get('splitNumber');\n var subSplitNumber = tickModel.get('splitNumber');\n var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n var tickLen = parsePercent(tickModel.get('length'), r);\n var angle = startAngle;\n var step = (endAngle - startAngle) / splitNumber;\n var subStep = step / subSplitNumber;\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n\n for (var i = 0; i <= splitNumber; i++) {\n var unitX = Math.cos(angle);\n var unitY = Math.sin(angle); // Split line\n\n if (splitLineModel.get('show')) {\n var splitLine = new graphic.Line({\n shape: {\n x1: unitX * r + cx,\n y1: unitY * r + cy,\n x2: unitX * (r - splitLineLen) + cx,\n y2: unitY * (r - splitLineLen) + cy\n },\n style: splitLineStyle,\n silent: true\n });\n\n if (splitLineStyle.stroke === 'auto') {\n splitLine.setStyle({\n stroke: getColor(i / splitNumber)\n });\n }\n\n group.add(splitLine);\n } // Label\n\n\n if (labelModel.get('show')) {\n var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n var distance = labelModel.get('distance');\n var autoColor = getColor(i / splitNumber);\n group.add(new graphic.Text({\n style: graphic.setTextStyle({}, labelModel, {\n text: label,\n x: unitX * (r - splitLineLen - distance) + cx,\n y: unitY * (r - splitLineLen - distance) + cy,\n textVerticalAlign: unitY < -0.4 ? 'top' : unitY > 0.4 ? 'bottom' : 'middle',\n textAlign: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n }, {\n autoColor: autoColor\n }),\n silent: true\n }));\n } // Axis tick\n\n\n if (tickModel.get('show') && i !== splitNumber) {\n for (var j = 0; j <= subSplitNumber; j++) {\n var unitX = Math.cos(angle);\n var unitY = Math.sin(angle);\n var tickLine = new graphic.Line({\n shape: {\n x1: unitX * r + cx,\n y1: unitY * r + cy,\n x2: unitX * (r - tickLen) + cx,\n y2: unitY * (r - tickLen) + cy\n },\n silent: true,\n style: tickLineStyle\n });\n\n if (tickLineStyle.stroke === 'auto') {\n tickLine.setStyle({\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\n });\n }\n\n group.add(tickLine);\n angle += subStep;\n }\n\n angle -= subStep;\n } else {\n angle += step;\n }\n }\n },\n _renderPointer: function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\n var group = this.group;\n var oldData = this._data;\n\n if (!seriesModel.get('pointer.show')) {\n // Remove old element\n oldData && oldData.eachItemGraphicEl(function (el) {\n group.remove(el);\n });\n return;\n }\n\n var valueExtent = [+seriesModel.get('min'), +seriesModel.get('max')];\n var angleExtent = [startAngle, endAngle];\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n data.diff(oldData).add(function (idx) {\n var pointer = new PointerPath({\n shape: {\n angle: startAngle\n }\n });\n graphic.initProps(pointer, {\n shape: {\n angle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true)\n }\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(idx, pointer);\n }).update(function (newIdx, oldIdx) {\n var pointer = oldData.getItemGraphicEl(oldIdx);\n graphic.updateProps(pointer, {\n shape: {\n angle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true)\n }\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(newIdx, pointer);\n }).remove(function (idx) {\n var pointer = oldData.getItemGraphicEl(idx);\n group.remove(pointer);\n }).execute();\n data.eachItemGraphicEl(function (pointer, idx) {\n var itemModel = data.getItemModel(idx);\n var pointerModel = itemModel.getModel('pointer');\n pointer.setShape({\n x: posInfo.cx,\n y: posInfo.cy,\n width: parsePercent(pointerModel.get('width'), posInfo.r),\n r: parsePercent(pointerModel.get('length'), posInfo.r)\n });\n pointer.useStyle(itemModel.getModel('itemStyle').getItemStyle());\n\n if (pointer.style.fill === 'auto') {\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n }\n\n graphic.setHoverStyle(pointer, itemModel.getModel('emphasis.itemStyle').getItemStyle());\n });\n this._data = data;\n },\n _renderTitle: function (seriesModel, ecModel, api, getColor, posInfo) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var titleModel = seriesModel.getModel('title');\n\n if (titleModel.get('show')) {\n var offsetCenter = titleModel.get('offsetCenter');\n var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r);\n var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r);\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var value = seriesModel.getData().get(valueDim, 0);\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n this.group.add(new graphic.Text({\n silent: true,\n style: graphic.setTextStyle({}, titleModel, {\n x: x,\n y: y,\n // FIXME First data name ?\n text: data.getName(0),\n textAlign: 'center',\n textVerticalAlign: 'middle'\n }, {\n autoColor: autoColor,\n forceRich: true\n })\n }));\n }\n },\n _renderDetail: function (seriesModel, ecModel, api, getColor, posInfo) {\n var detailModel = seriesModel.getModel('detail');\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n\n if (detailModel.get('show')) {\n var offsetCenter = detailModel.get('offsetCenter');\n var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r);\n var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r);\n var width = parsePercent(detailModel.get('width'), posInfo.r);\n var height = parsePercent(detailModel.get('height'), posInfo.r);\n var data = seriesModel.getData();\n var value = data.get(data.mapDimension('value'), 0);\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n this.group.add(new graphic.Text({\n silent: true,\n style: graphic.setTextStyle({}, detailModel, {\n x: x,\n y: y,\n text: formatLabel( // FIXME First data name ?\n value, detailModel.get('formatter')),\n textWidth: isNaN(width) ? null : width,\n textHeight: isNaN(height) ? null : height,\n textAlign: 'center',\n textVerticalAlign: 'middle'\n }, {\n autoColor: autoColor,\n forceRich: true\n })\n }));\n }\n }\n});\nvar _default = GaugeView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Path.extend({\n type: 'echartsGaugePointer',\n shape: {\n angle: 0,\n width: 10,\n r: 10,\n x: 0,\n y: 0\n },\n buildPath: function (ctx, shape) {\n var mathCos = Math.cos;\n var mathSin = Math.sin;\n var r = shape.r;\n var width = shape.width;\n var angle = shape.angle;\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n angle = shape.angle - Math.PI / 2;\n ctx.moveTo(x, y);\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n ctx.lineTo(x, y);\n return;\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar List = require(\"../../data/List\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar Model = require(\"../../model/Model\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar createGraphFromNodeEdge = require(\"../helper/createGraphFromNodeEdge\");\n\nvar LegendVisualProvider = require(\"../../visual/LegendVisualProvider\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GraphSeries = echarts.extendSeriesModel({\n type: 'series.graph',\n init: function (option) {\n GraphSeries.superApply(this, 'init', arguments);\n var self = this;\n\n function getCategoriesData() {\n return self._categoriesData;\n } // Provide data for legend select\n\n\n this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n },\n mergeOption: function (option) {\n GraphSeries.superApply(this, 'mergeOption', arguments);\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n },\n mergeDefaultAndTheme: function (option) {\n GraphSeries.superApply(this, 'mergeDefaultAndTheme', arguments);\n defaultEmphasis(option, ['edgeLabel'], ['show']);\n },\n getInitialData: function (option, ecModel) {\n var edges = option.edges || option.links || [];\n var nodes = option.data || option.nodes || [];\n var self = this;\n\n if (nodes && edges) {\n return createGraphFromNodeEdge(nodes, edges, this, true, beforeLink).data;\n }\n\n function beforeLink(nodeData, edgeData) {\n // Overwrite nodeData.getItemModel to\n nodeData.wrapMethod('getItemModel', function (model) {\n var categoriesModels = self._categoriesModels;\n var categoryIdx = model.getShallow('category');\n var categoryModel = categoriesModels[categoryIdx];\n\n if (categoryModel) {\n categoryModel.parentModel = model.parentModel;\n model.parentModel = categoryModel;\n }\n\n return model;\n });\n var edgeLabelModel = self.getModel('edgeLabel'); // For option `edgeLabel` can be found by label.xxx.xxx on item mode.\n\n var fakeSeriesModel = new Model({\n label: edgeLabelModel.option\n }, edgeLabelModel.parentModel, ecModel);\n var emphasisEdgeLabelModel = self.getModel('emphasis.edgeLabel');\n var emphasisFakeSeriesModel = new Model({\n emphasis: {\n label: emphasisEdgeLabelModel.option\n }\n }, emphasisEdgeLabelModel.parentModel, ecModel);\n edgeData.wrapMethod('getItemModel', function (model) {\n model.customizeGetParent(edgeGetParent);\n return model;\n });\n\n function edgeGetParent(path) {\n path = this.parsePath(path);\n return path && path[0] === 'label' ? fakeSeriesModel : path && path[0] === 'emphasis' && path[1] === 'label' ? emphasisFakeSeriesModel : this.parentModel;\n }\n }\n },\n\n /**\n * @return {module:echarts/data/Graph}\n */\n getGraph: function () {\n return this.getData().graph;\n },\n\n /**\n * @return {module:echarts/data/List}\n */\n getEdgeData: function () {\n return this.getGraph().edgeData;\n },\n\n /**\n * @return {module:echarts/data/List}\n */\n getCategoriesData: function () {\n return this._categoriesData;\n },\n\n /**\n * @override\n */\n formatTooltip: function (dataIndex, multipleSeries, dataType) {\n if (dataType === 'edge') {\n var nodeData = this.getData();\n var params = this.getDataParams(dataIndex, dataType);\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n var sourceName = nodeData.getName(edge.node1.dataIndex);\n var targetName = nodeData.getName(edge.node2.dataIndex);\n var html = [];\n sourceName != null && html.push(sourceName);\n targetName != null && html.push(targetName);\n html = encodeHTML(html.join(' > '));\n\n if (params.value) {\n html += ' : ' + encodeHTML(params.value);\n }\n\n return html;\n } else {\n // dataType === 'node' or empty\n return GraphSeries.superApply(this, 'formatTooltip', arguments);\n }\n },\n _updateCategoriesData: function () {\n var categories = zrUtil.map(this.option.categories || [], function (category) {\n // Data must has value\n return category.value != null ? category : zrUtil.extend({\n value: 0\n }, category);\n });\n var categoriesData = new List(['value'], this);\n categoriesData.initData(categories);\n this._categoriesData = categoriesData;\n this._categoriesModels = categoriesData.mapArray(function (idx) {\n return categoriesData.getItemModel(idx, true);\n });\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n isAnimationEnabled: function () {\n return GraphSeries.superCall(this, 'isAnimationEnabled') // Not enable animation when do force layout\n && !(this.get('layout') === 'force' && this.get('force.layoutAnimation'));\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // Default option for all coordinate systems\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // polarIndex: 0,\n // geoIndex: 0,\n legendHoverLink: true,\n hoverAnimation: true,\n layout: null,\n focusNodeAdjacency: false,\n // Configuration of circular layout\n circular: {\n rotateLabel: false\n },\n // Configuration of force directed layout\n force: {\n initLayout: null,\n // Node repulsion. Can be an array to represent range.\n repulsion: [0, 50],\n gravity: 0.1,\n // Initial friction\n friction: 0.6,\n // Edge length. Can be an array to represent range.\n edgeLength: 30,\n layoutAnimation: true\n },\n left: 'center',\n top: 'center',\n // right: null,\n // bottom: null,\n // width: '80%',\n // height: '80%',\n symbol: 'circle',\n symbolSize: 10,\n edgeSymbol: ['none', 'none'],\n edgeSymbolSize: 10,\n edgeLabel: {\n position: 'middle',\n distance: 5\n },\n draggable: false,\n roam: false,\n // Default on center of graph\n center: null,\n zoom: 1,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.6,\n // cursor: null,\n // categories: [],\n // data: []\n // Or\n // nodes: []\n //\n // links: []\n // Or\n // edges: []\n label: {\n show: false,\n formatter: '{b}'\n },\n itemStyle: {},\n lineStyle: {\n color: '#aaa',\n width: 1,\n curveness: 0,\n opacity: 0.5\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = GraphSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar LineDraw = require(\"../helper/LineDraw\");\n\nvar RoamController = require(\"../../component/helper/RoamController\");\n\nvar roamHelper = require(\"../../component/helper/roamHelper\");\n\nvar _cursorHelper = require(\"../../component/helper/cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar adjustEdge = require(\"./adjustEdge\");\n\nvar _graphHelper = require(\"./graphHelper\");\n\nvar getNodeGlobalScale = _graphHelper.getNodeGlobalScale;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FOCUS_ADJACENCY = '__focusNodeAdjacency';\nvar UNFOCUS_ADJACENCY = '__unfocusNodeAdjacency';\nvar nodeOpacityPath = ['itemStyle', 'opacity'];\nvar lineOpacityPath = ['lineStyle', 'opacity'];\n\nfunction getItemOpacity(item, opacityPath) {\n var opacity = item.getVisual('opacity');\n return opacity != null ? opacity : item.getModel().get(opacityPath);\n}\n\nfunction fadeOutItem(item, opacityPath, opacityRatio) {\n var el = item.getGraphicEl();\n var opacity = getItemOpacity(item, opacityPath);\n\n if (opacityRatio != null) {\n opacity == null && (opacity = 1);\n opacity *= opacityRatio;\n }\n\n el.downplay && el.downplay();\n el.traverse(function (child) {\n if (!child.isGroup) {\n var opct = child.lineLabelOriginalOpacity;\n\n if (opct == null || opacityRatio != null) {\n opct = opacity;\n }\n\n child.setStyle('opacity', opct);\n }\n });\n}\n\nfunction fadeInItem(item, opacityPath) {\n var opacity = getItemOpacity(item, opacityPath);\n var el = item.getGraphicEl(); // Should go back to normal opacity first, consider hoverLayer,\n // where current state is copied to elMirror, and support\n // emphasis opacity here.\n\n el.traverse(function (child) {\n !child.isGroup && child.setStyle('opacity', opacity);\n });\n el.highlight && el.highlight();\n}\n\nvar _default = echarts.extendChartView({\n type: 'graph',\n init: function (ecModel, api) {\n var symbolDraw = new SymbolDraw();\n var lineDraw = new LineDraw();\n var group = this.group;\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n group.add(symbolDraw.group);\n group.add(lineDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineDraw = lineDraw;\n this._firstRender = true;\n },\n render: function (seriesModel, ecModel, api) {\n var graphView = this;\n var coordSys = seriesModel.coordinateSystem;\n this._model = seriesModel;\n var symbolDraw = this._symbolDraw;\n var lineDraw = this._lineDraw;\n var group = this.group;\n\n if (coordSys.type === 'view') {\n var groupNewProp = {\n position: coordSys.position,\n scale: coordSys.scale\n };\n\n if (this._firstRender) {\n group.attr(groupNewProp);\n } else {\n graphic.updateProps(group, groupNewProp, seriesModel);\n }\n } // Fix edge contact point with node\n\n\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n var data = seriesModel.getData();\n symbolDraw.updateData(data);\n var edgeData = seriesModel.getEdgeData();\n lineDraw.updateData(edgeData);\n\n this._updateNodeAndLinkScale();\n\n this._updateController(seriesModel, ecModel, api);\n\n clearTimeout(this._layoutTimeout);\n var forceLayout = seriesModel.forceLayout;\n var layoutAnimation = seriesModel.get('force.layoutAnimation');\n\n if (forceLayout) {\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\n }\n\n data.eachItemGraphicEl(function (el, idx) {\n var itemModel = data.getItemModel(idx); // Update draggable\n\n el.off('drag').off('dragend');\n var draggable = itemModel.get('draggable');\n\n if (draggable) {\n el.on('drag', function () {\n if (forceLayout) {\n forceLayout.warmUp();\n !this._layouting && this._startForceLayoutIteration(forceLayout, layoutAnimation);\n forceLayout.setFixed(idx); // Write position back to layout\n\n data.setItemLayout(idx, el.position);\n }\n }, this).on('dragend', function () {\n if (forceLayout) {\n forceLayout.setUnfixed(idx);\n }\n }, this);\n }\n\n el.setDraggable(draggable && forceLayout);\n el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]);\n el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]);\n\n if (itemModel.get('focusNodeAdjacency')) {\n el.on('mouseover', el[FOCUS_ADJACENCY] = function () {\n graphView._clearTimer();\n\n api.dispatchAction({\n type: 'focusNodeAdjacency',\n seriesId: seriesModel.id,\n dataIndex: el.dataIndex\n });\n });\n el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {\n graphView._dispatchUnfocus(api);\n });\n }\n }, this);\n data.graph.eachEdge(function (edge) {\n var el = edge.getGraphicEl();\n el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]);\n el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]);\n\n if (edge.getModel().get('focusNodeAdjacency')) {\n el.on('mouseover', el[FOCUS_ADJACENCY] = function () {\n graphView._clearTimer();\n\n api.dispatchAction({\n type: 'focusNodeAdjacency',\n seriesId: seriesModel.id,\n edgeDataIndex: edge.dataIndex\n });\n });\n el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {\n graphView._dispatchUnfocus(api);\n });\n }\n });\n var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get('circular.rotateLabel');\n var cx = data.getLayout('cx');\n var cy = data.getLayout('cy');\n data.eachItemGraphicEl(function (el, idx) {\n var itemModel = data.getItemModel(idx);\n var labelRotate = itemModel.get('label.rotate') || 0;\n var symbolPath = el.getSymbolPath();\n\n if (circularRotateLabel) {\n var pos = data.getItemLayout(idx);\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n var isLeft = pos[0] < cx;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n graphic.modifyLabelStyle(symbolPath, {\n textRotation: -rad,\n textPosition: textPosition,\n textOrigin: 'center'\n }, {\n textPosition: textPosition\n });\n } else {\n graphic.modifyLabelStyle(symbolPath, {\n textRotation: labelRotate *= Math.PI / 180\n });\n }\n });\n this._firstRender = false;\n },\n dispose: function () {\n this._controller && this._controller.dispose();\n this._controllerHost = {};\n\n this._clearTimer();\n },\n _dispatchUnfocus: function (api, opt) {\n var self = this;\n\n this._clearTimer();\n\n this._unfocusDelayTimer = setTimeout(function () {\n self._unfocusDelayTimer = null;\n api.dispatchAction({\n type: 'unfocusNodeAdjacency',\n seriesId: self._model.id\n });\n }, 500);\n },\n _clearTimer: function () {\n if (this._unfocusDelayTimer) {\n clearTimeout(this._unfocusDelayTimer);\n this._unfocusDelayTimer = null;\n }\n },\n focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var graph = data.graph;\n var dataIndex = payload.dataIndex;\n var edgeDataIndex = payload.edgeDataIndex;\n var node = graph.getNodeByIndex(dataIndex);\n var edge = graph.getEdgeByIndex(edgeDataIndex);\n\n if (!node && !edge) {\n return;\n }\n\n graph.eachNode(function (node) {\n fadeOutItem(node, nodeOpacityPath, 0.1);\n });\n graph.eachEdge(function (edge) {\n fadeOutItem(edge, lineOpacityPath, 0.1);\n });\n\n if (node) {\n fadeInItem(node, nodeOpacityPath);\n zrUtil.each(node.edges, function (adjacentEdge) {\n if (adjacentEdge.dataIndex < 0) {\n return;\n }\n\n fadeInItem(adjacentEdge, lineOpacityPath);\n fadeInItem(adjacentEdge.node1, nodeOpacityPath);\n fadeInItem(adjacentEdge.node2, nodeOpacityPath);\n });\n }\n\n if (edge) {\n fadeInItem(edge, lineOpacityPath);\n fadeInItem(edge.node1, nodeOpacityPath);\n fadeInItem(edge.node2, nodeOpacityPath);\n }\n },\n unfocusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n var graph = seriesModel.getData().graph;\n graph.eachNode(function (node) {\n fadeOutItem(node, nodeOpacityPath);\n });\n graph.eachEdge(function (edge) {\n fadeOutItem(edge, lineOpacityPath);\n });\n },\n _startForceLayoutIteration: function (forceLayout, layoutAnimation) {\n var self = this;\n\n (function step() {\n forceLayout.step(function (stopped) {\n self.updateLayout(self._model);\n (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n });\n })();\n },\n _updateController: function (seriesModel, ecModel, api) {\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n\n if (seriesModel.coordinateSystem.type !== 'view') {\n controller.disable();\n return;\n }\n\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n dx: e.dx,\n dy: e.dy\n });\n }).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n this._updateNodeAndLinkScale();\n\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n this._lineDraw.updateLayout();\n }, this);\n },\n _updateNodeAndLinkScale: function () {\n var seriesModel = this._model;\n var data = seriesModel.getData();\n var nodeScale = getNodeGlobalScale(seriesModel);\n var invScale = [nodeScale, nodeScale];\n data.eachItemGraphicEl(function (el, idx) {\n el.attr('scale', invScale);\n });\n },\n updateLayout: function (seriesModel) {\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n this._symbolDraw.updateLayout();\n\n this._lineDraw.updateLayout();\n },\n remove: function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove();\n this._lineDraw && this._lineDraw.remove();\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar curveTool = require(\"zrender/lib/core/curve\");\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar _graphHelper = require(\"./graphHelper\");\n\nvar getSymbolSize = _graphHelper.getSymbolSize;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n var p0 = curvePoints[0];\n var p1 = curvePoints[1];\n var p2 = curvePoints[2];\n var d = Infinity;\n var t;\n var radiusSquare = radius * radius;\n var interval = 0.1;\n\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n if (diff < d) {\n d = diff;\n t = _t;\n }\n } // Assume the segment is monotone,Find root through Bisection method\n // At most 32 iteration\n\n\n for (var i = 0; i < 32; i++) {\n // var prev = t - interval;\n var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n var diff = v2DistSquare(v2, center) - radiusSquare;\n\n if (mathAbs(diff) < 1e-2) {\n break;\n } // var prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n interval /= 2;\n\n if (diff < 0) {\n if (nextDiff >= 0) {\n t = t + interval;\n } else {\n t = t - interval;\n }\n } else {\n if (nextDiff >= 0) {\n t = t - interval;\n } else {\n t = t + interval;\n }\n }\n }\n\n return t;\n} // Adjust edge to avoid\n\n\nfunction _default(graph, scale) {\n var tmp0 = [];\n var quadraticSubdivide = curveTool.quadraticSubdivide;\n var pts = [[], [], []];\n var pts2 = [[], []];\n var v = [];\n scale /= 2;\n graph.eachEdge(function (edge, idx) {\n var linePoints = edge.getLayout();\n var fromSymbol = edge.getVisual('fromSymbol');\n var toSymbol = edge.getVisual('toSymbol');\n\n if (!linePoints.__original) {\n linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n if (linePoints[2]) {\n linePoints.__original.push(vec2.clone(linePoints[2]));\n }\n }\n\n var originalPoints = linePoints.__original; // Quadratic curve\n\n if (linePoints[2] != null) {\n vec2.copy(pts[0], originalPoints[0]);\n vec2.copy(pts[1], originalPoints[2]);\n vec2.copy(pts[2], originalPoints[1]);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[0][0] = tmp0[3];\n pts[1][0] = tmp0[4];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[0][1] = tmp0[3];\n pts[1][1] = tmp0[4];\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[1][0] = tmp0[1];\n pts[2][0] = tmp0[2];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[1][1] = tmp0[1];\n pts[2][1] = tmp0[2];\n } // Copy back to layout\n\n\n vec2.copy(linePoints[0], pts[0]);\n vec2.copy(linePoints[1], pts[2]);\n vec2.copy(linePoints[2], pts[1]);\n } // Line\n else {\n vec2.copy(pts2[0], originalPoints[0]);\n vec2.copy(pts2[1], originalPoints[1]);\n vec2.sub(v, pts2[1], pts2[0]);\n vec2.normalize(v, v);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n }\n\n vec2.copy(linePoints[0], pts2[0]);\n vec2.copy(linePoints[1], pts2[1]);\n }\n });\n}\n\nmodule.exports = _default;"],"names":["echarts","visualSymbol","layoutPoints","registerVisual","registerLayout","createListFromArray","SeriesModel","_default","extend","type","dependencies","getInitialData","option","ecModel","this","getSource","useEncodeDefaulter","brushSelector","defaultOption","coordinateSystem","zlevel","z","legendHoverLink","effectType","progressive","showEffectOn","rippleEffect","period","scale","brushType","symbolSize","module","exports","SymbolDraw","EffectSymbol","matrix","pointsLayout","extendChartView","init","_symbolDraw","render","seriesModel","api","data","getData","effectSymbolDraw","updateData","group","add","updateTransform","dirty","res","reset","progress","start","end","count","updateLayout","_updateGroupTransform","coordSys","getRoamTransform","transform","clone","decomposeTransform","remove","dispose","dataColor","funnelLayout","dataFilter","registerProcessor","zrUtil","createListSimply","_model","defaultEmphasis","_sourceHelper","makeSeriesEncodeForNameBased","LegendVisualProvider","FunnelSeries","extendSeriesModel","superApply","arguments","legendVisualProvider","bind","getRawData","_defaultLabelLine","coordDimensions","encodeDefaulter","curry","labelLineNormalOpt","labelLine","labelLineEmphasisOpt","emphasis","show","label","getDataParams","dataIndex","params","superCall","valueDim","mapDimension","sum","getSum","percent","get","toFixed","$vars","push","left","top","right","bottom","minSize","maxSize","sort","gap","funnelAlign","position","length","lineStyle","width","itemStyle","borderColor","borderWidth","graphic","ChartView","FunnelPiece","idx","Group","call","polygon","Polygon","Polyline","text","Text","highDownOnUpdate","fromState","toState","ignore","hoverIgnore","normalIgnore","funnelPieceProto","prototype","opacityAccessPath","firstCreate","childAt","hostModel","itemModel","getItemModel","layout","getItemLayout","opacity","useStyle","setShape","points","setStyle","initProps","style","updateProps","shape","itemStyleModel","getModel","visualColor","getItemVisual","defaults","lineJoin","fill","getItemStyle","hoverStyle","_updateLabel","setHoverStyle","labelText","labelLayout","linePoints","x","y","attr","rotation","origin","z2","labelModel","labelHoverModel","labelLineModel","labelLineHoverModel","setLabelStyle","labelFetcher","labelDataIndex","defaultText","getName","autoColor","useInsideStyle","inside","textAlign","textVerticalAlign","verticalAlign","stroke","getLineStyle","inherits","FunnelView","oldData","_data","diff","funnelPiece","setItemGraphicEl","update","newIdx","oldIdx","piePiece","getItemGraphicEl","execute","removeAll","_number","parsePercent","linearMap","getViewRect","getLayoutRect","getBoxLayoutParams","getWidth","height","getHeight","getSortedIndices","valueArr","mapArray","val","indices","isAscending","i","len","a","b","each","textX","textY","labelPosition","isLabelInside","x1","y1","x2","labelLineLen","y2","payload","eachSeriesByType","viewRect","sizeExtent","dataExtent","getDataExtent","min","max","Math","itemHeight","getLinePoints","offY","x0","itemWidth","reverse","nextIdx","setItemLayout","concat","slice","GaugeSeries","center","radius","startAngle","endAngle","clockwise","splitNumber","axisLine","color","splitLine","axisTick","axisLabel","distance","pointer","title","offsetCenter","fontSize","detail","backgroundColor","padding","PointerPath","round","parsePosition","size","cx","cy","r","formatLabel","labelFormatter","replace","PI2","PI","GaugeView","colorList","posInfo","_renderMain","axisLineModel","lineStyleModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","sector","Sector","r0","silent","getColor","tmp","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","splitLineModel","tickModel","subSplitNumber","splitLineLen","tickLen","angle","step","subStep","splitLineStyle","tickLineStyle","unitX","cos","unitY","sin","Line","setTextStyle","j","tickLine","valueExtent","angleExtent","eachItemGraphicEl","pointerModel","el","titleModel","value","forceRich","detailModel","textWidth","isNaN","textHeight","Path","buildPath","ctx","mathCos","mathSin","moveTo","lineTo","List","Model","_format","encodeHTML","createGraphFromNodeEdge","GraphSeries","self","getCategoriesData","_categoriesData","fillDataTextStyle","edges","links","_updateCategoriesData","mergeOption","mergeDefaultAndTheme","nodes","beforeLink","nodeData","edgeData","wrapMethod","model","categoriesModels","_categoriesModels","categoryIdx","getShallow","categoryModel","parentModel","edgeLabelModel","fakeSeriesModel","emphasisEdgeLabelModel","emphasisFakeSeriesModel","edgeGetParent","path","parsePath","customizeGetParent","getGraph","graph","getEdgeData","formatTooltip","multipleSeries","dataType","edge","getEdgeByIndex","sourceName","node1","targetName","node2","html","join","categories","map","category","categoriesData","initData","setZoom","zoom","setCenter","isAnimationEnabled","hoverAnimation","focusNodeAdjacency","circular","rotateLabel","force","initLayout","repulsion","gravity","friction","edgeLength","layoutAnimation","symbol","edgeSymbol","edgeSymbolSize","edgeLabel","draggable","roam","nodeScaleRatio","formatter","curveness","LineDraw","RoamController","roamHelper","_cursorHelper","onIrrelevantElement","adjustEdge","_graphHelper","getNodeGlobalScale","FOCUS_ADJACENCY","UNFOCUS_ADJACENCY","nodeOpacityPath","lineOpacityPath","getItemOpacity","item","opacityPath","getVisual","fadeOutItem","opacityRatio","getGraphicEl","downplay","traverse","child","isGroup","opct","lineLabelOriginalOpacity","fadeInItem","highlight","symbolDraw","lineDraw","_controller","getZr","_controllerHost","target","_lineDraw","_firstRender","graphView","groupNewProp","_updateNodeAndLinkScale","_updateController","clearTimeout","_layoutTimeout","forceLayout","_startForceLayoutIteration","off","on","warmUp","_layouting","setFixed","setUnfixed","setDraggable","_clearTimer","dispatchAction","seriesId","id","_dispatchUnfocus","eachEdge","edgeDataIndex","circularRotateLabel","getLayout","labelRotate","symbolPath","getSymbolPath","pos","rad","atan2","isLeft","textPosition","modifyLabelStyle","textRotation","textOrigin","opt","_unfocusDelayTimer","setTimeout","node","getNodeByIndex","eachNode","adjacentEdge","unfocusNodeAdjacency","stopped","controller","controllerHost","setPointerChecker","e","rect","getBoundingRect","applyTransform","contain","enable","zoomLimit","getZoom","updateViewOnPan","dx","dy","updateViewOnZoom","originX","originY","disable","nodeScale","invScale","curveTool","vec2","getSymbolSize","v1","v2","v3","quadraticAt","v2DistSquare","distSquare","mathAbs","abs","intersectCurveCircle","curvePoints","t","p0","p1","p2","d","Infinity","radiusSquare","interval","_t","next","nextDiff","tmp0","quadraticSubdivide","pts","pts2","v","fromSymbol","toSymbol","__original","originalPoints","copy","sub","normalize","scaleAndAdd"],"sourceRoot":""}
|