chunk-vendors-55facd4b.24d638cc.js.map 87 KB

1
  1. {"version":3,"file":"js/chunk-vendors-55facd4b.24d638cc.js","mappings":"0FAoBA,IAAIA,EAAQ,EAAQ,OAEhBC,EAAOD,EAAMC,KACbC,EAAUF,EAAME,QAChBC,EAAWH,EAAMG,SAEjBC,EAAc,EAAQ,MAEtBC,EAAS,EAAQ,OAEjBC,EAAmBD,EAAOC,iBAqB9B,SAASC,EAAIC,EAAKC,GAChBA,EAAOA,EAAKC,MAAM,KAGlB,IAFA,IAAIC,EAAMH,EAEDI,EAAI,EAAGA,EAAIH,EAAKI,OAAQD,IAG/B,GAFAD,EAAMA,GAAOA,EAAIF,EAAKG,IAEX,MAAPD,EACF,MAIJ,OAAOA,CACT,CAEA,SAASG,EAAIN,EAAKC,EAAMM,EAAKC,GAC3BP,EAAOA,EAAKC,MAAM,KAIlB,IAHA,IACIO,EADAN,EAAMH,EAGDI,EAAI,EAAGA,EAAIH,EAAKI,OAAS,EAAGD,IACnCK,EAAMR,EAAKG,GAEK,MAAZD,EAAIM,KACNN,EAAIM,GAAO,CAAC,GAGdN,EAAMA,EAAIM,IAGRD,GAA6B,MAAhBL,EAAIF,EAAKG,OACxBD,EAAIF,EAAKG,IAAMG,EAEnB,CAEA,SAASG,EAAuBC,GAC9BlB,EAAKmB,GAAmB,SAAUC,GAC5BA,EAAK,KAAMF,KAAYE,EAAK,KAAMF,KACpCA,EAAOE,EAAK,IAAMF,EAAOE,EAAK,IAElC,GACF,CAEA,IAAID,EAAoB,CAAC,CAAC,IAAK,QAAS,CAAC,IAAK,OAAQ,CAAC,KAAM,SAAU,CAAC,KAAM,WAC1EE,EAA0B,CAAC,OAAQ,MAAO,WAAY,SAAU,UAAW,QAAS,YAAa,WAAY,YAEjH,SAASC,EAASJ,EAAQK,GACxBpB,EAAYe,EAAQK,GAEpBL,EAAOM,OAASnB,EAAiBa,EAAOM,QACxCxB,EAAKkB,EAAOM,QAAQ,SAAUC,GAC5B,GAAKvB,EAASuB,GAAd,CAIA,IAAIC,EAAaD,EAAUE,KAE3B,GAAmB,SAAfD,EAC4B,MAA1BD,EAAUG,eACZH,EAAUI,KAAOJ,EAAUG,mBAExB,GAAmB,QAAfF,GAAuC,UAAfA,EACN,MAAvBD,EAAUK,YACZL,EAAUM,UAAYN,EAAUK,gBAE7B,GAAmB,UAAfJ,EAAwB,CACjC,IAAIM,EAAe1B,EAAImB,EAAW,iBAClB,MAAhBO,GAAwBnB,EAAIY,EAAW,kBAAmBO,EAC5D,CAEAf,EAAuBQ,EAjBvB,CAkBF,IAEIP,EAAOe,YACTf,EAAOgB,UAAYhB,EAAOe,WAG5BjC,EAAKqB,GAAyB,SAAUc,GACtC,IAAIC,EAAUlB,EAAOiB,GAEjBC,IACGnC,EAAQmC,KACXA,EAAU,CAACA,IAGbpC,EAAKoC,GAAS,SAAUlB,GACtBD,EAAuBC,EACzB,IAEJ,GACF,CAEAmB,EAAOC,QAAUhB,C,uBC3HjB,IAAIiB,EAAS,EAAQ,OAEjBC,EAAY,EAAQ,OAoBpBxC,EAAOuC,EAAOvC,KACdE,EAAWqC,EAAOrC,SAClBuC,EAAkB,CAAC,YAAa,YAAa,YAAa,YAAa,aAAc,QAAS,aAElG,SAASC,EAAmBnC,GAC1B,IAAIoC,EAAepC,GAAOA,EAAIqC,UAE9B,GAAKD,EAIL,IAAK,IAAIhC,EAAI,EAAGkC,EAAMJ,EAAgB7B,OAAQD,EAAIkC,EAAKlC,IAAK,CAC1D,IAAImC,EAAYL,EAAgB9B,GAC5BoC,EAAqBJ,EAAaK,OAClCC,EAAuBN,EAAaO,SAEpCH,GAAsBA,EAAmBD,KAC3CvC,EAAIuC,GAAavC,EAAIuC,IAAc,CAAC,EAE/BvC,EAAIuC,GAAWE,OAGlBT,EAAOY,MAAM5C,EAAIuC,GAAWE,OAAQD,EAAmBD,IAFvDvC,EAAIuC,GAAWE,OAASD,EAAmBD,GAK7CC,EAAmBD,GAAa,MAG9BG,GAAwBA,EAAqBH,KAC/CvC,EAAIuC,GAAavC,EAAIuC,IAAc,CAAC,EAE/BvC,EAAIuC,GAAWI,SAGlBX,EAAOY,MAAM5C,EAAIuC,GAAWI,SAAUD,EAAqBH,IAF3DvC,EAAIuC,GAAWI,SAAWD,EAAqBH,GAKjDG,EAAqBH,GAAa,KAEtC,CACF,CAEA,SAASM,EAAsB7C,EAAK8C,EAASC,GAC3C,GAAI/C,GAAOA,EAAI8C,KAAa9C,EAAI8C,GAASL,QAAUzC,EAAI8C,GAASH,UAAW,CACzE,IAAIK,EAAYhD,EAAI8C,GAASL,OACzBQ,EAAcjD,EAAI8C,GAASH,SAE3BK,IAEED,GACF/C,EAAI8C,GAASL,OAASzC,EAAI8C,GAASH,SAAW,KAC9CX,EAAOkB,SAASlD,EAAI8C,GAAUE,IAE9BhD,EAAI8C,GAAWE,GAIfC,IACFjD,EAAI2C,SAAW3C,EAAI2C,UAAY,CAAC,EAChC3C,EAAI2C,SAASG,GAAWG,EAE5B,CACF,CAEA,SAASE,EAAsBnD,GAC7B6C,EAAsB7C,EAAK,aAC3B6C,EAAsB7C,EAAK,aAC3B6C,EAAsB7C,EAAK,aAC3B6C,EAAsB7C,EAAK,SAC3B6C,EAAsB7C,EAAK,aAE3B6C,EAAsB7C,EAAK,cAE3B6C,EAAsB7C,EAAK,YAC7B,CAEA,SAASoD,EAAgBpD,EAAKqD,GAE5B,IAAIC,EAAiB3D,EAASK,IAAQA,EAAIqD,GACtCE,EAAY5D,EAAS2D,IAAmBA,EAAeC,UAE3D,GAAIA,EACF,IAAK,IAAInD,EAAI,EAAGkC,EAAML,EAAUuB,mBAAmBnD,OAAQD,EAAIkC,EAAKlC,IAAK,CACnEiD,EAAWpB,EAAUuB,mBAAmBpD,GAExCmD,EAAUE,eAAeJ,KAC3BC,EAAeD,GAAYE,EAAUF,GAEzC,CAEJ,CAEA,SAASK,EAAsB1D,GACzBA,IACFmD,EAAsBnD,GACtBoD,EAAgBpD,EAAK,SACrBA,EAAI2C,UAAYS,EAAgBpD,EAAI2C,SAAU,SAElD,CAEA,SAASgB,EAAczC,GACrB,GAAKvB,EAASuB,GAAd,CAIAiB,EAAmBjB,GACnBiC,EAAsBjC,GACtBkC,EAAgBlC,EAAW,SAE3BkC,EAAgBlC,EAAW,cAE3BkC,EAAgBlC,EAAW,aAEvBA,EAAUyB,WACZS,EAAgBlC,EAAUyB,SAAU,SAEpCS,EAAgBlC,EAAUyB,SAAU,cAEpCS,EAAgBlC,EAAUyB,SAAU,cAGtC,IAAIiB,EAAY1C,EAAU0C,UAEtBA,IACFzB,EAAmByB,GACnBF,EAAsBE,IAGxB,IAAIC,EAAW3C,EAAU2C,SAErBA,IACF1B,EAAmB0B,GACnBH,EAAsBG,IAGxB,IAAIC,EAAW5C,EAAU4C,SAErBA,GACFJ,EAAsBI,GAGxB,IAAIC,EAAO7C,EAAU6C,KAGrB,GAAuB,UAAnB7C,EAAUE,KAAkB,CAC9B2C,EAAOA,GAAQ7C,EAAU8C,MACzB,IAAIC,EAAW/C,EAAUgD,OAAShD,EAAUiD,MAE5C,GAAIF,IAAajC,EAAOoC,aAAaH,GACnC,IAAK,IAAI7D,EAAI,EAAGA,EAAI6D,EAAS5D,OAAQD,IACnCsD,EAAsBO,EAAS7D,IAInC4B,EAAOvC,KAAKyB,EAAUmD,YAAY,SAAUrE,GAC1CmD,EAAsBnD,EACxB,GACF,CAEA,GAAI+D,IAAS/B,EAAOoC,aAAaL,GAC/B,IAAS3D,EAAI,EAAGA,EAAI2D,EAAK1D,OAAQD,IAC/BsD,EAAsBK,EAAK3D,IAK3BwD,EAAY1C,EAAU0C,UAE1B,GAAIA,GAAaA,EAAUG,KACzB,KAAIO,EAASV,EAAUG,KAEvB,IAAS3D,EAAI,EAAGA,EAAIkE,EAAOjE,OAAQD,IACjCsD,EAAsBY,EAAOlE,GAHJ,CAQzByD,EAAW3C,EAAU2C,SAEzB,GAAIA,GAAYA,EAASE,KACvB,KAAIQ,EAASV,EAASE,KAEtB,IAAS3D,EAAI,EAAGA,EAAImE,EAAOlE,OAAQD,IAC7B4B,EAAOtC,QAAQ6E,EAAOnE,KACxBsD,EAAsBa,EAAOnE,GAAG,IAChCsD,EAAsBa,EAAOnE,GAAG,KAEhCsD,EAAsBa,EAAOnE,GAPP,CAaL,UAAnBc,EAAUE,MACZgC,EAAgBlC,EAAW,aAC3BkC,EAAgBlC,EAAW,SAC3BkC,EAAgBlC,EAAW,WACC,YAAnBA,EAAUE,MACnByB,EAAsB3B,EAAUsD,WAAY,aAC5CxC,EAAOvC,KAAKyB,EAAUuD,QAAQ,SAAUzE,GACtCmD,EAAsBnD,EACxB,KAC4B,SAAnBkB,EAAUE,MACnB+B,EAAsBjC,EAAUwD,OApGlC,CAuGF,CAEA,SAASC,EAAMC,GACb,OAAO5C,EAAOtC,QAAQkF,GAAKA,EAAIA,EAAI,CAACA,GAAK,EAC3C,CAEA,SAASC,EAAMD,GACb,OAAQ5C,EAAOtC,QAAQkF,GAAKA,EAAE,GAAKA,IAAM,CAAC,CAC5C,CAEA,SAAS7D,EAASJ,EAAQK,GACxBvB,EAAKkF,EAAMhE,EAAOM,SAAS,SAAUC,GACnCvB,EAASuB,IAAcyC,EAAczC,EACvC,IACA,IAAI4D,EAAO,CAAC,QAAS,QAAS,aAAc,YAAa,aAAc,eAAgB,SACvF9D,GAAW8D,EAAKC,KAAK,YAAa,eAAgB,UAAW,YAC7DtF,EAAKqF,GAAM,SAAUE,GACnBvF,EAAKkF,EAAMhE,EAAOqE,KAAY,SAAUC,GAClCA,IACF7B,EAAgB6B,EAAS,aACzB7B,EAAgB6B,EAAQC,YAAa,SAEzC,GACF,IACAzF,EAAKkF,EAAMhE,EAAOwE,WAAW,SAAUC,GACrC,IAAIC,EAAsBD,GAAeA,EAAYC,oBACrDjC,EAAgBiC,EAAqB,aACrCjC,EAAgBiC,GAAuBA,EAAoBH,YAAa,QAC1E,IACAzF,EAAKkF,EAAMhE,EAAO2E,WAAW,SAAUC,GACrC1C,EAAsB0C,EAAa,aACnCnC,EAAgBmC,EAAa,YAC7BnC,EAAgBmC,EAAa,cAC7BnC,EAAgBmC,EAAa,YAC/B,IAEA9F,EAAKkF,EAAMhE,EAAO6E,QAAQ,SAAUC,GAClCrC,EAAgBqC,EAAU,OAC5B,IACAhG,EAAKkF,EAAMhE,EAAO+E,MAAM,SAAUC,GAC5BhG,EAASgG,KACXjC,EAAsBiC,GACtBlG,EAAKkF,EAAMgB,EAAOC,UAAU,SAAUC,GACpCnC,EAAsBmC,EACxB,IAEJ,IACApG,EAAKkF,EAAMhE,EAAOmF,WAAW,SAAUC,GACrCrC,EAAsBqC,GACtBlD,EAAsBkD,EAAa,SACnClD,EAAsBkD,EAAa,aACnClD,EAAsBkD,EAAa,gBAAgB,GACnD,IAAIhC,EAAOgC,EAAYhC,KACvB/B,EAAOtC,QAAQqE,IAAS/B,EAAOvC,KAAKsE,GAAM,SAAUiC,GAC9ChE,EAAOrC,SAASqG,KAClBnD,EAAsBmD,EAAM,SAC5BnD,EAAsBmD,EAAM,aAEhC,GACF,IACAvG,EAAKkF,EAAMhE,EAAOsF,UAAU,SAAUC,GACpCrD,EAAsBqD,EAAY,aAClCzG,EAAKyG,EAAWC,SAAS,SAAUC,GACjCvD,EAAsBuD,EAAY,YACpC,GACF,IACAhD,EAAgByB,EAAMlE,EAAOuE,aAAc,SAC3C9B,EAAgByB,EAAMlE,EAAO0F,SAASnB,YAAa,QACrD,CAEApD,EAAOC,QAAUhB,C,oBCxRjB,SAASA,EAASI,GAChB,MAAO,CACLA,WAAYA,EACZmF,MAAO,SAAUC,EAAaC,GAC5B,IAAIC,EAAeD,EAAQE,eAAe,CACxCC,SAAU,WAGZ,GAAKF,GAAiBA,EAAapG,OAAnC,CAIA,IAAI0D,EAAOwC,EAAYK,UACvB7C,EAAK8C,YAAW,SAAUC,GAGxB,IAFA,IAAIC,EAAOhD,EAAKiD,QAAQF,GAEf1G,EAAI,EAAGA,EAAIqG,EAAapG,OAAQD,IACvC,IAAKqG,EAAarG,GAAG6G,WAAWF,GAC9B,OAAO,EAIX,OAAO,CACT,GAbA,CAcF,EAEJ,CAEAjF,EAAOC,QAAUhB,C,oBC5BjB,IAAImG,EAAW,CACbC,QAAS,SAAUC,GAIjB,IAHA,IAAIC,EAAM,EACNC,EAAQ,EAEHlH,EAAI,EAAGA,EAAIgH,EAAM/G,OAAQD,IAC3BmH,MAAMH,EAAMhH,MACfiH,GAAOD,EAAMhH,GACbkH,KAKJ,OAAiB,IAAVA,EAAcE,IAAMH,EAAMC,CACnC,EACAD,IAAK,SAAUD,GAGb,IAFA,IAAIC,EAAM,EAEDjH,EAAI,EAAGA,EAAIgH,EAAM/G,OAAQD,IAEhCiH,GAAOD,EAAMhH,IAAM,EAGrB,OAAOiH,CACT,EACAI,IAAK,SAAUL,GAGb,IAFA,IAAIK,GAAOC,IAEFtH,EAAI,EAAGA,EAAIgH,EAAM/G,OAAQD,IAChCgH,EAAMhH,GAAKqH,IAAQA,EAAML,EAAMhH,IAIjC,OAAOuH,SAASF,GAAOA,EAAMD,GAC/B,EACAI,IAAK,SAAUR,GAGb,IAFA,IAAIQ,EAAMF,IAEDtH,EAAI,EAAGA,EAAIgH,EAAM/G,OAAQD,IAChCgH,EAAMhH,GAAKwH,IAAQA,EAAMR,EAAMhH,IAIjC,OAAOuH,SAASC,GAAOA,EAAMJ,GAC/B,EAGAK,QAAS,SAAUT,GACjB,OAAOA,EAAM,EACf,GAGEU,EAAe,SAAUV,EAAOW,GAClC,OAAOC,KAAKC,MAAMb,EAAM/G,OAAS,EACnC,EAEA,SAASU,EAASI,GAChB,MAAO,CACLA,WAAYA,EACZ+G,iBAAiB,EACjB5B,MAAO,SAAUC,EAAaC,EAAS2B,GACrC,IAAIpE,EAAOwC,EAAYK,UACnBwB,EAAW7B,EAAYxG,IAAI,YAC3BsI,EAAW9B,EAAY+B,iBAE3B,GAAsB,gBAAlBD,EAASjH,MAA0BgH,EAAU,CAC/C,IAQMG,EARFC,EAAWH,EAASI,cACpBC,EAAYL,EAASM,aAAaH,GAClCI,EAASJ,EAASK,YAElBC,EAAOF,EAAO,GAAKA,EAAO,GAC1BG,EAAOf,KAAKC,MAAMlE,EAAKuD,QAAUwB,GAErC,GAAIC,EAAO,EAGe,kBAAbX,EACTG,EAAUrB,EAASkB,GACU,oBAAbA,IAChBG,EAAUH,GAGRG,GAEFhC,EAAYyC,QAAQjF,EAAKkF,WAAWlF,EAAKmF,aAAaR,EAAUS,KAAM,EAAIJ,EAAMR,EAAST,GAG/F,CACF,EAEJ,CAEAhG,EAAOC,QAAUhB,C,wBC9GjB,IAAIvB,EAAQ,EAAQ,OAEhB4J,EAAgB5J,EAAM4J,cACtB3J,EAAOD,EAAMC,KAyBjB,SAASsB,EAASyF,GAChB,IAAI6C,EAAeD,IACnB5C,EAAQ8C,YAAW,SAAU/C,GAC3B,IAAIgD,EAAQhD,EAAYxG,IAAI,SAE5B,GAAIwJ,EAAO,CACT,IAAIC,EAAgBH,EAAatJ,IAAIwJ,IAAUF,EAAa/I,IAAIiJ,EAAO,IACnExF,EAAOwC,EAAYK,UACnB6C,EAAY,CAEdC,qBAAsB3F,EAAK4F,mBAAmB,wBAC9CC,qBAAsB7F,EAAK4F,mBAAmB,wBAC9CE,iBAAkB9F,EAAK4F,mBAAmB,oBAC1CG,mBAAoB/F,EAAK4F,mBAAmB,sBAC5CI,iBAAkBhG,EAAK4F,mBAAmB,oBAC1C5F,KAAMA,EACNwC,YAAaA,GAGf,IAAKkD,EAAUI,mBAAsBJ,EAAUM,mBAAoBN,EAAUK,mBAC3E,OAGFN,EAAcnJ,QAAU0D,EAAKiG,mBAAmB,kBAAmBR,EAAcA,EAAcnJ,OAAS,GAAGkG,aAC3GiD,EAAczE,KAAK0E,EACrB,CACF,IACAJ,EAAa5J,KAAKwK,EACpB,CAEA,SAASA,EAAeT,GACtB/J,EAAK+J,GAAe,SAAUU,EAAiBC,GAC7C,IAAIC,EAAY,GACZC,EAAY,CAAC7C,IAAKA,KAClB8C,EAAO,CAACJ,EAAgBR,qBAAsBQ,EAAgBN,sBAC9DW,EAAaL,EAAgBnG,KAC7BgG,EAAmBG,EAAgBH,iBAGnCS,EAAUD,EAAWE,IAAIH,GAAM,SAAUI,EAAIC,EAAIC,GACnD,IAOIC,EACAC,EARAzD,EAAMkD,EAAWxK,IAAImK,EAAgBL,iBAAkBe,GAG3D,GAAIrD,MAAMF,GACR,OAAOgD,EAMLN,EACFe,EAAsBP,EAAWQ,YAAYH,GAE7CC,EAAUN,EAAWxK,IAAImK,EAAgBJ,mBAAoBc,GAM/D,IAFA,IAAII,EAAcxD,IAETyD,EAAId,EAAa,EAAGc,GAAK,EAAGA,IAAK,CACxC,IAAIxB,EAAYD,EAAcyB,GAM9B,GAJKlB,IACHe,EAAsBrB,EAAU1F,KAAKmH,WAAWzB,EAAUK,mBAAoBe,IAG5EC,GAAuB,EAAG,CAC5B,IAAIvK,EAAMkJ,EAAU1F,KAAKoH,cAAc1B,EAAUC,qBAAsBoB,GAEvE,GAAIzD,GAAO,GAAK9G,EAAM,GACtB8G,GAAO,GAAK9G,EAAM,EAChB,CACE8G,GAAO9G,EACPyK,EAAczK,EACd,KACF,CACJ,CACF,CAIA,OAFA6J,EAAU,GAAK/C,EACf+C,EAAU,GAAKY,EACRZ,CACT,IACAG,EAAWa,UAAUpC,QAAQwB,GAE7BN,EAAgBnG,KAAOyG,CACzB,GACF,CAEA1I,EAAOC,QAAUhB,C,wBCrHjB,IAAIsK,EAAa,EAAQ,OAErBC,EAAa,EAAQ,OAErBC,EAAQ,EAAQ,OAEhBC,EAAS,EAAQ,OAyBjBC,EAAcJ,EAAWpD,MAMzByD,EAAgBH,EAAMI,OAAO,CAC/BvK,KAAM,WACNwK,UAAW,EACXC,mBAAoB,EACpBC,UAAW,SAAUC,EAAOC,GAC1B,IAAIC,EAAaC,KAAKC,QAEjB5E,MAAMwE,KACTE,EAAW,GAAKG,WAAWL,IAGxBxE,MAAMyE,KACTC,EAAW,GAAKG,WAAWJ,GAE/B,EACAK,YAAa,SAAUC,GACrB,IAAI1D,EAASsD,KAAKC,QAClBG,EAAM,GAAK1D,EAAO,KAAOA,EAAO,GAAK0D,EAAM,IAC3CA,EAAM,GAAK1D,EAAO,KAAOA,EAAO,GAAK0D,EAAM,IAE3CZ,EAAca,UAAUT,UAAUU,KAAKN,KAAMtD,EAAO,GAAIA,EAAO,GACjE,EAKA6D,YAAa,WACX,OAAOP,KAAKN,SACd,EAKAc,YAAa,SAAUC,GACrBT,KAAKN,UAAYe,EAGjBT,KAAKU,YAAcV,KAAKC,QAAQU,QAChCX,KAAKL,mBAAqBL,EAAOsB,qBAAqBH,EACxD,EAMAI,SAAU,SAAUC,GAClB,IAAIL,EAAWT,KAAKN,UAChBhD,EAASsD,KAAKC,QACdc,EAAiBf,KAAKU,YACtBM,EAAoBhB,KAAKL,mBACzBsB,EAAQ,GAEZ,IAAKR,EACH,OAAOQ,EAIT,IAAIC,EAAY,IAEZxE,EAAO,GAAKqE,EAAe,KACzBD,EACFG,EAAMpI,KAAK0G,EAAYwB,EAAe,GAAKN,EAAUO,IAErDC,EAAMpI,KAAK6D,EAAO,KAItB,IAAIyE,EAAOJ,EAAe,GAE1B,MAAOI,GAAQJ,EAAe,GAAI,CAKhC,GAJAE,EAAMpI,KAAKsI,GAEXA,EAAO5B,EAAY4B,EAAOV,EAAUO,GAEhCG,IAASF,EAAMA,EAAM9M,OAAS,GAGhC,MAGF,GAAI8M,EAAM9M,OAAS+M,EACjB,MAAO,EAEX,CAIA,IAAIE,EAAeH,EAAM9M,OAAS8M,EAAMA,EAAM9M,OAAS,GAAK4M,EAAe,GAU3E,OARIrE,EAAO,GAAK0E,IACVN,EACFG,EAAMpI,KAAK0G,EAAY6B,EAAeX,EAAUO,IAEhDC,EAAMpI,KAAK6D,EAAO,KAIfuE,CACT,EAMAI,cAAe,SAAUC,GAKvB,IAJA,IAAIL,EAAQjB,KAAKa,UAAS,GACtBU,EAAa,GACb7E,EAASsD,KAAKrD,YAETzI,EAAI,EAAGA,EAAI+M,EAAM9M,OAAQD,IAAK,CACrC,IAAIsN,EAAWP,EAAM/M,GACjBuN,EAAWR,EAAM/M,EAAI,GACrBkH,EAAQ,EACRsG,EAAkB,GAClBjB,EAAWe,EAAWC,EACtBE,EAAgBlB,EAAWa,EAE/B,MAAOlG,EAAQkG,EAAc,EAAG,CAC9B,IAAIM,EAAYzC,EAAWpD,MAAM0F,GAAYrG,EAAQ,GAAKuG,GAEtDC,EAAYlF,EAAO,IAAMkF,EAAYlF,EAAO,IAC9CgF,EAAgB7I,KAAK+I,GAGvBxG,GACF,CAEAmG,EAAW1I,KAAK6I,EAClB,CAEA,OAAOH,CACT,EASAM,SAAU,SAAUhK,EAAM/D,GACxB,GAAY,MAAR+D,EACF,MAAO,GAGT,IAAIiK,EAAYhO,GAAOA,EAAIgO,UAY3B,OAViB,MAAbA,EACFA,EAAY3C,EAAW4C,iBAAiBlK,IAAS,EAC1B,SAAdiK,IAETA,EAAY9B,KAAKL,oBAKnB9H,EAAO0H,EAAY1H,EAAMiK,GAAW,GAC7B1C,EAAW4C,UAAUnK,EAC9B,EASAoK,UAAW,SAAUX,EAAaY,EAAaC,GAC7Cb,EAAcA,GAAe,EAC7B,IAAI5E,EAASsD,KAAKC,QACdmC,EAAO1F,EAAO,GAAKA,EAAO,GAE9B,GAAKjB,SAAS2G,GAAd,CAMIA,EAAO,IACTA,GAAQA,EACR1F,EAAO2F,WAGT,IAAIC,EAAShD,EAAOiD,uBAAuB7F,EAAQ4E,EAAaY,EAAaC,GAC7EnC,KAAKL,mBAAqB2C,EAAOtB,kBACjChB,KAAKN,UAAY4C,EAAO7B,SACxBT,KAAKU,YAAc4B,EAAOvB,cAZ1B,CAaF,EAWAyB,WAAY,SAAU1O,GACpB,IAAI4I,EAASsD,KAAKC,QAElB,GAAIvD,EAAO,KAAOA,EAAO,GACvB,GAAkB,IAAdA,EAAO,GAAU,CAEnB,IAAI+F,EAAa/F,EAAO,GAMnB5I,EAAI4O,SACPhG,EAAO,IAAM+F,EAAa,GAG1B/F,EAAO,IAAM+F,EAAa,CAE9B,MACE/F,EAAO,GAAK,EAIhB,IAAI0F,EAAO1F,EAAO,GAAKA,EAAO,GAEzBjB,SAAS2G,KACZ1F,EAAO,GAAK,EACZA,EAAO,GAAK,GAGdsD,KAAKiC,UAAUnO,EAAIwN,YAAaxN,EAAIoO,YAAapO,EAAIqO,aAErD,IAAI1B,EAAWT,KAAKN,UAEf5L,EAAI6O,SACPjG,EAAO,GAAK6C,EAAYzD,KAAK8G,MAAMlG,EAAO,GAAK+D,GAAYA,IAGxD3M,EAAI4O,SACPhG,EAAO,GAAK6C,EAAYzD,KAAK+G,KAAKnG,EAAO,GAAK+D,GAAYA,GAE9D,IAMFjB,EAAcsD,OAAS,WACrB,OAAO,IAAItD,CACb,EAEA,IAAI3K,EAAW2K,EACf5J,EAAOC,QAAUhB,C,wBC/RjB,IAAIiB,EAAS,EAAQ,OAEjBuJ,EAAQ,EAAQ,OAEhBF,EAAa,EAAQ,OAErBK,EAAgB,EAAQ,OA0BxBuD,EAAa1D,EAAMgB,UACnB2C,EAAqBxD,EAAca,UACnC0B,EAAmB5C,EAAW4C,iBAC9BkB,EAAmB9D,EAAWpD,MAC9BmH,EAAYpH,KAAK8G,MACjBO,EAAWrH,KAAK+G,KAChBO,EAAUtH,KAAKuH,IACfC,EAAUxH,KAAKyH,IACfC,EAAWnE,EAAMI,OAAO,CAC1BvK,KAAM,MACNuO,KAAM,GACNC,aAAc,WACZrE,EAAMsE,MAAM3D,KAAM4D,WAClB5D,KAAK6D,eAAiB,IAAIrE,CAC5B,EAMAqB,SAAU,SAAUC,GAClB,IAAIgD,EAAgB9D,KAAK6D,eACrBnH,EAASsD,KAAKC,QACd8D,EAAiBD,EAAcnH,YACnC,OAAO7G,EAAOyI,IAAIyE,EAAmBnC,SAASP,KAAKN,KAAMc,IAAsB,SAAUzM,GACvF,IAAI2P,EAAS7E,EAAWpD,MAAMqH,EAAQpD,KAAKyD,KAAMpP,IAIjD,OAFA2P,EAAS3P,IAAQqI,EAAO,IAAMoH,EAAcG,SAAWC,EAAiBF,EAAQD,EAAe,IAAMC,EACrGA,EAAS3P,IAAQqI,EAAO,IAAMoH,EAAcK,SAAWD,EAAiBF,EAAQD,EAAe,IAAMC,EAC9FA,CACT,GAAGhE,KACL,EAMAqB,cAAe2B,EAAmB3B,cAMlCQ,SAAUmB,EAAmBnB,SAM7BuC,MAAO,SAAU/P,GAEf,OADAA,EAAM0O,EAAWqB,MAAM9D,KAAKN,KAAM3L,GAC3B+O,EAAQpD,KAAKyD,KAAMpP,EAC5B,EAMAuL,UAAW,SAAUC,EAAOC,GAC1B,IAAI2D,EAAOzD,KAAKyD,KAChB5D,EAAQyD,EAAQzD,GAASyD,EAAQG,GACjC3D,EAAMwD,EAAQxD,GAAOwD,EAAQG,GAC7BT,EAAmBpD,UAAUU,KAAKN,KAAMH,EAAOC,EACjD,EAKAnD,UAAW,WACT,IAAI8G,EAAOzD,KAAKyD,KACZ/G,EAASqG,EAAWpG,UAAU2D,KAAKN,MACvCtD,EAAO,GAAK0G,EAAQK,EAAM/G,EAAO,IACjCA,EAAO,GAAK0G,EAAQK,EAAM/G,EAAO,IAEjC,IAAIoH,EAAgB9D,KAAK6D,eACrBE,EAAiBD,EAAcnH,YAGnC,OAFAmH,EAAcG,WAAavH,EAAO,GAAKwH,EAAiBxH,EAAO,GAAIqH,EAAe,KAClFD,EAAcK,WAAazH,EAAO,GAAKwH,EAAiBxH,EAAO,GAAIqH,EAAe,KAC3ErH,CACT,EAKAyD,YAAa,SAAUzD,GACrBsD,KAAK6D,eAAe1D,YAAYzD,GAEhC,IAAI+G,EAAOzD,KAAKyD,KAChB/G,EAAO,GAAK4G,EAAQ5G,EAAO,IAAM4G,EAAQG,GACzC/G,EAAO,GAAK4G,EAAQ5G,EAAO,IAAM4G,EAAQG,GACzCV,EAAW5C,YAAYG,KAAKN,KAAMtD,EACpC,EAKA2H,oBAAqB,SAAUxM,EAAMoF,GAGnC+C,KAAKG,YAAYtI,EAAKyM,qBAAqBrH,GAC7C,EAMAgF,UAAW,SAAUsC,GACnBA,EAAgBA,GAAiB,GACjC,IAAI7H,EAASsD,KAAKC,QACdmC,EAAO1F,EAAO,GAAKA,EAAO,GAE9B,KAAI0F,IAAS5G,KAAY4G,GAAQ,GAAjC,CAIA,IAAI3B,EAAWtB,EAAWqF,SAASpC,GAC/BqC,EAAMF,EAAgBnC,EAAO3B,EAE7BgE,GAAO,KACThE,GAAY,IAId,OAAQpF,MAAMoF,IAAa3E,KAAK4I,IAAIjE,GAAY,GAAK3E,KAAK4I,IAAIjE,GAAY,EACxEA,GAAY,GAGd,IAAI+B,EAAa,CAACrD,EAAWpD,MAAMoH,EAASzG,EAAO,GAAK+D,GAAYA,GAAWtB,EAAWpD,MAAMmH,EAAUxG,EAAO,GAAK+D,GAAYA,IAClIT,KAAKN,UAAYe,EACjBT,KAAKU,YAAc8B,CAhBnB,CAiBF,EAMAA,WAAY,SAAU1O,GACpBkP,EAAmBR,WAAWlC,KAAKN,KAAMlM,GACzC,IAAIgQ,EAAgB9D,KAAK6D,eACzBC,EAAcG,SAAWnQ,EAAI6O,OAC7BmB,EAAcK,SAAWrQ,EAAI4O,MAC/B,IAaF,SAASwB,EAAiB7P,EAAKsQ,GAC7B,OAAO1B,EAAiB5O,EAAK0N,EAAiB4C,GAChD,CAbA7O,EAAOvC,KAAK,CAAC,UAAW,cAAc,SAAUqR,GAC9CpB,EAASnD,UAAUuE,GAAc,SAAUvQ,GAEzC,OADAA,EAAMiP,EAAQjP,GAAOiP,EAAQtD,KAAKyD,MAC3BV,EAAW6B,GAAYtE,KAAKN,KAAM3L,EAC3C,CACF,IAEAmP,EAASV,OAAS,WAChB,OAAO,IAAIU,CACb,EAMA,IAAI3O,EAAW2O,EACf5N,EAAOC,QAAUhB,C,wBC/LjB,IAAIiB,EAAS,EAAQ,OAEjBuJ,EAAQ,EAAQ,OAEhBwF,EAAc,EAAQ,OA4BtB9B,EAAa1D,EAAMgB,UACnByE,EAAezF,EAAMI,OAAO,CAC9BvK,KAAM,UAKN6P,KAAM,SAAUC,EAAatI,GAGtBsI,IAAelP,EAAOtC,QAAQwR,KACjCA,EAAc,IAAIH,EAAY,CAC5B1M,WAAY6M,KAIhBhF,KAAKiF,aAAeD,EACpBhF,KAAKC,QAAUvD,GAAU,CAAC,EAAGsI,EAAY7M,WAAWhE,OAAS,EAC/D,EACA+Q,MAAO,SAAU7Q,GACf,MAAsB,kBAARA,EAAmB2L,KAAKiF,aAAaE,WAAW9Q,GAC5DyH,KAAKC,MAAM1H,EACf,EACA+Q,QAAS,SAAUC,GAEjB,OADAA,EAAOrF,KAAKkF,MAAMG,GACXtC,EAAWqC,QAAQ9E,KAAKN,KAAMqF,IAA+C,MAAtCrF,KAAKiF,aAAa9M,WAAWkN,EAC7E,EAOAC,UAAW,SAAUjR,GACnB,OAAO0O,EAAWuC,UAAUhF,KAAKN,KAAMA,KAAKkF,MAAM7Q,GACpD,EACA+P,MAAO,SAAU/P,GACf,OAAOyH,KAAKC,MAAMgH,EAAWqB,MAAM9D,KAAKN,KAAM3L,GAChD,EAKAwM,SAAU,WACR,IAAII,EAAQ,GACRvE,EAASsD,KAAKC,QACdoF,EAAO3I,EAAO,GAElB,MAAO2I,GAAQ3I,EAAO,GACpBuE,EAAMpI,KAAKwM,GACXA,IAGF,OAAOpE,CACT,EAOAY,SAAU,SAAU0D,GAClB,IAAKvF,KAAKwF,UAER,OAAOxF,KAAKiF,aAAa9M,WAAWoN,EAExC,EAKAnK,MAAO,WACL,OAAO4E,KAAKC,QAAQ,GAAKD,KAAKC,QAAQ,GAAK,CAC7C,EAKAoE,oBAAqB,SAAUxM,EAAMoF,GACnC+C,KAAKG,YAAYtI,EAAKyM,qBAAqBrH,GAC7C,EACAwI,eAAgB,WACd,OAAOzF,KAAKiF,YACd,EACAhD,UAAWnM,EAAO4P,KAClBlD,WAAY1M,EAAO4P,OAMrBZ,EAAahC,OAAS,WACpB,OAAO,IAAIgC,CACb,EAEA,IAAIjQ,EAAWiQ,EACflP,EAAOC,QAAUhB,C,wBChIjB,IAAI8Q,EAAY,EAAQ,OA6BxB,SAAStG,EAAMuG,GACb5F,KAAK6F,SAAWD,GAAW,CAAC,EAO5B5F,KAAKC,QAAU,CAACzE,KAAWA,KAO3BwE,KAAKN,UAAY,EACjBM,KAAK+E,MAAQ/E,KAAK+E,KAAKpB,MAAM3D,KAAM4D,UACrC,CAQAvE,EAAMgB,UAAU6E,MAAQ,SAAU7Q,GAKhC,OAAOA,CACT,EAEAgL,EAAMgB,UAAUyF,WAAa,SAAUjL,GACrC,OAAOmF,KAAK6F,SAAShL,EACvB,EAEAwE,EAAMgB,UAAU+E,QAAU,SAAU/Q,GAClC,IAAIqI,EAASsD,KAAKC,QAClB,OAAO5L,GAAOqI,EAAO,IAAMrI,GAAOqI,EAAO,EAC3C,EAQA2C,EAAMgB,UAAUiF,UAAY,SAAUjR,GACpC,IAAIqI,EAASsD,KAAKC,QAElB,OAAIvD,EAAO,KAAOA,EAAO,GAChB,IAGDrI,EAAMqI,EAAO,KAAOA,EAAO,GAAKA,EAAO,GACjD,EAQA2C,EAAMgB,UAAU+D,MAAQ,SAAU/P,GAChC,IAAIqI,EAASsD,KAAKC,QAClB,OAAO5L,GAAOqI,EAAO,GAAKA,EAAO,IAAMA,EAAO,EAChD,EAOA2C,EAAMgB,UAAUF,YAAc,SAAUC,GACtC,IAAI1D,EAASsD,KAAKC,QAClBG,EAAM,GAAK1D,EAAO,KAAOA,EAAO,GAAK0D,EAAM,IAC3CA,EAAM,GAAK1D,EAAO,KAAOA,EAAO,GAAK0D,EAAM,GAE7C,EAQAf,EAAMgB,UAAUgE,oBAAsB,SAAUxM,EAAMoF,GACpD+C,KAAKG,YAAYtI,EAAKyM,qBAAqBrH,GAC7C,EAOAoC,EAAMgB,UAAU1D,UAAY,WAC1B,OAAOqD,KAAKC,QAAQU,OACtB,EAQAtB,EAAMgB,UAAUT,UAAY,SAAUC,EAAOC,GAC3C,IAAIC,EAAaC,KAAKC,QAEjB5E,MAAMwE,KACTE,EAAW,GAAKF,GAGbxE,MAAMyE,KACTC,EAAW,GAAKD,EAEpB,EAOAT,EAAMgB,UAAUmF,QAAU,WACxB,OAAOxF,KAAK+F,QACd,EAKA1G,EAAMgB,UAAU2F,SAAW,SAAUR,GACnCxF,KAAK+F,SAAWP,CAClB,EAOAnG,EAAMgB,UAAUwB,SAAW,KAC3B8D,EAAUM,kBAAkB5G,GAC5BsG,EAAUO,sBAAsB7G,EAAO,CACrC8G,oBAAoB,IAEtB,IAAItR,EAAWwK,EACfzJ,EAAOC,QAAUhB,C,wBC9KjB,IAAIiB,EAAS,EAAQ,OAEjBqJ,EAAa,EAAQ,OAErBC,EAAa,EAAQ,OAErBgH,EAAc,EAAQ,OAEtB5G,EAAgB,EAAQ,OAuCxBwD,EAAqBxD,EAAca,UACnC8C,EAAWrH,KAAK+G,KAChBK,EAAYpH,KAAK8G,MACjByD,EAAa,IACbC,EAA0B,GAAbD,EACbE,EAAwB,GAAbD,EACXE,EAAqB,GAAXD,EAEVE,EAAS,SAAUC,EAAGC,EAAGC,EAAIC,GAC/B,MAAOD,EAAKC,EAAI,CACd,IAAIC,EAAMF,EAAKC,IAAO,EAElBH,EAAEI,GAAK,GAAKH,EACdC,EAAKE,EAAM,EAEXD,EAAKC,CAET,CAEA,OAAOF,CACT,EAOIG,EAAYvH,EAAcC,OAAO,CACnCvK,KAAM,OAKN2M,SAAU,SAAUxN,GAClB,IAAI2S,EAAUhH,KAAKiH,SACfC,EAAO,IAAIC,KAAK9S,GACpB,OAAO+K,EAAWgI,WAAWJ,EAAQ,GAAIE,EAAMlH,KAAK8F,WAAW,UACjE,EAKAtD,WAAY,SAAU1O,GACpB,IAAI4I,EAASsD,KAAKC,QASlB,GAPIvD,EAAO,KAAOA,EAAO,KAEvBA,EAAO,IAAM8J,EACb9J,EAAO,IAAM8J,GAIX9J,EAAO,MAAQlB,KAAYkB,EAAO,KAAOlB,IAAU,CACrD,IAAI6L,EAAI,IAAIF,KACZzK,EAAO,IAAM,IAAIyK,KAAKE,EAAEC,cAAeD,EAAEE,WAAYF,EAAEG,WACvD9K,EAAO,GAAKA,EAAO,GAAK8J,CAC1B,CAEAxG,KAAKiC,UAAUnO,EAAIwN,YAAaxN,EAAIoO,YAAapO,EAAIqO,aAErD,IAAI1B,EAAWT,KAAKN,UAEf5L,EAAI6O,SACPjG,EAAO,GAAKyC,EAAWpD,MAAMmH,EAAUxG,EAAO,GAAK+D,GAAYA,IAG5D3M,EAAI4O,SACPhG,EAAO,GAAKyC,EAAWpD,MAAMoH,EAASzG,EAAO,GAAK+D,GAAYA,GAElE,EAKAwB,UAAW,SAAUsC,EAAerC,EAAaC,GAC/CoC,EAAgBA,GAAiB,GACjC,IAAI7H,EAASsD,KAAKC,QACdmC,EAAO1F,EAAO,GAAKA,EAAO,GAC1B+K,EAAiBrF,EAAOmC,EAET,MAAfrC,GAAuBuF,EAAiBvF,IAC1CuF,EAAiBvF,GAGA,MAAfC,GAAuBsF,EAAiBtF,IAC1CsF,EAAiBtF,GAGnB,IAAIuF,EAAiBC,EAAYxT,OAC7ByG,EAAM6L,EAAOkB,EAAaF,EAAgB,EAAGC,GAC7CE,EAAQD,EAAY7L,KAAKJ,IAAId,EAAK8M,EAAiB,IACnDjH,EAAWmH,EAAM,GAErB,GAAiB,SAAbA,EAAM,GAAe,CACvB,IAAIC,EAAWzF,EAAO3B,EAGlBqH,EAAW3I,EAAW4I,KAAKF,EAAWtD,GAAe,GACzD9D,GAAYqH,CACd,CAEA,IAAIE,EAAiBhI,KAAK8F,WAAW,UAAY,EAA6D,GAAzD,IAAIqB,MAAMzK,EAAO,KAAOA,EAAO,IAAIuL,oBAA2B,IAC/GzF,EAAa,CAAC1G,KAAKC,MAAMoH,GAAUzG,EAAO,GAAKsL,GAAkBvH,GAAYA,EAAWuH,GAAiBlM,KAAKC,MAAMmH,GAAWxG,EAAO,GAAKsL,GAAkBvH,GAAYA,EAAWuH,IACxL5B,EAAY8B,UAAU1F,EAAY9F,GAClCsD,KAAKiH,SAAWW,EAEhB5H,KAAKN,UAAYe,EACjBT,KAAKU,YAAc8B,CACrB,EACA0C,MAAO,SAAU7Q,GAEf,OAAQ8K,EAAWgJ,UAAU9T,EAC/B,IAEFyB,EAAOvC,KAAK,CAAC,UAAW,cAAc,SAAUqR,GAC9CmC,EAAU1G,UAAUuE,GAAc,SAAUvQ,GAC1C,OAAO2O,EAAmB4B,GAAYtE,KAAKN,KAAMA,KAAKkF,MAAM7Q,GAC9D,CACF,IAQA,IAAIsT,EAAc,CAClB,CAAC,WAAYtB,GACb,CAAC,WAAyB,EAAbA,GACb,CAAC,WAAyB,GAAbA,GACb,CAAC,WAAyB,GAAbA,GACb,CAAC,WAAyB,GAAbA,GACb,CAAC,eAAgBC,GACjB,CAAC,eAA6B,EAAbA,GACjB,CAAC,eAA6B,GAAbA,GACjB,CAAC,eAA6B,GAAbA,GACjB,CAAC,eAA6B,GAAbA,GACjB,CAAC,eAAgBC,GACjB,CAAC,eAA2B,EAAXA,GACjB,CAAC,eAA2B,EAAXA,GACjB,CAAC,eAA2B,GAAXA,GACjB,CAAC,cAAeC,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,cAAyB,EAAVA,GAChB,CAAC,OAAkB,EAAVA,GACT,CAAC,cAAyB,GAAVA,GAChB,CAAC,OAAkB,GAAVA,GACT,CAAC,OAAkB,GAAVA,GACT,CAAC,QAAmB,GAAVA,GACV,CAAC,OAAkB,GAAVA,GACT,CAAC,QAAmB,GAAVA,GACV,CAAC,OAAkB,GAAVA,GACT,CAAC,UAAqB,GAAVA,GACZ,CAAC,QAAmB,GAAVA,EAAe,GACzB,CAAC,QAAmB,GAAVA,EAAe,GACzB,CAAC,YAAuB,IAAVA,EAAgB,GAC9B,CAAC,QAAmB,GAAVA,EAAe,GACzB,CAAC,QAAmB,GAAVA,EAAe,IACzB,CAAC,OAAkB,IAAVA,IAOTO,EAAUjE,OAAS,SAAUsF,GAC3B,OAAO,IAAIrB,EAAU,CACnBsB,OAAQD,EAAM9N,QAAQzG,IAAI,WAE9B,EAEA,IAAIgB,EAAWkS,EACfnR,EAAOC,QAAUhB,C,wBC9NjB,IAAIsK,EAAa,EAAQ,OAwBrBI,EAAcJ,EAAWpD,MAU7B,SAASwG,EAAuB7F,EAAQ4E,EAAaY,EAAaC,GAChE,IAAIG,EAAS,CAAC,EACVF,EAAO1F,EAAO,GAAKA,EAAO,GAC1B+D,EAAW6B,EAAO7B,SAAWtB,EAAW4I,KAAK3F,EAAOd,GAAa,GAElD,MAAfY,GAAuBzB,EAAWyB,IACpCzB,EAAW6B,EAAO7B,SAAWyB,GAGZ,MAAfC,GAAuB1B,EAAW0B,IACpC1B,EAAW6B,EAAO7B,SAAW0B,GAI/B,IAAIL,EAAYQ,EAAOtB,kBAAoBJ,EAAqBH,GAE5DM,EAAiBuB,EAAOvB,eAAiB,CAACxB,EAAYzD,KAAK+G,KAAKnG,EAAO,GAAK+D,GAAYA,EAAUqB,GAAYvC,EAAYzD,KAAK8G,MAAMlG,EAAO,GAAK+D,GAAYA,EAAUqB,IAE3K,OADAoG,EAAUnH,EAAgBrE,GACnB4F,CACT,CAOA,SAAS1B,EAAqBH,GAE5B,OAAOtB,EAAW4C,iBAAiBtB,GAAY,CACjD,CAEA,SAAS6H,EAAMvH,EAAgBnG,EAAK8B,GAClCqE,EAAenG,GAAOkB,KAAKP,IAAIO,KAAKJ,IAAIqF,EAAenG,GAAM8B,EAAO,IAAKA,EAAO,GAClF,CAGA,SAASwL,EAAUnH,EAAgBrE,IAChCjB,SAASsF,EAAe,MAAQA,EAAe,GAAKrE,EAAO,KAC3DjB,SAASsF,EAAe,MAAQA,EAAe,GAAKrE,EAAO,IAC5D4L,EAAMvH,EAAgB,EAAGrE,GACzB4L,EAAMvH,EAAgB,EAAGrE,GAErBqE,EAAe,GAAKA,EAAe,KACrCA,EAAe,GAAKA,EAAe,GAEvC,CAEAlL,EAAQ0M,uBAAyBA,EACjC1M,EAAQ+K,qBAAuBA,EAC/B/K,EAAQqS,UAAYA,C","sources":["webpack://app/./node_modules/echarts/lib/preprocessor/backwardCompat.js","webpack://app/./node_modules/echarts/lib/preprocessor/helper/compatStyle.js","webpack://app/./node_modules/echarts/lib/processor/dataFilter.js","webpack://app/./node_modules/echarts/lib/processor/dataSample.js","webpack://app/./node_modules/echarts/lib/processor/dataStack.js","webpack://app/./node_modules/echarts/lib/scale/Interval.js","webpack://app/./node_modules/echarts/lib/scale/Log.js","webpack://app/./node_modules/echarts/lib/scale/Ordinal.js","webpack://app/./node_modules/echarts/lib/scale/Scale.js","webpack://app/./node_modules/echarts/lib/scale/Time.js","webpack://app/./node_modules/echarts/lib/scale/helper.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 _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar isArray = _util.isArray;\nvar isObject = _util.isObject;\n\nvar compatStyle = require(\"./helper/compatStyle\");\n\nvar _model = require(\"../util/model\");\n\nvar normalizeToArray = _model.normalizeToArray;\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// Compatitable with 2.0\nfunction get(opt, path) {\n path = path.split(',');\n var obj = opt;\n\n for (var i = 0; i < path.length; i++) {\n obj = obj && obj[path[i]];\n\n if (obj == null) {\n break;\n }\n }\n\n return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n path = path.split(',');\n var obj = opt;\n var key;\n\n for (var i = 0; i < path.length - 1; i++) {\n key = path[i];\n\n if (obj[key] == null) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n if (overwrite || obj[path[i]] == null) {\n obj[path[i]] = val;\n }\n}\n\nfunction compatLayoutProperties(option) {\n each(LAYOUT_PROPERTIES, function (prop) {\n if (prop[0] in option && !(prop[1] in option)) {\n option[prop[1]] = option[prop[0]];\n }\n });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\n\nfunction _default(option, isTheme) {\n compatStyle(option, isTheme); // Make sure series array for model initialization.\n\n option.series = normalizeToArray(option.series);\n each(option.series, function (seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n var seriesType = seriesOpt.type;\n\n if (seriesType === 'line') {\n if (seriesOpt.clipOverflow != null) {\n seriesOpt.clip = seriesOpt.clipOverflow;\n }\n } else if (seriesType === 'pie' || seriesType === 'gauge') {\n if (seriesOpt.clockWise != null) {\n seriesOpt.clockwise = seriesOpt.clockWise;\n }\n } else if (seriesType === 'gauge') {\n var pointerColor = get(seriesOpt, 'pointer.color');\n pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n }\n\n compatLayoutProperties(seriesOpt);\n }); // dataRange has changed to visualMap\n\n if (option.dataRange) {\n option.visualMap = option.dataRange;\n }\n\n each(COMPATITABLE_COMPONENTS, function (componentName) {\n var options = option[componentName];\n\n if (options) {\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (option) {\n compatLayoutProperties(option);\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\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 each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n // Timeline controlStyle has other properties besides normal and emphasis\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine'); // treemap\n\n convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n // Check whether is not object (string\\null\\undefined ...)\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var propName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(propName)) {\n labelOptSingle[propName] = textStyle[propName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label'); // treemap\n\n compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option,\n // then the backward compat based on option type will not be performed.\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n } // mark point data\n\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n } // mark line data\n\n\n var markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n } // Series\n\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n } // sunburst starts from ec4, so it does not need to compat levels.\n\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nfunction _default(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n }); // radar.name.textStyle\n\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\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\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 _default(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx); // If in any legend component the status is not selected.\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n\n return true;\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\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 samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n } // Return NaN if count is 0\n\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n // Ignore NaN\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(min) ? min : NaN;\n },\n // TODO\n // Median\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame, value) {\n return Math.round(frame.length / 2);\n};\n\nfunction _default(seriesType) {\n return {\n seriesType: seriesType,\n modifyOutputEnd: true,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem; // Only cartesian2d support down sampling\n\n if (coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent(); // Coordinste system has been resized\n\n var size = extent[1] - extent[0];\n var rate = Math.round(data.count() / size);\n\n if (rate > 1) {\n var sampler;\n\n if (typeof sampling === 'string') {\n sampler = samplers[sampling];\n } else if (typeof sampling === 'function') {\n sampler = sampling;\n }\n\n if (sampler) {\n // Only support sample the first dim mapped from value axis.\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\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 _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\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// (1) [Caution]: the logic is correct based on the premises:\n// data processing stage is blocked in stream.\n// See <module:echarts/stream/Scheduler#performDataProcessorTasks>\n// (2) Only register once when import repeatly.\n// Should be executed after series filtered and before stack calculation.\nfunction _default(ecModel) {\n var stackInfoMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var stack = seriesModel.get('stack'); // Compatibal: when `stack` is set as '', do not stack.\n\n if (stack) {\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n var data = seriesModel.getData();\n var stackInfo = {\n // Used for calculate axis extent automatically.\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n stackedDimension: data.getCalculationInfo('stackedDimension'),\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n data: data,\n seriesModel: seriesModel\n }; // If stacked on axis that do not support data stack.\n\n if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n return;\n }\n\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n stackInfoList.push(stackInfo);\n }\n });\n stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n each(stackInfoList, function (targetStackInfo, idxInStack) {\n var resultVal = [];\n var resultNaN = [NaN, NaN];\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n var targetData = targetStackInfo.data;\n var isStackedByIndex = targetStackInfo.isStackedByIndex; // Should not write on raw data, because stack series model list changes\n // depending on legend selection.\n\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); // Consider `connectNulls` of line area, if value is NaN, stackedOver\n // should also be NaN, to draw a appropriate belt area.\n\n if (isNaN(sum)) {\n return resultNaN;\n }\n\n var byValue;\n var stackedDataRawIndex;\n\n if (isStackedByIndex) {\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n } else {\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n } // If stackOver is NaN, chart view will render point on value start.\n\n\n var stackedOver = NaN;\n\n for (var j = idxInStack - 1; j >= 0; j--) {\n var stackInfo = stackInfoList[j]; // Has been optimized by inverted indices on `stackedByDimension`.\n\n if (!isStackedByIndex) {\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n }\n\n if (stackedDataRawIndex >= 0) {\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); // Considering positive stack, negative stack and empty data\n\n if (sum >= 0 && val > 0 || // Positive stack\n sum <= 0 && val < 0 // Negative stack\n ) {\n sum += val;\n stackedOver = val;\n break;\n }\n }\n }\n\n resultVal[0] = sum;\n resultVal[1] = stackedOver;\n return resultVal;\n });\n targetData.hostModel.setData(newData); // Update for consequent calculation\n\n targetStackInfo.data = newData;\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 numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar Scale = require(\"./Scale\");\n\nvar helper = require(\"./helper\");\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 * Interval scale\n * @module echarts/scale/Interval\n */\nvar roundNumber = numberUtil.round;\n/**\n * @alias module:echarts/coord/scale/Interval\n * @constructor\n */\n\nvar IntervalScale = Scale.extend({\n type: 'interval',\n _interval: 0,\n _intervalPrecision: 2,\n setExtent: function (start, end) {\n var thisExtent = this._extent; //start,end may be a Number like '25',so...\n\n if (!isNaN(start)) {\n thisExtent[0] = parseFloat(start);\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = parseFloat(end);\n }\n },\n unionExtent: function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]); // unionExtent may called by it's sub classes\n\n IntervalScale.prototype.setExtent.call(this, extent[0], extent[1]);\n },\n\n /**\n * Get interval\n */\n getInterval: function () {\n return this._interval;\n },\n\n /**\n * Set interval\n */\n setInterval: function (interval) {\n this._interval = interval; // Dropped auto calculated niceExtent and use user setted extent\n // We assume user wan't to set both interval, min, max to get a better result\n\n this._niceExtent = this._extent.slice();\n this._intervalPrecision = helper.getIntervalPrecision(interval);\n },\n\n /**\n * @param {boolean} [expandToNicedExtent=false] If expand the ticks to niced extent.\n * @return {Array.<number>}\n */\n getTicks: function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var niceTickExtent = this._niceExtent;\n var intervalPrecision = this._intervalPrecision;\n var ticks = []; // If interval is 0, return [];\n\n if (!interval) {\n return ticks;\n } // Consider this case: using dataZoom toolbox, zoom and zoom.\n\n\n var safeLimit = 10000;\n\n if (extent[0] < niceTickExtent[0]) {\n if (expandToNicedExtent) {\n ticks.push(roundNumber(niceTickExtent[0] - interval, intervalPrecision));\n } else {\n ticks.push(extent[0]);\n }\n }\n\n var tick = niceTickExtent[0];\n\n while (tick <= niceTickExtent[1]) {\n ticks.push(tick); // Avoid rounding error\n\n tick = roundNumber(tick + interval, intervalPrecision);\n\n if (tick === ticks[ticks.length - 1]) {\n // Consider out of safe float point, e.g.,\n // -3711126.9907707 + 2e-10 === -3711126.9907707\n break;\n }\n\n if (ticks.length > safeLimit) {\n return [];\n }\n } // Consider this case: the last item of ticks is smaller\n // than niceTickExtent[1] and niceTickExtent[1] === extent[1].\n\n\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1] : niceTickExtent[1];\n\n if (extent[1] > lastNiceTick) {\n if (expandToNicedExtent) {\n ticks.push(roundNumber(lastNiceTick + interval, intervalPrecision));\n } else {\n ticks.push(extent[1]);\n }\n }\n\n return ticks;\n },\n\n /**\n * @param {number} [splitNumber=5]\n * @return {Array.<Array.<number>>}\n */\n getMinorTicks: function (splitNumber) {\n var ticks = this.getTicks(true);\n var minorTicks = [];\n var extent = this.getExtent();\n\n for (var i = 1; i < ticks.length; i++) {\n var nextTick = ticks[i];\n var prevTick = ticks[i - 1];\n var count = 0;\n var minorTicksGroup = [];\n var interval = nextTick - prevTick;\n var minorInterval = interval / splitNumber;\n\n while (count < splitNumber - 1) {\n var minorTick = numberUtil.round(prevTick + (count + 1) * minorInterval); // For the first and last interval. The count may be less than splitNumber.\n\n if (minorTick > extent[0] && minorTick < extent[1]) {\n minorTicksGroup.push(minorTick);\n }\n\n count++;\n }\n\n minorTicks.push(minorTicksGroup);\n }\n\n return minorTicks;\n },\n\n /**\n * @param {number} data\n * @param {Object} [opt]\n * @param {number|string} [opt.precision] If 'auto', use nice presision.\n * @param {boolean} [opt.pad] returns 1.50 but not 1.5 if precision is 2.\n * @return {string}\n */\n getLabel: function (data, opt) {\n if (data == null) {\n return '';\n }\n\n var precision = opt && opt.precision;\n\n if (precision == null) {\n precision = numberUtil.getPrecisionSafe(data) || 0;\n } else if (precision === 'auto') {\n // Should be more precise then tick.\n precision = this._intervalPrecision;\n } // (1) If `precision` is set, 12.005 should be display as '12.00500'.\n // (2) Use roundNumber (toFixed) to avoid scientific notation like '3.5e-7'.\n\n\n data = roundNumber(data, precision, true);\n return formatUtil.addCommas(data);\n },\n\n /**\n * Update interval and extent of intervals for nice ticks\n *\n * @param {number} [splitNumber = 5] Desired number of ticks\n * @param {number} [minInterval]\n * @param {number} [maxInterval]\n */\n niceTicks: function (splitNumber, minInterval, maxInterval) {\n splitNumber = splitNumber || 5;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n return;\n } // User may set axis min 0 and data are all negative\n // FIXME If it needs to reverse ?\n\n\n if (span < 0) {\n span = -span;\n extent.reverse();\n }\n\n var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n this._intervalPrecision = result.intervalPrecision;\n this._interval = result.interval;\n this._niceExtent = result.niceTickExtent;\n },\n\n /**\n * Nice extent.\n * @param {Object} opt\n * @param {number} [opt.splitNumber = 5] Given approx tick number\n * @param {boolean} [opt.fixMin=false]\n * @param {boolean} [opt.fixMax=false]\n * @param {boolean} [opt.minInterval]\n * @param {boolean} [opt.maxInterval]\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n if (extent[0] !== 0) {\n // Expand extent\n var expandSize = extent[0]; // In the fowllowing case\n // Axis has been fixed max 100\n // Plus data are all 100 and axis extent are [100, 100].\n // Extend to the both side will cause expanded max is larger than fixed max.\n // So only expand to the smaller side.\n\n if (!opt.fixMax) {\n extent[1] += expandSize / 2;\n extent[0] -= expandSize / 2;\n } else {\n extent[0] -= expandSize / 2;\n }\n } else {\n extent[1] = 1;\n }\n }\n\n var span = extent[1] - extent[0]; // If there are no data and extent are [Infinity, -Infinity]\n\n if (!isFinite(span)) {\n extent[0] = 0;\n extent[1] = 1;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n }\n }\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nIntervalScale.create = function () {\n return new IntervalScale();\n};\n\nvar _default = IntervalScale;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar Scale = require(\"./Scale\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar IntervalScale = require(\"./Interval\");\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 * Log scale\n * @module echarts/scale/Log\n */\n// Use some method of IntervalScale\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\nvar LogScale = Scale.extend({\n type: 'log',\n base: 10,\n $constructor: function () {\n Scale.apply(this, arguments);\n this._originalScale = new IntervalScale();\n },\n\n /**\n * @param {boolean} [expandToNicedExtent=false] If expand the ticks to niced extent.\n * @return {Array.<number>}\n */\n getTicks: function (expandToNicedExtent) {\n var originalScale = this._originalScale;\n var extent = this._extent;\n var originalExtent = originalScale.getExtent();\n return zrUtil.map(intervalScaleProto.getTicks.call(this, expandToNicedExtent), function (val) {\n var powVal = numberUtil.round(mathPow(this.base, val)); // Fix #4158\n\n powVal = val === extent[0] && originalScale.__fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n powVal = val === extent[1] && originalScale.__fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n return powVal;\n }, this);\n },\n\n /**\n * @param {number} splitNumber\n * @return {Array.<Array.<number>>}\n */\n getMinorTicks: intervalScaleProto.getMinorTicks,\n\n /**\n * @param {number} val\n * @return {string}\n */\n getLabel: intervalScaleProto.getLabel,\n\n /**\n * @param {number} val\n * @return {number}\n */\n scale: function (val) {\n val = scaleProto.scale.call(this, val);\n return mathPow(this.base, val);\n },\n\n /**\n * @param {number} start\n * @param {number} end\n */\n setExtent: function (start, end) {\n var base = this.base;\n start = mathLog(start) / mathLog(base);\n end = mathLog(end) / mathLog(base);\n intervalScaleProto.setExtent.call(this, start, end);\n },\n\n /**\n * @return {number} end\n */\n getExtent: function () {\n var base = this.base;\n var extent = scaleProto.getExtent.call(this);\n extent[0] = mathPow(base, extent[0]);\n extent[1] = mathPow(base, extent[1]); // Fix #4158\n\n var originalScale = this._originalScale;\n var originalExtent = originalScale.getExtent();\n originalScale.__fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n originalScale.__fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n return extent;\n },\n\n /**\n * @param {Array.<number>} extent\n */\n unionExtent: function (extent) {\n this._originalScale.unionExtent(extent);\n\n var base = this.base;\n extent[0] = mathLog(extent[0]) / mathLog(base);\n extent[1] = mathLog(extent[1]) / mathLog(base);\n scaleProto.unionExtent.call(this, extent);\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n // TODO\n // filter value that <= 0\n this.unionExtent(data.getApproximateExtent(dim));\n },\n\n /**\n * Update interval and extent of intervals for nice ticks\n * @param {number} [approxTickNum = 10] Given approx tick number\n */\n niceTicks: function (approxTickNum) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (span === Infinity || span <= 0) {\n return;\n }\n\n var interval = numberUtil.quantity(span);\n var err = approxTickNum / span * interval; // Filter ticks to get closer to the desired count.\n\n if (err <= 0.5) {\n interval *= 10;\n } // Interval should be integer\n\n\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n interval *= 10;\n }\n\n var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n\n /**\n * Nice extent.\n * @override\n */\n niceExtent: function (opt) {\n intervalScaleProto.niceExtent.call(this, opt);\n var originalScale = this._originalScale;\n originalScale.__fixMin = opt.fixMin;\n originalScale.__fixMax = opt.fixMax;\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n LogScale.prototype[methodName] = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleProto[methodName].call(this, val);\n };\n});\n\nLogScale.create = function () {\n return new LogScale();\n};\n\nfunction fixRoundingError(val, originalVal) {\n return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nvar _default = LogScale;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar Scale = require(\"./Scale\");\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\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 * Linear continuous scale\n * @module echarts/coord/scale/Ordinal\n *\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\nvar scaleProto = Scale.prototype;\nvar OrdinalScale = Scale.extend({\n type: 'ordinal',\n\n /**\n * @param {module:echarts/data/OrdianlMeta|Array.<string>} ordinalMeta\n */\n init: function (ordinalMeta, extent) {\n // Caution: Should not use instanceof, consider ec-extensions using\n // import approach to get OrdinalMeta class.\n if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: ordinalMeta\n });\n }\n\n this._ordinalMeta = ordinalMeta;\n this._extent = extent || [0, ordinalMeta.categories.length - 1];\n },\n parse: function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float.\n : Math.round(val);\n },\n contain: function (rank) {\n rank = this.parse(rank);\n return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;\n },\n\n /**\n * Normalize given rank or name to linear [0, 1]\n * @param {number|string} [val]\n * @return {number}\n */\n normalize: function (val) {\n return scaleProto.normalize.call(this, this.parse(val));\n },\n scale: function (val) {\n return Math.round(scaleProto.scale.call(this, val));\n },\n\n /**\n * @return {Array}\n */\n getTicks: function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push(rank);\n rank++;\n }\n\n return ticks;\n },\n\n /**\n * Get item on rank n\n * @param {number} n\n * @return {string}\n */\n getLabel: function (n) {\n if (!this.isBlank()) {\n // Note that if no data, ordinalMeta.categories is an empty array.\n return this._ordinalMeta.categories[n];\n }\n },\n\n /**\n * @return {number}\n */\n count: function () {\n return this._extent[1] - this._extent[0] + 1;\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n },\n getOrdinalMeta: function () {\n return this._ordinalMeta;\n },\n niceTicks: zrUtil.noop,\n niceExtent: zrUtil.noop\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nOrdinalScale.create = function () {\n return new OrdinalScale();\n};\n\nvar _default = OrdinalScale;\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 clazzUtil = require(\"../util/clazz\");\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 * // Scale class management\n * @module echarts/scale/Scale\n */\n\n/**\n * @param {Object} [setting]\n */\nfunction Scale(setting) {\n this._setting = setting || {};\n /**\n * Extent\n * @type {Array.<number>}\n * @protected\n */\n\n this._extent = [Infinity, -Infinity];\n /**\n * Step is calculated in adjustExtent\n * @type {Array.<number>}\n * @protected\n */\n\n this._interval = 0;\n this.init && this.init.apply(this, arguments);\n}\n/**\n * Parse input val to valid inner number.\n * @param {*} val\n * @return {number}\n */\n\n\nScale.prototype.parse = function (val) {\n // Notice: This would be a trap here, If the implementation\n // of this method depends on extent, and this method is used\n // before extent set (like in dataZoom), it would be wrong.\n // Nevertheless, parse does not depend on extent generally.\n return val;\n};\n\nScale.prototype.getSetting = function (name) {\n return this._setting[name];\n};\n\nScale.prototype.contain = function (val) {\n var extent = this._extent;\n return val >= extent[0] && val <= extent[1];\n};\n/**\n * Normalize value to linear [0, 1], return 0.5 if extent span is 0\n * @param {number} val\n * @return {number}\n */\n\n\nScale.prototype.normalize = function (val) {\n var extent = this._extent;\n\n if (extent[1] === extent[0]) {\n return 0.5;\n }\n\n return (val - extent[0]) / (extent[1] - extent[0]);\n};\n/**\n * Scale normalized value\n * @param {number} val\n * @return {number}\n */\n\n\nScale.prototype.scale = function (val) {\n var extent = this._extent;\n return val * (extent[1] - extent[0]) + extent[0];\n};\n/**\n * Set extent from data\n * @param {Array.<number>} other\n */\n\n\nScale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]); // not setExtent because in log axis it may transformed to power\n // this.setExtent(extent[0], extent[1]);\n};\n/**\n * Set extent from data\n * @param {module:echarts/data/List} data\n * @param {string} dim\n */\n\n\nScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n};\n/**\n * Get extent\n * @return {Array.<number>}\n */\n\n\nScale.prototype.getExtent = function () {\n return this._extent.slice();\n};\n/**\n * Set extent\n * @param {number} start\n * @param {number} end\n */\n\n\nScale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = start;\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = end;\n }\n};\n/**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\n\n\nScale.prototype.isBlank = function () {\n return this._isBlank;\n},\n/**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\nScale.prototype.setBlank = function (isBlank) {\n this._isBlank = isBlank;\n};\n/**\n * @abstract\n * @param {*} tick\n * @return {string} label of the tick.\n */\n\nScale.prototype.getLabel = null;\nclazzUtil.enableClassExtend(Scale);\nclazzUtil.enableClassManagement(Scale, {\n registerWhenExtend: true\n});\nvar _default = Scale;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar scaleHelper = require(\"./helper\");\n\nvar IntervalScale = require(\"./Interval\");\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* A third-party license is embeded for some of the code in this file:\n* The \"scaleLevels\" was originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment on the definition of \"scaleLevels\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* </licenses/LICENSE-d3>).\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design have\n// concidered these common case:\n// (1) Time that is persistent in server is in UTC, but it is needed to be diplayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\nvar intervalScaleProto = IntervalScale.prototype;\nvar mathCeil = Math.ceil;\nvar mathFloor = Math.floor;\nvar ONE_SECOND = 1000;\nvar ONE_MINUTE = ONE_SECOND * 60;\nvar ONE_HOUR = ONE_MINUTE * 60;\nvar ONE_DAY = ONE_HOUR * 24; // FIXME 公用?\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n/**\n * @alias module:echarts/coord/scale/Time\n * @constructor\n */\n\n\nvar TimeScale = IntervalScale.extend({\n type: 'time',\n\n /**\n * @override\n */\n getLabel: function (val) {\n var stepLvl = this._stepLvl;\n var date = new Date(val);\n return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC'));\n },\n\n /**\n * @override\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n // Expand extent\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n } // If there are no data and extent are [Infinity, -Infinity]\n\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);\n }\n },\n\n /**\n * @override\n */\n niceTicks: function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n var approxInterval = span / approxTickNum;\n\n if (minInterval != null && approxInterval < minInterval) {\n approxInterval = minInterval;\n }\n\n if (maxInterval != null && approxInterval > maxInterval) {\n approxInterval = maxInterval;\n }\n\n var scaleLevelsLen = scaleLevels.length;\n var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen);\n var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)];\n var interval = level[1]; // Same with interval scale if span is much larger than 1 year\n\n if (level[0] === 'year') {\n var yearSpan = span / interval; // From \"Nice Numbers for Graph Labels\" of Graphic Gems\n // var niceYearSpan = numberUtil.nice(yearSpan, false);\n\n var yearStep = numberUtil.nice(yearSpan / approxTickNum, true);\n interval *= yearStep;\n }\n\n var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000;\n var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)];\n scaleHelper.fixExtent(niceExtent, extent);\n this._stepLvl = level; // Interval will be used in getTicks\n\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n parse: function (val) {\n // val might be float.\n return +numberUtil.parseDate(val);\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n TimeScale.prototype[methodName] = function (val) {\n return intervalScaleProto[methodName].call(this, this.parse(val));\n };\n});\n/**\n * This implementation was originally copied from \"d3.js\"\n * <https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/time/scale.js>\n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nvar scaleLevels = [// Format interval\n['hh:mm:ss', ONE_SECOND], // 1s\n['hh:mm:ss', ONE_SECOND * 5], // 5s\n['hh:mm:ss', ONE_SECOND * 10], // 10s\n['hh:mm:ss', ONE_SECOND * 15], // 15s\n['hh:mm:ss', ONE_SECOND * 30], // 30s\n['hh:mm\\nMM-dd', ONE_MINUTE], // 1m\n['hh:mm\\nMM-dd', ONE_MINUTE * 5], // 5m\n['hh:mm\\nMM-dd', ONE_MINUTE * 10], // 10m\n['hh:mm\\nMM-dd', ONE_MINUTE * 15], // 15m\n['hh:mm\\nMM-dd', ONE_MINUTE * 30], // 30m\n['hh:mm\\nMM-dd', ONE_HOUR], // 1h\n['hh:mm\\nMM-dd', ONE_HOUR * 2], // 2h\n['hh:mm\\nMM-dd', ONE_HOUR * 6], // 6h\n['hh:mm\\nMM-dd', ONE_HOUR * 12], // 12h\n['MM-dd\\nyyyy', ONE_DAY], // 1d\n['MM-dd\\nyyyy', ONE_DAY * 2], // 2d\n['MM-dd\\nyyyy', ONE_DAY * 3], // 3d\n['MM-dd\\nyyyy', ONE_DAY * 4], // 4d\n['MM-dd\\nyyyy', ONE_DAY * 5], // 5d\n['MM-dd\\nyyyy', ONE_DAY * 6], // 6d\n['week', ONE_DAY * 7], // 7d\n['MM-dd\\nyyyy', ONE_DAY * 10], // 10d\n['week', ONE_DAY * 14], // 2w\n['week', ONE_DAY * 21], // 3w\n['month', ONE_DAY * 31], // 1M\n['week', ONE_DAY * 42], // 6w\n['month', ONE_DAY * 62], // 2M\n['week', ONE_DAY * 70], // 10w\n['quarter', ONE_DAY * 95], // 3M\n['month', ONE_DAY * 31 * 4], // 4M\n['month', ONE_DAY * 31 * 5], // 5M\n['half-year', ONE_DAY * 380 / 2], // 6M\n['month', ONE_DAY * 31 * 8], // 8M\n['month', ONE_DAY * 31 * 10], // 10M\n['year', ONE_DAY * 380] // 1Y\n];\n/**\n * @param {module:echarts/model/Model}\n * @return {module:echarts/scale/Time}\n */\n\nTimeScale.create = function (model) {\n return new TimeScale({\n useUTC: model.ecModel.get('useUTC')\n });\n};\n\nvar _default = TimeScale;\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 numberUtil = require(\"../util/number\");\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 * For testable.\n */\nvar roundNumber = numberUtil.round;\n/**\n * @param {Array.<number>} extent Both extent[0] and extent[1] should be valid number.\n * Should be extent[0] < extent[1].\n * @param {number} splitNumber splitNumber should be >= 1.\n * @param {number} [minInterval]\n * @param {number} [maxInterval]\n * @return {Object} {interval, intervalPrecision, niceTickExtent}\n */\n\nfunction intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n var result = {};\n var span = extent[1] - extent[0];\n var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n if (minInterval != null && interval < minInterval) {\n interval = result.interval = minInterval;\n }\n\n if (maxInterval != null && interval > maxInterval) {\n interval = result.interval = maxInterval;\n } // Tow more digital for tick.\n\n\n var precision = result.intervalPrecision = getIntervalPrecision(interval); // Niced extent inside original extent\n\n var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n fixExtent(niceTickExtent, extent);\n return result;\n}\n/**\n * @param {number} interval\n * @return {number} interval precision\n */\n\n\nfunction getIntervalPrecision(interval) {\n // Tow more digital for tick.\n return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n} // In some cases (e.g., splitNumber is 1), niceTickExtent may be out of extent.\n\n\nfunction fixExtent(niceTickExtent, extent) {\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n clamp(niceTickExtent, 0, extent);\n clamp(niceTickExtent, 1, extent);\n\n if (niceTickExtent[0] > niceTickExtent[1]) {\n niceTickExtent[0] = niceTickExtent[1];\n }\n}\n\nexports.intervalScaleNiceTicks = intervalScaleNiceTicks;\nexports.getIntervalPrecision = getIntervalPrecision;\nexports.fixExtent = fixExtent;"],"names":["_util","each","isArray","isObject","compatStyle","_model","normalizeToArray","get","opt","path","split","obj","i","length","set","val","overwrite","key","compatLayoutProperties","option","LAYOUT_PROPERTIES","prop","COMPATITABLE_COMPONENTS","_default","isTheme","series","seriesOpt","seriesType","type","clipOverflow","clip","clockWise","clockwise","pointerColor","dataRange","visualMap","componentName","options","module","exports","zrUtil","modelUtil","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","itemStyle","len","styleName","normalItemStyleOpt","normal","emphasisItemStyleOpt","emphasis","merge","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","defaults","removeEC3NormalStatus","compatTextStyle","propName","labelOptSingle","textStyle","TEXT_STYLE_OPTIONS","hasOwnProperty","compatEC3CommonStyles","processSeries","markPoint","markLine","markArea","data","nodes","edgeData","links","edges","isTypedArray","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","o","toObj","axes","push","axisName","axisOpt","axisPointer","parallel","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radar","radarOpt","geo","geoOpt","regions","regionObj","timeline","timelineOpt","item","toolbox","toolboxOpt","feature","featureOpt","tooltip","reset","seriesModel","ecModel","legendModels","findComponents","mainType","getData","filterSelf","idx","name","getName","isSelected","samplers","average","frame","sum","count","isNaN","NaN","max","Infinity","isFinite","min","nearest","indexSampler","value","Math","round","modifyOutputEnd","api","sampling","coordSys","coordinateSystem","sampler","baseAxis","getBaseAxis","valueAxis","getOtherAxis","extent","getExtent","size","rate","setData","downSample","mapDimension","dim","createHashMap","stackInfoMap","eachSeries","stack","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","newData","map","v0","v1","dataIndex","byValue","stackedDataRawIndex","getRawIndex","stackedOver","j","rawIndexOf","getByRawIndex","hostModel","numberUtil","formatUtil","Scale","helper","roundNumber","IntervalScale","extend","_interval","_intervalPrecision","setExtent","start","end","thisExtent","this","_extent","parseFloat","unionExtent","other","prototype","call","getInterval","setInterval","interval","_niceExtent","slice","getIntervalPrecision","getTicks","expandToNicedExtent","niceTickExtent","intervalPrecision","ticks","safeLimit","tick","lastNiceTick","getMinorTicks","splitNumber","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","getLabel","precision","getPrecisionSafe","addCommas","niceTicks","minInterval","maxInterval","span","reverse","result","intervalScaleNiceTicks","niceExtent","expandSize","fixMax","fixMin","floor","ceil","create","scaleProto","intervalScaleProto","roundingErrorFix","mathFloor","mathCeil","mathPow","pow","mathLog","log","LogScale","base","$constructor","apply","arguments","_originalScale","originalScale","originalExtent","powVal","__fixMin","fixRoundingError","__fixMax","scale","unionExtentFromData","getApproximateExtent","approxTickNum","quantity","err","abs","originalVal","methodName","OrdinalMeta","OrdinalScale","init","ordinalMeta","_ordinalMeta","parse","getOrdinal","contain","rank","normalize","n","isBlank","getOrdinalMeta","noop","clazzUtil","setting","_setting","getSetting","_isBlank","setBlank","enableClassExtend","enableClassManagement","registerWhenExtend","scaleHelper","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","bisect","a","x","lo","hi","mid","TimeScale","stepLvl","_stepLvl","date","Date","formatTime","d","getFullYear","getMonth","getDate","approxInterval","scaleLevelsLen","scaleLevels","level","yearSpan","yearStep","nice","timezoneOffset","getTimezoneOffset","fixExtent","parseDate","model","useUTC","clamp"],"sourceRoot":""}