@next-bricks/data-view 0.15.4 → 0.15.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +5 -5
- package/dist/chunks/1874.00bcad23.js +2 -0
- package/dist/chunks/1874.00bcad23.js.map +1 -0
- package/dist/chunks/3914.b5986e17.js +2 -0
- package/dist/chunks/3914.b5986e17.js.map +1 -0
- package/dist/chunks/5151.1c92f05d.js +2 -0
- package/dist/chunks/5151.1c92f05d.js.map +1 -0
- package/dist/chunks/5202.ff1675ae.js +2 -0
- package/dist/chunks/5202.ff1675ae.js.map +1 -0
- package/dist/chunks/5381.8b6c0779.js +2 -0
- package/dist/chunks/5381.8b6c0779.js.map +1 -0
- package/dist/chunks/{6252.a408a0a3.js → 6252.d2312cb8.js} +2 -2
- package/dist/chunks/{6252.a408a0a3.js.map → 6252.d2312cb8.js.map} +1 -1
- package/dist/chunks/{6301.97e18ad8.js → 6301.60377e21.js} +2 -2
- package/dist/chunks/{6301.97e18ad8.js.map → 6301.60377e21.js.map} +1 -1
- package/dist/chunks/6653.1db188e5.js +2 -0
- package/dist/chunks/6653.1db188e5.js.map +1 -0
- package/dist/chunks/6660.a41a9b36.js +2 -0
- package/dist/chunks/6660.a41a9b36.js.map +1 -0
- package/dist/chunks/7782.ffdd10bd.js +2 -0
- package/dist/chunks/7782.ffdd10bd.js.map +1 -0
- package/dist/chunks/8498.8821e938.js +2 -0
- package/dist/chunks/8498.8821e938.js.map +1 -0
- package/dist/chunks/{complex-search.e46ab236.js → complex-search.1de3f6f5.js} +2 -2
- package/dist/chunks/{complex-search.e46ab236.js.map → complex-search.1de3f6f5.js.map} +1 -1
- package/dist/chunks/main.da0429e1.js +2 -0
- package/dist/chunks/main.da0429e1.js.map +1 -0
- package/dist/chunks/{modern-style-treemap.6dd5618b.js → modern-style-treemap.2efd3239.js} +3 -3
- package/dist/chunks/{modern-style-treemap.6dd5618b.js.map → modern-style-treemap.2efd3239.js.map} +1 -1
- package/dist/index.7971429f.js +2 -0
- package/dist/index.7971429f.js.map +1 -0
- package/dist/manifest.json +69 -69
- package/dist/types.json +199 -199
- package/package.json +3 -3
- package/dist/chunks/3494.2ac2c572.js +0 -2
- package/dist/chunks/3494.2ac2c572.js.map +0 -1
- package/dist/chunks/3914.738b0862.js +0 -2
- package/dist/chunks/3914.738b0862.js.map +0 -1
- package/dist/chunks/4454.2eeedfb4.js +0 -2
- package/dist/chunks/4454.2eeedfb4.js.map +0 -1
- package/dist/chunks/5151.ce644081.js +0 -2
- package/dist/chunks/5151.ce644081.js.map +0 -1
- package/dist/chunks/5202.3225e09f.js +0 -2
- package/dist/chunks/5202.3225e09f.js.map +0 -1
- package/dist/chunks/7782.cc445401.js +0 -2
- package/dist/chunks/7782.cc445401.js.map +0 -1
- package/dist/chunks/7822.aee914cb.js +0 -2
- package/dist/chunks/7822.aee914cb.js.map +0 -1
- package/dist/chunks/873.1d7a2495.js +0 -2
- package/dist/chunks/873.1d7a2495.js.map +0 -1
- package/dist/chunks/main.5699c5c3.js +0 -2
- package/dist/chunks/main.5699c5c3.js.map +0 -1
- package/dist/index.d0d9fc84.js +0 -2
- package/dist/index.d0d9fc84.js.map +0 -1
- /package/dist/chunks/{modern-style-treemap.6dd5618b.js.LICENSE.txt → modern-style-treemap.2efd3239.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/5202.ff1675ae.js","mappings":"0IAAA,SAASA,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,GACpE,IACE,IAAIC,EAAOP,EAAIK,GAAKC,GAChBE,EAAQD,EAAKC,KACnB,CAAE,MAAOC,GAEP,YADAP,EAAOO,EAET,CACIF,EAAKG,KACPT,EAAQO,GAERG,QAAQV,QAAQO,GAAOI,KAAKT,EAAOC,EAEvC,CACe,SAASS,EAAkBC,GACxC,OAAO,WACL,IAAIC,EAAOC,KACTC,EAAOC,UACT,OAAO,IAAIP,SAAQ,SAAUV,EAASC,GACpC,IAAIF,EAAMc,EAAGK,MAAMJ,EAAME,GACzB,SAASd,EAAMK,GACbT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,EAClE,CACA,SAASJ,EAAOgB,GACdrB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASgB,EACnE,CACAjB,OAAMkB,EACR,GACF,CACF,C,iCC7Be,SAASC,EAA2BC,EAAKC,GACtD,GAAIA,EAAkBC,IAAIF,GACxB,MAAM,IAAIG,UAAU,iEAExB,C,gCCJe,SAASC,EAA6BC,EAAUC,EAAYC,GACzE,IAAKD,EAAWJ,IAAIG,GAClB,MAAM,IAAIF,UAAU,gBAAkBI,EAAS,kCAEjD,OAAOD,EAAWE,IAAIH,EACxB,C,8DCHe,SAASI,EAAsBJ,EAAUC,GAEtD,OCJa,SAAkCD,EAAUK,GACzD,OAAIA,EAAWF,IACNE,EAAWF,IAAIG,KAAKN,GAEtBK,EAAWzB,KACpB,CDDS,CAAwBoB,GADd,EAAAO,EAAA,GAA4BP,EAAUC,EAAY,OAErE,C,gDEJe,SAASO,EAA2Bb,EAAKM,EAAYrB,IAClE,OAA0Be,EAAKM,GAC/BA,EAAWQ,IAAId,EAAKf,EACtB,C,8CCFe,SAAS8B,EAAsBV,EAAUC,EAAYrB,GAGlE,OCLa,SAAkCoB,EAAUK,EAAYzB,GACrE,GAAIyB,EAAWI,IACbJ,EAAWI,IAAIH,KAAKN,EAAUpB,OACzB,CACL,IAAKyB,EAAWM,SACd,MAAM,IAAIb,UAAU,4CAEtBO,EAAWzB,MAAQA,CACrB,CACF,CDLE,CAAwBoB,GADP,EAAAO,EAAA,GAA4BP,EAAUC,EAAY,OACrBrB,GACvCA,CACT,C,iBENe,SAASgC,EAAuBZ,EAAUa,EAAY3B,GACnE,IAAK2B,EAAWhB,IAAIG,GAClB,MAAM,IAAIF,UAAU,kDAEtB,OAAOZ,CACT,C,gECJe,SAAS4B,EAA4BnB,EAAKkB,IACvD,OAA0BlB,EAAKkB,GAC/BA,EAAWE,IAAIpB,EACjB,C,gDCHe,SAASqB,EAAgBrB,EAAKlB,EAAKG,GAYhD,OAXAH,GAAM,OAAcA,MACTkB,EACTsB,OAAOC,eAAevB,EAAKlB,EAAK,CAC9BG,MAAOA,EACPuC,YAAY,EACZC,cAAc,EACdT,UAAU,IAGZhB,EAAIlB,GAAOG,EAENe,CACT,C,gDCbA,SAAS0B,EAAQC,EAAQC,GACvB,IAAIC,EAAOP,OAAOO,KAAKF,GACvB,GAAIL,OAAOQ,sBAAuB,CAChC,IAAIC,EAAUT,OAAOQ,sBAAsBH,GAC3CC,IAAmBG,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOX,OAAOY,yBAAyBP,EAAQM,GAAKT,UACtD,KAAKK,EAAKM,KAAKvC,MAAMiC,EAAME,EAC7B,CACA,OAAOF,CACT,CACe,SAASO,EAAeC,GACrC,IAAK,IAAIC,EAAI,EAAGA,EAAI3C,UAAU4C,OAAQD,IAAK,CACzC,IAAIE,EAAS,MAAQ7C,UAAU2C,GAAK3C,UAAU2C,GAAK,CAAC,EACpDA,EAAI,EAAIZ,EAAQJ,OAAOkB,IAAS,GAAIC,SAAQ,SAAU3D,IACpD,OAAeuD,EAAQvD,EAAK0D,EAAO1D,GACrC,IAAKwC,OAAOoB,0BAA4BpB,OAAOqB,iBAAiBN,EAAQf,OAAOoB,0BAA0BF,IAAWd,EAAQJ,OAAOkB,IAASC,SAAQ,SAAU3D,GAC5JwC,OAAOC,eAAec,EAAQvD,EAAKwC,OAAOY,yBAAyBM,EAAQ1D,GAC7E,GACF,CACA,OAAOuD,CACT,C,iBCpBe,SAASO,EAAyBJ,EAAQK,GACvD,GAAc,MAAVL,EAAgB,MAAO,CAAC,EAC5B,IACI1D,EAAKwD,EADLD,ECHS,SAAuCG,EAAQK,GAC5D,GAAc,MAAVL,EAAgB,MAAO,CAAC,EAC5B,IAEI1D,EAAKwD,EAFLD,EAAS,CAAC,EACVS,EAAaxB,OAAOO,KAAKW,GAE7B,IAAKF,EAAI,EAAGA,EAAIQ,EAAWP,OAAQD,IACjCxD,EAAMgE,EAAWR,GACbO,EAASE,QAAQjE,IAAQ,IAC7BuD,EAAOvD,GAAO0D,EAAO1D,IAEvB,OAAOuD,CACT,CDRe,CAA6BG,EAAQK,GAElD,GAAIvB,OAAOQ,sBAAuB,CAChC,IAAIkB,EAAmB1B,OAAOQ,sBAAsBU,GACpD,IAAKF,EAAI,EAAGA,EAAIU,EAAiBT,OAAQD,IACvCxD,EAAMkE,EAAiBV,GACnBO,EAASE,QAAQjE,IAAQ,GACxBwC,OAAO2B,UAAUC,qBAAqBvC,KAAK6B,EAAQ1D,KACxDuD,EAAOvD,GAAO0D,EAAO1D,GAEzB,CACA,OAAOuD,CACT,C,gEEbe,SAASc,EAAepE,GACrC,IAAID,ECFS,SAAsBsE,EAAOC,GAC1C,GAAuB,YAAnB,OAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIE,EAAOF,EAAMG,OAAOC,aACxB,QAAa1D,IAATwD,EAAoB,CACtB,IAAIG,EAAMH,EAAK3C,KAAKyC,EAAOC,UAC3B,GAAqB,YAAjB,OAAQI,GAAmB,OAAOA,EACtC,MAAM,IAAItD,UAAU,+CACtB,CACA,OAA4BuD,OAAiBN,EAC/C,CDPY,CAAYrE,GACtB,MAAwB,YAAjB,OAAQD,GAAoBA,EAAM4E,OAAO5E,EAClD,C,iBELe,SAAS6E,EAAQ3D,GAG9B,OAAO2D,EAAU,mBAAqBJ,QAAU,iBAAmBA,OAAOK,SAAW,SAAU5D,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBuD,QAAUvD,EAAI6D,cAAgBN,QAAUvD,IAAQuD,OAAON,UAAY,gBAAkBjD,CAC1H,EAAG2D,EAAQ3D,EACb,C,2PCRO,IAAI8D,EAAQ,CAACV,EAAOW,KAGzB,IAAIC,EAAM,IAAIC,QAAQb,EAAO9B,OAAO4C,OAAO,CACzCC,YAAa,eACZJ,IACH,OAAOvE,KAAKsE,MAAME,EAAI,E,wFCLjB,MAAMI,UAAuBC,MAClCR,YAAYS,GAEVC,MAAMD,GACN7E,KAAK+E,KAAO,iBAIRH,MAAMI,mBACRJ,MAAMI,kBAAkBhF,KAAM2E,EAElC,EAEK,MAAMM,UAA0BL,MACrCR,YAAYc,EAAUC,GAEpBL,MAAMI,EAASE,aACf,OAAgBpF,KAAM,gBAAY,IAClC,OAAgBA,KAAM,oBAAgB,GACtCA,KAAK+E,KAAO,oBAIRH,MAAMI,mBACRJ,MAAMI,kBAAkBhF,KAAMiF,GAEhCjF,KAAKkF,SAAWA,EAChBlF,KAAKmF,aAAeA,CACtB,EAEK,MAAME,UAAuBT,MAClCR,YAAYc,GAEVJ,MAAMI,EAASE,aACf,OAAgBpF,KAAM,gBAAY,GAClCA,KAAK+E,KAAO,iBAIRH,MAAMI,mBACRJ,MAAMI,kBAAkBhF,KAAMqF,GAEhCrF,KAAKkF,SAAWA,CAClB,EAEK,MAAMI,UAAuBV,MAClCR,YAAYS,GACVC,MAAMD,GACN7E,KAAK+E,KAAO,gBACd,ECjDa,MAAMQ,EACnBnB,eACE,OAAgBpE,KAAM,WAAY,GACpC,CACAwF,IAAIC,EAAaC,GAKf,OAJA1F,KAAK2F,SAASjD,KAAK,CACjBkD,UAAWH,EACXI,SAAUH,IAEL1F,KAAK2F,SAAS7C,OAAS,CAChC,CACAgD,MAAMC,GAEA/F,KAAK2F,SAASI,KAChB/F,KAAK2F,SAASI,GAAM,KAExB,CACA/C,QAAQlD,GACNE,KAAK2F,SAAS3C,SAAQgD,IAEJ,OAAZA,GACFlG,EAAGkG,EACL,GAEJ,EChBF,IAAIC,EAAY,CAAC,SAAU,eAAgB,oBAAqB,UAAW,uBAAwB,YACjGC,EAAa,CAAC,SAAU,UAAW,eAAgB,oBAAqB,UAAW,uBAAwB,YAC3GC,EAAa,CAAC,OAAQ,UAIxB,SAASC,EAAM5G,GACb,OAAOA,OACT,CACA,IAAI6G,EAAOC,SAASC,cAAc,QAC9BC,EAAeH,EAAOA,EAAKI,KAAOC,SAASC,OAAS,IAE7CC,EAAmBnH,GAASA,aAAiBoH,cAA+B,KAAfpH,EAAMqH,KAC1EC,EAAuB,WACzB,IAAIC,GAAO,QAAkB,UAAWC,EAAK3C,EAAM4C,GAEjD,OAAO,IAAIvH,QAAsB,WAC/B,IAAIwH,GAAQ,QAAkB,UAAWlI,EAASC,GAChD,IAAIgG,EACJgC,EAAOD,IAAMA,EACb,IAAI,aACFG,GACEF,EAAOG,SAAW,CAAC,EAClBD,IAEHA,EAAe,QAEjB,IACElC,QAAiBb,EAAM4C,EAAK3C,EAC9B,CAAE,MAAOgD,GAEP,YADApI,EAAO0H,EAAiBU,GAAK,IAAIhC,EAAegC,EAAEC,YAAc,IAAI5C,EAAe2C,EAAEC,YAEvF,CACA,GAAKrC,EAASsC,GAAd,CAUA,IAAIC,EACJ,IACEA,QAAavC,EAASkC,IACxB,CAAE,MAAOE,GAEP,YADApI,EAAO0H,EAAiBU,GAAK,IAAIhC,EAAegC,EAAEC,YAAc,IAAIlC,EAAeH,GAErF,CAOAjG,EANU,CACRyI,OAAQxC,EAASwC,OACjBtC,WAAYF,EAASE,WACrBuC,QAASzC,EAASyC,QAClBF,QAZF,KATA,CACE,IAAItC,EACJ,IACEA,QAAqBD,EAAS0C,MAChC,CAAE,MAAON,GAET,CACApI,EAAO,IAAI+F,EAAkBC,EAAUC,GAEzC,CAeF,IACA,OAAO,SAAU0C,EAAKC,GACpB,OAAOX,EAAMhH,MAAMH,KAAME,UAC3B,CACF,CA7CiC,GA8CnC,IACA,OAAO,SAAiB6H,EAAIC,EAAKC,GAC/B,OAAOjB,EAAK7G,MAAMH,KAAME,UAC1B,CACF,CArD2B,GAsDhBgI,EAAmB,CAACjB,EAAKkB,KAClC,GAAIA,EAAQ,CACV,IAAIC,EAAY,IAAIC,IAAIpB,EAAKT,GACzB2B,aAAkBG,gBACpBH,EAAOnF,SAAQ,SAAUxD,EAAOH,GAC9B+I,EAAUG,aAAaC,OAAOnJ,EAAKG,EACrC,IAEAqC,OAAO4G,QAAQN,GAAQnF,SAAQ0F,IAC7B,IAAKrJ,EAAKG,GAASkJ,EACfC,MAAMC,QAAQpJ,GAChBA,EAAMwD,SAAQ6F,IACZT,EAAUG,aAAaC,OAAOnJ,EAAK+G,EAAMyC,GAAK,GAAKA,EAAE,IAGvDT,EAAUG,aAAaC,OAAOnJ,EAAK+G,EAAM5G,GAAS,GAAKA,EACzD,IAGJ,IAAI,KACFiH,GACE2B,EACJ,OAAI3B,EAAKqC,WAAWtC,GACXC,EAAKsC,OAAOvC,EAAa1D,QAE3B2D,CACT,CACA,OAAOQ,CAAG,EAER+B,EAAoB,CAACvB,EAAME,KAC7B,QAAatH,IAAToH,EAAoB,CAGtB,IAAIwB,EAAgB,IAAIC,QAAQvB,GAAW,CAAC,GACxCwB,EAAoB,eACpBC,EAAO3B,EAYX,OAVKwB,EAAcxI,IAAI0I,KACD,iBAAT1B,EACTwB,EAAc5H,IAAI8H,EAAmB,qCAC5B1B,aAAgB4B,WAGzBJ,EAAc5H,IAAI8H,EAAmB,oBACrCC,EAAOE,KAAKC,UAAU9B,KAGnB,CACL2B,OACAzB,QAASsB,EAEb,CACA,MAAO,CACLtB,UACD,EAqCC6B,EAAiBtC,IACnB,IAAI,IACFD,EAAG,OACHwC,EAAM,KACNhC,GACEP,EAGJ,MAAI,CAAC,SAAU,MAAO,QAAQwC,SAASxC,EAAOuC,QA3C5B,EAACA,EAAQxC,EAAKC,KAChC,IAAIyC,EAAQzC,EAAOG,SAAW,CAAC,GAC7B,OACEc,EAAM,aAENf,EAAY,kBACZwC,EAAiB,QACjBC,EAAO,qBACPC,EAAoB,SACpBC,GAEEJ,EACJK,GAAc,OAAyBL,EAAO1D,GAChD,OAAOc,EAAQmB,EAAiBjB,EAAKkB,IAAS,QAAc,OAAc,CAAC,EAAG6B,GAAc,CAAC,EAAG,CAC9FP,WACEvC,EAAO,EA6BF+C,CAAcR,EAAQxC,EAAKC,GA3BhB,EAACuC,EAAQxC,EAAKQ,EAAMP,KACxC,IAAIgD,EAAQhD,EAAOG,SAAW,CAAC,GAC7B,OACEc,EAAM,QACNR,EAAO,aAEPP,EAAY,kBACZwC,EAAiB,QACjBC,EAAO,qBACPC,EAAoB,SACpBC,GAEEG,EACJF,GAAc,OAAyBE,EAAOhE,GAChD,OAAOa,EAAQmB,EAAiBjB,EAAKkB,IAAS,QAAc,OAAc,CAAC,EAAG6B,GAAc,CAAC,EAAG,CAC9FP,UACCT,EAAkBvB,EAAME,IAAWT,EAAO,EAetCiD,CAAgBV,EAAQxC,EAAKQ,EAAMP,EAAO,EAE/CkD,EAAwB,IAAIC,QAC5BC,EAAsB,IAAIC,QAC9B,MAAMC,EACJpG,YAAYqG,GACV,IAAIC,EAAQ1K,MACZ,OAA4BA,KAAMsK,IAClC,OAAgBtK,KAAM,oBAAgB,IACtC,OAA2BA,KAAMoK,EAAU,CACzC7I,UAAU,EACV/B,MAAOgK,KAET,OAAgBxJ,KAAM,UAAwB,WAC5C,IAAI2K,GAAQ,QAAkB,UAAW1D,EAAK3C,EAAM+C,GAClD,IAAIuD,EAAQtG,GAAQ,CAAC,GACnB,KACE8E,EAAI,OACJK,GACEmB,EACJZ,GAAc,OAAyBY,EAAOzE,GAChD,OAAO,OAAuBuE,EAAOJ,EAAQO,GAAS3J,KAAKwJ,EAAO,CAChEzD,MACAQ,KAAM2B,EACNK,OAAQA,GAAU,MAClBpC,SAAS,QAAc,OAAc,CAAC,EAAGA,GAAW,CAAC,GAAI2C,IAE7D,IACA,OAAO,SAAUc,EAAKC,EAAKC,GACzB,OAAOL,EAAMxK,MAAMH,KAAME,UAC3B,CACF,CAlB8C,KAmB9C,OAAgBF,KAAM,iBAAiB,SAAUyJ,EAAQxC,GACvD,IAAII,EAAUnH,UAAU4C,OAAS,QAAsBzC,IAAjBH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO,OAAuBwK,EAAOJ,EAAQO,GAAS3J,KAAKwJ,EAAO,CAChEzD,MACAwC,SACApC,WAEJ,KACA,OAAgBrH,KAAM,mBAAmB,SAAUyJ,EAAQxC,EAAKQ,GAC9D,IAAIJ,EAAUnH,UAAU4C,OAAS,QAAsBzC,IAAjBH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO,OAAuBwK,EAAOJ,EAAQO,GAAS3J,KAAKwJ,EAAO,CAChEzD,MACAwC,SACAhC,OACAJ,WAEJ,IACArH,KAAKiL,aAAe,CAClBlE,QAAS,IAAIxB,EACbL,SAAU,IAAIK,GAEZkF,SAA0CA,EAAQS,UACpD,OAAsBlL,KAAMoK,EAAUK,EAAQS,QAElD,CACAhD,iBAAiBjB,EAAKkB,GACpB,OAAOD,EAAiBjB,EAAKkB,EAC/B,CACAa,kBAAkBvB,EAAME,GACtB,OAAOqB,EAAkBvB,EAAME,EACjC,CACA5G,IAAIkG,EAAKI,GACP,OAAO,OAAuBrH,KAAMsK,EAAQO,GAAS3J,KAAKlB,KAAM,CAC9DiH,MACAwC,OAAQ,MACRpC,WAEJ,CACA8D,OAAOlE,EAAKI,GACV,OAAO,OAAuBrH,KAAMsK,EAAQO,GAAS3J,KAAKlB,KAAM,CAC9DiH,MACAwC,OAAQ,SACRpC,WAEJ,CACA+D,KAAKnE,EAAKI,GACR,OAAO,OAAuBrH,KAAMsK,EAAQO,GAAS3J,KAAKlB,KAAM,CAC9DiH,MACAwC,OAAQ,OACRpC,WAEJ,CACAgE,KAAKpE,EAAKQ,EAAMJ,GACd,OAAO,OAAuBrH,KAAMsK,EAAQO,GAAS3J,KAAKlB,KAAM,CAC9DiH,MACAwC,OAAQ,OACRhC,OACAJ,WAEJ,CACAiE,IAAIrE,EAAKQ,EAAMJ,GACb,OAAO,OAAuBrH,KAAMsK,EAAQO,GAAS3J,KAAKlB,KAAM,CAC9DiH,MACAwC,OAAQ,MACRhC,OACAJ,WAEJ,CACAkE,MAAMtE,EAAKQ,EAAMJ,GACf,OAAO,OAAuBrH,KAAMsK,EAAQO,GAAS3J,KAAKlB,KAAM,CAC9DiH,MACAwC,OAAQ,QACRhC,OACAJ,WAEJ,EAEF,SAASwD,EAAQ3D,GACf,IAAIsE,EAAQ,GACRC,EAAU9L,QAAQV,QAAQiI,GAkB9B,IAjBAlH,KAAKiL,aAAalE,QAAQ/D,SAAQ0I,IAChCF,EAAM9I,KAAKgJ,EAAY9F,UAAW8F,EAAY7F,SAAS,IAEzD2F,EAAM9I,MAAKwE,IAAU,OAAsBlH,KAAMoK,GAAUlJ,KAAKlB,KAAMkH,SAAS7G,GAC/EL,KAAKiL,aAAa/F,SAASlC,SAAQ0I,IACjCF,EAAM9I,MAAKsB,IACT,IAAI2H,EACJ,OAA2D,QAAnDA,EAAwBD,EAAY9F,iBAAiD,IAA1B+F,OAAmC,EAASA,EAAsBzK,KAAKwK,EAAa1H,EAAKkD,EAAO,IAClKzH,IACD,IAAImM,EACJ,OAA0D,QAAlDA,EAAwBF,EAAY7F,gBAAgD,IAA1B+F,OAAmC,EAASA,EAAsB1K,KAAKwK,EAAajM,EAAOyH,EAAO,GACpK,IAEJsE,EAAM9I,MAAKwC,IACT,IAAI2G,EACJ,MAA0H,cAA3E,QAAtCA,EAAkB3E,EAAOG,eAAyC,IAApBwE,OAA6B,EAASA,EAAgBhC,SAA0B3E,EAAWA,EAASuC,IAAI,QAC9JpH,GACImL,EAAM1I,QACX2I,EAAUA,EAAQ7L,KAAK4L,EAAMM,QAASN,EAAMM,SAE9C,OAAOL,CACT,CACA,IAAIM,EAAO,IAAIvB,EACf,SAASwB,EAAmB9E,GAC1B6E,EAAO,IAAIvB,EAAKtD,EAClB,C","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@next-core/http/dist/esm/fetch.js","webpack:///../../node_modules/@next-core/http/dist/esm/errors.js","webpack:///../../node_modules/@next-core/http/dist/esm/InterceptorManager.js","webpack:///../../node_modules/@next-core/http/dist/esm/http.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n}","export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}","export default function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return fn;\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export var fetch = (input, init) => {\n // Support older browsers which default credentials is \"omit\".\n // Ref https://github.com/whatwg/fetch/pull/585\n var req = new Request(input, Object.assign({\n credentials: \"same-origin\"\n }, init));\n return self.fetch(req);\n};\n//# sourceMappingURL=fetch.js.map","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport class HttpFetchError extends Error {\n constructor(message) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n this.name = \"HttpFetchError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, HttpFetchError);\n }\n }\n}\nexport class HttpResponseError extends Error {\n constructor(response, responseJson) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(response.statusText);\n _defineProperty(this, \"response\", void 0);\n _defineProperty(this, \"responseJson\", void 0);\n this.name = \"HttpResponseError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, HttpResponseError);\n }\n this.response = response;\n this.responseJson = responseJson;\n }\n}\nexport class HttpParseError extends Error {\n constructor(response) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(response.statusText);\n _defineProperty(this, \"response\", void 0);\n this.name = \"HttpParseError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, HttpParseError);\n }\n this.response = response;\n }\n}\nexport class HttpAbortError extends Error {\n constructor(message) {\n super(message);\n this.name = \"HttpAbortError\";\n }\n}\n//# sourceMappingURL=errors.js.map","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport default class InterceptorManager {\n constructor() {\n _defineProperty(this, \"handlers\", []);\n }\n use(onFulfilled, onRejected) {\n this.handlers.push({\n fulfilled: onFulfilled,\n rejected: onRejected\n });\n return this.handlers.length - 1;\n }\n eject(id) {\n // istanbul ignore else\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n forEach(fn) {\n this.handlers.forEach(handler => {\n // istanbul ignore else\n if (handler !== null) {\n fn(handler);\n }\n });\n }\n}\n//# sourceMappingURL=InterceptorManager.js.map","import _classPrivateMethodInitSpec from \"@babel/runtime/helpers/classPrivateMethodInitSpec\";\nimport _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet\";\nimport _classPrivateMethodGet from \"@babel/runtime/helpers/classPrivateMethodGet\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nvar _excluded = [\"params\", \"responseType\", \"interceptorParams\", \"observe\", \"noAbortOnRouteChange\", \"useCache\"],\n _excluded2 = [\"params\", \"headers\", \"responseType\", \"interceptorParams\", \"observe\", \"noAbortOnRouteChange\", \"useCache\"],\n _excluded3 = [\"body\", \"method\"];\nimport { fetch } from \"./fetch.js\";\nimport { HttpAbortError, HttpFetchError, HttpParseError, HttpResponseError } from \"./errors.js\";\nimport InterceptorManager from \"./InterceptorManager.js\";\nfunction isNil(value) {\n return value === undefined || value === null;\n}\nvar base = document.querySelector(\"base\");\nvar fullBaseHref = base ? base.href : location.origin + \"/\";\n// https://developer.mozilla.org/en-US/docs/Web/API/DOMException\nexport var isHttpAbortError = error => error instanceof DOMException && error.code === 20;\nvar request = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (url, init, config) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (resolve, reject) {\n var response;\n config.url = url;\n var {\n responseType\n } = config.options || {};\n if (!responseType) {\n // Defaults to `json`\n responseType = \"json\";\n }\n try {\n response = yield fetch(url, init);\n } catch (e) {\n reject(isHttpAbortError(e) ? new HttpAbortError(e.toString()) : new HttpFetchError(e.toString()));\n return;\n }\n if (!response.ok) {\n var responseJson;\n try {\n responseJson = yield response.json();\n } catch (e) {\n // Do nothing.\n }\n reject(new HttpResponseError(response, responseJson));\n return;\n }\n var data;\n try {\n data = yield response[responseType]();\n } catch (e) {\n reject(isHttpAbortError(e) ? new HttpAbortError(e.toString()) : new HttpParseError(response));\n return;\n }\n var res = {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n data\n };\n resolve(res);\n });\n return function (_x4, _x5) {\n return _ref2.apply(this, arguments);\n };\n }());\n });\n return function request(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\nexport var getUrlWithParams = (url, params) => {\n if (params) {\n var parsedUrl = new URL(url, fullBaseHref);\n if (params instanceof URLSearchParams) {\n params.forEach(function (value, key) {\n parsedUrl.searchParams.append(key, value);\n });\n } else {\n Object.entries(params).forEach(_ref3 => {\n var [key, value] = _ref3;\n if (Array.isArray(value)) {\n value.forEach(v => {\n parsedUrl.searchParams.append(key, isNil(v) ? \"\" : v);\n });\n } else {\n parsedUrl.searchParams.append(key, isNil(value) ? \"\" : value);\n }\n });\n }\n var {\n href\n } = parsedUrl;\n if (href.startsWith(fullBaseHref)) {\n return href.substr(fullBaseHref.length);\n }\n return href;\n }\n return url;\n};\nvar getBodyAndHeaders = (data, headers) => {\n if (data !== undefined) {\n // `new Headers(undefined)` will throw a TypeError in older browsers (chrome 58).\n // https://bugs.chromium.org/p/chromium/issues/detail?id=335871\n var parsedHeaders = new Headers(headers || {});\n var contentTypeHeader = \"Content-Type\";\n var body = data;\n // If `Content-Type` already provided, ignore detecting content type.\n if (!parsedHeaders.has(contentTypeHeader)) {\n if (typeof data === \"string\") {\n parsedHeaders.set(contentTypeHeader, \"application/x-www-form-urlencoded\");\n } else if (data instanceof FormData) {\n // Do nothing\n } else {\n parsedHeaders.set(contentTypeHeader, \"application/json\");\n body = JSON.stringify(data);\n }\n }\n return {\n body,\n headers: parsedHeaders\n };\n }\n return {\n headers\n };\n};\nvar simpleRequest = (method, url, config) => {\n var _ref4 = config.options || {},\n {\n params,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n responseType,\n interceptorParams,\n observe,\n noAbortOnRouteChange,\n useCache\n /* eslint-enable @typescript-eslint/no-unused-vars */\n } = _ref4,\n requestInit = _objectWithoutProperties(_ref4, _excluded);\n return request(getUrlWithParams(url, params), _objectSpread(_objectSpread({}, requestInit), {}, {\n method\n }), config);\n};\nvar requestWithBody = (method, url, data, config) => {\n var _ref5 = config.options || {},\n {\n params,\n headers,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n responseType,\n interceptorParams,\n observe,\n noAbortOnRouteChange,\n useCache\n /* eslint-enable @typescript-eslint/no-unused-vars */\n } = _ref5,\n requestInit = _objectWithoutProperties(_ref5, _excluded2);\n return request(getUrlWithParams(url, params), _objectSpread(_objectSpread({}, requestInit), {}, {\n method\n }, getBodyAndHeaders(data, headers)), config);\n};\nvar defaultAdapter = config => {\n var {\n url,\n method,\n data\n } = config;\n\n // \"DELETE\", \"GET\", \"HEAD\" methods.\n if ([\"DELETE\", \"GET\", \"HEAD\"].includes(config.method)) {\n return simpleRequest(method, url, config);\n }\n\n // \"POST\", \"PUT\" , \"PATCH\" methods.\n return requestWithBody(method, url, data, config);\n};\nvar _adapter = /*#__PURE__*/new WeakMap();\nvar _fetch = /*#__PURE__*/new WeakSet();\nclass Http {\n constructor(_config) {\n var _this = this;\n _classPrivateMethodInitSpec(this, _fetch);\n _defineProperty(this, \"interceptors\", void 0);\n _classPrivateFieldInitSpec(this, _adapter, {\n writable: true,\n value: defaultAdapter\n });\n _defineProperty(this, \"request\", /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(function* (url, init, options) {\n var _ref7 = init || {},\n {\n body,\n method\n } = _ref7,\n requestInit = _objectWithoutProperties(_ref7, _excluded3);\n return _classPrivateMethodGet(_this, _fetch, _fetch2).call(_this, {\n url,\n data: body,\n method: method || \"GET\",\n options: _objectSpread(_objectSpread({}, options || {}), requestInit)\n });\n });\n return function (_x6, _x7, _x8) {\n return _ref6.apply(this, arguments);\n };\n }());\n _defineProperty(this, \"simpleRequest\", function (method, url) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _classPrivateMethodGet(_this, _fetch, _fetch2).call(_this, {\n url,\n method,\n options\n });\n });\n _defineProperty(this, \"requestWithBody\", function (method, url, data) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n return _classPrivateMethodGet(_this, _fetch, _fetch2).call(_this, {\n url,\n method,\n data,\n options\n });\n });\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n if (_config !== null && _config !== void 0 && _config.adapter) {\n _classPrivateFieldSet(this, _adapter, _config.adapter);\n }\n }\n getUrlWithParams(url, params) {\n return getUrlWithParams(url, params);\n }\n getBodyAndHeaders(data, headers) {\n return getBodyAndHeaders(data, headers);\n }\n get(url, options) {\n return _classPrivateMethodGet(this, _fetch, _fetch2).call(this, {\n url,\n method: \"GET\",\n options\n });\n }\n delete(url, options) {\n return _classPrivateMethodGet(this, _fetch, _fetch2).call(this, {\n url,\n method: \"DELETE\",\n options\n });\n }\n head(url, options) {\n return _classPrivateMethodGet(this, _fetch, _fetch2).call(this, {\n url,\n method: \"HEAD\",\n options\n });\n }\n post(url, data, options) {\n return _classPrivateMethodGet(this, _fetch, _fetch2).call(this, {\n url,\n method: \"POST\",\n data,\n options\n });\n }\n put(url, data, options) {\n return _classPrivateMethodGet(this, _fetch, _fetch2).call(this, {\n url,\n method: \"PUT\",\n data,\n options\n });\n }\n patch(url, data, options) {\n return _classPrivateMethodGet(this, _fetch, _fetch2).call(this, {\n url,\n method: \"PATCH\",\n data,\n options\n });\n }\n}\nfunction _fetch2(config) {\n var chain = [];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(interceptor => {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n chain.push(config => _classPrivateFieldGet(this, _adapter).call(this, config), undefined);\n this.interceptors.response.forEach(interceptor => {\n chain.push(res => {\n var _interceptor$fulfille;\n return (_interceptor$fulfille = interceptor.fulfilled) === null || _interceptor$fulfille === void 0 ? void 0 : _interceptor$fulfille.call(interceptor, res, config);\n }, error => {\n var _interceptor$rejected;\n return (_interceptor$rejected = interceptor.rejected) === null || _interceptor$rejected === void 0 ? void 0 : _interceptor$rejected.call(interceptor, error, config);\n });\n });\n chain.push(response => {\n var _config$options;\n return ((_config$options = config.options) === null || _config$options === void 0 ? void 0 : _config$options.observe) === \"response\" ? response : response.data;\n }, undefined);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n return promise;\n}\nvar http = new Http();\nfunction createHttpInstance(config) {\n http = new Http(config);\n}\nexport { http, createHttpInstance, defaultAdapter };\n//# sourceMappingURL=http.js.map"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_checkPrivateRedeclaration","obj","privateCollection","has","TypeError","_classExtractFieldDescriptor","receiver","privateMap","action","get","_classPrivateFieldGet","descriptor","call","classExtractFieldDescriptor","_classPrivateFieldInitSpec","set","_classPrivateFieldSet","writable","_classPrivateMethodGet","privateSet","_classPrivateMethodInitSpec","add","_defineProperty","Object","defineProperty","enumerable","configurable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread2","target","i","length","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","indexOf","sourceSymbolKeys","prototype","propertyIsEnumerable","_toPropertyKey","input","hint","prim","Symbol","toPrimitive","res","String","_typeof","iterator","constructor","fetch","init","req","Request","assign","credentials","HttpFetchError","Error","message","super","name","captureStackTrace","HttpResponseError","response","responseJson","statusText","HttpParseError","HttpAbortError","InterceptorManager","use","onFulfilled","onRejected","handlers","fulfilled","rejected","eject","id","handler","_excluded","_excluded2","_excluded3","isNil","base","document","querySelector","fullBaseHref","href","location","origin","isHttpAbortError","DOMException","code","request","_ref","url","config","_ref2","responseType","options","e","toString","ok","data","status","headers","json","_x4","_x5","_x","_x2","_x3","getUrlWithParams","params","parsedUrl","URL","URLSearchParams","searchParams","append","entries","_ref3","Array","isArray","v","startsWith","substr","getBodyAndHeaders","parsedHeaders","Headers","contentTypeHeader","body","FormData","JSON","stringify","defaultAdapter","method","includes","_ref4","interceptorParams","observe","noAbortOnRouteChange","useCache","requestInit","simpleRequest","_ref5","requestWithBody","_adapter","WeakMap","_fetch","WeakSet","Http","_config","_this","_ref6","_ref7","_fetch2","_x6","_x7","_x8","interceptors","adapter","delete","head","post","put","patch","chain","promise","interceptor","_interceptor$fulfille","_interceptor$rejected","_config$options","shift","http","createHttpInstance"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_data_view=self.webpackChunk_next_bricks_data_view||[]).push([[5381,6660,4795],{4795:(e,r,t)=>{function n(e,r,t,n,a,u,i){try{var c=e[u](i),s=c.value}catch(e){return void t(e)}c.done?r(s):Promise.resolve(s).then(n,a)}function a(e){return function(){var r=this,t=arguments;return new Promise((function(a,u){var i=e.apply(r,t);function c(e){n(i,a,u,c,s,"next",e)}function s(e){n(i,a,u,c,s,"throw",e)}c(void 0)}))}}t.d(r,{Z:()=>a})},6660:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>c,ReactUseMultipleBricks:()=>s,useCurrentApp:()=>f,useCurrentTheme:()=>d,useRecentApps:()=>v,useRouteRender:()=>_});var n,a=t(4795),u=t(8657),i=t(9236),c=function(e){var{useBrick:r,data:t}=e,[n,c]=(0,u.useState)(null),s=(0,u.useRef)(),[o,l]=(0,u.useState)(),d=(0,u.useRef)(0),v=(0,u.useMemo)((()=>{var e;return null===(e=i.__secret_internals.getRenderId)||void 0===e?void 0:e.call(i.__secret_internals)}),[]);(0,u.useEffect)((()=>{function e(){return e=(0,a.Z)((function*(){try{c(yield i.__secret_internals.renderUseBrick(r,t)),l(++d.current)}catch(e){(function(e){var r,t=null===(r=i.__secret_internals.getRenderId)||void 0===r?void 0:r.call(i.__secret_internals);return!e||!t||e===t})(v)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,i.handleHttpError)(e))}})),e.apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[t,r,v]);var f=(0,u.useCallback)((e=>{e?s.current=i.__secret_internals.mountUseBrick(n,e):(i.__secret_internals.unmountUseBrick(n,s.current),s.current=void 0)}),[n]);if(!n)return null;var{tagName:_}=n;if(null===_)return null;var p=_;return u.createElement(p,{key:o,ref:f})},s=function(e){var{useBrick:r,data:t}=e;return Array.isArray(r)?u.createElement(u.Fragment,null,r.map(((e,r)=>u.createElement(c,{key:r,useBrick:e,data:t})))):u.createElement(c,{useBrick:r,data:t})};if(window.dll&&null!==(n=window.BRICK_NEXT_VERSIONS)&&void 0!==n&&null!==(n=n["brick-container"])&&void 0!==n&&n.startsWith("2.")){var{SingleBrickAsComponentFactory:o,BrickAsComponentFactory:l}=window.dll("tYg3");o&&l&&(c=o(u),s=l(u))}function d(){var[e,r]=(0,u.useState)(i.getCurrentTheme);return(0,u.useEffect)((()=>{var e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function v(){var[e,r]=u.useState((()=>(0,i.getRuntime)().getRecentApps()));return u.useEffect((()=>{var e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function f(){return v().currentApp}function _(){var[e,r]=u.useState(null);return u.useEffect((()=>{var e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}}}]);
|
|
2
|
+
//# sourceMappingURL=5381.8b6c0779.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/5381.8b6c0779.js","mappings":"0IAAA,SAASA,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,GACpE,IACE,IAAIC,EAAOP,EAAIK,GAAKC,GAChBE,EAAQD,EAAKC,KACnB,CAAE,MAAOC,GAEP,YADAP,EAAOO,EAET,CACIF,EAAKG,KACPT,EAAQO,GAERG,QAAQV,QAAQO,GAAOI,KAAKT,EAAOC,EAEvC,CACe,SAASS,EAAkBC,GACxC,OAAO,WACL,IAAIC,EAAOC,KACTC,EAAOC,UACT,OAAO,IAAIP,SAAQ,SAAUV,EAASC,GACpC,IAAIF,EAAMc,EAAGK,MAAMJ,EAAME,GACzB,SAASd,EAAMK,GACbT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,EAClE,CACA,SAASJ,EAAOgB,GACdrB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASgB,EACnE,CACAjB,OAAMkB,EACR,GACF,CACF,C,yLC5BIC,E,8BAKAC,EAAgB,SAAuBC,GACzC,IAAI,SACFC,EAAQ,KACRC,GACEF,GACCG,EAAcC,IAAmB,IAAAC,UAAS,MAC3CC,GAAc,IAAAC,WACbC,EAAWC,IAAgB,IAAAJ,YAC5BK,GAAe,IAAAH,QAAO,GACtBI,GAAkB,IAAAC,UAAQ,KAC5B,IAAIC,EACJ,OAAmE,QAA3DA,EAAuB,EAAAC,mBAAmBC,mBAAkD,IAAzBF,OAAkC,EAASA,EAAqBG,KAAK,EAAAF,mBAAmB,GAClK,KACH,IAAAG,YAAU,KAIR,SAASC,IAaP,OAZAA,GAAQ,QAAkB,YACxB,IACEd,QAAsB,EAAAU,mBAAmBK,eAAelB,EAAUC,IAClEO,IAAyBC,EA2CpBU,QA1CP,CAAE,MAAOnC,IA4CjB,SAAyB0B,GACvB,IAAIU,EACAC,EAA2E,QAA5DD,EAAwB,EAAAP,mBAAmBC,mBAAmD,IAA1BM,OAAmC,EAASA,EAAsBL,KAAK,EAAAF,oBAC9J,OAAQH,IAAoBW,GAAeX,IAAoBW,CACjE,EA/CcC,CAAgBZ,KAElBa,QAAQvC,MAAM,0BAA2BgB,EAAU,aAAcC,IACjE,IAAAuB,iBAAgBxC,GAEpB,CACF,IACOiC,EAAMvB,MAAMH,KAAME,UAC3B,EAjBA,WACSwB,EAAMvB,MAAMH,KAAME,UAC3B,CAgBAgC,EAAM,GACL,CAACxB,EAAMD,EAAUU,IACpB,IAAIgB,GAAc,IAAAC,cAAYC,IACxBA,EACFvB,EAAYc,QAAU,EAAAN,mBAAmBgB,cAEzC3B,EAAc0B,IAGd,EAAAf,mBAAmBiB,gBAAgB5B,EAAcG,EAAYc,SAC7Dd,EAAYc,aAAUvB,EACxB,GACC,CAACM,IACJ,IAAKA,EAEH,OAAO,KAIT,IAAI,QACF6B,GACE7B,EACJ,GAAgB,OAAZ6B,EACF,OAAO,KAET,IAAIC,EAAeD,EACnB,OAAoB,gBAAoBC,EAAc,CACpDpD,IAAK2B,EACL0B,IAAKP,GAET,EASIQ,EAAyB,SAAgCC,GAC3D,IAAI,SACFnC,EAAQ,KACRC,GACEkC,EACJ,OAAIC,MAAMC,QAAQrC,GACI,gBAAoB,WAAgB,KAAMA,EAASsC,KAAI,CAACC,EAAMC,IAAuB,gBAAoB1C,EAAe,CAC1IlB,IAAK4D,EACLxC,SAAUuC,EACVtC,KAAMA,OAGU,gBAAoBH,EAAe,CACrDE,SAAUA,EACVC,KAAMA,GAEV,EAIA,GAAIwC,OAAOC,KAAgE,QAAxD7C,EAAwB4C,OAAOE,2BAA2D,IAA1B9C,GAA2G,QAAtEA,EAAwBA,EAAsB,0BAA0D,IAA1BA,GAAoCA,EAAsB+C,WAAW,MAAO,CAChR,IAAI,8BACFC,EAA6B,wBAC7BC,GACEL,OAAOC,IAAI,QACXG,GAAiCC,IACnChD,EAAgB+C,EAA8B,GAC9CX,EAAyBY,EAAwB,GAErD,CCxGO,SAASC,IACd,IAAKC,EAAcC,IAAmB,IAAA7C,UAAS,EAAA8C,iBAU/C,OATA,IAAAlC,YAAU,KACR,IAAImC,EAAsBC,IACxBH,EAAgBG,EAAMC,OAAO,EAG/B,OADAZ,OAAOa,iBAAiB,eAAgBH,GACjC,KACLV,OAAOc,oBAAoB,eAAgBJ,EAAoB,CAChE,GACA,IACIH,CACT,CCZO,SAASQ,IACd,IAAKC,EAAYC,GAAiB,YAAe,KAAM,IAAAC,cAAaC,kBAQpE,OAPA,aAAgB,KACd,IAAIC,EAAWT,IACbM,EAAcN,EAAMC,OAAO,EAG7B,OADAZ,OAAOa,iBAAiB,aAAcO,GAC/B,IAAMpB,OAAOc,oBAAoB,aAAcM,EAAS,GAC9D,IACIJ,CACT,CCIO,SAASK,IACd,OAAON,IAAgBO,UACzB,CCjBO,SAASC,IACd,IAAKC,EAAaC,GAAkB,WAAe,MAQnD,OAPA,aAAgB,KACd,IAAIL,EAAWT,IACbc,EAAed,EAAMC,OAAO,EAG9B,OADAZ,OAAOa,iBAAiB,eAAgBO,GACjC,IAAMpB,OAAOc,oBAAoB,eAAgBM,EAAS,GAChE,IACII,CACT,C","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nvar _window$BRICK_NEXT_VE;\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nvar ReactUseBrick = function ReactUseBrick(_ref) {\n var {\n useBrick,\n data\n } = _ref;\n var [renderResult, setRenderResult] = useState(null);\n var mountResult = useRef();\n var [renderKey, setRenderKey] = useState();\n var IdCounterRef = useRef(0);\n var initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n function init() {\n return _init.apply(this, arguments);\n }\n function _init() {\n _init = _asyncToGenerator(function* () {\n try {\n setRenderResult(yield __secret_internals.renderUseBrick(useBrick, data));\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n });\n return _init.apply(this, arguments);\n }\n init();\n }, [data, useBrick, initialRenderId]);\n var refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult, element);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n }, [renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n var {\n tagName\n } = renderResult;\n if (tagName === null) {\n return null;\n }\n var WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n var newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nvar ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n var {\n useBrick,\n data\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data\n });\n};\n\n// istanbul ignore next\n// Make v3 bricks compatible with Brick Next v2.\nif (window.dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE[\"brick-container\"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith(\"2.\")) {\n var {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = window.dll(\"tYg3\");\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n var [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n var listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n var [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n var listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n var [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n var listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_window$BRICK_NEXT_VE","ReactUseBrick","_ref","useBrick","data","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","_init","renderUseBrick","current","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","refCallback","useCallback","element","mountUseBrick","unmountUseBrick","tagName","WebComponent","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","window","dll","BRICK_NEXT_VERSIONS","startsWith","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_data_view=self.webpackChunk_next_bricks_data_view||[]).push([[6252],{9439:(t,e,a)=>{a.d(e,{F:()=>P});var i=a(2159),r=a(8657),l=a.n(r),n=a(1211),o=["#5B8FF9","#5AD8A6","#5D7092","#F6BD16","#E86452","#6DC8EC","#945FB9","#FF9845","#1E9493","#FF99C3"],s={dataFill:{fillStyle:"rgba(76,132,250,0.67)"},dataCircle:{r:2,strokeStyle:"#ccc",fillStyle:"#fff",lineWidth:.5},dataLine:{strokeStyle:"#0B2EE7",lineWidth:5}},d={n:0,dataRadiusOfPercent:[],dataRadius:[],angleArr:[],tooltipsContentArr:[],originDataSource:[],radius:1},c=function(t,e){var a=(0,n.cloneDeep)(d);if(a.radius=e,(null==t?void 0:t.length)<1)return a;a.originDataSource=t,a.n=t.length;var i=2*Math.PI/a.n;return t.forEach(((t,r)=>{a.dataRadiusOfPercent[r]=t.value/t.maxValue,a.dataRadius[r]=a.dataRadiusOfPercent[r]*e,a.angleArr[r]=r*i})),a},f=function(t,e,a){var i=(0,n.cloneDeep)(s);return(0,n.merge)(i.dataFill,t),(0,n.merge)(i.dataCircle,e),(0,n.merge)(i.dataLine,a),i},h=function(t,e,a){for(var i=[],r=0;r<t;r++){var l={x:0,y:0};l.x=e[r]*Math.sin(a[r]),l.y=-e[r]*Math.cos(a[r]),i.push(l)}return i},u=function(t,e,a){for(var i=[],r=2*Math.PI/t,l=0;l<t;l++){var n={x:0,y:0};n.x=e*Math.sin(l*r)+a[0],n.y=-e*Math.cos(l*r)+a[1],i.push(n)}return i},y=function(t,e){var a=e.n,i=e.r,r=e.origin,l=e.strokeStyle,n=e.lineWidth*e.ratio;t.save(),t.beginPath();var o=2*Math.PI/a;t.translate(r[0],r[1]),t.moveTo(0,-i);for(var s=0;s<a;s++)t.rotate(o),t.lineTo(0,-i);if(t.closePath(),t.stroke(),e.strokeStyle&&(t.strokeStyle=l,t.lineWidth=n,t.lineCap="butt"),e.fillStyle){if("string"==typeof e.fillStyle)t.fillStyle=e.fillStyle;else if(e.fillStyle instanceof Array){var d=t.createLinearGradient(-i,-i,i,i);e.fillStyle.forEach((t=>{d.addColorStop(0,t[0]),d.addColorStop(1,t[1])})),t.fillStyle=d}t.fill()}t.restore()},v=function(t,e){var{n:a,r:i,origin:r,strokeStyle:l}=e,n=e.lineWidth*e.ratio;t.save();var o=2*Math.PI/a;t.translate(r[0],r[1]),t.lineWidth=n,t.lineCap="butt",t.rotate(-Math.PI/2);for(var s=0;s<a;s++){var d=i*Math.cos(o*s),c=i*Math.sin(o*s),f=i*Math.cos(o*(s+1)),h=i*Math.sin(o*(s+1));t.beginPath(),t.moveTo(d,c),t.lineTo(f,h);var u=t.createLinearGradient(d,c,f,h);u.addColorStop(0,l),u.addColorStop(.5,"#1D2B57"),u.addColorStop(.6,"#1D2B57"),u.addColorStop(1,l),t.strokeStyle=u,t.stroke()}t.restore()},S=function(t,e,a){t.save(),t.beginPath(),a.map((a=>{t.moveTo(e[0],e[1]),t.lineTo(a.x,a.y)})),t.strokeStyle="#1D2B57",t.lineWidth=2,t.stroke(),t.restore()},g=function(t,e,a,i,r){t.save();var l=a/2,n=a/4,s=a/12>10?a/12:10;i.map(((i,d)=>{var c,f,h,u,y=i.x,v=i.x,S=i.x,g=i.y,p=i.x,k=(null===(c=r[d])||void 0===c?void 0:c.color)||o[d]||"#ccc";t.beginPath(),t.moveTo(i.x,i.y),i.x-e[0]>=0?(S=(v=(y+=l)+l)+s,p=y+12):i.x-e[0]<0&&(S=(v=(y-=l)-l)-s,p=v+12),i.y-e[1]<0?g-=n:i.y-e[1]>0&&(g+=n),t.lineTo(y,g),t.lineTo(S,g),t.strokeStyle="rgba(255, 255, 255, .1)",t.stroke(),t.beginPath(),t.moveTo(v,g),t.lineTo(S,g),t.strokeStyle=k,t.lineWidth=2,t.stroke();var x=null!==(f=r[d])&&void 0!==f&&f.percentValue?g-a/3.5:g-a/5.5,m=a/12;if(null!==(h=r[d])&&void 0!==h&&h.name&&(t.fillStyle=k,t.fillRect(p,x,12,12),t.textAlign="left",t.font="400 ".concat(m,"px HarmonyOS_Sans_SC_Black"),t.fillStyle="rgba(255, 255, 255, .4)",t.fillText("".concat(r[d].name),p+18,x+6),t.stroke()),null!==(u=r[d])&&void 0!==u&&u.percentValue){var P,
|
|
2
|
-
//# sourceMappingURL=6252.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_data_view=self.webpackChunk_next_bricks_data_view||[]).push([[6252],{9439:(t,e,a)=>{a.d(e,{F:()=>P});var i=a(2159),r=a(8657),l=a.n(r),n=a(1211),o=["#5B8FF9","#5AD8A6","#5D7092","#F6BD16","#E86452","#6DC8EC","#945FB9","#FF9845","#1E9493","#FF99C3"],s={dataFill:{fillStyle:"rgba(76,132,250,0.67)"},dataCircle:{r:2,strokeStyle:"#ccc",fillStyle:"#fff",lineWidth:.5},dataLine:{strokeStyle:"#0B2EE7",lineWidth:5}},d={n:0,dataRadiusOfPercent:[],dataRadius:[],angleArr:[],tooltipsContentArr:[],originDataSource:[],radius:1},c=function(t,e){var a=(0,n.cloneDeep)(d);if(a.radius=e,(null==t?void 0:t.length)<1)return a;a.originDataSource=t,a.n=t.length;var i=2*Math.PI/a.n;return t.forEach(((t,r)=>{a.dataRadiusOfPercent[r]=t.value/t.maxValue,a.dataRadius[r]=a.dataRadiusOfPercent[r]*e,a.angleArr[r]=r*i})),a},f=function(t,e,a){var i=(0,n.cloneDeep)(s);return(0,n.merge)(i.dataFill,t),(0,n.merge)(i.dataCircle,e),(0,n.merge)(i.dataLine,a),i},h=function(t,e,a){for(var i=[],r=0;r<t;r++){var l={x:0,y:0};l.x=e[r]*Math.sin(a[r]),l.y=-e[r]*Math.cos(a[r]),i.push(l)}return i},u=function(t,e,a){for(var i=[],r=2*Math.PI/t,l=0;l<t;l++){var n={x:0,y:0};n.x=e*Math.sin(l*r)+a[0],n.y=-e*Math.cos(l*r)+a[1],i.push(n)}return i},y=function(t,e){var a=e.n,i=e.r,r=e.origin,l=e.strokeStyle,n=e.lineWidth*e.ratio;t.save(),t.beginPath();var o=2*Math.PI/a;t.translate(r[0],r[1]),t.moveTo(0,-i);for(var s=0;s<a;s++)t.rotate(o),t.lineTo(0,-i);if(t.closePath(),t.stroke(),e.strokeStyle&&(t.strokeStyle=l,t.lineWidth=n,t.lineCap="butt"),e.fillStyle){if("string"==typeof e.fillStyle)t.fillStyle=e.fillStyle;else if(e.fillStyle instanceof Array){var d=t.createLinearGradient(-i,-i,i,i);e.fillStyle.forEach((t=>{d.addColorStop(0,t[0]),d.addColorStop(1,t[1])})),t.fillStyle=d}t.fill()}t.restore()},v=function(t,e){var{n:a,r:i,origin:r,strokeStyle:l}=e,n=e.lineWidth*e.ratio;t.save();var o=2*Math.PI/a;t.translate(r[0],r[1]),t.lineWidth=n,t.lineCap="butt",t.rotate(-Math.PI/2);for(var s=0;s<a;s++){var d=i*Math.cos(o*s),c=i*Math.sin(o*s),f=i*Math.cos(o*(s+1)),h=i*Math.sin(o*(s+1));t.beginPath(),t.moveTo(d,c),t.lineTo(f,h);var u=t.createLinearGradient(d,c,f,h);u.addColorStop(0,l),u.addColorStop(.5,"#1D2B57"),u.addColorStop(.6,"#1D2B57"),u.addColorStop(1,l),t.strokeStyle=u,t.stroke()}t.restore()},S=function(t,e,a){t.save(),t.beginPath(),a.map((a=>{t.moveTo(e[0],e[1]),t.lineTo(a.x,a.y)})),t.strokeStyle="#1D2B57",t.lineWidth=2,t.stroke(),t.restore()},g=function(t,e,a,i,r){t.save();var l=a/2,n=a/4,s=a/12>10?a/12:10;i.map(((i,d)=>{var c,f,h,u,y=i.x,v=i.x,S=i.x,g=i.y,p=i.x,k=(null===(c=r[d])||void 0===c?void 0:c.color)||o[d]||"#ccc";t.beginPath(),t.moveTo(i.x,i.y),i.x-e[0]>=0?(S=(v=(y+=l)+l)+s,p=y+12):i.x-e[0]<0&&(S=(v=(y-=l)-l)-s,p=v+12),i.y-e[1]<0?g-=n:i.y-e[1]>0&&(g+=n),t.lineTo(y,g),t.lineTo(S,g),t.strokeStyle="rgba(255, 255, 255, .1)",t.stroke(),t.beginPath(),t.moveTo(v,g),t.lineTo(S,g),t.strokeStyle=k,t.lineWidth=2,t.stroke();var x=null!==(f=r[d])&&void 0!==f&&f.percentValue?g-a/3.5:g-a/5.5,m=a/12;if(null!==(h=r[d])&&void 0!==h&&h.name&&(t.fillStyle=k,t.fillRect(p,x,12,12),t.textAlign="left",t.font="400 ".concat(m,"px HarmonyOS_Sans_SC_Black"),t.fillStyle="rgba(255, 255, 255, .4)",t.fillText("".concat(r[d].name),p+18,x+6),t.stroke()),null!==(u=r[d])&&void 0!==u&&u.percentValue){var P,W=a/10;t.textAlign="left",t.font="500 ".concat(W,"px HarmonyOS_Sans_SC_Black"),t.fillStyle="#fff",t.fillText("".concat(null===(P=r[d])||void 0===P?void 0:P.percentValue),p+18,x+6+1.5*m),t.stroke()}})),t.restore()};function p(t,e){var{x:a,y:i,r,originX:l,originY:n,strokeStyle:o,lineWidth:s,fillStyle:d}=e;t.save(),t.beginPath(),t.translate(l,n),t.arc(a,i,r,0,2*Math.PI),t.closePath(),t.strokeStyle=o,t.lineWidth=s,t.lineJoin="round",t.fillStyle=d,t.stroke(),t.fill(),t.restore()}var k=function(t,e,a,i){var{dataLineOptions:r,dataFillOptions:l,dataCircleOptions:n}=i;0!==r.dataPoints.length&&(function(t,e,a){var{strokeStyle:i,lineWidth:r,dataPoints:l}=a,n=l.length;t.save(),t.beginPath(),t.translate(e[0],e[1]),t.moveTo(l[0].x,l[0].y);for(var o=1;o<n;o++)t.lineTo(l[o].x,l[o].y);t.closePath(),t.strokeStyle=i,t.lineWidth=r,t.lineJoin="round",t.stroke(),t.restore()}(t,e,r),function(t,e,a){var{fillStyle:i,dataPoints:r}=a,l=r.length;t.save(),t.beginPath(),t.translate(e[0],e[1]),t.moveTo(r[0].x,r[0].y);for(var n=1;n<l;n++)t.lineTo(r[n].x,r[n].y);t.closePath(),t.fillStyle=i,t.fill(),t.restore()}(t,e,l),function(t,e,a,i){for(var{strokeStyle:r,fillStyle:l,dataPoints:n}=i,o=i.r*a,s=i.lineWidth*a,d=n.length,c=0;c<d;c++)p(t,{x:n[c].x,y:n[c].y,r:o,originX:e[0],originY:e[1],strokeStyle:r,lineWidth:s,fillStyle:l})}(t,e,a,n))},x=function(t,e){for(var{layer:a,n:i,r,ratio:l,origin:n,lineWidth:o}=e,s=[["#3366FF","#83F5E1"]],d=a;d>0;d--)d===a?(v(t,{n:i,r,origin:n,ratio:l,lineWidth:o,strokeStyle:"rgba(51, 102, 255)"}),v(t,{n:i,r:.95*r,origin:n,ratio:l,strokeStyle:"rgba(76,132,250,0.1)",lineWidth:o})):y(t,{n:i,r:.95*r/a*d,origin:n,fillStyle:d%2!=0?"#29292d":s,strokeStyle:"transparent",lineWidth:o,ratio:l})},m=["dataSource","radius","value","dataFill","dataCircle","dataLine","scale"];function P(t){var{dataSource:e,radius:a,value:n,dataFill:o,dataCircle:y,dataLine:v,scale:p}=t,P=(0,i.Z)(t,m),W=(0,r.useRef)(null),b=(0,r.useRef)(null),[C,F]=(0,r.useState)(d),[w,O]=(0,r.useState)(s),T=window.devicePixelRatio;return(0,r.useEffect)((()=>{var t=W.current,i=t.getContext("2d"),r=t.clientWidth,l=t.clientHeight;t.width=r*T,t.height=l*T;var n=Math.min(t.width,t.height)*p;b.current=i,F(c(e,null!=a?a:n))}),[e,a,p]),(0,r.useEffect)((()=>{O(f(o,y,v))}),[o,y,v]),(0,r.useEffect)((()=>{var t=0,e=null,a=W.current,i=b.current,r=[a.width/2,a.height/2];if(i){var l=()=>{e=window.requestAnimationFrame(l),(t+=.05)>=1&&window.cancelAnimationFrame(e),i.clearRect(0,0,a.width,a.height),x(i,{layer:5,n:C.n,r:C.radius,ratio:T,origin:r,lineWidth:2});var o=C.dataRadius.map((e=>e*t)),s=h(C.n,o,C.angleArr),d={dataPoints:s,strokeStyle:w.dataLine.strokeStyle,lineWidth:w.dataLine.lineWidth},c={dataPoints:s,r:w.dataCircle.r,strokeStyle:w.dataCircle.strokeStyle,fillStyle:w.dataCircle.fillStyle,lineWidth:w.dataCircle.lineWidth},f={dataPoints:s,fillStyle:w.dataFill.fillStyle};k(i,r,T,{dataLineOptions:d,dataFillOptions:f,dataCircleOptions:c});var y=u(C.n,C.radius,r);if(S(i,r,y),g(i,r,C.radius,y,C.originDataSource),n){var v=C.radius/5;i.font="bold ".concat(v,"px HarmonyOS_Sans_SC_Black"),i.fillStyle="#fff",i.textAlign="center",i.textBaseline="middle",i.fillText("".concat(n),r[0],r[1])}};l()}}),[C,w,n]),l().createElement("div",{className:"radarWrap",style:{width:"".concat(P.width,"px"),height:"".concat(P.height,"px")}},l().createElement("canvas",{className:"canvasWrap",ref:W}))}},2742:(t,e,a)=>{a.d(e,{Z:()=>o});var i=a(9601),r=a.n(i),l=a(2609),n=a.n(l)()(r());n.push([t.id,".radarWrap{position:relative;width:100%;height:100%}.radarWrap .canvasWrap{display:block;width:100%;height:100%}",""]);const o=n.toString()},2159:(t,e,a)=>{function i(t,e){if(null==t)return{};var a,i,r=function(t,e){if(null==t)return{};var a,i,r={},l=Object.keys(t);for(i=0;i<l.length;i++)a=l[i],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(i=0;i<l.length;i++)a=l[i],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}a.d(e,{Z:()=>i})}}]);
|
|
2
|
+
//# sourceMappingURL=6252.d2312cb8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/6252.a408a0a3.js","mappings":"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","sources":["webpack:///./src/radar-chart/utils.ts","webpack:///./src/radar-chart/radar.tsx","webpack:///./src/radar-chart/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import { cloneDeep, merge } from \"lodash\";\nimport {\n Axis,\n BaseConfig,\n CircleOptions,\n Data,\n DataCircle,\n DataCircleOptions,\n DataFill,\n DataFillProps,\n DataLine,\n DataLineOptions,\n DataPolyProps,\n DrawPolygonOptions,\n DrawRadarBgOption,\n GradientPolygon,\n UserConfig,\n} from \"./interface.js\";\n\nexport const colorMap = [\n \"#5B8FF9\",\n \"#5AD8A6\",\n \"#5D7092\",\n \"#F6BD16\",\n \"#E86452\",\n \"#6DC8EC\",\n \"#945FB9\",\n \"#FF9845\",\n \"#1E9493\",\n \"#FF99C3\",\n]; //chart-v2 的主题色\n\nexport const baseUserConfig: UserConfig = {\n dataFill: {\n fillStyle: \"rgba(76,132,250,0.67)\",\n },\n dataCircle: {\n r: 2,\n strokeStyle: \"#ccc\",\n fillStyle: \"#fff\",\n lineWidth: 0.5,\n },\n dataLine: {\n strokeStyle: \"#0B2EE7\",\n lineWidth: 5,\n },\n};\nexport const baseRadarConfig: BaseConfig = {\n n: 0,\n dataRadiusOfPercent: [],\n dataRadius: [],\n angleArr: [],\n tooltipsContentArr: [],\n originDataSource: [],\n radius: 1,\n};\n/**\n * // 初始化参数配置\n * @param dataSource\n * @param radius\n * @returns BaseConfig\n */\nexport const constructBaseConfig = function (\n dataSource: Data[],\n radius: number\n) {\n const baseConfig: BaseConfig = cloneDeep(baseRadarConfig);\n baseConfig.radius = radius;\n if (dataSource?.length < 1) return baseConfig;\n baseConfig.originDataSource = dataSource;\n baseConfig.n = dataSource.length;\n const disAngle = (Math.PI * 2) / baseConfig.n;\n dataSource.forEach((data, i) => {\n baseConfig.dataRadiusOfPercent[i] = data.value / data.maxValue;\n baseConfig.dataRadius[i] = baseConfig.dataRadiusOfPercent[i] * radius;\n baseConfig.angleArr[i] = i * disAngle;\n });\n return baseConfig;\n};\n\nexport const constructUserConfig = function (\n dataFill: DataFill,\n dataCircle: DataCircle,\n dataLine: DataLine\n) {\n const userConfig: UserConfig = cloneDeep(baseUserConfig);\n merge(userConfig.dataFill, dataFill);\n merge(userConfig.dataCircle, dataCircle);\n merge(userConfig.dataLine, dataLine);\n return userConfig;\n};\n\n/**\n * 获取数据点相对于原点的坐标\n * n:多边形边数\n * dataRadiusArr: 数据点的坐标数组\n * angleArr: 多边形的角度数组\n */\nexport const getDataPointsPos = function (\n n: number,\n dataRadiusArr: number[],\n angleArr: number[]\n) {\n const dataPointsPosArray = [];\n for (let i = 0; i < n; i++) {\n const curPoinrPos: Axis = {\n x: 0,\n y: 0,\n };\n curPoinrPos.x = dataRadiusArr[i] * Math.sin(angleArr[i]);\n curPoinrPos.y = -dataRadiusArr[i] * Math.cos(angleArr[i]);\n dataPointsPosArray.push(curPoinrPos);\n }\n return dataPointsPosArray;\n};\n\n/**\n * 获取正多边形每个点的坐标位置数组(相对于原点)\n * n: 多边形的边数\n * r: 半径\n * origin: 原点位置\n */\nexport const getPolygonPos = function (n: number, r: number, origin: number[]) {\n const dotsArray = []; // 多边形每一个点的坐标数组,格式如[{x: 1, y: 2}]\n const angle = (Math.PI * 2) / n;\n for (let i = 0; i < n; i++) {\n const curPos: Axis = {\n x: 0,\n y: 0,\n };\n curPos.x = r * Math.sin(i * angle) + origin[0];\n curPos.y = -r * Math.cos(i * angle) + origin[1];\n dotsArray.push(curPos);\n }\n return dotsArray;\n};\n\n/**\n * 绘制闭合正多边形\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * fillStyle:填充样式\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawPolygon = function (\n context: CanvasRenderingContext2D,\n options: DrawPolygonOptions\n) {\n // 对传入参数进行默认值设置\n const n = options.n,\n r = options.r,\n origin = options.origin,\n strokeStyle = options.strokeStyle,\n lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n\n context.save();\n context.beginPath();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n context.moveTo(0, -r);\n for (let i = 0; i < n; i++) {\n context.rotate(angle);\n context.lineTo(0, -r);\n }\n context.closePath();\n context.stroke();\n\n if (options.strokeStyle) {\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n }\n if (options.fillStyle) {\n if (typeof options.fillStyle === \"string\") {\n context.fillStyle = options.fillStyle;\n } else if (options.fillStyle instanceof Array) {\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(-r, -r, r, r);\n options.fillStyle.forEach((colors) => {\n gradient.addColorStop(0, colors[0]);\n gradient.addColorStop(1, colors[1]);\n });\n context.fillStyle = gradient;\n }\n\n context.fill();\n }\n context.restore();\n};\n\n/**\n * 绘制线性渐变的多边形,\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawGradientPolygon = function (\n context: CanvasRenderingContext2D,\n options: GradientPolygon\n) {\n // 对传入参数进行默认值设置\n const { n, r, origin, strokeStyle } = options;\n const lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n context.save();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n\n // 设置线条样式\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n // 添加偏移量,使第一条边与正上方对齐\n context.rotate(-Math.PI / 2);\n\n for (let i = 0; i < n; i++) {\n // 计算当前边的起点和终点坐标\n const startX = r * Math.cos(angle * i),\n startY = r * Math.sin(angle * i),\n endX = r * Math.cos(angle * (i + 1)),\n endY = r * Math.sin(angle * (i + 1));\n // 开始一个新的路径\n context.beginPath();\n // 绘制多边形的一条边\n context.moveTo(startX, startY);\n context.lineTo(endX, endY);\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(startX, startY, endX, endY);\n gradient.addColorStop(0, strokeStyle);\n gradient.addColorStop(0.5, \"#1D2B57\");\n gradient.addColorStop(0.6, \"#1D2B57\");\n gradient.addColorStop(1, strokeStyle);\n // 设置当前路径的描边样式为线性渐变\n context.strokeStyle = gradient;\n context.stroke();\n }\n context.restore();\n};\n\n/**\n * 绘制数据点连接线条(一次性画完)\n * dataPoints: 数据的位置数组\n * strokeStyle: 线条样式\n * lineWidth: 线条宽度\n */\nexport const drawDataLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataLineOptions\n) {\n const { strokeStyle, lineWidth, dataPoints } = options;\n const dataPointsLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.stroke();\n context.restore();\n};\n/**\n * 绘制放射性中心点到多边形顶点连线\n * @param context\n * @param origin\n * @param dataPoints 多边形顶点坐标\n */\nexport const drawVertexLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n dataPoints: Axis[]\n) {\n context.save();\n context.beginPath();\n dataPoints.map((point) => {\n context.moveTo(origin[0], origin[1]);\n context.lineTo(point.x, point.y);\n });\n context.strokeStyle = \"#1D2B57\";\n context.lineWidth = 2;\n context.stroke();\n context.restore();\n};\nexport const drawLeadLineAndText = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n r: number,\n dataPoints: Axis[],\n dataSource: Data[]\n) {\n context.save();\n const offsetX = r / 2,\n offsetY = r / 4,\n offsetEndX = r / 12 > 10 ? r / 12 : 10,\n rectSize = 12;\n dataPoints.map((point, i) => {\n let curPosX = point.x,\n curPosMiddleX = point.x,\n curPosEndX = point.x,\n curPosY = point.y,\n rectX = point.x;\n const color = dataSource[i]?.color || colorMap[i] || \"#ccc\";\n context.beginPath();\n context.moveTo(point.x, point.y);\n\n if (point.x - origin[0] >= 0) {\n //引线方向往右\n curPosX += offsetX;\n curPosMiddleX = curPosX + offsetX;\n curPosEndX = curPosMiddleX + offsetEndX;\n rectX = curPosX + rectSize;\n } else if (point.x - origin[0] < 0) {\n //引线方向往左\n curPosX -= offsetX;\n curPosMiddleX = curPosX - offsetX;\n curPosEndX = curPosMiddleX - offsetEndX;\n rectX = curPosMiddleX + rectSize;\n }\n\n if (point.y - origin[1] < 0) {\n curPosY -= offsetY;\n } else if (point.y - origin[1] > 0) {\n curPosY += offsetY;\n }\n context.lineTo(curPosX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = \"rgba(255, 255, 255, .1)\";\n context.stroke();\n context.beginPath();\n context.moveTo(curPosMiddleX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = color;\n context.lineWidth = 2;\n context.stroke();\n\n //文本\n const rectY = dataSource[i]?.percentValue\n ? curPosY - r / 3.5\n : curPosY - r / 5.5;\n const legendSize = r / 12;\n\n if (dataSource[i]?.name) {\n context.fillStyle = color;\n context.fillRect(rectX, rectY, rectSize, rectSize);\n\n context.textAlign = \"left\";\n context.font = `400 ${legendSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"rgba(255, 255, 255, .4)\";\n context.fillText(\n `${dataSource[i].name}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2\n );\n context.stroke();\n }\n if (dataSource[i]?.percentValue) {\n const percentSize = r / 10;\n context.textAlign = \"left\";\n context.font = `500 ${percentSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.fillText(\n `${dataSource[i]?.percentValue}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2 + legendSize * 1.5\n );\n context.stroke();\n }\n });\n context.restore();\n};\n\n/**\n * 绘制数据点圆圈\n * dataPoints: 数据的位置数组\n * r: 圆圈半径\n * strokeStyle: 圆的描边样式\n * fillStyle: 圆的描边宽度\n * lineWidth: 圆的填充样式\n */\nexport const drawDataCircle = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataCircleOptions\n) {\n const { strokeStyle, fillStyle, dataPoints } = options;\n const r = options.r * ratio,\n lineWidth = options.lineWidth * ratio;\n\n const dataPointsPosArrayLen = dataPoints.length;\n for (let i = 0; i < dataPointsPosArrayLen; i++) {\n drawCircle(context, {\n x: dataPoints[i].x,\n y: dataPoints[i].y,\n r: r,\n originX: origin[0],\n originY: origin[1],\n strokeStyle: strokeStyle,\n lineWidth: lineWidth,\n fillStyle: fillStyle,\n });\n }\n};\n\n/**\n * 绘制圆圈\n * x: 圆心位置x\n * y: 圆心位置y\n * r: 半径\n * originX: 原点位置x\n * originY: 原点位置y\n * strokeStyle: 描边样式\n * lineWidth: 线条宽度\n * fillStyle: 填充样式\n */\nexport function drawCircle(\n context: CanvasRenderingContext2D,\n options: CircleOptions\n) {\n const { x, y, r, originX, originY, strokeStyle, lineWidth, fillStyle } =\n options;\n context.save();\n context.beginPath();\n context.translate(originX, originY);\n context.arc(x, y, r, 0, Math.PI * 2);\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.fillStyle = fillStyle;\n context.stroke();\n context.fill();\n context.restore();\n}\n\n/**\n * 绘制数据多边形填充\n * dataPoints: 数据的位置数组\n * fillStyle: 填充样式\n */\nexport const drawDataFill = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataFillProps\n) {\n const { fillStyle, dataPoints } = options;\n const dataPointsPosArrayLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsPosArrayLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.fillStyle = fillStyle;\n context.fill();\n context.restore();\n};\n\n/**\n * 绘制数据点组成的图案\n * dataLineOptions\n * dataFillOptions\n * dataCircleOptions\n */\nexport const drawDataPoly = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataPolyProps\n) {\n const { dataLineOptions, dataFillOptions, dataCircleOptions } = options;\n const dataPointsPosArrayLen = dataLineOptions.dataPoints.length;\n if (dataPointsPosArrayLen === 0) return;\n // 绘制数据点连接线条\n drawDataLine(context, origin, dataLineOptions);\n // 绘制数据多边形填充\n drawDataFill(context, origin, dataFillOptions);\n // 绘制数据点圆圈\n drawDataCircle(context, origin, ratio, dataCircleOptions);\n};\n\n/**\n * 绘制雷达的背景图\n * 参数options对象的属性如下:\n * layer: 多边形层数\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * oddStrokeStyle: index为奇数的多边形的描边颜色\n * oddFillStyle: index为奇数的多边形的填充颜色\n * evenStrokeStyle: index为偶数的多边形的描边颜色\n * evenFillStyle: index为偶数的多边形的填充颜色\n */\nexport const drawRadarBackground = function (\n context: CanvasRenderingContext2D,\n options: DrawRadarBgOption\n) {\n const { layer, n, r, ratio, origin, lineWidth } = options;\n const evenStrokeStyle = \"transparent\",\n oddStrokeStyle = \"transparent\",\n evenFillStyle = [[\"#3366FF\", \"#83F5E1\"]],\n oddFillStyle = \"#29292d\";\n // 由外向内绘画多边形\n for (let i = layer; i > 0; i--) {\n if (i === layer) {\n drawGradientPolygon(context, {\n n,\n r,\n origin,\n ratio,\n lineWidth,\n strokeStyle: \"rgba(51, 102, 255)\",\n });\n drawGradientPolygon(context, {\n n,\n r: r * 0.95,\n origin,\n ratio,\n strokeStyle: \"rgba(76,132,250,0.1)\",\n lineWidth,\n });\n } else {\n const layerDis = (r * 0.95) / layer;\n const fillStyle = i % 2 != 0 ? oddFillStyle : evenFillStyle,\n strokeStyle = i % 2 != 0 ? oddStrokeStyle : evenStrokeStyle,\n layerRadiu = layerDis * i;\n drawPolygon(context, {\n n,\n r: layerRadiu,\n origin,\n fillStyle,\n strokeStyle,\n lineWidth,\n ratio,\n });\n }\n }\n};\n","import React, { ReactElement, useEffect, useRef, useState } from \"react\";\nimport {\n baseRadarConfig,\n baseUserConfig,\n constructBaseConfig,\n constructUserConfig,\n drawDataPoly,\n drawLeadLineAndText,\n drawRadarBackground,\n drawVertexLine,\n getDataPointsPos,\n getPolygonPos,\n} from \"./utils.js\";\nimport { BaseConfig, RadarProps, UserConfig } from \"./interface.js\";\n\nexport function Radar({\n dataSource,\n radius,\n value,\n dataFill,\n dataCircle,\n dataLine,\n scale,\n ...props\n}: RadarProps): ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D>(null);\n const [baseConfig, setBaseConfig] = useState<BaseConfig>(baseRadarConfig);\n const [userConfig, setUserConfig] = useState<UserConfig>(baseUserConfig);\n\n const ratio = window.devicePixelRatio;\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n const canvasWidth = canvas.clientWidth;\n const canvasHeight = canvas.clientHeight;\n // 根据设备像素比调整画布的实际像素大小\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n const defaultRadius = Math.min(canvas.width, canvas.height) * scale; // 正多边形的默认半径\n\n contextRef.current = context;\n setBaseConfig(constructBaseConfig(dataSource, radius ?? defaultRadius));\n }, [dataSource, radius, scale]);\n useEffect(() => {\n setUserConfig(constructUserConfig(dataFill, dataCircle, dataLine));\n }, [dataFill, dataCircle, dataLine]);\n\n useEffect(() => {\n let radiusPrecent = 0,\n timer = null;\n const canvas = canvasRef.current;\n const context = contextRef.current;\n const origin = [canvas.width / 2, canvas.height / 2];\n\n if (context) {\n // 起requestAnimationFrame为了数值绘制区域有过渡效果\n const drawFrame = () => {\n timer = window.requestAnimationFrame(drawFrame);\n // 数据点坐标元素\n radiusPrecent += 0.05;\n if (radiusPrecent >= 1) {\n window.cancelAnimationFrame(timer);\n }\n // 清空画布\n context.clearRect(0, 0, canvas.width, canvas.height);\n // 绘制背景图\n drawRadarBackground(context, {\n layer: 5,\n n: baseConfig.n,\n r: baseConfig.radius,\n ratio,\n origin,\n lineWidth: 2,\n });\n\n const dataRadius = baseConfig.dataRadius.map((value) => {\n return value * radiusPrecent;\n });\n const dataPointsPosArray = getDataPointsPos(\n baseConfig.n,\n dataRadius,\n baseConfig.angleArr\n );\n const dataLineOptions = {\n dataPoints: dataPointsPosArray,\n strokeStyle: userConfig.dataLine.strokeStyle,\n lineWidth: userConfig.dataLine.lineWidth,\n };\n const dataCircleOptions = {\n dataPoints: dataPointsPosArray,\n r: userConfig.dataCircle.r,\n strokeStyle: userConfig.dataCircle.strokeStyle,\n fillStyle: userConfig.dataCircle.fillStyle,\n lineWidth: userConfig.dataCircle.lineWidth,\n };\n const dataFillOptions = {\n dataPoints: dataPointsPosArray,\n fillStyle: userConfig.dataFill.fillStyle,\n };\n drawDataPoly(context, origin, ratio, {\n dataLineOptions: dataLineOptions,\n dataFillOptions: dataFillOptions,\n dataCircleOptions: dataCircleOptions,\n });\n\n //绘制放射性中心点到多边形顶点连线\n const polygonOuterPointsPosArr = getPolygonPos(\n baseConfig.n,\n baseConfig.radius,\n origin\n );\n drawVertexLine(context, origin, polygonOuterPointsPosArr);\n drawLeadLineAndText(\n context,\n origin,\n baseConfig.radius,\n polygonOuterPointsPosArr,\n baseConfig.originDataSource\n );\n if (value) {\n const fontSize = baseConfig.radius / 5;\n context.font = `bold ${fontSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillText(`${value}`, origin[0], origin[1]);\n }\n };\n drawFrame();\n }\n }, [baseConfig, userConfig, value]);\n\n return (\n <div\n className=\"radarWrap\"\n style={{ width: `${props.width}px`, height: `${props.height}px` }}\n >\n <canvas className=\"canvasWrap\" ref={canvasRef} />\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radarWrap{position:relative;width:100%;height:100%;.canvasWrap{display:block;width:100%;height:100%}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["colorMap","baseUserConfig","dataFill","fillStyle","dataCircle","r","strokeStyle","lineWidth","dataLine","baseRadarConfig","n","dataRadiusOfPercent","dataRadius","angleArr","tooltipsContentArr","originDataSource","radius","constructBaseConfig","dataSource","baseConfig","cloneDeep","length","disAngle","Math","PI","forEach","data","i","value","maxValue","constructUserConfig","userConfig","merge","getDataPointsPos","dataRadiusArr","dataPointsPosArray","curPoinrPos","x","y","sin","cos","push","getPolygonPos","origin","dotsArray","angle","curPos","drawPolygon","context","options","ratio","save","beginPath","translate","moveTo","rotate","lineTo","closePath","stroke","lineCap","Array","gradient","createLinearGradient","colors","addColorStop","fill","restore","drawGradientPolygon","startX","startY","endX","endY","drawVertexLine","dataPoints","map","point","drawLeadLineAndText","offsetX","offsetY","offsetEndX","_dataSource$i","_dataSource$i2","_dataSource$i3","_dataSource$i4","curPosX","curPosMiddleX","curPosEndX","curPosY","rectX","color","rectY","percentValue","legendSize","name","fillRect","textAlign","font","concat","fillText","rectSize","_dataSource$i5","percentSize","drawCircle","originX","originY","arc","lineJoin","drawDataPoly","dataLineOptions","dataFillOptions","dataCircleOptions","dataPointsLen","drawDataLine","dataPointsPosArrayLen","drawDataFill","drawDataCircle","drawRadarBackground","layer","evenFillStyle","Radar","_ref","scale","props","_objectWithoutProperties","_excluded","canvasRef","useRef","contextRef","setBaseConfig","useState","setUserConfig","window","devicePixelRatio","useEffect","canvas","current","getContext","canvasWidth","clientWidth","canvasHeight","clientHeight","width","height","defaultRadius","min","radiusPrecent","timer","drawFrame","requestAnimationFrame","cancelAnimationFrame","clearRect","polygonOuterPointsPosArr","fontSize","textBaseline","React","className","style","ref","___CSS_LOADER_EXPORT___","module","id","toString","source","excluded","key","target","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/6252.d2312cb8.js","mappings":"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","sources":["webpack:///./src/radar-chart/utils.ts","webpack:///./src/radar-chart/radar.tsx","webpack:///./src/radar-chart/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import { cloneDeep, merge } from \"lodash\";\nimport {\n Axis,\n BaseConfig,\n CircleOptions,\n Data,\n DataCircle,\n DataCircleOptions,\n DataFill,\n DataFillProps,\n DataLine,\n DataLineOptions,\n DataPolyProps,\n DrawPolygonOptions,\n DrawRadarBgOption,\n GradientPolygon,\n UserConfig,\n} from \"./interface.js\";\n\nexport const colorMap = [\n \"#5B8FF9\",\n \"#5AD8A6\",\n \"#5D7092\",\n \"#F6BD16\",\n \"#E86452\",\n \"#6DC8EC\",\n \"#945FB9\",\n \"#FF9845\",\n \"#1E9493\",\n \"#FF99C3\",\n]; //chart-v2 的主题色\n\nexport const baseUserConfig: UserConfig = {\n dataFill: {\n fillStyle: \"rgba(76,132,250,0.67)\",\n },\n dataCircle: {\n r: 2,\n strokeStyle: \"#ccc\",\n fillStyle: \"#fff\",\n lineWidth: 0.5,\n },\n dataLine: {\n strokeStyle: \"#0B2EE7\",\n lineWidth: 5,\n },\n};\nexport const baseRadarConfig: BaseConfig = {\n n: 0,\n dataRadiusOfPercent: [],\n dataRadius: [],\n angleArr: [],\n tooltipsContentArr: [],\n originDataSource: [],\n radius: 1,\n};\n/**\n * // 初始化参数配置\n * @param dataSource\n * @param radius\n * @returns BaseConfig\n */\nexport const constructBaseConfig = function (\n dataSource: Data[],\n radius: number\n) {\n const baseConfig: BaseConfig = cloneDeep(baseRadarConfig);\n baseConfig.radius = radius;\n if (dataSource?.length < 1) return baseConfig;\n baseConfig.originDataSource = dataSource;\n baseConfig.n = dataSource.length;\n const disAngle = (Math.PI * 2) / baseConfig.n;\n dataSource.forEach((data, i) => {\n baseConfig.dataRadiusOfPercent[i] = data.value / data.maxValue;\n baseConfig.dataRadius[i] = baseConfig.dataRadiusOfPercent[i] * radius;\n baseConfig.angleArr[i] = i * disAngle;\n });\n return baseConfig;\n};\n\nexport const constructUserConfig = function (\n dataFill: DataFill,\n dataCircle: DataCircle,\n dataLine: DataLine\n) {\n const userConfig: UserConfig = cloneDeep(baseUserConfig);\n merge(userConfig.dataFill, dataFill);\n merge(userConfig.dataCircle, dataCircle);\n merge(userConfig.dataLine, dataLine);\n return userConfig;\n};\n\n/**\n * 获取数据点相对于原点的坐标\n * n:多边形边数\n * dataRadiusArr: 数据点的坐标数组\n * angleArr: 多边形的角度数组\n */\nexport const getDataPointsPos = function (\n n: number,\n dataRadiusArr: number[],\n angleArr: number[]\n) {\n const dataPointsPosArray = [];\n for (let i = 0; i < n; i++) {\n const curPoinrPos: Axis = {\n x: 0,\n y: 0,\n };\n curPoinrPos.x = dataRadiusArr[i] * Math.sin(angleArr[i]);\n curPoinrPos.y = -dataRadiusArr[i] * Math.cos(angleArr[i]);\n dataPointsPosArray.push(curPoinrPos);\n }\n return dataPointsPosArray;\n};\n\n/**\n * 获取正多边形每个点的坐标位置数组(相对于原点)\n * n: 多边形的边数\n * r: 半径\n * origin: 原点位置\n */\nexport const getPolygonPos = function (n: number, r: number, origin: number[]) {\n const dotsArray = []; // 多边形每一个点的坐标数组,格式如[{x: 1, y: 2}]\n const angle = (Math.PI * 2) / n;\n for (let i = 0; i < n; i++) {\n const curPos: Axis = {\n x: 0,\n y: 0,\n };\n curPos.x = r * Math.sin(i * angle) + origin[0];\n curPos.y = -r * Math.cos(i * angle) + origin[1];\n dotsArray.push(curPos);\n }\n return dotsArray;\n};\n\n/**\n * 绘制闭合正多边形\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * fillStyle:填充样式\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawPolygon = function (\n context: CanvasRenderingContext2D,\n options: DrawPolygonOptions\n) {\n // 对传入参数进行默认值设置\n const n = options.n,\n r = options.r,\n origin = options.origin,\n strokeStyle = options.strokeStyle,\n lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n\n context.save();\n context.beginPath();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n context.moveTo(0, -r);\n for (let i = 0; i < n; i++) {\n context.rotate(angle);\n context.lineTo(0, -r);\n }\n context.closePath();\n context.stroke();\n\n if (options.strokeStyle) {\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n }\n if (options.fillStyle) {\n if (typeof options.fillStyle === \"string\") {\n context.fillStyle = options.fillStyle;\n } else if (options.fillStyle instanceof Array) {\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(-r, -r, r, r);\n options.fillStyle.forEach((colors) => {\n gradient.addColorStop(0, colors[0]);\n gradient.addColorStop(1, colors[1]);\n });\n context.fillStyle = gradient;\n }\n\n context.fill();\n }\n context.restore();\n};\n\n/**\n * 绘制线性渐变的多边形,\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawGradientPolygon = function (\n context: CanvasRenderingContext2D,\n options: GradientPolygon\n) {\n // 对传入参数进行默认值设置\n const { n, r, origin, strokeStyle } = options;\n const lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n context.save();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n\n // 设置线条样式\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n // 添加偏移量,使第一条边与正上方对齐\n context.rotate(-Math.PI / 2);\n\n for (let i = 0; i < n; i++) {\n // 计算当前边的起点和终点坐标\n const startX = r * Math.cos(angle * i),\n startY = r * Math.sin(angle * i),\n endX = r * Math.cos(angle * (i + 1)),\n endY = r * Math.sin(angle * (i + 1));\n // 开始一个新的路径\n context.beginPath();\n // 绘制多边形的一条边\n context.moveTo(startX, startY);\n context.lineTo(endX, endY);\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(startX, startY, endX, endY);\n gradient.addColorStop(0, strokeStyle);\n gradient.addColorStop(0.5, \"#1D2B57\");\n gradient.addColorStop(0.6, \"#1D2B57\");\n gradient.addColorStop(1, strokeStyle);\n // 设置当前路径的描边样式为线性渐变\n context.strokeStyle = gradient;\n context.stroke();\n }\n context.restore();\n};\n\n/**\n * 绘制数据点连接线条(一次性画完)\n * dataPoints: 数据的位置数组\n * strokeStyle: 线条样式\n * lineWidth: 线条宽度\n */\nexport const drawDataLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataLineOptions\n) {\n const { strokeStyle, lineWidth, dataPoints } = options;\n const dataPointsLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.stroke();\n context.restore();\n};\n/**\n * 绘制放射性中心点到多边形顶点连线\n * @param context\n * @param origin\n * @param dataPoints 多边形顶点坐标\n */\nexport const drawVertexLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n dataPoints: Axis[]\n) {\n context.save();\n context.beginPath();\n dataPoints.map((point) => {\n context.moveTo(origin[0], origin[1]);\n context.lineTo(point.x, point.y);\n });\n context.strokeStyle = \"#1D2B57\";\n context.lineWidth = 2;\n context.stroke();\n context.restore();\n};\nexport const drawLeadLineAndText = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n r: number,\n dataPoints: Axis[],\n dataSource: Data[]\n) {\n context.save();\n const offsetX = r / 2,\n offsetY = r / 4,\n offsetEndX = r / 12 > 10 ? r / 12 : 10,\n rectSize = 12;\n dataPoints.map((point, i) => {\n let curPosX = point.x,\n curPosMiddleX = point.x,\n curPosEndX = point.x,\n curPosY = point.y,\n rectX = point.x;\n const color = dataSource[i]?.color || colorMap[i] || \"#ccc\";\n context.beginPath();\n context.moveTo(point.x, point.y);\n\n if (point.x - origin[0] >= 0) {\n //引线方向往右\n curPosX += offsetX;\n curPosMiddleX = curPosX + offsetX;\n curPosEndX = curPosMiddleX + offsetEndX;\n rectX = curPosX + rectSize;\n } else if (point.x - origin[0] < 0) {\n //引线方向往左\n curPosX -= offsetX;\n curPosMiddleX = curPosX - offsetX;\n curPosEndX = curPosMiddleX - offsetEndX;\n rectX = curPosMiddleX + rectSize;\n }\n\n if (point.y - origin[1] < 0) {\n curPosY -= offsetY;\n } else if (point.y - origin[1] > 0) {\n curPosY += offsetY;\n }\n context.lineTo(curPosX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = \"rgba(255, 255, 255, .1)\";\n context.stroke();\n context.beginPath();\n context.moveTo(curPosMiddleX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = color;\n context.lineWidth = 2;\n context.stroke();\n\n //文本\n const rectY = dataSource[i]?.percentValue\n ? curPosY - r / 3.5\n : curPosY - r / 5.5;\n const legendSize = r / 12;\n\n if (dataSource[i]?.name) {\n context.fillStyle = color;\n context.fillRect(rectX, rectY, rectSize, rectSize);\n\n context.textAlign = \"left\";\n context.font = `400 ${legendSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"rgba(255, 255, 255, .4)\";\n context.fillText(\n `${dataSource[i].name}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2\n );\n context.stroke();\n }\n if (dataSource[i]?.percentValue) {\n const percentSize = r / 10;\n context.textAlign = \"left\";\n context.font = `500 ${percentSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.fillText(\n `${dataSource[i]?.percentValue}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2 + legendSize * 1.5\n );\n context.stroke();\n }\n });\n context.restore();\n};\n\n/**\n * 绘制数据点圆圈\n * dataPoints: 数据的位置数组\n * r: 圆圈半径\n * strokeStyle: 圆的描边样式\n * fillStyle: 圆的描边宽度\n * lineWidth: 圆的填充样式\n */\nexport const drawDataCircle = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataCircleOptions\n) {\n const { strokeStyle, fillStyle, dataPoints } = options;\n const r = options.r * ratio,\n lineWidth = options.lineWidth * ratio;\n\n const dataPointsPosArrayLen = dataPoints.length;\n for (let i = 0; i < dataPointsPosArrayLen; i++) {\n drawCircle(context, {\n x: dataPoints[i].x,\n y: dataPoints[i].y,\n r: r,\n originX: origin[0],\n originY: origin[1],\n strokeStyle: strokeStyle,\n lineWidth: lineWidth,\n fillStyle: fillStyle,\n });\n }\n};\n\n/**\n * 绘制圆圈\n * x: 圆心位置x\n * y: 圆心位置y\n * r: 半径\n * originX: 原点位置x\n * originY: 原点位置y\n * strokeStyle: 描边样式\n * lineWidth: 线条宽度\n * fillStyle: 填充样式\n */\nexport function drawCircle(\n context: CanvasRenderingContext2D,\n options: CircleOptions\n) {\n const { x, y, r, originX, originY, strokeStyle, lineWidth, fillStyle } =\n options;\n context.save();\n context.beginPath();\n context.translate(originX, originY);\n context.arc(x, y, r, 0, Math.PI * 2);\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.fillStyle = fillStyle;\n context.stroke();\n context.fill();\n context.restore();\n}\n\n/**\n * 绘制数据多边形填充\n * dataPoints: 数据的位置数组\n * fillStyle: 填充样式\n */\nexport const drawDataFill = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataFillProps\n) {\n const { fillStyle, dataPoints } = options;\n const dataPointsPosArrayLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsPosArrayLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.fillStyle = fillStyle;\n context.fill();\n context.restore();\n};\n\n/**\n * 绘制数据点组成的图案\n * dataLineOptions\n * dataFillOptions\n * dataCircleOptions\n */\nexport const drawDataPoly = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataPolyProps\n) {\n const { dataLineOptions, dataFillOptions, dataCircleOptions } = options;\n const dataPointsPosArrayLen = dataLineOptions.dataPoints.length;\n if (dataPointsPosArrayLen === 0) return;\n // 绘制数据点连接线条\n drawDataLine(context, origin, dataLineOptions);\n // 绘制数据多边形填充\n drawDataFill(context, origin, dataFillOptions);\n // 绘制数据点圆圈\n drawDataCircle(context, origin, ratio, dataCircleOptions);\n};\n\n/**\n * 绘制雷达的背景图\n * 参数options对象的属性如下:\n * layer: 多边形层数\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * oddStrokeStyle: index为奇数的多边形的描边颜色\n * oddFillStyle: index为奇数的多边形的填充颜色\n * evenStrokeStyle: index为偶数的多边形的描边颜色\n * evenFillStyle: index为偶数的多边形的填充颜色\n */\nexport const drawRadarBackground = function (\n context: CanvasRenderingContext2D,\n options: DrawRadarBgOption\n) {\n const { layer, n, r, ratio, origin, lineWidth } = options;\n const evenStrokeStyle = \"transparent\",\n oddStrokeStyle = \"transparent\",\n evenFillStyle = [[\"#3366FF\", \"#83F5E1\"]],\n oddFillStyle = \"#29292d\";\n // 由外向内绘画多边形\n for (let i = layer; i > 0; i--) {\n if (i === layer) {\n drawGradientPolygon(context, {\n n,\n r,\n origin,\n ratio,\n lineWidth,\n strokeStyle: \"rgba(51, 102, 255)\",\n });\n drawGradientPolygon(context, {\n n,\n r: r * 0.95,\n origin,\n ratio,\n strokeStyle: \"rgba(76,132,250,0.1)\",\n lineWidth,\n });\n } else {\n const layerDis = (r * 0.95) / layer;\n const fillStyle = i % 2 != 0 ? oddFillStyle : evenFillStyle,\n strokeStyle = i % 2 != 0 ? oddStrokeStyle : evenStrokeStyle,\n layerRadiu = layerDis * i;\n drawPolygon(context, {\n n,\n r: layerRadiu,\n origin,\n fillStyle,\n strokeStyle,\n lineWidth,\n ratio,\n });\n }\n }\n};\n","import React, { ReactElement, useEffect, useRef, useState } from \"react\";\nimport {\n baseRadarConfig,\n baseUserConfig,\n constructBaseConfig,\n constructUserConfig,\n drawDataPoly,\n drawLeadLineAndText,\n drawRadarBackground,\n drawVertexLine,\n getDataPointsPos,\n getPolygonPos,\n} from \"./utils.js\";\nimport { BaseConfig, RadarProps, UserConfig } from \"./interface.js\";\n\nexport function Radar({\n dataSource,\n radius,\n value,\n dataFill,\n dataCircle,\n dataLine,\n scale,\n ...props\n}: RadarProps): ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D>(null);\n const [baseConfig, setBaseConfig] = useState<BaseConfig>(baseRadarConfig);\n const [userConfig, setUserConfig] = useState<UserConfig>(baseUserConfig);\n\n const ratio = window.devicePixelRatio;\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n const canvasWidth = canvas.clientWidth;\n const canvasHeight = canvas.clientHeight;\n // 根据设备像素比调整画布的实际像素大小\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n const defaultRadius = Math.min(canvas.width, canvas.height) * scale; // 正多边形的默认半径\n\n contextRef.current = context;\n setBaseConfig(constructBaseConfig(dataSource, radius ?? defaultRadius));\n }, [dataSource, radius, scale]);\n useEffect(() => {\n setUserConfig(constructUserConfig(dataFill, dataCircle, dataLine));\n }, [dataFill, dataCircle, dataLine]);\n\n useEffect(() => {\n let radiusPrecent = 0,\n timer = null;\n const canvas = canvasRef.current;\n const context = contextRef.current;\n const origin = [canvas.width / 2, canvas.height / 2];\n\n if (context) {\n // 起requestAnimationFrame为了数值绘制区域有过渡效果\n const drawFrame = () => {\n timer = window.requestAnimationFrame(drawFrame);\n // 数据点坐标元素\n radiusPrecent += 0.05;\n if (radiusPrecent >= 1) {\n window.cancelAnimationFrame(timer);\n }\n // 清空画布\n context.clearRect(0, 0, canvas.width, canvas.height);\n // 绘制背景图\n drawRadarBackground(context, {\n layer: 5,\n n: baseConfig.n,\n r: baseConfig.radius,\n ratio,\n origin,\n lineWidth: 2,\n });\n\n const dataRadius = baseConfig.dataRadius.map((value) => {\n return value * radiusPrecent;\n });\n const dataPointsPosArray = getDataPointsPos(\n baseConfig.n,\n dataRadius,\n baseConfig.angleArr\n );\n const dataLineOptions = {\n dataPoints: dataPointsPosArray,\n strokeStyle: userConfig.dataLine.strokeStyle,\n lineWidth: userConfig.dataLine.lineWidth,\n };\n const dataCircleOptions = {\n dataPoints: dataPointsPosArray,\n r: userConfig.dataCircle.r,\n strokeStyle: userConfig.dataCircle.strokeStyle,\n fillStyle: userConfig.dataCircle.fillStyle,\n lineWidth: userConfig.dataCircle.lineWidth,\n };\n const dataFillOptions = {\n dataPoints: dataPointsPosArray,\n fillStyle: userConfig.dataFill.fillStyle,\n };\n drawDataPoly(context, origin, ratio, {\n dataLineOptions: dataLineOptions,\n dataFillOptions: dataFillOptions,\n dataCircleOptions: dataCircleOptions,\n });\n\n //绘制放射性中心点到多边形顶点连线\n const polygonOuterPointsPosArr = getPolygonPos(\n baseConfig.n,\n baseConfig.radius,\n origin\n );\n drawVertexLine(context, origin, polygonOuterPointsPosArr);\n drawLeadLineAndText(\n context,\n origin,\n baseConfig.radius,\n polygonOuterPointsPosArr,\n baseConfig.originDataSource\n );\n if (value) {\n const fontSize = baseConfig.radius / 5;\n context.font = `bold ${fontSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillText(`${value}`, origin[0], origin[1]);\n }\n };\n drawFrame();\n }\n }, [baseConfig, userConfig, value]);\n\n return (\n <div\n className=\"radarWrap\"\n style={{ width: `${props.width}px`, height: `${props.height}px` }}\n >\n <canvas className=\"canvasWrap\" ref={canvasRef} />\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radarWrap{position:relative;width:100%;height:100%}.radarWrap .canvasWrap{display:block;width:100%;height:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["colorMap","baseUserConfig","dataFill","fillStyle","dataCircle","r","strokeStyle","lineWidth","dataLine","baseRadarConfig","n","dataRadiusOfPercent","dataRadius","angleArr","tooltipsContentArr","originDataSource","radius","constructBaseConfig","dataSource","baseConfig","cloneDeep","length","disAngle","Math","PI","forEach","data","i","value","maxValue","constructUserConfig","userConfig","merge","getDataPointsPos","dataRadiusArr","dataPointsPosArray","curPoinrPos","x","y","sin","cos","push","getPolygonPos","origin","dotsArray","angle","curPos","drawPolygon","context","options","ratio","save","beginPath","translate","moveTo","rotate","lineTo","closePath","stroke","lineCap","Array","gradient","createLinearGradient","colors","addColorStop","fill","restore","drawGradientPolygon","startX","startY","endX","endY","drawVertexLine","dataPoints","map","point","drawLeadLineAndText","offsetX","offsetY","offsetEndX","_dataSource$i","_dataSource$i2","_dataSource$i3","_dataSource$i4","curPosX","curPosMiddleX","curPosEndX","curPosY","rectX","color","rectY","percentValue","legendSize","name","fillRect","textAlign","font","concat","fillText","rectSize","_dataSource$i5","percentSize","drawCircle","originX","originY","arc","lineJoin","drawDataPoly","dataLineOptions","dataFillOptions","dataCircleOptions","dataPointsLen","drawDataLine","dataPointsPosArrayLen","drawDataFill","drawDataCircle","drawRadarBackground","layer","evenFillStyle","Radar","_ref","scale","props","_objectWithoutProperties","_excluded","canvasRef","useRef","contextRef","setBaseConfig","useState","setUserConfig","window","devicePixelRatio","useEffect","canvas","current","getContext","canvasWidth","clientWidth","canvasHeight","clientHeight","width","height","defaultRadius","min","radiusPrecent","timer","drawFrame","requestAnimationFrame","cancelAnimationFrame","clearRect","polygonOuterPointsPosArr","fontSize","textBaseline","React","className","style","ref","___CSS_LOADER_EXPORT___","module","id","toString","source","excluded","key","target","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""}
|