{"version":3,"sources":["webpack:///./src/util/bus.js","webpack:///./src/util/debounce.js","webpack:///./src/router/index.js","webpack:///./src/store/mutations.js","webpack:///./src/centrifugo/chat.js","webpack:///./src/store/actions.js","webpack:///./src/util/cacheAxios.js","webpack:///./src/store/modules/newsModule.js","webpack:///./src/store/modules/hrNewsModule.js","webpack:///./src/store/modules/disruptorsModule.js","webpack:///./src/util/abbreviateNumber.js","webpack:///./src/store/modules/financeModule.js","webpack:///./src/store/modules/companyListModule.js","webpack:///./src/store/modules/benchmarkModule.js","webpack:///./src/store/modules/econPredictorModule.js","webpack:///./src/store/modules/companyIndexesModule.js","webpack:///./src/store/modules/institutionModule.js","webpack:///./src/store/modules/orgChartModule.js","webpack:///./src/store/modules/jobModule.js","webpack:///./src/store/modules/unigradsModule.js","webpack:///./src/store/modules/minWageModule.js","webpack:///./src/store/modules/hrPredictModule.js","webpack:///./src/store/modules/relocationModule.js","webpack:///./src/store/modules/newsTaggerModule.js","webpack:///./src/store/modules/zhaopinModule.js","webpack:///./src/store/modules/legislationModule.js","webpack:///./src/store/modules/livingCostModule.js","webpack:///./src/store/modules/freshGradSalModule.js","webpack:///./src/store/modules/executivePayModule.js","webpack:///./src/store/modules/adminModule.js","webpack:///./src/store/modules/genderModule.js","webpack:///./src/store/state.js","webpack:///./src/main.js","webpack:///./src/App.vue?3172","webpack:///./src/util/permCheck.js","webpack:///App.vue","webpack:///./src/components/Chatbox.vue?f8cb","webpack:///Chatbox.vue","webpack:///./src/components/Chat.vue?3f4e","webpack:///Chat.vue","webpack:///./src/components/Chat.vue?8e67","webpack:///./src/components/Chatbox.vue?5e5f","webpack:///./src/App.vue?d9be","webpack:///./src/assets/mrclogo.svg"],"names":["__WEBPACK_IMPORTED_MODULE_0_vue__","__webpack_require__","__webpack_exports__","Vue","func","wait","immediate","timeout","_len","arguments","length","args","Array","_key","context","this","callNow","clearTimeout","setTimeout","apply","use","Router","router","routes","path","name","component","e","then","bind","meta","permissions","props","_ref","query","country","sector","indicator","_ref2","_ref3","_ref4","region","indicatorGroup","_ref5","countryCode","countryName","children","_ref6","countryLocal","mutations","setChatUser","state","user","chatUser","chatMode","backToChatList","setChatStatus","status","chatStatus","addContact","contact","contacts","extends_default","defineProperty_default","userId","removeContact","omit","setChatChoices","choices","chatChoices","setContacts","newContacts","forEach","c","addOnlineContacts","onlineContacts","uniqBy","toConsumableArray_default","removeOnlineContact","filter","addCurrencyExchangeRates","rates","currencyExchangeRates","concat","setCent","cent","setRead","msg","fromUserId","currentUser","userid","toUserId","msges","i","findIndex","m","timestamp","set","setMsges","userChatLogPulled","setUnreadMsges","groupBy","setChatActive","active","chatActive","addMsg","push","speech","voiceMsg","SpeechSynthesisUtterance","voice","window","speechSynthesis","getVoices","speak","setCurrentUserCountry","val","currentUserCountry","setCurrentUser","setCompareGlobal","actions","compareGlobal","setDrillByIndustry","drillByIndustry","setHistorical","historical","setMakePrediction","makePrediction","setFinancialReports","dataSourceSelections","employeesReacted","recruitmentPosting","newsObserved","financialReports","setEmployeesReacted","setRecruitmentPosting","setNewsObserved","centrifuge","subscriptions","chat","config","cf","sockJS","SockJS","Centrifuge","channel","callbacks","s","subscribe","unsubscribe","connect","getChatEvent","commit","dispatch","message","dataset","data","kind","chatLine","audio","Audio","Notification","permission","n","body","icon","silent","play","close","requestPermission","bus","$emit","error","errContext","console","log","stringify_default","getPresenceEvents","presence","keys_default","map","key","default_info","err","join","leave","disableChat","MessagingService","axios","post","enableChat","userName","username","company","initChat","url","token","info","chatWith","sendMessage","_ref7","_ref8","now","Date","toISOString","getChatStatus","_ref9","get","res","catch","response","location","href","getAllContacts","_ref10","getCurrencies","_ref11","currencies","existing","currencyCode","newCur","difference","setReadTimestamp","_ref12","readMsges","readTimestamp","getUnreadMsges","_ref13","getUserMsges","_ref14","initEchartsMap","mapStorage","localforage","createInstance","getItem","echarts","registerMap","setItem","getCurrentUser","_ref15","logout","cacheAxios","cache","interceptors","request","stringKey","cacheKey","promise_default","a","reject","JSON","parse","value","resolve","newsAxios","create","map_default","newsModule","bizSortBy","searchText","newsLoading","startDate","endDate","countrySelected","newsIndexes","negativeCountryNews","positiveCountryNews","startDateFilter","endDateFilter","industryFilter","industries","loading","newsChartOptions","backgroundColor","title","text","subtext","left","top","subtextStyle","fontSize","color","textStyle","tooltip","trigger","visualMap","type","min","max","realtime","calculable","dimension","inRange","series","mapType","roam","selectedMode","label","normal","show","emphasis","itemStyle","borderColor","borderWidth","areaColor","setBizSortBy","sort","setSearchText","setNewsIndexes","indexes","setNewsLoading","setPositiveCountryNews","news","setNegativeCountryNews","appendPositiveCountryNews","appendNegativeCountryNews","setCountrySelected","mappedData","selected","series0","cty","addIndustryFilter","industry","removeIndustryFilter","setData","setStartDate","date","setEndDate","setIndustries","setLoading","setStartDateFilter","slice","setEndDateFilter","initNewsData","industryMapNew","source","category","changeBizSortBy","sortBy","getNews","getMorePositiveNews","k","toLowerCase","postPosBody","start","end","sentiment_type","trim","fromIndex","published","b","getMoreNegativeNews","postNegBody","getNewsIndex","filterDataByDate","dateSelection","getters","getScoreByDateAndIndustries","postBody","hrNewsAxios","seriesDefault","hrNewsModule","hrCategories","hrChartLoading","hrSearchText","hrNewsLoading","hrStartDate","hrEndDate","hrCountrySelected","negativeHrNews","positiveHrNews","hrStartDateFilter","hrEndDateFilter","hrCategoryFilter","hrChartOptions","setSortBy","setHrData","setHrSearchText","setHrCategories","categories","setHrNewsLoading","setPositiveHrNews","setNegativeHrNews","appendPositiveHrNews","appendNegativeHrNews","setHrCountrySelected","addHrCategoryFilter","removeHrCategoryFilter","setHrStartDate","setHrEndDate","setHrChartLoading","setHrStartDateFilter","setHrEndDateFilter","initHrCategory","cat","id","legislationArticleTypes","art","underLegislation","changeSortBy","getHrNews","getMorePositiveHrNews","getMoreNegativeHrNews","filterHrByDate","getScoreByDateAndCategories","disruptorsModule","allNews","revMomen","costMomen","setAllNews","setRevMomen","setCostMomen","initDisruptorsData","arr","task","data_type","cos","undefined","companies","resR","resC","SI_PREFIXES","abbreviateNumber","number","tier","log10_default","Math","abs","prefix","formatted","scale","toFixed","test","substr","financeAxios","financeModule","chartLoading","indicatorSelected","companySelected","sectors","countries","relevantCompanies","relevantCompaniesIndicators","indicators","code","financeChartOptions","xAxis","splitLine","yAxis","axisLabel","formatter","grid","right","bottom","legend","orient","align","z","param","seriesName","opacity","symbolSize","setIndicatorSelected","setCompanySelected","setCountries","setSectors","setChartLoading","setRelevantCompanies","setRelevantCompaniesIndicators","plotBox","extractedCompIndicators","reportDate","shortName","groupedCompIndicators","keys","avg","statsLite","mean","arrayChartData","dataTool","prepareBoxplotData","axisData","namedBoxData","boxData","boxSeries","sortedKeys","companyDots","indexOf","outlierSeries","outliers","indicatorItem","find","unplotBox","unplotCompany","companySeries","plotCompany","compIndicator","companyData","indicatorSet","initFinanceData","getCompaniesByCountryAndIndustries","gicsCode","compNumber","indicatorQuery","sectorsTree","igChildren","industryGroups","ig","industryChilren","subIndustryChildren","subIndustries","si","companyListAxios","companyListModule","years","yearFilter","countryFilter","sectorFilter","companyIndicators","companyIndicatorSelected","setCompanyListYears","setCompanyListCountries","setCompanyListYearFilter","setCompanyListCountryFilter","setCompanyListSectorFilter","setCompanyIndicators","addCompanyIndicators","index","longName","removeCompanyIndicators","setCompanyIndicatorSelected","initCountries","initYears","retrieveUserCompanyIndicators","getCompanyIndicators","q","year","saveCompanyIndicators","deleteCompanyIndicators","delete","benchmarkAxios","companyComparator","c1","c2","exchange","stockSymbol","indicatorsMapping","lineStyle","width","rotate","distance","verticalAlign","benchmarkModule","indicatorsMeta","filteredCompanies","competitorsIndicators","competitors","chartOptions","axisPointer","crossStyle","toolbox","feature","magicType","line","bar","dataView","readOnly","lang","optionToContent","opt","table","_loop","l","j","cell","row","restore","saveAsImage","barWidth","lbl","setIndicatorsMeta","metas","removeAllCompetitors","removeCompetitors","differenceWith","appendCompetitors","uniqWith","addCompetitorsIndicators","metrics","financeMetrics","ind","totalRevenueUsd","netIncomeUsd","totalCostUsd","met","numerator","denominator","freeze_default","setFilteredCompanies","plotPinnedRevenueAndCosts","sortedIndicators","trKey","tcKey","scKey","tr","tc","sc","legendData","newLegend","clear","plotPinnedChart","values","plotCompetitorsChartCombine","xAxisData","mSeries","uniq","plotCompetitorsChart","saveCompanyList","_","list","retrieveCompanyList","removeCompanyList","listName","preparePlotCompetitorCombine","companySelections","solidLineStyle","relevantIndicators","matches","grouped","dates","trMax","tcMax","scMax","validDates","trMid","stats","median","tcMid","scMid","includes","preparePlotCompetitorChart","sorted","item","d","filteredList","low","percentile","mid","hi","retrieveCompetitorsIndicators","coms","com","getIndicatorsMetas","grp","filterAndPlot","searchLongName","filterCompanies","econPredictorAxios","buildYaxis","gridIndex","buildSeries","dataCountryCode","userCountryCode","showSymbol","justUseValue","built","xAxisIndex","yAxisIndex","usdValue","singleGrid","dataZoom","econPredictorModule","regionsGroup","regionSelected","countriesForPlot","economyIndicatorSelected","economyIndicatorHistoryMap","imfIndicatorMetas","setImfIndicatorMetas","setRegionsGroup","regionsGrp","addEconomyIndicatorHistoryMap","maps","setEconomyIndicatorSelected","setUserCountry","userCountry","clearCountriesForPlot","removeCountriesForPlot","cc","appendCountriesForPlot","some","setRegionSelected","plotSingleChart","legendSingle","plotMultipleChart","saveEconLocationList","retrieveEconLocationList","removeEconLocationList","getImfIndicatorMetas","getEconomyIndicatorHistory","fCountries","separate","prepareSingleChart","rootState","cond1","cond2","cond3","imfCode","units","prepareMultipleCharts","count","sqrt","rows","round","cols","ceil","height","g","floor","containLabel","unit","t","textAlign","fontWeight","getRegionsGroup","imfIndicatorsTree","groupped","rank","companyIndexesAxios","companyIndexesModule","costPressures","salaryCostPressures","revMomentums","expansionThreats","customersNote","suppliersNote","competitorsNote","disruptorsNote","setSalaryCostPressures","setCostPressures","setRevMomentums","setExpansionThreats","setNote","module","note","getAllSalaryCostPressures","getAllCostPressures","getAllRevMomentums","getAllExpansionThreats","getDisruptorsNote","getCustomersNote","getSuppliersNote","getCompetitorsNote","saveNote","institutionAxios","institutionModule","institutionIndexes","setInstitutionIndexes","setInstitutionNote","getAllInstitutionalIndexes","getInstitutionNote","saveInstitutionNote","orgChartAxios","orgChartModule","orgChartCompanies","topCharts","topCompaniesPeople","selectedCompanyPeoples","setSelectedCompanyPeoples","peoples","setTopCompaniesPeople","setFilteredOrgCompanies","setTopCharts","filterOrgChartCompanies","all","loadTopCharts","companyId","loadChart","jobAxios","legendRef","jobModule","jobTrends","jobCountries","jobDemandMatrix","jobSupplyMatrix","hrIndicators","hrIndicatorHistory","lvlFuncChartOptions","lvlFuncChartLoading","jobTotalChartLoading","jobTotalChartOptions","setJobTrends","trends","addHrIndicatorHistory","setHrIndicators","setJobSupplyMatrix","matrix","setJobCountries","setJobDemandMatrix","final","plotLvlFunctionChart","selections","lvlOrFn","xData","selectionsDataMap","jt","plotJobTotalNoChart","countryInfos","sectorMap","prepend","postpend","seriesData","totalCount","plotHrIndicator","chartsToPlot","o","getJobTrends","getHrIndicatorHistory","filteredQuery","group","v","y","getHrIndicators","description","desc","high","lo","getJobDemandMatrix","getJobSupplyMatrix","ctyC","continent","ctn","reg","globalCompetitivenessIndex","gci","hrCompetitivenessIndex","hci","educationIndex","ei","innovation","inn","labourMarketEfficiency","lme","initJobCountries","filterJobCompanies","jobFilter","countryInfoMap","econPredictor","ci","finance","ugradsAxios","unigradsModule","UniGradsYearSelected","UniGradsYears","UniGradsCountries","UniGradsCStates","filteredUniversities","filteredCourses","filteredData","setUniGradsYears","setUniGradsCountries","setUniGradsCStates","cstates","setUniGradsUnisByLoc","universities","setUniGradsDisiplineByYear","datas","setUniGradsData","initUniGradsCountries","distincturl","allurl","uYear","resc","filterCountry","theFilter","filterCState","filterUnisByLoc","minWageAxios","minWageModule","minWageCountries","minWages","setMinWages","wages","setMinWageCountries","getMinWageCountries","getMinWage","hrPredictAxios","hrPredictModule","saveIncrementLocationList","retrieveIncrementLocationList","removeIncrementLocationList","getBonusData","bonusType","encodeURIComponent","replace","getAttritionData","getSalaryData","getIncrementFactor","metric","req","countryCodes","factors","relocationAxios","relocationModule","currencySelected","salaryCurrency","tax","home","destination","spendingMultipliers","hardshipRank","medicalCost","cities","relocationDetails","relocationTypeChanged","relocationType","homeCity","destinationCity","employeeInfo","annualSalary","annualBonus","maritalStatus","noOfKids","age","homeCityPrices","destinationCityPrices","allowance","housingCost","diffOrFull","option","educationCost","carCost","livingCost","riskAllowance","oneTimeAllowance","locationPreviewAllowance","taxAllowance","citiesTrends","countriesTrends","setCitiesTrends","setCountriesTrends","setRelocationSalaryCurrency","cur","setRelocationCurrencySelected","setAllowance","details","homePrice","destinationPrice","setResidentHomeTax","setNonResidentHomeTax","setNonResidentDestinationTax","setResidentDestinationTax","setHomeHardshipRank","setDestinationHardshipRank","setHomeMedicalCost","costs","setDestinationMedicalCost","setSpendingMultipliers","multipliers","setHomeCityPrices","prices","setDestinationCityPrices","setCostOfLivingCities","setRelocationType","resetRelocationType","setHomeCity","city","setDestinationCity","setEmployeeAge","setEmployeeNoOfKids","setEmployeeMaritalStatus","setEmployeeAnnualBonus","setEmployeeAnnualSalary","getCitiesTrends","getCountriesTrends","getCostOfLivingCities","getTax","salaryTotal","usdDivisor","salaryRate","getRelocationCosts","Error","getHardshipRank","getSpendingMultiplier","getMedicalCost","citiesTree","trendsTree","regionCountry","regionCities","regions","r","countryCities","coCountries","co","cityCountries","cityChildren","taxConverted","getter","resident","selectedRate","nonResident","homeCityPriceIdMap","priceMap","p","price","average_price","item_name","startsWith","item_id","destinationCityPriceIdMap","homeCityPriceMap","destinationCityPriceMap","newsTaggerAxios","getDateString","getFullYear","getMonth","getDate","pastDate","setDate","newsTaggerModule","keywords","dateFromTagged","dateToTagged","dateFromUntagged","dateToUntagged","untaggedArticles","hrArticles","bizArticles","setUntaggedArticles","setHrArticles","addHrArticle","article","setBizArticles","updateBizArticle","link","sentiment_score","updateHrArticle","legislationArticleType","legislationDateToImplement","removeUntaggedArticles","articles","differenceBy","removeHrArticles","setHrKeywords","removeHrKeyword","keyword","addHrKeyword","dateFromUntaggedChanged","dateToUntaggedChanged","dateFromTaggedChanged","dateToTaggedChanged","setCities","initHrKeywords","getUntaggedNews","from","to","getHrNewsForTagging","getBizNewsForTagging","getAllCities","deleteKeyword","deleteHrArticles","addKeyword","saveUntaggedArticles","saveBizArticles","saveHrArticles","insertHrArticle","zhaopinAxios","zhaopinModule","provinces","jobFunctions","jobTrendChartLoading","jobGroupCounts","chartToShow","translation","jobTrendChartOptions","compareChartLoading","compareChartOptions","outOfRange","colorAlpha","compareChartOptions3d","grid3D","light","main","intensity","shadow","beta","ambient","xMap","xAxis3D","x","yMap","yAxis3D","shading","zAxis3D","setLang","setZhaopinTranslation","setZhaopinCities","setZhaopinProvinces","setZhaopinSectors","setZhaopinJobFunctions","setJobGroupCounts","counts","setJobTrendChartLoading","setCompareChartLoading","plotJobGroupCounts","choice","province","subJobFunction","plotJobGroupCounts2d","dimensions","yData","choice1","choice2","plotJobTrend","jobFunction","textArray","subSubJobFunction","allZhaopinCitiesAndProvinces","getZhaopinTranslation","allZhaopinSectors","allZhaopinJobFunctions","queryZhaopinJobTrend","queryZhaopinJobs1d","queryZhaopinJobs2d","zhaopinCitiesTree","zhaopinSectorsTree","zhaopinJobFunctionsTree","f","subJobFunctions","subSubJobFunctions","ss","legisAxios","legislationModule","continents","groups","socialSecurityGroups","legislation","socialSecurity","setCountryLegislation","legis","setCountrySocialSecurity","socialSec","socialSecurityType","topics","setLegislationContinents","setLegislationGroups","setSocialSecurityGroups","items","it","getLegislationCountries","getLegislationGroups","getSocialSecurityGroups","getCountryLegislation","getCountrySocialSecurity","legislationCountryTree","con","livingCostAxios","livingCostModule","cityCostMap","cityCostIdMap","cityHardshipRank","cityMedicalCost","tipDialogShow","setTipDialogShow","setItems","setCityMedicalCost","cost","setMultipleCityMedicalCost","setCityCostMap","setCityCostIdMap","setCityHardshipRank","setMultipleCityHardshipRank","countryRanks","getCostOfLivingItems","saveCostOfLivingCityList","retrieveCostOfLivingCityList","removeCostOfLivingCityList","getTipDialogShow","saveTipDialogShow","getLivingCostIncomeTax","income","taxType","getLivingCostMedicalCost","getMultipleLivingCostHardshipRank","allCost","getLivingCostHardshipRank","getCityCostAndHardship","hardship","costMap","getRegionCostHardshipMedicalIncomeTax","_ref16","taxMap","hardships","medicals","taxes","getCountryCostAndHardship","_ref17","getCountryCost","_ref18","countryCost","out1","out3","out2","highest_price","in1","in3","in2","getCityCost","_ref19","_ref20","freshGradSalAxios","getYear","substring","getFacultyLblgbCty","isNaN","freshGradSalModule","groupbyViewSelected","degreelvlFilterSelected","facultySelected","allCurrencies","freshgradFaculty","freshgradCountry","degreelvlFilters","freshgradAll","fgpCountriesForPlot","freshGradPayHistoryMap","filteredFreshGradData","fgPaychartOptions","padding","params","tooltipcustom","toLocaleString","setGroupbyView","dview","setCurrencies","setFreshGrads","allData","setFaculty","facData","setCountry","cData","setDegreeLvl","dlvlData","setFilteredFreshGradData","sData","addSelfFreshGradPayHistoryMap","selfFreshGradPayHistoryMap","addFreshGradPayHistoryMap","setFacultySelected","setDegreelvlFilterSelected","removeGradPayForPlot","appendGradPayForPlot","fgpPlotSingleChart","getFreshGradPayHistoryMap","fgpPrepareSingleChart","lvl","rlvl","avgSalaryUSD","postFeedback","_ctx","feedback","getfreshgradSalary","exportfreshgradSalary","_this","fetch","method","mode","credentials","headers","Content-Type","redirect","asyncToGenerator_default","regenerator_default","mark","_callee","src","errMsg","wrap","_context","prev","next","ok","abrupt","pathname","search","hash","json","sent","statusText","stop","_x6","resp","blob","download","degreelvlFilter","exepayAxios","uniqCode","getCompanyCut","coticker","split","salary","bonus","stockaward","optionaward","nonequity","pension","other","total_cash","total_direct_compensation","total_renumeration","total_cost","indicatorsXMapping","sortFloat","getGrouped","getSorted","getXdatas","xvalues","getSeries","yField","executivePayModule","loadingCompanies","loadingMainView","indicatorXSelected","jobtitles","allsectors","benefits","wadDisplayType","chartEPOptions","removeAllECompetitors","removeECompetitors","appendECompetitors","setIndicators","setEIndicatorSelected","setEIndicatorXSelected","indicatorX","setYears","setJobTitles","setAllSectors","setCompaniesLoading","setLoadingMainView","setBenefits","coIndicators","setWhatDisplayType","dType","plotCompetitorsEPChart","initExecutivePayData","getCompaniesByYearJob","jobtitle","toString","querybt","len","resbt","getBenefitsByCo","selectcos","selectpcts","selectPCT","getExecutivesPayChart","benefitType","xDataValues","preparePlotExecutivePayChart","adminAxios","adminModule","moduleUsages","excludeMrc","identicalCompanies","addIdenticalCompanies","temp","setExcludeMrc","setModuleUsage","usages","saveFinancialIndicators","queryCompanies","subscribeToIdenticalCompanies","handleIdenticalCompanies","queryFinanceCompanies","postLegislationFiles","ctx","formData","postEbiFiles","postEconGuideFiles","queryModuleUsage","days","querySalaries","queryBonus","queryAttritions","upsertSalary","increment","put","upsertBonus","p25","p75","average","upsertAttrition","p50","noOfCompanies","deleteSalary","deleteAttrition","deleteBonus","moduleUsagesFiltered","userID","endsWith","genderAxios","genderModule","genderMetas","genderCountriesInfo","distinctCountries","genderChartOptions","addGenderCountriesInfo","infos","seriesCode","setDistinctCountries","setGenderMetas","plotGenderChart","indicatorName","retrieveGenderInfoDistinctCountries","retreiveGenderCountriesInfo","retrieveGenderMetas","genderRegionsGroup","genderCountries","regionGroup","Vuex","store","Store","strict","process","roles","majorCurrencies","modules","hrNews","disruptors","companyList","benchmark","companyIndexes","institution","orgChart","job","unigrads","minWage","hrPredict","relocation","newsTagger","zhaopin","freshgradsal","executivepay","admin","gender","timings","logModuleUsage","moduleName","startTime","timeSpent","beforeEach","afterEach","has","el","render","h","App","mounted","onbeforeunload","$router","currentRoute","Component","ssrContext","exports","permCheck","role","perm","components","Dropdown","element_ui_common","DropdownMenu","DropdownItem","Chatbox","Chatbox_default","ElMenu","ElSubmenu","ElMenuItemGroup","ElMenuItem","ElContainer","ElHeader","ElMain","ElAside","ElInput","ElButton","windowHeight","opened","menuKey","rewards","salaryBonusIncrease","freshgradpay","supercomp","dcc","hrMarket","jobPostings","talentIndicator","momentum","calc","balanceSheet","costOfLiving","costOfLivingTrends","employmentLegislation","benchmarking","econ","searchMenu","showMenu","showMoreServices","methods","toShow","level","typeof_default","isArray","iKeys","_i","showHideMoreServices","showHideMenu","$nextTick","$refs","menuSearch","input","focus","hideMenu","indexPath","handleCommand","command","Object","vuex_esm","computed","moreservices","disabled","isExecCompPublic","isExecCompPrivate","isSuperComp","isEmployeeBenefits","isMI","isSIP","isJes","isErp","isMaterials","isEconGuide","openedMenu","isNewsTagger","hasPayTrendAccess","hasForecastCalculatorAccess","hasHrMarketAccess","hasRelocationAccess","hasLegislationNewsAccess","hasFinanceProductivityAccess","hasEconomyAccess","isMdsUser","isSuperAdmin","unread","currentUserId","users","classObject","fa-comments-o","fa-commenting","unreadColor","fa-lg","isActive","$route","_this2","innerHeight","resizeDebounced","debounce","addEventListener","matched","record","cp","$createElement","attrs","duration","offset","compareContact","bot","consultant","required","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default","chatUserMsges","contactColor","onlineSortedContacts","contactTextColor","_online","_this3","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_object_keys___default","online","trimLeft","poses","pos","withUnread","__WEBPACK_IMPORTED_MODULE_6_lodash_pullAt___default","unshift","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_toConsumableArray___default","offlineContacts","_offline","_this4","offline","__WEBPACK_IMPORTED_MODULE_5_lodash_differenceBy___default","isMrcConsultantOrBot","isMrcBot","isMrcConsultant","__WEBPACK_IMPORTED_MODULE_3_vuex__","chatChanged","chatIcon","_this5","scrollToEnd","ElRow","__WEBPACK_IMPORTED_MODULE_4_element_ui__","ElCol","Chat","__WEBPACK_IMPORTED_MODULE_7__Chat___default","ElSwitch","recording","tmsg","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default","unreadMsges","speechClass","speechOk","SpeechRecognition","webkitSpeechRecognition","mozSpeechRecognition","msSpeechRecognition","__WEBPACK_IMPORTED_MODULE_1_vuex__","fromMe","selectChoice","msgWrapper","scrollHeight","scrollTop","toLocaleTimeString","month","day","hour","minute","hour12","useGrouping","sendNewMsg","recordVoice","recognition","onstart","onresult","event","resultIndex","results","transcript","onend","textInput","created","__WEBPACK_IMPORTED_MODULE_2__util_bus__","$on","watch","_vm","_h","_c","_self","staticClass","staticStyle","margin","on","click","$event","_v","aria-hidden","style","_s","ref","_l","directives","rawName","expression","domProps","innerHTML","_e","placeholder","autofocus","keyup","_k","keyCode","target","padding-left","cursor","class","staticRenderFns","margin-left","active-text","inactive-text","active-color","change","size","model","callback","$$v","back","direction","float","alt","plain","circle","slot","background-color","mitem","align-items","display","flex-direction","font-size","mute","unique-opened","default-openeds","default-active","text-color","active-text-color","prefix-icon","menu-disabled"],"mappings":"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","file":"static/js/app.954dfc4d874230c4f482.js","sourcesContent":["import Vue from 'vue';\n\nexport default new Vue();\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/bus.js","export default function (func, wait, immediate) {\n let timeout;\n return function debounced(...args) {\n const context = this;\n // const args = arguments;\n const later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/debounce.js","import Vue from 'vue';\nimport Router from 'vue-router';\n// import Overview from 'components/Overview';\n// import Benchmark from 'components/Benchmark';\n// import NewsDashboard from 'components/NewsDashboard';\n// import CompanyList from 'components/CompanyList';\n// import EconomyPredictor from 'components/EconomyPredictor';\n// import OrgCharts from 'components/OrgCharts';\n// import Job from 'components/Job';\n// import Zhaopin from 'components/Zhaopin';\n// import UniGrads from 'components/UniGrads';\n// import Disruptive from 'components/Disruptive';\n// import HrVisualizer from 'components/HrVisualizer';\n// import MinWage from 'components/MinWage';\n// import Legislation from 'components/Legislation';\n// import HrNews from 'components/HrNews';\n// import BizNews from 'components/BizNews';\n// import NewsTagger from 'components/NewsTagger';\n// import ExecutivePay from 'components/ExecutivePay';\n// import HrPredictors from 'components/HrPredictors';\n// import Admin from 'components/Admin';\n// import CostOfLiving from 'components/CostOfLiving';\n// import LivingCostCities from 'components/LivingCostCities';\n// import FreshGraduateSalary from 'components/FreshGraduateSalary';\n\nconst CompetitorsMatrix = () =>\n import(/* webpackChunkName: \"a\" */ 'components/CompetitorsMatrix');\nconst SuppliersMatrix = () =>\n import(/* webpackChunkName: \"a\" */ 'components/SuppliersMatrix');\nconst CustomersMatrix = () =>\n import(/* webpackChunkName: \"a\" */ 'components/CustomersMatrix');\nconst InstitutionMatrix = () =>\n import(/* webpackChunkName: \"a\" */ 'components/InstitutionMatrix');\nconst HrMatrix = () =>\n import(/* webpackChunkName: \"a\" */ 'components/HrMatrix');\n\nconst SalaryAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/SalaryAdmin');\nconst BonusAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/BonusAdmin');\nconst AttritionAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/AttritionAdmin');\nconst ModuleUsageAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/ModuleUsageAdmin');\nconst WebsiteLegislationAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/WebsiteLegislationAdmin');\nconst WebsiteEbiAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/WebsiteEbiAdmin');\nconst WebsiteEconAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/WebsiteEconAdmin');\nconst CompanyAdmin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/companyAdmin/CompanyAdmin');\nconst HrNews = () =>\n import(/* webpackChunkName: \"a\" */ 'components/HrNews');\nconst BizNews = () =>\n import(/* webpackChunkName: \"a\" */ 'components/BizNews');\nconst NewsDashboard = () =>\n import(/* webpackChunkName: \"a\" */ 'components/NewsDashboard');\nconst NewsTagger = () =>\n import(/* webpackChunkName: \"a\" */ 'components/NewsTagger');\nconst Admin = () =>\n import(/* webpackChunkName: \"a\" */ 'components/Admin');\nconst ForecastCalculator = () =>\n import(/* webpackChunkName: \"a\" */ 'components/forecast/ForecastCalculator');\n// const ExecutivePay = () => import(/* webpackChunkName: \"a\" */ 'components/ExecutivePay');\nconst CompanyList = () =>\n import(/* webpackChunkName: \"a\" */ 'components/CompanyList');\nconst Disruptive = () =>\n import(/* webpackChunkName: \"a\" */ 'components/Disruptive');\nconst FreshGraduateSalary = () =>\n import(/* webpackChunkName: \"a\" */ 'components/FreshGraduateSalary');\nconst CostOfLiving = () =>\n import(/* webpackChunkName: \"a\" */ 'components/CostOfLiving');\nconst CostOfLivingTrends = () =>\n import(/* webpackChunkName: \"a\" */ 'components/CostOfLivingTrends');\nconst LivingCostCities = () =>\n import(/* webpackChunkName: \"a\" */ 'components/LivingCostCities');\nconst Benchmark = () =>\n import(/* webpackChunkName: \"a\" */ 'components/Benchmark');\nconst EconomyPredictor = () =>\n import(/* webpackChunkName: \"a\" */ 'components/EconomyPredictor');\n// const UniGrads = () =>\n// import(/* webpackChunkName: \"a\" */ 'components/UniGrads');\nconst HrVisualizer = () =>\n import(/* webpackChunkName: \"a\" */ 'components/HrVisualizer');\nconst MinWage = () =>\n import(/* webpackChunkName: \"a\" */ 'components/MinWage');\nconst Overview = () =>\n import(/* webpackChunkName: \"a\" */ 'components/Overview');\nconst Job = () =>\n import(/* webpackChunkName: \"a\" */ 'components/Job');\nconst Legislation = () =>\n import(/* webpackChunkName: \"a\" */ 'components/Legislation');\nconst GenderDiversity = () =>\n import(/* webpackChunkName: \"a\" */ 'components/GenderDiversity');\n\nVue.use(Router);\n\nexport default new Router({\n routes: [{\n path: '/fm',\n name: 'Organisation and Productivity Benchmark',\n component: Benchmark,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'finance_productivity'],\n },\n props: ({ query }) => {\n const props = {\n country: query.country,\n sector: +query.sector,\n indicator: query.indicator,\n };\n return props;\n },\n },\n {\n path: '/gender',\n name: 'Gender Diversity',\n component: GenderDiversity,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'finance_productivity'],\n },\n },\n {\n path: '/job',\n name: 'Jobs Postings',\n component: Job,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'hr_markets'],\n },\n props: ({ query }) => {\n const props = {\n country: query.country,\n sector: +query.sector,\n };\n return props;\n },\n },\n // {\n // path: '/zhaopin',\n // name: 'Zhaopin',\n // component: Zhaopin,\n // meta: {\n // permissions: ['mds', 'all'],\n // },\n // },\n {\n path: '/legislation',\n name: 'Legislation',\n component: Legislation,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'legislations_news'],\n },\n },\n {\n path: '/minwage',\n name: 'Wages',\n component: MinWage,\n meta: {\n permissions: ['mds', 'all', 'pay_trends'],\n },\n props: ({ query }) => {\n const props = {\n country: query.country,\n };\n return props;\n },\n },\n {\n path: '/hr',\n name: 'Talent Supply Indicators',\n component: HrVisualizer,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'hr_markets'],\n },\n props: ({ query }) => {\n const props = {\n region: query.region,\n indicatorGroup: query.indicatorGroup,\n };\n return props;\n },\n },\n {\n path: '/newstagger',\n name: 'News Tagger',\n component: NewsTagger,\n meta: {\n permissions: ['news_tagger', 'all'],\n },\n },\n // {\n // path: '/ugrads',\n // name: 'University Graduates Supply',\n // component: UniGrads,\n // meta: {\n // permissions: ['mds', 'aims.nonrewards', 'all', 'hr_markets'],\n // },\n // props: ({ query }) => {\n // const props = {\n // country: query.country,\n // };\n // return props;\n // },\n // },\n {\n path: '/macro',\n name: 'Economy',\n component: EconomyPredictor,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'economy'],\n },\n props: ({ query }) => {\n const props = {\n indicator: query.indicator,\n country: {\n countryCode: query.countryCode,\n countryName: query.countryName,\n },\n };\n return props;\n },\n },\n {\n path: '/costofliving',\n name: 'Relocation Calculator',\n component: CostOfLiving,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'relocation'],\n },\n },\n {\n path: '/citiescost',\n name: 'Cities Living Cost',\n component: LivingCostCities,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'relocation'],\n },\n },\n {\n path: '/coltrends',\n name: 'Cost of Living Trends',\n component: CostOfLivingTrends,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'relocation'],\n },\n },\n {\n path: '/companyinfo',\n name: 'CompanyInfo',\n component: CompanyList,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all'],\n },\n },\n {\n path: '/planning',\n name: 'Entities-based Strategic Planning',\n component: Overview,\n meta: {\n permissions: ['mds', 'all', 'aims.nonrewards', 'news_tagger'],\n },\n },\n {\n path: '/companyMatrix/customers',\n name: 'Customers Matrix',\n component: CustomersMatrix,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'finance_productivity'],\n },\n },\n {\n path: '/companyMatrix/suppliers',\n name: 'Suppliers Matrix',\n component: SuppliersMatrix,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'finance_productivity'],\n },\n },\n {\n path: '/companyMatrix/competitors',\n name: 'Competitors Matrix',\n component: CompetitorsMatrix,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'finance_productivity'],\n },\n },\n {\n path: '/hrMatrix',\n name: 'HR Matrix',\n component: HrMatrix,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'hr_markets'],\n },\n },\n {\n path: '/institution',\n name: 'Institution',\n component: InstitutionMatrix,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all'],\n },\n },\n {\n path: '/disruptive',\n name: 'Disruptive',\n component: Disruptive,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all'],\n },\n },\n // {\n // path: '/orgstructure',\n // name: 'Org Structure',\n // component: OrgCharts,\n // meta: {\n // permissions: ['mds', 'aims.nonrewards', 'all'],\n // },\n // },\n {\n path: '/hrpredict',\n name: 'Salary/Bonus Increase Forecast',\n component: ForecastCalculator,\n meta: {\n permissions: ['mds', 'all', 'aims.nonrewards', 'forecast_calculator'],\n },\n },\n {\n path: '/admin',\n name: 'Admin Module',\n component: Admin,\n meta: {\n permissions: ['all'],\n },\n children: [{\n path: 'salary',\n name: 'Salary Admin Module',\n component: SalaryAdmin,\n },\n {\n path: 'bonus',\n name: 'Bonus Admin Module',\n component: BonusAdmin,\n },\n {\n path: 'attrition',\n name: 'Attrition Admin Module',\n component: AttritionAdmin,\n },\n {\n path: 'moduleUsage',\n name: 'Client Module Usage',\n component: ModuleUsageAdmin,\n },\n {\n path: 'companyAdmin',\n name: 'Finance & Productivity Admin Module',\n component: CompanyAdmin,\n },\n {\n path: 'website/legislation',\n name: 'Website Legislation Update Upload',\n component: WebsiteLegislationAdmin,\n },\n {\n path: 'website/ebi',\n name: 'Website EBI Upload',\n component: WebsiteEbiAdmin,\n },\n {\n path: 'website/econ_guide',\n name: 'Website Econ Guide Upload',\n component: WebsiteEconAdmin,\n },\n ],\n },\n {\n path: '/news',\n name: 'News',\n component: NewsDashboard,\n meta: {\n permissions: ['mds', 'aims.nonrewards', 'all', 'legislations_news'],\n },\n children: [{\n path: 'hr',\n name: 'HR News',\n component: HrNews,\n },\n {\n path: 'biz',\n name: 'Business News',\n component: BizNews,\n props: ({ query }) => {\n const props = {\n countryLocal: query.country,\n };\n return props;\n },\n },\n ],\n },\n // {\n // path: '/finance/:country/:sector',\n // name: 'Finance',\n // component: FinancialDashboard,\n // props: true,\n // },\n {\n path: '/freshgradsal',\n name: 'Fresh Graduate Start Rates',\n component: FreshGraduateSalary,\n meta: {\n permissions: ['mds', 'all', 'pay_trends'],\n },\n },\n // {\n // path: '/exePay',\n // name: 'Executive Pay',\n // component: ExecutivePay,\n // meta: {\n // permissions: ['mds', 'all', 'pay_trends'],\n // },\n // props: ({\n // query,\n // }) => {\n // const props = {\n // country: query.country,\n // sector: +query.sector,\n // indicator: query.indicator,\n // };\n // return props;\n // },\n // },\n ],\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","/* eslint-disable no-param-reassign */\nimport Vue from 'vue';\nimport uniqBy from 'lodash/uniqBy';\nimport groupBy from 'lodash/groupBy';\nimport omit from 'lodash/omit';\n\nconst mutations = {\n setChatUser(state, user) {\n state.chatUser = user;\n state.chatMode = 'chat';\n },\n backToChatList(state) {\n state.chatMode = 'list';\n state.chatUser = {};\n },\n setChatStatus(state, status) {\n state.chatStatus = status;\n },\n addContact(state, contact) {\n state.contacts = {\n ...state.contacts,\n [contact.userId]: contact,\n };\n },\n removeContact(state, userId) {\n state.contacts = omit(state.contacts, userId);\n },\n setChatChoices(state, choices) {\n state.chatChoices = choices;\n },\n setContacts(state, contacts) {\n const newContacts = {};\n contacts.forEach((c) => {\n newContacts[c.userId] = c;\n });\n state.contacts = newContacts;\n },\n addOnlineContacts(state, contacts) {\n state.onlineContacts = uniqBy([\n ...state.onlineContacts,\n ...contacts,\n ], 'userId');\n },\n removeOnlineContact(state, userId) {\n state.onlineContacts = state.onlineContacts.filter(c => c.userId !== userId);\n },\n addCurrencyExchangeRates(state, rates) {\n state.currencyExchangeRates = [\n ...state.currencyExchangeRates,\n ...rates,\n ];\n },\n setCent(state, cent) {\n state.cent = cent;\n },\n setRead(state, msg) {\n let user;\n if (msg.fromUserId === state.currentUser.userid) {\n user = msg.toUserId;\n } else if (msg.toUserId === state.currentUser.userid) {\n user = msg.fromUserId;\n }\n if (!state.msges[user]) return;\n const i = state.msges[user].findIndex(m => m.fromUserId === msg.fromUserId\n && m.toUserId === msg.toUserId && m.timestamp === msg.timestamp);\n if (i < 0) {\n return;\n }\n Vue.set(state.msges[user], i, msg);\n },\n setMsges(state, { userId, msges }) {\n Vue.set(state.msges, userId, msges);\n Vue.set(state.userChatLogPulled, userId, true);\n },\n setUnreadMsges(state, msges) {\n state.msges = groupBy(msges, (msg) => {\n if (msg.toUserId !== state.currentUser.userid) return msg.toUserId;\n if (msg.fromUserId !== state.currentUser.userid) return msg.fromUserId;\n return '';\n });\n },\n setChatActive(state, active) {\n state.chatActive = active;\n },\n addMsg(state, msg) {\n let user;\n if (msg.fromUserId === state.currentUser.userid) {\n user = msg.toUserId;\n } else if (msg.toUserId === state.currentUser.userid) {\n user = msg.fromUserId;\n }\n if (!state.msges[user]) {\n Vue.set(state.msges, user, []);\n }\n state.msges[user].push(msg);\n if (msg.fromUserId === state.currentUser.userid) return;\n if (!msg.speech) return;\n const voiceMsg = new SpeechSynthesisUtterance(msg.speech);\n voiceMsg.voice = window.speechSynthesis.getVoices()[0];\n window.speechSynthesis.speak(voiceMsg);\n },\n setCurrentUserCountry(state, val) {\n state.currentUserCountry = val;\n },\n setCurrentUser(state, val) {\n state.currentUser = val;\n },\n\n setCompareGlobal(state, val) {\n state.actions.compareGlobal = val;\n },\n\n setDrillByIndustry(state, val) {\n state.actions.drillByIndustry = val;\n },\n\n setHistorical(state, val) {\n state.actions.historical = val;\n },\n\n setMakePrediction(state, val) {\n state.actions.makePrediction = val;\n },\n\n setFinancialReports(state, val) {\n if (val) {\n state.dataSourceSelections.employeesReacted = false;\n state.dataSourceSelections.recruitmentPosting = false;\n state.dataSourceSelections.newsObserved = false;\n }\n\n state.dataSourceSelections.financialReports = val;\n },\n\n setEmployeesReacted(state, val) {\n if (val) {\n state.dataSourceSelections.financialReports = false;\n state.dataSourceSelections.recruitmentPosting = false;\n state.dataSourceSelections.newsObserved = false;\n }\n\n state.dataSourceSelections.employeesReacted = val;\n },\n\n setRecruitmentPosting(state, val) {\n if (val) {\n state.dataSourceSelections.financialReports = false;\n state.dataSourceSelections.employeesReacted = false;\n state.dataSourceSelections.newsObserved = false;\n }\n\n state.dataSourceSelections.recruitmentPosting = val;\n },\n\n setNewsObserved(state, val) {\n if (val) {\n state.dataSourceSelections.employeesReacted = false;\n state.dataSourceSelections.recruitmentPosting = false;\n state.dataSourceSelections.financialReports = false;\n }\n\n state.dataSourceSelections.newsObserved = val;\n },\n};\nexport default mutations;\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/mutations.js","import Centrifuge from 'centrifuge';\nimport SockJS from 'sockjs-client';\n\nlet centrifuge;\nconst subscriptions = {};\nexport default {\n configure(config) {\n const cf = {\n ...config,\n sockJS: SockJS,\n };\n centrifuge = new Centrifuge(cf);\n },\n addSubscription(channel, callbacks) {\n const s = centrifuge.subscribe(channel, callbacks);\n subscriptions[channel] = s;\n return s;\n },\n isSubscribed(channel) {\n const s = subscriptions[channel];\n return !!s;\n },\n unsubscribe(channel) {\n subscriptions[channel].unsubscribe();\n delete subscriptions[channel];\n },\n start() {\n centrifuge.connect();\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/centrifugo/chat.js","import echarts from 'echarts';\nimport localforage from 'localforage';\nimport axios from 'axios';\nimport difference from 'lodash/difference';\nimport bus from '../util/bus';\nimport MessagingService from '../centrifugo/chat';\n// import { getTimestamp } from '../util/timeLib';\nfunction getChatEvent({ commit, state, dispatch }) {\n return {\n message(dataset) {\n const msg = dataset.data;\n if (msg.kind === 4) {\n commit('addMsg', msg.chatLine);\n if (msg.chatLine.fromUserId !== state.currentUser.userid) {\n if (state.chatMode === 'list' ||\n (state.chatUser.userId && state.chatUser.userId !== msg.chatLine.fromUserId)) {\n if (('Notification' in window)) {\n const audio = new Audio('./static/bubbling-up.mp3');\n if (window.Notification.permission === 'granted') {\n const n = new window.Notification(`Message from ${msg.chatLine.fromUserId}`,\n { // eslint-disable-line no-new\n body: msg.chatLine.msg,\n icon: './static/mrc.gif',\n silent: true,\n });\n audio.play();\n setTimeout(n.close.bind(n), 3800);\n } else if (window.Notification.permission !== 'denied') {\n window.Notification.requestPermission((permission) => {\n if (permission === 'granted') {\n const n = new window.Notification(\n `Message from ${msg.chatLine.fromUserId}`, { // eslint-disable-line no-new\n body: msg.chatLine.msg,\n icon: './static/mrc.gif',\n silent: true,\n });\n audio.play();\n setTimeout(n.close.bind(n), 3800);\n }\n });\n }\n }\n } else if (state.chatActive && state.chatMode === 'chat'\n && (state.chatUser.userId && state.chatUser.userId === msg.chatLine.fromUserId)) {\n dispatch('setReadTimestamp', [msg.chatLine]);\n }\n if (msg.chatLine.fromUserId === 'mrcchatbot@mrc-asia.com') {\n commit('setChatChoices', msg.chatLine.choices || []);\n }\n }\n if (state.chatActive && state.chatMode === 'chat'\n && state.chatUser.userId\n && (state.chatUser.userId === msg.chatLine.fromUserId\n || state.chatUser.userId === msg.chatLine.toUserId)) {\n bus.$emit('scrollChatToEnd');\n }\n } else if (msg.kind === 5) {\n msg.msges.forEach(m => commit('setRead', m));\n }\n },\n error(errContext) {\n console.log(`ERROR: ${JSON.stringify(errContext)}`); // eslint-disable-line\n },\n };\n}\nfunction getPresenceEvents({ commit }) {\n return {\n subscribe() {\n this.presence().then((context) => {\n commit('addOnlineContacts', Object.keys(context.data).map(key => context.data[key].default_info));\n }, (err) => {\n console.log(err); // eslint-disable-line\n });\n },\n join(context) {\n commit('addOnlineContacts', [context.data.default_info]);\n },\n leave(context) {\n commit('removeOnlineContact', context.data.user);\n },\n };\n}\nconst actions = {\n disableChat({ commit, state }) {\n commit('setChatStatus', false);\n MessagingService.unsubscribe('presence:chat');\n MessagingService.unsubscribe(`chat#${state.currentUser.userid}`);\n axios.post('/aims/api/handleMessage', { kind: 7 });\n },\n enableChat({ commit, state, dispatch }) {\n commit('setChatStatus', true);\n axios.post('/aims/api/handleMessage', {\n kind: 6,\n user: {\n userId: state.currentUser.userid,\n userName: state.currentUser.username,\n company: state.currentUser.company,\n },\n });\n MessagingService.addSubscription(`chat#${state.currentUser.userid}`, getChatEvent({ state, commit, dispatch }));\n MessagingService.addSubscription('presence:chat', getPresenceEvents({ commit }));\n },\n initChat({ state, commit, dispatch }) {\n MessagingService.configure({\n url: 'https://centrifugo.mrc-asia.com/connection',\n user: state.currentUser.userid,\n timestamp: state.cent.timestamp,\n token: state.cent.token,\n info: state.cent.info,\n });\n MessagingService.addSubscription(`chat#${state.currentUser.userid}`, getChatEvent({ state, commit, dispatch }));\n MessagingService.addSubscription('presence:chat', getPresenceEvents({ commit }));\n MessagingService.start();\n },\n chatWith({ commit, state, dispatch }, user) {\n if (!state.userChatLogPulled[user.userId]) {\n dispatch('getUserMsges', user.userId);\n }\n commit('setChatUser', user);\n },\n sendMessage({ commit, state }, { msg, toUserId }) {\n const now = new Date();\n const chatLine = {\n msg,\n fromUserId: state.currentUser.userid,\n toUserId,\n timestamp: now.toISOString(),\n };\n return axios.post('/aims/api/handleMessage', { kind: 4, chatLine });\n },\n getChatStatus({ commit }) {\n return axios.get('/aims/api/chatStatus')\n .then((res) => {\n commit('setChatStatus', res.data);\n return res.data;\n })\n .catch((err) => {\n if (err.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n },\n getAllContacts({ commit }) {\n axios.get('/aims/api/allContacts')\n .then((res) => {\n commit('setContacts', res.data);\n })\n .catch((err) => {\n if (err.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n },\n getCurrencies({ commit, state }, currencies) {\n const existing = state.currencyExchangeRates.map(c => c.currencyCode);\n const newCur = difference(currencies, existing);\n if (newCur.length === 0) return;\n axios.post('/aims/api/economy/currencies', newCur)\n .then((res) => {\n commit('addCurrencyExchangeRates', res.data);\n })\n .catch((err) => {\n if (err.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n },\n setReadTimestamp({\n commit,\n }, msges) {\n const now = new Date();\n const readMsges = msges.map(m => ({\n ...m,\n readTimestamp: now,\n }));\n axios.post('/aims/api/handleMessage', { kind: 5, msges: readMsges });\n },\n getUnreadMsges({\n commit,\n }) {\n axios.get('/aims/api/unreadMsges')\n .then((res) => {\n if (res.data) {\n commit('setUnreadMsges', res.data);\n }\n })\n .catch((err) => {\n if (err.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n },\n getUserMsges({\n commit, state,\n }, userId) {\n return axios.get(`/aims/api/msg/${userId}`)\n .then((res) => {\n if (res.data) {\n commit('setMsges', { userId, msges: res.data });\n if (state.chatActive && state.chatMode === 'chat'\n && state.chatUser.userId === userId) {\n bus.$emit('scrollChatToEnd');\n }\n }\n })\n .catch((err) => {\n if (err.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n },\n initEchartsMap() {\n const mapStorage = localforage.createInstance({\n name: 'Map',\n });\n mapStorage.getItem('worldMap')\n .then((map) => {\n if (!map) {\n axios.get('/aims/static/world.json')\n .then((res) => {\n mapStorage.setItem('worldMap', res.data);\n echarts.registerMap('world', res.data);\n bus.$emit('mapRegistered');\n });\n } else {\n echarts.registerMap('world', map);\n bus.$emit('mapRegistered');\n }\n });\n mapStorage.getItem('asiaMap')\n .then((map) => {\n if (!map) {\n axios.get('/aims/static/asia.json')\n .then((res) => {\n mapStorage.setItem('asiaMap', res.data);\n echarts.registerMap('asia', res.data);\n bus.$emit('asiaMapRegistered');\n });\n } else {\n echarts.registerMap('asia', map);\n bus.$emit('asiaMapRegistered');\n }\n });\n },\n\n getCurrentUser({\n commit,\n }) {\n return axios.get('/aims/api/currentUser')\n .then((res) => {\n commit('setCurrentUser', res.data.currentUser);\n commit('setCurrentUserCountry', res.data.currentUserCountry);\n commit('setCent', res.data.cent);\n })\n .catch((err) => {\n if (err.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n },\n\n logout() {\n axios.get('/sign/out')\n .then(() => {\n window.location.href = '/aims';\n });\n },\n};\nexport default actions;\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/actions.js","export default function cacheAxios(axios, cache) {\n axios.interceptors.request.use((config) => {\n if (config.cache === true) {\n const stringKey = JSON.stringify(config.cacheKey);\n const result = cache.get(stringKey);\n if (result) {\n return Promise.reject({\n cache: true,\n cacheKey: stringKey,\n });\n }\n }\n return config;\n }, error => Promise.reject(error));\n\n axios.interceptors.response.use((response) => {\n if (response.config.cache === true) {\n cache.set(JSON.stringify(response.config.cacheKey), JSON.parse(JSON.stringify(response)));\n }\n return response;\n }, (error) => {\n if (error.cache) {\n const value = cache.get(error.cacheKey);\n if (!value) {\n return Promise.reject(`localforage error. Response for ${error.url} is missing.`);\n }\n return Promise.resolve(value);\n }\n return Promise.reject(error);\n });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/cacheAxios.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst newsAxios = axios.create();\nconst cache = new Map();\ncacheAxios(newsAxios, cache);\nnewsAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/news/biz';\n }, 500);\n }\n });\n\nexport default {\n state: {\n bizSortBy: 'sentiment',\n searchText: '',\n newsLoading: false,\n startDate: '',\n endDate: '',\n countrySelected: '',\n newsIndexes: [],\n negativeCountryNews: [],\n positiveCountryNews: [],\n startDateFilter: '',\n endDateFilter: '',\n industryFilter: {},\n industries: {},\n loading: true,\n newsChartOptions: {\n backgroundColor: '#fff',\n title: {\n text: 'Market Sentiments',\n subtext: 'Worldwide',\n left: 'center',\n top: 'top',\n subtextStyle: {\n fontSize: 16,\n color: '#333',\n },\n textStyle: {\n color: '#333',\n },\n },\n tooltip: {\n trigger: 'item',\n },\n visualMap: {\n type: 'continuous',\n min: -100,\n max: 100,\n text: ['Positive', 'Negative'],\n realtime: true,\n calculable: false,\n dimension: 0,\n inRange: {\n color: ['#f00', '#c00', '#900', '#aaa', '#090', '#0c0', '#0f0'],\n },\n textStyle: {\n color: '#111',\n },\n },\n series: [\n {\n name: 'News Sentiments',\n type: 'map',\n mapType: 'world',\n roam: true,\n selectedMode: 'single',\n label: {\n normal: {\n show: false,\n },\n emphasis: {\n show: false,\n },\n },\n itemStyle: {\n normal: {\n borderColor: 'rgba(0, 0, 0, 0.8)',\n borderWidth: 0,\n areaColor: '#e2e2e2',\n },\n emphasis: {\n borderColor: '#a0bfff',\n borderWidth: 2,\n areaColor: '#200fff',\n },\n },\n data: [],\n },\n ],\n },\n },\n mutations: {\n setBizSortBy(state, sort) {\n state.bizSortBy = sort;\n },\n setSearchText(state, text) {\n state.searchText = text;\n },\n setNewsIndexes(state, indexes) {\n state.newsIndexes = indexes;\n },\n setNewsLoading(state, loading) {\n state.newsLoading = loading;\n },\n setPositiveCountryNews(state, news) {\n state.positiveCountryNews = news;\n },\n setNegativeCountryNews(state, news) {\n state.negativeCountryNews = news;\n },\n appendPositiveCountryNews(state, news) {\n state.positiveCountryNews = [...state.positiveCountryNews, ...news];\n },\n appendNegativeCountryNews(state, news) {\n state.negativeCountryNews = [...state.negativeCountryNews, ...news];\n },\n setCountrySelected(state, country) {\n state.countrySelected = country;\n const mappedData = state.newsChartOptions.series[0].data.map((c) => {\n if (c.name === state.countrySelected) {\n c.selected = true;\n } else {\n c.selected = false;\n }\n return c;\n });\n const series0 = { ...state.newsChartOptions.series[0],\n data: mappedData,\n };\n const cty = country === '' ? 'Worldwide' : country;\n const title = {\n ...state.newsChartOptions.title,\n subtext: cty,\n };\n state.newsChartOptions = {\n ...state.newsChartOptions,\n series: [series0],\n title,\n };\n },\n addIndustryFilter(state, industry) {\n Vue.set(state.industryFilter, industry, true);\n },\n removeIndustryFilter(state, industry) {\n Vue.set(state.industryFilter, industry, false);\n },\n setData(state, data) {\n const mappedData = data.map((c) => {\n if (c.name === state.countrySelected) {\n c.selected = true;\n } else {\n c.selected = false;\n }\n return c;\n });\n const series0 = { ...state.newsChartOptions.series[0],\n data: mappedData,\n };\n state.newsChartOptions = {\n ...state.newsChartOptions,\n series: [series0],\n };\n },\n setStartDate(state, date) {\n state.startDate = date;\n },\n setEndDate(state, date) {\n state.endDate = date;\n },\n setIndustries(state, industries) {\n state.industries = industries;\n },\n setLoading(state, loading) {\n state.loading = loading;\n },\n setStartDateFilter(state, startDate) {\n state.startDateFilter = startDate.toISOString()\n .slice(0, 10);\n },\n setEndDateFilter(state, endDate) {\n state.endDateFilter = endDate.toISOString()\n .slice(0, 10);\n },\n },\n actions: {\n initNewsData({\n commit,\n state,\n dispatch,\n }) {\n newsAxios.get('/aims/api/news/industry/all')\n .then((res) => {\n if (res.status === 200) {\n const industryMapNew = {};\n res.data.forEach((industry) => {\n industryMapNew[`${industry.source}-${industry.category}`] = industry;\n });\n commit('setIndustries', industryMapNew);\n }\n });\n },\n changeBizSortBy({\n state, commit, dispatch,\n }, sortBy) {\n if (sortBy === state.bizSortBy) {\n return;\n }\n commit('setBizSortBy', sortBy);\n dispatch('getNews');\n },\n getNews({\n commit,\n dispatch,\n }) {\n commit('setPositiveCountryNews', []);\n commit('setNegativeCountryNews', []);\n dispatch('getMorePositiveNews');\n dispatch('getMoreNegativeNews');\n },\n\n getMorePositiveNews({\n state,\n commit,\n }) {\n commit('setNewsLoading', true);\n if (state.positiveCountryNews.length !== 0 && state.positiveCountryNews.length % 20 !== 0) {\n commit('setNewsLoading', false);\n return;\n }\n const industries = Object.keys(state.industryFilter)\n .filter(k => state.industryFilter[k])\n .map(k => k.toLowerCase());\n const postPosBody = {\n start: state.startDateFilter,\n end: state.endDateFilter,\n industries: industries.sort(),\n country: state.countrySelected,\n sentiment_type: 'positive',\n sortBy: state.bizSortBy,\n searchText: state.searchText.trim(),\n fromIndex: state.positiveCountryNews.length,\n };\n newsAxios.post('/aims/api/news/newsByDateAndIndustries', postPosBody, {\n cache: true,\n cacheKey: JSON.stringify(postPosBody),\n })\n .then((res) => {\n if (!res.data) {\n commit('setNewsLoading', false);\n return;\n }\n const data = res.data.map((news) => {\n const published = new Date(news.published);\n news.published = published.toISOString()\n .slice(0, 10);\n return news;\n });\n data.sort((a, b) => {\n if (a.published < b.published) {\n return 1;\n } else if (a.published > b.published) {\n return -1;\n }\n return 0;\n });\n commit('appendPositiveCountryNews', data);\n commit('setNewsLoading', false);\n });\n },\n getMoreNegativeNews({\n state,\n commit,\n }) {\n commit('setNewsLoading', true);\n if (state.negativeCountryNews.length !== 0 && state.negativeCountryNews.length % 20 !== 0) {\n commit('setNewsLoading', false);\n return;\n }\n const industries = Object.keys(state.industryFilter)\n .filter(k => state.industryFilter[k])\n .map(k => k.toLowerCase());\n const postNegBody = {\n start: state.startDateFilter,\n end: state.endDateFilter,\n industries: industries.sort(),\n country: state.countrySelected,\n sentiment_type: 'negative',\n sortBy: state.bizSortBy,\n searchText: state.searchText.trim(),\n fromIndex: state.negativeCountryNews.length,\n };\n newsAxios.post('/aims/api/news/newsByDateAndIndustries', postNegBody, {\n cache: true,\n cacheKey: JSON.stringify(postNegBody),\n })\n .then((res) => {\n if (!res.data) {\n commit('setNewsLoading', false);\n return;\n }\n const data = res.data.map((news) => {\n const published = new Date(news.published);\n news.published = published.toISOString()\n .slice(0, 10);\n return news;\n });\n data.sort((a, b) => {\n if (a.published < b.published) {\n return 1;\n } else if (a.published > b.published) {\n return -1;\n }\n return 0;\n });\n commit('appendNegativeCountryNews', data);\n commit('setNewsLoading', false);\n });\n },\n\n getNewsIndex({\n commit,\n }) {\n newsAxios.get('/aims/api/companyIndexes/newsIndexes')\n .then((res) => {\n commit('setNewsIndexes', res.data);\n });\n },\n filterDataByDate({\n commit,\n getters,\n dispatch,\n }, dateSelection) {\n commit('setStartDateFilter', dateSelection[0]);\n commit('setEndDateFilter', dateSelection[1]);\n dispatch('getScoreByDateAndIndustries');\n },\n\n getScoreByDateAndIndustries({\n state,\n commit,\n }) {\n const industries = Object.keys(state.industryFilter)\n .filter(k => state.industryFilter[k])\n .map(k => k.toLowerCase());\n const postBody = {\n start: state.startDateFilter,\n end: state.endDateFilter,\n industries: industries.sort(),\n };\n newsAxios.post(\n '/aims/api/news/scoreByDateAndIndustries', postBody, {\n cache: true,\n cacheKey: JSON.stringify(postBody),\n },\n )\n .then((res) => {\n commit('setData', res.data);\n commit('setLoading', false);\n });\n },\n },\n getters: {\n\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/newsModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst hrNewsAxios = axios.create();\nconst cache = new Map();\ncacheAxios(hrNewsAxios, cache);\nhrNewsAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/news/hr';\n }, 500);\n }\n });\n\nconst seriesDefault = {\n name: 'HR Sentiments',\n type: 'map',\n mapType: 'world',\n // aspectScale: 0.85,\n roam: true,\n selectedMode: 'single',\n label: {\n normal: {\n show: false,\n },\n emphasis: {\n show: false,\n },\n },\n itemStyle: {\n normal: {\n borderColor: 'rgba(0, 0, 0, 0.8)',\n borderWidth: 0,\n areaColor: '#e2e2e2',\n // areaColor: '#fff',\n },\n emphasis: {\n borderColor: '#a0bfff',\n borderWidth: 2,\n areaColor: '#200fff',\n },\n },\n data: [],\n};\n\nexport default {\n state: {\n sortBy: 'sentiment',\n hrCategories: [], // y\n hrChartLoading: true, // y\n hrSearchText: '',\n hrNewsLoading: false,\n hrStartDate: '',\n hrEndDate: '',\n hrCountrySelected: '',\n negativeHrNews: [],\n positiveHrNews: [],\n hrStartDateFilter: '',\n hrEndDateFilter: '',\n hrCategoryFilter: {},\n hrChartOptions: {\n backgroundColor: '#fff',\n title: {\n text: 'HR Sentiments',\n subtext: 'Worldwide',\n left: 'center',\n top: 'top',\n subtextStyle: {\n fontSize: 16,\n color: '#333',\n },\n textStyle: {\n color: '#333',\n },\n },\n tooltip: {\n trigger: 'item',\n },\n visualMap: {\n type: 'continuous',\n min: -100,\n max: 100,\n text: ['Positive', 'Negative'],\n realtime: true,\n calculable: false,\n dimension: 0,\n inRange: {\n color: ['#f00', '#c00', '#900', '#aaa', '#090', '#0c0', '#0f0'],\n },\n textStyle: {\n color: '#111',\n },\n },\n series: [\n {\n name: 'HR Sentiments',\n type: 'map',\n mapType: 'world',\n // zoom: 2.4,\n // aspectScale: 0.85,\n // center: [101, 7.5],\n roam: true,\n selectedMode: 'single',\n label: {\n normal: {\n show: false,\n },\n emphasis: {\n show: false,\n },\n },\n itemStyle: {\n normal: {\n borderColor: 'rgba(0, 0, 0, 0.8)',\n borderWidth: 0,\n areaColor: '#e2e2e2',\n // areaColor: '#fff',\n },\n emphasis: {\n borderColor: '#a0bfff',\n borderWidth: 2,\n areaColor: '#200fff',\n },\n },\n data: [],\n },\n ],\n },\n },\n mutations: {\n setSortBy(state, sort) {\n state.sortBy = sort;\n },\n setHrData(state, data) {\n const mappedData = data.map((c) => {\n if (c.name === state.hrCountrySelected) {\n c.selected = true;\n } else {\n c.selected = false;\n }\n return c;\n });\n const series0 = { ...seriesDefault,\n data: mappedData,\n };\n state.hrChartOptions = {\n ...state.hrChartOptions,\n series: [series0],\n };\n },\n setHrSearchText(state, text) {\n state.hrSearchText = text;\n },\n setHrCategories(state, categories) {\n state.hrCategories = categories;\n },\n setHrNewsLoading(state, loading) {\n state.hrNewsLoading = loading;\n },\n setPositiveHrNews(state, news) {\n state.positiveHrNews = news;\n },\n setNegativeHrNews(state, news) {\n state.negativeHrNews = news;\n },\n appendPositiveHrNews(state, news) {\n state.positiveHrNews = [...state.positiveHrNews, ...news];\n },\n appendNegativeHrNews(state, news) {\n state.negativeHrNews = [...state.negativeHrNews, ...news];\n },\n setHrCountrySelected(state, country) {\n state.hrCountrySelected = country;\n const mappedData = state.hrChartOptions.series[0].data.map((c) => {\n if (c.name === state.hrCountrySelected) {\n c.selected = true;\n } else {\n c.selected = false;\n }\n return c;\n });\n const series0 = { ...seriesDefault,\n data: mappedData,\n };\n const cty = country === '' ? 'Worldwide' : country;\n const title = {\n ...state.hrChartOptions.title,\n subtext: cty,\n };\n state.hrChartOptions = {\n ...state.hrChartOptions,\n series: [series0],\n title,\n };\n },\n addHrCategoryFilter(state, category) {\n Vue.set(state.hrCategoryFilter, category, true);\n },\n removeHrCategoryFilter(state, category) {\n Vue.set(state.hrCategoryFilter, category, false);\n },\n setHrStartDate(state, date) {\n state.hrStartDate = date;\n },\n setHrEndDate(state, date) {\n state.hrEndDate = date;\n },\n setHrChartLoading(state, loading) {\n state.hrChartLoading = loading;\n },\n setHrStartDateFilter(state, startDate) {\n state.hrStartDateFilter = startDate.toISOString()\n .slice(0, 10);\n },\n setHrEndDateFilter(state, endDate) {\n state.hrEndDateFilter = endDate.toISOString()\n .slice(0, 10);\n },\n },\n actions: {\n initHrCategory({\n commit,\n }) {\n hrNewsAxios.get('/aims/api/hr/category')\n .then((res) => {\n if (res.data) {\n const categories = res.data.categories.map((cat) => {\n if (cat === 'Legislation') {\n return {\n label: cat,\n id: cat,\n children: res.data.legislationArticleTypes.map(art => ({\n label: art || 'Others',\n underLegislation: true,\n id: `Legislation|${art || 'Others'}`,\n })),\n };\n }\n return {\n label: cat,\n id: cat,\n };\n });\n commit('setHrCategories', categories);\n }\n });\n },\n changeSortBy({\n state, commit, dispatch,\n }, sortBy) {\n if (sortBy === state.sortBy) {\n return;\n }\n commit('setSortBy', sortBy);\n dispatch('getHrNews');\n },\n getHrNews({\n commit,\n dispatch,\n }) {\n commit('setPositiveHrNews', []);\n commit('setNegativeHrNews', []);\n dispatch('getMorePositiveHrNews');\n dispatch('getMoreNegativeHrNews');\n },\n getMorePositiveHrNews({\n state,\n commit,\n }) {\n commit('setHrNewsLoading', true);\n if (state.positiveHrNews.length !== 0 && state.positiveHrNews.length % 20 !== 0) {\n commit('setHrNewsLoading', false);\n return;\n }\n const categories = Object.keys(state.hrCategoryFilter)\n .filter(k => state.hrCategoryFilter[k]);\n const postPosBody = {\n start: state.hrStartDateFilter,\n end: state.hrEndDateFilter,\n categories: categories.sort(),\n country: state.hrCountrySelected,\n sentiment_type: 'positive',\n sortBy: state.sortBy,\n searchText: state.hrSearchText.trim(),\n fromIndex: state.positiveHrNews.length,\n };\n hrNewsAxios.post('/aims/api/hr/newsByDateAndCategories', postPosBody, {\n cache: true,\n cacheKey: JSON.stringify(postPosBody),\n })\n .then((res) => {\n if (!res.data) {\n commit('setHrNewsLoading', false);\n return;\n }\n const data = res.data.map((news) => {\n const published = new Date(news.published);\n news.published = published.toISOString()\n .slice(0, 10);\n return news;\n });\n data.sort((a, b) => {\n if (a.published < b.published) {\n return 1;\n } else if (a.published > b.published) {\n return -1;\n }\n return 0;\n });\n commit('appendPositiveHrNews', data);\n commit('setHrNewsLoading', false);\n });\n },\n getMoreNegativeHrNews({\n state,\n commit,\n }) {\n commit('setHrNewsLoading', true);\n if (state.negativeHrNews.length !== 0 && state.negativeHrNews.length % 20 !== 0) {\n commit('setHrNewsLoading', false);\n return;\n }\n const categories = Object.keys(state.hrCategoryFilter)\n .filter(k => state.hrCategoryFilter[k]);\n const postNegBody = {\n start: state.hrStartDateFilter,\n end: state.hrEndDateFilter,\n categories: categories.sort(),\n country: state.hrCountrySelected,\n sentiment_type: 'negative',\n sortBy: state.sortBy,\n searchText: state.hrSearchText.trim(),\n fromIndex: state.negativeHrNews.length,\n };\n hrNewsAxios.post('/aims/api/hr/newsByDateAndCategories', postNegBody, {\n cache: true,\n cacheKey: JSON.stringify(postNegBody),\n })\n .then((res) => {\n if (!res.data) {\n commit('setHrNewsLoading', false);\n return;\n }\n const data = res.data.map((news) => {\n const published = new Date(news.published);\n news.published = published.toISOString()\n .slice(0, 10);\n return news;\n });\n data.sort((a, b) => {\n if (a.published < b.published) {\n return 1;\n } else if (a.published > b.published) {\n return -1;\n }\n return 0;\n });\n commit('appendNegativeHrNews', data);\n commit('setHrNewsLoading', false);\n });\n },\n filterHrByDate({\n commit,\n getters,\n dispatch,\n }, dateSelection) {\n commit('setHrStartDateFilter', dateSelection[0]);\n commit('setHrEndDateFilter', dateSelection[1]);\n dispatch('getScoreByDateAndCategories');\n },\n getScoreByDateAndCategories({\n state,\n commit,\n }) {\n const categories = Object.keys(state.hrCategoryFilter)\n .filter(k => state.hrCategoryFilter[k]);\n const postBody = {\n start: state.hrStartDateFilter,\n end: state.hrEndDateFilter,\n categories: categories.sort(),\n };\n hrNewsAxios.post(\n '/aims/api/hr/scoreByDateAndCategories', postBody, {\n cache: true,\n cacheKey: JSON.stringify(postBody),\n },\n )\n .then((res) => {\n commit('setHrData', res.data);\n commit('setHrChartLoading', false);\n });\n },\n },\n getters: {\n\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/hrNewsModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst newsAxios = axios.create();\nconst cache = new Map();\ncacheAxios(newsAxios, cache);\nnewsAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/disruptive';\n }, 500);\n }\n });\n\nexport default {\n state: {\n allNews: [],\n revMomen: [],\n costMomen: [],\n },\n mutations: {\n setAllNews(state, news) {\n state.allNews = news;\n },\n setRevMomen(state, value) {\n state.revMomen = value;\n },\n setCostMomen(state, value) {\n state.costMomen = value;\n },\n },\n actions: {\n initDisruptorsData({\n commit,\n }) {\n newsAxios.get('/aims/api/disruptive/all')\n .then((res) => {\n if (res.status === 200) {\n if (res.data) {\n commit('setAllNews', res.data);\n const arr = res.data.filter(task => task.data_type === 'BIZ');\n let cos = '';\n for (let i = 0; i < arr.length; i += 1) {\n if (arr[i].company !== undefined) {\n if (cos === '') {\n cos = cos.concat(arr[i].company, ';', arr[i].country);\n } else {\n cos = cos.concat(',', arr[i].company, ';', arr[i].country);\n }\n }\n }\n newsAxios.post('/aims/api/disruptive/revenue', { companies: cos })\n .then((resR) => {\n if (resR.data) {\n commit('setRevMomen', resR.data);\n } else {\n commit('setRevMomen', []);\n }\n });\n newsAxios.post('/aims/api/disruptive/cost', { companies: cos })\n .then((resC) => {\n if (resC.data) {\n commit('setCostMomen', resC.data);\n } else {\n commit('setCostMomen', []);\n }\n });\n }\n }\n });\n },\n },\n getters: {\n\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/disruptorsModule.js","const SI_PREFIXES = ['', 'k', 'M', 'B', 'T', 'P', 'E'];\n\nexport default function abbreviateNumber(number) {\n // what tier? (determines SI prefix)\n const tier = Math.log10(Math.abs(number)) / 3 | 0; // eslint-disable-line no-bitwise\n\n // if zero, we don't need a prefix\n if (tier === 0) return number;\n\n // get prefix and determine scale\n const prefix = SI_PREFIXES[tier];\n const scale = 10 ** (tier * 3);\n\n // scale the number\n const scaled = number / scale;\n let formatted = `${scaled.toFixed(1)}`;\n if (/\\.0$/.test(formatted)) {\n formatted = formatted.substr(0, formatted.length - 2);\n }\n return formatted + prefix;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/abbreviateNumber.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport dataTool from 'echarts/extension/dataTool';\nimport groupBy from 'lodash/groupBy';\nimport statsLite from 'stats-lite';\nimport cacheAxios from '../../util/cacheAxios';\nimport abbreviateNumber from '../../util/abbreviateNumber';\n\nconst financeAxios = axios.create();\nconst cache = new Map();\ncacheAxios(financeAxios, cache);\n\nfinanceAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nconst grid = [\n {\n // left: 110,\n right: '14%',\n bottom: '11%',\n },\n ];\nconst legend = {\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\n\nexport default {\n state: {\n chartLoading: false,\n indicatorSelected: 'totalRevenue',\n companySelected: '',\n sectors: [],\n countries: [],\n relevantCompanies: [],\n relevantCompaniesIndicators: [],\n indicators: [\n {\n label: 'Total Revenue',\n code: 'totalRevenue',\n },\n {\n label: 'EBITDA',\n code: 'ebitda',\n },\n {\n label: 'Net Income',\n code: 'netIncome',\n },\n {\n label: 'Revenue Per Employee',\n code: 'revenuePerEmployee',\n },\n {\n label: 'Net Income Per Employee',\n code: 'netIncomePerEmployee',\n },\n {\n label: 'Return on Assets',\n code: 'returnOnAssets',\n },\n {\n label: 'Return on Equity',\n code: 'returnOnEquity',\n },\n {\n label: 'Return on Investment',\n code: 'returnOnInvestment',\n },\n ],\n financeChartOptions: {\n backgroundColor: '#fff',\n title: {\n text: '',\n left: 'center',\n top: '2%',\n subtextStyle: {\n fontSize: 16,\n color: '#333',\n },\n textStyle: {\n color: '#333',\n },\n },\n tooltip: {\n trigger: 'item',\n },\n xAxis: [\n {\n data: [],\n silent: false,\n splitLine: {\n show: false,\n },\n },\n ],\n yAxis: [\n {\n axisLabel: {\n textStyle: {\n color: '#999',\n },\n formatter: label => `US$${abbreviateNumber(label)}`,\n },\n },\n ],\n // legend: {\n // data: ['Company', '20 Percentile', 'Median', '80 Percentile'],\n // right: '2%',\n // top: '2%',\n // width: '10%',\n // },\n grid,\n legend,\n series: [\n {\n name: 'Company',\n type: 'scatter',\n label: {\n normal: {\n show: false,\n },\n emphasis: {\n show: false,\n },\n },\n itemStyle: {\n normal: {\n borderColor: 'rgba(0, 0, 0, 0.8)',\n borderWidth: 0,\n areaColor: '#e2e2e2',\n },\n emphasis: {\n borderColor: '#a0bfff',\n borderWidth: 2,\n areaColor: '#200fff',\n },\n },\n data: [],\n z: 3,\n tooltip: {\n formatter: (param) => {\n const tip = [\n `${param.seriesName}: `,\n `${param.data[0]}: US$${abbreviateNumber(param.data[1])}`,\n ].join('
');\n return tip;\n },\n },\n },\n {\n name: 'box',\n type: 'boxplot',\n z: 1,\n tooltip: {\n formatter: (param) => {\n const tip = [\n `${param.data.name}: `,\n `upper: US$${abbreviateNumber(param.data.value[4])}`,\n `Q3: US$${abbreviateNumber(param.data.value[3])}`,\n `median: US$${abbreviateNumber(param.data.value[2])}`,\n `Q1: US$${abbreviateNumber(param.data.value[1])}`,\n `lower: US$${abbreviateNumber(param.data.value[0])}`,\n ].join('
');\n return tip;\n },\n },\n },\n {\n name: 'Outliers',\n type: 'scatter',\n itemStyle: {\n normal: {\n borderColor: 'rgba(0, 0, 0, 0.3)',\n borderWidth: 1,\n areaColor: '#e2e2e2',\n opacity: 0.3,\n },\n emphasis: {\n borderColor: '#a0bfff',\n borderWidth: 2,\n areaColor: '#200fff',\n },\n },\n data: [],\n z: 2,\n symbolSize: 7,\n tooltip: {\n formatter: (param) => {\n const tip = [\n `${param.data.company}: `,\n `US$${abbreviateNumber(param.data.value[1])}`,\n ].join('
');\n return tip;\n },\n },\n },\n ],\n },\n },\n mutations: {\n setIndicatorSelected(state, indicator) {\n state.indicatorSelected = indicator;\n },\n\n setCompanySelected(state, company) {\n state.companySelected = company;\n },\n\n setCountries(state, countries) {\n state.countries = countries;\n },\n\n setSectors(state, sectors) {\n state.sectors = sectors;\n },\n\n setChartLoading(state, value) {\n state.chartLoading = value;\n },\n\n setRelevantCompanies(state, companies) {\n state.relevantCompanies = companies;\n },\n\n setRelevantCompaniesIndicators(state, indicators) {\n state.relevantCompaniesIndicators = indicators;\n },\n\n plotBox(state) {\n const indicator = state.indicatorSelected;\n const extractedCompIndicators = state.relevantCompaniesIndicators\n .filter(i => i[indicator])\n .map((i) => {\n const mapped = {\n reportDate: i.reportDate.slice(0, 4),\n value: i[indicator],\n company: i.shortName,\n };\n return mapped;\n });\n const groupedCompIndicators = groupBy(extractedCompIndicators, 'reportDate');\n const keys = Object.keys(groupedCompIndicators);\n\n const avg = statsLite.mean(keys.map(k => groupedCompIndicators[k].length));\n const arrayChartData = keys\n .sort()\n .map((key) => {\n if (groupedCompIndicators[key].length < (avg - 1)) {\n return [];\n }\n\n const mapped = groupedCompIndicators[key].map(i => i.value);\n return mapped;\n });\n const data = dataTool.prepareBoxplotData(arrayChartData);\n const xAxis = { ...state.financeChartOptions.xAxis[0],\n data: data.axisData.map(i => keys[i]),\n };\n const namedBoxData = data.axisData.map((i) => {\n const out = {\n name: keys[i],\n value: data.boxData[i],\n };\n return out;\n });\n const boxSeries = { ...state.financeChartOptions.series[1],\n data: namedBoxData,\n name: indicator,\n };\n\n const sortedKeys = keys.sort();\n const companyDots = extractedCompIndicators.map((i) => {\n const out = {\n name: i.reportDate,\n company: i.company,\n value: [sortedKeys.indexOf(i.reportDate), i.value],\n };\n return out;\n });\n\n const namedOutliers = data.outliers.map((i) => {\n const out = {\n name: keys[i[0]],\n value: i,\n };\n return out;\n });\n const outlierSeries = { ...state.financeChartOptions.series[2],\n data: companyDots,\n name: indicator,\n };\n const indicatorItem = state.indicators.find(i => i.code === indicator);\n let subtext = '';\n if (indicatorItem) {\n subtext = indicatorItem.label;\n }\n\n const title = { ...state.financeChartOptions.title,\n subtext,\n };\n state.financeChartOptions = { ...state.financeChartOptions,\n series: [state.financeChartOptions.series[0], boxSeries, outlierSeries],\n xAxis: [xAxis],\n title,\n };\n },\n\n unplotBox(state) {\n const boxSeries = { ...state.financeChartOptions.series[1],\n data: [],\n };\n const outlierSeries = { ...state.financeChartOptions.series[2],\n data: [],\n };\n const title = { ...state.financeChartOptions.title,\n subtext: '',\n };\n state.financeChartOptions = { ...state.financeChartOptions,\n series: [state.financeChartOptions.series[0], boxSeries, outlierSeries],\n title,\n };\n },\n\n unplotCompany(state) {\n const companySeries = { ...state.financeChartOptions.series[0],\n data: [],\n };\n const title = { ...state.financeChartOptions.title,\n text: '',\n };\n state.financeChartOptions = { ...state.financeChartOptions,\n series: [companySeries, state.financeChartOptions.series[1],\n state.financeChartOptions.series[2]],\n title,\n };\n },\n\n plotCompany(state) {\n const company = state.companySelected;\n const indicator = state.indicatorSelected;\n const compIndicator = state.relevantCompaniesIndicators\n .filter(c => c.shortName === company);\n if (compIndicator.length === 0 || !compIndicator[0][indicator]) {\n const companySeries = { ...state.financeChartOptions.series[0],\n data: [],\n };\n state.financeChartOptions = { ...state.financeChartOptions,\n series: [companySeries, state.financeChartOptions.series[1],\n state.financeChartOptions.series[2]],\n };\n return;\n }\n\n const companyData = compIndicator\n .map(indicatorSet => [indicatorSet.reportDate.slice(0, 4), indicatorSet[indicator]]);\n const companySeries = { ...state.financeChartOptions.series[0],\n data: companyData,\n name: company,\n };\n const text = company;\n const title = { ...state.financeChartOptions.title,\n text,\n };\n state.financeChartOptions = { ...state.financeChartOptions,\n series: [companySeries, state.financeChartOptions.series[1],\n state.financeChartOptions.series[2]],\n title,\n };\n },\n },\n actions: {\n initFinanceData({\n commit,\n }) {\n financeAxios.get('/aims/api/finance/countries')\n .then((res) => {\n if (res.status === 200) {\n res.data.sort();\n commit('setCountries', res.data);\n }\n });\n financeAxios.get('/aims/api/finance/gics')\n .then((res) => {\n if (res.status === 200) {\n commit('setSectors', res.data);\n }\n });\n },\n\n getCompaniesByCountryAndIndustries({\n state,\n commit,\n }, {\n country,\n gicsCode,\n }) {\n commit('setChartLoading', true);\n commit('unplotCompany');\n gicsCode.sort();\n const query = {\n country,\n gicsCode,\n };\n financeAxios.post('/aims/api/finance/companiesByCountryAndIndustry', query, {\n cache: true,\n cacheKey: query,\n })\n .then((res) => {\n if (res.status === 200) {\n commit('setRelevantCompanies', res.data);\n if (res.data && res.data.length > 0) {\n return res.data.map(c => c.compNumber);\n }\n\n return null;\n }\n\n return null;\n })\n .then((companies) => {\n if (companies && companies.length > 0) {\n const indicatorQuery = {\n companies,\n };\n financeAxios.post('/aims/api/finance/indicatorsByCompanies', indicatorQuery, {\n cache: true,\n cacheKey: indicatorQuery,\n })\n .then((res) => {\n if (res.status === 200) {\n commit('setRelevantCompaniesIndicators', res.data);\n commit('plotBox', state.indicatorSelected);\n commit('setChartLoading', false);\n } else {\n commit('setRelevantCompaniesIndicators', []);\n commit('unplotBox');\n commit('setChartLoading', false);\n }\n });\n } else {\n commit('setRelevantCompaniesIndicators', []);\n commit('unplotBox');\n commit('setChartLoading', false);\n }\n });\n },\n },\n getters: {\n sectorsTree(state) {\n const tree = state.sectors.map((sector) => {\n const igChildren = sector.industryGroups.map((ig) => {\n const industryChilren = ig.industries.map((i) => {\n const subIndustryChildren = i.subIndustries.map((si) => {\n const siChild = {\n label: si.name,\n code: si.code,\n };\n return siChild;\n });\n return {\n label: i.name,\n code: i.code,\n children: subIndustryChildren,\n };\n });\n return {\n label: ig.name,\n code: ig.code,\n children: industryChilren,\n };\n });\n return {\n label: sector.name,\n code: sector.code,\n children: igChildren,\n };\n });\n return tree;\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/financeModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport uniqBy from 'lodash/uniqBy';\nimport Vue from 'vue';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst companyListAxios = axios.create();\nconst cache = new Map();\ncacheAxios(companyListAxios, cache);\n\ncompanyListAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nfunction companyIndicatorComparator(a, b) {\n if (!a || !b) {\n return 1;\n }\n if (a.longName > b.longyName) {\n return 1;\n } else if (a.longName < b.longyName) {\n return -1;\n }\n if (a.reportDate > b.reportDate) {\n return 1;\n } else if (a.reportDate < b.reportDate) {\n return -1;\n }\n return 0;\n}\n\nexport default {\n state: {\n years: [],\n countries: [],\n yearFilter: '',\n countryFilter: '',\n sectorFilter: '',\n companyIndicators: [],\n companyIndicatorSelected: {},\n },\n mutations: {\n setCompanyListYears(state, years) {\n state.years = years;\n },\n setCompanyListCountries(state, countries) {\n state.countries = countries;\n },\n setCompanyListYearFilter(state, filter) {\n state.yearFilter = filter;\n },\n setCompanyListCountryFilter(state, filter) {\n state.countryFilter = filter;\n },\n setCompanyListSectorFilter(state, filter) {\n state.sectorFilter = filter;\n },\n setCompanyIndicators(state, indicators) {\n state.companyIndicators = indicators;\n },\n addCompanyIndicators(state, indicators) {\n const index = state.companyIndicators.findIndex(i => i.reportDate === indicators.reportDate &&\n i.longName === indicators.longName);\n if (index >= 0) {\n Vue.set(state.companyIndicators, index, indicators);\n // state.companyIndicators[index] = indicators;\n } else {\n state.companyIndicators.push(indicators);\n }\n },\n removeCompanyIndicators(state, indicator) {\n state.companyIndicators = state.companyIndicators.filter(i => i.reportDate !==\n indicator.reportDate || i.longName !== indicator.longName);\n },\n setCompanyIndicatorSelected(state, indicator) {\n state.companyIndicatorSelected = indicator;\n },\n },\n actions: {\n initCountries({\n commit,\n }) {\n companyListAxios.get('/aims/api/benchmark/countries')\n .then((res) => {\n commit('setCompanyListCountries', res.data);\n });\n },\n initYears({\n commit,\n }) {\n companyListAxios.get('/aims/api/benchmark/years')\n .then((res) => {\n commit('setCompanyListYears', res.data);\n });\n },\n retrieveUserCompanyIndicators({\n commit,\n }) {\n companyListAxios.get('/aims/api/benchmark/currentUserCompanyIndicators')\n .then((res) => {\n commit('setCompanyIndicators', res.data);\n });\n },\n getCompanyIndicators({\n state,\n commit,\n }) {\n const q = {\n year: state.yearFilter,\n country: state.countryFilter,\n sector: state.sectorFilter,\n };\n if (q.year === '') {\n q.year = 0;\n }\n if (q.sector === '') {\n q.sector = 0;\n }\n companyListAxios.post('/aims/api/benchmark/indicatorsByYearCountrySector', q)\n .then((res) => {\n commit('setCompanyIndicators', res.data);\n });\n },\n saveCompanyIndicators({\n state,\n commit,\n }, companyIndicators) {\n return companyListAxios.post('/aims/api/benchmark/saveIndicator', companyIndicators)\n .then((res) => {\n if (res.status === 200) {\n commit('addCompanyIndicators', companyIndicators);\n }\n return res;\n });\n },\n deleteCompanyIndicators({\n state,\n commit,\n }, companyIndicators) {\n return companyListAxios.delete(\n `/aims/api/benchmark/deleteIndicator/${companyIndicators.longName}/${companyIndicators.reportDate}`,\n )\n .then((res) => {\n if (res.status === 200) {\n commit('removeCompanyIndicators', companyIndicators);\n }\n return res;\n });\n },\n },\n getters: {\n\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/companyListModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport sortBy from 'lodash/sortBy';\nimport uniqWith from 'lodash/uniqWith';\nimport uniq from 'lodash/uniq';\nimport differenceWith from 'lodash/differenceWith';\nimport some from 'lodash/some';\nimport groupBy from 'lodash/groupBy';\nimport stats from 'stats-lite';\nimport abbreviateNumber from '../../util/abbreviateNumber';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst benchmarkAxios = axios.create();\nconst cache = new Map();\ncacheAxios(benchmarkAxios, cache);\n\nbenchmarkAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nfunction companyComparator(c1, c2) {\n if (c1.exchange === c2.exchange && c1.stockSymbol === c2.stockSymbol &&\n c1.longName === c2.longName) {\n return true;\n }\n return false;\n}\nlet indicatorsMapping = {};\n\nconst lineStyle = {\n normal: {\n width: 3,\n type: 'dotted',\n },\n emphasis: {\n width: 2,\n type: 'dashed',\n },\n};\nconst grid = [\n {\n left: '5%',\n right: '12%',\n bottom: '11%',\n },\n ];\nconst legend = {\n top: '5%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\nconst label = {\n normal: {\n show: true,\n rotate: '90',\n distance: 20,\n verticalAlign: 'middle',\n // formatter: '{c}',\n formatter: (c) => {\n if (c.data[1] >= 0) {\n return `${abbreviateNumber(c.data[1])}`;\n }\n return `(${abbreviateNumber(-c.data[1])})`;\n },\n },\n emphasis: {\n show: true,\n formatter: '{a}',\n },\n};\nconst companyPlotMaxCount = 10;\nexport default {\n state: {\n indicatorsMeta: [],\n indicatorSelected: 'totalRevenueUsd',\n filteredCompanies: [],\n competitorsIndicators: {},\n competitors: [],\n chartOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n // formatter: '{b0}: {c0}
{b1}: {c1}',\n },\n grid,\n legend,\n toolbox: {\n feature: {\n magicType: {\n show: true,\n type: ['line', 'bar'],\n title: {\n line: 'line chart',\n bar: 'bar chart',\n },\n },\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n optionToContent(opt) {\n const axisData = opt.xAxis[0].data;\n const series = opt.series;\n let table = '
Year | ';\n for (let i = 0; i < series.length; i++) {\n if (series[i].data.length > 0) {\n table += `${series[i].name} | `;\n }\n }\n table += '
';\n for (let i = 0, l = axisData.length; i < l; i++) {\n const year = axisData[i];\n table += `${year} | `;\n for (let j = 0; j < series.length; j++) {\n if (series[j].data.length > 0) {\n const cell = series[j].data.find(row => row[0] === year);\n table += `${abbreviateNumber(cell) ? abbreviateNumber(cell[1]) : '-'} | `;\n }\n }\n table += '
';\n }\n table += '
';\n return table;\n },\n },\n restore: {\n show: true,\n title: 'reset',\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: [{\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n }],\n xAxis: {\n type: 'category',\n data: [],\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n splitLine: {\n show: true,\n },\n axisLabel: {\n type: 'value',\n formatter: (lbl) => {\n if (lbl >= 0) {\n return `US$${abbreviateNumber(lbl)}`;\n }\n return `(US$${abbreviateNumber(-lbl)})`;\n },\n },\n },\n },\n },\n mutations: {\n setIndicatorsMeta(state, metas) {\n state.indicatorsMeta = metas;\n },\n removeAllCompetitors(state) {\n state.competitors = [];\n },\n removeCompetitors(state, companies) {\n state.competitors = differenceWith(state.competitors, companies, companyComparator);\n },\n appendCompetitors(state, companies) {\n state.competitors = uniqWith(state.competitors.concat(companies), companyComparator);\n },\n addCompetitorsIndicators(state, competitors) {\n const metrics = state.indicatorsMeta.find(e => e.key === 'Productivity Metric');\n const financeMetrics = state.indicatorsMeta.find(e => e.key === 'Financial Indicator');\n if (metrics && metrics.children.length > 0) {\n competitors = competitors.map((ind) => {\n if (ind.totalRevenueUsd && ind.netIncomeUsd) {\n ind.totalCostUsd = ind.totalRevenueUsd - ind.netIncomeUsd;\n }\n metrics.children.forEach((met) => {\n if (ind[met.numerator] && ind[met.denominator]) {\n ind[met.key] = ind[met.numerator] / ind[met.denominator];\n }\n });\n financeMetrics.children.forEach((met) => {\n if (met.numerator && met.denominator && ind[met.numerator] && ind[met.denominator]) {\n ind[met.key] = ind[met.numerator] / ind[met.denominator];\n }\n });\n return ind;\n });\n }\n competitors = groupBy(competitors, c => `${c.longName}|-|${c.exchange}|-|${c.stockSymbol}`);\n state.competitorsIndicators = Object.freeze({\n ...state.competitorsIndicators,\n ...competitors,\n });\n },\n setFilteredCompanies(state, companies) {\n state.filteredCompanies = companies;\n },\n setIndicatorSelected(state, indicator) {\n state.indicatorSelected = indicator;\n },\n plotPinnedRevenueAndCosts(state, company) {\n const title = {\n ...state.chartOptions.title,\n };\n if (company === '') {\n title.text = indicatorsMapping[state.indicatorSelected];\n title.subtext = '';\n const xAxis = {\n ...state.chartOptions.xAxis,\n data: [],\n };\n const series = [{\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n }, {\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n }, {\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n },\n ];\n state.chartOptions = {\n ...state.chartOptions,\n clear: true,\n xAxis,\n title,\n series,\n };\n return;\n }\n title.subtext = indicatorsMapping[state.indicatorSelected];\n title.text = state.competitorsIndicators[company][0].longName;\n\n const sortedIndicators = sortBy(state.competitorsIndicators[company], ['reportDate']);\n const years = sortedIndicators.map(i => `${i.reportDate}`);\n let trKey = 'totalRevenueUsd';\n let tcKey = 'totalCostUsd';\n let scKey = 'salaryCostUsd';\n if (state.indicatorSelected === 'revenueAndCostPerEmployee') {\n trKey = 'totalRevenueUsdPerEmployee';\n tcKey = 'totalCostUsdPerEmployee';\n scKey = 'salaryCostUsdPerEmployee';\n }\n const tr = sortedIndicators.map((i) => {\n const value = i[trKey] ? i[trKey].toFixed(2) : '';\n const v = [\n `${i.reportDate}`,\n value,\n ];\n return v;\n });\n const tc = sortedIndicators.map((i) => {\n const value = i[tcKey] ? i[tcKey].toFixed(2) : '';\n const v = [\n `${i.reportDate}`,\n value,\n ];\n return v;\n });\n const sc = sortedIndicators.map((i) => {\n const value = i[scKey] ? i[scKey].toFixed(2) : '';\n const v = [\n `${i.reportDate}`,\n value,\n ];\n return v;\n });\n const xAxis = {\n ...state.chartOptions.xAxis,\n data: years,\n };\n const series = [\n {\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n }, {\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n }, {\n name: 'company',\n type: 'bar',\n barWidth: '25%',\n data: [],\n },\n ];\n series[0].name = `${state.competitorsIndicators[company][0].longName} (Total Revenue)`;\n series[0].data = tr;\n series[1].name = `${state.competitorsIndicators[company][0].longName} (Total Cost)`;\n series[1].data = tc;\n series[2].name = `${state.competitorsIndicators[company][0].longName} (Staff Cost)`;\n series[2].data = sc;\n const legendData = series.map(s => s.name);\n const newLegend = {\n ...legend,\n data: legendData,\n };\n state.chartOptions = {\n ...state.chartOptions,\n clear: true,\n title,\n xAxis,\n series,\n legend: newLegend,\n };\n },\n plotPinnedChart(state, company) {\n const title = {\n ...state.chartOptions.title,\n };\n if (company === '') {\n title.text = indicatorsMapping[state.indicatorSelected];\n title.subtext = '';\n const series = [\n ...state.chartOptions.series,\n ];\n series[0].data = [];\n series[0].name = '';\n\n state.chartOptions = {\n ...state.chartOptions,\n clear: true,\n title,\n series,\n };\n return;\n }\n title.subtext = indicatorsMapping[state.indicatorSelected];\n title.text = state.competitorsIndicators[company][0].longName;\n const yAxis = {\n ...state.chartOptions.yAxis,\n };\n if (state.indicatorSelected === 'noOfEmployees'\n || state.indicatorSelected === 'operatingMarginUsd'\n || state.indicatorSelected === 'rulcUsd'\n || state.indicatorSelected === 'salaryCostUsdToTotalRevenueUsd'\n || state.indicatorSelected === 'salaryCostUsdToNetIncomeUsd'\n || state.indicatorSelected === 'netIncomeUsdToSalaryCostUsd'\n || state.indicatorSelected === 'percentageWomenManagement'\n || state.indicatorSelected === 'percentageWomenWorkforce'\n ) {\n yAxis.axisLabel.formatter = (lbl) => {\n if (lbl >= 0) {\n return `${abbreviateNumber(lbl)}`;\n }\n return `(${abbreviateNumber(-lbl)})`;\n };\n } else {\n yAxis.axisLabel.formatter = (lbl) => {\n if (lbl >= 0) {\n return `US$${abbreviateNumber(lbl)}`;\n }\n return `(US$${abbreviateNumber(-lbl)})`;\n };\n }\n const sortedIndicators = sortBy(state.competitorsIndicators[company], ['reportDate']);\n const years = sortedIndicators.map(i => `${i.reportDate}`);\n const values = sortedIndicators.map((i) => {\n let value = '';\n if (state.indicatorSelected !== 'epsNetIncomeBasicUsd'\n && state.indicatorSelected !== 'operatingMarginUsd'\n && state.indicatorSelected !== 'rulcUsd') {\n value = i[state.indicatorSelected] ? i[state.indicatorSelected].toFixed(0) :\n '';\n } else {\n value = i[state.indicatorSelected] ? i[state.indicatorSelected].toFixed(3) :\n '';\n }\n const v = [\n `${i.reportDate}`,\n value,\n ];\n return v;\n });\n\n const xAxis = {\n ...state.chartOptions.xAxis,\n data: years,\n };\n const series = [...state.chartOptions.series];\n series[0].name = state.competitorsIndicators[company][0].longName;\n series[0].data = values;\n const legendData = series.map(s => s.name);\n const newLegend = {\n ...legend,\n data: legendData,\n };\n state.chartOptions = {\n ...state.chartOptions,\n clear: true,\n title,\n xAxis,\n yAxis,\n series,\n legend: newLegend,\n };\n },\n plotCompetitorsChartCombine(state, {\n xAxisData,\n mSeries,\n }) {\n const series = mSeries;\n let data = [...state.chartOptions.xAxis.data, ...xAxisData];\n data = uniq(data);\n data.sort();\n const xAxis = {\n ...state.chartOptions.xAxis,\n data,\n };\n const newLegend = {\n ...legend,\n data: series.map((s) => {\n if (s) {\n return s.name;\n }\n return '';\n })\n .filter(n => n && n !== 'company'),\n };\n if (xAxisData.length === 0) {\n newLegend.data = [];\n }\n state.chartOptions = {\n ...state.chartOptions,\n clear: true,\n xAxis,\n title: { ...state.chartOptions.title,\n text: indicatorsMapping[state.indicatorSelected],\n },\n // yAxis,\n series,\n legend: newLegend,\n };\n },\n plotCompetitorsChart(state, {\n xAxisData,\n mSeries,\n }) {\n const series0 = {\n ...state.chartOptions.series[0],\n type: 'bar',\n barWidth: '25%',\n };\n const series = [series0, ...mSeries];\n // let yMin = Number.MAX_SAFE_INTEGER;\n // series.forEach((s) => {\n // s.data.forEach((d) => {\n // if (!d) return;\n // if (+d[1] < yMin) {\n // yMin = +d[1];\n // }\n // });\n // });\n // const yAxis = {\n // ...state.chartOptions.yAxis,\n // min: Math.floor(yMin > 0 ? yMin * 0.95 : yMin * 1.05),\n // };\n const yAxis = {\n ...state.chartOptions.yAxis,\n };\n if (state.indicatorSelected === 'noOfEmployees'\n || state.indicatorSelected === 'operatingMarginUsd'\n || state.indicatorSelected === 'rulcUsd'\n || state.indicatorSelected === 'salaryCostUsdToTotalRevenueUsd'\n || state.indicatorSelected === 'salaryCostUsdToNetIncomeUsd'\n || state.indicatorSelected === 'netIncomeUsdToSalaryCostUsd'\n || state.indicatorSelected === 'percentageWomenManagement'\n || state.indicatorSelected === 'percentageWomenWorkforce') {\n yAxis.axisLabel.formatter = (lbl) => {\n if (lbl >= 0) {\n return `${abbreviateNumber(lbl)}`;\n }\n return `(${abbreviateNumber(-lbl)})`;\n };\n } else {\n yAxis.axisLabel.formatter = (lbl) => {\n if (lbl >= 0) {\n return `US$${abbreviateNumber(lbl)}`;\n }\n return `(US$${abbreviateNumber(-lbl)})`;\n };\n }\n let data = [...state.chartOptions.xAxis.data, ...xAxisData];\n data = uniq(data);\n data.sort();\n\n const xAxis = {\n ...state.chartOptions.xAxis,\n data,\n };\n const newLegend = {\n ...legend,\n data: series.map(s => s.name).filter(n => n && n !== 'company'),\n };\n const title = {\n ...state.chartOptions.title,\n text: indicatorsMapping[state.indicatorSelected],\n };\n state.chartOptions = {\n ...state.chartOptions,\n clear: true,\n xAxis,\n yAxis,\n series,\n title,\n legend: newLegend,\n };\n },\n },\n actions: {\n\n saveCompanyList(_, list) {\n return benchmarkAxios.post('/aims/api/benchmark/saveCompanyList', list);\n },\n\n retrieveCompanyList(_, list) {\n return benchmarkAxios.get('/aims/api/benchmark/userCompanyList');\n },\n\n removeCompanyList(_, listName) {\n return benchmarkAxios.delete(`/aims/api/benchmark/userCompanyList/${listName}`);\n },\n\n preparePlotCompetitorCombine({\n commit,\n state,\n }, companySelections) {\n let trKey = 'totalRevenueUsd';\n let tcKey = 'totalCostUsd';\n let scKey = 'salaryCostUsd';\n if (state.indicatorSelected === 'revenueAndCostPerEmployee') {\n trKey = 'totalRevenueUsdPerEmployee';\n tcKey = 'totalCostUsdPerEmployee';\n scKey = 'salaryCostUsdPerEmployee';\n }\n const solidLineStyle = {\n normal: {\n width: 3,\n type: 'solid',\n },\n };\n\n let relevantIndicators = [];\n companySelections.forEach((c) => {\n const matches = state.competitorsIndicators[\n `${c.longName}|-|${c.exchange}|-|${c.stockSymbol}`];\n relevantIndicators = relevantIndicators.concat(matches);\n });\n\n const grouped = groupBy(relevantIndicators, 'reportDate');\n let dates = Object.keys(grouped);\n const series = [{\n name: 'Total Revenue (median)',\n type: 'line',\n data: [],\n lineStyle: solidLineStyle,\n label,\n }, {\n name: 'Total Cost (median)',\n type: 'line',\n data: [],\n lineStyle: solidLineStyle,\n label,\n }, {\n name: 'Staff Cost (median)',\n type: 'line',\n data: [],\n lineStyle: solidLineStyle,\n label,\n }];\n\n const tr = {};\n const tc = {};\n const sc = {};\n let trMax = 0;\n let tcMax = 0;\n let scMax = 0;\n dates.forEach((date) => {\n tr[date] = grouped[date]\n .filter(l => l[trKey])\n .map(l => l[trKey]);\n tc[date] = grouped[date]\n .filter(l => l[tcKey])\n .map(l => l[tcKey]);\n sc[date] = grouped[date]\n .filter(l => l[scKey])\n .map(l => l[scKey]);\n if (tr[date].length > trMax) {\n trMax = tr[date].length;\n }\n if (tc[date].length > tcMax) {\n tcMax = tc[date].length;\n }\n if (sc[date].length > scMax) {\n scMax = sc[date].length;\n }\n });\n const validDates = {};\n dates.forEach((date) => {\n if (tr[date].length >= trMax * 0.8) {\n const trMid = stats.median(tr[date]);\n series[0].data.push([date, trMid.toFixed(0)]);\n validDates[date] = true;\n }\n if (tc[date].length >= tcMax * 0.8) {\n const tcMid = stats.median(tc[date]);\n series[1].data.push([date, tcMid.toFixed(0)]);\n validDates[date] = true;\n }\n if (sc[date].length >= scMax * 0.8) {\n const scMid = stats.median(sc[date]);\n series[2].data.push([date, scMid.toFixed(0)]);\n validDates[date] = true;\n }\n });\n dates = dates.filter(date => validDates[date]);\n let mSeries;\n if (state.chartOptions.series.length > 0 && !state.chartOptions.series[0].name.includes('(Total Revenue)')) {\n mSeries = series;\n } else {\n mSeries = [\n ...state.chartOptions.series.slice(0, 3),\n ...series,\n ];\n }\n commit('plotCompetitorsChartCombine', {\n xAxisData: dates,\n mSeries,\n });\n },\n preparePlotCompetitorChart({\n dispatch,\n commit,\n state,\n }, companySelections) {\n if (state.indicatorSelected === 'revenueAndCost' || state.indicatorSelected ===\n 'revenueAndCostPerEmployee') {\n dispatch('preparePlotCompetitorCombine', companySelections);\n return;\n }\n let dates = [];\n let series = [];\n if (companySelections.length <= companyPlotMaxCount) {\n let relevantIndicators = [];\n companySelections.forEach((c) => {\n const matches = state.competitorsIndicators[\n `${c.longName}|-|${c.exchange}|-|${c.stockSymbol}`];\n relevantIndicators = relevantIndicators.concat(matches);\n });\n const grouped = groupBy(relevantIndicators, 'longName');\n const sorted = Object.keys(grouped)\n .map(key => sortBy(grouped[key], ['reportDate']));\n sorted.forEach(arr => arr.forEach((item) => {\n if (!dates.includes(`${item.reportDate}`)) {\n dates.push(`${item.reportDate}`);\n }\n }));\n dates.sort();\n series = Object.keys(grouped)\n .map((key, i) => {\n const array = {\n name: key,\n type: 'line',\n data: sorted[i].map((d) => {\n let value = d[state.indicatorSelected] ? d[state.indicatorSelected] : '';\n if (value && Math.abs(value) > 100) {\n value = value.toFixed(0);\n } else if (value) {\n value = value.toFixed(2);\n }\n const v = [\n `${d.reportDate}`,\n value,\n ];\n return v;\n })\n .filter(d => d[1] !== ''),\n lineStyle,\n label,\n };\n return array;\n })\n .filter(item => item.data.length > 0);\n } else {\n const solidLineStyle = {\n normal: {\n width: 3,\n type: 'solid',\n },\n };\n let relevantIndicators = [];\n companySelections.forEach((c) => {\n const matches = state.competitorsIndicators[\n `${c.longName}|-|${c.exchange}|-|${c.stockSymbol}`];\n relevantIndicators = relevantIndicators.concat(matches);\n });\n const grouped = groupBy(relevantIndicators, 'reportDate');\n dates = Object.keys(grouped);\n for (let i = 0; i < 3; i++) {\n let name = '';\n switch (i) {\n case 0:\n name = '25%';\n break;\n case 1:\n name = 'Median';\n break;\n case 2:\n name = '75%';\n break;\n default:\n }\n series.push({\n name,\n type: 'line',\n data: [],\n lineStyle: solidLineStyle,\n });\n }\n let max = 0;\n const validDates = {};\n dates.forEach((date) => {\n grouped[date] = grouped[date]\n .filter(l => l[state.indicatorSelected])\n .map(l => l[state.indicatorSelected]);\n if (grouped[date].length > max) {\n max = grouped[date].length;\n }\n });\n dates.forEach((date) => {\n const filteredList = grouped[date];\n if (filteredList.length < max * 0.8) {\n return;\n }\n validDates[date] = true;\n let low = stats.percentile(filteredList, 0.25);\n let mid = stats.median(filteredList);\n let hi = stats.percentile(filteredList, 0.75);\n if (hi && Math.abs(hi) > 100) {\n low = low.toFixed(0);\n hi = hi.toFixed(0);\n mid = mid.toFixed(0);\n } else if (hi) {\n low = low.toFixed(2);\n hi = hi.toFixed(2);\n mid = mid.toFixed(2);\n }\n // if (state.indicatorSelected !== 'epsNetIncomeBasicUsd'\n // && state.indicatorSelected !== 'operatingMarginUsd'\n // && state.indicatorSelected !== 'rulcUsd') {\n // low = low.toFixed(0);\n // hi = hi.toFixed(0);\n // mid = mid.toFixed(0);\n // } else {\n // low = low.toFixed(3);\n // hi = hi.toFixed(3);\n // mid = mid.toFixed(3);\n // }\n series[0].data.push([date, low]);\n series[1].data.push([date, mid]);\n series[2].data.push([date, hi]);\n });\n dates = dates.filter(date => validDates[date]);\n }\n commit('plotCompetitorsChart', {\n xAxisData: dates,\n mSeries: series,\n });\n },\n retrieveCompetitorsIndicators({\n state,\n commit,\n }, competitors) {\n const diff = competitors.filter(c => !state.competitorsIndicators[\n `${c.longName}|-|${c.exchange}|-|${c.stockSymbol}`]);\n const coms = diff.map(com => ({\n e: com.exchange,\n s: com.stockSymbol,\n l: com.longName,\n }));\n return benchmarkAxios.post('/aims/api/benchmark/companyIndicators', coms)\n .then((res) => {\n if (res.data !== null) {\n commit('addCompetitorsIndicators', res.data);\n }\n });\n },\n getIndicatorsMetas({\n commit,\n }) {\n return benchmarkAxios.get('/aims/api/benchmark/indicatorsMeta')\n .then((res) => {\n if (res.data) {\n commit('setIndicatorsMeta', res.data);\n indicatorsMapping = {};\n res.data.forEach((grp) => {\n grp.children.forEach((meta) => { indicatorsMapping[meta.key] = meta.label; });\n });\n }\n });\n },\n filterAndPlot({\n commit,\n dispatch,\n }, filter) {\n return benchmarkAxios.post('/aims/api/benchmark/companiesFilter', filter, {\n cache: true,\n cacheKey: filter,\n })\n .then((res) => {\n if (res.data) {\n commit('removeAllCompetitors');\n commit('appendCompetitors', res.data);\n commit('setFilteredCompanies', res.data);\n } else {\n commit('appendCompetitors', []);\n commit('setFilteredCompanies', []);\n }\n });\n },\n searchLongName({\n commit,\n }, longName) {\n if (longName.trim() === '') {\n commit('setFilteredCompanies', []);\n return Promise.resolve();\n }\n return benchmarkAxios.get(`/aims/api/benchmark/longNameFilter/${longName}`, {\n cache: true,\n cacheKey: longName,\n })\n .then((res) => {\n if (res.data) {\n commit('setFilteredCompanies', res.data);\n } else {\n commit('setFilteredCompanies', []);\n }\n });\n },\n filterCompanies({\n commit,\n }, filter) {\n const keysWithContent = Object.keys(filter)\n .filter(key => filter[key]);\n if (keysWithContent.length === 0) {\n commit('setFilteredCompanies', []);\n return Promise.resolve();\n }\n return benchmarkAxios.post('/aims/api/benchmark/companiesFilter', filter, {\n cache: true,\n cacheKey: filter,\n })\n .then((res) => {\n if (res.data) {\n commit('setFilteredCompanies', res.data);\n } else {\n commit('setFilteredCompanies', []);\n }\n });\n },\n },\n getters: {},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/benchmarkModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport uniq from 'lodash/uniq';\n// import sortBy from 'lodash/sortBy';\n// import difference from 'lodash/difference';\n// import differenceBy from 'lodash/differenceBy';\nimport groupBy from 'lodash/groupBy';\nimport some from 'lodash/some';\n// import stats from 'stats-lite';\nimport abbreviateNumber from '../../util/abbreviateNumber';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst econPredictorAxios = axios.create();\nconst cache = new Map();\ncacheAxios(econPredictorAxios, cache);\n\neconPredictorAxios.interceptors.response.use(\n response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n },\n);\n\nfunction buildYaxis(lbl = '', gridIndex = 0) {\n const yAxis = {\n splitLine: {\n show: false,\n },\n gridIndex,\n axisLabel: {\n type: 'value',\n formatter: (label) => {\n if (label >= 0) {\n return `${lbl} ${abbreviateNumber(label)}`;\n }\n return `(${lbl} ${abbreviateNumber(-label)})`;\n },\n },\n };\n return yAxis;\n}\n\nfunction buildSeries(\n countries,\n dataCountryCode,\n data,\n userCountryCode,\n index = -1,\n showSymbol = true,\n justUseValue = true,\n) {\n const name = countries.find(c => c.countryCode === dataCountryCode)\n .countryName;\n const lineStyle = {\n normal: {\n width: 2,\n },\n };\n if (dataCountryCode === userCountryCode) {\n lineStyle.normal.width = 5;\n }\n let dataS;\n if (justUseValue) {\n dataS = data.map(d => [d.date, d.value]);\n } else {\n dataS = data.map(d => [d.date, d.usdValue || d.value]);\n }\n\n const built = {\n name,\n type: 'line',\n showSymbol,\n lineStyle,\n xAxisIndex: index,\n yAxisIndex: index,\n data: dataS,\n };\n if (index === -1) {\n built.xAxisIndex = 0;\n built.yAxisIndex = 0;\n built.label = {\n normal: {\n show: false,\n formatter: '{a}',\n },\n emphasis: {\n show: true,\n formatter: '{a}',\n },\n };\n }\n return built;\n}\n\nconst singleGrid = [\n {\n right: '12%',\n bottom: '11%',\n },\n];\nconst legend = {\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\nconst dataZoom = [\n {\n type: 'inside',\n show: true,\n realtime: true,\n start: 30,\n end: 100,\n },\n {\n type: 'slider',\n realtime: true,\n start: 30,\n end: 100,\n },\n];\n\nexport default {\n state: {\n chartLoading: false,\n regionsGroup: [],\n regionSelected: '',\n countriesForPlot: [],\n economyIndicatorSelected: 'NGDPD',\n economyIndicatorHistoryMap: {},\n imfIndicatorMetas: {},\n chartOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n toolbox: {\n feature: {\n // dataZoom: {\n // yAxisIndex: 'none',\n // },\n dataView: {\n optionToContent(opt) {\n const axisData = opt.xAxis[0].data;\n const series = opt.series;\n let table = 'Date | ';\n\n for (let i = 0; i < series.length; i++) {\n table += `${series[i].name} | `;\n }\n table += '
';\n\n for (let i = 0, l = axisData.length; i < l; i++) {\n table += `${axisData[i]} | `;\n for (let j = 0; j < series.length; j++) {\n if (series[j].data[i] && series[j].data[i].length === 2) {\n table += `${series[j].data[i][1]} | `;\n } else {\n table += ' | ';\n }\n }\n table += '
';\n }\n table += '
';\n return table;\n },\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n dataZoom,\n series: [],\n xAxis: [\n {\n type: 'time',\n min: 'dataMin',\n max: 'dataMax',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n ],\n grid: singleGrid,\n legend,\n yAxis: [\n {\n splitLine: {\n show: false,\n },\n axisLabel: {\n type: 'value',\n formatter: (label) => {\n if (label >= 0) {\n return `US$${abbreviateNumber(label)}`;\n }\n return `(US$${abbreviateNumber(-label)})`;\n },\n },\n },\n ],\n },\n },\n mutations: {\n setImfIndicatorMetas(state, metas) {\n state.imfIndicatorMetas = metas;\n },\n setRegionsGroup(state, regionsGrp) {\n state.regionsGroup = regionsGrp;\n },\n setChartLoading(state, loading) {\n state.chartLoading = loading;\n },\n addEconomyIndicatorHistoryMap(state, maps) {\n Object.keys(maps)\n .forEach((k) => {\n Vue.set(state.economyIndicatorHistoryMap, k, maps[k]);\n });\n },\n setEconomyIndicatorSelected(state, indicator) {\n state.economyIndicatorSelected = indicator;\n },\n setUserCountry(state, country) {\n state.userCountry = country;\n },\n clearCountriesForPlot(state) {\n state.countriesForPlot = [];\n },\n removeCountriesForPlot(state, countries) {\n state.countriesForPlot = state.countriesForPlot.filter(\n c => !countries.find(cc => cc === c.countryCode),\n );\n },\n appendCountriesForPlot(state, countries) {\n countries.forEach((c) => {\n if (!some(state.countriesForPlot, ['countryCode', c.countryCode])) {\n state.countriesForPlot.push(c);\n }\n });\n },\n setRegionSelected(state, region) {\n state.regionSelected = region;\n },\n plotSingleChart(state, val) {\n const title = {\n ...state.chartOptions.title,\n text: val.title,\n top: '1%',\n left: 'center',\n };\n const xAxis = {\n ...state.chartOptions.xAxis,\n data: val.xAxisData,\n };\n const series = val.series;\n const legendSingle = {\n ...legend,\n data: val.legendData,\n };\n state.chartOptions = {\n ...state.chartOptions,\n title,\n xAxis,\n grid: singleGrid,\n yAxis: val.yAxis,\n legend: legendSingle,\n dataZoom,\n series,\n clear: true,\n };\n },\n plotMultipleChart(state, {\n xAxis,\n series,\n yAxis,\n grid,\n title,\n }) {\n state.chartOptions = {\n ...state.chartOptions,\n xAxis,\n yAxis,\n series,\n grid,\n title,\n legend: {\n data: [],\n },\n dataZoom: [],\n clear: true,\n };\n },\n },\n actions: {\n saveEconLocationList(_, list) {\n return econPredictorAxios.post('/aims/api/economy/saveEconLocationList', list);\n },\n\n retrieveEconLocationList() {\n return econPredictorAxios.get('/aims/api/economy/userEconLocationList');\n },\n\n removeEconLocationList(_, listName) {\n return econPredictorAxios.delete(`/aims/api/economy/userEconLocationList/${listName}`);\n },\n\n getImfIndicatorMetas({\n commit,\n }) {\n econPredictorAxios\n .get('/aims/api/economy/imfIndicatorsMeta')\n .then((res) => {\n if (res && res.data) {\n commit('setImfIndicatorMetas', res.data);\n }\n });\n },\n getEconomyIndicatorHistory({\n state,\n commit,\n dispatch,\n }, countries) {\n commit('setChartLoading', true);\n const fCountries = countries\n .filter(\n c =>\n !(`${c}|${state.economyIndicatorSelected}` in\n state.economyIndicatorHistoryMap),\n );\n if (fCountries.length > 0) {\n econPredictorAxios.post('/aims/api/economy/imfIndicators', { countries: fCountries, indicator: state.economyIndicatorSelected })\n .then((res) => {\n commit('addEconomyIndicatorHistoryMap', res.data);\n if (\n state.imfIndicatorMetas[state.economyIndicatorSelected].separate\n ) {\n dispatch('prepareMultipleCharts', countries);\n } else {\n dispatch('prepareSingleChart', countries);\n }\n });\n } else if (\n state.imfIndicatorMetas[state.economyIndicatorSelected].separate\n ) {\n dispatch('prepareMultipleCharts', countries);\n } else {\n dispatch('prepareSingleChart', countries);\n }\n },\n prepareSingleChart({\n state,\n rootState,\n commit,\n }, countries) {\n const userCountry = rootState.currentUserCountry;\n let xAxisData = [];\n let series = [];\n let yAxis;\n const indicators = countries\n .map(c => ({\n countryCode: c,\n indicators: state.economyIndicatorHistoryMap[\n `${c}|${state.economyIndicatorSelected}`\n ] || [],\n }))\n .filter(c => c.indicators.length > 0);\n let cond1 = false;\n let cond2 = false;\n let cond3 = false;\n if (indicators.length > 0) {\n if (indicators[0].indicators.length > 0) {\n cond1 = state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('u.s. dollars');\n cond2 = state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('us dollars');\n cond3 = state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('billions') || state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('millions');\n let lbl = '';\n if (cond1 || cond2) {\n lbl = 'US';\n }\n yAxis = buildYaxis(lbl);\n }\n }\n if (!yAxis) {\n yAxis = buildYaxis();\n }\n indicators.forEach((i) => {\n i.indicators.forEach(id => xAxisData.push(id.date));\n });\n xAxisData = uniq(xAxisData)\n .sort();\n series = indicators.map(i =>\n buildSeries(\n state.countriesForPlot,\n i.countryCode,\n i.indicators,\n userCountry ? userCountry.countryCode : '',\n ),\n );\n const legendData = series.map(s => s.name);\n let title = state.imfIndicatorMetas[state.economyIndicatorSelected].indicator;\n if ((!cond1 && !cond2) || cond3) {\n title += ` (${state.imfIndicatorMetas[state.economyIndicatorSelected].units})`;\n }\n commit('plotSingleChart', {\n title,\n xAxisData,\n series,\n legendData,\n userCountry,\n yAxis,\n });\n commit('setChartLoading', false);\n },\n prepareMultipleCharts({\n state,\n commit,\n },\n countries,\n ) {\n let xAxis = [];\n let series = [];\n let yAxis = [];\n let title = [];\n const indicators = countries\n .map(c => ({\n countryCode: c,\n indicators: state.economyIndicatorHistoryMap[\n `${c}|${state.economyIndicatorSelected}`\n ] || [],\n }))\n .filter(c => c.indicators.length > 0);\n let count = 0;\n xAxis = indicators.map((i) => {\n const xAxisData = [];\n i.indicators.forEach(id => xAxisData.push(id.date));\n return {\n ...state.chartOptions.xAxis[0],\n gridIndex: count++,\n data: xAxisData,\n };\n });\n let index = 0;\n series = indicators.map(i =>\n buildSeries(\n state.countriesForPlot,\n i.countryCode,\n i.indicators,\n '',\n index++,\n i.indicators.length < 2,\n ),\n );\n count = 0;\n yAxis = indicators.map((i) => {\n let cond1 = false;\n let cond2 = false;\n if (i.indicators.length > 0) {\n cond1 = state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('u.s. dollars');\n cond2 = state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('us dollars');\n }\n if (cond1 || cond2) {\n return buildYaxis('US', count++);\n }\n return buildYaxis('', count++);\n });\n count = 0;\n const sqrt = Math.sqrt(indicators.length);\n const rows = Math.round(sqrt);\n const cols = Math.ceil(sqrt);\n const width = 1 / cols * 93 - 4; // eslint-disable-line\n const height = 1 / rows * 93 - 4; // eslint-disable-line\n const grid = indicators.map((i) => {\n const g = {};\n g.left = `${count % cols * width + (count % cols + 1) * 4}%`; // eslint-disable-line\n g.top =\n `${Math.floor(count / cols) * height + (Math.floor(count / cols) + 1) * 4 + 4}%`; // eslint-disable-line\n g.width = `${width}%`; // eslint-disable-line\n g.height = `${height}%`; // eslint-disable-line\n g.containLabel = true;\n count++;\n return g;\n });\n count = 0;\n title = indicators\n .map((i) => {\n let name = state.countriesForPlot.find(c => c.countryCode === i.countryCode)\n .countryName;\n if (i.indicators[0].unit.length > 0) {\n name += ` (${i.indicators[0].unit})`;\n }\n return name;\n },\n )\n .map((c) => {\n const t = {\n top: `${Math.floor(count / cols) * height + (Math.floor(count / cols) + 1) * 4 + 2}%`, // eslint-disable-line\n left: `${count % cols * width + (count % cols + 1) * 4 + 0.5 * width}%`, // eslint-disable-line\n text: c,\n textAlign: 'center',\n textStyle: {\n fontSize: 14,\n fontWeight: 'normal',\n },\n };\n count++;\n return t;\n });\n const cond1 = state.imfIndicatorMetas[state.economyIndicatorSelected].units.toLowerCase().includes('u.s. dollars');\n const cond2 = state.imfIndicatorMetas[state.economyIndicatorSelected].units.toLowerCase().includes('us dollars');\n const cond3 = state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('billions') || state.imfIndicatorMetas[indicators[0].indicators[0].imfCode].units.toLowerCase().includes('millions');\n let text = state.imfIndicatorMetas[state.economyIndicatorSelected].indicator;\n if ((!cond1 && !cond2 &&\n state.imfIndicatorMetas[state.economyIndicatorSelected].units.length > 0) || cond3) {\n text += ` (${state.imfIndicatorMetas[state.economyIndicatorSelected].units})`;\n }\n title.push({\n top: '1%',\n left: 'center',\n text,\n });\n commit('plotMultipleChart', {\n title,\n xAxis,\n series,\n yAxis,\n grid,\n });\n commit('setChartLoading', false);\n },\n getRegionsGroup({\n commit,\n }) {\n econPredictorAxios.get('/aims/api/economy/regionsGrp')\n .then((res) => {\n if (res.data) {\n commit('setRegionsGroup', res.data);\n }\n });\n },\n },\n getters: {\n imfIndicatorsTree(state) {\n const groupped = groupBy(Object.keys(state.imfIndicatorMetas).map(e => state.imfIndicatorMetas[e]), 'group');\n const tree = Object.keys(groupped)\n .map((key) => {\n const children = groupped[key].map(c => ({\n ...c,\n code: c.imfCode,\n label: c.indicator,\n }));\n children.sort((a, b) => a.rank - b.rank);\n const obj = {\n label: key,\n code: key,\n children,\n };\n return obj;\n });\n return tree;\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/econPredictorModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport groupBy from 'lodash/groupBy';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst companyIndexesAxios = axios.create();\nconst cache = new Map();\ncacheAxios(companyIndexesAxios, cache);\ncompanyIndexesAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nexport default {\n state: {\n costPressures: {},\n salaryCostPressures: {},\n revMomentums: {},\n expansionThreats: {},\n customersNote: '',\n suppliersNote: '',\n competitorsNote: '',\n disruptorsNote: '',\n },\n mutations: {\n setSalaryCostPressures(state, indexes) {\n state.salaryCostPressures = indexes;\n },\n setCostPressures(state, indexes) {\n state.costPressures = indexes;\n },\n setRevMomentums(state, indexes) {\n state.revMomentums = indexes;\n },\n setExpansionThreats(state, indexes) {\n state.expansionThreats = indexes;\n },\n setNote(state, {\n module,\n note,\n }) {\n switch (module) {\n case 'CompetitorsMatrix':\n state.competitorsNote = note;\n break;\n case 'CustomersMatrix':\n state.customersNote = note;\n break;\n case 'SuppliersMatrix':\n state.suppliersNote = note;\n break;\n case 'Disruptors':\n state.disruptorsNote = note;\n break;\n default:\n }\n },\n },\n actions: {\n getAllSalaryCostPressures({\n commit,\n }) {\n companyIndexesAxios.get('/aims/api/companyIndexes/salaryCostPressures')\n .then(res => commit('setSalaryCostPressures', res.data));\n },\n getAllCostPressures({\n commit,\n }) {\n companyIndexesAxios.get('/aims/api/companyIndexes/costPressures')\n .then(res => commit('setCostPressures', res.data));\n },\n getAllRevMomentums({\n commit,\n }) {\n companyIndexesAxios.get('/aims/api/companyIndexes/revMomentums')\n .then(res => commit('setRevMomentums', res.data));\n },\n getAllExpansionThreats({\n commit,\n }) {\n companyIndexesAxios.get('/aims/api/companyIndexes/expansionThreats')\n .then(res => commit('setExpansionThreats', res.data));\n },\n getDisruptorsNote({\n commit,\n rootState,\n }) {\n companyIndexesAxios.get(`/aims/api/notes/${rootState.currentUser.userid}/Disruptors`)\n .then(res => commit('setNote', res.data));\n },\n getCustomersNote({\n commit,\n rootState,\n }) {\n companyIndexesAxios.get(`/aims/api/notes/${rootState.currentUser.userid}/CustomersMatrix`)\n .then(res => commit('setNote', res.data));\n },\n getSuppliersNote({\n commit,\n rootState,\n }) {\n companyIndexesAxios.get(`/aims/api/notes/${rootState.currentUser.userid}/SuppliersMatrix`)\n .then(res => commit('setNote', res.data));\n },\n getCompetitorsNote({\n commit,\n rootState,\n }) {\n companyIndexesAxios.get(`/aims/api/notes/${rootState.currentUser.userid}/CompetitorsMatrix`)\n .then(res => commit('setNote', res.data));\n },\n saveNote(context, note) {\n companyIndexesAxios.post('/aims/api/notes', note);\n // .then(res => console.log(res));\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/companyIndexesModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst institutionAxios = axios.create();\nconst cache = new Map();\ncacheAxios(institutionAxios, cache);\ninstitutionAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nexport default {\n state: {\n institutionIndexes: [],\n note: '',\n },\n mutations: {\n setInstitutionIndexes(state, indexes) {\n state.institutionIndexes = indexes;\n },\n setInstitutionNote(state, note) {\n state.note = note;\n },\n },\n actions: {\n getAllInstitutionalIndexes({\n commit,\n }) {\n institutionAxios.get('/aims/api/companyIndexes/institutionIndexes')\n .then(res => commit('setInstitutionIndexes', res.data));\n // .catch(e => console.log(e));\n },\n getInstitutionNote({\n commit,\n rootState,\n }) {\n institutionAxios.get(`/aims/api/notes/${rootState.currentUser.userid}/InstitutionMatrix`)\n .then(res => commit('setInstitutionNote', res.data.note));\n },\n saveInstitutionNote({\n commit,\n rootState,\n }, text) {\n const note = {\n module: 'InstitutionMatrix',\n userid: rootState.currentUser.userid,\n note: text,\n };\n institutionAxios.post('/aims/api/notes', note)\n .then(res => commit('setInstitutionNote', note.note));\n },\n },\n getters: {\n // continents(state) {\n // return Object.keys(groupBy(state.countryInfos, 'continent'));\n // },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/institutionModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst orgChartAxios = axios.create();\nconst cache = new Map();\ncacheAxios(orgChartAxios, cache);\n\norgChartAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nexport default {\n state: {\n orgChartCompanies: [],\n topCharts: [],\n topCompaniesPeople: {},\n selectedCompanyPeoples: [],\n },\n mutations: {\n setSelectedCompanyPeoples(state, peoples) {\n state.selectedCompanyPeoples = peoples;\n },\n setTopCompaniesPeople(state, peoples) {\n state.topCompaniesPeople = peoples;\n },\n setFilteredOrgCompanies(state, companies) {\n state.orgChartCompanies = companies;\n },\n setTopCharts(state, companies) {\n state.topCharts = companies;\n },\n },\n actions: {\n filterOrgChartCompanies({\n commit,\n }, filter) {\n return orgChartAxios.post('/aims/api/orgChart/filterCompanies', filter, {\n cache: true,\n cacheKey: filter,\n })\n .then((res) => {\n if (res.data) {\n commit('setFilteredOrgCompanies', res.data.all);\n commit('setTopCharts', res.data.top);\n } else {\n commit('setFilteredOrgCompanies', []);\n commit('setTopCharts', []);\n }\n });\n },\n loadTopCharts({\n state,\n commit,\n }) {\n return orgChartAxios.post('/aims/api/orgChart/charts', state.topCharts.map(c => c.companyId))\n .then((res) => {\n if (res.data) {\n commit('setTopCompaniesPeople', res.data);\n }\n });\n },\n loadChart({\n state,\n commit,\n }, company) {\n return orgChartAxios.post('/aims/api/orgChart/charts', [company.companyId])\n .then((res) => {\n if (res.data) {\n commit('setSelectedCompanyPeoples', res.data[company.companyId]);\n }\n });\n },\n },\n getters: {},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/orgChartModule.js","/* eslint-disable no-param-reassign */\nimport axios from 'axios';\n// import Vue from 'vue';\nimport sortBy from 'lodash/sortBy';\nimport groupBy from 'lodash/groupBy';\nimport uniq from 'lodash/uniq';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst jobAxios = axios.create();\nconst cache = new Map();\ncacheAxios(jobAxios, cache);\njobAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\nconst legendRef = {\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\n\nexport default {\n state: {\n jobTrends: [],\n jobCountries: [],\n jobDemandMatrix: {},\n jobSupplyMatrix: [],\n hrIndicators: [],\n hrIndicatorHistory: {},\n lvlFuncChartOptions: {\n title: {\n left: 'center',\n top: '1%',\n text: 'Change in ',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n grid: {\n left: '3%',\n right: '12%',\n bottom: '25px',\n containLabel: true,\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n clear: true,\n series: [{\n type: 'line',\n }],\n xAxis: {\n type: 'category',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n },\n legend: {\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n },\n },\n lvlFuncChartLoading: false,\n jobTotalChartLoading: false,\n jobTotalChartOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n grid: {\n left: '3%',\n right: '3%',\n bottom: '25px',\n containLabel: true,\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: {\n type: 'line',\n },\n xAxis: {\n type: 'category',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n },\n },\n chartLoading: false,\n chartOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n grid: {\n left: '3%',\n right: '12%',\n bottom: '35px',\n containLabel: true,\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: [],\n xAxis: {\n type: 'category',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n },\n },\n },\n mutations: {\n setJobTrends(state, trends) {\n state.jobTrends = sortBy(trends, 'endDate');\n },\n addHrIndicatorHistory(state, indicators) {\n const g = groupBy(indicators, ind => `${ind.indicator}|${ind.countryCode}`);\n state.hrIndicatorHistory = {\n ...state.hrIndicatorHistory,\n ...g,\n };\n },\n setHrIndicators(state, indicators) {\n state.hrIndicators = indicators;\n },\n setJobSupplyMatrix(state, matrix) {\n state.jobSupplyMatrix = matrix;\n },\n setJobCountries(state, countries) {\n state.jobCountries = countries;\n },\n setJobDemandMatrix(state, matrix) {\n const final = {};\n Object.keys(matrix)\n .forEach((k) => {\n final[k] = matrix[k].toFixed(3);\n });\n\n // arr = sortBy(arr, i => i.value);\n // let nonZero = arr.filter(i => i.value !== 0);\n // const zero = arr.filter(i => i.value === 0);\n // nonZero = nonZero.map((item, i) => ({\n // key: item.key,\n // value: (i + 1) / nonZero.length,\n // }));\n // const final = {};\n // zero.forEach((i) => {\n // final[i.key] = i.value.toFixed(3);\n // });\n // nonZero.forEach((i) => {\n // final[i.key] = i.value.toFixed(3);\n // });\n state.jobDemandMatrix = final;\n },\n setChartLoading(state, loading) {\n state.chartLoading = loading;\n },\n plotLvlFunctionChart(state, {\n selections,\n lvlOrFn,\n }) {\n const title = {\n ...state.lvlFuncChartOptions.title,\n text: 'No. of Jobs',\n };\n const xData = [];\n const series = [];\n const legend = {\n ...state.lvlFuncChartOptions.legend,\n data: [],\n };\n if (selections.length > 0 && lvlOrFn !== '') {\n const selectionsDataMap = {};\n for (let i = 0; i < state.jobTrends.length; i++) { // eslint-disable-line no-plusplus\n const jt = state.jobTrends[i];\n const key =\n `${jt.endDate.substr(0, 4)}-${jt.endDate.substr(4, 2)}-${jt.endDate.substr(6, 2)}`;\n xData.push(key);\n selections.forEach((s) => {\n const val = jt[lvlOrFn][s] ? jt[lvlOrFn][s].toFixed(1) : 0;\n if (!(s in selectionsDataMap)) {\n selectionsDataMap[s] = [val];\n } else {\n selectionsDataMap[s].push(val);\n }\n });\n }\n selections.forEach((s) => {\n series.push({\n name: s,\n type: 'line',\n data: selectionsDataMap[s],\n });\n legend.data.push(s);\n });\n }\n const xAxis = {\n ...state.lvlFuncChartOptions.xAxis,\n data: xData,\n };\n // const series = {\n // ...state.lvlFuncChartOptions.series,\n // data: seriesData,\n // };\n state.lvlFuncChartOptions = {\n ...state.lvlFuncChartOptions,\n title,\n xAxis,\n series,\n legend,\n };\n },\n plotJobTotalNoChart(state, {\n query,\n countryInfos,\n sectorMap,\n }) {\n let prepend = query.countryFilter ? countryInfos[query.countryFilter] : '';\n const postpend = query.sectorFilter ? sectorMap[query.sectorFilter] : '';\n if (prepend && postpend) {\n prepend = prepend.concat(' / ');\n }\n const title = {\n ...state.jobTotalChartOptions.title,\n text: 'Total No. of Jobs',\n subtext: `${prepend}${postpend}`,\n };\n const xData = [];\n const seriesData = [];\n state.jobTrends.forEach((jt) => {\n const key =\n `${jt.endDate.substr(0, 4)}-${jt.endDate.substr(4, 2)}-${jt.endDate.substr(6, 2)}`;\n xData.push(key);\n seriesData.push(jt.totalCount);\n });\n const xAxis = {\n ...state.jobTotalChartOptions.xAxis,\n data: xData,\n };\n const series = {\n ...state.jobTotalChartOptions.series,\n data: seriesData,\n };\n state.jobTotalChartOptions = {\n ...state.jobTotalChartOptions,\n title,\n xAxis,\n series,\n };\n },\n plotHrIndicator(state, {\n query,\n countryInfos,\n }) {\n const title = {\n ...state.chartOptions.title,\n text: query.i,\n top: '1%',\n left: 'center',\n };\n const countries = query.c.filter(c => state.hrIndicatorHistory[`${query.i}|${c}`]);\n const legend = {\n ...legendRef,\n data: countries.map(code => countryInfos[code]),\n };\n const xAxisData = [];\n // let yMin = 1;\n const chartsToPlot = countries.map((c) => {\n const data = state.hrIndicatorHistory[`${query.i}|${c}`].map(o => ([o.year, o.value]));\n return {\n data,\n label: {\n normal: {\n show: false,\n formatter: '{a}',\n },\n emphasis: {\n show: true,\n formatter: '{a}',\n },\n },\n name: countryInfos[c],\n type: 'line',\n };\n });\n // countries.forEach((c) => {\n // state.hrIndicatorHistory[`${query.i}|${c}`].forEach((o) => {\n // yMin = yMin > o.value ? o.value : yMin;\n // });\n // });\n // yMin = Math.floor(yMin * 20) / 20;\n chartsToPlot.forEach((c) => {\n c.data.forEach(d => (xAxisData.push(d[0])));\n });\n const xAxis = {\n ...state.chartOptions.xAxis,\n data: uniq(xAxisData)\n .sort(),\n };\n // const yAxis = {\n // ...state.chartOptions.yAxis,\n // min: yMin,\n // };\n\n state.chartOptions = {\n ...state.chartOptions,\n title,\n xAxis,\n // yAxis,\n legend,\n series: chartsToPlot,\n clear: true,\n };\n state.chartLoading = false;\n },\n },\n actions: {\n getJobTrends({\n commit,\n getters,\n }, query) {\n if (!query.countryFilter && !query.sectorFilter) {\n commit('setJobTrends', []);\n commit('plotJobTotalNoChart', {\n query,\n countryInfos: getters.countryInfos,\n sectorMap: getters.sectorMap,\n });\n return Promise.resolve();\n }\n return jobAxios.post('/aims/api/job/trends', query)\n .then((res) => {\n if (res.data) {\n commit('setJobTrends', res.data);\n } else {\n commit('setJobTrends', []);\n }\n commit('plotJobTotalNoChart', {\n query,\n countryInfos: getters.countryInfos,\n sectorMap: getters.sectorMap,\n });\n });\n },\n getHrIndicatorHistory({\n commit,\n state,\n getters,\n }, query) {\n commit('setChartLoading', true);\n const filteredQuery = {\n ...query,\n c: query.c.filter(c => !state.hrIndicatorHistory[`${query.i}|${c}`]),\n };\n if (filteredQuery.c.length > 0) {\n jobAxios.post('/aims/api/job/hrIndicatorHistory', filteredQuery)\n .then((res) => {\n if (res.data) {\n const g = sortBy(res.data.map(i => ({\n countryCode: i.c,\n group: i.g,\n indicator: i.i,\n value: i.v,\n year: i.y,\n })), 'year');\n commit('addHrIndicatorHistory', g);\n }\n })\n .then(() => {\n commit('plotHrIndicator', {\n query,\n countryInfos: getters.countryInfos,\n });\n });\n } else {\n commit('plotHrIndicator', {\n query,\n countryInfos: getters.countryInfos,\n });\n }\n },\n getHrIndicators({\n commit,\n }) {\n jobAxios.get('/aims/api/job/hrIndicators')\n .then((res) => {\n if (res.data) {\n const indicators = res.data.map(a => ({\n description: a.desc,\n group: a.grp,\n high: a.hi,\n low: a.lo,\n indicator: a.ind,\n }));\n commit('setHrIndicators', indicators);\n }\n });\n },\n getJobDemandMatrix({\n commit,\n }) {\n jobAxios.get('/aims/api/job/jobDemandMatrix')\n .then((res) => {\n if (res.data) {\n commit('setJobDemandMatrix', res.data);\n }\n });\n },\n getJobSupplyMatrix({\n commit,\n }) {\n jobAxios.get('/aims/api/job/jobSupplyMatrix')\n .then((res) => {\n if (res.data) {\n const indexes = res.data.map(a => ({\n countryName: a.cty,\n countryCode: a.ctyC,\n continent: a.ctn,\n region: a.reg,\n globalCompetitivenessIndex: a.gci,\n hrCompetitivenessIndex: a.hci,\n educationIndex: a.ei,\n innovation: a.inn,\n labourMarketEfficiency: a.lme,\n }));\n commit('setJobSupplyMatrix', indexes);\n }\n });\n },\n initJobCountries({\n commit,\n }) {\n jobAxios.get('/aims/api/job/countries')\n .then((res) => {\n if (res.data) {\n commit('setJobCountries', res.data);\n }\n });\n },\n filterJobCompanies({\n commit,\n }, jobFilter) {\n return jobAxios.post('/aims/api/job/companiesFilter', jobFilter)\n .then((res) => {\n if (res.data) {\n commit('setFilteredJobCompanies', res.data);\n } else {\n commit('setFilteredJobCompanies', []);\n }\n });\n },\n },\n getters: {\n countryInfos(state, getters, rootState) {\n const countryInfoMap = {};\n rootState.econPredictor.regionsGroup\n .forEach((region) => {\n region.countryInfos.forEach((ci) => {\n countryInfoMap[ci.countryCode] = ci.countryName;\n });\n });\n return countryInfoMap;\n },\n sectorMap(state, getters, rootState) {\n const sectors = {};\n rootState.finance.sectors\n .forEach((sector) => {\n sectors[sector.code] = sector.name;\n });\n return sectors;\n },\n // continents(state) {\n // return Object.keys(groupBy(state.countryInfos, 'continent'));\n // },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/jobModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport sortBy from 'lodash/sortBy';\nimport groupBy from 'lodash/groupBy';\nimport uniq from 'lodash/uniq';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst ugradsAxios = axios.create();\nconst cache = new Map();\ncacheAxios(ugradsAxios, cache);\nugradsAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\nconst legendRef = {\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\n\nexport default {\n state: {\n UniGradsYearSelected: [],\n UniGradsYears: [],\n UniGradsCountries: [],\n UniGradsCStates: [],\n filteredUniversities: [],\n filteredCourses: [],\n filteredData: [],\n },\n mutations: {\n setUniGradsYears(state, years) {\n state.UniGradsYears = years;\n state.UniGradsYearSelected = years[years.length - 1];\n },\n setUniGradsCountries(state, countries) {\n state.UniGradsCountries = countries;\n },\n setUniGradsCStates(state, cstates) {\n state.UniGradsCStates = cstates;\n },\n setUniGradsUnisByLoc(state, universities) {\n state.filteredUniversities = universities;\n state.filteredData = universities;\n },\n setUniGradsDisiplineByYear(state, datas) {\n state.filteredCourses = datas;\n },\n setUniGradsData(state, datas) {\n state.filteredData = datas;\n },\n },\n actions: {\n initUniGradsCountries({\n commit,\n }) {\n let distincturl = '/aims/api/unigrads/discipline/';\n let allurl = '/aims/api/unigrads/available/';\n let uYear = '';\n ugradsAxios.get('/aims/api/unigrads/years')\n .then((res) => {\n if (res.data) {\n commit('setUniGradsYears', res.data);\n uYear = res.data[res.data.length - 1];\n distincturl = distincturl.concat(uYear);\n ugradsAxios.get(distincturl)\n .then((resc) => {\n if (resc.data) {\n commit('setUniGradsDisiplineByYear', resc.data);\n }\n });\n allurl = allurl.concat(uYear);\n ugradsAxios.get(allurl)\n .then((resc) => {\n if (resc.data) {\n commit('setUniGradsData', resc.data);\n }\n });\n }\n });\n },\n filterCountry({\n commit,\n }, theFilter) {\n return ugradsAxios.post('/aims/api/unigrads/countries', theFilter)\n .then((res) => {\n if (res.data) {\n commit('setUniGradsCountries', res.data);\n } else {\n commit('setUniGradsCountries', []);\n }\n });\n },\n filterCState({\n commit,\n }, theFilter) {\n return ugradsAxios.post('/aims/api/unigrads/cstates', theFilter)\n .then((res) => {\n if (res.data) {\n commit('setUniGradsCStates', res.data);\n } else {\n commit('setUniGradsCStates', []);\n }\n });\n },\n filterUnisByLoc({\n commit,\n }, theFilter) {\n return ugradsAxios.post('/aims/api/unigrads/universities', theFilter)\n .then((res) => {\n if (res.data) {\n commit('setUniGradsUnisByLoc', res.data);\n } else {\n commit('setUniGradsUnisByLoc', []);\n }\n });\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/unigradsModule.js","/* eslint-disable no-param-reassign */\nimport axios from 'axios';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst minWageAxios = axios.create();\nconst cache = new Map();\ncacheAxios(minWageAxios, cache);\nminWageAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/minwage';\n }, 500);\n }\n });\n\nexport default {\n state: {\n minWageCountries: [],\n minWages: [],\n },\n mutations: {\n setMinWages(state, wages) {\n state.minWages = wages;\n },\n setMinWageCountries(state, countries) {\n state.minWageCountries = countries;\n },\n },\n actions: {\n getMinWageCountries({\n commit,\n }) {\n minWageAxios.post('/aims/api/economy/minwageCountries')\n .then((res) => {\n if (res.data) {\n commit('setMinWageCountries', res.data);\n }\n });\n },\n getMinWage({\n commit,\n }, query) {\n return minWageAxios.post('/aims/api/economy/minwageByCountryArea',\n query, {\n cache: true,\n cacheKey: query,\n })\n .then((res) => {\n if (res.data) {\n commit('setMinWages', res.data);\n }\n });\n },\n },\n getters: {},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/minWageModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport uniqWith from 'lodash/uniqWith';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst hrPredictAxios = axios.create();\nconst cache = new Map();\ncacheAxios(hrPredictAxios, cache);\n\nhrPredictAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/hrpredict';\n }, 500);\n }\n });\n\nfunction bonusComparator(a, b) {\n const aString = `${a.year}-${a.bonusType}-${a.gicsCode || ''}-${a.country}`;\n const bString = `${b.year}-${b.bonusType}-${b.gicsCode || ''}-${b.country}`;\n return aString === bString;\n}\nfunction attritionComparator(a, b) {\n const aString = `${a.year}-${a.countryCode}-${a.gicsCode || ''}`;\n const bString = `${b.year}-${b.countryCode}-${b.gicsCode || ''}`;\n return aString === bString;\n}\n\nexport default {\n state: {\n // metricToPredict: '',\n // sectorToPredict: 0,\n // countriesToPredict: [],\n // yearsToPredict: [],\n // factorsUsed: [],\n // forecasts: [],\n // publicIncrementData: [],\n // publicBonusData: [],\n // publicAttritionData: [],\n // previousIncrementData: [],\n // previousBonusData: [],\n // previousAttritionData: [],\n // loading: false,\n },\n mutations: {\n // setHrPredictLoading(state, value) {\n // state.loading = value;\n // },\n // setMetricToPredict(state, metric) {\n // state.metricToPredict = metric;\n // },\n // setSectorToPredict(state, sector) {\n // state.sectorToPredict = sector;\n // },\n // setCountriesToPredict(state, countries) {\n // state.countriesToPredict = countries;\n // },\n // setYearsToPredict(state, years) {\n // state.yearsToPredict = years;\n // },\n // setFactorsUsed(state, factors) {\n // state.factorsUsed = factors;\n // },\n // setForecasts(state, forecasts) {\n // forecasts.map((f) => {\n // if (f.evidentLvl.costPressure == null && f.evidentLvl.revMomentum == null\n // && f.evidentLvl.cpic != null && f.evidentLvl.gagr != null) {\n // const fake = f;\n // fake.evidentLvl.fake = true;\n // const avg = Math.round((f.evidentLvl.cpic + f.evidentLvl.gagr) / 2);\n // fake.evidentLvl.costPressure = avg;\n // fake.evidentLvl.revMomentum = avg;\n // return fake;\n // }\n // return f;\n // });\n // state.forecasts = forecasts;\n // },\n // setPublicIncrementData(state, data) {\n // state.publicIncrementData = data;\n // },\n // addPublicBonusData(state, data) {\n // state.publicBonusData.push(...data);\n // state.publicBonusData = uniqWith(state.publicBonusData, bonusComparator);\n // },\n // addPublicAttritionData(state, data) {\n // state.publicAttritionData.push(...data);\n // state.publicAttritionData = uniqWith(state.publicAttritionData, attritionComparator);\n // },\n // setPreviousIncrementData(state, data) {\n // state.previousIncrementData = data;\n // },\n // addPreviousBonusData(state, data) {\n // state.previousBonusData.push(...data);\n // state.previousBonusData = uniqWith(state.previousBonusData, bonusComparator);\n // },\n // clearPreviousBonus(state) {\n // state.previousBonusData = [];\n // },\n // addPreviousAttritionData(state, data) {\n // state.previousAttritionData.push(...data);\n // state.previousAttritionData = uniqWith(state.previousAttritionData, attritionComparator);\n // },\n },\n actions: {\n saveIncrementLocationList(_, list) {\n return hrPredictAxios.post('/aims/api/increment/saveIncrementLocationList', list);\n },\n\n retrieveIncrementLocationList() {\n return hrPredictAxios.get('/aims/api/increment/userIncrementLocationList');\n },\n\n removeIncrementLocationList(_, listName) {\n return hrPredictAxios.delete(`/aims/api/increment/userIncrementLocationList/${listName}`);\n },\n\n getBonusData({\n state,\n commit,\n }, { year, bonusType, countries }) {\n return hrPredictAxios.post(`/aims/api/increment/publicBonus/${year}/${encodeURIComponent(bonusType.replace('/', '|'))}`,\n countries)\n .then((res) => {\n if (res.data !== null) {\n return res.data;\n }\n return [];\n });\n },\n getAttritionData({\n state,\n commit,\n }, { year, countries }) {\n return hrPredictAxios.post(`/aims/api/increment/publicAttrition/${year}`,\n countries)\n .then((res) => {\n if (res.data !== null) {\n return res.data;\n }\n return [];\n });\n },\n getSalaryData({\n state,\n commit,\n }, year) {\n return hrPredictAxios.get(`/aims/api/increment/public/${year}`)\n .then((res) => {\n if (res.data !== null) {\n return res.data;\n }\n return [];\n });\n },\n getIncrementFactor({\n state,\n commit,\n }, {\n metric,\n sector,\n countryCodes,\n years,\n factors,\n }) {\n const req = {\n sector,\n countryCodes,\n years,\n factors,\n };\n return hrPredictAxios.post(`/aims/api/increment/forecast/${metric}`, req, {\n cache: true,\n cacheKey: req,\n });\n },\n },\n getters: {},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/hrPredictModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport sortBy from 'lodash/sortBy';\nimport groupBy from 'lodash/groupBy';\nimport uniq from 'lodash/uniq';\nimport cacheAxios from '../../util/cacheAxios';\n\n\nconst relocationAxios = axios.create();\nconst cache = new Map();\ncacheAxios(relocationAxios, cache);\n\nrelocationAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/costofliving';\n }, 500);\n }\n throw error;\n });\n\nexport default {\n state: {\n currencySelected: 'USD',\n salaryCurrency: 'USD',\n tax: {\n home: {},\n destination: {},\n },\n spendingMultipliers: {\n hi: [],\n mid: [],\n low: [],\n },\n hardshipRank: {\n home: {},\n destination: {},\n },\n medicalCost: {\n home: {},\n destination: {},\n },\n cities: [],\n relocationDetails: {\n relocationTypeChanged: false,\n relocationType: '',\n homeCity: {},\n destinationCity: {},\n },\n employeeInfo: {\n annualSalary: '',\n annualBonus: '',\n maritalStatus: 'married',\n noOfKids: '',\n age: '',\n },\n homeCityPrices: {},\n destinationCityPrices: {},\n allowance: {\n housingCost: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n educationCost: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n carCost: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n livingCost: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n medicalCost: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n riskAllowance: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n oneTimeAllowance: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n locationPreviewAllowance: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n taxAllowance: {\n selected: false,\n value: -1,\n diffOrFull: '',\n option: '',\n },\n },\n citiesTrends: [],\n countriesTrends: [],\n },\n mutations: {\n setCitiesTrends(state, trends) {\n state.citiesTrends = trends;\n },\n setCountriesTrends(state, trends) {\n state.countriesTrends = trends;\n },\n setRelocationSalaryCurrency(state, cur) {\n state.salaryCurrency = cur;\n },\n setRelocationCurrencySelected(state, cur) {\n state.currencySelected = cur;\n },\n setAllowance(state, {\n type,\n value,\n details,\n diffOrFull,\n option,\n selected,\n homePrice,\n destinationPrice,\n }) {\n Vue.set(state.allowance, type, {\n value,\n details,\n diffOrFull,\n option,\n selected,\n homePrice,\n destinationPrice,\n });\n },\n setResidentHomeTax(state, tax) {\n Vue.set(state.tax.home, 'resident', tax);\n },\n setNonResidentHomeTax(state, tax) {\n Vue.set(state.tax.home, 'nonResident', tax);\n },\n setNonResidentDestinationTax(state, tax) {\n Vue.set(state.tax.destination, 'nonResident', tax);\n },\n setResidentDestinationTax(state, tax) {\n Vue.set(state.tax.destination, 'resident', tax);\n },\n setHomeHardshipRank(state, rank) {\n Vue.set(state.hardshipRank, 'home', rank);\n },\n setDestinationHardshipRank(state, rank) {\n Vue.set(state.hardshipRank, 'destination', rank);\n },\n setHomeMedicalCost(state, costs) {\n Vue.set(state.medicalCost, 'home', costs);\n },\n setDestinationMedicalCost(state, costs) {\n Vue.set(state.medicalCost, 'destination', costs);\n },\n setSpendingMultipliers(state, multipliers) {\n state.spendingMultipliers = multipliers;\n },\n setHomeCityPrices(state, prices) {\n state.homeCityPrices = prices;\n },\n setDestinationCityPrices(state, prices) {\n state.destinationCityPrices = prices;\n },\n setCostOfLivingCities(state, cities) {\n state.cities = cities;\n },\n setRelocationType(state, type) {\n if (type !== state.relocationDetails.relocationType) {\n Vue.set(state.relocationDetails, 'relocationType', type);\n Vue.set(state.relocationDetails, 'relocationTypeChanged', true);\n }\n },\n resetRelocationType(state) {\n Vue.set(state.relocationDetails, 'relocationTypeChanged', false);\n },\n setHomeCity(state, city) {\n Vue.set(state.relocationDetails, 'homeCity', city);\n },\n setDestinationCity(state, city) {\n Vue.set(state.relocationDetails, 'destinationCity', city);\n },\n setEmployeeAge(state, age) {\n Vue.set(state.employeeInfo, 'age', age);\n },\n setEmployeeNoOfKids(state, noOfKids) {\n if (noOfKids === '') {\n Vue.set(state.employeeInfo, 'noOfKids', '');\n return;\n }\n Vue.set(state.employeeInfo, 'noOfKids', +noOfKids);\n },\n setEmployeeMaritalStatus(state, maritalStatus) {\n Vue.set(state.employeeInfo, 'maritalStatus', maritalStatus);\n },\n setEmployeeAnnualBonus(state, annualBonus) {\n if (annualBonus === '') {\n Vue.set(state.employeeInfo, 'annualBonus', '');\n return;\n }\n Vue.set(state.employeeInfo, 'annualBonus', +annualBonus);\n },\n setEmployeeAnnualSalary(state, annualSalary) {\n if (annualSalary === '') {\n Vue.set(state.employeeInfo, 'annualSalary', '');\n return;\n }\n Vue.set(state.employeeInfo, 'annualSalary', +annualSalary);\n },\n },\n actions: {\n getCitiesTrends({\n commit,\n }) {\n relocationAxios.get('/aims/api/costofliving/citiesTrends')\n .then((res) => {\n if (res.data) {\n commit('setCitiesTrends', res.data);\n }\n });\n },\n getCountriesTrends({\n commit,\n }) {\n relocationAxios.get('/aims/api/costofliving/countriesTrends')\n .then((res) => {\n if (res.data) {\n commit('setCountriesTrends', res.data);\n }\n });\n },\n getCostOfLivingCities({\n commit,\n }) {\n relocationAxios.get('/aims/api/costofliving/cities')\n .then((res) => {\n if (res.data) {\n commit('setCostOfLivingCities', res.data);\n }\n });\n },\n getTax({\n commit,\n state,\n getters,\n }) {\n const homeRate = state.homeCityPrices.usdDivisor;\n const destinationRate = state.destinationCityPrices.usdDivisor;\n const salaryTotal = state.employeeInfo.annualBonus + state.employeeInfo.annualSalary;\n relocationAxios.get(\n `/aims/api/costofliving/calcTaxUsd/${state.relocationDetails.homeCity.country}/${((salaryTotal / getters.salaryRate.usdDivisor)).toFixed(3)}/resident`,\n )\n .then((res) => {\n if (res && res.data !== null) {\n commit('setResidentHomeTax', res.data);\n } else {\n commit('setResidentHomeTax', undefined);\n }\n })\n .catch(err => commit('setHomeTax', undefined));\n relocationAxios.get(\n `/aims/api/costofliving/calcTaxUsd/${state.relocationDetails.homeCity.country}/${((salaryTotal / getters.salaryRate.usdDivisor)).toFixed(3)}/non-resident`,\n )\n .then((res) => {\n if (res && res.data !== null) {\n commit('setNonResidentHomeTax', res.data);\n } else {\n commit('setNonResidentHomeTax', undefined);\n }\n })\n .catch(err => commit('setHomeTax', undefined));\n relocationAxios.get(\n `/aims/api/costofliving/calcTaxUsd/${state.relocationDetails.destinationCity.country}/${((salaryTotal / getters.salaryRate.usdDivisor)).toFixed(3)}/non-resident`,\n )\n .then((res) => {\n if (res && res.data !== null) {\n commit('setNonResidentDestinationTax', res.data);\n } else {\n commit('setNonResidentDestinationTax', undefined);\n }\n })\n .catch((err) => {\n commit('setDestinationTax', undefined);\n });\n relocationAxios.get(\n `/aims/api/costofliving/calcTaxUsd/${state.relocationDetails.destinationCity.country}/${((salaryTotal / getters.salaryRate.usdDivisor)).toFixed(3)}/resident`,\n )\n .then((res) => {\n if (res && res.data !== null) {\n commit('setResidentDestinationTax', res.data);\n } else {\n commit('setResidentDestinationTax', undefined);\n }\n })\n .catch((err) => {\n commit('setDestinationTax', undefined);\n });\n },\n getRelocationCosts({\n state,\n commit,\n }) {\n const home = relocationAxios.get(\n `/aims/api/costofliving/allCosts/${state.relocationDetails.homeCity.country}/${state.relocationDetails.homeCity.city}`,\n ).then((res) => {\n if (res.data) {\n commit('setHomeCityPrices', res.data);\n } else {\n commit('setHomeCityPrices', {});\n throw Error('failed to get home city prices');\n }\n });\n const destination = relocationAxios.get(\n `/aims/api/costofliving/allCosts/${state.relocationDetails.destinationCity.country}/${state.relocationDetails.destinationCity.city}`,\n ).then((res) => {\n if (res.data) {\n commit('setDestinationCityPrices', res.data);\n } else {\n commit('setDestinationCityPrices', {});\n throw Error('failed to get detination city prices');\n }\n });\n return Promise.all([home, destination]);\n },\n getHardshipRank({\n state,\n commit,\n }) {\n relocationAxios.get(\n `/aims/api/costofliving/hardship/${state.relocationDetails.homeCity.country}/${state.relocationDetails.homeCity.city}`,\n )\n .then((res) => {\n if (res && res.data) {\n commit('setHomeHardshipRank', res.data);\n } else {\n commit('setHomeHardshipRank', {});\n }\n })\n .catch((err) => {\n commit('setHomeHardshipRank', {});\n });\n relocationAxios.get(\n `/aims/api/costofliving/hardship/${state.relocationDetails.destinationCity.country}/${state.relocationDetails.destinationCity.city}`,\n )\n .then((res) => {\n if (res && res.data) {\n commit('setDestinationHardshipRank', res.data);\n } else {\n commit('setDestinationHardshipRank', {});\n }\n }).catch((err) => {\n commit('setDestinationHardshipRank', {});\n });\n },\n getSpendingMultiplier({\n commit,\n }) {\n relocationAxios.get('/aims/api/costofliving/spendingMultipliers')\n .then((res) => {\n if (res.data) {\n commit('setSpendingMultipliers', res.data);\n }\n });\n },\n getMedicalCost({\n commit,\n state,\n }) {\n relocationAxios.get(\n `/aims/api/costofliving/medicalCost/${state.relocationDetails.homeCity.country}/${state.employeeInfo.age}`,\n )\n .then((res) => {\n if (res.data) {\n commit('setHomeMedicalCost', res.data);\n } else {\n commit('setHomeMedicalCost', {});\n }\n })\n .catch(err => commit('setHomeMedicalCost', {}));\n relocationAxios.get(\n `/aims/api/costofliving/medicalCost/${state.relocationDetails.destinationCity.country}/${state.employeeInfo.age}`,\n )\n .then((res) => {\n if (res.data) {\n commit('setDestinationMedicalCost', res.data);\n } else {\n commit('setDestinationMedicalCost', {});\n }\n })\n .catch(err => commit('setDestinationMedicalCost', {}));\n },\n },\n getters: {\n citiesTree(state) {\n if (!state.cities) {\n return [];\n }\n const regions = sortBy(state.cities, 'region');\n return regions\n .map(region => ({\n label: region.region,\n value: region.region,\n children: sortBy(region.countries, 'country')\n .map(country => ({\n label: country.country,\n value: country.country,\n children: sortBy(country.cities).map(city => ({\n label: city,\n value: city,\n })),\n })),\n }));\n },\n trendsTree(state) {\n if (!state.citiesTrends || !state.countriesTrends ||\n state.citiesTrends.length === 0 || state.countriesTrends.length === 0) {\n return [];\n }\n const regionCountry = groupBy(state.countriesTrends, 'region');\n const regionCities = groupBy(state.citiesTrends, 'region');\n const regions = uniq([...Object.keys(regionCountry), ...Object.keys(regionCities)]);\n regions.sort();\n return regions.map((r) => {\n const countryCities = groupBy(regionCities[r], 'country');\n const coCountries = regionCountry[r].map(co => co.country);\n const cityCountries = Object.keys(countryCities);\n const countries = uniq([...coCountries, ...cityCountries]);\n countries.sort();\n const children = countries.map((c) => {\n const countryItems = regionCountry[r].find(co => co.country === c);\n const value = countryItems || c;\n const cities = countryCities[c];\n if (cities) {\n const cityChildren = cities ? cities.map(ci => ({\n label: ci.city,\n value: ci,\n })) : undefined;\n return {\n label: c,\n value,\n children: sortBy(cityChildren, 'city'),\n };\n }\n return {\n label: c,\n value,\n };\n });\n return {\n label: r,\n value: r,\n children,\n };\n });\n },\n taxConverted(state, getter) {\n return {\n home: {\n resident: state.tax.home.resident * getter.selectedRate.usdDivisor,\n nonResident: state.tax.home.nonResident * getter.selectedRate.usdDivisor,\n },\n destination: {\n resident: state.tax.destination.resident * getter.selectedRate.usdDivisor,\n nonResident: state.tax.destination.nonResident * getter.selectedRate.usdDivisor,\n },\n };\n },\n selectedRate(state, getters, rootState) {\n return rootState.currencyExchangeRates\n .find(c => c.currencyCode === state.currencySelected) || {\n usdDivisor: 1,\n };\n },\n salaryRate(state, getters, rootState) {\n return rootState.currencyExchangeRates\n .find(c => c.currencyCode === state.salaryCurrency) || {\n usdDivisor: 1,\n };\n },\n homeCityPriceIdMap(state) {\n if (!state.homeCityPrices.prices) return {};\n const priceMap = {};\n state.homeCityPrices.prices.forEach((p) => {\n let price = p.average_price * 1.1;\n if (p.item_name.startsWith('Apartment')) {\n let m = 1.9;\n if (state.homeCityPrices.continent === 'Asia') {\n m = 1.9;\n } else {\n m = 2.4;\n }\n price = p.average_price * m;\n }\n priceMap[p.item_id] = {\n price,\n item: p.item_name,\n };\n });\n return priceMap;\n },\n destinationCityPriceIdMap(state) {\n if (!state.destinationCityPrices.prices) return {};\n const priceMap = {};\n state.destinationCityPrices.prices.forEach((p) => {\n let price = p.average_price * 1.1;\n if (p.item_name.startsWith('Apartment')) {\n let m = 1.9;\n if (state.destinationCityPrices.continent === 'Asia') {\n m = 1.9;\n } else {\n m = 2.4;\n }\n price = p.average_price * m;\n }\n priceMap[p.item_id] = {\n price,\n item: p.item_name,\n };\n });\n return priceMap;\n },\n homeCityPriceMap(state) {\n if (!state.homeCityPrices.prices) return {};\n const city = {\n ...state.homeCityPrices,\n };\n const priceMap = {};\n city.prices.forEach((p) => {\n let price = p.average_price * 1.1;\n if (p.item_name.startsWith('Apartment')) {\n let m = 1.9;\n if (city.continent === 'Asia') {\n m = 1.9;\n } else {\n m = 2.4;\n }\n price = p.average_price * m;\n }\n priceMap[p.item_name] = price;\n });\n city.prices = priceMap;\n return city;\n },\n destinationCityPriceMap(state) {\n if (!state.destinationCityPrices.prices) return {};\n const city = {\n ...state.destinationCityPrices,\n };\n const priceMap = {};\n city.prices.forEach((p) => {\n let price = p.average_price * 1.1;\n if (p.item_name.startsWith('Apartment')) {\n let m = 1.9;\n if (city.continent === 'Asia') {\n m = 1.9;\n } else {\n m = 2.4;\n }\n price = p.average_price * m;\n }\n priceMap[p.item_name] = price;\n });\n city.prices = priceMap;\n return city;\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/relocationModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport differenceBy from 'lodash/differenceBy';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst newsTaggerAxios = axios.create();\nconst cache = new Map();\ncacheAxios(newsTaggerAxios, cache);\nnewsTaggerAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/newstagger';\n }, 500);\n }\n });\n\nfunction getDateString(date) {\n if (!date) return '';\n return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\n}\n\nconst pastDate = new Date();\npastDate.setDate(pastDate.getDate() - 30);\n\nexport default {\n state: {\n keywords: [],\n dateFromTagged: pastDate,\n dateToTagged: new Date(),\n dateFromUntagged: pastDate,\n dateToUntagged: new Date(),\n untaggedArticles: [],\n hrArticles: [],\n bizArticles: [],\n cities: [],\n },\n mutations: {\n setUntaggedArticles(state, data) {\n state.untaggedArticles = data;\n },\n setHrArticles(state, data) {\n state.hrArticles = data;\n },\n addHrArticle(state, article) {\n state.hrArticles.push(article);\n },\n setBizArticles(state, data) {\n state.bizArticles = data;\n },\n updateBizArticle(state, article) {\n const i = state.bizArticles.findIndex(a => a.link === article.link);\n if (i >= 0) {\n Vue.set(state.bizArticles[i], 'sentiment_score', article.sentiment_score);\n Vue.set(state.bizArticles[i], 'countries', article.countries);\n }\n },\n updateHrArticle(state, article) {\n const i = state.hrArticles.findIndex(a => a.link === article.link);\n if (i >= 0) {\n Vue.set(state.hrArticles[i], 'sentiment_score', article.sentiment_score);\n Vue.set(state.hrArticles[i], 'category', article.category);\n Vue.set(state.hrArticles[i], 'country', article.country);\n Vue.set(state.hrArticles[i], 'legislationArticleType', article.legislationArticleType);\n Vue.set(state.hrArticles[i], 'legislationDateToImplement', article.legislationDateToImplement);\n }\n },\n removeUntaggedArticles(state, articles) {\n state.untaggedArticles = differenceBy(state.untaggedArticles, articles, 'link');\n },\n removeHrArticles(state, articles) {\n state.hrArticles = differenceBy(state.hrArticles, articles, 'link');\n },\n setHrKeywords(state, data) {\n state.keywords = data;\n },\n removeHrKeyword(state, keyword) {\n state.keywords = state.keywords.filter(k => !(k.keyword === keyword.keyword && k.category ===\n keyword.category));\n },\n addHrKeyword(state, keyword) {\n state.keywords.push(keyword);\n },\n dateFromUntaggedChanged(state, date) {\n state.dateFromUntagged = date;\n },\n dateToUntaggedChanged(state, date) {\n state.dateToUntagged = date;\n },\n dateFromTaggedChanged(state, date) {\n state.dateFromTagged = date;\n },\n dateToTaggedChanged(state, date) {\n state.dateToTagged = date;\n },\n setCities(state, cities) {\n state.cities = cities;\n },\n },\n actions: {\n initHrKeywords({\n commit,\n }) {\n newsTaggerAxios.get('/aims/api/newsTagger/keywords')\n .then((res) => {\n if (res.data) {\n commit('setHrKeywords', res.data);\n }\n });\n },\n getUntaggedNews({\n commit,\n state,\n }) {\n newsTaggerAxios.post('/aims/api/newsTagger/untaggedNews', {\n from: getDateString(state.dateFromUntagged),\n to: getDateString(state.dateToUntagged),\n })\n .then((res) => {\n if (res.data) {\n commit('setUntaggedArticles', res.data.map((s) => {\n s.published = s.published.substr(0, 10);\n return s;\n }));\n }\n });\n },\n getHrNewsForTagging({\n commit,\n state,\n }) {\n newsTaggerAxios.post('/aims/api/newsTagger/hrNews', {\n from: getDateString(state.dateFromTagged),\n to: getDateString(state.dateToTagged),\n })\n .then((res) => {\n if (res.data) {\n commit('setHrArticles', res.data.map((s) => {\n s.published = s.published.substr(0, 10);\n return s;\n }));\n }\n });\n },\n getBizNewsForTagging({\n commit,\n state,\n }) {\n newsTaggerAxios.post('/aims/api/newsTagger/bizNews', {\n from: getDateString(state.dateFromTagged),\n to: getDateString(state.dateToTagged),\n })\n .then((res) => {\n if (res.data) {\n commit('setBizArticles', res.data.map((s) => {\n s.published = s.published.substr(0, 10);\n return s;\n }));\n }\n });\n },\n getAllCities({\n commit,\n state,\n }) {\n newsTaggerAxios.get('/aims/api/newsTagger/cities')\n .then((res) => {\n if (res.data) {\n commit('setCities', res.data);\n }\n });\n },\n deleteKeyword({\n commit,\n }, keyword) {\n newsTaggerAxios.post('/aims/api/newsTagger/removeTag', keyword)\n .then((res) => {\n if (res && res.status === 200) {\n commit('removeHrKeyword', keyword);\n }\n });\n },\n deleteHrArticles({\n commit,\n }, articles) {\n return newsTaggerAxios.post('/aims/api/newsTagger/deleteHrArticles', articles)\n .then((res) => {\n if (res && res.status === 200) {\n commit('removeHrArticles', articles);\n return Promise.resolve();\n }\n return Promise.reject('Failed saving articles');\n })\n .catch(err => Promise.reject(err));\n },\n addKeyword({\n commit,\n }, keyword) {\n return newsTaggerAxios.post('/aims/api/newsTagger/addTag', keyword)\n .then((res) => {\n if (res && res.status === 200) {\n commit('addHrKeyword', keyword);\n return Promise.resolve();\n }\n return Promise.reject(\n `Cannot save \"${keyword.keyword}\". Check that it does not already exist.`);\n })\n .catch(err => Promise.reject(err));\n },\n saveUntaggedArticles({\n commit,\n }, articles) {\n return newsTaggerAxios.post('/aims/api/newsTagger/updateArticles', articles)\n .then((res) => {\n if (res && res.status === 200) {\n commit('removeUntaggedArticles', articles);\n return Promise.resolve();\n }\n return Promise.reject('Failed saving articles');\n })\n .catch(err => Promise.reject(err));\n },\n saveBizArticles({\n commit,\n }, article) {\n return newsTaggerAxios.post('/aims/api/newsTagger/updateBizArticle', article)\n .then((res) => {\n if (res && res.status === 200) {\n commit('updateBizArticle', article);\n return Promise.resolve();\n }\n return Promise.reject('Failed saving article');\n })\n .catch(err => Promise.reject(err));\n },\n saveHrArticles({\n commit,\n }, article) {\n return newsTaggerAxios.post('/aims/api/newsTagger/updateHrArticle', article)\n .then((res) => {\n if (res && res.status === 200) {\n commit('updateHrArticle', article);\n return Promise.resolve();\n }\n return Promise.reject('Failed saving article');\n })\n .catch(err => Promise.reject(err));\n },\n insertHrArticle({\n commit,\n }, article) {\n return newsTaggerAxios.post('/aims/api/newsTagger/insertHrArticle', article)\n .then((res) => {\n if (res && res.status === 200) {\n commit('addHrArticle', article);\n return Promise.resolve();\n }\n return Promise.reject('Failed saving article. Check that article do not already exist.');\n })\n .catch(err => Promise.reject(err));\n },\n },\n getters: {},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/newsTaggerModule.js","/* eslint-disable no-param-reassign */\nimport axios from 'axios';\n// import Vue from 'vue';\nimport uniq from 'lodash/uniq';\nimport sortBy from 'lodash/sortBy';\nimport max from 'lodash/max';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst zhaopinAxios = axios.create();\nconst cache = new Map();\ncacheAxios(zhaopinAxios, cache);\nzhaopinAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nexport default {\n state: {\n lang: 'en',\n cities: [],\n provinces: [],\n sectors: [],\n jobFunctions: [],\n jobTrendChartLoading: false,\n jobTrends: [],\n jobGroupCounts: [],\n chartToShow: '2d',\n translation: {},\n jobTrendChartOptions: {\n title: {\n left: 'center',\n top: '1%',\n subtextStyle: {\n fontSize: 14,\n color: '#666',\n },\n textStyle: {\n fontSize: 18,\n },\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n grid: {\n left: '3%',\n right: '3%',\n bottom: '25px',\n containLabel: true,\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: {\n type: 'line',\n name: 'Job Postings',\n },\n xAxis: {\n type: 'category',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n },\n },\n compareChartLoading: false,\n compareChartOptions: {\n title: {\n left: 'center',\n top: '1%',\n subtextStyle: {\n fontSize: 14,\n color: '#666',\n },\n textStyle: {\n fontSize: 18,\n },\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n visualMap: {\n show: false,\n calculable: true,\n realtime: false,\n inRange: {\n color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'],\n },\n outOfRange: {\n colorAlpha: 0,\n },\n // max: linedata[1],\n },\n grid: {\n left: '3%',\n right: '3%',\n bottom: '25px',\n containLabel: true,\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: {\n type: 'bar',\n name: 'Job Postings',\n },\n xAxis: {\n type: 'category',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n },\n },\n compareChartOptions3d: {\n title: {\n left: 'center',\n top: '1%',\n subtextStyle: {\n fontSize: 14,\n color: '#666',\n },\n textStyle: {\n fontSize: 18,\n },\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n visualMap: {\n show: false,\n calculable: true,\n realtime: false,\n inRange: {\n color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'],\n },\n outOfRange: {\n colorAlpha: 0,\n },\n // max: linedata[1],\n },\n grid3D: {\n show: true,\n light: {\n main: {\n intensity: 1.2,\n shadow: false,\n beta: -30,\n },\n ambient: {\n intensity: 0.2,\n },\n },\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n optionToContent: (opt) => {\n const series = opt.series;\n const xMap = {};\n opt.xAxis3D[0].data.forEach((x, i) => { xMap[i] = x; });\n const yMap = {};\n opt.yAxis3D[0].data.forEach((y, i) => { yMap[i] = y; });\n let table =\n`\n \n | \n | \n ${series[0].name} | \n
`;\n for (let i = 0, l = series[0].data.length; i < l; i += 1) {\n table +=\n`\n ${xMap[series[0].data[i].value[0]]} | \n ${yMap[series[0].data[i].value[1]]} | \n ${series[0].data[i].name} | \n
`;\n }\n table += '
';\n return table;\n },\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: [{\n type: 'bar3D',\n name: 'Job Postings',\n data: [],\n // barSize: 0,\n shading: 'realistic',\n emphasis: {\n label: {\n textStyle: {\n fontSize: 20,\n color: '#333',\n },\n formatter: '{b}',\n },\n itemStyle: {\n color: '#333',\n },\n },\n }],\n xAxis3D: {\n name: '',\n type: 'category',\n data: [],\n },\n yAxis3D: {\n name: '',\n type: 'category',\n data: [],\n },\n zAxis3D: {\n name: '',\n type: 'value',\n },\n },\n },\n mutations: {\n setLang(state, lang) {\n state.lang = lang;\n },\n setZhaopinTranslation(state, translation) {\n state.translation = translation;\n },\n setZhaopinCities(state, cities) {\n state.cities = cities;\n },\n setZhaopinProvinces(state, provinces) {\n state.provinces = provinces;\n },\n setZhaopinSectors(state, sectors) {\n state.sectors = sectors;\n },\n setZhaopinJobFunctions(state, jobFunctions) {\n state.jobFunctions = jobFunctions;\n },\n setJobTrends(state, jobTrends) {\n // jobTrends.sort((a, b) => {\n // if (a.date > b.date) {\n // return 1;\n // } else if (a.date > b.date) {\n // return -1;\n // }\n // return 0;\n // });\n state.jobTrends = jobTrends;\n },\n setJobGroupCounts(state, counts) {\n state.jobGroupCounts = sortBy(counts, 'count');\n },\n setJobTrendChartLoading(state, status) {\n state.jobTrendChartLoading = status;\n },\n setCompareChartLoading(state, status) {\n state.compareChartLoading = status;\n },\n plotJobGroupCounts(state, dimension) {\n const xData = [];\n const seriesData = [];\n state.jobGroupCounts.forEach((jt) => {\n let key;\n if (state.lang === 'cn') {\n key = jt.choice;\n } else if (state.lang === 'en') {\n switch (dimension) {\n case 'cityProvince':\n key = state.translation.city[jt.choice] || state.translation.province[jt.choice];\n break;\n case 'sector':\n key = state.translation.sector[jt.choice];\n break;\n case 'jobFunction':\n key = state.translation.subJobFunction[jt.choice];\n break;\n default:\n key = '';\n }\n }\n xData.push(key);\n seriesData.push(jt.count);\n });\n const xAxis = {\n ...state.compareChartOptions.xAxis,\n data: xData,\n };\n const series = {\n ...state.compareChartOptions.series,\n data: seriesData,\n };\n let text;\n if (state.lang === 'cn') {\n text = '职位空缺';\n } else if (state.lang === 'en') {\n text = 'Job Vacancies';\n }\n state.compareChartOptions = {\n ...state.compareChartOptions,\n title: { text },\n xAxis,\n series,\n visualMap: {\n ...state.compareChartOptions.visualMap,\n max: max(seriesData),\n },\n };\n state.chartToShow = '2d';\n state.compareChartLoading = false;\n },\n plotJobGroupCounts2d(state, dimensions) {\n let xData = [];\n let yData = [];\n const seriesData = [];\n\n state.jobGroupCounts.forEach((jt) => {\n yData.push(jt.choice1);\n xData.push(jt.choice2);\n });\n const counts = [];\n xData = uniq(xData);\n yData = uniq(yData);\n state.jobGroupCounts.forEach((jt) => {\n const x = xData.indexOf(jt.choice2);\n const y = yData.indexOf(jt.choice1);\n counts.push(jt.count);\n if (state.lang === 'cn') {\n seriesData.push({\n name: `${jt.choice1} - ${jt.choice2} (${jt.count})`,\n value: [x, y, jt.count],\n });\n } else if (state.lang === 'en') {\n seriesData.push({\n name: jt.count,\n value: [x, y, jt.count],\n });\n }\n });\n if (state.lang === 'en') {\n xData = xData.map((k) => {\n switch (dimensions[1]) {\n case 'cityProvince':\n return state.translation.city[k] || state.translation.province[k];\n case 'sector':\n return state.translation.sector[k];\n case 'jobFunction':\n return state.translation.subJobFunction[k];\n default:\n return '';\n }\n });\n yData = yData.map((k) => {\n switch (dimensions[0]) {\n case 'cityProvince':\n return state.translation.city[k] || state.translation.province[k];\n case 'sector':\n return state.translation.sector[k];\n case 'jobFunction':\n return state.translation.subJobFunction[k];\n default:\n return '';\n }\n });\n }\n\n const xAxis3D = {\n ...state.compareChartOptions3d.xAxis3D,\n data: xData,\n name: dimensions[1],\n };\n const yAxis3D = {\n ...state.compareChartOptions3d.yAxis3D,\n data: yData,\n name: dimensions[0],\n };\n const series = [{\n ...state.compareChartOptions3d.series[0],\n data: seriesData,\n }];\n let text;\n if (state.lang === 'cn') {\n text = '职位空缺';\n } else if (state.lang === 'en') {\n text = 'Job Vacancies';\n }\n state.compareChartOptions3d = {\n ...state.compareChartOptions3d,\n title: { text },\n xAxis3D,\n yAxis3D,\n series,\n visualMap: {\n ...state.compareChartOptions3d.visualMap,\n max: max(counts),\n },\n };\n state.chartToShow = '3d';\n state.compareChartLoading = false;\n },\n plotJobTrend(state, { city, sector, jobFunction }) {\n const textArray = [];\n let title = '';\n switch (state.lang) {\n case 'cn':\n if (city.length === 2) {\n textArray.push(city[1]);\n }\n if (sector.length > 0) {\n textArray.push(sector[sector.length - 1]);\n }\n if (jobFunction.length > 0) {\n textArray.push(jobFunction[jobFunction.length - 1]);\n }\n title = {\n ...state.jobTrendChartOptions.title,\n subtext: '职位空缺',\n text: textArray.join(' - '),\n };\n break;\n case 'en':\n if (city.length === 2) {\n if (city[0] === 'cities') {\n textArray.push(state.translation.city[city[1]]);\n } else if (city[0] === 'provinces') {\n textArray.push(state.translation.province[city[1]]);\n }\n }\n if (sector.length > 0) {\n if (sector.length === 1) {\n textArray.push(state.translation.sector[sector[0]]);\n } else if (sector.length === 2) {\n textArray.push(state.translation.industry[sector[1]]);\n }\n }\n if (jobFunction.length > 0) {\n if (jobFunction.length === 1) {\n textArray.push(\n state.translation.jobFunction[jobFunction[0]]);\n } else if (jobFunction.length === 2) {\n textArray.push(\n state.translation.subJobFunction[jobFunction[1]]);\n } else if (jobFunction.length === 3) {\n textArray.push(\n state.translation.subSubJobFunction[jobFunction[2]]);\n }\n }\n title = {\n ...state.jobTrendChartOptions.title,\n subtext: 'Job Vacancies',\n text: textArray.join(' - '),\n };\n break;\n default:\n }\n\n const xData = [];\n const seriesData = [];\n state.jobTrends.forEach((jt) => {\n const key = jt.date;\n xData.push(key);\n seriesData.push(jt.count);\n });\n const xAxis = {\n ...state.jobTrendChartOptions.xAxis,\n data: xData,\n };\n const series = {\n ...state.jobTrendChartOptions.series,\n data: seriesData,\n };\n\n state.jobTrendChartOptions = {\n ...state.jobTrendChartOptions,\n title,\n xAxis,\n series,\n };\n state.jobTrendChartLoading = false;\n },\n },\n actions: {\n allZhaopinCitiesAndProvinces({ commit }) {\n zhaopinAxios.get('/aims/api/zhaopin/citiesProvinces').then((res) => {\n if (res.data) {\n commit('setZhaopinCities', res.data.cities);\n commit('setZhaopinProvinces', res.data.provinces);\n }\n });\n },\n getZhaopinTranslation({ commit }) {\n zhaopinAxios.get('/aims/api/zhaopin/translation').then((res) => {\n if (res.data) {\n commit('setZhaopinTranslation', res.data);\n }\n });\n },\n allZhaopinSectors({ commit }) {\n zhaopinAxios.get('/aims/api/zhaopin/sectors').then((res) => {\n if (res.data) {\n commit('setZhaopinSectors', res.data);\n }\n });\n },\n allZhaopinJobFunctions({ commit }) {\n zhaopinAxios.get('/aims/api/zhaopin/jobFunctions').then((res) => {\n if (res.data) {\n commit('setZhaopinJobFunctions', res.data);\n }\n });\n },\n queryZhaopinJobTrend({ commit }, query) {\n commit('setJobTrendChartLoading', true);\n zhaopinAxios.post('/aims/api/zhaopin/jobTrends', query, {\n cache: true,\n cacheKey: query,\n }).then((res) => {\n if (res.data) {\n commit('setJobTrends', res.data);\n commit('plotJobTrend', query);\n }\n });\n },\n queryZhaopinJobs1d({ commit }, query) {\n commit('setCompareChartLoading', true);\n if (query.choices.length === 0) {\n commit('setJobGroupCounts', []);\n commit('plotJobGroupCounts', query.dimension);\n return;\n }\n query.choices.sort();\n zhaopinAxios.post('/aims/api/zhaopin/jobs1d', query, {\n cache: true,\n cacheKey: query,\n }).then((res) => {\n if (res.data) {\n commit('setJobGroupCounts', res.data);\n commit('plotJobGroupCounts', query.dimension);\n }\n });\n },\n queryZhaopinJobs2d({ commit }, query) {\n commit('setCompareChartLoading', true);\n if (query.choices.length === 0) {\n commit('setJobGroupCounts', []);\n commit('plotJobGroupCounts2d', query.dimensions);\n return;\n }\n zhaopinAxios.post('/aims/api/zhaopin/jobs2d', query, {\n cache: true,\n cacheKey: query,\n }).then((res) => {\n if (res.data) {\n commit('setJobGroupCounts', res.data);\n commit('plotJobGroupCounts2d', query.dimensions);\n }\n });\n },\n },\n getters: {\n zhaopinCitiesTree(state) {\n if (!state.translation.city || !state.translation.province) {\n return [];\n }\n if (state.lang === 'cn') {\n return [{\n value: 'cities',\n label: '主要城市',\n children: state.cities.map(city => ({ value: city, label: city })),\n }, {\n value: 'provinces',\n label: '省份',\n children: state.provinces.map(p => ({ value: p, label: p })),\n }];\n } else if (state.lang === 'en') {\n return [{\n value: 'cities',\n label: 'Main Cities',\n children: state.cities.map(city =>\n ({ value: city, label: state.translation.city[city] })),\n }, {\n value: 'provinces',\n label: 'Provinces',\n children: state.provinces.map(p =>\n ({ value: p, label: state.translation.province[p] })),\n }];\n }\n return [];\n },\n zhaopinSectorsTree(state) {\n if (!state.translation.sector || !state.translation.industry) {\n return [];\n }\n if (state.lang === 'cn') {\n return state.sectors.map(sector => ({\n value: sector.sector,\n label: sector.sector,\n children: sector.industries.map(ind => ({\n value: ind,\n label: ind,\n })),\n }));\n } else if (state.lang === 'en') {\n return state.sectors.map(sector => ({\n value: sector.sector,\n label: state.translation.sector[sector.sector],\n children: sector.industries.map(ind => ({\n value: ind,\n label: state.translation.industry[ind],\n })),\n }));\n }\n return [];\n },\n zhaopinJobFunctionsTree(state) {\n if (!state.translation.jobFunction || !state.translation.subJobFunction\n || !state.translation.subSubJobFunction) {\n return [];\n }\n if (state.lang === 'cn') {\n return state.jobFunctions.map(f => ({\n value: f.jobFunction,\n label: f.jobFunction,\n children: f.subJobFunctions.map(s => ({\n value: s.subJobFunction,\n label: s.subJobFunction,\n children: s.subSubJobFunctions.map(ss => ({\n value: ss,\n label: ss,\n })),\n })),\n }));\n } else if (state.lang === 'en') {\n return state.jobFunctions.map(f => ({\n value: f.jobFunction,\n label: state.translation.jobFunction[f.jobFunction],\n children: f.subJobFunctions.map(s => ({\n value: s.subJobFunction,\n label: state.translation.subJobFunction[s.subJobFunction],\n children: s.subSubJobFunctions.map(ss => ({\n value: ss,\n label: state.translation.subSubJobFunction[ss],\n })),\n })),\n }));\n }\n return [];\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/zhaopinModule.js","/* eslint-disable no-param-reassign */\nimport axios from 'axios';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst legisAxios = axios.create();\nconst cache = new Map();\ncacheAxios(legisAxios, cache);\nlegisAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/legislation';\n }, 500);\n }\n });\n\nexport default {\n state: {\n continents: [],\n groups: [],\n socialSecurityGroups: [],\n legislation: {},\n socialSecurity: {},\n },\n mutations: {\n setCountryLegislation(state, legis) {\n state.legislation = legis;\n },\n setCountrySocialSecurity(state, ss) {\n const socialSec = {};\n ss.forEach((s) => { socialSec[s.socialSecurityType] = s.topics; });\n state.socialSecurity = socialSec;\n },\n setLegislationContinents(state, continents) {\n state.continents = continents;\n },\n setLegislationGroups(state, groups) {\n state.groups = groups.map(g => ({\n ...g,\n name: g.group,\n }));\n },\n setSocialSecurityGroups(state, groups) {\n state.socialSecurityGroups = groups.map(g => ({\n type: 'socialSecurity',\n group: g.group,\n name: `Social Security - ${g.group}`,\n items: g.items.map(it => ({ key: it, value: it })),\n }));\n },\n },\n actions: {\n getLegislationCountries({ commit }) {\n legisAxios.get('/aims/api/legislation/countries').then((res) => {\n if (res && res.data) {\n commit('setLegislationContinents', res.data);\n }\n });\n },\n getLegislationGroups({ commit }) {\n legisAxios.get('/aims/api/legislation/groups').then((res) => {\n if (res && res.data) {\n commit('setLegislationGroups', res.data);\n }\n });\n },\n getSocialSecurityGroups({ commit }) {\n legisAxios.get('/aims/api/legislation/socialsecuritygroups').then((res) => {\n if (res && res.data) {\n commit('setSocialSecurityGroups', res.data);\n }\n });\n },\n getCountryLegislation({ commit }, countryCode) {\n legisAxios.get(`/aims/api/legislation/legislation/${countryCode}`, {\n cache: true,\n cacheKey: `/aims/api/legislation/legislation/${countryCode}`,\n }).then((res) => {\n if (res && res.data) {\n commit('setCountryLegislation', res.data);\n } else {\n commit('setCountryLegislation', {});\n }\n });\n },\n getCountrySocialSecurity({ state, commit }, country) {\n const cty = state.continents.find(c => c.continent === country[0])\n .regions.find(r => r.region === country[1])\n .countries.find(c => c.countryCode === country[2]);\n legisAxios.get(`/aims/api/legislation/socialsecurity/${cty.countryName}`, {\n cache: true,\n cacheKey: `/aims/api/legislation/socialsecurity/${cty.countryName}`,\n }).then((res) => {\n if (res && res.data) {\n commit('setCountrySocialSecurity', res.data);\n } else {\n commit('setCountrySocialSecurity', []);\n }\n });\n },\n },\n getters: {\n legislationCountryTree(state) {\n return state.continents.map(con => ({\n label: con.continent,\n value: con.continent,\n children: con.regions.map(reg => ({\n label: reg.region,\n value: reg.region,\n children: reg.countries.map(c => ({\n label: c.countryName,\n value: c.countryCode,\n })),\n })),\n }));\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/legislationModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport Vue from 'vue';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst livingCostAxios = axios.create();\nconst cache = new Map();\ncacheAxios(livingCostAxios, cache);\n\nlivingCostAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims#/citiescost';\n }, 500);\n }\n });\n\nexport default {\n state: {\n cityCostMap: {},\n cityCostIdMap: {},\n cityHardshipRank: {},\n cityMedicalCost: {},\n tipDialogShow: true,\n items: [],\n },\n mutations: {\n setTipDialogShow(state, value) {\n state.tipDialogShow = value;\n },\n setItems(state, value) {\n state.items = value;\n },\n setCityMedicalCost(state, { country, cost }) {\n state.cityMedicalCost = {\n ...state.cityMedicalCost,\n [country]: cost,\n };\n },\n setMultipleCityMedicalCost(state, costs) {\n state.cityMedicalCost = {\n ...state.cityMedicalCost,\n ...costs,\n };\n },\n setCityCostMap(state, costs) {\n state.cityCostMap = {\n ...state.cityCostMap,\n ...costs,\n };\n },\n setCityCostIdMap(state, costs) {\n state.cityCostIdMap = {\n ...state.cityCostIdMap,\n ...costs,\n };\n },\n setCityHardshipRank(state, { country, city, rank }) {\n state.cityHardshipRank = {\n ...state.cityHardshipRank,\n [`${city}|${country}`]: rank,\n };\n },\n setMultipleCityHardshipRank(state, countryRanks) {\n state.cityHardshipRank = {\n ...state.cityHardshipRank,\n ...countryRanks,\n };\n },\n },\n actions: {\n\n getCostOfLivingItems({ commit }) {\n return livingCostAxios.get('/aims/api/costofliving/items').then((res) => {\n if (res) {\n commit('setItems', res.data);\n }\n });\n },\n\n saveCostOfLivingCityList(_, list) {\n return livingCostAxios.post('/aims/api/costofliving/saveCostOfLivingCityList', list);\n },\n\n retrieveCostOfLivingCityList() {\n return livingCostAxios.get('/aims/api/costofliving/userCostOfLivingCityList');\n },\n\n removeCostOfLivingCityList(_, listName) {\n return livingCostAxios\n .delete(`/aims/api/costofliving/userCostOfLivingCityList/${listName}`);\n },\n\n\n getTipDialogShow({ commit }, value) {\n livingCostAxios.get('/aims/api/costofliving/showTipDialog').then((res) => {\n if (res) {\n commit('setTipDialogShow', res.data);\n }\n });\n },\n saveTipDialogShow({ commit }, value) {\n livingCostAxios.get(`/aims/api/costofliving/showTipDialog/${value}`).then((res) => {\n if (res) {\n commit('setTipDialogShow', value);\n }\n });\n },\n getLivingCostIncomeTax(_, { country, income, taxType }) {\n return livingCostAxios.get(\n `/aims/api/costofliving/calcTaxUsd/${country}/${income}/${taxType}`,\n {\n cache: true,\n cacheKey: { country, income, taxType },\n },\n )\n .then((res) => {\n if (res) {\n return res.data;\n }\n return '(Not Available)';\n });\n },\n getLivingCostMedicalCost({ commit }, { country }) {\n livingCostAxios.get(\n `/aims/api/costofliving/medicalCost/${country}/35 - 39`,\n )\n .then((res) => {\n if (res && res.data) {\n commit('setCityMedicalCost', { country, cost: res.data });\n } else {\n commit('setCityMedicalCost', { country, cost: null });\n }\n });\n },\n getMultipleLivingCostHardshipRank({ commit }, { country, cities }) {\n return livingCostAxios.post(\n `/aims/api/costofliving/hardship/${country}`,\n cities,\n )\n .then((res) => {\n if (res && res.data.length > 0) {\n const allCost = {};\n res.data.forEach((city) => {\n allCost[`${city.name.replace(`, ${country}`, '')}|${country}`] = city;\n });\n commit('setMultipleCityHardshipRank', allCost);\n }\n });\n },\n getLivingCostHardshipRank({ commit }, { country, city }) {\n return livingCostAxios.get(\n `/aims/api/costofliving/hardship/${country}/${city}`,\n )\n .then((res) => {\n if (res && res.data) {\n commit('setCityHardshipRank', { city, country, rank: res.data });\n }\n });\n },\n getCityCostAndHardship({ commit }, { city, country }) {\n return livingCostAxios.get(`/aims/api/costofliving/allCostsAndHardship/${country}/${city}`)\n .then((res) => {\n if (res && res.data) {\n if (res.data.hardship && res.data.hardship.name) {\n const hardship = {};\n hardship[`${res.data.hardship.name.replace(`, ${country}`, '')}|${country}`] = res.data.hardship;\n commit('setMultipleCityHardshipRank', hardship);\n }\n if (res.data.cityCostMap && res.data.cityCostMap.city) {\n const costMap = {};\n costMap[`${res.data.cityCostMap.city}|${res.data.cityCostMap.country}`] = res.data.cityCostMap;\n commit('setCityCostMap', costMap);\n }\n if (res.data.cityCostIdMap && res.data.cityCostIdMap.city) {\n const costMap = {};\n costMap[`${res.data.cityCostIdMap.city}|${res.data.cityCostIdMap.country}`] = res.data.cityCostIdMap;\n commit('setCityCostIdMap', costMap);\n }\n }\n });\n },\n getRegionCostHardshipMedicalIncomeTax({ commit }, { region, income, taxType }) {\n return livingCostAxios.get(`/aims/api/costofliving/allCostsHardshipMedicalIncomeTax/${region}/${income}/${taxType}`)\n .then((res) => {\n const cities = {};\n const taxMap = {};\n if (res && res.data) {\n if (res.data.hardships && res.data.hardships.length > 0) {\n const hardships = {};\n res.data.hardships.forEach((city) => {\n hardships[`${city.name.replace(`, ${city.country}`, '')}|${city.country}`] = city;\n });\n commit('setMultipleCityHardshipRank', hardships);\n }\n if (res.data.cityCostMap && res.data.cityCostMap.length > 0) {\n const costMap = {};\n res.data.cityCostMap.forEach((city) => {\n cities[`${city.city}|${city.country}`] = true;\n costMap[`${city.city}|${city.country}`] = city;\n });\n commit('setCityCostMap', costMap);\n }\n if (res.data.cityCostIdMap && res.data.cityCostIdMap.length > 0) {\n const costMap = {};\n res.data.cityCostIdMap.forEach((city) => {\n costMap[`${city.city}|${city.country}`] = city;\n });\n commit('setCityCostIdMap', costMap);\n }\n if (res.data.medicals) {\n commit('setMultipleCityMedicalCost', res.data.medicals);\n }\n if (res.data.taxes) {\n Object.keys(res.data.taxes).forEach((key) => {\n taxMap[`${key}|${income}|${taxType}`] = res.data.taxes[key];\n });\n }\n }\n return { cities, taxMap };\n });\n },\n getCountryCostAndHardship({ commit }, country) {\n return livingCostAxios.get(`/aims/api/costofliving/allCostsAndHardship/${country}`)\n .then((res) => {\n const cities = {};\n if (res && res.data) {\n if (res.data.hardships && res.data.hardships.length > 0) {\n const hardships = {};\n res.data.hardships.forEach((city) => {\n hardships[`${city.name.replace(`, ${country}`, '')}|${country}`] = city;\n });\n commit('setMultipleCityHardshipRank', hardships);\n }\n if (res.data.cityCostMap && res.data.cityCostMap.length > 0) {\n const costMap = {};\n res.data.cityCostMap.forEach((city) => {\n cities[`${city.city}|${city.country}`] = true;\n costMap[`${city.city}|${city.country}`] = city;\n });\n commit('setCityCostMap', costMap);\n }\n if (res.data.cityCostIdMap && res.data.cityCostIdMap.length > 0) {\n const costMap = {};\n res.data.cityCostIdMap.forEach((city) => {\n costMap[`${city.city}|${city.country}`] = city;\n });\n commit('setCityCostIdMap', costMap);\n }\n }\n return { cities, counts: res.data.counts };\n });\n },\n getCountryCost({ commit }, country) {\n return livingCostAxios.get(\n `/aims/api/costofliving/allCosts/${country}`,\n )\n .then((res) => {\n if (res.data.length > 0) {\n const countryCost = {};\n res.data.forEach((city) => {\n const out1 = city.prices.find(it => it.item_name === 'Apartment (1 bedroom) Outside of Centre, Rent Per Month');\n const out3 = city.prices.find(it => it.item_name === 'Apartment (3 bedrooms) Outside of Centre, Rent Per Month');\n const out2 = {\n average_price: (out1.average_price + out3.average_price) / 2,\n highest_price: (out1.highest_price + out3.highest_price) / 2,\n item_name: 'Apartment (2 bedrooms) Outside of Centre, Rent Per Month',\n };\n city.prices.push(out2);\n const in1 = city.prices.find(it => it.item_name === 'Apartment (1 bedroom) in City Centre, Rent Per Month');\n const in3 = city.prices.find(it => it.item_name === 'Apartment (3 bedrooms) in City Centre, Rent Per Month');\n const in2 = {\n average_price: (in1.average_price + in3.average_price) / 2,\n highest_price: (in1.highest_price + in3.highest_price) / 2,\n item_name: 'Apartment (2 bedrooms) in City Centre, Rent Per Month',\n };\n city.prices.push(in2);\n countryCost[`${city.city}|${country}`] = city;\n });\n commit('setCountryCost', countryCost);\n }\n });\n },\n getCityCost({ commit }, { country, city }) {\n return livingCostAxios.get(\n `/aims/api/costofliving/allCosts/${country}/${city}`,\n )\n .then((res) => {\n if (res.data) {\n const out1 = res.data.prices.find(it => it.item_name === 'Apartment (1 bedroom) Outside of Centre, Rent Per Month');\n const out3 = res.data.prices.find(it => it.item_name === 'Apartment (3 bedrooms) Outside of Centre, Rent Per Month');\n const out2 = {\n average_price: (out1.average_price + out3.average_price) / 2,\n highest_price: (out1.highest_price + out3.highest_price) / 2,\n item_name: 'Apartment (2 bedrooms) Outside of Centre, Rent Per Month',\n };\n res.data.prices.push(out2);\n\n const in1 = res.data.prices.find(it => it.item_name === 'Apartment (1 bedroom) in City Centre, Rent Per Month');\n const in3 = res.data.prices.find(it => it.item_name === 'Apartment (3 bedrooms) in City Centre, Rent Per Month');\n const in2 = {\n average_price: (in1.average_price + in3.average_price) / 2,\n highest_price: (in1.highest_price + in3.highest_price) / 2,\n item_name: 'Apartment (2 bedrooms) in City Centre, Rent Per Month',\n };\n res.data.prices.push(in2);\n commit('setCityCost', { city, country, cost: res.data });\n }\n });\n },\n },\n getters: { },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/livingCostModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport download from 'downloadjs';\nimport axios from 'axios';\nimport Vue from 'vue';\nimport uniq from 'lodash/uniq';\nimport groupBy from 'lodash/groupBy';\nimport some from 'lodash/some';\nimport abbreviateNumber from '../../util/abbreviateNumber';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst freshGradSalAxios = axios.create();\nconst cache = new Map();\ncacheAxios(freshGradSalAxios, cache);\n\nfreshGradSalAxios.interceptors.response.use(\n response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n },\n);\n\nfunction getDegreeLbl(lvl) {\n let rlvl = 'Bachelor';\n if (lvl === 'M') {\n rlvl = 'Master';\n }\n return rlvl;\n}\nfunction getYear(lbl) {\n return lbl.substring(0, 4);\n}\nfunction getFacultyLblgbCty(val) {\n if (!isNaN(val.substring(0, 1))) {\n return val.substring(2, val.length);\n }\n return val;\n}\nfunction buildYaxis(lbl = '', gridIndex = 0) {\n const yAxis = {\n splitLine: {\n show: false,\n },\n gridIndex,\n axisLabel: {\n type: 'value',\n formatter: (label) => {\n if (label >= 0) {\n return `${lbl} ${abbreviateNumber(label)}`;\n }\n return `(${lbl} ${abbreviateNumber(-label)})`;\n },\n },\n };\n return yAxis;\n}\nfunction buildSeries(\n countries,\n dataCountryCode,\n data,\n index = -1,\n showSymbol = true,\n justUseValue = false,\n) {\n const name = countries.find(c => c === dataCountryCode);\n const lineStyle = {\n normal: {\n width: 2,\n },\n };\n // let type = 'line';\n // if (dataCountryCode === userCountryCode) {\n // lineStyle.normal.width = 5;\n // }\n let dataS;\n if (justUseValue) {\n dataS = data.map(d => [d.year, d.avgSalaryUSD]);\n } else {\n dataS = data.map(d => [d.year, d.avgSalaryUSD]);\n }\n const built = {\n name,\n type: 'line',\n showSymbol,\n lineStyle,\n xAxisIndex: index,\n yAxisIndex: index,\n data: dataS,\n };\n if (index === -1) {\n built.xAxisIndex = 0;\n built.yAxisIndex = 0;\n built.label = {\n normal: {\n show: false,\n formatter: function slb1(params) {\n return `${getFacultyLblgbCty(params.seriesName)}`;\n },\n },\n emphasis: {\n show: true,\n formatter: function slb2(params) {\n return `${getFacultyLblgbCty(params.seriesName)}`;\n },\n },\n };\n }\n return built;\n}\n\nconst singleGrid = [\n {\n // left: 110,\n right: '12%',\n bottom: '11%',\n },\n];\nconst legend = {\n type: 'scroll',\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\nconst dataZoom = [\n {\n type: 'inside',\n show: true,\n realtime: true,\n start: 0,\n end: 100,\n },\n {\n type: 'slider',\n realtime: true,\n start: 60,\n end: 100,\n },\n];\n\nexport default {\n state: {\n chartLoading: false,\n groupbyViewSelected: 'fac',\n degreelvlFilterSelected: 'B',\n facultySelected: 'Sales',\n allCurrencies: [],\n freshgradFaculty: [],\n freshgradCountry: [],\n degreelvlFilters: [],\n freshgradAll: [],\n fgpCountriesForPlot: [],\n freshGradPayHistoryMap: {},\n filteredFreshGradData: {},\n fgPaychartOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n padding: [5, 5],\n backgroundColor: '#77a6d8',\n formatter: (params) => {\n let tooltipcustom = '';\n tooltipcustom = tooltipcustom.concat('', getYear(params[0].data[0]), '
');\n for (let i = 0; i < params.length; i++) {\n tooltipcustom = tooltipcustom.concat('', getFacultyLblgbCty(params[i].seriesName), '
US$ ', params[i].value[1].toLocaleString('en'));\n tooltipcustom = tooltipcustom.concat('
');\n }\n return tooltipcustom;\n },\n },\n toolbox: {\n feature: {\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n dataZoom,\n series: [],\n xAxis: [\n {\n type: 'time',\n min: 'dataMin',\n max: 'dataMax',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n ],\n grid: singleGrid,\n legend,\n yAxis: [\n {\n splitLine: {\n show: false,\n },\n axisLabel: {\n type: 'value',\n formatter: (label) => {\n if (label >= 0) {\n return `US$${abbreviateNumber(label)}`;\n }\n return `(US$${abbreviateNumber(-label)})`;\n },\n },\n },\n ],\n },\n },\n mutations: {\n setGroupbyView(state, dview) {\n state.fgpCountriesForPlot = [];\n state.groupbyViewSelected = dview;\n },\n setCurrencies(state, allCurrencies) {\n state.allCurrencies = allCurrencies;\n },\n setFreshGrads(state, allData) {\n state.freshgradAll = allData;\n },\n setFaculty(state, facData) {\n state.freshgradFaculty = facData;\n },\n setCountry(state, cData) {\n state.freshgradCountry = cData;\n },\n setDegreeLvl(state, dlvlData) {\n state.degreelvlFilters = dlvlData;\n },\n setFilteredFreshGradData(state, sData) {\n state.filteredFreshGradData = sData;\n },\n setChartLoading(state, loading) {\n state.chartLoading = loading;\n },\n addSelfFreshGradPayHistoryMap(state, map) {\n Object.keys(map)\n .forEach((k) => {\n Vue.set(state.selfFreshGradPayHistoryMap, k, map[k]);\n });\n },\n addFreshGradPayHistoryMap(state, maps) {\n Object.keys(maps)\n .forEach((k) => {\n Vue.set(state.freshGradPayHistoryMap, k, maps[k]);\n });\n },\n setFacultySelected(state, indicator) {\n state.fgpCountriesForPlot = [];\n state.facultySelected = indicator;\n },\n setDegreelvlFilterSelected(state, indicator) {\n state.degreelvlFilterSelected = indicator;\n },\n removeGradPayForPlot(state, countries) {\n state.fgpCountriesForPlot = state.fgpCountriesForPlot.filter(\n c => !countries.find(cc => cc === c),\n );\n },\n appendGradPayForPlot(state, countries) {\n countries.forEach((c) => {\n if (!state.fgpCountriesForPlot.some(v => c === v) && c !== undefined) {\n state.fgpCountriesForPlot.push(c);\n }\n });\n },\n fgpPlotSingleChart(state, val) {\n const title = {\n ...state.fgPaychartOptions.title,\n text: val.title,\n top: '1%',\n left: 'center',\n };\n const xAxis = {\n ...state.fgPaychartOptions.xAxis,\n data: val.xAxisData,\n axisLabel: {\n formatter: function gy(value, index) {\n return `${getYear(value)}`;\n },\n },\n axisPointer: {\n label: {\n formatter: function gyp(params) {\n return `${getYear(params.value)}`;\n },\n },\n },\n };\n const series = val.series;\n const legendSingle = {\n ...legend,\n data: val.legendData,\n formatter: function lg(name) {\n return `${getFacultyLblgbCty(name)}`;\n },\n bottom: '100px',\n };\n state.fgPaychartOptions = {\n ...state.fgPaychartOptions,\n title,\n xAxis,\n grid: singleGrid,\n yAxis: val.yAxis,\n legend: legendSingle,\n dataZoom,\n series,\n clear: true,\n };\n },\n },\n actions: {\n getFreshGradPayHistoryMap({\n state,\n commit,\n dispatch,\n }, countries) {\n commit('setChartLoading', true);\n let indicators = {};\n if (state.groupbyViewSelected === 'cty') {\n indicators = countries\n .filter(\n c =>\n !(`${state.facultySelected}${state.degreelvlFilterSelected}${c}` in\n state.freshGradPayHistoryMap),\n )\n .map(c => `${state.facultySelected}${state.degreelvlFilterSelected}${c}`);\n } else {\n indicators = countries\n .filter(\n c =>\n !(`${c}${state.degreelvlFilterSelected}${state.facultySelected}` in\n state.freshGradPayHistoryMap),\n )\n .map(c => `${c}${state.degreelvlFilterSelected}${state.facultySelected}`);\n }\n if (indicators.length > 0) {\n freshGradSalAxios.post('/aims/api/freshGradSal/graphdata', indicators)\n .then((res) => {\n if (res.data) {\n commit('setFilteredFreshGradData', res.data);\n commit('addFreshGradPayHistoryMap', res.data);\n dispatch('fgpPrepareSingleChart', countries);\n }\n });\n } else {\n dispatch('fgpPrepareSingleChart', countries);\n }\n },\n fgpPrepareSingleChart({\n state,\n rootState,\n commit,\n }, countries) {\n const userCountry = rootState.currentUserCountry;\n let xAxisData = [];\n let series = [];\n let yAxis;\n let indicators = {};\n if (state.groupbyViewSelected === 'cty') {\n indicators = countries\n .map(c => ({\n country: c,\n indicators: state.freshGradPayHistoryMap[\n `${state.facultySelected}${state.degreelvlFilterSelected}${c}`\n ] || [],\n }))\n .filter(c => c.indicators.length > 0);\n } else {\n indicators = countries\n .map(c => ({\n country: c,\n indicators: state.freshGradPayHistoryMap[\n `${c}${state.degreelvlFilterSelected}${state.facultySelected}`\n ] || [],\n }))\n .filter(c => c.indicators.length > 0);\n }\n if (indicators.length > 0) {\n if (indicators[0].indicators.length > 0) {\n let lbl = '';\n if ('avgSalary' in indicators[0].indicators[0]) {\n lbl = 'US$';\n }\n yAxis = buildYaxis(lbl);\n }\n }\n if (!yAxis) {\n yAxis = buildYaxis();\n }\n indicators.forEach((i) => {\n i.indicators.forEach((id) => {\n xAxisData.push(id.year);\n });\n });\n xAxisData = uniq(xAxisData)\n .sort();\n series = indicators.map(i =>\n buildSeries(\n state.fgpCountriesForPlot,\n i.country,\n i.indicators,\n ),\n );\n const legendData = series.map(s => s.name);\n commit('fgpPlotSingleChart', {\n title: `${getFacultyLblgbCty(state.facultySelected)} (${getDegreeLbl(state.degreelvlFilterSelected)})`,\n xAxisData,\n series,\n legendData,\n yAxis,\n });\n commit('setChartLoading', false);\n },\n postFeedback(_ctx, feedback) {\n return freshGradSalAxios.post('/aims/api/freshGradSal/feedback', feedback)\n .then((res) => {\n if (res.status !== 200) {\n throw Error('Fail to save Feedback');\n }\n return true;\n });\n },\n getfreshgradSalary({\n commit,\n }) {\n freshGradSalAxios.get('/aims/api/freshGradSal/faculties')\n .then((res) => {\n if (res.data) {\n commit('setFaculty', res.data);\n }\n });\n freshGradSalAxios.get('/aims/api/freshGradSal/countries')\n .then((res) => {\n if (res.data) {\n commit('setCountry', res.data);\n }\n });\n freshGradSalAxios.get('/aims/api/freshGradSal/degreelvl')\n .then((res) => {\n if (res.data) {\n commit('setDegreeLvl', res.data);\n }\n });\n freshGradSalAxios.post('/aims/api/freshGradSal/all')\n .then((res) => {\n if (res.data) {\n commit('setFreshGrads', res.data);\n }\n });\n freshGradSalAxios.post('/aims/api/freshGradSal/currencies')\n .then((res) => {\n if (res.data) {\n commit('setCurrencies', res.data);\n }\n });\n },\n exportfreshgradSalary({ commit }, data) {\n // freshGradSalAxios.post('/aims/api/freshGradSal/export/all', {\n // responseType: 'blob',\n // })\n // .then((res) => {\n // if (res.status === 200) {\n // download(res.data, 'MRC Graduate Start Rates Report.xlsx',\n // 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\n // }\n // });\n fetch('/aims/api/freshGradSal/export/all', {\n method: 'POST',\n mode: 'same-origin',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json',\n },\n redirect: 'follow',\n body: JSON.stringify(data),\n })\n .then(async (response) => {\n if (response.ok) {\n return response;\n }\n if (response.status === 401) {\n const src = window.location.pathname + window.location.search + window.location.hash;\n window.location.href = `/sign/in?source=${src}`;\n }\n const errMsg = await response.json();\n if (errMsg) {\n throw new Error(errMsg);\n }\n throw new Error(`${response.statusText} : ${response.status}`);\n })\n .then((resp) => {\n if (resp.ok) {\n return resp.blob();\n }\n return resp.data;\n })\n .then((blob) => {\n download(blob, 'MRC Graduate Start Rates Report.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\n })\n .catch(err => console.error(err));\n },\n },\n getters: {\n degreelvlFilter(state) {\n return state.degreelvlFilters;\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/freshGradSalModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport dataTool from 'echarts/extension/dataTool';\nimport sortBy from 'lodash/sortBy';\nimport uniqWith from 'lodash/uniqWith';\nimport uniq from 'lodash/uniq';\nimport maxBy from 'lodash/maxBy';\nimport minBy from 'lodash/minBy';\nimport ceil from 'lodash/ceil';\nimport differenceWith from 'lodash/differenceWith';\nimport some from 'lodash/some';\nimport groupBy from 'lodash/groupBy';\nimport statsLite from 'stats-lite';\nimport cacheAxios from '../../util/cacheAxios';\nimport abbreviateNumber from '../../util/abbreviateNumber';\n\nconst exepayAxios = axios.create();\nconst cache = new Map();\ncacheAxios(exepayAxios, cache);\n\nexepayAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\n function companyComparator(c1, c2) {\n if (c1.uniqCode === c2.uniqCode &&\n c1.longName === c2.longName) {\n return true;\n }\n return false;\n }\n function getCompanyCut(val) {\n const coticker = val.split(',');\n return coticker[1].concat('-', coticker[2]);\n }\n function getRevNaming(lbl) {\n return 'REV:US$'.concat(abbreviateNumber(lbl));\n }\n\n const indicatorsMapping = {\n salary: 'Salary',\n bonus: 'Bonus',\n stockaward: 'Stock Award',\n optionaward: 'Option Award',\n nonequity: 'Non Equity',\n pension: 'Pension',\n other: 'Others',\n total_cash: 'Total Cash',\n total_direct_compensation: 'Total Direct Compensation',\n total_renumeration: 'Total Renumeration',\n total_cost: 'Total Cost',\n };\n const indicatorsXMapping = {\n totalRevenueUsd: 'Revenue',\n netIncomeUsd: 'Net Income',\n };\n const grid = [\n {\n right: '12%',\n bottom: '11%',\n },\n ];\n const legend = {\n top: '5%',\n right: '3%',\n orient: 'vertical',\n align: 'right',\n };\n const label = {\n normal: {\n show: false,\n formatter: function slb1(params) {\n return `${getCompanyCut(params.seriesName)}`;\n },\n },\n emphasis: {\n show: true,\n formatter: function slb2(params) {\n return `${getCompanyCut(params.seriesName)}`;\n },\n },\n };\n const companyPlotMaxCount = 10;\n const companyPlotMinCountPerGrp = 3;\n\n function sortFloat(a, b) { return a - b; }\n\n function getGrouped(relevantIndicators) {\n return groupBy(relevantIndicators, 'graphUniqDataPoint');\n }\n function getSorted(grouped, trKey) {\n return Object.keys(grouped)\n .map(key => sortBy(grouped[key], trKey));\n }\n function getXdatas(sorted, trKey) {\n const xvalues = [];\n sorted.forEach(arr => arr.forEach((item) => {\n if (trKey === 'totalRevenueUsd') {\n if (!xvalues.includes(`${item.totalRevenueUsd}`)) {\n xvalues.push(`${item.totalRevenueUsd}`);\n }\n }\n if (trKey === 'netIncomeUsd') {\n if (!xvalues.includes(`${item.netIncomeUsd}`)) {\n xvalues.push(`${item.netIncomeUsd}`);\n }\n }\n }));\n return xvalues.sort(sortFloat);\n }\n function getSeries(state, grouped, sorted, trKey) {\n let series = [];\n series = Object.keys(grouped)\n .map((key, i) => {\n const array = {\n name: key,\n type: 'scatter',\n data: sorted[i].map((d) => {\n let value = '';\n value = d[state.yField] ? d[state.yField].toFixed(3) : '';\n let v;\n if (trKey === 'totalRevenueUsd') {\n v = [\n `${d.totalRevenueUsd}`,\n value,\n ];\n }\n if (trKey === 'netIncomeUsd') {\n v = [\n `${d.netIncomeUsd}`,\n value,\n ];\n }\n return v;\n })\n .filter(d => d[1] !== ''),\n symbolSize: 20,\n label,\n };\n return array;\n })\n .filter(item => item.data.length > 0);\n return series;\n }\nexport default {\n state: {\n loadingCompanies: false,\n loadingMainView: false,\n indicators: [],\n indicatorSelected: 'total_cost',\n indicatorXSelected: 'totalRevenueUsd',\n yField: 'valCompensation',\n companySelected: '',\n years: [],\n jobtitles: [],\n allsectors: [],\n relevantCompanies: [],\n relevantCompaniesIndicators: [],\n competitors: [],\n benefits: [],\n wadDisplayType: 'aggregate',\n chartEPOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n formatter: (params) => {\n let tooltipcustom = '';\n tooltipcustom = tooltipcustom.concat('', getRevNaming(params[0].data[0]), '
');\n for (let i = 0; i < params.length; i++) {\n tooltipcustom = tooltipcustom.concat('', getCompanyCut(params[i].seriesName), ' | US$ | ', abbreviateNumber(params[i].value[1]));\n tooltipcustom = tooltipcustom.concat(' |
');\n }\n return tooltipcustom;\n },\n },\n grid,\n toolbox: {\n feature: {\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: [{\n name: '',\n type: 'bar',\n barWidth: '25%',\n data: [],\n }],\n xAxis: {\n type: 'category',\n data: [],\n axisPointer: {\n type: 'shadow',\n },\n axisLabel: {\n type: 'value',\n formatter: (lbl) => {\n if (lbl >= 0) {\n return `US$${abbreviateNumber(lbl)}`;\n }\n return `(US$${abbreviateNumber(-lbl)})`;\n },\n },\n },\n yAxis: {\n splitLine: {\n show: false,\n },\n axisLabel: {\n type: 'value',\n formatter: (lbl) => {\n if (lbl >= 0) {\n return `US$${abbreviateNumber(lbl)}`;\n }\n return `(US$${abbreviateNumber(-lbl)})`;\n },\n },\n },\n },\n },\n mutations: {\n removeAllECompetitors(state) {\n state.competitors = [];\n },\n removeECompetitors(state, companies) {\n state.competitors = differenceWith(state.competitors, companies, companyComparator);\n },\n appendECompetitors(state, companies) {\n state.competitors = uniqWith(state.competitors.concat(companies), companyComparator);\n },\n\n setIndicators(state, indicators) {\n state.indicators = indicators;\n },\n setEIndicatorSelected(state, indicator) {\n state.indicatorSelected = indicator;\n },\n setEIndicatorXSelected(state, indicatorX) {\n state.indicatorXSelected = indicatorX;\n },\n\n setCompanySelected(state, company) {\n state.companySelected = company;\n },\n\n setYears(state, years) {\n state.years = years;\n },\n setJobTitles(state, jobtitles) {\n state.jobtitles = jobtitles;\n },\n setAllSectors(state, allsectors) {\n state.allsectors = allsectors;\n },\n\n setCompaniesLoading(state, value) {\n state.loadingCompanies = value;\n },\n setLoadingMainView(state, value) {\n state.loadingMainView = value;\n },\n\n setRelevantCompanies(state, companies) {\n state.relevantCompanies = companies;\n },\n setBenefits(state, benefits) {\n state.benefits = benefits;\n },\n\n setRelevantCompaniesIndicators(state, coIndicators) {\n state.relevantCompaniesIndicators = coIndicators;\n },\n setWhatDisplayType(state, dType) {\n state.wadDisplayType = dType;\n },\n unplotBox(state) {\n },\n unplotCompany(state) {\n },\n plotCompetitorsEPChart(state, {\n xAxisData,\n mSeries,\n }) {\n const title = {\n ...state.chartEPOptions.title,\n };\n title.text = indicatorsMapping[state.indicatorSelected].concat(' by ', indicatorsXMapping[state.indicatorXSelected]);\n const series = [state.chartEPOptions.series[0], ...mSeries];\n const yAxis = {\n ...state.chartEPOptions.yAxis,\n };\n let data = [...xAxisData];\n // data = [...state.chartEPOptions.xAxis.data, ...xAxisData];\n data = uniq(data);\n\n const xAxis = {\n ...state.chartEPOptions.xAxis,\n data,\n };\n let newLegend = {\n ...legend,\n data: series.map(s => s.name).filter(n => n),\n formatter: function lg(name) {\n return `${getCompanyCut(name)}`;\n },\n };\n if (data.length > companyPlotMaxCount) {\n newLegend = {\n show: false,\n };\n }\n state.chartEPOptions = {\n ...state.chartEPOptions,\n clear: true,\n title,\n xAxis,\n yAxis,\n series,\n };\n },\n },\n actions: {\n initExecutivePayData({\n commit,\n }) {\n exepayAxios.get('/aims/api/executivepay/years')\n .then((res) => {\n if (res.status === 200) {\n res.data.sort();\n commit('setYears', res.data);\n }\n });\n exepayAxios.get('/aims/api/executivepay/jobs')\n .then((res) => {\n if (res.status === 200) {\n res.data.sort();\n commit('setJobTitles', res.data);\n }\n });\n exepayAxios.get('/aims/api/executivepay/sectors')\n .then((res) => {\n if (res.status === 200) {\n res.data.sort();\n commit('setAllSectors', res.data);\n }\n });\n },\n getCompaniesByYearJob({\n state,\n commit,\n }, {\n year,\n jobtitle,\n }) {\n commit('setCompaniesLoading', true);\n const query = {\n year,\n jobtitle,\n };\n exepayAxios.post('/aims/api/executivepay/companiesByYearJob', query, {\n cache: true,\n cacheKey: query.year.toString().concat(query.jobtitle),\n })\n .then((res) => {\n if (res.status === 200) {\n commit('setRelevantCompanies', res.data);\n const querybt = {\n uniqCode: [],\n };\n const companies = res.data;\n for (let i = 0, len = companies.length; i < len; i++) {\n querybt.uniqCode.push(companies[i].uniqCode);\n }\n exepayAxios.post('/aims/api/executivepay/indicatorsByUniqCode', querybt, {\n cache: true,\n cacheKey: 'bentype'.concat(querybt),\n })\n .then((resbt) => {\n if (resbt.status === 200) {\n commit('setIndicators', resbt.data);\n }\n });\n\n commit('setCompaniesLoading', false);\n if (res.data && res.data.length > 0) {\n return res.data.map(c => c.longName);\n }\n return null;\n }\n\n return null;\n });\n },\n getBenefitsByCo({\n state,\n commit,\n }, {\n selectcos,\n selectpcts,\n }) {\n commit('setLoadingMainView', true);\n const query = {\n uniqCode: [],\n selectPCT: selectpcts,\n };\n for (let i = 0, len = selectcos.length; i < len; i++) {\n query.uniqCode.push(selectcos[i].uniqCode);\n }\n exepayAxios.post('/aims/api/executivepay/benefitsByCompanies', query, {\n cache: false,\n cacheKey: 'benco'.concat(query),\n })\n .then((res) => {\n if (res.status === 200) {\n commit('setLoadingMainView', false);\n commit('setBenefits', res.data);\n }\n });\n },\n getExecutivesPayChart({\n state,\n commit,\n }, {\n selectcos,\n }) {\n // commit('setLoadingMainView', true);\n const query = {\n uniqCode: [],\n };\n for (let i = 0, len = selectcos.length; i < len; i++) {\n query.uniqCode.push(selectcos[i].uniqCode);\n }\n exepayAxios.post('/aims/api/executivepay/companiesExecutivesPay', query, {\n cache: false,\n cacheKey: 'exepay'.concat(query),\n })\n .then((res) => {\n if (res.status === 200) {\n // commit('setLoadingMainView', false);\n commit('setRelevantCompaniesIndicators', res.data);\n if (state.wadDisplayType === 'graph') {\n const trKey = state.indicatorXSelected;\n let relevantIndicators = res.data.filter(\n item => item.benefitType === state.indicatorSelected &&\n item.totalRevenueUsd !== undefined);\n if (trKey === 'netIncomeUsd') {\n relevantIndicators = res.data.filter(\n item => item.benefitType === state.indicatorSelected &&\n item.netIncomeUsd !== undefined);\n }\n const sortedByRevenue = sortBy(relevantIndicators, trKey);\n const grouped = getGrouped(sortedByRevenue);\n const sorted = getSorted(grouped, trKey);\n const xDataValues = getXdatas(sorted, trKey);\n const series = getSeries(state, grouped, sorted, trKey);\n commit('plotCompetitorsEPChart', {\n xAxisData: xDataValues,\n mSeries: series,\n });\n }\n } else {\n commit('setRelevantCompaniesIndicators', []);\n }\n });\n },\n preparePlotExecutivePayChart({\n dispatch,\n commit,\n state,\n }, companySelections) {\n const trKey = state.indicatorXSelected;\n let relevantIndicators = companySelections.filter(\n item => item.benefitType === state.indicatorSelected && item.totalRevenueUsd !== undefined);\n if (trKey === 'netIncomeUsd') {\n relevantIndicators = companySelections.filter(\n item => item.benefitType === state.indicatorSelected && item.netIncomeUsd !== undefined);\n }\n const sortedByRevenue = sortBy(relevantIndicators, trKey);\n const grouped = getGrouped(sortedByRevenue);\n const sorted = getSorted(grouped, trKey);\n const xDataValues = getXdatas(sorted, trKey);\n const series = getSeries(state, grouped, sorted, trKey);\n // let sorted;\n // let xDataValues;\n // let series;\n // if (sortedByRevenue.length <= companyPlotMaxCount) {\n // sorted = getSorted(grouped);\n // xDataValues = getXdatas(sorted);\n // series = getSeries(state, grouped, sorted);\n // } else {\n // if (sortedByRevenue.length < (companyPlotMinCountPerGrp * companyPlotMaxCount)) {\n // // 1 - 3 group with max 10 per group\n // const maxgrp = ceil(sortedByRevenue.length / companyPlotMaxCount);\n // for (let i = 0; i < maxgrp; i++) { // eslint-disable-line\n // }\n // } else {\n // // 10 Group with min e.g. 3 per group\n // for (let i = 0; i < companyPlotMaxCount; i++) { // eslint-disable-line\n // }\n // }\n // sorted = getSorted(grouped);\n // xDataValues = getXdatas(sorted);\n // series = getSeries(state, grouped, sorted);\n // }\n commit('plotCompetitorsEPChart', {\n xAxisData: xDataValues,\n mSeries: series,\n });\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/executivePayModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport cacheAxios from '../../util/cacheAxios';\nimport MessagingService from '../../centrifugo/chat';\n\nconst adminAxios = axios.create();\nconst cache = new Map();\ncacheAxios(adminAxios, cache);\n\nadminAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nexport default {\n state: {\n moduleUsages: [],\n excludeMrc: false,\n identicalCompanies: {},\n },\n mutations: {\n addIdenticalCompanies(state, data) {\n const temp = {\n ...state.identicalCompanies,\n ...data,\n };\n state.identicalCompanies = temp;\n },\n setExcludeMrc(state, v) {\n state.excludeMrc = v;\n },\n setModuleUsage(state, usages) {\n state.moduleUsages = usages;\n },\n },\n actions: {\n saveFinancialIndicators({ state }, { company, dataset }) {\n return adminAxios.post('/aims/api/admin/finance/saveIndicators', {\n companies: state.identicalCompanies[`${company.longName}-${company.exchange}-${company.stockSymbol}`], dataset });\n },\n queryCompanies(_ctx, companies) {\n return adminAxios.post('/aims/api/admin/finance/indicators', companies);\n },\n subscribeToIdenticalCompanies({ rootState, commit }, handleIdenticalCompanies) {\n if (MessagingService.isSubscribed(`identical-company#${rootState.currentUser.userid}`)) {\n return;\n }\n MessagingService.addSubscription(`identical-company#${rootState.currentUser.userid}`, {\n message(dataset) {\n commit('addIdenticalCompanies', dataset.data);\n },\n error(errContext) {\n console.log(`ERROR: ${JSON.stringify(errContext)}`); // eslint-disable-line\n },\n });\n },\n queryFinanceCompanies(_ctx, search) {\n return adminAxios.get(`/aims/api/admin/finance/${search}`);\n },\n postLegislationFiles(ctx, formData) {\n return adminAxios.post('/aims/api/admin/website/legislation', formData);\n },\n postEbiFiles(ctx, formData) {\n return adminAxios.post('/aims/api/admin/website/ebi', formData);\n },\n postEconGuideFiles(ctx, formData) {\n return adminAxios.post('/aims/api/admin/website/econ_guide', formData);\n },\n queryModuleUsage({ commit }, days) {\n adminAxios.get(`/aims/api/admin/moduleUsage/${days}`)\n .then((res) => {\n if (res.data) {\n commit('setModuleUsage', res.data);\n }\n });\n },\n querySalaries(ctx, year) {\n return adminAxios.get(`/aims/api/admin/salaryIncreases/${year}`);\n },\n queryBonus(ctx, year) {\n return adminAxios.get(`/aims/api/admin/bonuses/${year}`);\n },\n queryAttritions(ctx, year) {\n return adminAxios.get(`/aims/api/admin/attritions/${year}`);\n },\n upsertSalary(ctx, { year, country, gicsCode, increment }) {\n return adminAxios.put(`/aims/api/admin/salaryIncreases/${year}/${country}/${gicsCode || ''}`, {\n year, country, gicsCode, increment,\n });\n },\n upsertBonus(ctx, { year, country, bonusType, gicsCode, p25, median, p75, average, count }) {\n return adminAxios.put(\n `/aims/api/admin/bonuses/${year}/${country}/${bonusType}/${gicsCode || ''}`, {\n year, country, bonusType, gicsCode, p25, median, p75, average, count,\n });\n },\n upsertAttrition(ctx, { year, countryCode, gicsCode, p25, p50, p75, noOfCompanies }) {\n return adminAxios.put(`/aims/api/admin/attritions/${year}/${countryCode}/${gicsCode || ''}`, {\n year, countryCode, gicsCode, p25, p50, p75, noOfCompanies,\n });\n },\n deleteSalary(ctx, { year, country, gicsCode }) {\n return adminAxios.delete(`/aims/api/admin/salaryIncreases/${year}/${country}/${gicsCode || ''}`);\n },\n deleteAttrition(ctx, { year, countryCode, gicsCode }) {\n return adminAxios.delete(`/aims/api/admin/attritions/${year}/${countryCode}/${gicsCode || ''}`);\n },\n deleteBonus(ctx, { year, country, bonusType, gicsCode }) {\n return adminAxios.delete(`/aims/api/admin/bonuses/${year}/${country}/${bonusType}/${gicsCode || ''}`);\n },\n },\n getters: {\n moduleUsagesFiltered(state) {\n if (!state.excludeMrc) return state.moduleUsages;\n return state.moduleUsages\n .filter(m => !m.userID.endsWith('mrc-asia.com')\n && !m.userID.endsWith('live.com')\n && !m.userID.endsWith('gmail.com'));\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/adminModule.js","/* eslint-disable indent, no-param-reassign,no-plusplus, no-unused-vars */\nimport axios from 'axios';\nimport groupBy from 'lodash/groupBy';\nimport sortBy from 'lodash/sortBy';\nimport uniq from 'lodash/uniq';\nimport cacheAxios from '../../util/cacheAxios';\n\nconst genderAxios = axios.create();\nconst cache = new Map();\ncacheAxios(genderAxios, cache);\n\ngenderAxios.interceptors.response.use(response => response,\n (error) => {\n if (error && error.response && error.response.status === 401) {\n setTimeout(() => {\n window.location.href = '/sign/in?source=/aims';\n }, 500);\n }\n });\n\nconst legendRef = {\n bottom: '10%',\n right: '1%',\n orient: 'vertical',\n align: 'right',\n};\n\nexport default {\n state: {\n genderMetas: [],\n genderCountriesInfo: {},\n distinctCountries: [],\n chartLoading: false,\n genderChartOptions: {\n title: {\n left: 'center',\n top: '1%',\n },\n backgroundColor: '#fff',\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n crossStyle: {\n color: '#999',\n },\n },\n },\n grid: {\n left: '3%',\n right: '12%',\n bottom: '35px',\n containLabel: true,\n },\n toolbox: {\n feature: {\n dataView: {\n readOnly: true,\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh'],\n },\n saveAsImage: {\n show: true,\n title: 'save',\n },\n },\n },\n series: [],\n xAxis: {\n type: 'category',\n data: [],\n splitLine: {\n show: false,\n },\n axisPointer: {\n type: 'shadow',\n },\n },\n yAxis: {\n type: 'value',\n splitLine: {\n show: false,\n },\n },\n },\n },\n mutations: {\n addGenderCountriesInfo(state, infos) {\n const g = groupBy(infos, info => `${info.seriesCode}|${info.countryCode}`);\n Object.keys(g).forEach((key) => {\n g[key] = sortBy(g[key], 'year');\n });\n state.genderCountriesInfo = {\n ...state.genderCountriesInfo,\n ...g,\n };\n },\n setDistinctCountries(state, countries) {\n state.distinctCountries = countries;\n },\n setGenderMetas(state, metas) {\n state.genderMetas = metas;\n },\n plotGenderChart(state, { req, countryInfos }) {\n const meta = state.genderMetas.find(m => m.code === req.code);\n const title = {\n ...state.genderChartOptions.title,\n text: meta ? meta.indicatorName : '',\n top: '1%',\n left: 'center',\n };\n const countries = req.countries.filter(c => state.genderCountriesInfo[`${req.code}|${c}`]);\n const legend = {\n ...legendRef,\n data: countries.map(code => countryInfos[code]),\n };\n let xAxisData = [];\n const chartsToPlot = countries.map((c) => {\n const data = state.genderCountriesInfo[`${req.code}|${c}`].map(o => ([o.year.toString(), o.value]));\n return {\n data,\n label: {\n normal: {\n show: false,\n formatter: '{a}',\n },\n emphasis: {\n show: true,\n formatter: '{a}',\n },\n },\n name: countryInfos[c],\n type: 'line',\n };\n });\n chartsToPlot.forEach((c) => {\n c.data.forEach(d => (xAxisData.push(d[0].toString())));\n });\n xAxisData = uniq(xAxisData).sort();\n const xAxis = {\n ...state.genderChartOptions.xAxis,\n data: xAxisData,\n };\n state.genderChartOptions = {\n ...state.genderChartOptions,\n title,\n xAxis,\n // yAxis,\n legend,\n series: chartsToPlot,\n clear: true,\n };\n state.chartLoading = false;\n },\n },\n actions: {\n retrieveGenderInfoDistinctCountries({ commit }) {\n genderAxios.get('/aims/api/gender/countries')\n .then((res) => {\n if (res.status === 200) {\n commit('setDistinctCountries', res.data);\n return;\n }\n throw new Error(res.statusText);\n });\n },\n retreiveGenderCountriesInfo({ commit, state, getters }, req) {\n const q = {\n ...req,\n countries: req.countries.filter(c => !state.genderCountriesInfo[`${req.code}|${c}`]),\n };\n if (q.countries.length > 0) {\n genderAxios.post('/aims/api/gender/infos', q)\n .then((res) => {\n if (res.status === 200) {\n // TODO populate genderChartOptions\n commit('addGenderCountriesInfo', res.data);\n return;\n }\n throw new Error(res.statusText);\n })\n .then(() => {\n commit('plotGenderChart', { req, countryInfos: getters.countryInfos });\n });\n } else {\n commit('plotGenderChart', { req, countryInfos: getters.countryInfos });\n }\n },\n retrieveGenderMetas({ commit }) {\n genderAxios.get('/aims/api/gender/metas')\n .then((res) => {\n if (res.status === 200) {\n commit('setGenderMetas', res.data);\n }\n });\n },\n },\n getters: {\n genderRegionsGroup(state, getters, rootState) {\n const genderCountries = state.distinctCountries;\n const regionGroup = [...rootState.econPredictor.regionsGroup];\n return regionGroup.map((region) => {\n const countryInfos = region.countryInfos\n .filter(c => genderCountries.includes(c.countryCode));\n return {\n region: region.region,\n countryInfos,\n };\n });\n },\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/modules/genderModule.js","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport mutations from './mutations';\nimport actions from './actions';\nimport newsModule from './modules/newsModule';\nimport hrNewsModule from './modules/hrNewsModule';\nimport disruptorsModule from './modules/disruptorsModule';\nimport financeModule from './modules/financeModule';\nimport companyListModule from './modules/companyListModule';\nimport benchmarkModule from './modules/benchmarkModule';\nimport econPredictorModule from './modules/econPredictorModule';\nimport companyIndexesModule from './modules/companyIndexesModule';\nimport institutionModule from './modules/institutionModule';\nimport orgChartModule from './modules/orgChartModule';\nimport jobModule from './modules/jobModule';\nimport unigradsModule from './modules/unigradsModule';\nimport minWageModule from './modules/minWageModule';\nimport hrPredictModule from './modules/hrPredictModule';\nimport relocationModule from './modules/relocationModule';\nimport newsTaggerModule from './modules/newsTaggerModule';\nimport zhaopinModule from './modules/zhaopinModule';\nimport legislationModule from './modules/legislationModule';\nimport livingCostModule from './modules/livingCostModule';\nimport freshGradSalModule from './modules/freshGradSalModule';\nimport executivePayModule from './modules/executivePayModule';\nimport adminModule from './modules/adminModule';\nimport genderModule from './modules/genderModule';\n\nVue.use(Vuex);\n\nconst store = new Vuex.Store({\n strict: process.env.NODE_ENV !== 'production',\n // strict: false,\n state: {\n currentUser: {\n company: '',\n userid: '',\n username: '',\n roles: [],\n },\n cent: { },\n userChatLogPulled: {},\n chatMode: 'list',\n chatUser: {},\n chatStatus: true,\n chatActive: false,\n currentUserCountry: {},\n msges: {},\n chatChoices: {},\n majorCurrencies: ['USD', 'EUR', 'GBP',\n 'CNY', 'HKD', 'MOP', 'KRW', 'TWD', 'JPY',\n 'SGD', 'MYR', 'IDR', 'THB', 'PHP', 'VND', 'MMK', 'KHR',\n 'BDT', 'INR', 'PKR', 'LKR', 'AUD', 'NZD', 'CHF'],\n currencyExchangeRates: [],\n contacts: {},\n onlineContacts: [],\n },\n mutations,\n actions,\n modules: {\n news: newsModule,\n hrNews: hrNewsModule,\n disruptors: disruptorsModule,\n finance: financeModule,\n companyList: companyListModule,\n benchmark: benchmarkModule,\n econPredictor: econPredictorModule,\n companyIndexes: companyIndexesModule,\n institution: institutionModule,\n orgChart: orgChartModule,\n job: jobModule,\n unigrads: unigradsModule,\n minWage: minWageModule,\n hrPredict: hrPredictModule,\n relocation: relocationModule,\n newsTagger: newsTaggerModule,\n zhaopin: zhaopinModule,\n legislation: legislationModule,\n livingCost: livingCostModule,\n freshgradsal: freshGradSalModule,\n executivepay: executivePayModule,\n admin: adminModule,\n gender: genderModule,\n },\n});\nexport default store;\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/state.js","import Vue from 'vue';\nimport axios from 'axios';\nimport App from './App';\nimport router from './router';\nimport store from './store/state';\n\nconst timings = new Map();\nfunction logModuleUsage(moduleName) {\n const startTime = timings.get(moduleName);\n const now = new Date();\n const usageTime = (now - startTime) / 1000;\n if (usageTime > 5) {\n axios.post('/aims/api/logModuleUsage', {\n module: moduleName,\n timeSpent: (now - startTime) / 1000,\n });\n }\n}\nrouter.beforeEach((to, from, next) => {\n const now = new Date();\n timings.set(to.name, now);\n next();\n});\nrouter.afterEach((to, from) => {\n if (timings.has(from.name)) {\n logModuleUsage(from.name);\n }\n});\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n render: h => h(App),\n store,\n mounted() {\n window.onbeforeunload = () => {\n if (timings.has(this.$router.currentRoute.name)) {\n logModuleUsage(this.$router.currentRoute.name);\n }\n };\n },\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0b52a228\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!sass-loader?sourceMap!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0b52a228\\\",\\\"hasScoped\\\":false}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 477\n// module chunks = 34","export default function permCheck(user, permissions) {\n if (!permissions) return true;\n for (let i = 0; i < user.roles.length; i++) { // eslint-disable-line no-plusplus\n const role = user.roles[i];\n for (let j = 0; j < role.permissions.length; j++) { // eslint-disable-line no-plusplus\n const perm = role.permissions[j];\n\n if (permissions.includes(perm.name)) {\n return true;\n }\n }\n }\n return false;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/permCheck.js","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// App.vue?d0873378","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2235c082\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":true}!sass-loader?sourceMap!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Chatbox.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Chatbox.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2235c082\\\",\\\"hasScoped\\\":true}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Chatbox.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-2235c082\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Chatbox.vue\n// module id = 527\n// module chunks = 34","\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// Chatbox.vue?70e874c6","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4d22733c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!sass-loader?sourceMap!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Chat.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Chat.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d22733c\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Chat.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Chat.vue\n// module id = 604\n// module chunks = 34","\n \n \n
\n
\n
\n me\n
\n
\n
\n
{{getDateString(msg.timestamp)}}\n \n \n
\n
\n {{chatUser.userName}}\n
\n
\n
\n
{{getDateString(msg.timestamp)}}\n
\n
\n
0\">\n \n
\n
\n
\n
\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// Chat.vue?2f57d69e","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chat_box\"\n }, [_c('div', {\n staticClass: \"chat-header\"\n }, [_c('i', {\n staticClass: \"el-icon-close pull-right close\",\n staticStyle: {\n \"margin\": \"5px\"\n },\n on: {\n \"click\": function($event) {\n return _vm.setChatActive(false)\n }\n }\n }), _vm._v(\" \"), _c('i', {\n staticClass: \"fa fa-arrow-left fa-lg fa-fw back-icon\",\n attrs: {\n \"aria-hidden\": \"true\"\n },\n on: {\n \"click\": function($event) {\n return _vm.$emit('back')\n }\n }\n }), _vm._v(\" \"), _c('i', {\n staticClass: \"fa fa-user-circle-o fa-2x fa-fw left-icon\",\n style: (_vm.contactColor),\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }), _c('span', {\n style: (_vm.contactTextColor)\n }, [_vm._v(_vm._s(_vm.chatUser.userName))]), _vm._v(\" \"), _c('br'), _c('span', {\n staticClass: \"company-text\",\n style: (_vm.contactTextColor)\n }, [_vm._v(_vm._s(_vm.chatUser.company || '-'))])]), _vm._v(\" \"), _c('div', {\n ref: \"msgWrapper\",\n staticClass: \"chat_message_wrapper\"\n }, [_vm._l((_vm.msges), function(msg, i) {\n return _c('div', {\n key: msg.timestamp + msg.fromUserId + msg.toUserId,\n staticClass: \"message_wrap\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.fromMe(msg) && (i === 0 || _vm.msges[i - 1].fromUserId !== msg.fromUserId)),\n expression: \"fromMe(msg) && (i === 0 || msges[i-1].fromUserId !== msg.fromUserId)\"\n }],\n staticClass: \"name me\"\n }, [_vm._v(\"\\n me\\n \")]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.fromMe(msg)),\n expression: \"fromMe(msg)\"\n }],\n staticClass: \"chat_message me\"\n }, [_c('div', {\n domProps: {\n \"innerHTML\": _vm._s(msg.msg)\n }\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"time\"\n }, [_vm._v(_vm._s(_vm.getDateString(msg.timestamp)) + \"\\n \"), (msg.readTimestamp && msg.readTimestamp !== '') ? _c('i', {\n staticClass: \"fa fa-check read-tick\",\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }) : _vm._e()])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.fromMe(msg) && (i === 0 || _vm.msges[i - 1].toUserId !== msg.toUserId)),\n expression: \"!fromMe(msg) && (i === 0 || msges[i-1].toUserId !== msg.toUserId)\"\n }],\n staticClass: \"name other\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.chatUser.userName) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.fromMe(msg)),\n expression: \"!fromMe(msg)\"\n }],\n staticClass: \"chat_message other\"\n }, [_c('div', {\n staticClass: \"centralise\",\n domProps: {\n \"innerHTML\": _vm._s(msg.msg)\n }\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"time\"\n }, [_vm._v(_vm._s(_vm.getDateString(msg.timestamp)))])])])\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.choices.length > 0),\n expression: \"choices.length > 0\"\n }]\n }, _vm._l((_vm.choices), function(c) {\n return _c('button', {\n staticClass: \"choices\",\n attrs: {\n \"type\": \"button\",\n \"name\": \"button\"\n },\n on: {\n \"click\": function($event) {\n return _vm.selectChoice(c)\n }\n }\n }, [_vm._v(_vm._s(c))])\n }), 0)], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"chat_submit_box\"\n }, [_c('div', {\n staticClass: \"uk-input-group\"\n }, [_c('div', {\n staticClass: \"gurdeep-chat-box\"\n }, [_c('input', {\n ref: \"textInput\",\n staticClass: \"md-input\",\n attrs: {\n \"type\": \"text\",\n \"placeholder\": \"Type a message\",\n \"id\": \"submit_message\",\n \"name\": \"submit_message\",\n \"autofocus\": \"\"\n },\n domProps: {\n \"value\": _vm.tmsg\n },\n on: {\n \"keyup\": function($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) { return null; }\n return _vm.sendNewMsg($event.target.value)\n }\n }\n }), _vm._v(\" \"), _c('span', {\n staticStyle: {\n \"padding-left\": \"8px\",\n \"cursor\": \"pointer\"\n }\n }, [_c('i', {\n staticClass: \"fa\",\n class: _vm.speechClass,\n attrs: {\n \"aria-hidden\": \"true\"\n },\n on: {\n \"click\": _vm.recordVoice\n }\n })])])])])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4d22733c\",\"hasScoped\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Chat.vue\n// module id = 607\n// module chunks = 34","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chat_popup\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.chatMode === 'list'),\n expression: \"chatMode === 'list'\"\n }],\n staticClass: \"contact-list\"\n }, [_c('div', {\n staticClass: \"contact-header\"\n }, [_vm._v(\"\\n Contacts\\n \"), _c('i', {\n staticClass: \"el-icon-close pull-right close\",\n staticStyle: {\n \"margin-left\": \"15px\"\n },\n on: {\n \"click\": function($event) {\n return _vm.setChatActive(false)\n }\n }\n }), _vm._v(\" \"), (!_vm.isMrcConsultantOrBot) ? _c('ElSwitch', {\n staticClass: \"pull-right\",\n attrs: {\n \"value\": _vm.chatStatus,\n \"active-text\": \"On\",\n \"inactive-text\": \"Invisible\",\n \"active-color\": \"#13ce66\"\n },\n on: {\n \"change\": _vm.chatChanged\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c('ElInput', {\n attrs: {\n \"placeholder\": \"Search...\",\n \"size\": \"mini\"\n },\n model: {\n value: (_vm.search),\n callback: function($$v) {\n _vm.search = $$v\n },\n expression: \"search\"\n }\n }), _vm._v(\" \"), (!_vm.isMrcBot) ? _c('div', {\n staticClass: \"list-group-item bot\",\n on: {\n \"click\": function($event) {\n return _vm.chatWith(_vm.bot)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-user-circle-o fa-2x fa-fw left-icon\",\n staticStyle: {\n \"color\": \"rgb(66, 183, 42)\"\n },\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }), _vm._v(_vm._s(_vm.bot.userName) + \"\\n \"), _c('br'), _c('span', {\n staticClass: \"company-text\"\n }, [_vm._v(_vm._s(_vm.bot.company))]), _vm._v(\" \"), _c('i', {\n staticClass: \"fa float-vertical-align\",\n class: _vm.chatIcon(_vm.bot.userId),\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })]) : _vm._e(), _vm._v(\" \"), (!_vm.isMrcConsultant) ? _c('div', {\n staticClass: \"list-group-item consultant\",\n on: {\n \"click\": function($event) {\n return _vm.chatWith(_vm.consultant)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-user-circle-o fa-2x fa-fw left-icon\",\n staticStyle: {\n \"color\": \"rgb(66, 183, 42)\"\n },\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }), _vm._v(_vm._s(_vm.consultant.userName) + \"\\n \"), _c('br'), _c('span', {\n staticClass: \"company-text\"\n }, [_vm._v(_vm._s(_vm.consultant.company))]), _vm._v(\" \"), _c('i', {\n staticClass: \"fa float-vertical-align\",\n class: _vm.chatIcon(_vm.consultant.userId),\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })]) : _vm._e(), _vm._v(\" \"), (_vm.isMrcConsultantOrBot || _vm.chatStatus) ? [_vm._l((_vm.onlineSortedContacts), function(c) {\n return _c('div', {\n key: c.userId,\n staticClass: \"list-group-item\",\n on: {\n \"click\": function($event) {\n return _vm.chatWith(c)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-user-circle-o fa-2x fa-fw left-icon\",\n staticStyle: {\n \"color\": \"rgb(66, 183, 42)\"\n },\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }), _vm._v(_vm._s(c.userName) + \" \"), _c('br'), _c('span', {\n staticClass: \"company-text\"\n }, [_vm._v(_vm._s(c.company || '-'))]), _vm._v(\" \"), _c('i', {\n staticClass: \"fa float-vertical-align\",\n class: _vm.chatIcon(c.userId),\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })])\n }), _vm._v(\" \"), _vm._l((_vm.offlineContacts), function(c) {\n return _c('div', {\n key: c.userId,\n staticClass: \"list-group-item offline\",\n on: {\n \"click\": function($event) {\n return _vm.chatWith(c)\n }\n }\n }, [_c('i', {\n staticClass: \"fa fa-user-circle-o fa-2x fa-fw left-icon\",\n staticStyle: {\n \"color\": \"#c4c6c9\"\n },\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }), _vm._v(_vm._s(c.userName) + \" \"), _c('br'), _c('span', {\n staticClass: \"company-text offline\"\n }, [_vm._v(_vm._s(c.company || '-'))]), _vm._v(\" \"), _c('i', {\n staticClass: \"fa float-vertical-align\",\n class: _vm.chatIcon(c.userId),\n attrs: {\n \"aria-hidden\": \"true\"\n }\n })])\n })] : _vm._e()], 2), _vm._v(\" \"), _c('Chat', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.chatMode === 'chat'),\n expression: \"chatMode === 'chat'\"\n }],\n ref: \"chat\",\n attrs: {\n \"contactColor\": _vm.contactColor,\n \"contactTextColor\": _vm.contactTextColor,\n \"msges\": _vm.chatUserMsges\n },\n on: {\n \"back\": _vm.backToChatList\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2235c082\",\"hasScoped\":true}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Chatbox.vue\n// module id = 608\n// module chunks = 34","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('ElContainer', {\n attrs: {\n \"id\": \"app\",\n \"direction\": \"vertical\"\n }\n }, [_c('ElHeader', {\n staticClass: \"header\",\n attrs: {\n \"height\": \"51.2px\"\n }\n }, [_c('div', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_c('i', {\n staticClass: \"fa fa-bars fa-lg menu\",\n staticStyle: {\n \"cursor\": \"pointer\"\n },\n on: {\n \"click\": function($event) {\n return _vm.showHideMenu()\n }\n }\n })]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_c('a', {\n attrs: {\n \"href\": \"https://www.mrc-asia.com/home\"\n }\n }, [_c('img', {\n staticClass: \"logo\",\n attrs: {\n \"src\": require(\"./assets/mrclogo.svg\"),\n \"alt\": \"MRC Asia\"\n }\n })])]), _vm._v(\" \"), _c('ul', {\n staticClass: \"nav\"\n }, [_c('li', {\n staticClass: \"nav-item header-item\"\n }, [_c('div', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, [_c('ul', {\n staticStyle: {\n \"margin\": \"auto\"\n }\n }, [_c('li', {\n staticClass: \"nav-item-comp\"\n }, [_c('ElButton', {\n staticClass: \"btncomp\",\n attrs: {\n \"type\": \"primary\",\n \"plain\": \"\",\n \"round\": \"\"\n },\n on: {\n \"click\": function($event) {\n return _vm.showHideMoreServices()\n }\n }\n }, [_c('ElButton', {\n attrs: {\n \"type\": \"danger\",\n \"icon\": \"el-icon-menu\",\n \"circle\": \"\"\n }\n }), _vm._v(\"\\n More Services \"), _c('i', {\n staticClass: \"el-icon-caret-bottom\"\n })], 1)], 1)])])]), _vm._v(\" \"), _c('li', {\n staticClass: \"nav-item header-item\"\n }, [_c('Dropdown', {\n staticClass: \"dropdown\",\n attrs: {\n \"trigger\": \"click\"\n },\n on: {\n \"command\": _vm.handleCommand\n }\n }, [_c('span', [_vm._v(\"\\n \" + _vm._s(_vm.currentUser.username) + \"\\n \"), _c('i', {\n staticClass: \"el-icon-caret-bottom el-icon--right\"\n })]), _vm._v(\" \"), _c('DropdownMenu', {\n attrs: {\n \"slot\": \"dropdown\"\n },\n slot: \"dropdown\"\n }, [(_vm.isNewsTagger) ? _c('DropdownItem', {\n attrs: {\n \"command\": \"newtagger\"\n }\n }, [_vm._v(\"News Tagger\")]) : _vm._e(), _vm._v(\" \"), (_vm.isMdsUser) ? _c('DropdownItem', {\n attrs: {\n \"command\": \"dataentry\"\n }\n }, [_vm._v(\"Edit Company Details\")]) : _vm._e(), _vm._v(\" \"), _c('DropdownItem', {\n attrs: {\n \"command\": \"cp\"\n }\n }, [_vm._v(\"Change Password\")]), _vm._v(\" \"), _c('DropdownItem', {\n attrs: {\n \"command\": \"logout\"\n }\n }, [_vm._v(\"Log out\")])], 1)], 1)], 1), _vm._v(\" \"), _c('li', {\n staticClass: \"nav-item header-item hidden-md-and-down\"\n }, [_c('a', [_c('p')])]), _vm._v(\" \"), (_vm.isMdsUser) ? _c('li', {\n staticClass: \"nav-item header-item hidden-xs-only\"\n }, [_c('i', {\n staticClass: \"fa fa-lg\",\n class: _vm.classObject,\n attrs: {\n \"aria-hidden\": \"true\"\n },\n on: {\n \"click\": function($event) {\n return _vm.setChatActive(!_vm.chatActive)\n }\n }\n })]) : _vm._e()])]), _vm._v(\" \"), _c('ElContainer', [_c('transition', {\n attrs: {\n \"name\": \"el-fade-in\"\n }\n }, [_c('ElAside', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showMoreServices),\n expression: \"showMoreServices\"\n }],\n staticClass: \"left-menu\",\n staticStyle: {\n \"background-color\": \"rgba(24,32,40,0.9)\",\n \"padding\": \"20px 0 0 10px\"\n },\n attrs: {\n \"width\": \"450px\"\n }\n }, [_c('div', {\n staticStyle: {\n \"float\": \"right\"\n }\n }, [_c('div', {\n staticStyle: {\n \"padding\": \"5px 20px\"\n }\n }, [_c('i', {\n staticClass: \"el-icon-d-arrow-left close-left-menu pull-right\",\n on: {\n \"click\": _vm.showHideMoreServices\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticStyle: {\n \"float\": \"left\"\n }\n }, _vm._l((_vm.moreservices), function(mitem, i) {\n return _c('div', {\n key: (\"3\" + i),\n staticClass: \"nav-menu-icon\"\n }, [_c('ElButton', {\n staticStyle: {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"align-items\": \"center\",\n \"display\": \"flex\",\n \"flex-direction\": \"row\"\n },\n attrs: {\n \"type\": mitem.color,\n \"disabled\": mitem.disabled\n },\n on: {\n \"click\": function($event) {\n return _vm.handleCommand(mitem.command)\n }\n }\n }, [_c('i', {\n staticClass: \"material-icons\",\n staticStyle: {\n \"font-size\": \"1.5em\",\n \"width\": \"24px\",\n \"height\": \"24px\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(mitem.icon) + \"\\n \")]), _vm._v(\" \"), _c('span', {\n staticClass: \"txt\",\n class: {\n mute: mitem.disabled\n },\n domProps: {\n \"innerHTML\": _vm._s(mitem.module)\n }\n })])], 1)\n }), 0)])], 1), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": \"el-fade-in\"\n }\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.chatActive),\n expression: \"chatActive\"\n }],\n staticClass: \"chat-popup\",\n style: ({\n height: (_vm.windowHeight - 52) * 5 / 6 + 'px'\n })\n }, [_c('Chatbox', {\n ref: \"chatbox\",\n attrs: {\n \"msges\": _vm.msges\n }\n })], 1)]), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": \"el-fade-in\"\n }\n }, [_c('ElAside', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showMenu),\n expression: \"showMenu\"\n }],\n staticClass: \"left-menu\",\n staticStyle: {\n \"background-color\": \"rgba(24,32,40,0.9)\"\n },\n attrs: {\n \"width\": \"280px\"\n }\n }, [_c('ElMenu', {\n attrs: {\n \"router\": \"\",\n \"unique-opened\": \"\",\n \"default-openeds\": _vm.openedMenu,\n \"default-active\": _vm.$route.path,\n \"background-color\": \"rgba(24,32,40,0.5)\",\n \"text-color\": \"#fff\",\n \"active-text-color\": \"#ffd04b\"\n }\n }, [_c('div', {\n staticStyle: {\n \"padding\": \"10px 20px 5px\"\n }\n }, [_c('i', {\n staticClass: \"el-icon-d-arrow-left close-left-menu pull-right\",\n on: {\n \"click\": _vm.hideMenu\n }\n }), _vm._v(\" \"), _c('ElInput', {\n ref: \"menuSearch\",\n staticClass: \"translucent\",\n attrs: {\n \"size\": \"small\",\n \"autofocus\": \"\",\n \"placeholder\": \"Search Menu...\",\n \"prefix-icon\": \"el-icon-search\"\n },\n model: {\n value: (_vm.searchMenu),\n callback: function($$v) {\n _vm.searchMenu = $$v\n },\n expression: \"searchMenu\"\n }\n })], 1), _vm._v(\" \"), _c('ElSubmenu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.rewards, 0)),\n expression: \"toShow(menuKey.rewards,0)\"\n }],\n attrs: {\n \"index\": \"1\"\n }\n }, [_c('div', {\n class: {\n 'menu-disabled': !_vm.hasPayTrendAccess\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-usd menu-icon\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"lvl1\"\n }, [_vm._v(\"Pay Trends\")])]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.rewards.freshgradpay, 0)),\n expression: \"toShow(menuKey.rewards.freshgradpay,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasPayTrendAccess,\n \"index\": \"/freshgradsal\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"Bachelor/Master Degree Start Rates\\n \")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.rewards.wages, 0)),\n expression: \"toShow(menuKey.rewards.wages,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasPayTrendAccess,\n \"index\": \"/minwage\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"Wages (min,living,avg)\")])], 1), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.rewards.salaryBonusIncrease, 0)),\n expression: \"toShow(menuKey.rewards.salaryBonusIncrease,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasForecastCalculatorAccess,\n \"index\": \"/hrpredict\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_c('i', {\n staticClass: \"fa fa-calculator menu-icon\"\n }), _vm._v(\"\\n Salary Increase Predictor\\n \")]), _vm._v(\" \"), _c('ElSubmenu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.hrMarket, 0)),\n expression: \"toShow(menuKey.hrMarket,0)\"\n }],\n attrs: {\n \"index\": \"2\"\n }\n }, [_c('div', {\n class: {\n 'menu-disabled': !_vm.hasHrMarketAccess\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-users menu-icon\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"lvl1\"\n }, [_vm._v(\"Job Markets\")])]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.hrMarket.jobPostings, 0)),\n expression: \"toShow(menuKey.hrMarket.jobPostings,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasHrMarketAccess,\n \"index\": \"/job\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n Job Postings\\n \")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.hrMarket.talentIndicator, 0)),\n expression: \"toShow(menuKey.hrMarket.talentIndicator,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasHrMarketAccess,\n \"index\": \"/hr\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"Talent Supply Indicators\\n \")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"disabled\": !_vm.hasHrMarketAccess,\n \"index\": \"/hrMatrix\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n HR Hiring Momentum\\n \")])], 1), _vm._v(\" \"), _c('ElSubmenu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.relocation, 0)),\n expression: \"toShow(menuKey.relocation,0)\"\n }],\n attrs: {\n \"index\": \"3\"\n }\n }, [_c('div', {\n class: {\n 'menu-disabled': !_vm.hasRelocationAccess\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-globe menu-icon\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"lvl1\"\n }, [_vm._v(\"Relocation\")])]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.relocation.calc, 0)),\n expression: \"toShow(menuKey.relocation.calc,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasRelocationAccess,\n \"index\": \"/costofliving\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"Relocation Calculator\")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.relocation.costOfLiving, 0)),\n expression: \"toShow(menuKey.relocation.costOfLiving,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasRelocationAccess,\n \"index\": \"/citiescost\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"Cities Cost-of-Living Comparison\")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.relocation.costOfLivingTrends, 0)),\n expression: \"toShow(menuKey.relocation.costOfLivingTrends,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasRelocationAccess,\n \"index\": \"/coltrends\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"Cost-of-Living Trends\")])], 1), _vm._v(\" \"), _c('ElSubmenu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.legislation, 0)),\n expression: \"toShow(menuKey.legislation,0)\"\n }],\n attrs: {\n \"index\": \"4\"\n }\n }, [_c('div', {\n class: {\n 'menu-disabled': !_vm.hasLegislationNewsAccess\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-book menu-icon\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"lvl1\"\n }, [_vm._v(\"Legislations & News\")])]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.legislation.employmentLegislation, 0)),\n expression: \"toShow(menuKey.legislation.employmentLegislation,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasLegislationNewsAccess,\n \"index\": \"/legislation\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n Employment Legislation\\n \")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.legislation.news, 0)),\n expression: \"toShow(menuKey.legislation.news,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasLegislationNewsAccess,\n \"index\": \"/news\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n News Updates\\n \")])], 1), _vm._v(\" \"), _c('ElSubmenu', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.finance, 0)),\n expression: \"toShow(menuKey.finance,0)\"\n }],\n attrs: {\n \"index\": \"5\"\n }\n }, [_c('div', {\n class: {\n 'menu-disabled': !_vm.hasFinanceProductivityAccess\n },\n attrs: {\n \"slot\": \"title\"\n },\n slot: \"title\"\n }, [_c('i', {\n staticClass: \"fa fa-line-chart menu-icon\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"lvl1\"\n }, [_vm._v(\"Financial / Productivity\")])]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.finance.benchmarking, 0)),\n expression: \"toShow(menuKey.finance.benchmarking,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasFinanceProductivityAccess,\n \"index\": \"/fm\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n Organisation/Productivity Benchmarking\\n \")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.finance.gender, 0)),\n expression: \"toShow(menuKey.finance.gender,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasFinanceProductivityAccess,\n \"index\": \"/gender\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n Gender Diversity\\n \")]), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (false),\n expression: \"false\"\n }],\n attrs: {\n \"disabled\": !_vm.hasFinanceProductivityAccess,\n \"index\": \"/companyMatrix/competitors\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_vm._v(\"\\n Financial Momentum\\n \")])], 1), _vm._v(\" \"), _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.econ, 0)),\n expression: \"toShow(menuKey.econ,0)\"\n }],\n attrs: {\n \"disabled\": !_vm.hasEconomyAccess,\n \"index\": \"/macro\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_c('i', {\n staticClass: \"fa fa-bank menu-icon\"\n }), _vm._v(\"\\n Economy\\n \")]), _vm._v(\" \"), (_vm.isSuperAdmin) ? _c('ElMenuItem', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toShow(_vm.menuKey.admin, 0)),\n expression: \"toShow(menuKey.admin,0)\"\n }],\n attrs: {\n \"index\": \"/admin\"\n },\n on: {\n \"click\": _vm.hideMenu\n }\n }, [_c('i', {\n staticClass: \"fa fa-cogs menu-icon\"\n }), _vm._v(\"\\n Admin module\\n \")]) : _vm._e()], 1)], 1)], 1), _vm._v(\" \"), _c('ElMain', [_c('transition', {\n attrs: {\n \"name\": \"el-fade-in\"\n }\n }, [_c('keep-alive', [_c('router-view', {\n staticClass: \"content\"\n })], 1)], 1)], 1)], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0b52a228\",\"hasScoped\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 609\n// module chunks = 34","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDkuNiA5NS44NyI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNkMTA5MDY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5tcmNsb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEwOS40LDk1SDg3LjkzVjMyLjI0TDY0LjIyLDk1SDQ1LjY0TDIxLjQ3LDMyLjI0Vjk1SDBWLjkySDIzLjUxYTE1LjMxLDE1LjMxLDAsMCwxLDQuMzMuNjIsMTUuOTEsMTUuOTEsMCwwLDEsMy44NCwxLjcxLDEzLjA3LDEzLjA3LDAsMCwxLDMuMDYsMi42MywxMC44OSwxMC44OSwwLDAsMSwyLDMuMzhMNTMuMTksNTYuMzRjLjIyLjcuNDMsMS40OS42MiwyLjM3cy4zOSwxLjcuNTYsMi40OS4zMywxLjg4LjQ2LDIuODlhMTguNzMsMTguNzMsMCwwLDEsLjMzLTIuODJjLjEzLS43OS4yOS0xLjYzLjQ5LTIuNTNhMTIuNzksMTIuNzksMCwwLDEsLjc2LTIuNEw3Mi43Niw5LjI2YTEwLjMyLDEwLjMyLDAsMCwxLDItMy41NUExMi44LDEyLjgsMCwwLDEsNzgsMy4wOWExNS4xMiwxNS4xMiwwLDAsMSwzLjg3LTEuNjFBMTYuMzksMTYuMzksMCwwLDEsODYsLjkySDEwOS40WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIzOS41NSw2OC4zOWExNC4zMywxNC4zMywwLDAsMC01Ljg0LTEuMDgsMTMuNzIsMTMuNzIsMCwwLDAtNy44OCwyLjM2LDI5LjUyLDI5LjUyLDAsMCwxLTYuOTMsMy40NUEyNC4xNiwyNC4xNiwwLDAsMSwyMTEsNzQuNGEyNiwyNiwwLDAsMS0xMC4zMS0yLjA3QTI3LjI2LDI3LjI2LDAsMCwxLDE4Ni4zLDU4LjIxYTI1LjQxLDI1LjQxLDAsMCwxLDAtMjAuNTUsMjcuMDYsMjcuMDYsMCwwLDEsNS44NC04LjQxLDI4LjM5LDI4LjM5LDAsMCwxLDguNTQtNS42OEEyNS42OSwyNS42OSwwLDAsMSwyMTEsMjEuNDdhMjQuNDgsMjQuNDgsMCwwLDEsNy44NCwxLjI1LDI4LjQyLDI4LjQyLDAsMCwxLDcsMy40OCwxMy42MiwxMy42MiwwLDAsMCw3Ljg4LDIuNDMsMTMuOTQsMTMuOTQsMCwwLDAsNS43OC0xLjE1QTE1LDE1LDAsMCwwLDI0NCwyNC4zNmw1LjU4LTUuNThBNzAuMzEsNzAuMzEsMCwwLDAsMjQxLDExYTU4LjQ0LDU4LjQ0LDAsMCwwLTkuNDUtNS45MSw1MC42NSw1MC42NSwwLDAsMC0xMC4wOC0zLjc1QTQyLjY3LDQyLjY3LDAsMCwwLDIxMSwwYTQ3Ljc2LDQ3Ljc2LDAsMCwwLTEyLjgxLDEuNzEsNDkuMTcsNDkuMTcsMCwwLDAtMTEuNTYsNC44MkE0Ny45MSw0Ny45MSwwLDAsMCwxNzYuODQsMTRjLS43Ni43Ni0xLjUsMS41NC0yLjIsMi4zNC4zOS42NS43NywxLjMyLDEuMTIsMmEzNS4xLDM1LjEsMCwwLDEsMi44Miw3LjUyLDMyLjQ0LDMyLjQ0LDAsMCwxLC45NSw3LjY5LDM0LjIyLDM0LjIyLDAsMCwxLS44Miw3LjQ1LDMxLjQ2LDMxLjQ2LDAsMCwxLTIuNTksNy4yNSwzMywzMywwLDAsMS00LjYsNi44LDM4LDM4LDAsMCwxLTYuODMsNi4wOGwyMCwyN2MuNjQuNDIsMS4yOS44MywyLDEuMjJhNDkuMiw0OS4yLDAsMCwwLDExLjU2LDQuODNBNDguMTYsNDguMTYsMCwwLDAsMjExLDk1Ljg3YTQyLjE5LDQyLjE5LDAsMCwwLDEwLjQ0LTEuMzEsNTAuNjIsNTAuNjIsMCwwLDAsMTAuMDgtMy43NEE1OC40NCw1OC40NCwwLDAsMCwyNDEsODQuOTFhNzAuNCw3MC40LDAsMCwwLDguNjQtNy44MkwyNDQsNzEuNTFBMTQuODIsMTQuODIsMCwwLDAsMjM5LjU1LDY4LjM5WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0Ny44MSw0NC43OGE3Ljg5LDcuODksMCwwLDAsMy44MS0xLDExLjgzLDExLjgzLDAsMCwwLDMuMjUtMi41NiwxMi44OSwxMi44OSwwLDAsMCwyLjI3LTMuNTgsMTAsMTAsMCwwLDAsMC04LjA4QTEzLDEzLDAsMCwwLDE1NC44NywyNmExMS44MywxMS44MywwLDAsMC0zLjI1LTIuNTYsOCw4LDAsMCwwLTMuODEtMUgxMzEuMjdWNDQuNzhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTMxLjIzLDk1VjY2LjM5aDExLjgybDE1LjYzLDIxLjE0czUuMjYsNy44OCwxNC4yMyw3LjQ5WiIvPjwvZz48L2c+PC9zdmc+\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/mrclogo.svg\n// module id = 610\n// module chunks = 34"],"sourceRoot":""}