{"version":3,"file":"js/9486.32e64b8e.js","mappings":"yPAEU,EAAU,a,kBADlB,iBAcE,GAfJ,MAGK,eAAc,EAAAA,WACdC,WAAY,EAAAA,WACZ,gBAAe,EAAAC,aACfC,MAAO,EAAAC,WACPC,QAAS,EAAAA,QACT,mBAAkB,EAAAC,eAClBC,OAAQ,EAAAA,OACRC,QAAS,EAAAA,QACT,uBAAsB,EAAAC,mBACtBC,QAAS,EAAAA,QACTC,KAAM,EAAAH,QAAQG,KACd,eAAe,EAAAC,c,yKAdpB,8B,CCAO,MAIMC,EAAYC,GACF,MAAjBA,EACKA,EAEFC,OAAOD,EAAaE,QAAQ,KAAM,K,GCR3C,MAKQC,MAAM,iC,GALd,MAcQA,MAAM,uB,GAEDA,MAAM,Q,GACT,wBAEM,OAFDA,MAAM,oGAAmG,YAE9G,G,GAnBV,MAqCUA,MAAM,4B,qVApCd,iBA0DW,GA1DDC,QAAQ,cAAY,CACjBC,MAAI,cACb,IAQM,CAPG,EAAAnB,a,kBAQT,wBAoCM,MApCN,EAoCM,EAhCJ,wBAkBM,MAlBN,EAkBM,CAjBJ,I,oBAGA,wBAaM,iBAjChB,gBAqB6B,EAAAU,SAAVU,K,kBADT,wBAaM,OAXHC,IAAG,KAAOD,EAAOE,M,EAElB,iBAQa,GAPXL,OAzBd,qBAyBoB,mCACEG,EAAOE,OAAS,EAAAb,mBAAoB,8DAAgE,qDAC5G,eACCc,MAAM,EACN,QAAK,GAAEC,EAAAA,MAAM,gBAAiBJ,EAAOE,O,CA7BpD,uBA+Bc,IAAqB,EA/BnC,2CA+BiBG,EAAAA,GAAGL,EAAOE,OAAI,MA/B/B,K,uCAoCgB,EAAAjB,SAAW,EAAAC,iB,kBADnB,wBAKM,MALN,EAKM,EADJ,iBAAgB,Q,kBAElB,iBAME,GA/CV,MA2CUoB,IAAI,QACH,mBAAkB,QACnBT,MAAM,KACLU,QAAS,EAAAzB,c,4CA3Cd,wBAQM,MARN,EAQM,EAJJ,iBAGE,GAFCS,KAAM,EAAAA,KACPiB,WAAW,U,oBAyCI,YAAX,EAAArB,QAAwB,EAAAP,a,kBADhC,iBAQa,GAzDnB,MAmDQiB,MAAM,cACLY,GAAE,qCAA4C,EAAArB,QAAQsB,Y,CApD/D,uBAsDQ,IAEqB,EAFrB,iBAEqB,QAxD7B,uBAuDU,IAA+B,EAvDzC,2CAuDaL,EAAAA,GAAG,wBAAD,MAvDf,c,YAAA,uC,gBAiEA,GACEd,KAAM,cACNoB,WAAY,CACVC,gBAAe,KAEjBC,MAAO,CACL5B,QAAS,CACP6B,KAAMC,QACNC,SAAS,GAEX9B,eAAgB,CACd4B,KAAMC,QACNC,SAAS,GAEXpC,WAAY,CACVkC,KAAMC,QACNC,SAAS,GAEXnC,WAAY,CACViC,KAAMG,OACND,QAAS,QAEX5B,QAAS,CACP0B,KAAMG,OACND,QAAS,QAEXE,OAAQ,CACNJ,KAAMK,MACNH,QAAS,QAEXlC,aAAc,CACZgC,KAAMG,OACND,QAAS,QAEX7B,OAAQ,CACN2B,KAAMM,OACNJ,QAAS,IAEX1B,QAAS,CACPwB,KAAMK,MACNH,QAAS,IAAM,IAEjB3B,mBAAoB,CAClByB,KAAMM,OACNJ,QAAS,IAEXzB,KAAM,CACJuB,KAAMM,OACNJ,QAAS,KAGbK,MAAO,CACL,kB,WChHJ,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,Q,4CHmBA,GACE/B,KAAM,uBACNoB,WAAY,CACVY,eAAc,GAEhBV,MAAO,CACL1B,OAAQ,CAAE2B,KAAMM,OAAQJ,QAAS,KAEnC,KAAAQ,GACE,MAAMC,GAAiB,SACjBC,GAAkB,SAClBC,GAAiB,SACjBC,GAAa,SAEnB,MAAO,CAAEH,iBAAgBC,kBAAiBC,iBAAgBC,aAC5D,EACA,IAAAC,GACE,MAAO,CACLC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,YAAa,CACX,UACA,UACA,UACA,WAGN,EACAC,SAAU,CACR,UAAAnD,GACE,OAAOoD,KAAKR,eAAe5C,UAC7B,EACA,OAAAO,GACE,OAAO6C,KAAKR,eAAeS,eAC7B,EACA,OAAAjD,GACE,OAAOgD,KAAKR,eAAeU,iBAC7B,EACA,cAAAjD,GACE,OAAO+C,KAAKP,gBAAgBzC,OAC9B,EACA,cAAAmD,GACE,OAAOH,KAAKP,gBAAgBU,cAC9B,EACA,eAAAF,GACE,OAAOD,KAAKR,eAAeS,eAC7B,EACA,gBAAAG,GACE,OAAOJ,KAAKN,eAAeU,gBAC7B,EACA,iBAAAC,GACE,OAAOL,KAAKP,gBAAgBY,iBAC9B,EACA,kBAAAjD,GACE,OAAO4C,KAAKP,gBAAgBrC,kBAC9B,EACA,OAAAC,GACE,OAAO2C,KAAKP,gBAAgBpC,OAC9B,EACA,WAAAiD,GACE,OAAON,KAAKL,WAAWW,WACzB,EACA,UAAA3D,GAIE,OAAOqD,KAAKL,WAAWY,UACzB,EACA,QAAAC,GACE,OAAKR,KAAKpD,WAIHoD,KAAKpD,WAAW6D,SAHd,EAIX,EACA,YAAA5D,GACE,MAAO,CACL6D,MAAO,CACL7B,KAAM,SACN8B,gBAAsC,SAArBX,KAAKM,YAAyB,UAAY,UAC3DM,MAAO,CACLC,WAAY,YAEdC,QAAS,CACPC,WAAY,CACVC,UAAShB,KAAKiB,cAIpBC,MAAO,CACLC,UAAMC,EACNC,MAAO,OACPT,MAAO,CACLU,MAA4B,SAArBtB,KAAKM,YAAyB,UAAY,YAGrDiB,MAAO,CACLC,WAAYxB,KAAKjD,WACjB0E,cAAe,EACfC,kBAAmB,WACnBC,cAAoC,SAArB3B,KAAKM,YAAyB,UAAY,UACzDrB,OAAQ,CACN2B,MAAO,CACLU,MAA4B,SAArBtB,KAAKM,YAAyB,UAAY,UACjDsB,SAAU,OACVC,WAAY,OAKlBC,MAAO,CAEL,CACEZ,MAAO,CACLC,KAAM,IAERlC,OAAQ,CACN8C,QAA4B,QAAlB/B,KAAKQ,SAAsB,IAA2B,QAAlBR,KAAKQ,SAAsB,IAAO,IAAO,aAAiC,QAAlBR,KAAKQ,UAAwC,QAAlBR,KAAKQ,SAAqBR,KAAKQ,SAAW,IAC3KI,MAAO,CACLU,MAA4B,SAArBtB,KAAKM,YAAyB,UAAY,UACjDsB,SAAU,OACVC,WAAY,MAGhBF,cAAe,cACfK,UAAU,GAEZ,CACEd,MAAO,CACLC,KAAM,IAERlC,OAAQ,CACN8C,OAAQ,YACRnB,MAAO,CACLU,MAA4B,SAArBtB,KAAKM,YAAyB,UAAY,UACjDsB,SAAU,OACVC,WAAY,MAGhBF,cAAe,gBAGnBM,OAAQ,CACNC,UAAU,EACVC,aAAc,GACdC,UAAW,CACTd,MAA4B,SAArBtB,KAAKM,YAAyB,UAAY,WAEnDe,MAAO,QAETgB,QAAS,CACPC,cAAe,EACfzE,QAAS,GACT0E,QAAQ,GAEVC,QAAS,CACPxB,SAAS,GAEXyB,UAAW,CACTzB,SAAS,GAEX0B,OAAQ1C,KAAK2C,UACbC,YAAa,CACXC,OAAQ,CACNC,YAAa,GAEfJ,OAAQ,CACNK,WAAY,KAIpB,EACA,UAAAhG,GACE,IAAKiD,KAAKpD,WACR,MAAO,GAGT,IAAKoD,KAAKpD,WAAWoG,KACnB,MAAO,GAGT,IAAKhD,KAAKpD,WAAWqG,MACnB,MAAO,GAGT,GAAgC,cAA5BjD,KAAK5C,mBACP,OAAO4C,KAAKpD,WAAWsG,SAASC,KAAIC,GAAYA,EAASC,QAG3D,IAAIrD,KAAKhD,QAAS,CAChB,IAAIsG,GAAiB,EAErB,MAAM1D,EAAO,IAAKI,KAAKpD,WAAWoG,MAC5BO,EAAYvE,OAAOwE,KAAKxE,OAAOyE,OAAOzE,OAAOyE,OAAO7D,GAAM,IAAI,GAAG6D,QAEvE,IAAI3G,EAAQkD,KAAKpD,WAAWqG,MAC5B,MAAMS,EAAW5G,EAAM6G,WAAUC,GAAiB,QAAZA,EAAEP,QAIxC,GAFAC,EAAiBC,EAAUM,SAAS/G,EAAM4G,GAAUI,YAE/CR,EAAgB,CACnB,MAAMS,EAAajH,EAAM6G,WAAUC,GAAKA,EAAEE,YAAc3E,OAAOzB,OAAOZ,EAAM4G,GAAUI,WAAa,KACnGhH,EAAMkH,OAAOD,EAAY,GAEzBjH,EAAM4G,GAAUI,UAAY3E,OAAOzB,OAAOZ,EAAM4G,GAAUI,UAAY,GACxE,CAEA,OAAO9D,KAAKpD,WAAWqG,MAAME,KAAIC,GAAYA,EAASC,OACxD,CAEA,MAAO,EACT,EACA,KAAAvG,GACE,OAAKkD,KAAKpD,WAIsB,cAA5BoD,KAAK5C,mBACA4C,KAAKpD,WAAWsG,SAASC,KAAIC,GAAYA,EAASU,YAGpD9D,KAAKpD,WAAWqG,MAAME,KAAIC,GAAYA,EAASU,YAP7C,EAQX,EACA,SAAAnB,GACE,IAAK3C,KAAKpD,WACR,MAAO,GAGT,IAAKoD,KAAKpD,WAAWoG,KACnB,MAAO,GAGT,IAAIL,EAAY,GACZsB,EAAe,EA6CnB,OA3CAjE,KAAKK,kBAAkB8C,KAAKe,IAC1B,IAAIC,EAAgB,KAChBC,EAAa,GAqBjB,GApBIpE,KAAKpD,WAAWoG,KAAKkB,KACvBC,EAAgBnF,OAAOyE,OAAOzD,KAAKpD,WAAWoG,KAAKkB,IAAW,GAE9DlF,OAAOyE,OAAOzD,KAAKpD,WAAWoG,KAAKkB,IAAWf,KAAIkB,IAChD,GAAIrE,KAAKG,eAAe0D,SAASQ,EAAaC,OAAQ,CACpD,MAAMC,EAAiBvF,OAAOwE,KAAKa,EAAa,WAEhDrF,OAAOyE,OAAOY,EAAa,WAAWlB,KAAI,CAACqB,EAAOC,KAC5CzE,KAAKlD,MAAM+G,SAASU,EAAeE,KACrCL,EAAWM,KAAK,CAAEC,KAAMJ,EAAeE,GAAQD,MAAOA,EAAQhH,EAASgH,GAAS,KAClF,GAEJ,MAIJJ,EAAaA,EAAWQ,MAAK,CAACC,EAAGC,IACxBA,EAAEH,KAAOE,EAAEF,OACjBxB,KAAI4B,GAAaA,EAAUP,QAE1BL,EAAe,CACjB,MAAMa,IAAeb,GAA6C,eAA7BA,EAAcc,WAEnDtC,EAAU+B,KAAK,CACb7F,KAAMmG,EAAe,OAAS,SAC9B1H,KAAM6G,EAAcd,MACpBzD,KAAMwE,EACNtC,MAAOkD,EAAe,EAAI,EAC1B1D,MAA4B,SAArBtB,KAAKM,YAAyBN,KAAKF,YAAYmE,GAAgBjE,KAAKH,OAAOoE,IAEtF,CAEyB,SAArBjE,KAAKM,aAA0B2D,IAAiBjE,KAAKF,YAAYoF,QAErC,SAArBlF,KAAKM,aAA0B2D,IAAiBjE,KAAKH,OAAOqF,OADrEjB,EAAe,EAIfA,GACF,IAEKtB,CACT,GAEF,YAAAwC,GACMnF,KAAKR,eAAe5C,aACtBoD,KAAKR,eAAe4F,kBACpBpF,KAAKP,gBAAgB4F,sBAEjBC,aAAaC,mBACfvF,KAAKP,gBAAgB+F,YAAa9H,OAAO4H,aAAaC,oBAGpDD,aAAajF,mBACfL,KAAKP,gBAAgBgG,qBAAsBC,KAAKC,MAAML,aAAajF,oBAGzE,EACAuF,QAAQ,CACN,KAAAC,GACE7F,KAAKR,eAAe4F,iBACtB,EACA,YAAA7H,CAAcuI,GACZ9F,KAAKP,gBAAgBlC,aAAauI,GACpC9F,KAAK6F,OACL,IIpVJ,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASE,KAEpE,O,6FCNOnI,MAAM,kF,4LAAX,wBAaM,MAbN,EAaM,EAZJ,iBAGE,GAFC,iBAAgB,EAAAoI,uBAAuBC,eACxCrI,MAAM,mB,4BAER,iBAGE,GAFC,kBAAiB,EAAAsI,cAClBtI,MAAM,mB,6BAER,iBAGE,GAFCuI,IAAK,EAAAH,uBAAuBG,IAC7BvI,MAAM,mB,2BCTDA,MAAM,uD,GACJA,MAAM,8E,GAONA,MAAM,0E,GAGT,wBAEI,KAFDA,MAAM,wEAAuE,oBAEhF,G,6HAfR,iBAmBW,GAnBDA,MAAM,cAAc,CACjBE,MAAI,cACb,IAeM,EAfN,wBAeM,MAfN,EAeM,EAdJ,wBAKM,MALN,EAKM,EAJJ,iBAGE,GAFAF,MAAM,iCACNN,KAAK,cAGT,wBAOM,aANJ,wBAEI,IAFJ,GAEI,qBADC,EAAA8I,cAAeC,EAAAA,YAAY,EAAAD,eAAgB,OAAH,GAE7C,SAdV,K,CAwBE,OACE9I,KAAM,mBACNsB,MAAO,CACLsC,MAAO,CACLrC,KAAMM,OACNmH,UAAU,GAEZF,cAAe,CACbvH,KAAMM,OACNmH,UAAU,K,WC5BlB,MAAMjH,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,Q,SCJWzB,MAAM,uD,GACJA,MAAM,8E,GAONA,MAAM,0E,GAGNA,MAAM,wE,6HAbjB,iBAmBW,GAnBDA,MAAM,cAAc,CACjBE,MAAI,cACb,IAeM,EAfN,wBAeM,MAfN,EAeM,EAdJ,wBAKM,MALN,EAKM,EAJJ,iBAGE,GAFAF,MAAM,iCACNN,KAAK,iBAGT,wBAOM,aANJ,wBAEI,IAFJ,GAEI,qBADC,EAAAiJ,eAAa,IAElB,wBAEI,IAFJ,GAEI,qBADC,EAAAA,cAAe,EAAI,OAAS,OAAQ,mBACzC,UAhBV,K,CAwBE,OACEjJ,KAAM,mBACNsB,MAAO,CACLsC,MAAO,CACLrC,KAAMM,OACNmH,UAAU,GAEZC,cAAe,CACb1H,KAAMM,OACNmH,UAAU,KC5BlB,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,Q,SCJW1I,MAAM,uD,GACJA,MAAM,8E,GAONA,MAAM,0E,GAGT,wBAEI,KAFDA,MAAM,wEAAuE,oBAEhF,G,6HAfR,iBAmBW,GAnBDA,MAAM,cAAc,CACjBE,MAAI,cACb,IAeM,EAfN,wBAeM,MAfN,EAeM,EAdJ,wBAKM,MALN,EAKM,EAJJ,iBAGE,GAFAF,MAAM,iCACNN,KAAK,iBAGT,wBAOM,aANJ,wBAEI,IAFJ,GAEI,qBADC,EAAA6I,IAAM,IAAMK,EAAAA,QAAQ,EAAAL,KAAO,OAAJ,GAE5B,SAdV,K,CAwBE,OACE7I,KAAM,iBACNsB,MAAO,CACLsC,MAAO,CACLrC,KAAMM,OACNmH,UAAU,GAEZH,IAAK,CACHtH,KAAMM,OACNmH,UAAU,KC5BlB,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,KAEpE,Q,sBNiBA,GACIhJ,KAAM,wBACNoB,WAAY,CACR+H,iBAAgB,EAChBC,iBAAgB,EAChBC,eAAc,GAElB/H,MAAO,CACLf,QAAS,CACPgB,KAAMM,OACNJ,QAAS,KAGb,KAAAQ,GAEI,MAAMI,GAAa,SACbH,GAAiB,SAEvB,MAAO,CAAEG,aAAYH,iBAEzB,EACAO,SAAU,CACR,eAAAE,GACE,OAAOD,KAAKR,eAAeS,eAC7B,EACA,sBAAA+F,GACE,OAAOhG,KAAKR,eAAeoH,cAC7B,EACA,aAAAV,GACE,GAAGlG,KAAKR,gBAAgBoH,gBAAgBzJ,SAAS0J,iBAAkB,CACjE,MAAMC,EAAM,IAAIC,KACVC,EAAO,IAAID,KAAK/G,KAAKR,eAAeoH,eAAezJ,QAAQ0J,kBAAkBI,UAC7EC,EAAqBF,EAAOF,EAC5BK,EAAaC,KAAKC,MAAMH,EAAqB,KAC7CI,EAAWF,KAAKC,MAAMF,EAAa,IACnCI,EAAUH,KAAKI,KAAKF,EAAW,IACrC,OAAOC,EAAQE,UACjB,CAAO,MAAO,KAChB,IOzDN,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS1B,KAEpE,O","sources":["webpack://eucaps/./src/modules/financialChart/index.vue","webpack://eucaps/./src/js/helpers/numbers.js","webpack://eucaps/./src/modules/financialChart/_components/FinancialChart.vue","webpack://eucaps/./src/modules/financialChart/_components/FinancialChart.vue?6afb","webpack://eucaps/./src/modules/financialChart/index.vue?ef99","webpack://eucaps/./src/modules/infoCardsWidget/index.vue","webpack://eucaps/./src/modules/infoCardsWidget/_components/PreviousDividend.vue","webpack://eucaps/./src/modules/infoCardsWidget/_components/PreviousDividend.vue?26ae","webpack://eucaps/./src/modules/infoCardsWidget/_components/DaysToNextReport.vue","webpack://eucaps/./src/modules/infoCardsWidget/_components/DaysToNextReport.vue?ea51","webpack://eucaps/./src/modules/infoCardsWidget/_components/ProfitPerStock.vue","webpack://eucaps/./src/modules/infoCardsWidget/_components/ProfitPerStock.vue?7f40","webpack://eucaps/./src/modules/infoCardsWidget/index.vue?dd81"],"sourcesContent":["<template>\n <FinancialChart\n v-if=\"financials\"\n :is-logged-in=\"isLoggedIn\"\n :financials=\"financials\"\n :chart-options=\"chartOptions\"\n :years=\"yearLabels\"\n :loading=\"loading\"\n :new-data-loading=\"newDataLoading\"\n :source=\"source\"\n :company=\"company\"\n :selected-period-code=\"selectedPeriodCode\"\n :periods=\"periods\"\n :name=\"company.name\"\n @select-period=\"selectPeriod\"\n />\n</template>\n\n<script>\nimport { toNumber } from '../../js/helpers/numbers'\nimport FinancialChart from './_components/FinancialChart'\nimport { useCompaniesStore } from '../../stores/companies'\nimport { useFinancialsStore } from '../../stores/financials'\nimport { useScreenersStore } from '../../stores/screeners'\nimport { useUsersStore } from '../../stores/users'\n\nexport default {\n name: 'FinancialChartModule',\n components: {\n FinancialChart\n },\n props: {\n source: { type: String, default: ''}\n },\n setup(){\n const companiesStore = useCompaniesStore()\n const financialsStore = useFinancialsStore()\n const screenersStore = useScreenersStore()\n const usersStore = useUsersStore()\n\n return { companiesStore, financialsStore, screenersStore, usersStore }\n },\n data () {\n return {\n colors: [\n '#0BC773',\n '#311C3B',\n '#56F69B',\n '#634273',\n '#a984bb',\n '#9b6ab3',\n '#ee5a29',\n '#cd4a1f',\n '#e16942',\n '#fde0a7',\n '#dfc288',\n '#cba966',\n '#e9ba5d',\n '#75e89c',\n '#4ca56a',\n '#7cbd92',\n '#afd1ba'\n ],\n lightColors: [\n '#75e89c',\n '#ee5a29',\n '#fde0a7',\n '#ddcae6'\n ]\n }\n },\n computed: {\n financials(){ \n return this.companiesStore.financials\n },\n company() {\n return this.companiesStore.selectedCompany\n },\n loading(){\n return this.companiesStore.loadingFinancials\n },\n newDataLoading(){\n return this.financialsStore.loading\n },\n selectedGroups(){\n return this.financialsStore.selectedGroups\n },\n selectedCompany(){\n return this.companiesStore.selectedCompany\n },\n selectedCurrency(){\n return this.screenersStore.selectedCurrency\n },\n selectedMnemonics(){\n return this.financialsStore.selectedMnemonics\n },\n selectedPeriodCode(){\n return this.financialsStore.selectedPeriodCode\n },\n periods(){\n return this.financialsStore.periods\n },\n activeTheme(){\n return this.usersStore.activeTheme\n },\n isLoggedIn() {\n // if(this.usersStore.user && this.usersStore.user.profile_type?.length > 0 && this.usersStore.user.profile_type.indexOf('GuestUser') > -1)\n // return false\n // else return true\n return this.usersStore.isLoggedin\n },\n currency () {\n if (!this.financials) {\n return ''\n }\n\n return this.financials.CURRENCY\n },\n chartOptions () {\n return {\n chart: {\n type: 'column',\n backgroundColor: this.activeTheme === 'dark' ? '#482A57' : '#FFFFFF',\n style: {\n fontFamily: 'Urbanist'\n },\n zooming: {\n mouseWheel: {\n enabled: this.enableZoom ? true : false\n }\n },\n },\n title: {\n text: undefined,\n align: 'left',\n style: {\n color: this.activeTheme === 'dark' ? '#F8EEFD' : '#333333'\n }\n },\n xAxis: {\n categories: this.yearLabels,\n gridLineWidth: 1,\n gridLineDashStyle: 'longdash',\n gridLineColor: this.activeTheme === 'dark' ? '#634273' : '#e6e6e6',\n labels: {\n style: {\n color: this.activeTheme === 'dark' ? '#F8EEFD' : '#333333',\n fontSize: '12px',\n fontWeight: 500\n },\n \n }\n },\n yAxis: [\n // primary y-axis\n {\n title: {\n text: ''\n },\n labels: {\n format: ((this.currency === 'EUR' && '€') || (this.currency === 'GBP' && '£' || '')) + '{value}M ' + (this.currency !== 'EUR' && this.currency !== 'GBP' ? this.currency : ''),\n style: {\n color: this.activeTheme === 'dark' ? '#F8EEFD' : '#80879C',\n fontSize: '12px',\n fontWeight: 500\n }\n },\n gridLineColor: 'transparent',\n opposite: true\n },\n {\n title: {\n text: ''\n },\n labels: {\n format: '{value} %',\n style: {\n color: this.activeTheme === 'dark' ? '#F8EEFD' : '#80879C',\n fontSize: '12px',\n fontWeight: 500 \n }\n },\n gridLineColor: 'transparent',\n }\n ],\n legend: {\n reversed: false,\n symbolRadius: 10,\n itemStyle: {\n color: this.activeTheme === 'dark' ? '#F8EEFD' : '#80879C'\n },\n align: 'left'\n },\n tooltip: {\n valueDecimals: 2,\n padding: 12,\n shadow: true,\n },\n credits: {\n enabled: false\n },\n exporting: {\n enabled: false\n },\n series: this.chartData,\n plotOptions: {\n column: {\n borderWidth: 0\n },\n series: {\n pointWidth: 25\n }\n }\n }\n },\n yearLabels () {\n if (!this.financials) {\n return []\n }\n\n if (!this.financials.DATA) {\n return []\n }\n\n if (!this.financials.YEARS) {\n return []\n }\n\n if (this.selectedPeriodCode === 'quarterly') {\n return this.financials.QUARTERS.map(yearItem => yearItem.label)\n }\n\n if(!this.loading) {\n let hasCurrentYear = false\n\n const data = { ...this.financials.DATA }\n const dataYears = Object.keys(Object.values(Object.values(data)[0])[0].values)\n\n let years = this.financials.YEARS\n const ltmIndex = years.findIndex(y => y.label === 'LTM')\n\n hasCurrentYear = dataYears.includes(years[ltmIndex].periodKey)\n \n if (!hasCurrentYear) {\n const removeYear = years.findIndex(y => y.periodKey === String(Number(years[ltmIndex].periodKey) - 1))\n years.splice(removeYear, 1)\n\n years[ltmIndex].periodKey = String(Number(years[ltmIndex].periodKey - 1))\n }\n\n return this.financials.YEARS.map(yearItem => yearItem.label)\n }\n\n return []\n },\n years () {\n if (!this.financials) {\n return []\n }\n\n if (this.selectedPeriodCode === 'quarterly') {\n return this.financials.QUARTERS.map(yearItem => yearItem.periodKey)\n }\n\n return this.financials.YEARS.map(yearItem => yearItem.periodKey)\n },\n chartData () {\n if (!this.financials) {\n return []\n }\n\n if (!this.financials.DATA) {\n return []\n }\n\n let chartData = []\n let colorCounter = 0\n\n this.selectedMnemonics.map((mnemonic) => {\n let firstMnemonic = null\n let dataPoints = []\n if (this.financials.DATA[mnemonic]) {\n firstMnemonic = Object.values(this.financials.DATA[mnemonic])[0]\n\n Object.values(this.financials.DATA[mnemonic]).map(mnemonicData => {\n if (this.selectedGroups.includes(mnemonicData.group)) {\n const dataPointYears = Object.keys(mnemonicData['values'])\n\n Object.values(mnemonicData['values']).map((value, index) => {\n if (this.years.includes(dataPointYears[index])) {\n dataPoints.push({ year: dataPointYears[index], value: value ? toNumber(value) : '-' })\n }\n })\n }\n })\n }\n\n dataPoints = dataPoints.sort((a, b) => {\n return b.year - a.year\n }).map(valueItem => valueItem.value)\n\n if (firstMnemonic) {\n const isPercentage = firstMnemonic ? firstMnemonic.value_type === 'percentage' : false\n\n chartData.push({\n type: isPercentage ? 'line' : 'column',\n name: firstMnemonic.label,\n data: dataPoints,\n yAxis: isPercentage ? 1 : 0, // sets the value with the primary y-axis\n color: this.activeTheme === 'dark' ? this.lightColors[colorCounter] : this.colors[colorCounter]\n })\n }\n\n if (this.activeTheme === 'dark' && colorCounter === this.lightColors.length) {\n colorCounter = 0\n } else if (this.activeTheme !== 'dark' && colorCounter === this.colors.length) {\n colorCounter = 0\n } else {\n colorCounter++\n }\n })\n return chartData\n }\n },\n beforeCreate () {\n if(!this.companiesStore.financials) {\n this.companiesStore.fetchFinancials()\n this.financialsStore.fetchCompanyFilters()\n\n if (localStorage.selectedGroupsKey) {\n this.financialsStore.selectGroup( Number(localStorage.selectedGroupsKey))\n }\n\n if (localStorage.selectedMnemonics) {\n this.financialsStore.setSelectedMnemonics( JSON.parse(localStorage.selectedMnemonics))\n }\n }\n },\n methods:{\n fetch () {\n this.companiesStore.fetchFinancials()\n },\n selectPeriod (periodCode) {\n this.financialsStore.selectPeriod(periodCode)\n this.fetch()\n },\n }\n}\n</script>\n","export const formatPrice = (price) => {\n return parseFloat(price).toLocaleString('sv')\n}\n\nexport const toNumber = (numberString) => {\n if (numberString === '-') {\n return numberString\n }\n return Number(numberString.replace(/,/g, ''))\n}\n","<template>\n <BaseCard padding=\"h-full p-0\">\n <template #body>\n <div\n v-if=\"!isLoggedIn\"\n class=\"py-20 px-10 items-center flex\"\n >\n <SignUpCPPBanner\n :name=\"name\"\n background=\"orange\"\n />\n </div> \n <div\n v-else\n class=\"pl-4 pt-4 space-y-4\"\n >\n <div class=\"flex\">\n <div class=\"text-custom-purple-500 dark:text-custom-purple-100 text-lg font-bold pl-2 mr-8 flex items-center\"> \n Result\n </div>\n <div\n v-for=\"period in periods\"\n :key=\"'p-'+period.code\"\n >\n <BaseButton\n class=\" text-sm font-medium rounded-none\"\n :class=\"period.code === selectedPeriodCode? ' text-custom-green-600 border-b-2 border-b-custom-green-600' : 'text-custom-gray-400 dark:text-custom-purple-200'\"\n no-shadow\n :bold=\"false\"\n @click=\"$emit('select-period', period.code)\"\n >\n {{ $t(period.code) }}\n </BaseButton>\n </div>\n </div>\n <div\n v-if=\"loading || newDataLoading\"\n class=\"flex justify-center py-4\"\n >\n <CircleLoader />\n </div>\n <highcharts\n v-else\n ref=\"chart\"\n :constructor-type=\"'chart'\"\n class=\"hc\"\n :options=\"chartOptions\"\n />\n </div>\n <RouterLink\n v-if=\"source === 'company' && isLoggedIn\"\n class=\"text-center\"\n :to=\"{name: 'companyFinancials', params: { id: company.slug_url }}\"\n >\n <WidgetFooterButton>\n {{ $t('See more financials') }}\n </WidgetFooterButton>\n </RouterLink>\n </template>\n </BaseCard>\n</template>\n\n<script>\nimport SignUpCPPBanner from '@/modules/signUpCPPBanner'\n\nexport default {\n name: 'ChartWidget',\n components: {\n SignUpCPPBanner\n },\n props: {\n loading: {\n type: Boolean,\n default: false\n },\n newDataLoading: {\n type: Boolean,\n default: false\n },\n isLoggedIn: {\n type: Boolean,\n default: false\n },\n financials: {\n type: Object,\n default: () => {}\n },\n company: {\n type: Object,\n default: () => {}\n },\n labels: {\n type: Array,\n default: () => {}\n },\n chartOptions: {\n type: Object,\n default: () => {}\n },\n source: {\n type: String,\n default: ''\n },\n periods: {\n type: Array,\n default: () => []\n },\n selectedPeriodCode: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n }\n },\n emits: [\n 'select-period' \n ]\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>\n","import { render } from \"./FinancialChart.vue?vue&type=template&id=0410bb7a\"\nimport script from \"./FinancialChart.vue?vue&type=script&lang=js\"\nexport * from \"./FinancialChart.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=069c928d\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"flex sm:flex-row flex-col sm:space-x-6 space-x-0 space-y-2 sm:space-y-0 w-full\">\n <PreviousDividend\n :dividend-yield=\"selectedCompanyDetails.dividend_yield\"\n class=\"sm:w-1/3 w-full\"\n />\n <DaysToNextReport\n :next-report-day=\"daysRemaining\"\n class=\"sm:w-1/3 w-full\"\n />\n <ProfitPerStock\n :eps=\"selectedCompanyDetails.eps\"\n class=\"sm:w-1/3 w-full\"\n />\n </div>\n</template>\n\n<script>\nimport PreviousDividend from './_components/PreviousDividend'\nimport DaysToNextReport from './_components/DaysToNextReport'\nimport ProfitPerStock from './_components/ProfitPerStock.vue'\nimport { useUsersStore } from \"@/stores/users\"\nimport { useCompaniesStore } from \"@/stores/companies\"\n\nexport default {\n name: 'InfoCardsWidgetModule',\n components: {\n PreviousDividend,\n DaysToNextReport,\n ProfitPerStock\n },\n props: {\n padding: {\n type: String,\n default: ''\n }\n },\n setup() {\n\n const usersStore = useUsersStore()\n const companiesStore = useCompaniesStore()\n\n return { usersStore, companiesStore }\n\n },\n computed: {\n selectedCompany() {\n return this.companiesStore.selectedCompany\n },\n selectedCompanyDetails() {\n return this.companiesStore.companyDetails\n },\n daysRemaining() {\n if(this.companiesStore?.companyDetails?.company?.next_report_date) {\n const now = new Date()\n const time = new Date(this.companiesStore.companyDetails.company.next_report_date).getTime()\n const diffInMilliseconds = time - now\n const minutesAgo = Math.floor(diffInMilliseconds / (60 * 1000))\n const hoursAgo = Math.floor(minutesAgo / 60)\n const daysAgo = Math.ceil(hoursAgo / 24)\n return daysAgo.toString()\n } else return 'n/a'\n },\n\n },\n\n}\n</script>\n","<template>\n <BaseCard class=\" h-full p-3 \">\n <template #body>\n <div class=\"flex justify-start items-center space-x-4 py-1 px-2\">\n <div class=\"w-9 h-9 bg-custom-orange-100 rounded-full flex items-center justify-center\">\n <Icon\n class=\"text-xl text-custom-orange-400\"\n name=\"wallet\"\n />\n </div>\n <div>\n <p class=\"text-custom-purple-500 dark:text-custom-purple-100 font-bold text-base\">\n {{ dividendYield? $percentage(dividendYield): 'n/a' }}\n </p>\n <p class=\"text-custom-gray-400 dark:text-custom-purple-200 font-medium text-sm\">\n Dividend Yield\n </p>\n </div>\n </div>\n </template> \n </BaseCard>\n</template>\n \n <script>\n export default {\n name: 'PreviousDividend',\n props: {\n title: {\n type: String,\n required: true,\n },\n dividendYield: {\n type: String,\n required: true,\n },\n },\n };\n </script>","import { render } from \"./PreviousDividend.vue?vue&type=template&id=1116fa1a\"\nimport script from \"./PreviousDividend.vue?vue&type=script&lang=js\"\nexport * from \"./PreviousDividend.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <BaseCard class=\" h-full p-3 \">\n <template #body>\n <div class=\"flex justify-start items-center space-x-4 py-1 px-2\">\n <div class=\"w-9 h-9 bg-custom-orange-100 rounded-full flex items-center justify-center\">\n <Icon\n class=\"text-xl text-custom-orange-400\"\n name=\"time-five\"\n />\n </div>\n <div>\n <p class=\"text-custom-purple-500 dark:text-custom-purple-100 font-bold text-base\">\n {{ nextReportDay }}\n </p>\n <p class=\"text-custom-gray-400 dark:text-custom-purple-200 font-medium text-sm\">\n {{ nextReportDay >1 ? 'Days' : 'Day' }} to next report\n </p>\n </div>\n </div>\n </template>\n </BaseCard>\n</template>\n \n <script>\n export default {\n name: 'DaysToNextReport',\n props: {\n title: {\n type: String,\n required: true,\n },\n nextReportDay: {\n type: String,\n required: true,\n },\n },\n };\n </script>","import { render } from \"./DaysToNextReport.vue?vue&type=template&id=c5321e0c\"\nimport script from \"./DaysToNextReport.vue?vue&type=script&lang=js\"\nexport * from \"./DaysToNextReport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <BaseCard class=\" h-full p-3 \">\n <template #body>\n <div class=\"flex justify-start items-center space-x-4 py-1 px-2\">\n <div class=\"w-9 h-9 bg-custom-orange-100 rounded-full flex items-center justify-center\">\n <Icon\n class=\"text-xl text-custom-orange-400\"\n name=\"bar-chart\"\n />\n </div>\n <div>\n <p class=\"text-custom-purple-500 dark:text-custom-purple-100 font-bold text-base\">\n {{ eps ? '€' + $number(eps) : 'n/a' }} \n </p>\n <p class=\"text-custom-gray-400 dark:text-custom-purple-200 font-medium text-sm\">\n Profit / stock\n </p>\n </div>\n </div>\n </template>\n </BaseCard>\n</template>\n \n <script>\n export default {\n name: 'ProfitPerStock',\n props: {\n title: {\n type: String,\n required: true,\n },\n eps: {\n type: String,\n required: true,\n },\n },\n };\n </script>","import { render } from \"./ProfitPerStock.vue?vue&type=template&id=63f920e2\"\nimport script from \"./ProfitPerStock.vue?vue&type=script&lang=js\"\nexport * from \"./ProfitPerStock.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=732b3dda\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["isLoggedIn","financials","chartOptions","years","yearLabels","loading","newDataLoading","source","company","selectedPeriodCode","periods","name","selectPeriod","toNumber","numberString","Number","replace","class","padding","body","period","key","code","bold","$emit","$t","ref","options","background","to","slug_url","components","SignUpCPPBanner","props","type","Boolean","default","Object","labels","Array","String","emits","__exports__","FinancialChart","setup","companiesStore","financialsStore","screenersStore","usersStore","data","colors","lightColors","computed","this","selectedCompany","loadingFinancials","selectedGroups","selectedCurrency","selectedMnemonics","activeTheme","isLoggedin","currency","CURRENCY","chart","backgroundColor","style","fontFamily","zooming","mouseWheel","enabled","enableZoom","title","text","undefined","align","color","xAxis","categories","gridLineWidth","gridLineDashStyle","gridLineColor","fontSize","fontWeight","yAxis","format","opposite","legend","reversed","symbolRadius","itemStyle","tooltip","valueDecimals","shadow","credits","exporting","series","chartData","plotOptions","column","borderWidth","pointWidth","DATA","YEARS","QUARTERS","map","yearItem","label","hasCurrentYear","dataYears","keys","values","ltmIndex","findIndex","y","includes","periodKey","removeYear","splice","colorCounter","mnemonic","firstMnemonic","dataPoints","mnemonicData","group","dataPointYears","value","index","push","year","sort","a","b","valueItem","isPercentage","value_type","length","beforeCreate","fetchFinancials","fetchCompanyFilters","localStorage","selectedGroupsKey","selectGroup","setSelectedMnemonics","JSON","parse","methods","fetch","periodCode","render","selectedCompanyDetails","dividend_yield","daysRemaining","eps","dividendYield","$percentage","required","nextReportDay","$number","PreviousDividend","DaysToNextReport","ProfitPerStock","companyDetails","next_report_date","now","Date","time","getTime","diffInMilliseconds","minutesAgo","Math","floor","hoursAgo","daysAgo","ceil","toString"],"sourceRoot":""}