{"version":3,"file":"js/chunk-vendors-c4dcd1a9.d8700ca2.js","mappings":"6TAiCIA,EAA+B,SAAUC,GAKzC,SAASD,IACL,IAAIE,EAAQD,EAAOE,KAAKC,OAASA,KAGjC,OAFAF,EAAMG,UAAY,gBAClBH,EAAMI,aACCJ,CACX,CACA,OAVA,QAAUF,EAAeC,GAUlBD,CACX,CAZkC,CAYhC,KAcEO,EAAuB,SAAUN,GAKjC,SAASM,IACL,IAAIL,EAEJD,EAAOE,KAAKC,OAASA,KAMrB,GADAF,EAAMM,QAAU,IAAI,KAChBN,EAAMO,cAAgBF,EACtB,MAAM,IAAIG,MAAM,8EAEpBR,EAAMG,UAAY,QAElB,IAAIM,EAAW,IAAI,IACnBT,EAAMU,OAAS,IAAI,IAAaD,GAChCT,EAAMW,WAAWC,KAAK,IAAI,KAAaZ,EAAMU,SAC7CV,EAAMW,WAAWC,KAAKH,GAEtBT,EAAMa,OAAQ,QAAQ,KACtBb,EAAMc,QAAS,QAAQ,KACvBd,EAAMe,OAAS,WAEf,IAAIC,EAA0BhB,EAAMiB,YAAY,KAChDD,EAAwBE,aAAc,EACtCF,EAAwBD,OAAS,WACjCC,EAAwBH,OAAQ,QAAQ,KACxCG,EAAwBF,QAAS,QAAQ,KACzCd,EAAMgB,wBAA0BA,EAEhC,IAAIG,EAAiBH,EAAwBC,YAAY,KAyBzD,OAxBAE,EAAeD,aAAc,EAC7BC,EAAeN,OAAQ,QAAQ,KAC/BM,EAAeL,QAAS,QAAQ,KAChCd,EAAMmB,eAAiBA,EACvBnB,EAAMoB,YAAa,EACnBpB,EAAMW,WAAWC,KAAKZ,EAAMM,SAG5BN,EAAMU,OAAOW,OAAOC,GAAG,YAAY,SAAUC,GACzCvB,EAAMwB,aAAaD,GACnBvB,EAAMyB,6BACV,GAAGzB,GAAO,GACVA,EAAMU,OAAOW,OAAOC,GAAG,WAAW,SAAUC,GACxCvB,EAAMyB,6BACV,GAAGzB,GAAO,GAMVA,EAAM0B,KAAO,SACb1B,EAAM2B,aAAaC,mBAAqB,EAExC5B,EAAMI,aACCJ,CACX,CA6OA,OAzSA,QAAUK,EAAON,GAiEjBM,EAAMwB,UAAUC,sBAAwB,WACpC/B,EAAO8B,UAAUC,sBAAsB7B,KAAKC,MACvC,KAAeA,KAAK6B,eACrB7B,KAAK6B,YAAc7B,KAAK8B,SAASC,UAAU,SAEnD,EAMA5B,EAAMwB,UAAUK,KAAO,WACnBhC,KAAKiC,YACLpC,EAAO8B,UAAUK,KAAKjC,KAAKC,KAC/B,EAIAG,EAAMwB,UAAUM,UAAY,WACxB,IAAIC,EAASlC,KAAKkC,OAClB,GAAIA,EAAQ,CACR,IAAIpB,EAA0Bd,KAAKc,wBAC/BG,EAAiBjB,KAAKiB,eAO1B,OANAA,EAAekB,OAAIC,EACnBnB,EAAeoB,OAAID,EACI,YAAnBF,EAAOI,WACPJ,EAAOC,OAAIC,EACXF,EAAOG,OAAID,GAEPF,EAAOI,UACX,IAAK,OACDxB,EAAwBD,OAAS,aACjCqB,EAAOK,SACP,MACJ,IAAK,QACDzB,EAAwBD,OAAS,aACjCqB,EAAOM,UACP,MACJ,IAAK,MACD1B,EAAwBD,OAAS,WACjCqB,EAAOK,SACP,MACJ,IAAK,SACDzB,EAAwBD,OAAS,WACjCqB,EAAOM,UACP,MACJ,IAAK,WACDN,EAAOO,YAAa,EACpB,MAEZ,CACJ,EAIAtC,EAAMwB,UAAUe,WAAa,WAG7B,EAOAvC,EAAMwB,UAAUL,aAAe,SAAUqB,GACrC,IAAIC,EAAQD,EAAME,SAQlB,OAPAD,EAAME,OAAS9C,KACf4C,EAAML,SACNK,EAAM5B,aAAc,EACpB4B,EAAMG,MAAQ,SAGdH,EAAMI,UACCJ,CACX,EAQAzC,EAAMwB,UAAUJ,4BAA8B,WAC1C,GAAIvB,KAAKQ,OAAOyC,OAAQ,CACpB,IAAIC,EAAa,GACjB,KAAWlD,KAAKQ,OAAO2C,YAAY,SAAUP,GACzCM,EAAWxC,KAAKkC,EAAMQ,IAC1B,IACApD,KAAKqD,gBAAgB,CAAE,kBAAmBH,EAAWI,KAAK,MAC9D,MAEItD,KAAKuD,mBAAmB,kBAEhC,EACAC,OAAOC,eAAetD,EAAMwB,UAAW,SAAU,CAI7C+B,IAAK,WACD,OAAO1D,KAAKI,QAAQsD,KACxB,EAOAC,IAAK,SAAUzB,GACXlC,KAAK4D,UAAU1B,EACnB,EACA2B,YAAY,EACZC,cAAc,IAOlB3D,EAAMwB,UAAUiC,UAAY,SAAU1B,GAClC,IAAIpC,EAAQE,KACRA,KAAKI,QAAQsD,QAAUxB,IACnBA,GAEAA,EAAOY,OAAS9C,KAAKc,wBACrBd,KAAKI,QAAQuD,IAAIzB,EAAQA,EAAOf,OAAOC,GAAG,mBAAmB,SAAUuB,GAC7C,YAAlBA,EAAMoB,UACNjE,EAAMmC,WAEd,QAAGG,GAAW,IACdF,EAAO8B,YAAY,IAAI,MAAS,WAC5BlE,EAAMoC,YAASE,CACnB,MAGApC,KAAKI,QAAQ6D,QAEjBjE,KAAK0C,aAEb,EAIAvC,EAAMwB,UAAUuC,QAAU,WAElBlE,KAAKkC,QACLlC,KAAKkC,OAAOgC,UAEhBrE,EAAO8B,UAAUuC,QAAQnE,KAAKC,KAClC,EAOAG,EAAMwB,UAAUwC,cAAgB,SAAUC,GAClCA,GAEI,KAAeA,EAAOlC,UAAY,KAAekC,EAAOlC,OAAOmC,QAC/DD,EAAOlC,OAAOmC,KAAO,UAG7BxE,EAAO8B,UAAUwC,cAAcpE,KAAKC,KAAMoE,EAC9C,EAMAjE,EAAMwB,UAAU2C,SAAW,SAAUC,GACjCvE,KAAKQ,OAAO8D,SAASC,EAAO/D,QAC5BR,KAAKiB,eAAeqD,SAASC,EAAOtD,gBAChCsD,EAAOrC,SACPlC,KAAKkC,OAASqC,EAAOrC,OAAOsC,QAC5BxE,KAAKkC,OAAOuC,kBAEhB5E,EAAO8B,UAAU2C,SAASvE,KAAKC,KAAMuE,EACzC,EACAf,OAAOC,eAAetD,EAAMwB,UAAW,WAAY,CAI/C+B,IAAK,WACD,IAAI5D,EAAQE,KACZ,IAAKA,KAAK0E,UAAW,CACjB,IAAIC,EAAS3E,KAAK4E,iBAAiB7D,YAAY,KAC/C4D,EAAO5B,MAAQ,QACf4B,EAAOE,OAAS,SAChBF,EAAOG,KAAK,GACZH,EAAOxD,OAAOC,GAAG,QAAQ,SAAU2D,GAC3BA,EAAGC,QACHlF,EAAMmF,qBAAsB,EAEpC,IACAN,EAAOxD,OAAOC,GAAG,MAAM,SAAU2D,GAC7BjF,EAAMmF,qBAAsB,CAChC,IACAjF,KAAKmB,OAAOC,GAAG,QAAQ,SAAU2D,GACzBA,EAAGC,OACHL,EAAOO,MAEf,IACAlF,KAAK0E,UAAYC,CACrB,CACA,OAAO3E,KAAK0E,SAChB,EAUAf,IAAK,SAAUwB,GACXnF,KAAK0E,UAAYS,CACrB,EACAtB,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAetD,EAAMwB,UAAW,YAAa,CAChD+B,IAAK,WACD,OAAO1D,KAAK8C,OAAOsC,SACvB,EACAzB,IAAK,SAAUwB,GACXnF,KAAK8C,OAAOsC,UAAYD,CAC5B,EACAtB,YAAY,EACZC,cAAc,IAEX3D,CACX,CA3S0B,CA2SxB,KAQF,4BAAsCA,EAOtC,UAAkB,CACdkF,SAAU,aACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBpF,EAAO,CACzB,IAAImF,EAAQC,EAAOE,OAAOC,OAAOF,GAOjC,OANID,EAAOI,iBAAmB,KAC1BL,EAAMM,WAAWC,YAAc,IAE/BN,EAAOO,kBAAoB,KAC3BR,EAAMM,WAAWG,aAAe,IAE7BT,CACX,CACA,OAAO,IACX,IAKJ,UAAkB,CACdD,SAAU,cACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBpF,EAAO,CACzB,IAAImF,EAAQC,EAAOE,OAAOC,OAAOF,GAOjC,OANID,EAAOS,gBAAkB,KACzBV,EAAMM,WAAWK,WAAa,IAE9BV,EAAOW,mBAAqB,KAC5BZ,EAAMM,WAAWO,cAAgB,IAE9Bb,CACX,CACA,OAAO,IACX,IAKJ,UAAkB,CACdD,SAAU,cACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBpF,EAAO,CACzB,IAAImF,EAAQC,EAAOE,OAAOC,OAAOF,GAGjC,OAFAF,EAAMM,WAAWC,YAAc,EAC/BP,EAAMM,WAAWG,aAAe,EACzBT,CACX,CACA,OAAO,IACX,IAKJ,UAAkB,CACdD,SAAU,eACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBpF,EAAO,CACzB,IAAImF,EAAQC,EAAOE,OAAOC,OAAOF,GAGjC,OAFAF,EAAMM,WAAWK,WAAa,EAC9BX,EAAMM,WAAWO,cAAgB,EAC1Bb,CACX,CACA,OAAO,IACX,G,ySC5YAc,EAAgC,SAAUvG,GAK1C,SAASuG,IACL,IAAItG,EAAQD,EAAOE,KAAKC,OAASA,KAOjC,OAHAF,EAAMuG,iBAAkB,EACxBvG,EAAMG,UAAY,iBAClBH,EAAMI,aACCJ,CACX,CA0MA,OAvNA,QAAUsG,EAAgBvG,GAc1B2D,OAAOC,eAAe2C,EAAezE,UAAW,QAAS,CAMrD+B,IAAK,WACD,IAAI5D,EAAQE,KACZ,IAAKA,KAAKsG,OAAQ,CACd,IAAIC,EAAUvG,KAAKwG,UAAUC,OAAOf,SACpC1F,KAAKsG,OAASC,EACdvG,KAAK0G,UAAUH,GACfvG,KAAKS,WAAWC,KAAK6F,GACrBA,EAAQzD,OAAS9C,KAAK2G,cACtB3G,KAAKS,WAAWC,KAAK,IAAI,MAAS,WAC1B,KAAeZ,EAAM0G,YACrB1G,EAAM0G,UAAUC,OAAOG,YAAYL,EAE3C,IACJ,CACA,OAAOvG,KAAKsG,MAChB,EACAzC,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAe2C,EAAezE,UAAW,QAAS,CAIrD+B,IAAK,WACD,OAAO1D,KAAK4F,WAAWiB,KAC3B,EA8BAlD,IAAK,SAAUwB,GACXnF,KAAK8G,YAAY,QAAS3B,EAC9B,EACAtB,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAe2C,EAAezE,UAAW,aAAc,CAM1D+B,IAAK,WACD,IAAI5D,EAAQE,KACZ,IAAKA,KAAK+G,YAAa,CACnB,IAAIC,EAAehH,KAAKwG,UAAUS,YAAYvB,SAC9C1F,KAAK+G,YAAcC,EACnBhH,KAAK0G,UAAUM,GACfhH,KAAKS,WAAWC,KAAKsG,GACrBA,EAAalE,OAAS9C,KAAK2G,cAC3B3G,KAAKS,WAAWC,KAAK,IAAI,MAAS,WAC1B,KAAeZ,EAAM0G,YACrB1G,EAAM0G,UAAUS,YAAYL,YAAYI,EAEhD,IACJ,CACA,OAAOhH,KAAK+G,WAChB,EACAlD,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAe2C,EAAezE,UAAW,gBAAiB,CAO7D+B,IAAK,WACD,IAAI5D,EAAQE,KACZ,IAAKA,KAAKkH,eAAgB,CACtB,IAAIC,EAAcnH,KAAKwG,UACnBY,EAAkBD,EAAYE,eAAe3B,SACjD0B,EAAgBtE,OAASqE,EACzBnH,KAAKkH,eAAiBE,EACtBpH,KAAK0G,UAAUU,GACfpH,KAAKS,WAAWC,KAAK0G,GAEjBA,EAAgBE,WAChBF,EAAgBjG,OAAOC,GAAG,WAAW,SAAU2D,GAC3CoC,EAAYI,eAAexC,EAAGQ,OAAOiC,SACzC,QAAGpF,GAAW,GAIdgF,EAAgBhC,YAChBgC,EAAgBjG,OAAOC,GAAG,OAAO,SAAU2D,GAGvCoC,EAAYM,iBAAcrF,CAC9B,QAAGA,GAAW,GACdgF,EAAgBjG,OAAOC,GAAG,SAAS,SAAU2D,GACzCoC,EAAYM,YAAc1C,EAAGQ,OAAOiC,QACxC,QAAGpF,GAAW,GACdgF,EAAgBjG,OAAOC,GAAG,QAAQ,SAAU2D,GACxCoC,EAAYM,iBAAcrF,CAC9B,QAAGA,GAAW,IAElBpC,KAAKS,WAAWC,KAAK,IAAI,MAAS,WAC1B,KAAeZ,EAAM0G,YACrB1G,EAAM0G,UAAUa,eAAeT,YAAYQ,EAEnD,KACIpH,KAAK0H,YAAY1E,UACjBoE,EAAgBO,eAAiB3H,KAAK0H,YAAY1E,UAClDoE,EAAgBQ,iBAAmB5H,KAAK0H,YAAY1E,WAExD,IAAI6E,EAAS7H,KAAK0H,YAClB,IAAKG,aAAkB,KAAYA,aAAkB,QAAYA,EAAOC,aAAc,CAClF,IAAIC,EAAoB,SAAUhD,GAC9BqC,EAAgBY,cAAgBjD,EAAGkD,QACnCb,EAAgBjG,OAAO+G,YAAY,WACnCd,EAAgBe,UAAYpD,EAAGkD,QAC/Bb,EAAgBjG,OAAOiH,WAAW,UACtC,EACAP,EAAO7D,YAAY,IAAI,MAAS,WACxBlE,EAAM0G,WACN1G,EAAM0G,UAAU6B,UAAUC,OAAOxI,EAEzC,KACI+H,aAAkB,MAClBT,EAAgBpD,YAAY6D,EAAO1G,OAAOC,GAAG,oBAAqB2G,OAAmB3F,GAAW,IAChGgF,EAAgBpD,YAAY6D,EAAO1G,OAAOC,GAAG,UAAU,SAAU2D,GAC7DqC,EAAgBY,eAAgB,EAChCZ,EAAgBjG,OAAO+G,YAAY,WACnCd,EAAgBe,UAAW,EAC3Bf,EAAgBjG,OAAOiH,WAAW,UACtC,QAAGhG,GAAW,IACdgF,EAAgBpD,YAAY6D,EAAO1G,OAAOC,GAAG,SAAS,SAAU2D,GAC5DqC,EAAgBY,eAAgB,EAChCZ,EAAgBjG,OAAO+G,YAAY,WACnCd,EAAgBe,UAAW,EAC3Bf,EAAgBjG,OAAOiH,WAAW,UACtC,QAAGhG,GAAW,KAGdgF,EAAgBpD,YAAY6D,EAAO1G,OAAOC,GAAG,oBAAqB2G,OAAmB3F,GAAW,GAExG,CACJ,CACA,OAAOpC,KAAKkH,cAChB,EACArD,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAe2C,EAAezE,UAAW,SAAU,CAMtD+B,IAAK,WACD,IAAI5D,EAAQE,KACZ,IAAKA,KAAKuI,QAAS,CACf,IAAIC,EAAWxI,KAAKwG,UAAUiC,QAAQ/C,SACtC1F,KAAKuI,QAAUC,EACfA,EAAS1F,OAAS9C,KAAK2G,cACvB3G,KAAK0G,UAAU8B,GACfxI,KAAKS,WAAWC,KAAK8H,GACrBxI,KAAKS,WAAWC,KAAK,IAAI,MAAS,WAC1B,KAAeZ,EAAM0G,YACrB1G,EAAM0G,UAAUiC,QAAQ7B,YAAY4B,EAE5C,IACJ,CACA,OAAOxI,KAAKuI,OAChB,EACA1E,YAAY,EACZC,cAAc,IAEXsC,CACX,CAzNmC,CAyNjC,KAiBEsC,EAAgC,WAChC,SAASA,IAIL1I,KAAK2I,cAAe,CACxB,CACA,OAAOD,CACX,CARmC,GAuB/BE,EAAwB,SAAU/I,GAKlC,SAAS+I,IACL,IAAI9I,EAAQD,EAAOE,KAAKC,OAASA,KACjCF,EAAMG,UAAY,SAElBH,EAAMe,OAAS,OACff,EAAM+I,iBAAiB,oBAAoB,GAC3C/I,EAAM+I,iBAAiB,cAAc,GACrC/I,EAAM+I,iBAAiB,eAAgB,UAEvC,IAAIlC,EAAgB,IAAI,IACxBA,EAAcmC,eAAgB,EAC9BnC,EAAcoC,QAAQ,EAAG,EAAG,EAAG,GAC/BpC,EAAcqC,OAAO,EAAG,GAAI,EAAG,IAC/BrC,EAAc9F,OAAS,aACvB8F,EAAcsC,WAAY,EAC1BtC,EAAcvB,WAAY,EAC1BuB,EAAcnF,KAAO,SACrBmF,EAAcW,WAAY,EAC1BX,EAAcuC,gBAAkB,YAChCvC,EAAcwC,WAAWC,YAAc,EAEvCtJ,EAAMuH,eAAiB,IAAI,IAAaV,GACxC7G,EAAMW,WAAWC,KAAK,IAAI,KAAaZ,EAAMuH,iBAC7CvH,EAAMW,WAAWC,KAAKZ,EAAMuH,eAAe9G,UAE3CT,EAAMW,WAAWC,MAAK,SAAiB2I,KAAKlI,OAAOC,GAAG,SAAS,SAAU2D,GACrE,GAAI,UAAeA,EAAGpC,MAAO,UAAY7C,EAAM2H,YAAa,CACxD,IAAIA,EAAc3H,EAAM2H,YACpBlC,EAASkC,EAAYd,cACrBpB,EAAO+B,UACPxH,EAAMyH,eAAeE,GAEhBlC,EAAO0D,WAAa1D,EAAOpE,OAAOmI,UAAU,SACjD/D,EAAOgE,oBAAoB,MAAO,CAAE5G,MAAOoC,IAG3CjF,EAAM2H,YAAcA,EAE5B,CACJ,GAAG3H,IACH,IAAI0J,EAAkB,IAAI,IAEtBC,EAAS,IAAI,IACjBA,EAAO9I,MAAQ,GACf8I,EAAO7I,OAAS,GAChB6I,EAAOxE,qBAAsB,EAC7BwE,EAAOX,eAAgB,EACvBW,EAAOC,oBAAqB,EAC5BD,EAAON,WAAWC,YAAc,EAChCK,EAAON,WAAWQ,cAAgB,EAClCF,EAAOG,eAAeC,KAAO,OAC7BJ,EAAO5E,OAAS,SAChB,IAAIiF,EAAgBN,EAAgBO,OAAO,sBAC3CN,EAAOtI,OAAOC,GAAG,cAAc,SAAUuB,GACrC,IAAIqH,EAAQrH,EAAME,SACdoH,EAAcD,EAAMvE,OAAOC,OAAO,UACtCuE,EAAYrE,WAAWsE,OAASJ,EAChCG,EAAYrE,WAAWiE,KAAOC,CAClC,IACAhK,EAAM2I,QAAU,IAAI,IAAagB,GACjC3J,EAAMW,WAAWC,KAAK,IAAI,KAAaZ,EAAM2I,UAC7C3I,EAAMW,WAAWC,KAAKZ,EAAM2I,QAAQlI,UAEpC,IAAI4J,EAAYV,EAAO1I,YAAY,KACnCoJ,EAAUxJ,OAAQ,QAAQ,KAC1BwJ,EAAUvJ,QAAS,QAAQ,KAC3BuJ,EAAUrB,eAAgB,EAC1BqB,EAAUP,eAAeC,KAAO,OAChCM,EAAUR,cAAgB,EAE1B,IAAItI,EAAQ,IAAI,IAChBA,EAAM+I,KAAO,SACb/I,EAAM2H,OAAO,EAAG,EAAG,EAAG,GACtB3H,EAAMwD,OAAS,SACfxD,EAAMyH,eAAgB,EACtBzH,EAAMoE,OAAOC,OAAO,UAAUE,WAAWiE,KAAOL,EAAgBO,OAAO,sBACvEjK,EAAM2G,OAAS,IAAI,IAAapF,GAChCvB,EAAMW,WAAWC,KAAK,IAAI,KAAaZ,EAAM2G,SAC7C3G,EAAMW,WAAWC,KAAKZ,EAAM2G,OAAOlG,UACnCc,EAAM4D,qBAAsB,EAC5B5D,EAAMgJ,UAAW,EACjBhJ,EAAMiJ,WAAY,EAElB,IAAIC,EAAa,IAAI,IAoBrB,OAnBAA,EAAWvB,OAAO,EAAG,EAAG,EAAG,GAC3BuB,EAAW1F,OAAS,SACpB0F,EAAW5J,MAAQ,GACnB4J,EAAWxH,MAAQ,QACnBwH,EAAWC,UAAY,MACvBD,EAAWzB,eAAgB,EAC3ByB,EAAW9E,OAAOC,OAAO,UAAUE,WAAWiE,KAAOL,EAAgBO,OAAO,sBAC5EQ,EAAWtF,qBAAsB,EACjCnF,EAAMmH,YAAc,IAAI,IAAasD,GACrCzK,EAAMW,WAAWC,KAAK,IAAI,KAAaZ,EAAMmH,cAC7CnH,EAAMW,WAAWC,KAAKZ,EAAMmH,YAAY1G,UACxCT,EAAMwC,SAAW,SAEjBqE,EAAclB,OAAOC,OAAO,UAC5BiB,EAAc+C,oBAAqB,EAEnC5J,EAAM0B,KAAO,QACb1B,EAAMqB,OAAOC,GAAG,kBAAmBtB,EAAM2K,gBAAiB3K,GAAO,GACjEA,EAAMI,aACCJ,CACX,CAiZA,OA7fA,QAAU8I,EAAQ/I,GAiHlB+I,EAAOjH,UAAUC,sBAAwB,WACrC/B,EAAO8B,UAAUC,sBAAsB7B,KAAKC,MACvC,KAAeA,KAAK6B,eACrB7B,KAAK6B,YAAc7B,KAAK8B,SAASC,UAAU,UAEnD,EAOA6G,EAAOjH,UAAU+I,eAAiB,WAC9B,OAAO,IAAItE,CACf,EAOAwC,EAAOjH,UAAUgJ,qBAAuB,WAChC3K,KAAK4K,YACL5K,KAAK4K,UAAUC,MAAQ,EACvB7K,KAAK4K,UAAUE,IAAM,GAEzBjL,EAAO8B,UAAUgJ,qBAAqB5K,KAAKC,KAC/C,EAUA4I,EAAOjH,UAAUoJ,oBAAsB,SAAUvD,GAC7C3H,EAAO8B,UAAUoJ,oBAAoBhL,KAAKC,KAAMwH,GAEhD,IAAIwD,EAAYxD,EAASb,cACrB8C,EAASjC,EAASiC,OACtB,KAAYjC,EAASnG,OACrB,IAAIkJ,EAAa/C,EAAS+C,WAE1BS,EAAUhD,cAAgBR,EAASE,YAAYO,QAE/CT,EAASE,YAAYuD,eAAiBzD,EACtC,IAAI0D,EAAe1D,EAASnG,MAAM8J,SAC5B3D,EAASnG,MAAMV,iBAAiB,OAClC6G,EAASnG,MAAMV,WAAQyB,GAEvB8I,EAAe,IACf1D,EAASnG,MAAM8J,SAAWD,GAEN,SAApBX,EAAWxH,QACXwH,EAAW5J,WAAQyB,GAEvB,IAAIgJ,EAAiB5D,EAASE,YAAY0D,eAGtC1D,EAAcF,EAASE,aACvBA,EAAY2D,oBAAwBrL,KAAKsL,kBAAsB5D,aAAuB,KAOtF1H,KAAKyI,QAAQlI,SAASqJ,eAAeC,UAAOzH,EANvCoF,EAASnB,kBACVqB,EAAY2D,mBAAmB5B,GAC/BjC,EAASnB,iBAAkB,GAM/BqB,EAAY6D,mBACZ7D,EAAY6D,oBAEZ7D,EAAYlB,WAAakB,EAAYlB,UAAU+E,mBAC/C7D,EAAYlB,UAAU+E,kBAAkB7D,GAExC6C,EAAWiB,SACXjB,EAAWkB,WAEQ,IAAnBlB,EAAWH,WAAiChI,GAAnBmI,EAAWH,KACpCG,EAAWmB,YAAa,EAGxBnB,EAAWmB,YAAa,GAExBN,QAAmDhJ,GAAhCgJ,EAAeO,oBAA0DvJ,GAA5BgJ,EAAeQ,YAC/ErB,EAAWmB,YAAa,GAE5B,IAAIzD,EAAUT,EAASE,YAAYO,aACnB7F,IAAZ6F,IACAA,GAAU,GAEdA,EAAU,KAAgBA,GAC1BT,EAASE,YAAYO,QAAUA,EAC/B+C,EAAU7J,OAAO+G,YAAY,WAC7B8C,EAAU7C,UAAYF,EAClB+C,EAAU7C,SACV6C,EAAUa,SAAS,SAAU,GAG7Bb,EAAUa,SAAS,UAAW,GAElCb,EAAU7J,OAAOiH,WAAW,UAChC,EACAQ,EAAOjH,UAAUmK,UAAY,WACzB,IAAIhM,EAAQE,KACRmL,EAAWnL,KAAK+L,iBAAiB,YACjCC,EAAgB,EACpBhM,KAAKyG,OAAOwF,MAAK,SAAU5K,GACnBA,EAAMmK,UACNnK,EAAM8J,cAAW/I,EACjBf,EAAMoK,YAENpK,EAAM6K,cAAgB7K,EAAM8K,gBAAkB9K,EAAM+K,iBAAmBJ,IACvEA,EAAgB3K,EAAM6K,cAAgB7K,EAAM8K,gBAAkB9K,EAAM+K,iBAE5E,IACA,IAAIC,EAAqB,EACzBrM,KAAKiH,YAAYgF,MAAK,SAAU5K,GACxBA,EAAMmK,SACNnK,EAAMoK,WAENpK,EAAM6K,cAAgB7K,EAAM8K,gBAAkB9K,EAAM+K,iBAAmBC,IACvEA,EAAqBhL,EAAM6K,cAAgB7K,EAAM8K,gBAAkB9K,EAAM+K,iBAEjF,IACA,IAAIE,EAAiB,EACrBtM,KAAKyI,QAAQwD,MAAK,SAAUxC,GACpBA,EAAO+B,SACP/B,EAAOgC,WAEPhC,EAAOyC,cAAgBzC,EAAO0C,gBAAkB1C,EAAO2C,iBAAmBE,IAC1EA,EAAiB7C,EAAOyC,cAAgBzC,EAAO0C,gBAAkB1C,EAAO2C,iBAEhF,IACA,IAEIG,EAFA5F,EAAgB3G,KAAKqH,eAAe9G,SACpCyI,EAASrC,EAAcyF,iBAAmBzF,EAAcwF,gBAExDK,EAAeR,EAAgBK,EAAqBC,EACnD,KAAenB,IAIhBA,GAAsBnC,EAClBmC,EAAWqB,IACXrB,EAAWqB,GAEfD,EAAwBpB,EAAWmB,EAAiBD,GAPpDE,EAAwBP,EAS5BhM,KAAKyG,OAAOwF,MAAK,SAAU5K,IACiB,SAApCvB,EAAMmH,YAAY1G,SAASwC,OAAoB1B,EAAM6K,cAAgBK,KAC/DlL,EAAMV,iBAAiB,OACzBU,EAAMV,MAAQ8L,KAAKC,IAAIrL,EAAM8J,SAAUoB,EAAwBlL,EAAM8K,gBAAkB9K,EAAM+K,kBAC7F/K,EAAM8J,SAAW9J,EAAMV,OAGnC,IACuC,SAAnCX,KAAKiH,YAAY1G,SAASwC,OAC1B/C,KAAKiH,YAAYgF,MAAK,SAAU1B,GAC5BA,EAAW5J,MAAQ0L,EAAqB9B,EAAW6B,iBAAmB7B,EAAW4B,eACrF,IAEJtM,EAAO8B,UAAUmK,UAAU/L,KAAKC,KACpC,EACA4I,EAAOjH,UAAU8I,gBAAkB,WAC/B,IAAIG,EAAY5K,KAAK4K,UACjB5K,KAAK2M,YAAc/B,IACnBA,EAAUhK,OAASZ,KAAK4M,eACxBhC,EAAUzI,EAAInC,KAAKkM,cAAgBtB,EAAUiC,WAAajC,EAAUuB,gBAChEnM,KAAK8M,cAAgB9M,KAAK4M,gBAC1BhC,EAAU3C,SAAU,EACpB2C,EAAUmC,MAAMnM,OAASgK,EAAUhK,OAASZ,KAAK4M,eAAiB5M,KAAK8M,cACvE9M,KAAK+F,aAAe6E,EAAUiC,WAAajC,EAAUuB,kBAAmBvB,EAAUwB,kBAGlFxB,EAAU3C,SAAU,EAExB2C,EAAUoC,sBACVhN,KAAKiN,cAEb,EACAzJ,OAAOC,eAAemF,EAAOjH,UAAW,WAAY,CAIhD+B,IAAK,WACD,OAAO1D,KAAK+L,iBAAiB,WACjC,EAeApI,IAAK,SAAUwB,GACPnF,KAAK6I,iBAAiB,WAAY1D,KACrB,QAATA,GAA4B,SAATA,GACnBnF,KAAKgJ,OAAO,GAAI,EAAG,GAAI,IACvBhJ,KAAK6E,OAAS,SACd7E,KAAKkN,aAAe,OACpBlN,KAAKiH,YAAY1G,SAASwC,MAAQ,QAC7B,KAAe/C,KAAKmN,cACrBnN,KAAKmN,WAAa,GAEtBnN,KAAKW,WAAQyB,EACbpC,KAAKmL,SAAW,MAGhBnL,KAAKmN,gBAAa/K,EAClBpC,KAAKW,OAAQ,QAAQ,KACrBX,KAAKiH,YAAY1G,SAASwC,MAAQ,QAEtC/C,KAAKoN,aAEb,EACAvJ,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAemF,EAAOjH,UAAW,mBAAoB,CAIxD+B,IAAK,WACD,OAAO1D,KAAK+L,iBAAiB,mBACjC,EAiBApI,IAAK,SAAUwB,GACXnF,KAAK6I,iBAAiB,mBAAoB1D,GAAO,EACrD,EACAtB,YAAY,EACZC,cAAc,IAElBN,OAAOC,eAAemF,EAAOjH,UAAW,aAAc,CAIlD+B,IAAK,WACD,OAAO1D,KAAK+L,iBAAiB,aACjC,EAYApI,IAAK,SAAUwB,GACX,GAAInF,KAAK6I,iBAAiB,aAAc1D,GAAO,GAC3C,GAAIA,EAAO,CACP,IAAIyF,EAAY5K,KAAKe,YAAY,KACjCf,KAAK4K,UAAYA,EACjBA,EAAUnI,YAAa,EACvBmI,EAAUyC,YAAc,WACxBzC,EAAU0C,QAAQ5B,YAAa,EAC/Bd,EAAU2C,UAAU7B,YAAa,EACjCd,EAAU3C,SAAU,EACpB2C,EAAU4C,WAAa,EACvBxN,KAAKyN,oBAAsBzN,KAAKmB,OAAOC,GAAG,QAASpB,KAAK0N,YAAa1N,MAAM,GAC3EA,KAAKS,WAAWC,KAAKV,KAAKyN,qBAC1BzN,KAAKS,WAAWC,KAAKkK,EAAUzJ,OAAOC,GAAG,eAAgBpB,KAAKiN,YAAajN,MAAM,GACrF,MAEQA,KAAKyN,sBACLzN,KAAKyN,oBAAoBvJ,UACrBlE,KAAK4K,YACL5K,KAAK4K,UAAU1G,UACflE,KAAK4K,eAAYxI,GAKrC,EACAyB,YAAY,EACZC,cAAc,IAOlB8E,EAAOjH,UAAU+L,YAAc,SAAU/K,GACrC,IAAIgL,EAAQhL,EAAMgL,MAAMtL,EACpBuI,EAAY5K,KAAK4K,UACrB,GAAIA,EAAW,CACX,IAAIgD,EAAMD,EAAQ,IAAO3N,KAAK4M,eAAiB5M,KAAK8M,cAChDe,EAAQjD,EAAUE,IAAMF,EAAUC,MAClC8C,EAAQ,GACR/C,EAAUC,MAAQ,KAAU,EAAGD,EAAUC,MAAQ+C,GACjDhD,EAAUE,IAAMF,EAAUC,MAAQgD,IAGlCjD,EAAUE,IAAM,KAAU,EAAGF,EAAUE,IAAM8C,GAC7ChD,EAAUC,MAAQD,EAAUE,IAAM+C,EAE1C,CACJ,EAIAjF,EAAOjH,UAAUsL,YAAc,WAC3B,IAAInN,EAAQE,KACRA,KAAK4K,WACL5K,KAAKqH,eAAe4E,MAAK,SAAUtF,GAC/BA,EAAcmH,IAAMhO,EAAM8K,UAAUmC,MAAMgB,OAASjO,EAAMgN,cAAgBhN,EAAM8M,eAC/EjG,EAAcqH,cAAgB,CAAE7L,EAAG,EAAGE,GAAIsE,EAAcmH,GAAInN,MAAOb,EAAMoM,cAAetL,OAAQd,EAAM8M,eAC1G,GAER,EAQAhE,EAAOjH,UAAU4F,eAAiB,SAAU0G,GACxC,IAAIvG,EAAcuG,EAAKvG,aAClBA,EAAYO,SAAWP,EAAYwG,UAAaxG,aAAuB,MAAUA,EAAYyG,UAC9FF,EAAKpH,MAAQoH,EAAKG,UAClB1G,EAAY2G,UAAW,EACvBJ,EAAKtH,cAAcwB,UAAW,GACH,IAAvBT,EAAY4G,SACZ5G,EAAY4G,QAAS,GAErB5G,EAAYxC,KACZwC,EAAYxC,OAGZwC,EAAYO,SAAU,EAE1BjI,KAAKuO,aAAaC,YAAYxO,KAAK8B,SAASC,UAAU,WAAY/B,KAAK8B,SAAS2M,OAAQR,EAAK5M,MAAMQ,gBAGnGoM,EAAKtH,cAAcwB,UAAW,EAC9BT,EAAY2G,UAAW,EACnB3G,EAAY5C,KACZ4C,EAAY5C,OAGZ4C,EAAYO,SAAU,EAE1BjI,KAAKuO,aAAaC,YAAYxO,KAAK8B,SAASC,UAAU,YAAa/B,KAAK8B,SAAS2M,OAAQR,EAAK5M,MAAMQ,cACpGoM,EAAKpH,OAAQ,IAAI,KAAoBkD,OAAO,sBAEpD,EACAvG,OAAOC,eAAemF,EAAOjH,UAAW,YAAa,CAQjD+B,IAAK,WAEL,EACAG,YAAY,EACZC,cAAc,IAOlB8E,EAAOjH,UAAU+M,6BAA+B,SAAUlH,EAAUmH,GAChEnH,EAAS+C,WAAW6C,aACpB5F,EAASnG,MAAM+L,YACnB,EACOxE,CACX,CA/f2B,CA+fzB,KAQF,6BAAuCA,EAOvC,UAAkB,CACdvD,SAAU,aACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBqD,IAA8B,QAAnBrD,EAAOjD,UAAyC,SAAnBiD,EAAOjD,UAAsB,CACvF,IAAIgD,EAAQC,EAAOE,OAAOC,OAAOF,GAEjC,OADAF,EAAMM,WAAWtD,SAAW,SACrBgD,CACX,CACA,OAAO,IACX,IAKJ,UAAkB,CACdD,SAAU,cACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBqD,IAA8B,OAAnBrD,EAAOjD,UAAwC,UAAnBiD,EAAOjD,UAAuB,CACvF,IAAIgD,EAAQC,EAAOE,OAAOC,OAAOF,GAEjC,OADAF,EAAMM,WAAWtD,SAAW,QACrBgD,CACX,CACA,OAAO,IACX,IAKJ,UAAkB,CACdD,SAAU,UACVC,MAAO,SAAUC,EAAQC,GACrB,GAAID,aAAkBqD,EAAQ,CAC1B,IAAItD,EAAQC,EAAOE,OAAOC,OAAOF,GAEjC,OADAF,EAAMM,WAAWgJ,UAAW,EACrBtJ,CACX,CACA,OAAO,IACX,G","sources":["webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/Chart.js","webpack://rokk3rfuel/./node_modules/@amcharts/amcharts4/.internal/charts/Legend.js"],"sourcesContent":["/**\r\n * [[Chart]] class provides base functionality for all chart types to inherit.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { registry } from \"../core/Registry\";\r\nimport { Component } from \"../core/Component\";\r\nimport { MutableValueDisposer, Disposer } from \"../core/utils/Disposer\";\r\nimport { ListTemplate, ListDisposer } from \"../core/utils/List\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { Grip } from \"../core/elements/Grip\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { percent } from \"../core/utils/Percent\";\r\nimport * as $iter from \"../core/utils/Iterator\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Chart]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar ChartDataItem = /** @class */ (function (_super) {\r\n __extends(ChartDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function ChartDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"ChartDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return ChartDataItem;\r\n}(DataItem));\r\nexport { ChartDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * A base class for all Charts.\r\n *\r\n * @see {@link IChartEvents} for a list of available Events\r\n * @see {@link IChartAdapters} for a list of available Adapters\r\n */\r\nvar Chart = /** @class */ (function (_super) {\r\n __extends(Chart, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Chart() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n /**\r\n * A reference to chart's [[Legend]].\r\n * @ignore\r\n */\r\n _this._legend = new MutableValueDisposer();\r\n if (_this.constructor === Chart) {\r\n throw new Error(\"'Chart' cannot be instantiated directly. Please use a specific chart type.\");\r\n }\r\n _this.className = \"Chart\";\r\n // Create a list of titles\r\n var template = new Label();\r\n _this.titles = new ListTemplate(template);\r\n _this._disposers.push(new ListDisposer(_this.titles));\r\n _this._disposers.push(template);\r\n // Chart component is also a container. it holds _chartAndLegendCont and titles\r\n _this.width = percent(100);\r\n _this.height = percent(100);\r\n _this.layout = \"vertical\";\r\n // Chart and legend\r\n var chartAndLegendContainer = _this.createChild(Container);\r\n chartAndLegendContainer.shouldClone = false;\r\n chartAndLegendContainer.layout = \"vertical\";\r\n chartAndLegendContainer.width = percent(100);\r\n chartAndLegendContainer.height = percent(100);\r\n _this.chartAndLegendContainer = chartAndLegendContainer;\r\n // Chart container holds all the elements of a chart, extept titles and legend\r\n var chartContainer = chartAndLegendContainer.createChild(Container);\r\n chartContainer.shouldClone = false;\r\n chartContainer.width = percent(100);\r\n chartContainer.height = percent(100);\r\n _this.chartContainer = chartContainer;\r\n _this.showOnInit = true;\r\n _this._disposers.push(_this._legend);\r\n // Add title list events to apply certain formatting options and to make\r\n // the chart reference them as accessible screen reader labels\r\n _this.titles.events.on(\"inserted\", function (label) {\r\n _this.processTitle(label);\r\n _this.updateReaderTitleReferences();\r\n }, _this, false);\r\n _this.titles.events.on(\"removed\", function (label) {\r\n _this.updateReaderTitleReferences();\r\n }, _this, false);\r\n // Accessibility\r\n // It seems we can't set focusable on the whole chart because it seems to\r\n // mess up the whole focus event system - getting a focus on an inside\r\n // object also trigger focus on parent\r\n //this.focusable = true;\r\n _this.role = \"region\";\r\n _this.defaultState.transitionDuration = 1;\r\n // Apply theme\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Chart.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Chart\");\r\n }\r\n };\r\n /**\r\n * Initiates drawing of the chart.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Chart.prototype.draw = function () {\r\n this.fixLayout();\r\n _super.prototype.draw.call(this);\r\n };\r\n /**\r\n * Updates legend's hierarchy based on the position.\r\n */\r\n Chart.prototype.fixLayout = function () {\r\n var legend = this.legend;\r\n if (legend) {\r\n var chartAndLegendContainer = this.chartAndLegendContainer;\r\n var chartContainer = this.chartContainer;\r\n chartContainer.x = undefined;\r\n chartContainer.y = undefined;\r\n if (legend.position != \"absolute\") {\r\n legend.x = undefined;\r\n legend.y = undefined;\r\n }\r\n switch (legend.position) {\r\n case \"left\":\r\n chartAndLegendContainer.layout = \"horizontal\";\r\n legend.toBack();\r\n break;\r\n case \"right\":\r\n chartAndLegendContainer.layout = \"horizontal\";\r\n legend.toFront();\r\n break;\r\n case \"top\":\r\n chartAndLegendContainer.layout = \"vertical\";\r\n legend.toBack();\r\n break;\r\n case \"bottom\":\r\n chartAndLegendContainer.layout = \"vertical\";\r\n legend.toFront();\r\n break;\r\n case \"absolute\":\r\n legend.isMeasured = false;\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Setups the legend to use the chart's data.\r\n */\r\n Chart.prototype.feedLegend = function () {\r\n // Nothing here. This method is provided only as a \"placeholder\" for\r\n // extending classes to override\r\n };\r\n /**\r\n * Adds a new title to the chart when it is inserted into chart's titles\r\n * list.\r\n * @param event An event object which is triggered when inserting into titles list\r\n * @return Label object\r\n */\r\n Chart.prototype.processTitle = function (event) {\r\n var title = event.newValue;\r\n title.parent = this;\r\n title.toBack();\r\n title.shouldClone = false;\r\n title.align = \"center\";\r\n // Need to explicitly apply the `id` attribute so it can be referenced by\r\n // `aria-labelledby`\r\n title.uidAttr();\r\n return title;\r\n };\r\n /**\r\n * Checks if chart has any title elements. If it does, we will use them in an\r\n * `aria-labelledby` attribute so that screen readers can use them to properly\r\n * describe the chart when it is focused or hovered.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Chart.prototype.updateReaderTitleReferences = function () {\r\n if (this.titles.length) {\r\n var titleIds_1 = [];\r\n $iter.each(this.titles.iterator(), function (title) {\r\n titleIds_1.push(title.uid);\r\n });\r\n this.setSVGAttribute({ \"aria-labelledby\": titleIds_1.join(\" \") });\r\n }\r\n else {\r\n this.removeSVGAttribute(\"aria-labelledby\");\r\n }\r\n };\r\n Object.defineProperty(Chart.prototype, \"legend\", {\r\n /**\r\n * @return Legend\r\n */\r\n get: function () {\r\n return this._legend.get();\r\n },\r\n /**\r\n * Holds the instance of chart's [[Leged]].\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for more information about legends\r\n * @param Legend\r\n */\r\n set: function (legend) {\r\n this.setLegend(legend);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Prepares the legend instance for use in this chart.\r\n *\r\n * @param legend Legend\r\n */\r\n Chart.prototype.setLegend = function (legend) {\r\n var _this = this;\r\n if (this._legend.get() !== legend) {\r\n if (legend) {\r\n // Set legend options\r\n legend.parent = this.chartAndLegendContainer;\r\n this._legend.set(legend, legend.events.on(\"propertychanged\", function (event) {\r\n if (event.property == \"position\") {\r\n _this.fixLayout();\r\n }\r\n }, undefined, false));\r\n legend.addDisposer(new Disposer(function () {\r\n _this.legend = undefined;\r\n }));\r\n }\r\n else {\r\n this._legend.reset();\r\n }\r\n this.feedLegend();\r\n }\r\n };\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n Chart.prototype.dispose = function () {\r\n // otherwise there might be some errors when disposing chart which was just inited\r\n if (this.legend) {\r\n this.legend.dispose();\r\n }\r\n _super.prototype.dispose.call(this);\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Chart.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Set up legend\r\n if ($type.hasValue(config.legend) && !$type.hasValue(config.legend.type)) {\r\n config.legend.type = \"Legend\";\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Copies all properties from another instance of [[Series]].\r\n *\r\n * @param source Source series\r\n */\r\n Chart.prototype.copyFrom = function (source) {\r\n this.titles.copyFrom(source.titles);\r\n this.chartContainer.copyFrom(source.chartContainer);\r\n if (source.legend) {\r\n this.legend = source.legend.clone();\r\n this.legend.removeChildren();\r\n }\r\n _super.prototype.copyFrom.call(this, source);\r\n };\r\n Object.defineProperty(Chart.prototype, \"dragGrip\", {\r\n /**\r\n * @return Grip\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._dragGrip) {\r\n var grip_1 = this.tooltipContainer.createChild(Grip);\r\n grip_1.align = \"right\";\r\n grip_1.valign = \"middle\";\r\n grip_1.hide(0);\r\n grip_1.events.on(\"down\", function (ev) {\r\n if (ev.touch) {\r\n _this.interactionsEnabled = false;\r\n }\r\n });\r\n grip_1.events.on(\"up\", function (ev) {\r\n _this.interactionsEnabled = true;\r\n });\r\n this.events.on(\"down\", function (ev) {\r\n if (ev.touch) {\r\n grip_1.show();\r\n }\r\n });\r\n this._dragGrip = grip_1;\r\n }\r\n return this._dragGrip;\r\n },\r\n /**\r\n * An instance of [[Grip]] which serves as a grip point which appears on\r\n * touch and allows scrolling whole page even if chart is occupying the\r\n * whole of the screen and would otherwise prevent scrolling.\r\n *\r\n * @since 4.4.0\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/touch/} For more information.\r\n * @param value Grip\r\n */\r\n set: function (value) {\r\n this._dragGrip = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Chart.prototype, \"focusable\", {\r\n get: function () {\r\n return this.parent.focusable;\r\n },\r\n set: function (value) {\r\n this.parent.focusable = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return Chart;\r\n}(Component));\r\nexport { Chart };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Chart\"] = Chart;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Reduce horizontal margins\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n if (target.pixelPaddingLeft > 10) {\r\n state.properties.paddingLeft = 10;\r\n }\r\n if (target.pixelPaddingRight > 10) {\r\n state.properties.paddingRight = 10;\r\n }\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Reduce vertical margins\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n if (target.pixelPaddingTop > 10) {\r\n state.properties.paddingTop = 10;\r\n }\r\n if (target.pixelPaddingBottom > 10) {\r\n state.properties.paddingBottom = 10;\r\n }\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove horizontal padding\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n state.properties.paddingLeft = 0;\r\n state.properties.paddingRight = 0;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Remove vertical padding\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Chart) {\r\n var state = target.states.create(stateId);\r\n state.properties.paddingTop = 0;\r\n state.properties.paddingBottom = 0;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Chart.js.map","/**\r\n * Legend-related functionality.\r\n */\r\nimport { __extends } from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../core/Component\";\r\nimport { DataItem } from \"../core/DataItem\";\r\nimport { ListTemplate, ListDisposer } from \"../core/utils/List\";\r\nimport { RoundedRectangle } from \"../core/elements/RoundedRectangle\";\r\nimport { Container } from \"../core/Container\";\r\nimport { Label } from \"../core/elements/Label\";\r\nimport { keyboard } from \"../core/utils/Keyboard\";\r\nimport { registry } from \"../core/Registry\";\r\nimport { getInteraction } from \"../core/interaction/Interaction\";\r\nimport { percent, Percent } from \"../core/utils/Percent\";\r\nimport { InterfaceColorSet } from \"../core/utils/InterfaceColorSet\";\r\nimport * as $utils from \"../core/utils/Utils\";\r\nimport * as $type from \"../core/utils/Type\";\r\nimport * as $math from \"../core/utils/Math\";\r\nimport { Sprite } from \"../core/Sprite\";\r\nimport { Disposer } from \"../core/utils/Disposer\";\r\nimport { MouseCursorStyle } from \"../core/interaction/Mouse\";\r\nimport { defaultRules, ResponsiveBreakpoints } from \"../core/utils/Responsive\";\r\nimport { Scrollbar } from \"../core/elements/Scrollbar\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Legend]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar LegendDataItem = /** @class */ (function (_super) {\r\n __extends(LegendDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function LegendDataItem() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * @ignore\r\n */\r\n _this.childrenCreated = false;\r\n _this.className = \"LegendDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(LegendDataItem.prototype, \"label\", {\r\n /**\r\n * A legend item's [[Label]] element.\r\n *\r\n * @return Label\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._label) {\r\n var label_1 = this.component.labels.create();\r\n this._label = label_1;\r\n this.addSprite(label_1);\r\n this._disposers.push(label_1);\r\n label_1.parent = this.itemContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.labels.removeValue(label_1);\r\n }\r\n }));\r\n }\r\n return this._label;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"color\", {\r\n /**\r\n * @return Main color\r\n */\r\n get: function () {\r\n return this.properties.color;\r\n },\r\n /**\r\n * Main color of legend data item.\r\n *\r\n * This is set by the target element this legend item represents, like\r\n * a Series or a Slice.\r\n *\r\n * It can be used to derive a color in legend's sub-items, like label:\r\n *\r\n * ```TypeScript\r\n * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n * ```\r\n * ```JavaScript\r\n * chart.legend.labels.template.text = \"[{color}]{name}[/]\";\r\n * ```\r\n * ```JSON\r\n * {\r\n * // ...\r\n * \"legend\": {\r\n * // ...\r\n * \"labels\": {\r\n * \"text\": \"[{color}]{name}[/]\"\r\n * }\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/#Legend_labels} For more information about configuring legend labels.\r\n * @param value Main color\r\n */\r\n set: function (value) {\r\n this.setProperty(\"color\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"valueLabel\", {\r\n /**\r\n * A legend item's [[Label]] element for \"value label\".\r\n *\r\n * @return Label\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._valueLabel) {\r\n var valueLabel_1 = this.component.valueLabels.create();\r\n this._valueLabel = valueLabel_1;\r\n this.addSprite(valueLabel_1);\r\n this._disposers.push(valueLabel_1);\r\n valueLabel_1.parent = this.itemContainer;\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.valueLabels.removeValue(valueLabel_1);\r\n }\r\n }));\r\n }\r\n return this._valueLabel;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"itemContainer\", {\r\n /**\r\n * A reference to the main [[Container]] that holds legend item's elements:\r\n * marker and labels.\r\n *\r\n * @return Item container\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._itemContainer) {\r\n var component_1 = this.component;\r\n var itemContainer_1 = component_1.itemContainers.create();\r\n itemContainer_1.parent = component_1;\r\n this._itemContainer = itemContainer_1;\r\n this.addSprite(itemContainer_1);\r\n this._disposers.push(itemContainer_1);\r\n // Add click/tap event to toggle item\r\n if (itemContainer_1.togglable) {\r\n itemContainer_1.events.on(\"toggled\", function (ev) {\r\n component_1.toggleDataItem(ev.target.dataItem);\r\n }, undefined, false);\r\n }\r\n // Add focus event so that we can track which object is currently in focus\r\n // for keyboard toggling\r\n if (itemContainer_1.focusable) {\r\n itemContainer_1.events.on(\"hit\", function (ev) {\r\n // We need this here in order to reset focused item when it is clicked\r\n // normally so that it is not toggled by ENTER afterwards\r\n component_1.focusedItem = undefined;\r\n }, undefined, false);\r\n itemContainer_1.events.on(\"focus\", function (ev) {\r\n component_1.focusedItem = ev.target.dataItem;\r\n }, undefined, false);\r\n itemContainer_1.events.on(\"blur\", function (ev) {\r\n component_1.focusedItem = undefined;\r\n }, undefined, false);\r\n }\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.itemContainers.removeValue(itemContainer_1);\r\n }\r\n }));\r\n if (this.dataContext.uidAttr) {\r\n itemContainer_1.readerControls = this.dataContext.uidAttr();\r\n itemContainer_1.readerLabelledBy = this.dataContext.uidAttr();\r\n }\r\n var sprite = this.dataContext;\r\n if ((sprite instanceof DataItem || sprite instanceof Sprite) && !sprite.isDisposed()) {\r\n var visibilitychanged = function (ev) {\r\n itemContainer_1.readerChecked = ev.visible;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = !ev.visible;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n };\r\n sprite.addDisposer(new Disposer(function () {\r\n if (_this.component) {\r\n _this.component.dataItems.remove(_this);\r\n }\r\n }));\r\n if (sprite instanceof Sprite) {\r\n itemContainer_1.addDisposer(sprite.events.on(\"visibilitychanged\", visibilitychanged, undefined, false));\r\n itemContainer_1.addDisposer(sprite.events.on(\"hidden\", function (ev) {\r\n itemContainer_1.readerChecked = false;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = true;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n itemContainer_1.addDisposer(sprite.events.on(\"shown\", function (ev) {\r\n itemContainer_1.readerChecked = true;\r\n itemContainer_1.events.disableType(\"toggled\");\r\n itemContainer_1.isActive = false;\r\n itemContainer_1.events.enableType(\"toggled\");\r\n }, undefined, false));\r\n }\r\n else {\r\n itemContainer_1.addDisposer(sprite.events.on(\"visibilitychanged\", visibilitychanged, undefined, false));\r\n }\r\n }\r\n }\r\n return this._itemContainer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LegendDataItem.prototype, \"marker\", {\r\n /**\r\n * A [[Container]] that holds legend item's marker element.\r\n *\r\n * @return Marker\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._marker) {\r\n var marker_1 = this.component.markers.create();\r\n this._marker = marker_1;\r\n marker_1.parent = this.itemContainer;\r\n this.addSprite(marker_1);\r\n this._disposers.push(marker_1);\r\n this._disposers.push(new Disposer(function () {\r\n if ($type.hasValue(_this.component)) {\r\n _this.component.markers.removeValue(marker_1);\r\n }\r\n }));\r\n }\r\n return this._marker;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LegendDataItem;\r\n}(DataItem));\r\nexport { LegendDataItem };\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a class that carries legend settings.\r\n *\r\n * A legend might change its settings dynamically. Legend can also be shared\r\n * by several elements, requiring different settings.\r\n *\r\n * Having legend's settings in a separate object is a good way to \"hot swap\"\r\n * a set of settings for the legend.\r\n */\r\nvar LegendSettings = /** @class */ (function () {\r\n function LegendSettings() {\r\n /**\r\n * Should marker be created for each legend item.\r\n */\r\n this.createMarker = true;\r\n }\r\n return LegendSettings;\r\n}());\r\nexport { LegendSettings };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * [[Legend]] class is used to create legend for the chart.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/legend/} for Legend documentation\r\n * @see {@link ILegendEvents} for a list of available events\r\n * @see {@link ILegendAdapters} for a list of available Adapters\r\n */\r\nvar Legend = /** @class */ (function (_super) {\r\n __extends(Legend, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Legend() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"Legend\";\r\n // Set defaults\r\n _this.layout = \"grid\";\r\n _this.setPropertyValue(\"useDefaultMarker\", false);\r\n _this.setPropertyValue(\"scrollable\", false);\r\n _this.setPropertyValue(\"contentAlign\", \"center\");\r\n // Create a template container and list for legend items\r\n var itemContainer = new Container();\r\n itemContainer.applyOnClones = true;\r\n itemContainer.padding(8, 0, 8, 0);\r\n itemContainer.margin(0, 10, 0, 10);\r\n itemContainer.layout = \"horizontal\";\r\n itemContainer.clickable = true;\r\n itemContainer.focusable = true;\r\n itemContainer.role = \"switch\";\r\n itemContainer.togglable = true;\r\n itemContainer.cursorOverStyle = MouseCursorStyle.pointer;\r\n itemContainer.background.fillOpacity = 0; // creates hit area\r\n // Create container list using item template we just created\r\n _this.itemContainers = new ListTemplate(itemContainer);\r\n _this._disposers.push(new ListDisposer(_this.itemContainers));\r\n _this._disposers.push(_this.itemContainers.template);\r\n // Set up global keyboard events for toggling elements\r\n _this._disposers.push(getInteraction().body.events.on(\"keyup\", function (ev) {\r\n if (keyboard.isKey(ev.event, \"enter\") && _this.focusedItem) {\r\n var focusedItem = _this.focusedItem;\r\n var target = focusedItem.itemContainer;\r\n if (target.togglable) {\r\n _this.toggleDataItem(focusedItem);\r\n }\r\n else if (target.clickable && target.events.isEnabled(\"hit\")) {\r\n target.dispatchImmediately(\"hit\", { event: ev });\r\n // We need this here because \"hit\" event resets `this.focusedItem`\r\n // And we need it here\r\n _this.focusedItem = focusedItem;\r\n }\r\n }\r\n }, _this));\r\n var interfaceColors = new InterfaceColorSet();\r\n // Create a template container and list for the a marker\r\n var marker = new Container();\r\n marker.width = 23;\r\n marker.height = 23;\r\n marker.interactionsEnabled = false;\r\n marker.applyOnClones = true;\r\n marker.setStateOnChildren = true;\r\n marker.background.fillOpacity = 0;\r\n marker.background.strokeOpacity = 0;\r\n marker.propertyFields.fill = \"fill\";\r\n marker.valign = \"middle\";\r\n var disabledColor = interfaceColors.getFor(\"disabledBackground\");\r\n marker.events.on(\"childadded\", function (event) {\r\n var child = event.newValue;\r\n var activeState = child.states.create(\"active\");\r\n activeState.properties.stroke = disabledColor;\r\n activeState.properties.fill = disabledColor;\r\n });\r\n _this.markers = new ListTemplate(marker);\r\n _this._disposers.push(new ListDisposer(_this.markers));\r\n _this._disposers.push(_this.markers.template);\r\n // Create a legend background element\r\n var rectangle = marker.createChild(RoundedRectangle);\r\n rectangle.width = percent(100);\r\n rectangle.height = percent(100);\r\n rectangle.applyOnClones = true;\r\n rectangle.propertyFields.fill = \"fill\"; //othrwise old edge doesn't like as the same pattern is set both on parent and child https://codepen.io/team/amcharts/pen/72d7a98f3fb811d3118795220ff63182\r\n rectangle.strokeOpacity = 0;\r\n // Create a template container and list for item labels\r\n var label = new Label();\r\n label.text = \"{name}\";\r\n label.margin(0, 5, 0, 5);\r\n label.valign = \"middle\";\r\n label.applyOnClones = true;\r\n label.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n _this.labels = new ListTemplate(label);\r\n _this._disposers.push(new ListDisposer(_this.labels));\r\n _this._disposers.push(_this.labels.template);\r\n label.interactionsEnabled = false;\r\n label.truncate = true;\r\n label.fullWords = false;\r\n // Create a template container and list for item value labels\r\n var valueLabel = new Label();\r\n valueLabel.margin(0, 5, 0, 0);\r\n valueLabel.valign = \"middle\";\r\n valueLabel.width = 50; // to avoid rearranging legend entries when value changes.\r\n valueLabel.align = \"right\";\r\n valueLabel.textAlign = \"end\";\r\n valueLabel.applyOnClones = true;\r\n valueLabel.states.create(\"active\").properties.fill = interfaceColors.getFor(\"disabledBackground\");\r\n valueLabel.interactionsEnabled = false;\r\n _this.valueLabels = new ListTemplate(valueLabel);\r\n _this._disposers.push(new ListDisposer(_this.valueLabels));\r\n _this._disposers.push(_this.valueLabels.template);\r\n _this.position = \"bottom\"; // don't use setPropertyValue here!\r\n // Create a state for disabled legend items\r\n itemContainer.states.create(\"active\");\r\n itemContainer.setStateOnChildren = true;\r\n // Apply accessibility settings\r\n _this.role = \"group\";\r\n _this.events.on(\"layoutvalidated\", _this.handleScrollbar, _this, false);\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Legend.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Legend\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Legend.prototype.createDataItem = function () {\r\n return new LegendDataItem();\r\n };\r\n /**\r\n * [validateDataElements description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n Legend.prototype.validateDataElements = function () {\r\n if (this.scrollbar) {\r\n this.scrollbar.start = 0;\r\n this.scrollbar.end = 1;\r\n }\r\n _super.prototype.validateDataElements.call(this);\r\n };\r\n /**\r\n * [validateDataElement description]\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n * @todo Description\r\n * @todo Figure out how to update appearance of legend item without losing focus\r\n * @todo Update legend marker appearance as apperance of related series changes\r\n */\r\n Legend.prototype.validateDataElement = function (dataItem) {\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n // Get data item (legend item's) container\r\n var container = dataItem.itemContainer;\r\n var marker = dataItem.marker;\r\n $utils.used(dataItem.label);\r\n var valueLabel = dataItem.valueLabel;\r\n // Set parent and update current state\r\n container.readerChecked = dataItem.dataContext.visible;\r\n // Tell series its legend data item\r\n dataItem.dataContext.legendDataItem = dataItem;\r\n var tempMaxWidth = dataItem.label.maxWidth;\r\n if (!(dataItem.label.width instanceof Percent)) {\r\n dataItem.label.width = undefined;\r\n }\r\n if (tempMaxWidth > 0) {\r\n dataItem.label.maxWidth = tempMaxWidth;\r\n }\r\n if (valueLabel.align == \"right\") {\r\n valueLabel.width = undefined;\r\n }\r\n var legendSettings = dataItem.dataContext.legendSettings;\r\n // If we are not using default markers, create a unique legend marker based\r\n // on the data item type\r\n var dataContext = dataItem.dataContext;\r\n if (dataContext.createLegendMarker && (!this.useDefaultMarker || !(dataContext instanceof Sprite))) {\r\n if (!dataItem.childrenCreated) {\r\n dataContext.createLegendMarker(marker);\r\n dataItem.childrenCreated = true;\r\n }\r\n }\r\n else {\r\n this.markers.template.propertyFields.fill = undefined;\r\n }\r\n if (dataContext.updateLegendValue) {\r\n dataContext.updateLegendValue(); // this solves issue with external legend, as legend is created after chart updates legend values\r\n }\r\n if (dataContext.component && dataContext.component.updateLegendValue) {\r\n dataContext.component.updateLegendValue(dataContext);\r\n }\r\n if (valueLabel.invalid) {\r\n valueLabel.validate();\r\n }\r\n if (valueLabel.text == \"\" || valueLabel.text == undefined) {\r\n valueLabel.__disabled = true;\r\n }\r\n else {\r\n valueLabel.__disabled = false;\r\n }\r\n if (legendSettings && (legendSettings.itemValueText != undefined || legendSettings.valueText != undefined)) {\r\n valueLabel.__disabled = false;\r\n }\r\n var visible = dataItem.dataContext.visible;\r\n if (visible === undefined) {\r\n visible = true;\r\n }\r\n visible = $type.toBoolean(visible);\r\n dataItem.dataContext.visible = visible;\r\n container.events.disableType(\"toggled\");\r\n container.isActive = !visible;\r\n if (container.isActive) {\r\n container.setState(\"active\", 0);\r\n }\r\n else {\r\n container.setState(\"default\", 0);\r\n }\r\n container.events.enableType(\"toggled\");\r\n };\r\n Legend.prototype.afterDraw = function () {\r\n var _this = this;\r\n var maxWidth = this.getPropertyValue(\"maxWidth\");\r\n var maxLabelWidth = 0;\r\n this.labels.each(function (label) {\r\n if (label.invalid) {\r\n label.maxWidth = undefined;\r\n label.validate();\r\n }\r\n if (label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight > maxLabelWidth) {\r\n maxLabelWidth = label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight;\r\n }\r\n });\r\n var maxValueLabelWidth = 0;\r\n this.valueLabels.each(function (label) {\r\n if (label.invalid) {\r\n label.validate();\r\n }\r\n if (label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight > maxValueLabelWidth) {\r\n maxValueLabelWidth = label.measuredWidth + label.pixelMarginLeft + label.pixelMarginRight;\r\n }\r\n });\r\n var maxMarkerWidth = 0;\r\n this.markers.each(function (marker) {\r\n if (marker.invalid) {\r\n marker.validate();\r\n }\r\n if (marker.measuredWidth + marker.pixelMarginLeft + marker.pixelMarginRight > maxMarkerWidth) {\r\n maxMarkerWidth = marker.measuredWidth + marker.pixelMarginLeft + marker.pixelMarginRight;\r\n }\r\n });\r\n var itemContainer = this.itemContainers.template;\r\n var margin = itemContainer.pixelMarginRight + itemContainer.pixelMarginLeft;\r\n var maxAdjustedLabelWidth;\r\n var trueMaxWidth = maxLabelWidth + maxValueLabelWidth + maxMarkerWidth;\r\n if (!$type.isNumber(maxWidth)) {\r\n maxAdjustedLabelWidth = maxLabelWidth;\r\n }\r\n else {\r\n maxWidth = maxWidth - margin;\r\n if (maxWidth > trueMaxWidth) {\r\n maxWidth = trueMaxWidth;\r\n }\r\n maxAdjustedLabelWidth = maxWidth - maxMarkerWidth - maxValueLabelWidth;\r\n }\r\n this.labels.each(function (label) {\r\n if (_this.valueLabels.template.align == \"right\" || label.measuredWidth > maxAdjustedLabelWidth) {\r\n if (!(label.width instanceof Percent)) {\r\n label.width = Math.min(label.maxWidth, maxAdjustedLabelWidth - label.pixelMarginLeft - label.pixelMarginRight);\r\n label.maxWidth = label.width;\r\n }\r\n }\r\n });\r\n if (this.valueLabels.template.align == \"right\") {\r\n this.valueLabels.each(function (valueLabel) {\r\n valueLabel.width = maxValueLabelWidth - valueLabel.pixelMarginRight - valueLabel.pixelMarginLeft;\r\n });\r\n }\r\n _super.prototype.afterDraw.call(this);\r\n };\r\n Legend.prototype.handleScrollbar = function () {\r\n var scrollbar = this.scrollbar;\r\n if (this.scrollable && scrollbar) {\r\n scrollbar.height = this.measuredHeight;\r\n scrollbar.x = this.measuredWidth - scrollbar.pixelWidth - scrollbar.pixelMarginLeft;\r\n if (this.contentHeight > this.measuredHeight) {\r\n scrollbar.visible = true;\r\n scrollbar.thumb.height = scrollbar.height * this.measuredHeight / this.contentHeight;\r\n this.paddingRight = scrollbar.pixelWidth + scrollbar.pixelMarginLeft + +scrollbar.pixelMarginRight;\r\n }\r\n else {\r\n scrollbar.visible = false;\r\n }\r\n scrollbar.handleThumbPosition();\r\n this.updateMasks();\r\n }\r\n };\r\n Object.defineProperty(Legend.prototype, \"position\", {\r\n /**\r\n * @return Position\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"position\");\r\n },\r\n /**\r\n * Position of the legend.\r\n *\r\n * Options: \"left\", \"right\", \"top\", \"bottom\" (default), or \"absolute\".\r\n *\r\n * IMPORTANT: [[MapChart]] will ignore this setting, as it is using different\r\n * layout structure than other charts.\r\n *\r\n * To position legend in [[MapChart]] set legend's `align` (`\"left\"` or\r\n * `\"right\"`) and `valign` (`\"top\"` or `\"bottom\"`) properties instead.\r\n *\r\n * @default \"bottom\"\r\n * @param value Position\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"position\", value)) {\r\n if (value == \"left\" || value == \"right\") {\r\n this.margin(10, 5, 10, 10);\r\n this.valign = \"middle\";\r\n this.contentAlign = \"none\";\r\n this.valueLabels.template.align = \"right\";\r\n if (!$type.isNumber(this.maxColumns)) {\r\n this.maxColumns = 1;\r\n }\r\n this.width = undefined;\r\n this.maxWidth = 220;\r\n }\r\n else {\r\n this.maxColumns = undefined;\r\n this.width = percent(100);\r\n this.valueLabels.template.align = \"left\";\r\n }\r\n this.invalidate();\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Legend.prototype, \"useDefaultMarker\", {\r\n /**\r\n * @return Use default marker?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"useDefaultMarker\");\r\n },\r\n /**\r\n * Should legend try to mirror the look of the related item when building\r\n * the marker for legend item?\r\n *\r\n * If set to `false` it will try to make the marker look like its related\r\n * item.\r\n *\r\n * E.g. if an item is for a Line Series, it will display a line of the\r\n * same thickness, color, and will use the same bullets if series have them.\r\n *\r\n * If set to `true`, all markers will be shown as squares, regardless of te\r\n * series type.\r\n *\r\n * @default false\r\n * @param value Use default marker?\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"useDefaultMarker\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Legend.prototype, \"scrollable\", {\r\n /**\r\n * @return Legend Scrollable?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"scrollable\");\r\n },\r\n /**\r\n * If set to `true` the Legend will display a scrollbar if its contents do\r\n * not fit into its `maxHeight`.\r\n *\r\n * Please note that `maxHeight` is automatically set for Legend when its\r\n * `position` is set to `\"left\"` or `\"right\"`.\r\n *\r\n * @default false\r\n * @since 4.8.0\r\n * @param value Legend Scrollable?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"scrollable\", value, true)) {\r\n if (value) {\r\n var scrollbar = this.createChild(Scrollbar);\r\n this.scrollbar = scrollbar;\r\n scrollbar.isMeasured = false;\r\n scrollbar.orientation = \"vertical\";\r\n scrollbar.endGrip.__disabled = true;\r\n scrollbar.startGrip.__disabled = true;\r\n scrollbar.visible = false;\r\n scrollbar.marginLeft = 5;\r\n this._mouseWheelDisposer = this.events.on(\"wheel\", this.handleWheel, this, false);\r\n this._disposers.push(this._mouseWheelDisposer);\r\n this._disposers.push(scrollbar.events.on(\"rangechanged\", this.updateMasks, this, false));\r\n }\r\n else {\r\n if (this._mouseWheelDisposer) {\r\n this._mouseWheelDisposer.dispose();\r\n if (this.scrollbar) {\r\n this.scrollbar.dispose();\r\n this.scrollbar = undefined;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handles mouse wheel scrolling of legend.\r\n *\r\n * @param event Event\r\n */\r\n Legend.prototype.handleWheel = function (event) {\r\n var shift = event.shift.y;\r\n var scrollbar = this.scrollbar;\r\n if (scrollbar) {\r\n var ds = (shift / 1000 * this.measuredHeight / this.contentHeight);\r\n var delta = scrollbar.end - scrollbar.start;\r\n if (shift > 0) {\r\n scrollbar.start = $math.max(0, scrollbar.start - ds);\r\n scrollbar.end = scrollbar.start + delta;\r\n }\r\n else {\r\n scrollbar.end = $math.min(1, scrollbar.end - ds);\r\n scrollbar.start = scrollbar.end - delta;\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Legend.prototype.updateMasks = function () {\r\n var _this = this;\r\n if (this.scrollbar) {\r\n this.itemContainers.each(function (itemContainer) {\r\n itemContainer.dy = -_this.scrollbar.thumb.pixelY * _this.contentHeight / _this.measuredHeight;\r\n itemContainer.maskRectangle = { x: 0, y: -itemContainer.dy, width: _this.measuredWidth, height: _this.measuredHeight };\r\n });\r\n }\r\n };\r\n /**\r\n * Toggles a legend item.\r\n *\r\n * @ignore Exclude from docs\r\n * @param item Legend item\r\n * @todo Maybe do it with togglable instead\r\n */\r\n Legend.prototype.toggleDataItem = function (item) {\r\n var dataContext = item.dataContext;\r\n if (!dataContext.visible || dataContext.isHiding || (dataContext instanceof Sprite && dataContext.isHidden)) {\r\n item.color = item.colorOrig;\r\n dataContext.appeared = true;\r\n item.itemContainer.isActive = false;\r\n if (dataContext.hidden === true) {\r\n dataContext.hidden = false;\r\n }\r\n if (dataContext.show) {\r\n dataContext.show();\r\n }\r\n else {\r\n dataContext.visible = true;\r\n }\r\n this.svgContainer.readerAlert(this.language.translate(\"%1 shown\", this.language.locale, item.label.readerTitle));\r\n }\r\n else {\r\n item.itemContainer.isActive = true;\r\n dataContext.appeared = true;\r\n if (dataContext.hide) {\r\n dataContext.hide();\r\n }\r\n else {\r\n dataContext.visible = false;\r\n }\r\n this.svgContainer.readerAlert(this.language.translate(\"%1 hidden\", this.language.locale, item.label.readerTitle));\r\n item.color = new InterfaceColorSet().getFor(\"disabledBackground\");\r\n }\r\n };\r\n Object.defineProperty(Legend.prototype, \"preloader\", {\r\n /**\r\n * Override preloader method so that legend does not accidentally show its\r\n * own preloader.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Always `undefined`\r\n */\r\n get: function () {\r\n return;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * [handleDataItemPropertyChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Legend.prototype.handleDataItemPropertyChange = function (dataItem, name) {\r\n dataItem.valueLabel.invalidate();\r\n dataItem.label.invalidate();\r\n };\r\n return Legend;\r\n}(Component));\r\nexport { Legend };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Legend\"] = Legend;\r\n/**\r\n * Add default responsive rules\r\n */\r\n/**\r\n * Move legend to below the chart if chart is narrow\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.widthXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend && (target.position == \"left\" || target.position == \"right\")) {\r\n var state = target.states.create(stateId);\r\n state.properties.position = \"bottom\";\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Move legend to the right if chart is very short\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.heightXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend && (target.position == \"top\" || target.position == \"bottom\")) {\r\n var state = target.states.create(stateId);\r\n state.properties.position = \"right\";\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n/**\r\n * Disable legend altogether on small charts\r\n */\r\ndefaultRules.push({\r\n relevant: ResponsiveBreakpoints.isXS,\r\n state: function (target, stateId) {\r\n if (target instanceof Legend) {\r\n var state = target.states.create(stateId);\r\n state.properties.disabled = true;\r\n return state;\r\n }\r\n return null;\r\n }\r\n});\r\n//# sourceMappingURL=Legend.js.map"],"names":["ChartDataItem","_super","_this","call","this","className","applyTheme","Chart","_legend","constructor","Error","template","titles","_disposers","push","width","height","layout","chartAndLegendContainer","createChild","shouldClone","chartContainer","showOnInit","events","on","label","processTitle","updateReaderTitleReferences","role","defaultState","transitionDuration","prototype","applyInternalDefaults","readerTitle","language","translate","draw","fixLayout","legend","x","undefined","y","position","toBack","toFront","isMeasured","feedLegend","event","title","newValue","parent","align","uidAttr","length","titleIds_1","iterator","uid","setSVGAttribute","join","removeSVGAttribute","Object","defineProperty","get","set","setLegend","enumerable","configurable","property","addDisposer","reset","dispose","processConfig","config","type","copyFrom","source","clone","removeChildren","_dragGrip","grip_1","tooltipContainer","valign","hide","ev","touch","interactionsEnabled","show","value","focusable","relevant","state","target","stateId","states","create","pixelPaddingLeft","properties","paddingLeft","pixelPaddingRight","paddingRight","pixelPaddingTop","paddingTop","pixelPaddingBottom","paddingBottom","LegendDataItem","childrenCreated","_label","label_1","component","labels","addSprite","itemContainer","removeValue","color","setProperty","_valueLabel","valueLabel_1","valueLabels","_itemContainer","component_1","itemContainer_1","itemContainers","togglable","toggleDataItem","dataItem","focusedItem","dataContext","readerControls","readerLabelledBy","sprite","isDisposed","visibilitychanged","readerChecked","visible","disableType","isActive","enableType","dataItems","remove","_marker","marker_1","markers","LegendSettings","createMarker","Legend","setPropertyValue","applyOnClones","padding","margin","clickable","cursorOverStyle","background","fillOpacity","body","isEnabled","dispatchImmediately","interfaceColors","marker","setStateOnChildren","strokeOpacity","propertyFields","fill","disabledColor","getFor","child","activeState","stroke","rectangle","text","truncate","fullWords","valueLabel","textAlign","handleScrollbar","createDataItem","validateDataElements","scrollbar","start","end","validateDataElement","container","legendDataItem","tempMaxWidth","maxWidth","legendSettings","createLegendMarker","useDefaultMarker","updateLegendValue","invalid","validate","__disabled","itemValueText","valueText","setState","afterDraw","getPropertyValue","maxLabelWidth","each","measuredWidth","pixelMarginLeft","pixelMarginRight","maxValueLabelWidth","maxMarkerWidth","maxAdjustedLabelWidth","trueMaxWidth","Math","min","scrollable","measuredHeight","pixelWidth","contentHeight","thumb","handleThumbPosition","updateMasks","contentAlign","maxColumns","invalidate","orientation","endGrip","startGrip","marginLeft","_mouseWheelDisposer","handleWheel","shift","ds","delta","dy","pixelY","maskRectangle","item","isHiding","isHidden","colorOrig","appeared","hidden","svgContainer","readerAlert","locale","handleDataItemPropertyChange","name","disabled"],"sourceRoot":""}