{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7e02","webpack:///./src/components/CrudButton.vue?8ca6","webpack:///./themeConfig.js","webpack:///./src/common/custom-service/dna-source/utils.js","webpack:///./src/libs/i18n/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/store/app/index.js","webpack:///./src/store/app/loader.module.js","webpack:///./src/store/app-config/index.js","webpack:///./src/store/vertical-menu/index.js","webpack:///./src/store/notification/notification.module.js","webpack:///./src/store/ticket/ticket.module.js","webpack:///./src/store/general-store/account/account.module.js","webpack:///./src/store/general-store/profile-settings/profilesettings.module.js","webpack:///./src/store/general-store/product/product.module.js","webpack:///./src/store/general-store/order/order.module.js","webpack:///./src/store/general-store/checkout/deepACheckout.module.js","webpack:///./src/store/general-store/checkout/traitCheckout.module.js","webpack:///./src/store/general-store/checkout/g25PartnerCheckout.module.js","webpack:///./src/store/general-store/update-v2/updateV2.module.js","webpack:///./src/store/operation/operation.module.js","webpack:///./src/store/results/g25/orderResult.module.js","webpack:///./src/store/results/traits-healths/orderResultTrait.module.js","webpack:///./src/store/results/g25/break-down/breakDownHelpers.js","webpack:///./src/store/results/g25/break-down/ancestrybreakdown.module.js","webpack:///./src/store/results/g25/break-down/modernbreakdown.module.js","webpack:///./src/store/results/g25/break-down/customancestrybreakdown.module.js","webpack:///./src/store/results/g25/break-down/periodicalancestrybreakdown.module.js","webpack:///./src/store/results/g25/farmer-hgs/farmerhgs.module.js","webpack:///./src/store/results/g25/closest-populations/ancientpopulation.module.js","webpack:///./src/store/results/g25/closest-populations/modernpopulation.module.js","webpack:///./src/common/custom-service/dna-source/PcaService.js","webpack:///./src/store/results/g25/pca/pcaplot.module.js","webpack:///./src/store/results/g25/mixed-mode/ancientMixedmode.module.js","webpack:///./src/store/results/g25/mixed-mode/modernMixedmode.module.js","webpack:///./src/store/results/g25/encyclopedia/encyclopedia.module.js","webpack:///./src/store/results/traits-healths/traits-and-healths/traitsAndHealths.module.js","webpack:///./src/store/results/traits-healths/traits-and-healths/traitsSurvey.module.js","webpack:///./src/store/index.js","webpack:///./src/common/custom-service/utils.js","webpack:///./src/common/custom-service/IllusDnaService.js","webpack:///./src/libs/i18n/index.js","webpack:///./src/@core/components/feather-icon/FeatherIcon.vue","webpack:///./src/App.vue?5775","webpack:///./src/@core/components/scroll-to-top/ScrollToTop.vue?3291","webpack:///src/@core/components/scroll-to-top/ScrollToTop.vue","webpack:///./src/@core/components/scroll-to-top/ScrollToTop.vue?63b1","webpack:///./src/@core/components/scroll-to-top/ScrollToTop.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue?bff9","webpack:///./src/components/SpinnerContainer.vue?3612","webpack:///src/components/SpinnerContainer.vue","webpack:///./src/components/SpinnerContainer.vue?65eb","webpack:///./src/components/SpinnerContainer.vue","webpack:///src/@core/components/feather-icon/FeatherIcon.vue","webpack:///./src/@core/components/feather-icon/FeatherIcon.vue?fe69","webpack:///./src/components/SpinnerLoader.vue?803b","webpack:///src/components/SpinnerLoader.vue","webpack:///./src/components/SpinnerLoader.vue?b083","webpack:///./src/components/SpinnerLoader.vue","webpack:///./src/components/CrudButton.vue?04ad","webpack:///src/components/CrudButton.vue","webpack:///./src/components/CrudButton.vue?e8b0","webpack:///./src/components/CrudButton.vue?598b","webpack:///./src/components/Alert.vue?bacd","webpack:///src/components/Alert.vue","webpack:///./src/components/Alert.vue?f564","webpack:///./src/components/Alert.vue","webpack:///./src/global-components.js","webpack:///./src/libs/acl/config.js","webpack:///./src/libs/acl/ability.js","webpack:///./src/libs/acl/index.js","webpack:///./src/libs/portal-vue.js","webpack:///./src/libs/clipboard.js","webpack:///./src/libs/toastification.js","webpack:///./src/libs/sweet-alerts.js","webpack:///./src/libs/vue-select.js","webpack:///./src/libs/tour.js","webpack:///./src/main.js","webpack:///./src/common/api.service.js","webpack:///./src/common/alert.service.js","webpack:///./src/@core/auth/jwt/jwtDefaultConfig.js","webpack:///./src/@core/auth/jwt/jwtService.js","webpack:///./src/@core/auth/jwt/useJwt.js","webpack:///./src/auth/jwt/useJwt.js","webpack:///./src/store/results/g25/farmer-hgs/farmerHgsHelpers.js","webpack:///./src/libs/axios.js","webpack:///./src/auth/utils.js","webpack:///./src/@core/components/feather-icon/FeatherIcon.vue?93b6","webpack:///./src/@core/components/scroll-to-top/ScrollToTop.vue?cb85","webpack:///./src/router/routes/customer.js","webpack:///./src/router/index.js","webpack:///./src/common/config.js","webpack:///./src/assets/images/logo/logo.png","webpack:///./src/@core/app-config/useAppConfig.js","webpack:///./src/components/SpinnerContainer.vue?9532"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","$themeColors","$themeBreakpoints","$themeConfig","app","appName","appLogoImage","require","layout","isRTL","skin","routerTransition","contentWidth","menu","hidden","isCollapsed","navbar","backgroundColor","footer","customizer","enableScrollToTop","CalculateModernPopColor","CalculateModernMapPopColor","hexToRgb","hex","replace","bigint","parseInt","g","b","rgbToHsl","h","max","Math","min","hslToHex","hue2rgb","q","toHex","x","hx","round","toString","padStart","baseColors","generateDistinctColorsFromBase","count","baseCount","needed","hueStep","baseIndex","baseHex","newColor","map","webpackContext","req","id","webpackContextResolve","keys","namespaced","state","windowWidth","shallShowOverlay","isOpenMobileNavbar","getters","currentBreakPoint","xl","lg","md","sm","mutations","UPDATE_WINDOW_WIDTH","val","TOGGLE_OVERLAY","actions","loading","googleLoadMap","getLoader","getMapLoader","setLoader","setMapLoader","localStorage","getItem","innerWidth","TOGGLE_RTL","documentElement","UPDATE_SKIN","setItem","body","classList","add","className","match","remove","UPDATE_ROUTER_TRANSITION","UPDATE_LAYOUT_TYPE","UPDATE_CONTENT_WIDTH","UPDATE_NAV_MENU_HIDDEN","UPDATE_NAVBAR_CONFIG","obj","assign","UPDATE_FOOTER_CONFIG","isVerticalMenuCollapsed","UPDATE_VERTICAL_MENU_COLLAPSED","notificationCount","notifications","generalNotificationList","getNotificationCount","getNotifications","getAllGeneralNotifications","setNotification","notificationData","notReadedCount","setAllGeneralNotification","forEach","isOpenDesc","fetchNotifications","context","queryParams","ApiService","response","catch","fetchAllGeneralNotifications","getSilent","this","commit","readNotifications","postSilent","ticketData","ticketList","getTicketData","getTicketList","setTicketData","setTicketList","fetchTickets","statusCode","AlertService","_vm","fetchTicket","ticketNo","createTicket","upload","createTicketDetail","closeTicket","post","getDefaultState","userData","userEmail","firstName","lastName","password","twoFactorAuthActive","isUserLoggedIn","logginUserData","JSON","parse","getUserDataField","getField","getUserData","getIsLoggedIn","useJwt","jwtConfig","storageTokenKeyName","updateUserDataField","field","updateField","updateUserEmail","setIsLoggedIn","status","signUp","sendResetPassowrdEmail","emailAddress","checkResetPasswordEmail","verifyCode","changeResetPasswordEmail","generalSettings","getGeneralSettings","setGeneralSettings","fetchGeneralSettings","checkUserName","checkUserEmail","saveGeneralUserInfo","savePassword","deleteAccount","tempProducts","products","getProducts","setProducts","setProductTypeFilter","filter","productType","fetchProducts","fetchProduct","productCode","fetchProductById","productId","orders","kits","getOrders","getKits","setOrders","setKits","fetchOrders","fetchKits","hasMissedFileFetch","kitObj","kitName","rawFileKey","rawFileName","rawFileFormat","targetCoordinate","presetEthnicityId","selectedEthnicityName","isEmptyPresetEthnicityId","isLoading","emptyKitName","emptyRawFileKey","emptyTargetCoordinate","isShowDropdown","persistedState","selectedProductCode","PRODUCT_CODES","UPLOAD_DA_RAW_DATA","selectedStepCode","DA_CHECKOUT_STEPS","UPLOAD","productData","createOrderData","subtotal","discountSubtotal","paymentGuid","product","productQuantity","paymentType","promotionDetailGuid","kitList","isFinishedPayment","isConfirmPrivacyPalicy","getCreateOrderData","getCheckoutQuery","orderData","_subtotal","_discountSubtotal","getOrderSubTotal","getProductData","setProductData","setCreateOrderData","setOrderKitsData","index","setKitFileData","removeKitFileData","changeKitNumber","fileLength","newFile","pop","resetOrderState","closeDropdowns","element","saveCheckout","createPaymentIntent","applyPromotionCode","personName","fileName","preTempOrderRawDataGuid","emptyPreTempOrderRawDataGuid","emptyPersonName","UPLOAD_TRAIT_RAW_DATA","currencyUnit","note","preTempOrderGuid","personList","setOrderFileData","addOrderFile","fileItem","findFileObj","find","removeOrderFile","changeFileArray","saveChecout","createPaymentDirect","selectedRegionName","mobilePageCode","partnerLinkData","businessPartnerLinkGuid","person","guid","findPrice","productPrices","productCount","subTotal","disCountedPrice","discountTotal","discount","setPartnerLinkData","fullName","fetchPartnerLink","linkGuid","selectedPage","uploadedFileList","regionDataVersion","regionGrups","regions","pcaRegionGrups","pcaRegions","ancestryGeoJson","modernPopGeoJson","modernPopGeoJsonResult","ancientPeriods","selectedAncientPeriod","number","getRegionGrups","getRegions","getPcaRegionGrups","getPcaRegions","getAncestryGeoJson","getModernPopGeoJson","getModernPopGeoJsonResult","getAncientPeriods","setRegionGrups","results","presetRegionGrupType","setRegions","presetRegionType","setAncestryGeoJson","setMdernPopGeoJson","setMdernPopGeoJsonResult","setAncientPeriods","currentPeriods","dataVersion","setSelectedPeriod","selectedPeriod","setDefaultPeriod","fetchRegions","fetchRegionGrups","fetchMapSourceDatas","rootGetters","fetchMapSourceModern","fetchMapDetailDatas","fetchFarmerAndHGsDatas","fetchFarmerAndHGsDetailData","fetchAncientProxImageDatas","fetchAncientProxDetailDatas","fetchAncientPeriods","resultSelectedTab","selectedTarget","selectedTargetTitle","orderResults","selectedResultId","selectedResult","orderResultStatus","IllusDnaService","getOrderResults","getSelectedOrderResultId","getSelectedOrderResult","getDataVersion","setOrderResults","setTargetData","resultTitle","resolveSource","codeDataToArray","isSuccess","onSetTarget","fetchOrderResults","breakDownHelpers","_SetSelectedAncestryGrup","selectedRegionGrupId","regionGrupDefaultId","_SetSelectedRegion","regionDefaultId","dataObject","numberOfPopulation","numberOfGlobalnPop","numberOfDefaulnPop","selectedRegionId","_SetAncestryPureResult","regionPureResults","stringify","tempRegionResults","outPuts","splitValue","resultsTable","split","findValue","currentResult","sort","a","regionResults","_SetModernBreakDownResult","_SetModernBreakDownResults","modernBreadDownResults","stateResults","isCalculated","firstGroup","subResult","secondGroup","thirdGroup","modernBreakDown","_SetModernBreakDownSourceDataActive","sourceData","modernBreadDownSourceDataActive","sourceDatas","item","sourceCodes","includes","sourceCode","codeLabel","isActive","_FilterModernBreakDownSourceData","filteredData","selectedData","dataArrays","sourceCodeArray","sourceCodeNumber","_SetCustomAncBrDnResult","_SetCustomABResults","customAncBrDnResults","farmerHGsResult","pureResult","_SetCustomizeSourceDataActive","customAncBrDnSourceDataActive","_FilterCustomizSourceData","_SetPeriodicalAncBrDnResult","_SetPeriodicalABResults","periodicalAncBrDnResults","selectedAncientCalculator","selectedAncientCalculatorId","isFixedRegion","isViewAllRegionMap","regionSourceDatas","regionFinalResults","getRegionResults","getRegionPureResults","getRegionFinalResults","getRegionSourceDatas","getOrderSelectedRegionGrup","getOrderSelectedRegion","setRegionFinalResults","setNumberOfGlobalnPop","setSelectedRegionGrup","regionGrup","setSelectedRegion","region","orderResult","setRegionByTarget","presetRegionGrupId","presetRegionId","setRegionSourceDatas","regionResultData","isHaseResult","source","setAncestryPureResult","resetState","fetchRegionSourceDatas","modernBreakDownnPop","modernBreadDownSourceData","modernBreakDownSelectedAll","modernBreadDownFinalResult","getModernBreakDownResult","rootState","findResult","getModernBreakDownFinalResult","setModernBreakDownSourceData","modernBreakDownResultData","modernResult","runSingleModernBreakDown","tempPop","onSetSource","runABAlgorithm","setModernBreakDownFinalResults","fetchModernBreakDownSourceDatas","customAncBrDnnPop","customAncBrDnSourceData","isSelectAllCustomAnBrDnSourceData","customAncBrDnFinalResult","getCustomAncBrDnResult","getCustomAncBrPureResult","getCustomAncBrDnFinalResult","setSelectedCalculator","calculator","setCustomAnBrDnResult","customAnBrDnResultData","runSingleCustomAnBrDn","setCustomAncBrDnResultFinalResults","fetchCustomBrDnSourceDatas","sourceDataId","periodicalAncBrDnnPop","periodicalAncBrDnSourceData","periodicalAncBrDnFinalResult","getSelectedCalculator","getPeriodicalAncBrDnResult","getPeriodicalAncBrPureResult","getPeriodicalAncBrDnFinalResult","setPeriodicalAnBrDnResult","runSinglePeriodicalAnBrDn","setPeriodicalAncBrDnResultFinalResults","farmerAndHGsSourceData","farmerAndHGsResults","farmerAndHGsFinalResult","getFarmerAndHGsResult","getFarmerAndHGsFinalResult","setFarmerAndHGsSourceData","farmerHGsResultData","farmerHgsHelpers","_SetFarmerHGsResult","runSingleFarmerHGs","setFarmerAndHGsFinalResults","fetchFarmerAndHGsSourceDatas","ancientSourceDatasResult","ancientSourceDatas","closestAncientPopResults","closestAncientImagePopResults","closestAncientPopNumber","getClosestAncientPopResults","getClosestAncientPopImageResults","setAncientSourceDatas","setClosestAncientImageResults","runAncientDist","maxDistOutPut","calculateDistance","fetchAncientSourceDatas","fetchSampelCoordinates","modernSourceDatas","modernSourceDatasResult","closestModernPopResults","closestModerPopNumber","getClosestModernPopResults","setModernSourceDatas","runModernDist","fetchModernSourceDatas","fetchModernSourceDatasSilent","fetchCoordinates","PcaService","sourceObject","targetData","pcaData","pcaColorMode","isEnableConvexHull","colorList","onSetSourceDatas","parseSourceData","isTarget","lines","trim","dataArray","dataNames","line","parts","numbers","Number","runPCA","srObject","sourceArrayResponse","projectedArrayResponse","projectedArray","pca","ML","PCA","explainedVariance","getExplainedVariance","totalVariance","compLength","findIndex","v","projected","predict","row","components","toFixed","join","computeConvexHull","points","sorted","y","cross","lower","upper","concat","plotPCA","projectedNames","pc1","pc2","groups","groupName","traces","groupCenters","colorIndex","groupData","groupX","groupY","centerX","reduce","centerY","marker","size","color","opacity","bordercolor","borderwidth","borderpad","text","hoverinfo","visible","hullPoints","hullX","hullY","fill","fillcolor","width","showlegend","symbol","title","xaxis","zeroline","yaxis","hovermode","dragmode","margin","annotations","center","xref","yref","showarrow","arrowhead","axref","ayref","ax","ay","font","family","bgcolor","config","editable","scrollZoom","graphDiv","getElementById","Plotly","newPlot","pcaSourceDatas","selectedPcaRegionId","selectedPcaRegionGrupId","pcaSkin","getOrderSelectedPcaRegion","getOrderSelectedPcaRegionGrup","setSelectedPcaRegion","setSelectedPcaRegionGrup","setPcaSourceData","runPca","replaceAll","fetchPcaRegionSourceDatas","ancientMixedModePopNumber","mixedModePeriods","mixedModeOrderResult","selectedAncientMixedMode","getAncientMixedModePopNumber","getSelectedMixedModeResult","getSelectedAncientMixedModeResult","setMixedModePeriods","setMixedModerPeriod","setMixedModeResult","mixedModeResult","setSelectedAncientMixedModeResult","fetchAncientMixedModePeriods","mixedModeType","fetchOrderMixedModeResults","updateOrderResultMixedModeResults","orderResultId","modernMixedModePopNumber","selectedPeriodId","selectedModernMixedMode","getModernMixedModePopNumber","getSelectedModernMixedModeResult","setMixedModerPeriodId","setSelectedModernMixedModeResult","fetchModernMixedModePeriods","selectedModule","selectedCard","locationQueryList","filterQuery","Search","location","PageIndex","PageSize","Count","selectedPopDetail","getFilterQuery","setFilterData","locationList","unshift","resetFilterQuery","fetchAncientProxDatas","copyParams","fetchAncientProxFilterQuery","url","fetchAncientIndividualData","traitsDataResults","selectedTab","TRAITS_RESULT_TABS","TRAITS","traitsCategories","selectedTraitCategory","selectedSort","getTraitsDataResults","getSelectedSort","setTraitsDataResults","resultData","resultId","traitCategory","fetchTraitsData","query","fetchTraitDetailData","params","saveTraitSurvey","fetchTraitSurvey","Vue","use","Vuex","Store","loader","appConfig","verticalMenu","notification","ticket","account","profileSettings","deepACheckout","traitCheckout","g25PartnerCheckout","updateV2","operation","orderResultTrait","ancestrybreakdown","modernbreakdown","customancestrybreakdown","periodicalancestrybreakdown","farmerhgs","ancientpopulation","modernpopulation","pcaplot","ancientMixedmode","modernMixedmode","encyclopedia","traitsAndHealths","traitsSurvey","strict","process","DEV","euclideanDistance","vec1","vec2","len","sumOfSquares","diff","sqrt","generateRandomRange","floor","random","subDataArray","array1","array2","addDataArray","clusterResults","resultsDatas","sourceLength","popTitles","addedTitles","localeCompare","divideToNestTarget","dims","divideToNestSource","sourceNumber","tempLine","Array","callResultData","callResultDataRdc","titles","callResponseData","dist","runCustomMCAlgorithm","dataParams","checkParams","extraParams","arrangements","loopSize","ceil","iterationFactor","longestNumber","checkDistanceColumnMultiSub","currentNests","nstSize","makeRandomNests","currentPoints","makePointsFromNests","codeMetrics","currentDists","runDistance","nextNests","nextPoints","nextDists","sourceCodData","fillPoints","fillArrangements","prevDists","arrangeNumber","reRunArrange","columnDFactor","recalculate","targetCode","paramsData","prevNests","newNests","nests","tempPoint","newPoints","ranks","runABByPopNumber","tempArr","titleArr","idArray","nextResult","clusterArray","initData","countIndex","initDataResult","runInitDataMCAlgorithms","newTitleArr","newSourceData","actualNestLength","currentData","nextData","CompleteProcess","counter","copyDataParams","runMCAlgorithm","setToRun","currentSource","storeSet","runs","callNewPopulation","callNames","arr","sortArr","clusterArr","initResult","runDATAMCAlgorithm","item2","copyDataparams","setToDataRun","names","currentDataItem","newPop","targetCodeArray","targetCodeNumber","sourceArray","targetArray","codeData","parsedData","parseFloat","targetRow","distanceResults","sourceRow","distance","adcValue","VueI18n","dateTimeFormats","en","short","year","month","day","long","weekday","hour","minute","tr","hour12","numberFormats","currency","style","currencyDisplay","loadLocaleMessages","locales","messages","matched","locale","fallbackLocale","_h","$createElement","_c","_self","staticClass","class","skinClasses","attrs","_e","staticRenderFns","directives","rawName","expression","modifiers","on","scrollToTop","Ripple","BButton","setup","rootEle","scrollTo","top","behavior","component","LayoutLab","LayoutFull","ScrollToTop","methods","handleResize","$store","computed","$route","meta","contentLayoutType","created","addEventListener","beforeCreate","hideProgressBar","closeOnClick","closeButton","icon","transition","store","_l","getStyle","transform","animationDelay","functional","props","required","String","default","badge","badgeClasses","render","svg","onClickRefresh","_v","_s","$t","onClickAddNew","BButtonGroup","listLoading","showRefresh","Boolean","showAddNew","Function","variant","vSelect","FeatherIcon","SpinnerLoader","CrudButton","Alert","initialAbility","action","subject","existingAbility","ability","Ability","abilitiesPlugin","PortalVue","VueClipboard","Toast","VueSweetalert2","Deselect","OpenIndicator","VueTour","BootstrapVue","ToastPlugin","ModalPlugin","LottieVuePlayer","VueCompositionAPI","SpinnerContainer","$formatNumber","decimals","productionTip","router","i18n","App","$mount","resource","instance","setInterceptor","axiosIns","controlErrorResponse","setSilentInterceptor","formData","headers","download","method","responseType","update","slug","put","delete","instanceObject","interceptors","success","callback","$swal","customClass","confirmButton","buttonsStyling","confirm","warning","confirmDelete","showCancelButton","confirmButtonText","cancelButtonText","cancelButton","confirmSuccess","loginEndpoint","registerEndpoint","refreshEndpoint","logoutEndpoint","tokenType","storageRefreshTokenKeyName","storageUserDataName","JwtService","jwtOverrideConfig","jwtDefaultConfig","accessToken","getToken","Authorization","subscribers","args","refreshToken","getRefreshToken","jwt","axios","_SetFarmerHGsABResults","baseURL","API_URL","$http","getUserRole","userRole","Role","Customer","getHomeRouteForLoggedInUser","path","authorize","pageTitle","contentClass","VueRouter","base","scrollBehavior","routes","redirect","customer","redirectIfLoggedIn","beforeEach","to","from","next","isLoggedIn","currentUserRole","UPLOAD_DA_COORDINATES","SELECT_SERVICE","ACCOUNT","CONFIRM","TRAIT_CHECKOUT_STEPS","DA_RESULT_TABS","PERIODICAL","FARMER_HGS","MIXED_MODE","MODERN_MIXED_MODE","MODERN_DIY_MODEL","ANCIENT_DIY_MODEL","MODERN_GENETIC_DISTANCES","ANCESTRY_GENETIC_DISTANCES","PLOT_PCA","ENCYCLOPEDIA","VITAMINS_MINERALS","usAppConfig","set","hrClasses","layoutType","watch","isNavMenuHidden","navbarBackgroundColor","navbarType","footerType"],"mappings":"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","file":"js/app.da0d82ec.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0b0b4c6c\":\"fda53562\",\"chunk-0f92cec0\":\"72c3a884\",\"chunk-1071b518\":\"d8b32e2d\",\"chunk-9605ab62\":\"0a34d777\",\"chunk-2d0ba362\":\"f4f7e563\",\"chunk-2e02eabf\":\"4bd7faf1\",\"chunk-5ef6270d\":\"111b89d2\",\"chunk-339c35ec\":\"49b3efdc\",\"chunk-eed5f4d8\":\"60a2a3d7\",\"chunk-60c8c812\":\"e3d16a30\",\"chunk-198d4e8f\":\"e1d22ee4\",\"chunk-62302b96\":\"e0f9b9fb\",\"chunk-73a20f4c\":\"5bd3af84\",\"chunk-517c54c8\":\"1e4f946e\",\"chunk-74c4ba9a\":\"033bedb2\",\"chunk-7c64b37a\":\"ce0ca657\",\"chunk-b6954a28\":\"b593bba1\",\"chunk-bdca05c2\":\"5da8eb8d\",\"chunk-d71e4754\":\"aacdbeba\",\"chunk-e11eea86\":\"79944e86\",\"chunk-fe3c3290\":\"f34f705c\",\"chunk-18d01dab\":\"b131d036\",\"chunk-2a1841e4\":\"e6bb2e35\",\"chunk-2c656a62\":\"10f0b6d8\",\"chunk-338b33ca\":\"ae257abf\",\"chunk-42322b7e\":\"7dcdb73d\",\"chunk-5fa2dcc8\":\"112d2005\",\"chunk-9e69c6bc\":\"7139e51b\",\"chunk-681288e1\":\"85d14994\",\"chunk-0dcaddc7\":\"3b24f0e2\",\"chunk-bb00421e\":\"5165b295\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0b0b4c6c\":1,\"chunk-0f92cec0\":1,\"chunk-1071b518\":1,\"chunk-9605ab62\":1,\"chunk-2e02eabf\":1,\"chunk-339c35ec\":1,\"chunk-eed5f4d8\":1,\"chunk-198d4e8f\":1,\"chunk-62302b96\":1,\"chunk-73a20f4c\":1,\"chunk-517c54c8\":1,\"chunk-7c64b37a\":1,\"chunk-b6954a28\":1,\"chunk-bdca05c2\":1,\"chunk-d71e4754\":1,\"chunk-e11eea86\":1,\"chunk-18d01dab\":1,\"chunk-2a1841e4\":1,\"chunk-2c656a62\":1,\"chunk-338b33ca\":1,\"chunk-42322b7e\":1,\"chunk-5fa2dcc8\":1,\"chunk-9e69c6bc\":1,\"chunk-681288e1\":1,\"chunk-0dcaddc7\":1,\"chunk-bb00421e\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0b0b4c6c\":\"d9b7d6c0\",\"chunk-0f92cec0\":\"507ed1f4\",\"chunk-1071b518\":\"c5c696bf\",\"chunk-9605ab62\":\"93f46740\",\"chunk-2d0ba362\":\"31d6cfe0\",\"chunk-2e02eabf\":\"9f8592af\",\"chunk-5ef6270d\":\"31d6cfe0\",\"chunk-339c35ec\":\"eafd3ffd\",\"chunk-eed5f4d8\":\"a60c0e72\",\"chunk-60c8c812\":\"31d6cfe0\",\"chunk-198d4e8f\":\"eb3612cd\",\"chunk-62302b96\":\"fd79da1b\",\"chunk-73a20f4c\":\"d6514d9a\",\"chunk-517c54c8\":\"07f04563\",\"chunk-74c4ba9a\":\"31d6cfe0\",\"chunk-7c64b37a\":\"b55d9c40\",\"chunk-b6954a28\":\"c57238b8\",\"chunk-bdca05c2\":\"e6a237dc\",\"chunk-d71e4754\":\"8a68431b\",\"chunk-e11eea86\":\"137d9783\",\"chunk-fe3c3290\":\"31d6cfe0\",\"chunk-18d01dab\":\"fac77c77\",\"chunk-2a1841e4\":\"c57238b8\",\"chunk-2c656a62\":\"9d4f485d\",\"chunk-338b33ca\":\"9e61e29c\",\"chunk-42322b7e\":\"ea2e7388\",\"chunk-5fa2dcc8\":\"836efbe5\",\"chunk-9e69c6bc\":\"147883b9\",\"chunk-681288e1\":\"b4b2cc0d\",\"chunk-0dcaddc7\":\"eca444b0\",\"chunk-bb00421e\":\"063eeb80\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CrudButton.vue?vue&type=style&index=0&id=0d6326b4&scoped=true&lang=css&\"","// Theme Colors\r\n// Initially this will be blank. Later on when app is initialized we will assign bootstrap colors to this from CSS variables.\r\nexport const $themeColors = {}\r\n\r\n// App Breakpoints\r\n// Initially this will be blank. Later on when app is initialized we will assign bootstrap breakpoints to this object from CSS variables.\r\nexport const $themeBreakpoints = {}\r\n\r\n// APP CONFIG\r\nexport const $themeConfig = {\r\n app: {\r\n appName: 'Illustrative Dna',\r\n // eslint-disable-next-line global-require\r\n appLogoImage: require('@/assets/images/logo/logo.png'),\r\n },\r\n layout: {\r\n isRTL: false,\r\n skin: 'dark', // light, dark, bordered, semi-dark\r\n routerTransition: 'zoom-fade', // zoom-fade, slide-fade, fade-bottom, fade, zoom-out, none\r\n type: 'lab', // vertical, horizontal\r\n contentWidth: 'boxed', // full, boxed\r\n menu: {\r\n hidden: true,\r\n isCollapsed: false,\r\n },\r\n navbar: {\r\n // ? For horizontal menu, navbar type will work for navMenu type\r\n type: 'floating', // static , sticky , floating, hidden\r\n backgroundColor: 'primary', // BS color options [primary, success, etc]\r\n },\r\n footer: {\r\n type: 'hidden', // static, sticky, hidden\r\n },\r\n customizer: false,\r\n enableScrollToTop: false,\r\n },\r\n}\r\n","/* eslint-disable */\r\nexport const CalculateModernPopColor = (value) => {\r\n if(value > 0 && value <= 1) {\r\n return '#99da44';\r\n }\r\n if(value > 1 && value <= 2) {\r\n return '#7abb25';\r\n }\r\n if(value > 2 && value <= 3) {\r\n return '#7abb25';\r\n }\r\n if(value > 3 && value <= 4) {\r\n return '#f8961e';\r\n }\r\n if(value > 4 && value <= 5) {\r\n return '#f3722c';\r\n }\r\n if(value > 5 && value <= 6) {\r\n return '#f94144';\r\n }\r\n if(value > 6 && value <= 7) {\r\n return '#168aad';\r\n }\r\n if(value > 7 && value <= 8) {\r\n return '#168aad';\r\n }\r\n if(value > 8 && value <= 9) {\r\n return '#168aad';\r\n }\r\n if(value > 9 && value <= 10) {\r\n return '#168aad';\r\n }\r\n return '#168aad';\r\n}\r\n\r\nexport const CalculateModernMapPopColor = (value) => {\r\n if(value > 0 && value <= 0.5) {\r\n return '#FF0A54';\r\n }\r\n\r\n if(value > 0.5 && value <= 1) {\r\n return '#FF155C';\r\n }\r\n if(value > 1 && value <= 1.5) {\r\n return '#FF155C';\r\n }\r\n if(value > 1.5 && value <= 2.0) {\r\n return '#FF2B6B';\r\n }\r\n if(value > 2 && value <= 2.5) {\r\n return '#FF3673';\r\n }\r\n if(value > 2.5 && value <= 3) {\r\n return '#FF417A';\r\n }\r\n if(value > 3 && value <= 3.5) {\r\n return '#FF4C82';\r\n }\r\n if(value > 3.5 && value <= 4) {\r\n return '#FF578A';\r\n }\r\n if(value > 4 && value <= 4.5) {\r\n return '#FF6291';\r\n }\r\n if(value > 4.5 && value <= 5) {\r\n return '#FF6D99';\r\n }\r\n if(value > 5 && value <= 5.5) {\r\n return '#FF79A1';\r\n }\r\n if(value > 5.5 && value <= 6) {\r\n return '#FF84A9';\r\n }\r\n if(value > 6 && value <= 6.5) {\r\n return '#FF8FB0';\r\n }\r\n if(value > 6.5 && value <= 7) {\r\n return '#FF9AB8';\r\n }\r\n if(value > 7 && value <= 7.5) {\r\n return '#FFA5C0';\r\n }\r\n if(value > 7.7 && value <= 8) {\r\n return '#FFB0C7';\r\n }\r\n if(value > 8 && value <= 8.5) {\r\n return '#FFBBCF';\r\n }\r\n if(value > 8.5 && value <= 9) {\r\n return '#FFC6D7';\r\n }\r\n if(value > 9 && value <= 9.5) {\r\n return '#FFD1DE';\r\n }\r\n if(value > 9.5 && value <= 20) {\r\n return '#FFDCE6';\r\n }\r\n return '#FFDCE6';\r\n}\r\n\r\n// HEX'i RGB'ye çevirir\r\nfunction hexToRgb(hex) {\r\n hex = hex.replace(/^#/, '');\r\n let bigint = parseInt(hex, 16);\r\n let r = (bigint >> 16) & 255;\r\n let g = (bigint >> 8) & 255;\r\n let b = bigint & 255;\r\n return [r, g, b];\r\n}\r\n\r\n// RGB'den HSL'ye çevirir\r\nfunction rgbToHsl(r, g, b) {\r\n r /= 255;\r\n g /= 255;\r\n b /= 255;\r\n \r\n let max = Math.max(r, g, b);\r\n let min = Math.min(r, g, b);\r\n let h, s, l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = s = 0; \r\n } else {\r\n let d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch(max) {\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n }\r\n h /= 6;\r\n }\r\n \r\n return [h * 360, s * 100, l * 100];\r\n}\r\n\r\n// HSL'den HEX'e çevirir\r\nfunction hslToHex(h, s, l) {\r\n h = h / 360;\r\n s = s / 100;\r\n l = l / 100;\r\n \r\n function hue2rgb(p, q, t) {\r\n if(t < 0) t += 1;\r\n if(t > 1) t -= 1;\r\n if(t < 1/6) return p + (q - p) * 6 * t;\r\n if(t < 1/2) return q;\r\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\r\n return p;\r\n }\r\n \r\n let r, g, b;\r\n \r\n if (s === 0) {\r\n r = g = b = l; \r\n } else {\r\n let q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n let p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1/3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1/3);\r\n }\r\n \r\n const toHex = (x) => {\r\n const hx = Math.round(x * 255).toString(16).padStart(2, '0');\r\n return hx;\r\n };\r\n \r\n return \"#\" + toHex(r) + toHex(g) + toHex(b);\r\n}\r\n\r\nconst baseColors = ['#167050', '#da1020', '#5620a6', '#df0078', '#56a019', '#9925da', '#706418', '#545454', '#2c58a1', '#bc5906', '#7f0162'];\r\n\r\n// Base color list'ine dayanarak belirli sayıda distinct renk üretir.\r\nexport function generateDistinctColorsFromBase(count) {\r\n const result = [];\r\n const baseCount = baseColors.length;\r\n\r\n if (count <= baseCount) {\r\n // İstenen sayı base listeden az ise doğrudan ilk count adedi al\r\n return baseColors.slice(0, count);\r\n }\r\n\r\n // Daha fazla renk lazım ise önce tüm base renkleri ekle\r\n for (let i = 0; i < baseCount; i++) {\r\n result.push(baseColors[i]);\r\n }\r\n\r\n // Kalan renk sayısı\r\n const needed = count - baseCount;\r\n \r\n // Ek renkler için hue değerini adım adım kaydırıyoruz\r\n const hueStep = 360 / needed;\r\n\r\n for (let i = 0; i < needed; i++) {\r\n const baseIndex = i % baseCount;\r\n const baseHex = baseColors[baseIndex];\r\n const [r, g, b] = hexToRgb(baseHex);\r\n let [h, s, l] = rgbToHsl(r, g, b);\r\n \r\n // Hue değeri her ek renk için hueStep kadar ilerletilir\r\n h = (h + (hueStep * i)) % 360;\r\n \r\n // Burada dilerseniz s ve l değerlerini de az da olsa değiştirebilirsiniz.\r\n // Örneğin: s = Math.min(100, s + (i * 2)); veya farklı bir lojik.\r\n \r\n const newColor = hslToHex(h, s, l);\r\n result.push(newColor);\r\n }\r\n\r\n return result;\r\n}\r\n","var map = {\n\t\"./en.json\": \"d782\",\n\t\"./tr.json\": \"111b\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"3e8d\";","import { $themeBreakpoints } from '@themeConfig'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n windowWidth: 0,\r\n shallShowOverlay: false,\r\n isOpenMobileNavbar: false,\r\n },\r\n getters: {\r\n currentBreakPoint: state => {\r\n const { windowWidth } = state\r\n if (windowWidth >= $themeBreakpoints.xl) return 'xl'\r\n if (windowWidth >= $themeBreakpoints.lg) return 'lg'\r\n if (windowWidth >= $themeBreakpoints.md) return 'md'\r\n if (windowWidth >= $themeBreakpoints.sm) return 'sm'\r\n return 'xs'\r\n },\r\n },\r\n mutations: {\r\n UPDATE_WINDOW_WIDTH(state, val) {\r\n state.windowWidth = val\r\n },\r\n TOGGLE_OVERLAY(state, val) {\r\n state.shallShowOverlay = val !== undefined ? val : !state.shallShowOverlay\r\n },\r\n },\r\n actions: {},\r\n}\r\n","export default {\r\n state: {\r\n loading: false,\r\n googleLoadMap: null,\r\n },\r\n getters: {\r\n getLoader: state => state.loading,\r\n getMapLoader: state => state.googleLoadMap,\r\n },\r\n mutations: {\r\n setLoader(state, value) {\r\n state.loading = value\r\n },\r\n setMapLoader(state, value) {\r\n state.googleLoadMap = value\r\n },\r\n },\r\n}\r\n","import { $themeConfig } from '@themeConfig'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n layout: {\r\n isRTL: $themeConfig.layout.isRTL,\r\n skin: localStorage.getItem('vuexy-skin') || $themeConfig.layout.skin,\r\n windowWidth: window.innerWidth,\r\n routerTransition: $themeConfig.layout.routerTransition,\r\n type: $themeConfig.layout.type,\r\n contentWidth: $themeConfig.layout.contentWidth,\r\n menu: {\r\n hidden: $themeConfig.layout.menu.hidden,\r\n },\r\n navbar: {\r\n type: $themeConfig.layout.navbar.type,\r\n backgroundColor: $themeConfig.layout.navbar.backgroundColor,\r\n },\r\n footer: {\r\n type: $themeConfig.layout.footer.type,\r\n },\r\n },\r\n },\r\n getters: {},\r\n mutations: {\r\n TOGGLE_RTL(state) {\r\n state.layout.isRTL = !state.layout.isRTL\r\n document.documentElement.setAttribute('dir', state.layout.isRTL ? 'rtl' : 'ltr')\r\n },\r\n UPDATE_SKIN(state, skin) {\r\n state.layout.skin = skin\r\n\r\n // Update value in localStorage\r\n localStorage.setItem('vuexy-skin', skin)\r\n\r\n // Update DOM for dark-layout\r\n if (skin === 'dark') document.body.classList.add('dark-layout')\r\n else if (document.body.className.match('dark-layout')) document.body.classList.remove('dark-layout')\r\n },\r\n UPDATE_ROUTER_TRANSITION(state, val) {\r\n state.layout.routerTransition = val\r\n },\r\n UPDATE_LAYOUT_TYPE(state, val) {\r\n state.layout.type = val\r\n },\r\n UPDATE_CONTENT_WIDTH(state, val) {\r\n state.layout.contentWidth = val\r\n },\r\n UPDATE_NAV_MENU_HIDDEN(state, val) {\r\n state.layout.menu.hidden = val\r\n },\r\n UPDATE_NAVBAR_CONFIG(state, obj) {\r\n Object.assign(state.layout.navbar, obj)\r\n },\r\n UPDATE_FOOTER_CONFIG(state, obj) {\r\n Object.assign(state.layout.footer, obj)\r\n },\r\n },\r\n actions: {},\r\n}\r\n","import { $themeConfig } from '@themeConfig'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n isVerticalMenuCollapsed: $themeConfig.layout.menu.isCollapsed,\r\n },\r\n getters: {},\r\n mutations: {\r\n UPDATE_VERTICAL_MENU_COLLAPSED(state, val) {\r\n state.isVerticalMenuCollapsed = val\r\n },\r\n },\r\n actions: {},\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\nconst state = {\r\n notificationCount: 0,\r\n notifications: [],\r\n\r\n generalNotificationList: [],\r\n}\r\n\r\nconst getters = {\r\n getNotificationCount(state) {\r\n return state.notificationCount;\r\n },\r\n\r\n getNotifications(state) {\r\n return state.notifications;\r\n },\r\n\r\n getAllGeneralNotifications(state) {\r\n return state.generalNotificationList;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setNotification(state, notificationData) {\r\n state.notifications = notificationData.generalNotificationList;\r\n state.notificationCount = notificationData.notReadedCount;\r\n },\r\n\r\n setAllGeneralNotification(state, notificationData) {\r\n notificationData.forEach(x => {\r\n x.isOpenDesc = false;\r\n });\r\n state.generalNotificationList = notificationData;\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchNotifications(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get('notification/getless', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n fetchAllGeneralNotifications(context, queryParams) {\r\n return ApiService.getSilent('notification/getAll', queryParams, this)\r\n .then(response => {\r\n context.commit('setAllGeneralNotification', response.result)\r\n })\r\n },\r\n\r\n readNotifications(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('notification/read', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport AlertService from '@/common/alert.service'\r\n\r\n/* eslint-disable */\r\nconst state = {\r\n ticketData: null,\r\n ticketList: [],\r\n}\r\n\r\nconst getters = {\r\n getTicketData(state) {\r\n return state.ticketData;\r\n },\r\n getTicketList(state) {\r\n return state.ticketList;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setTicketData(state, ticketData) {\r\n state.ticketData = ticketData;\r\n },\r\n setTicketList(state, ticketList) {\r\n state.ticketList = ticketList;\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchTickets(context, queryParams) {\r\n if (context.state.ticketList.length > 0) {\r\n return;\r\n }\r\n\r\n return ApiService.get('ticket', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setTicketList', response.result)\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n });\r\n },\r\n\r\n fetchTicket(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`ticket/${queryParams.ticketNo}`, {}, this)\r\n .then(response => {\r\n context.commit('setTicketData', response.result);\r\n resolve(response);\r\n })\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n createTicket(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.upload('ticket', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n createTicketDetail(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.upload('ticket/message', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n closeTicket(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('ticket/close', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import useJwt from '@/auth/jwt/useJwt'\r\nimport ApiService from '@/common/api.service'\r\nimport { getField, updateField } from 'vuex-map-fields';\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n userData: {\r\n userEmail: null,\r\n firstName: null,\r\n lastName: null,\r\n password: null,\r\n twoFactorAuthActive: true,\r\n },\r\n isUserLoggedIn: false,\r\n logginUserData: JSON.parse(localStorage.getItem('userData')) || null,\r\n }\r\n}\r\n\r\nconst state = getDefaultState()\r\n\r\nconst getters = {\r\n getUserDataField(state) {\r\n return getField(state.userData);\r\n },\r\n\r\n getUserData(state) {\r\n return state.userData;\r\n },\r\n\r\n getIsLoggedIn(state) {\r\n state.isUserLoggedIn = false;\r\n if(localStorage.getItem('userData') && localStorage.getItem(useJwt.jwtConfig.storageTokenKeyName)) {\r\n state.isUserLoggedIn = true;\r\n }\r\n \r\n return state.isUserLoggedIn;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n updateUserDataField(state, field) {\r\n updateField(state.userData, field);\r\n },\r\n updateUserEmail(state, userEmail) {\r\n state.userData.userEmail = userEmail;\r\n },\r\n\r\n setIsLoggedIn(state, status) {\r\n state.isUserLoggedIn = status;\r\n },\r\n}\r\n\r\nconst actions = {\r\n signUp(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('account/signup', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n sendResetPassowrdEmail(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`account/resetpassword/request/${queryParams.emailAddress}`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n checkResetPasswordEmail(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`account/resetpassword/verify/${queryParams.verifyCode}`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n changeResetPasswordEmail(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('account/resetpassword/change', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\nconst state = {\r\n generalSettings: {},\r\n}\r\n\r\nconst getters = {\r\n getGeneralSettings(state) {\r\n return state.generalSettings\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setGeneralSettings(state, generalSettings) {\r\n state.generalSettings = generalSettings\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchGeneralSettings() {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get('user', {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n checkUserName(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('user/checkusername', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n checkUserEmail(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('user/checkemail', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n saveGeneralUserInfo(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('user', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n savePassword(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('user/password/save', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n deleteAccount(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('user/delete', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport AlertService from '@/common/alert.service'\r\n\r\nconst state = {\r\n tempProducts: [],\r\n products: [],\r\n}\r\n\r\nconst getters = {\r\n getProducts(state) {\r\n return state.products\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setProducts(state, products) {\r\n state.products = products;\r\n state.tempProducts = products;\r\n },\r\n setProductTypeFilter(state, type) {\r\n if (type === 0) {\r\n state.products = state.tempProducts;\r\n } else {\r\n state.products = state.tempProducts.filter(x => x.productType === type);\r\n }\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchProducts(context, queryParams) {\r\n /* eslint-disable */\r\n if(context.state.products.length > 0) {\r\n return;\r\n }\r\n\r\n return ApiService.getSilent('products', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setProducts', response.result)\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n\r\n fetchProduct(context, productCode) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`products/code/${productCode}`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n\r\n fetchProductById(context, productId) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`products/${productId}`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport AlertService from '@/common/alert.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n orders: [],\r\n kits: [],\r\n }\r\n}\r\n\r\nconst state = getDefaultState()\r\n\r\nconst getters = {\r\n getOrders(state) {\r\n return state.orders;\r\n },\r\n getKits(state) {\r\n return state.kits;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setOrders(state, orders) {\r\n state.orders = orders;\r\n },\r\n\r\n setKits(state, kits) {\r\n state.kits = kits;\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchOrders(context, queryParams) {\r\n return ApiService.get('order', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setOrders', response.result)\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n fetchKits(context, queryParams) {\r\n return ApiService.get('order/kits', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setKits', response.result)\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n\r\n hasMissedFileFetch(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get('order/kits/hasmissedfile', {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport { PRODUCT_CODES, DA_CHECKOUT_STEPS } from '@/common/config';\r\nimport { getField, updateField } from 'vuex-map-fields';\r\n\r\n/* eslint-disable */\r\nlet kitObj = { \r\n id: 0, \r\n kitName: '', \r\n rawFileKey: null,\r\n rawFileName: '',\r\n rawFileFormat: '', \r\n targetCoordinate: '', \r\n presetEthnicityId: null,\r\n \r\n selectedEthnicityName: 'Select Ethnicity',\r\n isEmptyPresetEthnicityId: false,\r\n isLoading: false,\r\n emptyKitName: false,\r\n emptyRawFileKey: null,\r\n emptyTargetCoordinate: false,\r\n isShowDropdown: false,\r\n};\r\n\r\nconst persistedState = JSON.parse(localStorage.getItem('deepACheckout'));\r\n\r\nconst getDefaultState = () => {\r\n return {\r\n selectedProductCode: PRODUCT_CODES.UPLOAD_DA_RAW_DATA,\r\n selectedStepCode: DA_CHECKOUT_STEPS.UPLOAD,\r\n\r\n productData: null,\r\n userData: {\r\n userEmail: null,\r\n firstName: null,\r\n lastName: null,\r\n password: null,\r\n twoFactorAuthActive: true,\r\n },\r\n createOrderData: {\r\n subtotal: null,\r\n discountSubtotal: null,\r\n paymentGuid: null,\r\n product: null,\r\n productQuantity: 1,\r\n paymentType: 2,\r\n promotionDetailGuid: null,\r\n kitList: [Object.assign({}, kitObj)],\r\n\r\n isFinishedPayment: false,\r\n isConfirmPrivacyPalicy: false,\r\n },\r\n }\r\n}\r\n\r\nconst state = persistedState ? persistedState : getDefaultState()\r\n\r\nconst getters = {\r\n getCreateOrderData(state) {\r\n return state.createOrderData;\r\n },\r\n getCheckoutQuery(state) {\r\n const product = state.productData.product;\r\n const orderData = state.createOrderData;\r\n \r\n const queryParams = {\r\n _subtotal: orderData.subtotal.toString().replace(',', '.'),\r\n _discountSubtotal: orderData.discountSubtotal != null ? orderData.discountSubtotal.toString().replace(',', '.') : null,\r\n \r\n productId: product.id,\r\n paymentGuid: orderData.paymentGuid,\r\n promotionDetailGuid: orderData.promotionDetailGuid,\r\n kitList: orderData.kitList,\r\n };\r\n return queryParams;\r\n },\r\n getOrderSubTotal(state) {\r\n return state.createOrderData.discountSubtotal === null ? state.createOrderData.subtotal : state.createOrderData.discountSubtotal;\r\n },\r\n getProductData(state) {\r\n return state.productData;\r\n },\r\n\r\n // User\r\n getUserDataField(state) {\r\n return getField(state.userData);\r\n },\r\n getUserData(state) {\r\n return state.userData;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setProductData(state, productData) {\r\n state.productData = productData;\r\n },\r\n setCreateOrderData(state, { key, value }) {\r\n state.createOrderData[key] = value;\r\n },\r\n\r\n setOrderKitsData(state, { index, key, value }) {\r\n state.createOrderData.kitList[index][key] = value;\r\n },\r\n\r\n setKitFileData(state, { index, rawFileKey, rawFileName, rawFileFormat }) {\r\n state.createOrderData.kitList[index].rawFileKey = rawFileKey;\r\n state.createOrderData.kitList[index].rawFileName = rawFileName;\r\n state.createOrderData.kitList[index].rawFileFormat = rawFileFormat;\r\n state.createOrderData.kitList[index].emptyRawFileKey = false;\r\n },\r\n removeKitFileData(state, { index }) {\r\n state.createOrderData.kitList[index].rawFileKey = null;\r\n state.createOrderData.kitList[index].rawFileName = '';\r\n state.createOrderData.kitList[index].rawFileFormat = '';\r\n state.createOrderData.kitList[index].emptyRawFileKey = true;\r\n },\r\n\r\n changeKitNumber(state, count) {\r\n /* eslint-disable */\r\n state.createOrderData.productQuantity = count;\r\n const fileLength = state.createOrderData.kitList.length;\r\n if(count > fileLength) {\r\n for (let index = fileLength; index < count; index++) {\r\n const newFile = Object.assign({}, kitObj);\r\n newFile.id = index;\r\n state.createOrderData.kitList.push(newFile)\r\n }\r\n }\r\n\r\n if(count < fileLength) {\r\n for (let index = 0; index < fileLength - count; index++) {\r\n state.createOrderData.kitList.pop();\r\n }\r\n }\r\n },\r\n\r\n resetOrderState(state) {\r\n kitObj = { \r\n id: 0, \r\n kitName: '', \r\n rawFileKey: null,\r\n rawFileName: '',\r\n rawFileFormat: '', \r\n targetCoordinate: '', \r\n presetEthnicityId: null,\r\n \r\n selectedEthnicityName: 'Select Ethnicity',\r\n isEmptyPresetEthnicityId: false,\r\n isLoading: false,\r\n emptyKitName: false,\r\n emptyRawFileKey: null,\r\n emptyTargetCoordinate: false,\r\n isShowDropdown: false,\r\n };\r\n Object.assign(state, getDefaultState())\r\n },\r\n\r\n closeDropdowns(state) {\r\n state.createOrderData.kitList.forEach(element => {\r\n element.isShowDropdown = false;\r\n });\r\n },\r\n\r\n // User\r\n updateUserDataField(state, field) {\r\n updateField(state.userData, field);\r\n },\r\n}\r\n\r\nconst actions = {\r\n saveCheckout(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('Checkout/g25', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n createPaymentIntent(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('payment/create/intent', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n applyPromotionCode(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('Promotion/apply/code', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport { PRODUCT_CODES } from '@/common/config';\r\nimport { getField, updateField } from 'vuex-map-fields';\r\n\r\n/* eslint-disable */\r\nlet kitObj = { \r\n id: 0, \r\n personName: '', \r\n fileName: '', \r\n preTempOrderRawDataGuid: null,\r\n emptyPreTempOrderRawDataGuid: false,\r\n isLoading: false,\r\n emptyPersonName: false,\r\n isShowDropdown: false,\r\n};\r\n\r\nconst persistedState = JSON.parse(localStorage.getItem('traitCheckout'));\r\n\r\nconst getDefaultState = () => {\r\n return {\r\n selectedProductCode: PRODUCT_CODES.UPLOAD_TRAIT_RAW_DATA,\r\n productData: null,\r\n userData: {\r\n userEmail: null,\r\n firstName: null,\r\n lastName: null,\r\n password: null,\r\n twoFactorAuthActive: true,\r\n },\r\n createOrderData: {\r\n subtotal: null,\r\n discountSubtotal: null,\r\n currencyUnit: null,\r\n paymentType: 2,\r\n paymentGuid: null,\r\n product: null,\r\n note: null,\r\n productQuantity: 1,\r\n kits: [Object.assign({}, kitObj)],\r\n isFinishedPayment: false,\r\n preTempOrderGuid: null,\r\n promotionDetailGuid: null,\r\n isConfirmPrivacyPalicy: false,\r\n },\r\n }\r\n}\r\n\r\nconst state = persistedState ? persistedState : getDefaultState()\r\n\r\nconst getters = {\r\n getCreateOrderData(state) {\r\n return state.createOrderData;\r\n },\r\n getCheckoutQuery(state) {\r\n const product = state.productData.product;\r\n const orderData = state.createOrderData;\r\n \r\n const queryParams = {\r\n subtotal: orderData.subtotal.toString().replace(',', '.'),\r\n discountSubtotal: orderData.discountSubtotal != null ? orderData.discountSubtotal.toString().replace(',', '.') : null,\r\n productQuantity: orderData.productQuantity,\r\n currencyUnit: product.currencyUnit,\r\n productId: product.id,\r\n paymentType: orderData.paymentType,\r\n paymentGuid: orderData.paymentGuid,\r\n promotionDetailGuid: orderData.promotionDetailGuid,\r\n preTempOrderGuid: orderData.preTempOrderGuid,\r\n personList: orderData.kits,\r\n };\r\n return queryParams;\r\n },\r\n getOrderSubTotal(state) {\r\n return state.createOrderData.discountSubtotal === null ? state.createOrderData.subtotal : state.createOrderData.discountSubtotal;\r\n },\r\n getProductData(state) {\r\n return state.productData;\r\n },\r\n\r\n // User\r\n getUserDataField(state) {\r\n return getField(state.userData);\r\n },\r\n getUserData(state) {\r\n return state.userData;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setProductData(state, productData) {\r\n state.productData = productData;\r\n },\r\n setCreateOrderData(state, { key, value }) {\r\n state.createOrderData[key] = value;\r\n },\r\n\r\n setOrderFileData(state, { key, value, index }) {\r\n state.createOrderData.kits[index][key] = value;\r\n },\r\n addOrderFile(state, fileItem) {\r\n const findFileObj = state.createOrderData.kits.find(x => x.id == fileItem.id);\r\n if (findFileObj) {\r\n findFileObj.fileName = fileItem.fileName;\r\n findFileObj.preTempOrderRawDataGuid = fileItem.preTempOrderRawDataGuid;\r\n findFileObj.emptyPreTempOrderRawDataGuid = false;\r\n }\r\n },\r\n removeOrderFile(state, fileItem) {\r\n const findFileObj = state.createOrderData.kits.find(x => x.id == fileItem.id);\r\n if (findFileObj) {\r\n findFileObj.fileName = '';\r\n findFileObj.preTempOrderRawDataGuid = null;\r\n findFileObj.emptyPreTempOrderRawDataGuid = true;\r\n }\r\n },\r\n\r\n changeFileArray(state, count) {\r\n /* eslint-disable */\r\n state.createOrderData.productQuantity = count;\r\n const fileLength = state.createOrderData.kits.length;\r\n if(count > fileLength) {\r\n for (let index = fileLength; index < count; index++) {\r\n const newFile = Object.assign({}, kitObj);\r\n newFile.id = index;\r\n state.createOrderData.kits.push(newFile)\r\n }\r\n }\r\n\r\n if(count < fileLength) {\r\n for (let index = 0; index < fileLength - count; index++) {\r\n state.createOrderData.kits.pop();\r\n }\r\n }\r\n },\r\n\r\n resetOrderState(state) {\r\n kitObj = { \r\n id: 0, \r\n personName: '', \r\n fileName: '', \r\n preTempOrderRawDataGuid: null,\r\n emptyPreTempOrderRawDataGuid: false,\r\n isLoading: false,\r\n emptyPersonName: false,\r\n isShowDropdown: false,\r\n };\r\n Object.assign(state, getDefaultState())\r\n },\r\n\r\n closeDropdowns(state) {\r\n state.createOrderData.kits.forEach(element => {\r\n element.isShowDropdown = false;\r\n });\r\n },\r\n\r\n // User\r\n updateUserDataField(state, field) {\r\n updateField(state.userData, field);\r\n },\r\n}\r\n\r\nconst actions = {\r\n saveChecout(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('Checkout/trait', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n createPaymentIntent(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('payment/create/intent', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n createPaymentDirect(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('order/payment/create/direct', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n applyPromotionCode(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('Promotion/apply/code', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport { PRODUCT_CODES } from '@/common/config';\r\n\r\n/* eslint-disable */\r\nlet kitObj = { \r\n id: 0, \r\n personName: '', \r\n fileName: '', \r\n presetEthnicityId: null,\r\n selectedRegionName: 'Select Ethnicity',\r\n isEmptyPresetEthnicityId: false,\r\n targetCoordinate: '', \r\n preTempOrderRawDataGuid: null,\r\n emptyPreTempOrderRawDataGuid: false,\r\n isLoading: false,\r\n emptyPersonName: false,\r\n emptyTargetCoordinate: false,\r\n isShowDropdown: false,\r\n};\r\n\r\nconst getDefaultState = () => {\r\n return {\r\n mobilePageCode: 'ACCOUNT',\r\n productData: null,\r\n partnerLinkData: null,\r\n createOrderData: {\r\n subtotal: null,\r\n discountSubtotal: null,\r\n currencyUnit: null,\r\n paymentType: 2,\r\n paymentGuid: null,\r\n product: null,\r\n note: null,\r\n productQuantity: 1,\r\n kits: [Object.assign({}, kitObj)],\r\n isFinishedPayment: false,\r\n isConfirmPrivacyPalicy: false,\r\n businessPartnerLinkGuid: null,\r\n },\r\n }\r\n}\r\n\r\nconst state = getDefaultState()\r\n\r\nconst getters = {\r\n getCreateOrderData(state) {\r\n return state.createOrderData;\r\n },\r\n getCheckoutQuery(state) {\r\n const product = state.productData.product;\r\n const orderData = state.createOrderData;\r\n \r\n const queryParams = {\r\n subtotal: orderData.subtotal.toString().replace(',', '.'),\r\n discountSubtotal: orderData.discountSubtotal != null ? orderData.discountSubtotal.toString().replace(',', '.') : null,\r\n productQuantity: orderData.productQuantity,\r\n currencyUnit: product.currencyUnit,\r\n productId: product.id,\r\n paymentType: orderData.paymentType,\r\n paymentGuid: orderData.paymentGuid,\r\n person: orderData.kits[0],\r\n businessPartnerLinkGuid: state.partnerLinkData.guid,\r\n };\r\n \r\n return queryParams;\r\n },\r\n getOrderSubTotal(state) {\r\n return state.createOrderData.discountSubtotal === null ? state.createOrderData.subtotal : state.createOrderData.discountSubtotal;\r\n },\r\n getProductData(state) {\r\n return state.productData;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setProductData(state, productData) {\r\n state.productData = productData;\r\n const findPrice = productData.productPrices.find(x => x.productCount === 1);\r\n if (findPrice) {\r\n const subTotal = findPrice.disCountedPrice.toString().replace('.', ',');\r\n state.createOrderData.subtotal = subTotal;\r\n\r\n if (state.partnerLinkData) {\r\n const discountTotal = findPrice.disCountedPrice - (findPrice.disCountedPrice * state.partnerLinkData.discount / 100);\r\n state.createOrderData.discountSubtotal = Math.round(discountTotal * 100) / 100;\r\n }\r\n }\r\n },\r\n setPartnerLinkData(state, partnerLinkData) {\r\n state.partnerLinkData = partnerLinkData;\r\n state.createOrderData.kits[0].personName = partnerLinkData.fullName;\r\n },\r\n setCreateOrderData(state, { key, value }) {\r\n state.createOrderData[key] = value;\r\n },\r\n\r\n resetOrderState(state) {\r\n kitObj = { \r\n id: 0, \r\n personName: '', \r\n fileName: '', \r\n preTempOrderRawDataGuid: null,\r\n emptyPreTempOrderRawDataGuid: false,\r\n isLoading: false,\r\n emptyPersonName: false,\r\n isShowDropdown: false,\r\n };\r\n Object.assign(state, getDefaultState())\r\n },\r\n\r\n closeDropdowns(state) {\r\n state.createOrderData.kits.forEach(element => {\r\n element.isShowDropdown = false;\r\n });\r\n },\r\n}\r\n\r\nconst actions = {\r\n saveChecout(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('Checkout/g25-partner', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n createPaymentIntent(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.postSilent('payment/create/intent', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n createPaymentDirect(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('order/payment/create/direct', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n fetchPartnerLink(context, guid) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post('BusinessPartner/check-guid', { linkGuid: guid }, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n selectedPage: 'INFO',\r\n\r\n uploadedFileList: [],\r\n }\r\n}\r\n\r\nconst state = getDefaultState()\r\n\r\nconst getters = {\r\n}\r\n\r\nconst mutations = {\r\n}\r\n\r\nconst actions = {\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport AlertService from '@/common/alert.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n regionDataVersion: null,\r\n\r\n regionGrups: [],\r\n regions: [],\r\n \r\n pcaRegionGrups: [],\r\n pcaRegions: [],\r\n \r\n ancestryGeoJson: [],\r\n modernPopGeoJson: null,\r\n modernPopGeoJsonResult: null,\r\n\r\n ancientPeriods: [],\r\n selectedAncientPeriod: {id: 0, number: 0, name: ''},\r\n }\r\n}\r\n\r\nconst state = getDefaultState()\r\n\r\nconst getters = {\r\n getRegionGrups(state) {\r\n return state.regionGrups;\r\n },\r\n getRegions(state) {\r\n return state.regions;\r\n },\r\n\r\n \r\n getPcaRegionGrups(state) {\r\n return state.pcaRegionGrups;\r\n },\r\n getPcaRegions(state) {\r\n return state.pcaRegions;\r\n },\r\n\r\n getAncestryGeoJson(state) {\r\n return state.ancestryGeoJson;\r\n },\r\n getModernPopGeoJson(state) {\r\n return state.modernPopGeoJson;\r\n },\r\n getModernPopGeoJsonResult(state) {\r\n return state.modernPopGeoJsonResult;\r\n },\r\n\r\n getAncientPeriods(state) {\r\n return state.ancientPeriods;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n // order result\r\n setRegionGrups(state, results) {\r\n state.regionGrups = results.filter(x => x.presetRegionGrupType === 1);\r\n state.pcaRegionGrups = results.filter(x => x.presetRegionGrupType === 2);\r\n },\r\n setRegions(state, results) {\r\n state.regions = results.filter(x => x.presetRegionType === 1);\r\n state.pcaRegions = results.filter(x => x.presetRegionType === 2);\r\n },\r\n\r\n setAncestryGeoJson(state, ancestryGeoJson) {\r\n state.ancestryGeoJson = ancestryGeoJson;\r\n },\r\n\r\n setMdernPopGeoJson(state, modernPopGeoJson) {\r\n state.modernPopGeoJson = modernPopGeoJson;\r\n },\r\n setMdernPopGeoJsonResult(state, modernPopGeoJsonResult) {\r\n state.modernPopGeoJsonResult = modernPopGeoJsonResult;\r\n },\r\n\r\n // Ancient Periods\r\n setAncientPeriods(state, data) {\r\n state.ancientPeriods = data.result;\r\n const currentPeriods = data.result.filter(x => x.dataVersion === data.dataVersion);\r\n if (currentPeriods.length > 0) {\r\n state.selectedAncientPeriod = currentPeriods[0];\r\n }\r\n },\r\n setSelectedPeriod(state, selectedPeriod) {\r\n state.selectedAncientPeriod = selectedPeriod;\r\n },\r\n setDefaultPeriod(state, dataVersion) {\r\n const currentPeriods = state.ancientPeriods.filter(x => x.dataVersion === dataVersion);\r\n if (currentPeriods.length > 0) {\r\n state.selectedAncientPeriod = currentPeriods[0];\r\n }\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchRegions(context, queryParams) {\r\n return ApiService.get('PresetRegion', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setRegions', response.result)\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n fetchRegionGrups(context, queryParams) {\r\n return ApiService.get('PresetRegion/grups', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setRegionGrups', response.result)\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n\r\n // Map Data\r\n fetchMapSourceDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n\r\n ApiService.post('PresetMapData/sourcedata', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n fetchMapSourceModern(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get('PresetMapData/moderngeojson', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n \r\n fetchMapDetailDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.getSilent(`PresetMapData/${queryParams.id}`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n // Farmer And HGs Data\r\n fetchFarmerAndHGsDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n\r\n ApiService.post('PresetFarmerAndHGs/sourcedata', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n fetchFarmerAndHGsDetailData(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n ApiService.get(`PresetFarmerAndHGs`, queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n // Ancient\r\n fetchAncientProxImageDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n \r\n ApiService.post('ancientproxdata/sourcedata', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n fetchAncientProxDetailDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.getSilent(`ancientproxdata/${queryParams.id}`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n // Ancient Periods\r\n fetchAncientPeriods(context, queryParams) {\r\n return ApiService.get('PresetAncientPeriod', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setAncientPeriods', { result: response.result, dataVersion: context.rootGetters['orderResult/getDataVersion']})\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport IllusDnaService from '@/common/custom-service/IllusDnaService'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n resultSelectedTab: 'ANCESTRY_BREAKDOWN',\r\n\r\n selectedTarget: null,\r\n selectedTargetTitle: null,\r\n orderResults: [],\r\n selectedResultId: null,\r\n selectedResult: { orderResultStatus: null },\r\n\r\n IllusDnaService: IllusDnaService,\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n // order result\r\n getOrderResults(state) {\r\n return state.orderResults;\r\n },\r\n getSelectedOrderResultId(state) {\r\n return state.selectedResultId;\r\n },\r\n getSelectedOrderResult(state) {\r\n return state.selectedResult;\r\n },\r\n getDataVersion(state) {\r\n return state.selectedResult.dataVersion;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n // order result\r\n setOrderResults(state, results) {\r\n if (results.length > 0) {\r\n state.orderResults = results;\r\n } else {\r\n state.selectedResult.orderResultStatus = 0;\r\n }\r\n },\r\n\r\n setTargetData(state, value) {\r\n state.selectedResult = value;\r\n state.selectedResultId = value.id;\r\n state.selectedTarget = value.targetCoordinate;\r\n state.selectedTargetTitle = value.resultTitle;\r\n\r\n const resolveSource = state.IllusDnaService.codeDataToArray(state.selectedTarget);\r\n if (resolveSource.isSuccess) {\r\n state.IllusDnaService.onSetTarget(resolveSource.result);\r\n }\r\n },\r\n\r\n // reset state\r\n resetOrderState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n // order result\r\n fetchOrderResults(context) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`OrderResult`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n orderResults: [],\r\n selectedResult: { orderResultStatus: null },\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n // order result\r\n getOrderResults(state) {\r\n return state.orderResults;\r\n },\r\n getSelectedOrderResultId(state) {\r\n return state.selectedResult.id;\r\n },\r\n getSelectedOrderResult(state) {\r\n return state.selectedResult;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n // order result\r\n setOrderResults(state, results) {\r\n if (results.length > 0) {\r\n state.orderResults = results;\r\n } else {\r\n state.selectedResult.orderResultStatus = 0;\r\n }\r\n },\r\n\r\n setTargetData(state, value) {\r\n state.selectedResult = value;\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchOrderResults(context) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get(`OrderResultsTrait`, {}, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import { regionDefaultId, regionGrupDefaultId } from '@/common/config';\r\n\r\n/* eslint-disable */\r\nconst breakDownHelpers = {\r\n _SetSelectedAncestryGrup(state, value) {\r\n if (value) {\r\n state.selectedRegionGrupId = value;\r\n } else {\r\n state.selectedRegionGrupId = regionGrupDefaultId;\r\n }\r\n },\r\n\r\n _SetSelectedRegion(state, IllusDnaService, value) {\r\n if (value === null) {\r\n value = regionDefaultId;\r\n }\r\n\r\n if (value === 1) {\r\n IllusDnaService.dataObject.numberOfPopulation = state.numberOfGlobalnPop;\r\n } else {\r\n IllusDnaService.dataObject.numberOfPopulation = state.numberOfDefaulnPop;\r\n }\r\n state.selectedRegionId = value;\r\n },\r\n\r\n _SetAncestryPureResult(state, result) {\r\n state.regionPureResults = JSON.parse(JSON.stringify(result));\r\n const tempRegionResults = JSON.parse(JSON.stringify(result));\r\n tempRegionResults.outPuts = [];\r\n result.outPuts.forEach(value => {\r\n const splitValue = value.resultsTable.split(':');\r\n if (splitValue.length > 0) {\r\n let findValue = tempRegionResults.outPuts.find(x => x.resultsTable === splitValue[0]);\r\n if (findValue) {\r\n findValue.currentResult += value.currentResult;\r\n } else {\r\n value.resultsTable = splitValue[0];\r\n tempRegionResults.outPuts.push(value);\r\n }\r\n }\r\n });\r\n tempRegionResults.outPuts.sort((a, b) => b.currentResult - a.currentResult);\r\n state.regionResults = tempRegionResults;\r\n },\r\n\r\n // Modern Break Down\r\n _SetModernBreakDownResult(state, selectedResultId, result) {\r\n this._SetModernBreakDownResults(state.modernBreadDownResults, selectedResultId, result);\r\n },\r\n\r\n _SetModernBreakDownResults(stateResults, selectedResultId, result) {\r\n const tempRegionResults = JSON.parse(JSON.stringify(result));\r\n if (!tempRegionResults.isCalculated) {\r\n tempRegionResults.outPuts = [];\r\n result.outPuts.forEach(value => {\r\n const splitValue = value.resultsTable.split(':');\r\n if (splitValue.length > 0) {\r\n let firstGroup = tempRegionResults.outPuts.find(x => x.resultsTable === splitValue[0]);\r\n if (firstGroup) {\r\n firstGroup.currentResult += value.currentResult;\r\n } else {\r\n firstGroup = { resultsTable: splitValue[0], currentResult: value.currentResult, subResult: [] };\r\n tempRegionResults.outPuts.push(firstGroup);\r\n }\r\n\r\n let secondGroup = firstGroup.subResult.find(x => x.resultsTable === splitValue[1]);\r\n if (secondGroup) {\r\n secondGroup.currentResult += value.currentResult;\r\n } else {\r\n secondGroup = { resultsTable: splitValue[1], currentResult: value.currentResult, subResult: [] };\r\n firstGroup.subResult.push(secondGroup);\r\n }\r\n\r\n let thirdGroup = secondGroup.subResult.find(x => x.resultsTable === splitValue[2]);\r\n if (thirdGroup) {\r\n thirdGroup.currentResult += value.currentResult;\r\n } else {\r\n thirdGroup = { resultsTable: splitValue[2], currentResult: value.currentResult, subResult: [] };\r\n secondGroup.subResult.push(thirdGroup);\r\n }\r\n }\r\n });\r\n }\r\n // this.IllusDnaService.dataObject.numberOfPopulation = tempPop;\r\n tempRegionResults.outPuts.sort((a, b) => b.currentResult - a.currentResult);\r\n const modernBreakDown = stateResults.find(x => x.selectedResultId === selectedResultId);\r\n if (modernBreakDown) {\r\n modernBreakDown.result = tempRegionResults;\r\n } else {\r\n stateResults.push({\r\n selectedResultId: selectedResultId,\r\n result: tempRegionResults,\r\n });\r\n }\r\n },\r\n\r\n _SetModernBreakDownSourceDataActive(state, IllusDnaService, sourceData) {\r\n if (state.modernBreadDownSourceDataActive.length === 0) {\r\n const sourceDatas = [];\r\n if(sourceData) {\r\n const resolveSource = IllusDnaService.codeDataToArray(sourceData);\r\n if (resolveSource.isSuccess) {\r\n resolveSource.result.forEach(item => {\r\n let sourceCodes = item[0];\r\n if (sourceCodes.includes(':')) {\r\n sourceCodes = sourceCodes.split(':');\r\n }\r\n if (!sourceDatas.find(x => x.sourceCode === sourceCodes[1])) {\r\n sourceDatas.push({\r\n codeLabel: sourceCodes[0] + ': ' + sourceCodes[1],\r\n sourceCode: sourceCodes[1],\r\n isActive: false,\r\n });\r\n }\r\n });\r\n }\r\n sourceDatas.sort((a,b) => (a.codeLabel > b.codeLabel) ? 1 : ((b.codeLabel > a.codeLabel) ? -1 : 0))\r\n }\r\n state.modernBreadDownSourceDataActive = sourceDatas;\r\n }\r\n },\r\n\r\n _FilterModernBreakDownSourceData(IllusDnaService, filteredData) {\r\n const selectedData = filteredData.filter(x => x.isActive);\r\n IllusDnaService.dataArrays.sourceCodeArray = IllusDnaService.dataArrays.sourceCodeArray.filter(item => {\r\n let sourceCode = item[0];\r\n if (sourceCode.includes(':')) {\r\n sourceCode = sourceCode.split(':')[1];\r\n }\r\n if(selectedData.find(x => x.sourceCode === sourceCode)) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n IllusDnaService.dataArrays.sourceCodeNumber = IllusDnaService.dataArrays.sourceCodeArray.length;\r\n },\r\n\r\n // Custom Ancestry Break Down\r\n _SetCustomAncBrDnResult(state, selectedResultId, result) {\r\n this._SetCustomABResults(state.customAncBrDnResults, selectedResultId, result);\r\n },\r\n\r\n _SetCustomABResults(stateResults, selectedResultId, result) {\r\n const regionResults = JSON.parse(JSON.stringify(result));\r\n const tempRegionResults = JSON.parse(JSON.stringify(result));\r\n tempRegionResults.outPuts = [];\r\n result.outPuts.forEach(value => {\r\n const splitValue = value.resultsTable.split(':');\r\n if (splitValue.length > 0) {\r\n let findValue = tempRegionResults.outPuts.find(x => x.resultsTable === splitValue[0]);\r\n if (findValue) {\r\n findValue.currentResult += value.currentResult;\r\n } else {\r\n value.resultsTable = splitValue[0];\r\n tempRegionResults.outPuts.push(value);\r\n }\r\n }\r\n });\r\n \r\n tempRegionResults.outPuts.sort((a, b) => b.currentResult - a.currentResult);\r\n const farmerHGsResult = stateResults.find(x => x.selectedResultId === selectedResultId);\r\n if (farmerHGsResult) {\r\n farmerHGsResult.pureResult = regionResults;\r\n farmerHGsResult.result = tempRegionResults;\r\n } else {\r\n stateResults.push({\r\n selectedResultId: selectedResultId,\r\n result: tempRegionResults,\r\n pureResult: regionResults\r\n });\r\n }\r\n },\r\n\r\n _SetCustomizeSourceDataActive(state, IllusDnaService, sourceData) {\r\n const sourceDatas = [];\r\n if(sourceData) {\r\n const resolveSource = IllusDnaService.codeDataToArray(sourceData);\r\n if (resolveSource.isSuccess) {\r\n resolveSource.result.forEach(item => {\r\n let sourceCode = item[0];\r\n if (sourceCode.includes(':')) {\r\n sourceCode = sourceCode.split(':')[0];\r\n }\r\n if (!sourceDatas.find(x => x.sourceCode === sourceCode)) {\r\n sourceDatas.push({\r\n sourceCode,\r\n isActive: true,\r\n });\r\n }\r\n });\r\n }\r\n sourceDatas.sort((a,b) => (a.sourceCode > b.sourceCode) ? 1 : ((b.sourceCode > a.sourceCode) ? -1 : 0))\r\n }\r\n state.customAncBrDnSourceDataActive = sourceDatas;\r\n },\r\n\r\n _FilterCustomizSourceData(IllusDnaService, filteredData) {\r\n const selectedData = filteredData.filter(x => x.isActive);\r\n IllusDnaService.dataArrays.sourceCodeArray = IllusDnaService.dataArrays.sourceCodeArray.filter(item => {\r\n let sourceCode = item[0];\r\n if (sourceCode.includes(':')) {\r\n sourceCode = sourceCode.split(':')[0];\r\n }\r\n if(selectedData.find(x => x.sourceCode === sourceCode)) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n IllusDnaService.dataArrays.sourceCodeNumber = IllusDnaService.dataArrays.sourceCodeArray.length;\r\n },\r\n\r\n // Periodical Ancestry Break Down\r\n _SetPeriodicalAncBrDnResult(state, selectedResultId, result) {\r\n this._SetPeriodicalABResults(state.periodicalAncBrDnResults, selectedResultId, state.selectedAncientCalculator.id, result);\r\n },\r\n\r\n _SetPeriodicalABResults(stateResults, selectedResultId, selectedAncientCalculatorId, result) {\r\n const regionResults = JSON.parse(JSON.stringify(result));\r\n const tempRegionResults = JSON.parse(JSON.stringify(result));\r\n tempRegionResults.outPuts = [];\r\n result.outPuts.forEach(value => {\r\n const splitValue = value.resultsTable.split(':');\r\n if (splitValue.length > 0) {\r\n let findValue = tempRegionResults.outPuts.find(x => x.resultsTable === splitValue[0]);\r\n if (findValue) {\r\n findValue.currentResult += value.currentResult;\r\n } else {\r\n value.resultsTable = splitValue[0];\r\n tempRegionResults.outPuts.push(value);\r\n }\r\n }\r\n });\r\n \r\n tempRegionResults.outPuts.sort((a, b) => b.currentResult - a.currentResult);\r\n const farmerHGsResult = stateResults.find(x => x.selectedResultId === selectedResultId && x.selectedAncientCalculatorId === selectedAncientCalculatorId);\r\n if (farmerHGsResult) {\r\n farmerHGsResult.pureResult = regionResults;\r\n farmerHGsResult.result = tempRegionResults;\r\n } else {\r\n stateResults.push({\r\n selectedResultId: selectedResultId,\r\n selectedAncientCalculatorId: selectedAncientCalculatorId,\r\n result: tempRegionResults,\r\n pureResult: regionResults\r\n });\r\n }\r\n },\r\n}\r\n\r\nexport default breakDownHelpers;","import ApiService from '@/common/api.service'\r\nimport breakDownHelpers from './breakDownHelpers';\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n isFixedRegion: false,\r\n isViewAllRegionMap: false,\r\n numberOfGlobalnPop: 5,\r\n numberOfDefaulnPop: 0,\r\n regionSourceDatas: [],\r\n regionResults: null,\r\n regionPureResults: null,\r\n regionFinalResults: null,\r\n selectedRegionId: null,\r\n selectedRegionGrupId: null,\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getRegionResults(state) {\r\n return state.regionResults;\r\n },\r\n getRegionPureResults(state) {\r\n return state.regionPureResults;\r\n },\r\n getRegionFinalResults(state) {\r\n return state.regionFinalResults;\r\n },\r\n\r\n getRegionSourceDatas(state) {\r\n return state.regionResults.outPuts.map(item => item.resultsTable);\r\n },\r\n\r\n getOrderSelectedRegionGrup(state) {\r\n return state.selectedRegionGrupId;\r\n },\r\n getOrderSelectedRegion(state) {\r\n return state.selectedRegionId;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setRegionFinalResults(state, result) {\r\n state.regionFinalResults = result;\r\n },\r\n setNumberOfGlobalnPop(state, value) {\r\n state.numberOfGlobalnPop = value;\r\n },\r\n setSelectedRegionGrup(state, regionGrup) {\r\n breakDownHelpers._SetSelectedAncestryGrup(state, regionGrup);\r\n },\r\n setSelectedRegion(state, region) {\r\n breakDownHelpers._SetSelectedRegion(state, this.state.orderResult.IllusDnaService, region);\r\n },\r\n setRegionByTarget(state) {\r\n if(!state.isFixedRegion) {\r\n const result = this.state.orderResult.selectedResult;\r\n breakDownHelpers._SetSelectedAncestryGrup(state, result.presetRegionGrupId);\r\n breakDownHelpers._SetSelectedRegion(state, this.state.orderResult.IllusDnaService, result.presetRegionId);\r\n }\r\n },\r\n\r\n // Results\r\n setRegionSourceDatas(state, regionResultData) {\r\n if (regionResultData.isHaseResult && regionResultData.result !== '[]') {\r\n breakDownHelpers._SetAncestryPureResult(state, JSON.parse(regionResultData.result));\r\n }\r\n state.regionSourceDatas = regionResultData.source;\r\n },\r\n setAncestryPureResult(state, result) {\r\n breakDownHelpers._SetAncestryPureResult(state, result);\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchRegionSourceDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.get('PresetRegion/sourcedata', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport breakDownHelpers from './breakDownHelpers';\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n modernBreakDownnPop: 3,\r\n modernBreadDownSourceData: [],\r\n modernBreakDownSelectedAll: false,\r\n modernBreadDownSourceDataActive: [],\r\n modernBreadDownResults: [],\r\n modernBreadDownFinalResult: [],\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getModernBreakDownResult(state, getters, rootState) {\r\n const findResult = state.modernBreadDownResults.find(x => x.selectedResultId === rootState.orderResult.selectedResultId);\r\n if (findResult) {\r\n return findResult.result;\r\n }\r\n return [];\r\n },\r\n getModernBreakDownFinalResult(state) {\r\n return state.modernBreadDownFinalResult;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setModernBreakDownSourceData(state, modernBreakDownResultData) {\r\n breakDownHelpers._SetModernBreakDownSourceDataActive(state, this.state.orderResult.IllusDnaService, modernBreakDownResultData.source);\r\n \r\n state.modernBreadDownSourceData = modernBreakDownResultData.source;\r\n if (modernBreakDownResultData.isHaseResult && modernBreakDownResultData.result !== '[]') {\r\n const modernResult = JSON.parse(modernBreakDownResultData.result);\r\n modernResult.isCalculated = true;\r\n breakDownHelpers._SetModernBreakDownResult(state, this.state.orderResult.selectedResultId, modernResult);\r\n }\r\n },\r\n runSingleModernBreakDown(state) {\r\n const tempPop = this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation;\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = state.modernBreakDownnPop;\r\n \r\n const resolveSource = this.state.orderResult.IllusDnaService.codeDataToArray(state.modernBreadDownSourceData);\r\n if (resolveSource.isSuccess) {\r\n this.state.orderResult.IllusDnaService.onSetSource(resolveSource.result);\r\n if(state.modernBreadDownSourceDataActive.length) {\r\n breakDownHelpers._FilterModernBreakDownSourceData(this.state.orderResult.IllusDnaService, state.modernBreadDownSourceDataActive);\r\n }\r\n }\r\n \r\n const result = this.state.orderResult.IllusDnaService.runABAlgorithm();\r\n breakDownHelpers._SetModernBreakDownResult(state, this.state.orderResult.selectedResultId, result);\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = tempPop;\r\n },\r\n setModernBreakDownFinalResults(state, result) {\r\n state.modernBreadDownFinalResult = result;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchModernBreakDownSourceDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n ApiService.post('sourcedata/getmodernbreakdown', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport breakDownHelpers from './breakDownHelpers';\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n customAncBrDnnPop: 3,\r\n customAncBrDnSourceData: null,\r\n isSelectAllCustomAnBrDnSourceData: true,\r\n customAncBrDnSourceDataActive: [],\r\n customAncBrDnResults: [],\r\n customAncBrDnFinalResult: [],\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getCustomAncBrDnResult(state, getters, rootState) {\r\n const findResult = state.customAncBrDnResults.find(x => x.selectedResultId === rootState.orderResult.selectedResultId);\r\n if (findResult) {\r\n return findResult.result;\r\n }\r\n return [];\r\n },\r\n getCustomAncBrPureResult(state, getters, rootState) {\r\n const findResult = state.customAncBrDnResults.find(x => x.selectedResultId === rootState.orderResult.selectedResultId);\r\n if (findResult) {\r\n return findResult.pureResult;\r\n }\r\n return [];\r\n },\r\n getCustomAncBrDnFinalResult(state) {\r\n return state.customAncBrDnFinalResult;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setSelectedCalculator(state, calculator) {\r\n state.selectedAncientCalculator = calculator;\r\n },\r\n setCustomAnBrDnResult(state, customAnBrDnResultData) {\r\n breakDownHelpers._SetCustomizeSourceDataActive(state, this.state.orderResult.IllusDnaService, customAnBrDnResultData.source);\r\n \r\n state.customAncBrDnSourceData = customAnBrDnResultData.source;\r\n if (customAnBrDnResultData.isHaseResult && customAnBrDnResultData.result !== '[]') {\r\n breakDownHelpers._SetCustomAncBrDnResult(state, this.state.orderResult.selectedResultId, JSON.parse(customAnBrDnResultData.result));\r\n }\r\n },\r\n runSingleCustomAnBrDn(state) {\r\n const tempPop = this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation;\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = state.customAncBrDnnPop;\r\n\r\n const resolveSource = this.state.orderResult.IllusDnaService.codeDataToArray(state.customAncBrDnSourceData);\r\n if (resolveSource.isSuccess) {\r\n this.state.orderResult.IllusDnaService.onSetSource(resolveSource.result);\r\n if(state.customAncBrDnSourceDataActive.length) {\r\n breakDownHelpers._FilterCustomizSourceData(this.state.orderResult.IllusDnaService, state.customAncBrDnSourceDataActive);\r\n }\r\n }\r\n \r\n const result = this.state.orderResult.IllusDnaService.runABAlgorithm();\r\n \r\n breakDownHelpers._SetCustomAncBrDnResult(state, this.state.orderResult.selectedResultId, result);\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = tempPop;\r\n },\r\n setCustomAncBrDnResultFinalResults(state, result) {\r\n state.customAncBrDnFinalResult = result;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchCustomBrDnSourceDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n ApiService.post('sourcedata/getcustomanbrdn', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport breakDownHelpers from './breakDownHelpers';\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n selectedAncientCalculator: { id: 0, sourceDataId: null, },\r\n periodicalAncBrDnnPop: 3,\r\n periodicalAncBrDnSourceData: null,\r\n periodicalAncBrDnResults: [],\r\n periodicalAncBrDnFinalResult: [],\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getSelectedCalculator(state) {\r\n return state.selectedAncientCalculator;\r\n },\r\n getPeriodicalAncBrDnResult(state, getters, rootState) {\r\n const findResult = state.periodicalAncBrDnResults.find(x => x.selectedResultId === rootState.orderResult.selectedResultId && x.selectedAncientCalculatorId === state.selectedAncientCalculator.id);\r\n if (findResult) {\r\n return findResult.result;\r\n }\r\n return [];\r\n },\r\n getPeriodicalAncBrPureResult(state, getters, rootState) {\r\n const findResult = state.periodicalAncBrDnResults.find(x => x.selectedResultId === rootState.orderResult.selectedResultId && x.selectedAncientCalculatorId === state.selectedAncientCalculator.id);\r\n if (findResult) {\r\n return findResult.pureResult;\r\n }\r\n return [];\r\n },\r\n getPeriodicalAncBrDnFinalResult(state) {\r\n return state.periodicalAncBrDnFinalResult;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setSelectedCalculator(state, calculator) {\r\n state.selectedAncientCalculator = calculator;\r\n },\r\n setPeriodicalAnBrDnResult(state, customAnBrDnResultData) {\r\n state.periodicalAncBrDnSourceData = customAnBrDnResultData.source;\r\n if (customAnBrDnResultData.isHaseResult && customAnBrDnResultData.result !== '[]') {\r\n breakDownHelpers._SetPeriodicalAncBrDnResult(state, this.state.orderResult.selectedResultId, JSON.parse(customAnBrDnResultData.result));\r\n }\r\n },\r\n runSinglePeriodicalAnBrDn(state) {\r\n const tempPop = this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation;\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = state.periodicalAncBrDnnPop;\r\n\r\n const resolveSource = this.state.orderResult.IllusDnaService.codeDataToArray(state.periodicalAncBrDnSourceData);\r\n if (resolveSource.isSuccess) {\r\n this.state.orderResult.IllusDnaService.onSetSource(resolveSource.result);\r\n }\r\n \r\n const result = this.state.orderResult.IllusDnaService.runABAlgorithm();\r\n breakDownHelpers._SetPeriodicalAncBrDnResult(state, this.state.orderResult.selectedResultId, result);\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = tempPop;\r\n },\r\n setPeriodicalAncBrDnResultFinalResults(state, result) {\r\n state.periodicalAncBrDnFinalResult = result;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n // fetchPeriodicalBrDnSourceDatas(context, queryParams) {\r\n // return new Promise((resolve, reject) => {\r\n // ApiService.post('sourcedata/get/periodicalbrdn', queryParams, this)\r\n // .then(response => resolve(response))\r\n // .catch(error => reject(error))\r\n // });\r\n // },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport farmerHgsHelpers from './farmerHgsHelpers';\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n farmerAndHGsSourceData: [],\r\n farmerAndHGsResults: [],\r\n farmerAndHGsFinalResult: [],\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getFarmerAndHGsResult(state, getters, rootState) {\r\n const findResult = state.farmerAndHGsResults.find(x => x.selectedResultId === rootState.orderResult.selectedResultId);\r\n if (findResult) {\r\n return findResult.result;\r\n }\r\n return [];\r\n },\r\n getFarmerAndHGsFinalResult(state) {\r\n return state.farmerAndHGsFinalResult;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setFarmerAndHGsSourceData(state, farmerHGsResultData) {\r\n if (farmerHGsResultData.isHaseResult) {\r\n farmerHgsHelpers._SetFarmerHGsResult(state, this.state.orderResult.selectedResultId, JSON.parse(farmerHGsResultData.result));\r\n } else {\r\n state.farmerAndHGsSourceData = farmerHGsResultData.source;\r\n const resolveSource = this.state.orderResult.IllusDnaService.codeDataToArray(state.farmerAndHGsSourceData);\r\n if (resolveSource.isSuccess) {\r\n this.state.orderResult.IllusDnaService.onSetSource(resolveSource.result);\r\n }\r\n }\r\n },\r\n runSingleFarmerHGs(state) {\r\n const tempPop = this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation;\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = 0;\r\n const result = this.state.orderResult.IllusDnaService.runABAlgorithm();\r\n \r\n farmerHgsHelpers._SetFarmerHGsResult(state, this.state.orderResult.selectedResultId, result);\r\n this.state.orderResult.IllusDnaService.dataObject.numberOfPopulation = tempPop;\r\n },\r\n setFarmerAndHGsFinalResults(state, result) {\r\n state.farmerAndHGsFinalResult = result;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchFarmerAndHGsSourceDatas(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n queryParams.dataVersion = queryParams.dataVersion ? queryParams.dataVersion : context.rootGetters['orderResult/getDataVersion']\r\n ApiService.post('sourcedata/getfarmerhgs', queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n ancientSourceDatasResult: [],\r\n ancientSourceDatas: [],\r\n closestAncientPopResults: null,\r\n closestAncientImagePopResults: null,\r\n closestAncientPopNumber: '30',\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getClosestAncientPopResults(state) {\r\n return state.closestAncientPopResults;\r\n },\r\n getClosestAncientPopImageResults(state) {\r\n return state.closestAncientImagePopResults;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setAncientSourceDatas(state, sourceDatas) {\r\n if (sourceDatas.length) {\r\n state.ancientSourceDatas = sourceDatas[0].source;\r\n }\r\n \r\n const resolveSource = this.state.orderResult.IllusDnaService.codeDataToArray(state.ancientSourceDatas);\r\n if (resolveSource.isSuccess) {\r\n this.state.orderResult.IllusDnaService.onSetSource(resolveSource.result);\r\n state.ancientSourceDatasResult = resolveSource.result;\r\n }\r\n },\r\n setClosestAncientImageResults(state, result) {\r\n state.closestAncientImagePopResults = result;\r\n },\r\n runAncientDist(state) {\r\n this.state.orderResult.IllusDnaService.dataObject.maxDistOutPut = state.closestAncientPopNumber\r\n const result = this.state.orderResult.IllusDnaService.calculateDistance(0);\r\n state.closestAncientPopResults = result;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchAncientSourceDatas(context, queryParams) {\r\n queryParams.dataVersion = queryParams.dataVersion ? queryParams.dataVersion : context.rootGetters['orderResult/getDataVersion']\r\n return ApiService.get('sourcedata', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setAncientSourceDatas', response.result);\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n fetchSampelCoordinates(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`AncientProxDataSampleCoordinate`, queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n modernSourceDatas: [],\r\n modernSourceDatasResult: [],\r\n closestModernPopResults: null,\r\n closestModerPopNumber: '30',\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getClosestModernPopResults(state) {\r\n return state.closestModernPopResults;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setModernSourceDatas(state, sourceDatas) {\r\n if (sourceDatas.length) {\r\n const resolveSource = this.state.orderResult.IllusDnaService.codeDataToArray(sourceDatas[0].source);\r\n if (resolveSource.isSuccess) {\r\n state.modernSourceDatasResult = resolveSource.result;\r\n state.modernSourceDatas = resolveSource.result.map( item => {\r\n return {\r\n item: item,\r\n isActive: true,\r\n }\r\n });\r\n }\r\n }\r\n \r\n if (state.modernSourceDatas.length) {\r\n let filteredData = state.modernSourceDatas.filter(item => item.isActive === true);\r\n filteredData = filteredData.map(item => item.item);\r\n this.state.orderResult.IllusDnaService.onSetSource(filteredData);\r\n }\r\n },\r\n runModernDist(state) {\r\n this.state.orderResult.IllusDnaService.dataObject.maxDistOutPut = state.closestModerPopNumber\r\n const result = this.state.orderResult.IllusDnaService.calculateDistance(0);\r\n state.closestModernPopResults = result;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchModernSourceDatas(context, queryParams) {\r\n queryParams.dataVersion = queryParams.dataVersion ? queryParams.dataVersion : context.rootGetters['orderResult/getDataVersion']\r\n return ApiService.get('sourcedata', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setModernSourceDatas', response.result);\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n fetchModernSourceDatasSilent(context, queryParams) {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n\r\n return ApiService.getSilent('sourcedata', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setModernSourceDatas', response.result);\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n\r\n fetchCoordinates(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`ModernProxData/coordinates`, queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","/* eslint-disable */\r\nimport { generateDistinctColorsFromBase } from './utils'\r\n\r\nconst PcaService = {\r\n sourceObject: {\r\n sourceData: null,\r\n targetData: null,\r\n\r\n selectedTargetTitle: null,\r\n\r\n pcaData: null,\r\n\r\n pcaColorMode: 'light',\r\n isEnableConvexHull: false,\r\n colorList: generateDistinctColorsFromBase(600)\r\n },\r\n\r\n // Kaynak verileri set eder\r\n onSetSourceDatas(sourceData, targetData) {\r\n this.sourceObject.sourceData = sourceData;\r\n this.sourceObject.targetData = targetData;\r\n },\r\n\r\n // Metin alanındaki veriyi satırlara ve sütunlara ayrıştırır\r\n parseSourceData(sourceData, isTarget) {\r\n const lines = sourceData.trim().split('\\n');\r\n const dataArray = [];\r\n const dataNames = [];\r\n \r\n for (let line of lines) {\r\n const parts = line.trim().split(',');\r\n \r\n if(isTarget === false)\r\n dataNames.push(parts[0])\r\n else \r\n dataNames.push(this.sourceObject.selectedTargetTitle);\r\n\r\n parts.shift();\r\n const numbers = parts.map(Number);\r\n dataArray.push(numbers);\r\n }\r\n \r\n return { dataArray, dataNames };\r\n },\r\n\r\n // PCA işlemini çalıştırır\r\n runPCA() {\r\n const srObject = this.sourceObject;\r\n const response = { message: '', isSuccess: true };\r\n\r\n const sourceArrayResponse = this.parseSourceData(srObject.sourceData, false);\r\n const projectedArrayResponse = this.parseSourceData(srObject.targetData, true);\r\n \r\n sourceArrayResponse.dataNames.push(projectedArrayResponse.dataNames[0])\r\n sourceArrayResponse.dataArray.push(projectedArrayResponse.dataArray[0])\r\n\r\n const dataNames = sourceArrayResponse.dataNames;\r\n const projectedArray = sourceArrayResponse.dataArray;\r\n\r\n // 1. PCA Modeli oluştur\r\n const pca = new ML.PCA(sourceArrayResponse.dataArray);\r\n\r\n // 2. Varyansları al ve kaç bileşen seçileceğine karar ver\r\n const explainedVariance = pca.getExplainedVariance();\r\n let totalVariance = 0;\r\n let compLength = explainedVariance.findIndex((v) => (totalVariance += v) > 0.98) + 1;\r\n\r\n if (compLength < 1) {\r\n return { isSuccess: false, message: \"Not enough variance explained.\" };\r\n }\r\n\r\n // 3. Yeni verileri ana bileşenlere projekte et\r\n const projected = pca.predict(projectedArray);\r\n \r\n // 4. Çıktıyı oluştur: İsimleri ve projeksiyon sonuçlarını birleştir\r\n const results = projected.data.map((row, i) => {\r\n const name = dataNames[i];\r\n const components = row.slice(0, compLength).map((val) => val.toFixed(6));\r\n return `${name},${components.join(\",\")}`;\r\n });\r\n\r\n srObject.pcaData = results;\r\n // 5. Varyans bilgisini ekle\r\n // const varianceInfo = explainedVariance\r\n // .slice(0, componentsNum)\r\n // .map((v, i) => `PC${i + 1}: ${(v * 100).toFixed(1)}%`)\r\n // .join(\", \");\r\n\r\n return response;\r\n },\r\n\r\n computeConvexHull(points) {\r\n if (points.length < 3) return points;\r\n \r\n // 1) X'e göre sırala (x aynıysa y'ye göre)\r\n const sorted = points.slice().sort((a, b) => {\r\n if (a.x === b.x) return a.y - b.y;\r\n return a.x - b.x;\r\n });\r\n \r\n // \"cross\" helper fonksiyonu\r\n function cross(o, a, b) {\r\n return (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);\r\n }\r\n \r\n const lower = [];\r\n for (let p of sorted) {\r\n while (lower.length >= 2 && cross(lower[lower.length - 2], lower[lower.length - 1], p) <= 0) {\r\n lower.pop();\r\n }\r\n lower.push(p);\r\n }\r\n \r\n const upper = [];\r\n for (let i = sorted.length - 1; i >= 0; i--) {\r\n const p = sorted[i];\r\n while (upper.length >= 2 && cross(upper[upper.length - 2], upper[upper.length - 1], p) <= 0) {\r\n upper.pop();\r\n }\r\n upper.push(p);\r\n }\r\n \r\n // Son elemanlar tekrar etmesin diye pop() ediyoruz\r\n lower.pop();\r\n upper.pop();\r\n \r\n // Tam hull\r\n return lower.concat(upper);\r\n },\r\n\r\n // PCA verisini çizdirir\r\n plotPCA() {\r\n const srObject = this.sourceObject;\r\n \r\n // 1) Verileri ayıkla\r\n const projectedNames = srObject.pcaData.map(row => row.split(\",\")[0]);\r\n const projected = srObject.pcaData.map(row => row.split(\",\").slice(1).map(Number));\r\n const pc1 = projected.map(row => row[0]);\r\n const pc2 = projected.map(row => row[1]);\r\n \r\n // 2) Grupları ayır\r\n const groups = {};\r\n projectedNames.forEach((fullName, index) => {\r\n const [groupName, sampleName] = fullName.split(\":\");\r\n if (!groups[groupName]) {\r\n groups[groupName] = [];\r\n }\r\n groups[groupName].push({\r\n x: pc1[index],\r\n y: pc2[index],\r\n name: fullName\r\n });\r\n });\r\n \r\n const traces = [];\r\n const groupCenters = [];\r\n \r\n // 3) Her grup için scatter trace + merkez hesaplama\r\n let colorIndex = 0;\r\n for (const groupName in groups) {\r\n const groupData = groups[groupName];\r\n const groupX = groupData.map(p => p.x);\r\n const groupY = groupData.map(p => p.y);\r\n \r\n // Grup merkezi\r\n const centerX = groupX.reduce((a, b) => a + b, 0) / groupX.length;\r\n const centerY = groupY.reduce((a, b) => a + b, 0) / groupY.length;\r\n \r\n // Grup noktaları trace\r\n traces.push({\r\n x: groupX,\r\n y: groupY,\r\n mode: \"markers\",\r\n marker: {\r\n size: groupName === srObject.selectedTargetTitle ? 15 : 8,\r\n color:\r\n groupName === srObject.selectedTargetTitle\r\n ? \"#2D2D2D\"\r\n : srObject.colorList[colorIndex % srObject.colorList.length],\r\n \r\n opacity: groupName === srObject.selectedTargetTitle ? 1 : 0.5,\r\n bordercolor: srObject.colorList[colorIndex % srObject.colorList.length],\r\n borderwidth: 1, \r\n borderpad: 2 \r\n },\r\n text: groupData.map(p => `${p.name ? p.name : \"\"}`),\r\n hoverinfo: \"text\",\r\n name: groupName,\r\n visible: srObject.isEnableConvexHull ? 'legendonly' : true,\r\n \r\n });\r\n \r\n // Merkez bilgilerini kaydet\r\n groupCenters.push({\r\n x: centerX,\r\n y: centerY,\r\n groupName,\r\n color:\r\n groupName === srObject.selectedTargetTitle\r\n ? \"#2D2D2D\"\r\n : srObject.colorList[colorIndex % srObject.colorList.length]\r\n });\r\n \r\n // Eğer convex hull çizmek istiyorsak, hull noktalarını hesaplayıp ek bir trace olarak ekleyelim\r\n if (srObject.isEnableConvexHull) {\r\n const hullPoints = this.computeConvexHull(groupData);\r\n if (hullPoints.length >= 3) {\r\n // Hull'u kapatmak için ilk noktayı sona tekrar ekle\r\n const hullX = hullPoints.map(p => p.x);\r\n const hullY = hullPoints.map(p => p.y);\r\n hullX.push(hullX[0]);\r\n hullY.push(hullY[0]);\r\n \r\n traces.push({\r\n x: hullX,\r\n y: hullY,\r\n mode: \"lines\",\r\n fill: \"toself\",\r\n fillcolor: (groupName === srObject.selectedTargetTitle)\r\n ? \"rgba(45, 45, 45, 0.3)\" \r\n : srObject.colorList[colorIndex % srObject.colorList.length].replace(\"rgb\", \"rgba\").replace(\")\", \",0.5)\"),\r\n line: {\r\n color:\r\n groupName === srObject.selectedTargetTitle\r\n ? \"#2D2D2D\"\r\n : srObject.colorList[colorIndex % srObject.colorList.length],\r\n width: 1\r\n },\r\n hoverinfo: \"skip\", // Hull üzerinde hover göstermeyebiliriz\r\n name: groupName + \" hull\",\r\n opacity: 0.3,\r\n showlegend: false // İsterseniz legend'da görünmesin\r\n });\r\n }\r\n }\r\n \r\n colorIndex++;\r\n }\r\n \r\n // 4) Merkez noktalarını tek bir trace olarak ekleyelim\r\n traces.push({\r\n x: groupCenters.map(c => c.x),\r\n y: groupCenters.map(c => c.y),\r\n mode: \"markers\",\r\n marker: {\r\n size: 10,\r\n symbol: \"circle\",\r\n color: groupCenters.map(c => c.color),\r\n opacity: 0.5,\r\n },\r\n text: groupCenters.map(c => c.groupName),\r\n hoverinfo: \"text\",\r\n name: \"Centers\",\r\n });\r\n \r\n // 5) Annotation’lar: Draggable label ve arka plan rengi\r\n const layout = {\r\n title: \"\",\r\n xaxis: { title: \"PC1\", zeroline: false },\r\n yaxis: { title: \"PC2\", zeroline: false },\r\n hovermode: \"closest\",\r\n dragmode: \"pan\",\r\n margin: { l: 50, r: 50, t: 50, b: 50 },\r\n annotations: groupCenters.map(center => ({\r\n x: center.x,\r\n y: center.y,\r\n xref: \"x\",\r\n yref: \"y\",\r\n text: center.groupName,\r\n showarrow: true,\r\n arrowhead: 0,\r\n axref: \"pixel\",\r\n ayref: \"pixel\",\r\n ax: center.groupName === srObject.selectedTargetTitle ? 0 : 5,\r\n ay: center.groupName === srObject.selectedTargetTitle ? -35 : -5,\r\n font: {\r\n color: center.color,\r\n size: center.groupName === srObject.selectedTargetTitle ? 25 : 14,\r\n family: \"Arial\"\r\n },\r\n bgcolor: \"rgba(255,255,255,0.7)\",\r\n bordercolor: center.color, // Siyah kenarlık\r\n borderwidth: 1, // Kenarlık kalınlığı\r\n borderpad: 2 \r\n }))\r\n };\r\n \r\n // 6) Plotly çizimi\r\n const config = {\r\n editable: true,\r\n scrollZoom: true\r\n };\r\n \r\n const graphDiv = document.getElementById(\"pcaPlotContainer\");\r\n Plotly.newPlot(graphDiv, traces, layout, config);\r\n }\r\n};\r\n\r\nexport default PcaService;\r\n","import ApiService from '@/common/api.service'\r\nimport PcaService from '@/common/custom-service/dna-source/PcaService'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n pcaSourceDatas: [],\r\n selectedPcaRegionId: null,\r\n selectedPcaRegionGrupId: null,\r\n pcaSkin: 'light',\r\n isEnableConvexHull: false,\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getOrderSelectedPcaRegion(state) {\r\n return state.selectedPcaRegionId;\r\n },\r\n getOrderSelectedPcaRegionGrup(state) {\r\n return state.selectedPcaRegionGrupId;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setSelectedPcaRegion(state, region) {\r\n state.selectedPcaRegionId = region;\r\n },\r\n setSelectedPcaRegionGrup(state, regionGrup) {\r\n state.selectedPcaRegionGrupId = regionGrup;\r\n },\r\n\r\n setPcaSourceData(state, sourceDatas) {\r\n state.pcaSourceDatas = sourceDatas[0].source;\r\n },\r\n runPca(state) {\r\n PcaService.sourceObject.pcaColorMode = state.pcaSkin;\r\n PcaService.sourceObject.isEnableConvexHull = state.isEnableConvexHull;\r\n PcaService.sourceObject.selectedTargetTitle = this.state.orderResult.selectedTargetTitle.replaceAll(' ', '_');\r\n \r\n PcaService.onSetSourceDatas(state.pcaSourceDatas, this.state.orderResult.selectedTarget);\r\n PcaService.runPCA();\r\n PcaService.plotPCA();\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchPcaRegionSourceDatas(context, queryParams) {\r\n queryParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n return ApiService.get('sourcedata', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setPcaSourceData', response.result);\r\n context.commit('runPca');\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n ancientMixedModePopNumber: '30',\r\n selectedPeriod: { id: 0, number: 0, },\r\n mixedModePeriods: [],\r\n mixedModeOrderResult: {},\r\n selectedAncientMixedMode: {},\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getAncientMixedModePopNumber(state) {\r\n return state.ancientMixedModePopNumber;\r\n },\r\n getSelectedMixedModeResult(state) {\r\n return state.mixedModeOrderResult;\r\n }, \r\n getSelectedAncientMixedModeResult(state) {\r\n return state.selectedAncientMixedMode;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setMixedModePeriods(state, mixedModePeriods) {\r\n state.mixedModePeriods = mixedModePeriods;\r\n\r\n if (state.selectedPeriod.id === 0) {\r\n state.selectedPeriod = mixedModePeriods[0];\r\n }\r\n },\r\n setMixedModerPeriod(state, selectedPeriod) {\r\n state.selectedPeriod = selectedPeriod;\r\n },\r\n setMixedModeResult(state, mixedModeResult) {\r\n state.mixedModeOrderResult = mixedModeResult;\r\n },\r\n setSelectedAncientMixedModeResult(state, selectedAncientMixedMode) {\r\n state.selectedAncientMixedMode = selectedAncientMixedMode;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchAncientMixedModePeriods(context) {\r\n const queryParams = {\r\n dataVersion: context.rootGetters['orderResult/getDataVersion'],\r\n mixedModeType: 0\r\n }\r\n return ApiService.post('mixedmode/periods', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setMixedModePeriods', response.result);\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n\r\n fetchOrderMixedModeResults(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`mixedmode/result`, queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n updateOrderResultMixedModeResults(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`mixedmode/update`, { orderResultId: queryParams.id }, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n modernMixedModePopNumber: '30',\r\n selectedPeriodId: 0,\r\n mixedModePeriods: [],\r\n mixedModeOrderResult: {},\r\n selectedModernMixedMode: {},\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getModernMixedModePopNumber(state) {\r\n return state.modernMixedModePopNumber;\r\n },\r\n getSelectedMixedModeResult(state) {\r\n return state.mixedModeOrderResult;\r\n }, \r\n getSelectedModernMixedModeResult(state) {\r\n return state.selectedModernMixedMode;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setMixedModePeriods(state, mixedModePeriods) {\r\n state.mixedModePeriods = mixedModePeriods;\r\n if (mixedModePeriods.length) {\r\n state.selectedPeriodId = mixedModePeriods[0].id;\r\n }\r\n },\r\n setMixedModerPeriodId(state, selectedPeriodId) {\r\n state.selectedPeriodId = selectedPeriodId;\r\n },\r\n setMixedModeResult(state, mixedModeResult) {\r\n state.mixedModeOrderResult = mixedModeResult;\r\n },\r\n setSelectedModernMixedModeResult(state, selectedModernMixedMode) {\r\n state.selectedModernMixedMode = selectedModernMixedMode;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchModernMixedModePeriods(context) {\r\n const queryParams = {\r\n dataVersion: context.rootGetters['orderResult/getDataVersion'],\r\n mixedModeType: 1,\r\n }\r\n return ApiService.post('mixedmode/periods', queryParams, this)\r\n .then(response => {\r\n if (response.statusCode === 200) {\r\n context.commit('setMixedModePeriods', response.result);\r\n } else {\r\n AlertService.error(this._vm, response.message)\r\n }\r\n })\r\n },\r\n\r\n fetchOrderMixedModeResults(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`mixedmode/result`, queryParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n updateOrderResultMixedModeResults(context, queryParams) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`mixedmode/update`, { orderResultId: queryParams.id }, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n selectedModule: 'ANCIENT',\r\n selectedCard: 'Map',\r\n locationQueryList: [],\r\n\r\n filterQuery: {\r\n Search: '',\r\n location: '',\r\n PageIndex: 1,\r\n PageSize: 20,\r\n Count: 200,\r\n },\r\n selectedPopDetail: null,\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getFilterQuery(state) {\r\n return state.filterQuery;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setFilterData(state, data) {\r\n data.locationList.unshift('');\r\n state.locationQueryList = data.locationList;\r\n },\r\n\r\n // reset state\r\n resetState(state) {\r\n Object.assign(state, getDefaultState())\r\n },\r\n resetFilterQuery(state) {\r\n state.filterQuery = {\r\n Search: '',\r\n location: '',\r\n PageIndex: 1,\r\n PageSize: 20,\r\n Count: 200,\r\n };\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchAncientProxDatas(context, queryParams) {\r\n const copyParams = { ...queryParams };\r\n if (copyParams.Search) {\r\n copyParams.Search = copyParams.Search.replaceAll(/ /g, '*');\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n copyParams.dataVersion = context.rootGetters['orderResult/getDataVersion']\r\n ApiService.get(`ancientproxdata/pagination`, copyParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n fetchAncientProxFilterQuery(context, url) {\r\n return ApiService.get(url, {}, this)\r\n .then(response => {\r\n context.commit('setFilterData', response.result);\r\n })\r\n },\r\n\r\n fetchAncientIndividualData(context, queryParams) {\r\n const copyParams = { ...queryParams };\r\n if (copyParams.Search) {\r\n copyParams.Search = copyParams.Search.replaceAll(/ /g, '*');\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`PresetIndividualSample/getall`, copyParams, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\nimport { TRAITS_RESULT_TABS } from '@/common/config'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n traitsDataResults: {},\r\n selectedTab: TRAITS_RESULT_TABS.TRAITS.code,\r\n traitsCategories: {},\r\n selectedTraitCategory: {},\r\n selectedSort: '',\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n getTraitsDataResults(state) {\r\n return state.traitsDataResults;\r\n },\r\n \r\n getSelectedSort(state) {\r\n return state.selectedSort;\r\n },\r\n}\r\n\r\nconst mutations = {\r\n setTraitsDataResults(state, resultData) {\r\n state.traitsDataResults[resultData.resultId] = resultData.results;\r\n \r\n state.traitsCategories[resultData.resultId] = resultData.results.map(x => x.traitCategory);\r\n \r\n if(state.traitsCategories[resultData.resultId].length && !state.selectedTraitCategory.name) {\r\n state.selectedTraitCategory = state.traitsCategories[resultData.resultId][0];\r\n }\r\n },\r\n}\r\n\r\nconst actions = {\r\n fetchTraitsData(context, query) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`Traits`, query, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n fetchTraitDetailData(context, params) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`Traits/get`, params, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import ApiService from '@/common/api.service'\r\n\r\n/* eslint-disable */\r\nconst getDefaultState = () => {\r\n return {\r\n }\r\n};\r\n\r\nconst state = getDefaultState();\r\n\r\nconst getters = {\r\n}\r\n\r\nconst mutations = {\r\n}\r\n\r\nconst actions = {\r\n saveTraitSurvey(context, params) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`TraitSurvey`, params, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n\r\n fetchTraitSurvey(context, params) {\r\n return new Promise((resolve, reject) => {\r\n ApiService.post(`TraitSurvey/get`, params, this)\r\n .then(response => resolve(response))\r\n .catch(error => reject(error))\r\n });\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions,\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\n// General\r\nimport app from './app';\r\nimport loader from './app/loader.module';\r\nimport appConfig from './app-config';\r\nimport verticalMenu from './vertical-menu';\r\n\r\nimport notification from './notification/notification.module'\r\nimport ticket from './ticket/ticket.module'\r\n\r\nimport account from './general-store/account/account.module'\r\nimport profileSettings from './general-store/profile-settings/profilesettings.module';\r\nimport products from './general-store/product/product.module'\r\nimport orders from './general-store/order/order.module'\r\n\r\nimport deepACheckout from './general-store/checkout/deepACheckout.module'\r\nimport traitCheckout from './general-store/checkout/traitCheckout.module'\r\nimport g25PartnerCheckout from './general-store/checkout/g25PartnerCheckout.module';\r\n\r\nimport updateV2 from './general-store/update-v2/updateV2.module';\r\n\r\nimport operation from './operation/operation.module'\r\nimport orderResult from './results/g25/orderResult.module';\r\nimport orderResultTrait from './results/traits-healths/orderResultTrait.module';\r\n\r\nimport ancestrybreakdown from './results/g25/break-down/ancestrybreakdown.module';\r\nimport modernbreakdown from './results/g25/break-down/modernbreakdown.module';\r\nimport customancestrybreakdown from './results/g25/break-down/customancestrybreakdown.module';\r\nimport periodicalancestrybreakdown from './results/g25/break-down/periodicalancestrybreakdown.module';\r\nimport farmerhgs from './results/g25/farmer-hgs/farmerhgs.module';\r\nimport ancientpopulation from './results/g25/closest-populations/ancientpopulation.module'\r\nimport modernpopulation from './results/g25/closest-populations/modernpopulation.module'\r\nimport pcaplot from './results/g25/pca/pcaplot.module'\r\nimport ancientMixedmode from './results/g25/mixed-mode/ancientMixedmode.module'\r\nimport modernMixedmode from './results/g25/mixed-mode/modernMixedmode.module'\r\nimport encyclopedia from './results/g25/encyclopedia/encyclopedia.module';\r\n\r\nimport traitsAndHealths from './results/traits-healths/traits-and-healths/traitsAndHealths.module';\r\nimport traitsSurvey from './results/traits-healths/traits-and-healths/traitsSurvey.module';\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n // General\r\n app,\r\n loader,\r\n appConfig,\r\n verticalMenu,\r\n\r\n notification,\r\n ticket,\r\n \r\n account,\r\n profileSettings,\r\n products,\r\n orders,\r\n\r\n deepACheckout,\r\n traitCheckout,\r\n g25PartnerCheckout,\r\n\r\n updateV2,\r\n\r\n operation,\r\n orderResult,\r\n orderResultTrait,\r\n\r\n ancestrybreakdown,\r\n modernbreakdown,\r\n customancestrybreakdown,\r\n periodicalancestrybreakdown,\r\n farmerhgs,\r\n ancientpopulation,\r\n modernpopulation,\r\n pcaplot,\r\n ancientMixedmode,\r\n modernMixedmode,\r\n encyclopedia,\r\n\r\n traitsAndHealths,\r\n traitsSurvey,\r\n },\r\n strict: process.env.DEV,\r\n})\r\n","/* eslint-disable */\r\n\r\n// euclidean\r\nexport const euclideanDistance = (vec1, vec2) => {\r\n // vec1[0] ve vec2[0] isim/etiket -> bu nedenle hesaplamayı [1..n] arasındaki kolonlarda yapacağız\r\n const len = Math.min(vec1.length, vec2.length) - 1;\r\n let sumOfSquares = 0;\r\n\r\n for (let i = 1; i <= len; i++) {\r\n const diff = vec1[i] - vec2[i];\r\n sumOfSquares += diff * diff;\r\n }\r\n\r\n return Math.sqrt(sumOfSquares);\r\n}\r\n\r\n// FMC\r\nexport const generateRandomRange = (min, max) => {\r\n return Math.floor(Math.random() * (max - min) ) + min;\r\n}\r\n\r\nexport const subDataArray = (array1, array2) => {\r\n return array1.map((value, index) => value - array2[index]);\r\n}\r\n\r\nexport const addDataArray = (array1, array2) => {\r\n return array1.map((value, index) => value + array2[index]);\r\n}\r\n\r\nexport const callArraySum = (arr) => {\r\n return arr.reduce((t, n) => t+n);\r\n}\r\n\r\nexport const clusterResults = (resultsDatas, sourceLength) => {\r\n let i, popTitles, addedTitles;\r\n for (i = 0; i < sourceLength; i++) {\r\n popTitles = resultsDatas[i][0].split(\":\");\r\n resultsDatas[i][0] = popTitles[0];\r\n }\r\n resultsDatas.sort( function(a, b) {\r\n return a[0].localeCompare(b[0]);\r\n });\r\n for (i = sourceLength - 2; i > -1; i--) {\r\n if (resultsDatas[i][0] == resultsDatas[i + 1][0]) {\r\n addedTitles = resultsDatas[i][0];\r\n resultsDatas[i] = addDataArray(resultsDatas[i],resultsDatas[i + 1]);\r\n resultsDatas[i][0] = addedTitles;\r\n resultsDatas.splice(i + 1, 1);\r\n }\r\n }\r\n return resultsDatas;\r\n}\r\n\r\nexport const divideToNestTarget = (targetData, number, dims) => {\r\n const target = targetData[0].slice();\r\n target.shift();\r\n for (let i = 0; i < dims; i++) {\r\n target[i] = target[i] / number;\r\n }\r\n return target;\r\n}\r\n\r\nexport const divideToNestSource = (sourceData, sourceNumber, number, dims) => {\r\n let i, j, tempLine;\r\n const source = Array(sourceNumber);\r\n for (i = 0; i < sourceNumber; i++) {\r\n tempLine = sourceData[i].slice();\r\n tempLine.shift();\r\n source[i] = tempLine.slice();\r\n for (j = 0; j < dims; j++) {\r\n source[i][j] = source[i][j] / number;\r\n }\r\n }\r\n return source;\r\n}\r\n\r\nexport const callResultData = (result, sourceData, sourceLength) => {\r\n const resultData = Array(sourceLength)\r\n for (let i = 0; i < sourceLength; i++) {\r\n resultData[i] = Array(2);\r\n resultData[i][0] = sourceData[i][0];\r\n resultData[i][1] = result.points[i];\r\n }\r\n return resultData;\r\n};\r\n\r\nexport const callResultDataRdc = (result) => {\r\n let sourceLength = result.points.length;\r\n const resultData = Array(sourceLength)\r\n for (let i = 0; i < sourceLength; i++) {\r\n resultData[i] = Array(2);\r\n resultData[i][0] = result.titles[i];\r\n resultData[i][1] = result.points[i];\r\n }\r\n return resultData;\r\n};\r\n\r\nexport const callResponseData = (result, resultData) => {\r\n const response = {\r\n result: (100 * result.dist).toFixed(3),\r\n outPuts: [],\r\n };\r\n for (let i = 0; i < resultData.length; i++) {\r\n if (resultData[i][1] != 0) {\r\n response.outPuts.push({\r\n currentResult: resultData[i][1] * 100,\r\n resultsTable: resultData[i][0],\r\n });\r\n }\r\n }\r\n\r\n return response;\r\n};\r\n\r\n// runCustomMCAlgorithm\r\nexport const runCustomMCAlgorithm = (dataParams, checkParams, extraParams) => {\r\n let arrangements = Array(); \r\n const loopSize = Math.ceil((dataParams.sourceCodeNumber * checkParams.iterationFactor) / 4);\r\n const points = Array(dataParams.sourceCodeNumber).fill(0);\r\n const longestNumber = 100000000000000000;\r\n \r\n checkDistanceColumnMultiSub(dataParams, checkParams, extraParams);\r\n let currentNests = Array(extraParams.nstSize).fill(-1);\r\n currentNests = makeRandomNests(currentNests, dataParams.sourceCodeNumber);\r\n let currentPoints = makePointsFromNests(currentNests, dataParams, extraParams.codeMetrics);\r\n let currentDists = runDistance(currentPoints);\r\n\r\n let nextNests = null, nextPoints = null, nextDists = null;\r\n for (let i=0; i< loopSize; i++) {\r\n nextNests = makeRandomNests(currentNests, dataParams.sourceCodeNumber);\r\n for (let j = 0; j < extraParams.nstSize; j++) {\r\n nextPoints = subDataArray(currentPoints, dataParams.sourceCodData[currentNests[j]]);\r\n nextPoints = addDataArray(nextPoints, dataParams.sourceCodData[nextNests[j]]);\r\n nextDists = runDistance(nextPoints);\r\n if (nextDists < currentDists) {\r\n currentNests[j] = nextNests[j];\r\n currentPoints = nextPoints;\r\n currentDists = nextDists;\r\n }\r\n }\r\n }\r\n \r\n fillPoints(points, currentNests, extraParams.nstSize);\r\n fillArrangements(arrangements, points, dataParams.sourceCodeNumber);\r\n\r\n let arrangeNumber = arrangements.length;\r\n let prevDists;\r\n function reRunArrange() {\r\n currentDists = Math.round(longestNumber * currentDists);\r\n do {\r\n prevDists = currentDists;\r\n for (let i = arrangeNumber - 1; i > -1; i--) {\r\n if (arrangements[i][1] > 0) {\r\n for (let j = 0; j < arrangeNumber; j++) {\r\n if (i == j) { continue; }\r\n nextPoints = subDataArray(currentPoints, dataParams.sourceCodData[arrangements[i][0]]);\r\n nextPoints = addDataArray(nextPoints, dataParams.sourceCodData[arrangements[j][0]]);\r\n nextDists = Math.round(longestNumber * runDistance(nextPoints));\r\n if (nextDists < currentDists) {\r\n arrangements[i][1]--;\r\n arrangements[j][1]++;\r\n currentPoints = nextPoints;\r\n currentDists = nextDists;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n while (currentDists < prevDists);\r\n }\r\n reRunArrange();\r\n for (let i = 0; i < arrangeNumber; i++) {\r\n points[arrangements[i][0]] = arrangements[i][1];\r\n }\r\n\r\n if (checkParams.columnDFactor && checkParams.recalculate) {\r\n extraParams.codeMetrics--;\r\n currentPoints.pop();\r\n currentDists = runDistance(currentPoints);\r\n for (let i = 0; i < dataParams.sourceCodeNumber; i++) {\r\n dataParams.sourceCodData[i].pop();\r\n }\r\n arrangements = [];\r\n for (let i = 0; i < dataParams.sourceCodeNumber; i++) {\r\n if (points[i] > 0) {\r\n arrangements.push([i, points[i]]);\r\n }\r\n }\r\n arrangements.sort((a, b) => b[1] - a[1]);\r\n arrangeNumber = arrangements.length;\r\n reRunArrange();\r\n for (let i = 0; i < arrangeNumber; i++) {\r\n points[arrangements[i][0]] = arrangements[i][1];\r\n }\r\n }\r\n for (let i = 0; i < dataParams.sourceCodeNumber; i++) {\r\n points[i] = points[i] / extraParams.nstSize;\r\n }\r\n if (checkParams.columnDFactor && !checkParams.recalculate) { currentPoints.pop(); }\r\n currentDists = runDistance(currentPoints);\r\n \r\n return { \r\n dist: Number(Math.sqrt(currentDists).toFixed(8)),\r\n points: points,\r\n };\r\n}\r\n\r\nexport const checkDistanceColumnMultiSub = (dataParams, checkParams, extraParams) => {\r\n if (checkParams.columnDFactor) {\r\n checkParams.columnDFactor = checkParams.columnDFactor/ 8;\r\n extraParams.codeMetrics = extraParams.codeMetrics + 1;\r\n for (let i = 0; i < dataParams.sourceCodeNumber; i++) {\r\n dataParams.sourceCodData[i] = subDataArray(dataParams.sourceCodData[i], dataParams.targetCode);\r\n dataParams.sourceCodData[i].push(checkParams.columnDFactor * Math.sqrt(runDistance(dataParams.sourceCodData[i])));\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < dataParams.sourceCodeNumber; i++) {\r\n dataParams.sourceCodData[i] = subDataArray(dataParams.sourceCodData[i], dataParams.targetCode);\r\n }\r\n }\r\n}\r\n\r\nexport const runDistance = (paramsData) => {\r\n let result = paramsData.map((element) => element ** 2);\r\n if (result) {\r\n result = result.reduce((t, n) => t+n)\r\n }\r\n return result;\r\n}\r\n\r\nexport const makeRandomNests = (prevNests, sourceCodeNumber) => {\r\n let newNests = Array(prevNests.length);\r\n for(let i = 0; i < prevNests.length; i++) {\r\n newNests[i] = generateRandomRange(0, sourceCodeNumber);\r\n while (newNests[i] == prevNests[i]) {\r\n newNests[i] = generateRandomRange(0, sourceCodeNumber);\r\n }\r\n }\r\n return newNests;\r\n}\r\n\r\nexport const makePointsFromNests = (nests, dataParams, codeMetrics) => {\r\n let newPoints = Array(codeMetrics).fill(0), tempPoint;\r\n for(let i = 0; i < nests.length; i++) {\r\n tempPoint = dataParams.sourceCodData[nests[i]].slice();\r\n newPoints = addDataArray(newPoints, tempPoint);\r\n }\r\n return newPoints;\r\n}\r\n\r\nexport const fillPoints = (points, nests, nstSize) => {\r\n for (let i = 0; i < nstSize; i++) {\r\n points[nests[i]] += 1; \r\n }\r\n}\r\n\r\nexport const fillArrangements = (ranks, points, sourceCodeNumber) => {\r\n for (let i = 0; i < sourceCodeNumber; i++) {\r\n if (points[i] > 0) {\r\n ranks.push([i, points[i]]);\r\n }\r\n }\r\n ranks.sort((a, b) => b[1] - a[1]);\r\n}\r\n\r\n// runABByPopNumber\r\nexport const runABByPopNumber = (dataParams, checkParams, extraParams, numberOfPopulation) => {\r\n let titleArr = [];\r\n let idArray = [];\r\n let currentResult = undefined, nextResult = undefined;\r\n \r\n for (let i = 0, tempArr; i < dataParams.sourceCodeNumber; i++) {\r\n tempArr = [dataParams.sourceCodeArray[i][0].split(':').shift(), dataParams.sourceCodeArray[i][0]];\r\n dataParams.sourceCodData[i] = tempArr.concat(dataParams.sourceCodData[i]);\r\n }\r\n\r\n dataParams.sourceCodData = clusterArray(dataParams.sourceCodData);\r\n for(let i in dataParams.sourceCodData) {\r\n titleArr.push([]);\r\n for(let j in dataParams.sourceCodData[i]) {\r\n dataParams.sourceCodData[i][j].shift();\r\n titleArr[i].push(dataParams.sourceCodData[i][j].shift());\r\n idArray.push(i);\r\n }\r\n }\r\n\r\n let sourceLength = dataParams.sourceCodData.length;\r\n let initData = [];\r\n for(let countIndex = 0; countIndex < sourceLength; countIndex++) {\r\n initData.push(countIndex);\r\n }\r\n\r\n let initDataResult = [];\r\n runInitDataMCAlgorithms(initData, initDataResult, idArray, dataParams, extraParams.codeMetrics);\r\n initDataResult = clusterResults(initDataResult, initDataResult.length)\r\n initDataResult.sort((a,b) => b[1] - a[1]);\r\n\r\n let newTitleArr = [];\r\n let newSourceData = [];\r\n for (let item in initDataResult) {\r\n if (Number(initDataResult[item][1]) > 0.02) {\r\n newSourceData.push(dataParams.sourceCodData[Number(initDataResult[item][0])]);\r\n newTitleArr.push(titleArr[Number(initDataResult[item][0])]);\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n dataParams.sourceCodData = newSourceData;\r\n titleArr = newTitleArr;\r\n sourceLength = dataParams.sourceCodData.length;\r\n\r\n let actualNestLength = extraParams.nstSize;\r\n let currentData = [];\r\n let nextData = undefined;\r\n if (sourceLength <= numberOfPopulation) {\r\n for (let i = 0; i < sourceLength; i++) {\r\n currentData.push(i);\r\n }\r\n return CompleteProcess();\r\n } else {\r\n for (let i = 0; i < numberOfPopulation; i++) {\r\n currentData.push(i);\r\n }\r\n }\r\n\r\n let counter = 0;\r\n let copyDataParams = {\r\n targetCode: dataParams.targetCode,\r\n };\r\n function runMCAlgorithm(setToRun) {\r\n counter++;\r\n let currentSource = [];\r\n for (let item of setToRun) {\r\n currentSource = currentSource.concat(dataParams.sourceCodData[item]);\r\n }\r\n \r\n if (!copyDataParams) {\r\n copyDataParams = {\r\n targetCode: dataParams.targetCode,\r\n };\r\n }\r\n copyDataParams.sourceCodData = currentSource;\r\n copyDataParams.sourceCodeNumber = currentSource.length;\r\n \r\n return runCustomMCAlgorithm(copyDataParams, checkParams, extraParams);\r\n }\r\n \r\n const storeSet = currentData;\r\n let runs = [];\r\n for (let i = 0, n = 30 + sourceLength; i < n; i++) {\r\n currentData = storeSet.slice();\r\n currentResult = runMCAlgorithm(currentData);\r\n extraParams.nstSize = 35;\r\n for (let i = 0, n = Math.ceil(sourceLength); i < n; i++) {\r\n for (let j = 0; j < numberOfPopulation; j++) {\r\n nextData = currentData.slice();\r\n nextData[j] = callNewPopulation(nextData[j], currentData, sourceLength);\r\n nextResult = runMCAlgorithm(nextData);\r\n if (nextResult.dist < currentResult.dist) {\r\n currentResult = nextResult;\r\n currentData = nextData;\r\n }\r\n }\r\n }\r\n runs.push([currentResult.dist, currentData.slice()]);\r\n }\r\n runs.sort((a, b) => a[0] - b[0]);\r\n currentData = runs[0][1];\r\n function CompleteProcess() {\r\n extraParams.nstSize = actualNestLength;\r\n currentResult = runMCAlgorithm(currentData);\r\n currentResult.titles = callNames(titleArr, currentData);\r\n currentResult.sourceLength = sourceLength;\r\n currentResult.counter = counter;\r\n return currentResult;\r\n };\r\n\r\n return CompleteProcess();\r\n}\r\n\r\nexport const clusterArray = (arr) => {\r\n let sortArr = arr.slice(), clusterArr = [];\r\n sortArr.sort((a, b) => a[0].localeCompare(b[0]));\r\n let name = null, i = 0, j = -1;\r\n for (i = 0; i < sortArr.length; i++) {\r\n if (sortArr[i][0] != name) {\r\n j++;\r\n name = sortArr[i][0];\r\n clusterArr.push([]);\r\n }\r\n clusterArr[j].push(sortArr[i]);\r\n }\r\n return clusterArr;\r\n}\r\n\r\nexport const runInitDataMCAlgorithms = (initData, initDataResult, idArray, dataParams, codeMetrics) => {\r\n let initResult = [\r\n runDATAMCAlgorithm(dataParams, initData, 50, 5, codeMetrics, 0.5, true),\r\n runDATAMCAlgorithm(dataParams, initData, 50, 5, codeMetrics, 0, false),\r\n runDATAMCAlgorithm(dataParams, initData, 50, 5, codeMetrics, 1, true),\r\n runDATAMCAlgorithm(dataParams, initData, 50, 5, codeMetrics, 0, false),\r\n runDATAMCAlgorithm(dataParams, initData, 50, 5, codeMetrics, 2, true),\r\n runDATAMCAlgorithm(dataParams, initData, 500, 2, codeMetrics, 0, false)\r\n ];\r\n for (let item in idArray) {\r\n for (let item2 in initResult) {\r\n initDataResult.push([idArray[item], initResult[item2].points[item]]);\r\n }\r\n }\r\n}\r\n\r\nexport const runDATAMCAlgorithm = (dataParams, initData, nstSize, iterationFactor, codeMetrics, columnDFactor, recalculate) => {\r\n let copyDataparams = {\r\n targetCode: dataParams.targetCode,\r\n };\r\n\r\n let currentSource = [];\r\n for (let item of initData) {\r\n currentSource = currentSource.concat(dataParams.sourceCodData[item]);\r\n }\r\n copyDataparams.sourceCodData = currentSource;\r\n copyDataparams.sourceCodeNumber = currentSource.length;\r\n let extraParams = { nstSize: nstSize, codeMetrics: codeMetrics };\r\n let checkParams = { iterationFactor: iterationFactor, columnDFactor: columnDFactor, recalculate: recalculate };\r\n return runCustomMCAlgorithm(copyDataparams, checkParams, extraParams);\r\n}\r\n\r\nexport const callNames = (titleArr, setToDataRun) => {\r\n let names = [];\r\n for (let item of setToDataRun) {\r\n names = names.concat(titleArr[item]);\r\n }\r\n return names;\r\n}\r\n\r\nexport const callNewPopulation = (currentDataItem, currentData, sourceLength) => {\r\n let newPop = generateRandomRange(0, sourceLength);\r\n while (newPop == currentDataItem || currentData.includes(newPop)) {\r\n newPop = generateRandomRange(0, sourceLength);\r\n }\r\n return newPop;\r\n}\r\n","import { euclideanDistance, runCustomMCAlgorithm, runABByPopNumber, callResultData, callResultDataRdc, callResponseData, subDataArray, divideToNestTarget, divideToNestSource } from './utils'\r\nimport { CalculateModernPopColor } from './dna-source/utils'\r\n\r\n/* eslint-disable */\r\nconst IllusDnaService = { \r\n dataArrays: {\r\n sourceCodeArray: [],\r\n targetCodeArray: [],\r\n sourceCodeNumber: null,\r\n targetCodeNumber: null,\r\n },\r\n dataObject: {\r\n codeMetrics: null,\r\n maxDistOutPut: 30,\r\n nstSize: 500,\r\n columnDFactor: 1,\r\n numberOfPopulation: 0,\r\n iterationFactor: 1,\r\n recalculate: 1,\r\n },\r\n\r\n onSetSource(sourceArray) {\r\n // Orijinal mantık\r\n this.dataArrays.sourceCodeArray = sourceArray;\r\n this.dataArrays.sourceCodeNumber = sourceArray.length;\r\n this.dataObject.codeMetrics = sourceArray[0].length - 1;\r\n },\r\n\r\n onSetTarget(targetArray) {\r\n // Orijinal mantık\r\n this.dataArrays.targetCodeArray = targetArray;\r\n this.dataArrays.targetCodeNumber = targetArray.length;\r\n },\r\n\r\n codeDataToArray(codeData) {\r\n // Orijinal mantık\r\n const response = {\r\n isSuccess: true,\r\n message: '',\r\n result: [],\r\n };\r\n\r\n const lines = codeData.trim().split(\"\\n\");\r\n\r\n // Her satır için virgülle böl -> 2D dizi\r\n const parsedData = lines.map(line => line.split(\",\"));\r\n \r\n // Sayısal kolonları Number'a çevir (ilk kolon hariç)\r\n parsedData.forEach(row => {\r\n for (let i = 1; i < row.length; i++) {\r\n row[i] = parseFloat(row[i]);\r\n }\r\n });\r\n \r\n response.result = parsedData;\r\n return response;\r\n },\r\n\r\n calculateDistance() {\r\n // Hedefin ilk satırını referans alıyoruz\r\n const targetRow = this.dataArrays.targetCodeArray[0]; // Tek satırlık CSV de olabilir\r\n const distanceResults = [];\r\n\r\n for (let i = 0; i < this.dataArrays.sourceCodeArray.length; i++) {\r\n const sourceRow = this.dataArrays.sourceCodeArray[i];\r\n const dist = euclideanDistance(sourceRow, targetRow);\r\n\r\n distanceResults.push({\r\n title: sourceRow[0],\r\n distance: dist\r\n });\r\n }\r\n\r\n // son işlem\r\n const results = distanceResults\r\n .sort((a, b) => a.distance - b.distance)\r\n .slice(0, this.dataObject.maxDistOutPut)\r\n .map(item => ({\r\n color: CalculateModernPopColor((item.distance * 100).toFixed(3)),\r\n distance: (item.distance * 100).toFixed(3),\r\n title: item.title\r\n }));\r\n \r\n return results;\r\n },\r\n\r\n runABAlgorithm() {\r\n // Orijinal mantık\r\n let result = undefined, resultData= undefined;\r\n let sourceLength = this.dataArrays.sourceCodeNumber;\r\n const targetData = divideToNestTarget(this.dataArrays.targetCodeArray, this.dataObject.nstSize, this.dataObject.codeMetrics);\r\n const sourceData = divideToNestSource(this.dataArrays.sourceCodeArray, this.dataArrays.sourceCodeNumber, this.dataObject.nstSize, this.dataObject.codeMetrics);\r\n const adcValue = this.dataObject.columnDFactor === 1 ? false : this.dataObject.columnDFactor;\r\n\r\n const dataParams = {\r\n sourceCodData: sourceData,\r\n sourceCodeNumber: this.dataArrays.sourceCodeNumber,\r\n targetCode: targetData,\r\n };\r\n\r\n const checkParams = {\r\n iterationFactor: this.dataObject.iterationFactor,\r\n recalculate: this.dataObject.recalculate,\r\n columnDFactor: adcValue,\r\n };\r\n\r\n const extraParams = { \r\n nstSize: this.dataObject.nstSize,\r\n codeMetrics: this.dataObject.codeMetrics,\r\n };\r\n\r\n if (this.dataObject.numberOfPopulation) {\r\n dataParams.sourceCodeArray = this.dataArrays.sourceCodeArray;\r\n checkParams.columnDFactor = undefined;\r\n result = runABByPopNumber(dataParams, checkParams, extraParams, this.dataObject.numberOfPopulation);\r\n resultData = callResultDataRdc(result);\r\n } else {\r\n result = runCustomMCAlgorithm(dataParams, checkParams, extraParams);\r\n resultData = callResultData(result, this.dataArrays.sourceCodeArray, sourceLength);\r\n }\r\n \r\n resultData.sort((a, b) => b[1] - a[1]);\r\n\r\n return callResponseData(result, resultData);\r\n },\r\n}\r\n\r\nexport default IllusDnaService;\r\n","import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\n\r\nVue.use(VueI18n)\r\n\r\nconst dateTimeFormats = {\r\n en: {\r\n short: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric',\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n },\r\n },\r\n tr: {\r\n short: {\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: 'numeric',\r\n },\r\n long: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n weekday: 'long',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n hour12: true,\r\n },\r\n },\r\n}\r\n\r\nconst numberFormats = {\r\n en: {\r\n currency: {\r\n style: 'currency',\r\n currency: 'USD',\r\n },\r\n },\r\n tr: {\r\n currency: {\r\n style: 'currency',\r\n currency: 'JPY',\r\n currencyDisplay: 'symbol',\r\n },\r\n },\r\n}\r\n\r\nfunction loadLocaleMessages() {\r\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.json$/i)\r\n const messages = {}\r\n locales.keys().forEach(key => {\r\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\r\n if (matched && matched.length > 1) {\r\n const locale = matched[1]\r\n messages[locale] = locales(key)\r\n }\r\n })\r\n return messages\r\n}\r\nexport default new VueI18n({\r\n locale: 'en',\r\n fallbackLocale: 'en',\r\n messages: loadLocaleMessages(),\r\n dateTimeFormats,\r\n numberFormats,\r\n})\r\n","var render, staticRenderFns\nimport script from \"./FeatherIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./FeatherIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FeatherIcon.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"h-100\",class:[_vm.skinClasses],attrs:{\"id\":\"app\"}},[_c(_vm.layout,{tag:\"component\"},[_c('router-view')],1),(_vm.enableScrollToTop)?_c('scroll-to-top'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn-scroll-to-top\",class:{'show': _vm.y > 250}},[_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"btn-icon\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.scrollToTop}},[_c('feather-icon',{attrs:{\"icon\":\"ArrowUpIcon\",\"size\":\"16\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollToTop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollToTop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ScrollToTop.vue?vue&type=template&id=8314f794&scoped=true&\"\nimport script from \"./ScrollToTop.vue?vue&type=script&lang=js&\"\nexport * from \"./ScrollToTop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScrollToTop.vue?vue&type=style&index=0&id=8314f794&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8314f794\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=45b17e51&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spinner-container\"},[_c('div',{staticClass:\"spinner-body\"},_vm._l((12),function(n){return _c('div',{key:n,staticClass:\"bar\",style:(_vm.getStyle(n))})}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinnerContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinnerContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SpinnerContainer.vue?vue&type=template&id=c2f95146&scoped=true&\"\nimport script from \"./SpinnerContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./SpinnerContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SpinnerContainer.vue?vue&type=style&index=0&id=c2f95146&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c2f95146\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatherIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatherIcon.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.$store.getters.getLoader)?_c('b-spinner',{attrs:{\"small\":\"\"}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinnerLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinnerLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SpinnerLoader.vue?vue&type=template&id=75792801&\"\nimport script from \"./SpinnerLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./SpinnerLoader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"crud-buttons\"},[_c('b-button-group',[(_vm.showRefresh)?_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.onClickRefresh}},[(_vm.$store.getters.getLoader)?_c('b-spinner',{staticClass:\"mr-1\",attrs:{\"small\":\"\",\"variant\":\"light\"}}):_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":\"RefreshCcwIcon\"}}),_c('span',{staticClass:\"align-middle\"},[_vm._v(_vm._s(_vm.$t('Refresh')))])],1):_vm._e(),(_vm.showAddNew)?_c('b-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],attrs:{\"variant\":\"warning\",\"size\":\"sm\"},on:{\"click\":_vm.onClickAddNew}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":\"PlusIcon\"}}),_c('span',{staticClass:\"align-middle\"},[_vm._v(_vm._s(_vm.$t('Add')))])],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CrudButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CrudButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CrudButton.vue?vue&type=template&id=0d6326b4&scoped=true&\"\nimport script from \"./CrudButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CrudButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CrudButton.vue?vue&type=style&index=0&id=0d6326b4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d6326b4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-alert',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.message),expression:\"message\"}],attrs:{\"variant\":_vm.variant,\"show\":\"\"}},[_c('div',{staticClass:\"alert-body\"},[_c('span',[_vm._v(_vm._s(_vm.message))])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=f29e6a0a&scoped=true&\"\nimport script from \"./Alert.vue?vue&type=script&lang=js&\"\nexport * from \"./Alert.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f29e6a0a\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport FeatherIcon from '@core/components/feather-icon/FeatherIcon.vue'\r\nimport SpinnerLoader from '@/components/SpinnerLoader.vue'\r\nimport CrudButton from '@/components/CrudButton.vue'\r\nimport vSelect from 'vue-select'\r\nimport Alert from '@/components/Alert.vue';\r\n\r\nVue.component('v-select', vSelect)\r\nVue.component(FeatherIcon.name, FeatherIcon)\r\nVue.component(SpinnerLoader.name, SpinnerLoader)\r\nVue.component(CrudButton.name, CrudButton)\r\nVue.component(Alert.name, Alert)\r\n","export const initialAbility = [\r\n {\r\n action: 'read',\r\n subject: 'Auth',\r\n },\r\n]\r\n\r\nexport const _ = undefined\r\n","import { Ability } from '@casl/ability'\r\nimport { initialAbility } from './config'\r\n\r\n// Read ability from localStorage\r\n// * Handles auto fetching previous abilities if already logged in user\r\n// ? You can update this if you store user abilities to more secure place\r\n// ! Anyone can update localStorage so be careful and please update this\r\nconst userData = JSON.parse(localStorage.getItem('userData'))\r\nconst existingAbility = userData ? userData.ability : null\r\n\r\nexport default new Ability(existingAbility || initialAbility)\r\n","import Vue from 'vue'\r\nimport { abilitiesPlugin } from '@casl/vue'\r\nimport ability from './ability'\r\n\r\nVue.use(abilitiesPlugin, ability)\r\n","import Vue from 'vue'\r\nimport PortalVue from 'portal-vue'\r\n\r\nVue.use(PortalVue)\r\n","import Vue from 'vue'\r\nimport VueClipboard from 'vue-clipboard2'\r\n\r\n// clipboard\r\nVue.use(VueClipboard)\r\n","import Vue from 'vue'\r\nimport Toast from 'vue-toastification'\r\n\r\n// Toast Notification Component Styles\r\nimport '@core/scss/vue/libs/toastification.scss'\r\n\r\n/**\r\n * NOTE: If you are using other transition them make sure to import it in `src/@core/scss/vue/libs/notification.scss` from it's source\r\n */\r\nVue.use(Toast, {\r\n hideProgressBar: true,\r\n closeOnClick: false,\r\n closeButton: false,\r\n icon: false,\r\n timeout: 3000,\r\n transition: 'Vue-Toastification__fade',\r\n})\r\n","import Vue from 'vue'\r\nimport VueSweetalert2 from 'vue-sweetalert2'\r\n\r\nVue.use(VueSweetalert2)\r\n","import Vue from 'vue'\r\nimport vSelect from 'vue-select'\r\n\r\n// Set the components prop default to return our fresh components\r\nvSelect.props.components.default = () => ({\r\n Deselect: {\r\n render: h => h('feather-icon', { props: { size: '14', icon: 'XIcon' } }),\r\n },\r\n OpenIndicator: {\r\n render: h => h('feather-icon', { props: { size: '15', icon: 'ChevronDownIcon' }, class: 'open-indicator' }),\r\n },\r\n})\r\n\r\nVue.component(vSelect)\r\n","import Vue from 'vue'\r\nimport VueTour from 'vue-tour'\r\n\r\nVue.use(VueTour)\r\n","import Vue from 'vue'\r\nimport BootstrapVue, { ToastPlugin, ModalPlugin } from 'bootstrap-vue'\r\nimport LottieVuePlayer from '@lottiefiles/vue-lottie-player';\r\nimport VueCompositionAPI from '@vue/composition-api'\r\nimport i18n from '@/libs/i18n'\r\nimport router from './router'\r\nimport store from './store'\r\nimport App from './App.vue'\r\nimport SpinnerContainer from './components/SpinnerContainer.vue';\r\n\r\n// Global Components\r\nimport './global-components'\r\n\r\n// 3rd party plugins\r\nimport '@axios'\r\nimport '@/libs/acl'\r\nimport '@/libs/portal-vue'\r\nimport '@/libs/clipboard'\r\nimport '@/libs/toastification'\r\nimport '@/libs/sweet-alerts'\r\nimport '@/libs/vue-select'\r\nimport '@/libs/tour'\r\n\r\n// leaflet css\r\nimport 'leaflet/dist/leaflet.css'\r\nimport 'mapbox-gl/dist/mapbox-gl.css'\r\n\r\n// BSV Plugin Registration\r\nVue.use(BootstrapVue)\r\nVue.use(ToastPlugin)\r\nVue.use(ModalPlugin)\r\n\r\n// Loader\r\nVue.use(LottieVuePlayer);\r\n\r\n// Composition API\r\nVue.use(VueCompositionAPI)\r\n\r\nVue.component(\"SpinnerContainer\", SpinnerContainer)\r\n\r\nVue.prototype.$formatNumber = function (value, decimals = 2) {\r\n if (!value) return '0.00';\r\n return parseFloat(value).toFixed(decimals);\r\n};\r\n// Feather font icon - For form-wizard\r\n// * Shall remove it if not using font-icons of feather-icons - For form-wizard\r\nrequire('@core/assets/fonts/feather/iconfont.css') // For form-wizard\r\n\r\n// import core styles\r\nrequire('@core/scss/core.scss')\r\n\r\n// import assets styles\r\nrequire('@/assets/scss/style.scss')\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n render: h => h(App),\r\n}).$mount('#app')\r\n","import router from '@/router'\r\n\r\nimport useJwt from '@/auth/jwt/useJwt'\r\nimport AlertService from './alert.service'\r\n\r\nconst ApiService = {\r\n get(resource, params, instance) {\r\n this.setInterceptor(instance)\r\n return useJwt.axiosIns.get(resource, { params }).catch(error => {\r\n this.controlErrorResponse(error, instance)\r\n return Promise.reject(error)\r\n })\r\n },\r\n\r\n getSilent(resource, params, instance) {\r\n this.setSilentInterceptor(instance)\r\n return useJwt.axiosIns.get(resource, { params }).catch(error => {\r\n this.controlErrorResponse(error, instance)\r\n return Promise.reject(error)\r\n })\r\n },\r\n\r\n post(resource, params, instance) {\r\n this.setInterceptor(instance)\r\n return useJwt.axiosIns.post(`${resource}`, params).catch(error => {\r\n this.controlErrorResponse(error, instance)\r\n return Promise.reject(error)\r\n })\r\n },\r\n\r\n postSilent(resource, params, instance) {\r\n this.setSilentInterceptor(instance)\r\n return useJwt.axiosIns.post(`${resource}`, params).catch(error => {\r\n this.controlErrorResponse(error, instance)\r\n return Promise.reject(error)\r\n })\r\n },\r\n\r\n upload(resource, formData, instance) {\r\n this.setInterceptor(instance)\r\n return useJwt.axiosIns.post(`${resource}`, formData, { headers: { 'Content-Type': 'multipart/form-data' } })\r\n .catch(error => {\r\n this.controlErrorResponse(error, instance)\r\n })\r\n },\r\n\r\n download(resource, params, instance) {\r\n return useJwt.axiosIns({\r\n url: `${resource}`,\r\n method: 'GET',\r\n responseType: 'blob',\r\n }).catch(error => {\r\n this.controlErrorResponse(error, instance)\r\n })\r\n },\r\n\r\n update(resource, slug, params) {\r\n return useJwt.axiosIns.put(`${resource}/${slug}`, params)\r\n },\r\n\r\n put(resource, params) {\r\n return useJwt.axiosIns.put(`${resource}`, params)\r\n },\r\n\r\n delete(resource) {\r\n return useJwt.axiosIns.delete(resource).catch(error => {\r\n throw new Error(`[RWV] ApiService ${error}`)\r\n })\r\n },\r\n\r\n controlErrorResponse(response, instance) {\r\n if (!instance.commit) instance = instance.$store\r\n instance.commit('setLoader', false)\r\n const instanceObject = instance._vm ? instance._vm : instance;\r\n \r\n if (response && response.status === 401) {\r\n router.push({ name: 'login' })\r\n } else {\r\n AlertService.error(instanceObject, response)\r\n }\r\n },\r\n\r\n setInterceptor(instance) {\r\n if (!instance.commit) instance = instance.$store\r\n instance.commit('setLoader', true)\r\n useJwt.axiosIns.interceptors.response.use(response => {\r\n instance.commit('setLoader', false)\r\n return response;\r\n }, error => Promise.reject(error))\r\n },\r\n\r\n setSilentInterceptor(instance) {\r\n /* eslint-disable */\r\n if (!instance.commit) instance = instance.$store\r\n useJwt.axiosIns.interceptors.response.use(response => {\r\n return response;\r\n }, error => Promise.reject(error))\r\n },\r\n}\r\n\r\nexport default ApiService\r\n","const AlertService = {\r\n success(instance, message, callback) {\r\n if (!message) {\r\n message = ''\r\n }\r\n \r\n instance.$swal({\r\n title: 'Successful.',\r\n text: message,\r\n icon: 'success',\r\n customClass: {\r\n confirmButton: 'btn btn-primary',\r\n },\r\n buttonsStyling: false,\r\n }).then(confirm => {\r\n if (typeof callback === 'function' && confirm) {\r\n callback()\r\n }\r\n })\r\n },\r\n\r\n error(instance, message, callback) {\r\n if (!message) {\r\n message = ''\r\n }\r\n \r\n instance.$swal({\r\n title: 'An error occurred!',\r\n text: message,\r\n icon: 'error',\r\n customClass: {\r\n confirmButton: 'btn btn-primary',\r\n },\r\n buttonsStyling: false,\r\n }).then(confirm => {\r\n if (typeof callback === 'function' && confirm) {\r\n callback()\r\n }\r\n })\r\n },\r\n\r\n warning(instance, message, callback) {\r\n if (!message) {\r\n message = ''\r\n }\r\n \r\n instance.$swal({\r\n title: 'Warning...!',\r\n text: message,\r\n icon: 'warning',\r\n customClass: {\r\n confirmButton: 'btn btn-primary',\r\n },\r\n buttonsStyling: false,\r\n }).then(confirm => {\r\n if (typeof callback === 'function' && confirm) {\r\n callback()\r\n }\r\n })\r\n },\r\n\r\n confirmDelete(instance, callback, message) {\r\n if (!message) {\r\n message = 'You are about to delete your account permanently. This action is irreversible.'\r\n }\r\n\r\n instance.$swal({\r\n title: 'Are you sure?',\r\n text: message,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: 'Confirm Deletion',\r\n cancelButtonText: 'Cancel',\r\n customClass: {\r\n confirmButton: 'btn btn-danger',\r\n cancelButton: 'btn btn-outline-info ml-1',\r\n },\r\n buttonsStyling: false,\r\n }).then(result => {\r\n if (typeof callback === 'function' && result.value) {\r\n callback()\r\n }\r\n })\r\n },\r\n\r\n confirmSuccess(instance, callback, message) {\r\n if (!message) {\r\n message = ''\r\n }\r\n\r\n instance.$swal({\r\n title: 'Confirm the Transaction?',\r\n text: message,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: 'Ok, Continue',\r\n cancelButtonText: 'Cancel',\r\n customClass: {\r\n confirmButton: 'btn btn-primary',\r\n cancelButton: 'btn btn-outline-danger ml-1',\r\n },\r\n buttonsStyling: false,\r\n }).then(result => {\r\n if (typeof callback === 'function' && result.value) {\r\n callback()\r\n }\r\n })\r\n },\r\n}\r\n\r\nexport default AlertService\r\n","export default {\r\n // Endpoints\r\n loginEndpoint: '/account/login',\r\n registerEndpoint: '/jwt/register',\r\n refreshEndpoint: '/jwt/refresh-token',\r\n logoutEndpoint: '/account/logout',\r\n\r\n // This will be prefixed in authorization header with token\r\n // e.g. Authorization: Bearer \r\n tokenType: 'Bearer',\r\n\r\n // Value of this property will be used as key to store JWT token in storage\r\n storageTokenKeyName: 'accessToken',\r\n storageRefreshTokenKeyName: 'refreshToken',\r\n storageUserDataName: 'userData',\r\n}\r\n","import jwtDefaultConfig from './jwtDefaultConfig'\r\n\r\nexport default class JwtService {\r\n // Will be used by this service for making API calls\r\n axiosIns = null\r\n\r\n // jwtConfig <= Will be used by this service\r\n jwtConfig = { ...jwtDefaultConfig }\r\n\r\n // For Refreshing Token\r\n isAlreadyFetchingAccessToken = false\r\n\r\n // For Refreshing Token\r\n subscribers = []\r\n\r\n constructor(axiosIns, jwtOverrideConfig) {\r\n this.axiosIns = axiosIns\r\n this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig }\r\n\r\n // Request Interceptor\r\n this.axiosIns.interceptors.request.use(\r\n config => {\r\n // Get token from localStorage\r\n const accessToken = this.getToken()\r\n \r\n // If token is present add it to request's Authorization Header\r\n if (accessToken && !config.url.includes('https://illustrativedna-raw-files')) {\r\n // eslint-disable-next-line no-param-reassign\r\n config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\r\n }\r\n return config\r\n },\r\n error => Promise.reject(error),\r\n )\r\n\r\n // Add request/response interceptor\r\n this.axiosIns.interceptors.response.use(\r\n response => response,\r\n error => Promise.reject(error.response),\r\n )\r\n }\r\n\r\n onAccessTokenFetched(accessToken) {\r\n this.subscribers = this.subscribers.filter(callback => callback(accessToken))\r\n }\r\n\r\n addSubscriber(callback) {\r\n this.subscribers.push(callback)\r\n }\r\n\r\n getToken() {\r\n return localStorage.getItem(this.jwtConfig.storageTokenKeyName)\r\n }\r\n\r\n getRefreshToken() {\r\n return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName)\r\n }\r\n\r\n setToken(value) {\r\n localStorage.setItem(this.jwtConfig.storageTokenKeyName, value)\r\n }\r\n\r\n setRefreshToken(value) {\r\n localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value)\r\n }\r\n\r\n setUserData(userData) {\r\n localStorage.setItem(this.jwtConfig.storageUserDataName, JSON.stringify(userData))\r\n }\r\n\r\n login(...args) {\r\n return this.axiosIns.post(this.jwtConfig.loginEndpoint, ...args)\r\n }\r\n\r\n register(...args) {\r\n return this.axiosIns.post(this.jwtConfig.registerEndpoint, ...args)\r\n }\r\n\r\n refreshToken() {\r\n return this.axiosIns.post(this.jwtConfig.refreshEndpoint, {\r\n refreshToken: this.getRefreshToken(),\r\n })\r\n }\r\n}\r\n","import JwtService from './jwtService'\r\n\r\nexport default function useJwt(axiosIns, jwtOverrideConfig) {\r\n const jwt = new JwtService(axiosIns, jwtOverrideConfig)\r\n\r\n return {\r\n jwt,\r\n }\r\n}\r\n","import useJwt from '@core/auth/jwt/useJwt'\r\nimport axios from '@axios'\r\n\r\nconst { jwt } = useJwt(axios, {})\r\nexport default jwt\r\n","/* eslint-disable */\r\nconst farmerHgsHelpers = {\r\n // Farmer HGS\r\n _SetFarmerHGsResult(state, selectedResultId, result) {\r\n this._SetFarmerHGsABResults(state.farmerAndHGsResults, selectedResultId, result);\r\n },\r\n\r\n _SetFarmerHGsABResults(stateResults, selectedResultId, result) {\r\n const tempRegionResults = JSON.parse(JSON.stringify(result));\r\n tempRegionResults.outPuts = [];\r\n result.outPuts.forEach(value => {\r\n const splitValue = value.resultsTable.split(':');\r\n if (splitValue.length > 0) {\r\n let findValue = tempRegionResults.outPuts.find(x => x.resultsTable === splitValue[0]);\r\n if (findValue) {\r\n findValue.currentResult += value.currentResult;\r\n } else {\r\n value.resultsTable = splitValue[0];\r\n tempRegionResults.outPuts.push(value);\r\n }\r\n }\r\n });\r\n tempRegionResults.outPuts.sort((a, b) => b.currentResult - a.currentResult);\r\n const farmerHGsResult = stateResults.find(x => x.selectedResultId === selectedResultId);\r\n if (farmerHGsResult) {\r\n farmerHGsResult.result = tempRegionResults;\r\n } else {\r\n stateResults.push({\r\n selectedResultId: selectedResultId,\r\n result: tempRegionResults,\r\n });\r\n }\r\n },\r\n}\r\n\r\nexport default farmerHgsHelpers;","import Vue from 'vue'\r\n// axios\r\nimport axios from 'axios'\r\n\r\nimport { API_URL } from '@/common/config'\r\n\r\n/* eslint-disable */\r\nconst axiosIns = axios.create({\r\n baseURL: API_URL,\r\n // baseURL: 'https://localhost:5001/api/',\r\n headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET,POST,OPTIONS,DELETE,PUT' },\r\n})\r\n\r\n// Add a response interceptor\r\naxiosIns.interceptors.response.use(response => {\r\n try {\r\n if (typeof response.data.result === 'string') {\r\n response.data.result = JSON.parse(response.data.result);\r\n }\r\n } catch {\r\n // response.data = response.data;\r\n }\r\n return response.data;\r\n}, error => Promise.reject(error));\r\n\r\nVue.prototype.$http = axiosIns\r\n\r\nexport default axiosIns\r\n","import useJwt from '@/auth/jwt/useJwt'\r\n\r\n/**\r\n * Return if user is logged in\r\n * This is completely up to you and how you want to store the token in your frontend application\r\n * e.g. If you are using cookies to store the application please update this function\r\n */\r\n// eslint-disable-next-line arrow-body-style\r\nexport const isUserLoggedIn = () => {\r\n return localStorage.getItem('userData') && localStorage.getItem(useJwt.jwtConfig.storageTokenKeyName)\r\n}\r\n\r\nexport const getUserData = () => JSON.parse(localStorage.getItem('userData'))\r\n\r\nexport const getUserRole = () => {\r\n if (getUserData()) {\r\n return getUserData().userRole;\r\n } \r\n return null;\r\n}\r\n\r\n// Roles\r\nexport const Role = {\r\n Customer: 'Customer',\r\n}\r\n\r\n/**\r\n * This function is used for demo purpose route navigation\r\n * In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n * Please note role field is just for showing purpose it's not used by anything in frontend\r\n * We are checking role just for ease\r\n * NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = userRole => {\r\n if (userRole === Role.Customer) return { name: 'dashboard' }\r\n if (userRole === 'client') return { name: 'access-control' }\r\n return { name: 'login' }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeatherIcon.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollToTop.vue?vue&type=style&index=0&id=8314f794&lang=scss&scoped=true&\"","import { Role } from '@/auth/utils'\r\n\r\nexport default [\r\n {\r\n path: '/dashboard',\r\n name: 'dashboard',\r\n component: () => import('@/views/dashboard.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n pageTitle: 'Dashboard',\r\n code: 'DASHBOARD',\r\n },\r\n },\r\n\r\n {\r\n path: '/dashboard/da',\r\n name: 'dashboard-da',\r\n component: () => import('@/views/dashboards/g25-dashboard/DashboardG25.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n pageTitle: 'DEEP ANCESTRY',\r\n code: 'G25-DASHBOARD',\r\n },\r\n },\r\n\r\n {\r\n path: '/dashboard/traits',\r\n name: 'dashboard-traits',\r\n component: () => import('@/views/results/traits-health/TraitResult.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n pageTitle: 'TRAITS & HEALTH',\r\n code: 'TRAIT-HEALTH',\r\n },\r\n },\r\n\r\n {\r\n path: '/dashboard/ibd',\r\n name: 'dashboard-ibd',\r\n component: () => import('@/views/results/ibd/IbdResult.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n pageTitle: 'IBD',\r\n code: 'IBD',\r\n },\r\n },\r\n\r\n {\r\n path: '/dashboard/upgradev2',\r\n name: 'dashboard-upgradev2',\r\n component: () => import('@/views/dashboards/update-v2/UpdateToV2.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n pageTitle: 'UPGRADE TO V2',\r\n code: 'DASHBOARD',\r\n },\r\n },\r\n\r\n {\r\n path: '/order/list',\r\n name: 'order-list',\r\n component: () => import('@/views/dashboards/main-dashboard/actions/orders/MobileOrderList.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n },\r\n },\r\n\r\n {\r\n path: '/notifications',\r\n name: 'notifications',\r\n component: () => import('@/views/others/Notifications.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n },\r\n },\r\n\r\n {\r\n path: '/kits/list',\r\n name: 'kits-list',\r\n component: () => import('@/views/dashboards/main-dashboard/actions/kits/MobileKitsList.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n },\r\n },\r\n\r\n {\r\n path: '/ticket/list',\r\n name: 'ticket-list',\r\n component: () => import('@/views/dashboards/main-dashboard/actions/tickets/MobileTicketList.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n },\r\n },\r\n {\r\n path: '/ticket/new-ticket',\r\n name: 'new-ticket',\r\n component: () => import('@/views/dashboards/main-dashboard/actions/tickets/NewTicket.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n },\r\n },\r\n {\r\n path: '/ticket/detail/:id',\r\n name: 'ticket-detail',\r\n component: () => import('@/views/dashboards/main-dashboard/actions/tickets/TicketDetail.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n },\r\n },\r\n \r\n // Checkout\r\n {\r\n path: '/checkout/select-service',\r\n name: 'checkout-select-service',\r\n component: () => import('@/views/checkouts/select-services/CheckoutSelectService.vue'),\r\n meta: {\r\n layout: 'full',\r\n },\r\n },\r\n {\r\n path: '/checkout/da/:step',\r\n name: 'checkout-da',\r\n component: () => import('@/views/checkouts/DeepAncestryCheckout/DeepACheckout.vue'),\r\n meta: {\r\n layout: 'full',\r\n },\r\n },\r\n {\r\n path: '/checkout/da/:step/:product_code',\r\n name: 'checkout-da',\r\n component: () => import('@/views/checkouts/DeepAncestryCheckout/DeepACheckout.vue'),\r\n meta: {\r\n layout: 'full',\r\n },\r\n },\r\n\r\n // {\r\n // path: '/checkout/trait/:step/:product_code',\r\n // name: 'checkout-trait',\r\n // component: () => import('@/views/purchase/TraitCheckout.vue'),\r\n // meta: {\r\n // layout: 'full',\r\n // },\r\n // },\r\n\r\n {\r\n path: '/checkout/g25-partner/:link_guid',\r\n name: 'checkout-trait',\r\n component: () => import('@/views/purchase-partner/g25/PartnerCheckout.vue'),\r\n meta: {\r\n layout: 'full',\r\n },\r\n },\r\n \r\n // Order Results\r\n {\r\n path: '/order-result/da/:type',\r\n name: 'order-result-da',\r\n component: () => import('@/views/results/g25/G25Result.vue'),\r\n meta: {\r\n contentClass: 'page-orders',\r\n authorize: [Role.Customer],\r\n pageTitle: 'Deep Ancestry >',\r\n code: 'G25',\r\n },\r\n },\r\n\r\n {\r\n path: '/order-result/trait-detail/:id/:traitIds',\r\n name: 'order-result-trait-detail',\r\n component: () => import('@/views/results/traits-health/Traits/TraitDetail.vue'),\r\n meta: {\r\n authorize: [Role.Customer],\r\n pageTitle: 'TRAITS & HEALTH >',\r\n code: 'TRAIT-HEALTH',\r\n },\r\n },\r\n]\r\n","import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\n\r\n// Routes\r\nimport { isUserLoggedIn, getUserRole, Role } from '@/auth/utils'\r\nimport customer from './routes/customer'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n scrollBehavior() {\r\n return { x: 0, y: 0 }\r\n },\r\n routes: [\r\n { \r\n path: '/', \r\n redirect: { name: 'dashboard' },\r\n meta: {\r\n authorize: [Role.Customer],\r\n code: 'DASHBOARD',\r\n },\r\n },\r\n ...customer,\r\n\r\n {\r\n path: '/profile-settings',\r\n name: 'profile-settings',\r\n component: () => import('@/views/profile-settings/ProfileSettings.vue'),\r\n meta: {\r\n authorize: [],\r\n },\r\n },\r\n {\r\n path: '/signup',\r\n name: 'signup',\r\n component: () => import('@/views/account/Register.vue'),\r\n meta: {\r\n layout: 'full',\r\n resource: 'Auth',\r\n redirectIfLoggedIn: true,\r\n },\r\n },\r\n {\r\n path: '/login',\r\n name: 'login',\r\n component: () => import('@/views/account/Login.vue'),\r\n meta: {\r\n layout: 'full',\r\n resource: 'Auth',\r\n redirectIfLoggedIn: true,\r\n },\r\n },\r\n {\r\n path: '/loginguid/:code',\r\n name: 'loginguid',\r\n component: () => import('@/views/account/LoginGuid.vue'),\r\n meta: {\r\n layout: 'full',\r\n resource: 'Auth',\r\n redirectIfLoggedIn: true,\r\n },\r\n },\r\n {\r\n path: '/forgotpassword',\r\n name: 'forgotpassword',\r\n component: () => import('@/views/account/ForgotPassword.vue'),\r\n meta: {\r\n layout: 'full',\r\n resource: 'Auth',\r\n redirectIfLoggedIn: true,\r\n },\r\n },\r\n {\r\n path: '/resetpassword/:verifyCode',\r\n name: 'resetpassword',\r\n component: () => import('@/views/account/ResetPassword.vue'),\r\n meta: {\r\n layout: 'full',\r\n resource: 'Auth',\r\n redirectIfLoggedIn: true,\r\n },\r\n },\r\n {\r\n path: '/email-verify/:verifyCode',\r\n name: 'email-verify',\r\n component: () => import('@/views/account/EmailVerify.vue'),\r\n meta: {\r\n layout: 'full',\r\n resource: 'Auth',\r\n redirectIfLoggedIn: true,\r\n },\r\n },\r\n {\r\n path: '/error-404',\r\n name: 'error-404',\r\n component: () => import('@/views/error/Error404.vue'),\r\n meta: {\r\n layout: 'full',\r\n },\r\n },\r\n {\r\n path: '*',\r\n redirect: 'error-404',\r\n },\r\n ],\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const { authorize } = to.meta\r\n if (authorize) {\r\n const isLoggedIn = isUserLoggedIn()\r\n const currentUserRole = getUserRole()\r\n\r\n if (!isLoggedIn) {\r\n // not logged in so redirect to login page with the return url\r\n if (to.name === 'login') {\r\n return next();\r\n } \r\n return next({ name: 'login' });\r\n }\r\n\r\n // check if route is restricted by role\r\n if (authorize.length && !authorize.includes(currentUserRole)) {\r\n // role not authorised so redirect to home page\r\n if ((currentUserRole === Role.Customer) && to.name !== 'customer-home') {\r\n next({ name: 'customer-home' });\r\n } else {\r\n next({ path: '/' });\r\n }\r\n }\r\n }\r\n\r\n return next()\r\n})\r\n\r\nexport default router\r\n","// export const API_URL = 'https://localhost:5001/api';\r\nexport const API_URL = 'https://api.illustrativedna.com/api';\r\n// export const API_URL = 'https://apitest.illustrativedna.com/api';\r\n\r\nexport const GOOGLE_API_KEY = process.env.NODE_ENV === 'development' ? 'AIzaSyAtgBHdXZtVI3tSA2APEbloj441Bp3E35A' : 'AIzaSyCq0AU-7Vq6ggAEgfCSPIxHFQbSKseyuBk';\r\n\r\nexport const regionDefaultId = 1;\r\nexport const regionGrupDefaultId = 3;\r\n\r\nexport const PRODUCT_CODES = {\r\n UPLOAD_DA_COORDINATES: 'upload_coordinates',\r\n UPLOAD_DA_RAW_DATA: 'Upload_Raw_Data',\r\n UPLOAD_TRAIT_RAW_DATA: 'traits_health',\r\n};\r\n\r\nexport const DA_CHECKOUT_STEPS = {\r\n SELECT_SERVICE: 'select-service',\r\n UPLOAD: 'upload',\r\n ACCOUNT: 'account',\r\n CONFIRM: 'confirm',\r\n};\r\n\r\nexport const TRAIT_CHECKOUT_STEPS = {\r\n UPLOAD: 'upload',\r\n ACCOUNT: 'account',\r\n CONFIRM: 'confirm',\r\n};\r\n\r\nexport const DA_RESULT_TABS = {\r\n PERIODICAL: { code: 'PERIODICAL', title: 'Supervised Periodical Breakdown' },\r\n FARMER_HGS: { code: 'FARMER_HGS', title: 'Hunter-Gatherer & Farmer' },\r\n MIXED_MODE: { code: 'MIXED_MODE', title: 'Unsupervised Ancient' },\r\n MODERN_MIXED_MODE: { code: 'MODERN_MIXED_MODE', title: 'Unsupervised Modern' },\r\n MODERN_DIY_MODEL: { code: 'MODERN_DIY_MODEL', title: 'DIY Modern Model' },\r\n ANCIENT_DIY_MODEL: { code: 'ANCIENT_DIY_MODEL', title: 'DIY Ancient Model' },\r\n MODERN_GENETIC_DISTANCES: { code: 'MODERN_GENETIC_DISTANCES', title: 'Closest Modern Populations' },\r\n ANCESTRY_GENETIC_DISTANCES: { code: 'ANCESTRY_GENETIC_DISTANCES', title: 'Closest Ancient Populations' },\r\n PLOT_PCA: { code: 'PLOT_PCA', title: 'Principal Component Analysis' },\r\n ENCYCLOPEDIA: { code: 'ENCYCLOPEDIA', title: 'ENCYCLOPEDIA' },\r\n};\r\n\r\nexport const TRAITS_RESULT_TABS = {\r\n TRAITS: { code: 'TRAITS', title: 'Traits' },\r\n VITAMINS_MINERALS: { code: 'VITAMINS_MINERALS', title: 'Vitamins & Minerals' },\r\n};\r\n","module.exports = \"data:image/png;base64,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\"","import { computed, watch } from '@vue/composition-api'\r\nimport store from '@/store'\r\n\r\nexport default function usAppConfig() {\r\n // ------------------------------------------------\r\n // isVerticalMenuCollapsed\r\n // ------------------------------------------------\r\n const isVerticalMenuCollapsed = computed({\r\n get: () => store.state.verticalMenu.isVerticalMenuCollapsed,\r\n set: val => {\r\n store.commit('verticalMenu/UPDATE_VERTICAL_MENU_COLLAPSED', val)\r\n },\r\n })\r\n\r\n // ------------------------------------------------\r\n // RTL\r\n // ------------------------------------------------\r\n const isRTL = computed({\r\n get: () => store.state.appConfig.layout.isRTL,\r\n set: val => {\r\n store.commit('appConfig/TOGGLE_RTL', val)\r\n },\r\n })\r\n\r\n // ------------------------------------------------\r\n // Skin\r\n // ------------------------------------------------\r\n const skin = computed({\r\n get: () => store.state.appConfig.layout.skin,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_SKIN', val)\r\n },\r\n })\r\n\r\n const skinClasses = computed(() => {\r\n if (skin.value === 'bordered') return 'bordered-layout'\r\n if (skin.value === 'semi-dark') return 'semi-dark-layout'\r\n\r\n // Do not return any class for dark layout because dark layout updates class in body\r\n // Do not return any class for light layout as that is default layout\r\n return null\r\n })\r\n \r\n const hrClasses = computed(() => {\r\n if (skin.value === 'light') return 'light-hr'\r\n if (skin.value === 'dark') return 'dark-hr'\r\n\r\n // Do not return any class for dark layout because dark layout updates class in body\r\n // Do not return any class for light layout as that is default layout\r\n return null\r\n })\r\n\r\n // ------------------------------------------------\r\n // routerTransition\r\n // ------------------------------------------------\r\n const routerTransition = computed({\r\n get: () => store.state.appConfig.layout.routerTransition,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_ROUTER_TRANSITION', val)\r\n },\r\n })\r\n\r\n // *===============================================---*\r\n // *--------- LAYOUT ---------------------------------------*\r\n // *===============================================---*\r\n\r\n // ------------------------------------------------\r\n // layoutType\r\n // ------------------------------------------------\r\n\r\n const layoutType = computed({\r\n get: () => store.state.appConfig.layout.type,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_LAYOUT_TYPE', val)\r\n },\r\n })\r\n\r\n // Reset skin if skin is semi-dark and move to horizontal layout\r\n watch(layoutType, val => {\r\n if (val === 'horizontal' && skin.value === 'semi-dark') skin.value = 'light'\r\n })\r\n\r\n // ------------------------------------------------\r\n // Content Width (Full/Boxed)\r\n // ------------------------------------------------\r\n const contentWidth = computed({\r\n get: () => store.state.appConfig.layout.contentWidth,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_CONTENT_WIDTH', val)\r\n },\r\n })\r\n\r\n // ------------------------------------------------\r\n // isNavMenuHidden\r\n // ------------------------------------------------\r\n const isNavMenuHidden = computed({\r\n get: () => store.state.appConfig.layout.menu.hidden,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_NAV_MENU_HIDDEN', val)\r\n },\r\n })\r\n\r\n // *===============================================---*\r\n // *--------- NAVBAR ---------------------------------------*\r\n // *===============================================---*\r\n\r\n const navbarBackgroundColor = computed({\r\n get: () => store.state.appConfig.layout.navbar.backgroundColor,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_NAVBAR_CONFIG', { backgroundColor: val })\r\n },\r\n })\r\n\r\n const navbarType = computed({\r\n get: () => store.state.appConfig.layout.navbar.type,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_NAVBAR_CONFIG', { type: val })\r\n },\r\n })\r\n\r\n // *===============================================---*\r\n // *--------- FOOTER ---------------------------------------*\r\n // *===============================================---*\r\n\r\n const footerType = computed({\r\n get: () => store.state.appConfig.layout.footer.type,\r\n set: val => {\r\n store.commit('appConfig/UPDATE_FOOTER_CONFIG', { type: val })\r\n },\r\n })\r\n\r\n return {\r\n isVerticalMenuCollapsed,\r\n isRTL,\r\n skin,\r\n skinClasses,\r\n hrClasses,\r\n routerTransition,\r\n\r\n // Navbar\r\n navbarBackgroundColor,\r\n navbarType,\r\n\r\n // Footer\r\n footerType,\r\n\r\n // Layout\r\n layoutType,\r\n contentWidth,\r\n isNavMenuHidden,\r\n }\r\n}\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinnerContainer.vue?vue&type=style&index=0&id=c2f95146&lang=scss&scoped=true&\""],"sourceRoot":""}