{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?679b","webpack:///./src/helpers/ApiCalls.js","webpack:///./src/components/public/NavBar.vue?e43e","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?539b","webpack:///./src/locales sync ^\\.\\/.*\\.json$","webpack:///./src/components/public/Login.vue?752b","webpack:///./src/constants/Recommendations.js","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?87b4","webpack:///./src/store/state.js","webpack:///./src/helpers/MachineDetails.js","webpack:///./src/helpers/ImageConversion.js","webpack:///./src/store/mutations.js","webpack:///./src/services/indexedDB.js","webpack:///./src/store/actions.js","webpack:///./src/constants/Currency.js","webpack:///./src/store/getters.js","webpack:///./src/store/index.js","webpack:///./src/components/public/FooterInfo.vue?a3e5","webpack:///./src/constants/Navigation.js","webpack:///./src/App.vue?e5a3","webpack:///./src/components/public/NavBar.vue?b8ac","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?ef85","webpack:///src/components/public/SawCalc/Inputs/InputUOMSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?934b","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?9418","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?9160","webpack:///src/components/public/SawCalc/Inputs/InputMachineSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?8bd0","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?3458","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?89fc","webpack:///src/components/public/SawCalc/Inputs/InputMaterialSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?2435","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?bf22","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?3937","webpack:///src/components/public/SawCalc/Inputs/InputDimensionsSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?a157","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?7fec","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?4c29","webpack:///src/components/public/SawCalc/Inputs/InputVisingSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?4b61","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?2558","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?6083","webpack:///src/components/public/SawCalc/Inputs/InputConditionsSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?52dc","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?8957","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?a54c","webpack:///src/components/public/SawCalc/Inputs/InputCurrencySide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?e526","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?9922","webpack:///src/components/public/NavBar.vue","webpack:///./src/components/public/NavBar.vue?d4a8","webpack:///./src/components/public/NavBar.vue?2b24","webpack:///./src/components/public/FooterInfo.vue?8c41","webpack:///src/components/public/FooterInfo.vue","webpack:///./src/components/public/FooterInfo.vue?2cbf","webpack:///./src/components/public/FooterInfo.vue?764e","webpack:///./src/components/public/FooterLinks.vue?b396","webpack:///src/components/public/FooterLinks.vue","webpack:///./src/components/public/FooterLinks.vue?e0a9","webpack:///./src/components/public/FooterLinks.vue?20b8","webpack:///./src/components/public/Login.vue?15d6","webpack:///src/components/public/Login.vue","webpack:///./src/components/public/Login.vue?e7ee","webpack:///./src/components/public/Login.vue?8ea3","webpack:///./src/components/public/Register.vue?4d4b","webpack:///src/components/public/Register.vue","webpack:///./src/components/public/Register.vue?b76c","webpack:///./src/components/public/Register.vue?ae01","webpack:///./src/components/public/PasswordReset.vue?19e1","webpack:///src/components/public/PasswordReset.vue","webpack:///./src/components/public/PasswordReset.vue?bfbe","webpack:///./src/components/public/PasswordReset.vue?5333","webpack:///./src/views/public/BrowserCheck.vue?d618","webpack:///./src/helpers/BrowserCheck.js","webpack:///src/views/public/BrowserCheck.vue","webpack:///./src/views/public/BrowserCheck.vue?8699","webpack:///./src/views/public/BrowserCheck.vue","webpack:///src/App.vue","webpack:///./src/App.vue?3359","webpack:///./src/App.vue?2667","webpack:///./src/plugins/vuetify.js","webpack:///./src/main.js","webpack:///./src/constants/Masks.js","webpack:///./src/components/public/FooterLinks.vue?1158","webpack:///./src/App.vue?30f2","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?1fd3","webpack:///./src/helpers/Calculations.js","webpack:///./src/views/public/Home.vue?b0f2","webpack:///./src/constants/Footer.js","webpack:///./src/config/ConfigSettings.js","webpack:///./src/assets/logo.svg","webpack:///./src/App.vue?a4a9","webpack:///./src/views/public/Home.vue?301f","webpack:///src/views/public/Home.vue","webpack:///./src/views/public/Home.vue?fb2a","webpack:///./src/views/public/Home.vue?5818","webpack:///./src/router/index.js","webpack:///./src/styles/_variables.scss","webpack:///./src/components/public/PasswordReset.vue?8460","webpack:///./src/assets/logo.png","webpack:///./src/plugins/i18n.js","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?9247","webpack:///./src/constants/ReturnCode.js","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?70da","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?6dda","webpack:///./src/components/public/Register.vue?1097"],"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","api","headers","getters","language","locale","user","email","token","responseError","response","status","JSON","parse","statusText","returnCode","ErrBadRequest","authenticationError","authenticationErrors","ErrAccessTokenChanged","ErrAICInvalidAccessToken","ErrAICAuthCodeNotValid","ErrAICTokenExpired","includes","authErrorRedirectTimeout","map","webpackContext","req","id","webpackContextResolve","keys","recommendations","Performance","HighPerformance","ExtremePerformance","Custom","snackbar","show","color","delay","navigation","toolbar","heading","title","action","visible","spacer","hiddenXsOnlyButton","path","hiddenSmAndDownMenu","items","hiddenSmAndDownButton","tabs","route","tab","menu","menuIndex","url","tabsUser","tabsAdmin","side","divider","sideUser","sideAdmin","languages","flag","messages","footer","statusBar","cookieSettings","copywrite","info","contact","social","icon","input","metric","inputUOM","machine","manufacturerName","model","bladeLength","material","designation","hardnessDescription","dimensions","shape","vising","quantity","arrangement","conditions","lubrication","pinching","canting","currency","inputCurrency","resetInputs","savedInput","machineSelectorDialog","loading","manufacturers","machines","userMachines","userMachine","bladeWidthImperialList","bladeWidthMetricList","bladeThicknessImperialList","bladeThicknessMetricList","bladeLengthFtList","bladeLengthInList","bladeLengthFrList","bladeLengthMetricList","unknownMachineImperialKey","unknownMachineMetricKey","machinesReady","machineTasks","description","function","materialSelectorDialog","materialStandards","unsCategories","unsAlloyGroups","sawCalcGroups","machinabilityGroups","unsGeneralDescriptions","subCategories","materials","selectMaterials","userMaterials","userMaterial","scales","defaultHardness","hbHardnessMin","hbHardnessMinConvertable","hbHardnessMax","hrcHardnessMin","hrcHardnessMax","materialSelectorDetailsKey","materialsReady","materialTasks","dimensionsSelectorDialog","iBeamGroups","iBeamStandards","dimensionsReady","dimensionTasks","visingSelectorDialog","visingReady","conditionsSelectorDialog","conditionsReady","defaultCantingDegrees","productLines","productLinesReady","productLineTasks","sawCalcLoading","settingsLoaded","blade","specs","bandSpeed","feedRate","chipLoad","cuttingRate","cutTime","selectedRecommendation","selectedRecommendationForCustom","bandSpeedImperialIncrement","bandSpeedMetricIncrement","bandSpeedMin","bandSpeedMax","feedRateImperialIncrement","feedRateMetricIncrement","feedRateMin","feedRateMax","overrideMin","overrideMax","overrideStep","recommendationUpdated","recommendationKey","costCalculations","bladeLife","pricePerBlade","cutsPerBlade","measurement","laborBurdenRate","costsPerCut","costsPerMeasurement","loginDialog","registerDialog","passwordResetDialog","users","usersKey","countries","defaultCountry","countryName","dataTableUserLinksKey","stats","axiosSource","sawCalcDrawer","images","home","cover","fileName","defaultURL","loadingURL","maxSize","dataTableSettingsDialog","dataTableUOMSettingsDialog","dataTableSettingsKey","dataTableUOMSettingsKey","machinesAdmin","machinesAdminSettings","materialsAdmin","materialsAdminSettings","materialsLoading","materialDialogKey","dataTableChemicalCompositionsDialog","chemicalCompositionsDialogKey","productLinesSettings","productLineDialogKey","productLinesShort","bwlRefs","productTypes","recommendationsAdmin","recommendationsAdminSettings","cuttingCharts","cuttingChartsSettings","parameters","productSelections","productRecommendations","userLogoUrl","userLogoImageMaxSize","machinesUserSettings","machineImageMaxSize","materialsUserSettings","userRecommendations","recommendationsUserSettings","machineDetails","getFraction","fraction","getBladeWidth","item","bladeWidthMetric","desc","bladeWidthIn","bladeWidthFr","this","getBladeThickness","bladeThicknessMetric","bladeThicknessImperial","getBladeLength","bladeLengthMetric","bladeLengthFt","bladeLengthIn","bladeLengthFr","getMachineOrientation","hortizontal","sawCalc","inputMachine","machineOrientationHorizontalLabel","machineOrientationVerticalLabel","getScissorPivot","scissorPivot","common","yes","no","getCantedHead","cantedHead","getBandSpeed","min","bandSpeedMinMetric","bandSpeedMaxMetric","bandSpeedMinImperial","bandSpeedMaxImperial","imageConversion","arrayBufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","btoa","dataBase64","SET_DEFAULT_LANGUAGE","state","json","require","SET_LANGUAGES","list","LanguageID","Flag","Locale","Title","uom","UOM","Language","SET_LANG","find","lang","i18n","setLocaleMessage","default","UPDATE_NAVIGATION_BY_LANG","Phone","replace","Login","Logoff","Home","SawCalc","BandSawGuide","BladeTerminology","BladeConstruction","ToothOptions","CuttingFactors","BeamStrength","Lubrication","BreakInInstructions","BasicMaintenanceTips","CommonProblems","GlossaryOfBandsawTerms","LENOXAdvantage","Dashboard","Library","Machines","Materials","Account","ProductLines","Recommendations","EngineParameters","DictionaryUI","DictionaryWS","Translation","UPDATE_TOOLBAR_NAVIGATION_BY_USER","UPDATE_FOOTER_BY_LANG","TermsOfUse","PrivacyPolicy","CookieSettings","Copywrite","LenoxTools","Contact","SET_INPUT_MACHINE","payload","MachineID","userMachineID","UserMachineID","machineID","machineName","MachineName","manufacturerID","ManufacturerID","ManufacturerName","Model","BladeWidthIn","BladeWidthFr","BladeWidthMetric","BladeThicknessImperial","BladeThicknessMetric","BladeLengthFt","BladeLengthIn","BladeLengthFr","bladeLengthImperial","BladeLengthImperial","BladeLengthMetric","Hortizontal","ScissorPivot","CantedHead","BandSpeedMinImperial","BandSpeedMaxImperial","BandSpeedMinMetric","BandSpeedMaxMetric","machineOrientation","SET_SAVED_INPUT_MACHINE","SET_INPUT_MATERIAL","scale","inputMaterial","userMaterialID","materialID","materialName","materialStandardID","materialStandard","uns","unsCategoryID","unsCategory","unsAlloyGroupID","unsAlloyGroup","sawCalcGroupID","sawCalcGroupName","sawCalcGroupDescription","machinabilityGroupBiMetal","machinabilityGroupCarbide","machinabilityRating","machinability","defaultHBHardness","compositeUNS","unsGeneralDescriptionID","unsGeneralDescription","subCategoryID","subCategory","quickSearch","orderInList","chemicalComposition","hardness","heavyScaleForged","htQuenched","SET_SAVED_INPUT_MATERIAL","SET_INPUT_DIMENSIONS","inputDimensions","dimensionDetails","rotated","SET_INPUT_VISING","inputVising","SET_INPUT_CONDITIONS","inputConditions","CHANGE_INPUT_UOM","CHANGE_INPUT_CURRENCY","RESET_INPUTS","SHOW_MACHINE_SELECTOR_DIALOG","SET_MACHINE_MANUFACTURERS","myMap","Map","filter","el","val","delete","set","sort","a","b","x","toLowerCase","y","SET_MANUFACTURERS","SET_MACHINES","SET_MACHINE","SET_USER_MACHINES","userID","UserID","imageID","ImageID","FileName","details","forEach","bladeWidthImperialDesc","bladeWidthMetricDesc","bladeThicknessImperialDesc","bladeThicknessMetricDesc","bladeLengthImperialDesc","bladeLengthMetricDesc","machineOrientationDesc","scissorPivotDesc","cantedHeadDesc","bandSpeedMinImperialDesc","bandSpeedMaxImperialDesc","bandSpeedMinMetricDesc","bandSpeedMaxMetricDesc","SET_USER_MACHINE","machineConditionDesc","defined","SET_BLADE_WIDTH_IMPERIAL_LIST","lst","text","Text","Value","SET_BLADE_WIDTH_METRIC_LIST","SET_BLADE_THICKNESS_IMPERIAL_LIST","SET_BLADE_THICKNESS_METRIC_LIST","SET_BLADE_LENGTH_FT_LIST","SET_BLADE_LENGTH_IN_LIST","SET_BLADE_LENGTH_FR_LIST","SET_BLADE_LENGTH_METRIC_LIST","RELOAD_MACHINE_IMPERIAL_COMPONENT","RELOAD_MACHINE_METRIC_COMPONENT","SET_MACHINES_READY","ready","SHOW_MATERIAL_SELECTOR_DIALOG","SET_MATERIAL_STANDARDS","ID","OrderInList","SET_UNS_CATEGORIES","SET_UNS_ALLOY_GROUPS","SET_SAW_CALC_GROUPS","SawCalcGroupID","SawCalcGroupName","SawCalcGroupDescription","MachinabilityGroupBiMetal","MachinabilityGroupCarbide","MachinabilityRating","DefaultHBHardness","SET_MACHINABILITY_GROUPS","machinabilityGroupID","MachinabilityGroupID","group","Group","rating","Rating","SET_UNS_GENERAL_DESCRIPTIONS","SET_SUB_CATEGORIES","SET_MATERIALS","MaterialID","Designation","MaterialStandardID","UNS","UNSCategoryID","UNSAlloyGroupID","CompositeUNS","UNSGeneralDescriptionID","SubCategoryID","QuickSearch","itm","SET_SELECT_MATERIALS","SET_MATERIALS_READY","SET_MATERIAL","abbreviation","SET_SCALES","ScaleID","Description","Abbreviation","SET_SCALE","SET_HARDNESS","hardnessCalculated","parseInt","SET_HEAVY_SCALE_FORGED","SET_HT_QUENCHED","SET_USER_MATERIALS","UserMaterialID","MaterialName","country","Country","standard","Standard","MaterialStandard","UNSCategory","UNSAlloyGroup","Machinability","UNSGeneralDescription","SubCategory","ChemicalComposition","scaleID","ScaleAbbreviation","ScaleDescription","Hardness","HardnessDescription","HeavyScaleForged","HTQuenched","SET_USER_MATERIAL","RELOAD_MATERIAL_SELECTOR_DETAILS_COMPONENT","SHOW_DIMENSIONS_SELECTOR_DIALOG","SET_IBEAM_GROUPS_STANDARDS","iBeamGroupID","IBeamGroupID","iBeamGroup","IBeamGroup","IBeamGroupOrderInList","iBeamStandardID","IBeamStandardID","depth","Depth","flangeWidth","FlangeWidth","webThickness","WebThickness","flangeThickness","FlangeThickness","SET_IBEAM_GROUPS","SET_IBEAM_STANDARDS","SET_DIMENSIONS_READY","SHOW_VISING_SELECTOR_DIALOG","SET_VISING_READY","SHOW_CONDITIONS_SELECTOR_DIALOG","SET_CONDITIONS_READY","SET_PRODUCT_LINES_READY","SET_PRODUCT_LINES_SHORT","ProductLineID","productLineID","productFamily","ProductFamily","productType","ProductType","productTypeDescription","ProductTypeDescription","tpi","TPI","bwl1","BWL1","bwl2","BWL2","bwl3","BWL3","bwl4","BWL4","bwl5","BWL5","bwl6","BWL6","bwl7","BWL7","bwl8","BWL8","SET_BWL_REFS","BWLRefID","bwlRefID","bwl","BWL","widthImperial","WidthImperial","widthImperialValue","WidthImperialValue","widthMetric","WidthMetric","gaugeImperial","GaugeImperial","gaugeMetric","GaugeMetric","RECOMMENDATION_UPDATED","UPDATE_COST_CALCULATION","costCalculation","index","RESET_COST_CALCULATIONS","SET_SAW_CALC_LOADING","SET_SETTINGS_LOADED","loaded","SELECT_RECOMMENDATION","recommendation","CUSTOMIZE","recommendationIndex","stringify","SET_RECOMMENDATIONS","Blade","bladeDescription","BladeDescription","specsImperial","SpecsImperial","specsMetric","SpecsMetric","bandSpeedImperial","BandSpeedImperial","bandSpeedMetric","BandSpeedMetric","feedRateImperial","FeedRateImperial","feedRateMetric","FeedRateMetric","chipLoadImperial","ChipLoadImperial","chipLoadMetric","ChipLoadMetric","cuttingRateImperial","CuttingRateImperial","cuttingRateMetric","CuttingRateMetric","CutTime","cutTimeDescription","calculations","secToTime","CLOSE_CUSTOM_RECOMMENDATION","UPDATE_FROM_CUSTOM","custom","customized","RELOAD_RECOMMENDATION_COMPONENT","SHOW_LOGIN_DIALOG","LOGIN_LOADING","SHOW_REGISTER_DIALOG","REGISTER_LOADING","SHOW_PASSWORD_RESET_DIALOG","PASSWORD_RESET_LOADING","SHOW_SNACKBAR","SET_USER","companyName","CompanyName","street","Street","city","City","postalCode","PostalCode","State","phone","firstName","FirstName","lastName","LastName","Email","marketingEmail","MarketingEmail","admin","Admin","UserLinks","userLink","userLinkID","UserLinkID","parentID","ParentID","linkName","LinkName","userLinks","SET_AXIOS_SOURCE","source","CANCEL_REQUEST","cancel","SET_TOKEN","SET_USERS","uuid","UUID","emailVerified","EmailVerified","technicalGroup","TechnicalGroup","adminGroup","AdminGroup","active","Active","fullName","address","UPDATE_DB_USER","DELETE_DB_USER","findIndex","RELOAD_USERS_COMPONENT","UPDATE_ACCOUNT","SET_COUNTRIES","CountryID","countryID","Code","CountryName","RELOAD_USER_LINKS_COMPONENT","UPDATE_USER_LINKS","SET_STATS","statValue","StatValue","updatedDate","UpdatedDate","Date","toString","isNaN","getMonth","getDate","getFullYear","SHOW_SAW_CALC_DRAWER","GET_IMAGES","imagesList","image","page","Page","Name","homeCover","SET_IMAGE_SOURCE","file","UPDATE_IMAGE","IMAGE_LOADING","SHOW_DATA_TABLE_SETTINGS_DIALOG","SHOW_DATA_TABLE_UOM_SETTINGS_DIALOG","RELOAD_DATA_TABLE_SETTINGS_COMPONENT","RELOAD_DATA_TABLE_UOM_SETTINGS_COMPONENT","SET_MACHINES_ADMIN","SET_MACHINES_ADMIN_SETTINGS","SET_MATERIALS_ADMIN","SET_MATERIALS_ADMIN_SETTINGS","SET_MATERIALS_LOADING","RELOAD_MATERIAL_DIALOG_COMPONENT","SHOW_DATA_TABLE_CHEMICAL_COMPOSITIONS_DIALOG","RELOAD_CHEMICAL_COMPOSITIONS_DIALOG_COMPONENT","SET_PRODUCT_LINES","productFamilyID","ProductFamilyID","productTypeID","ProductTypeID","pitchLevel","PitchLevel","averagePitch","AveragePitch","toFixed","averageGulletArea","AverageGulletArea","gulletFill","GulletFill","SET_PRODUCT_LINES_SETTINGS","RELOAD_PRODUCT_LINES_DIALOG_COMPONENT","SET_PRODUCT_TYPES","productTypeName","ProductTypeName","SET_RECOMMENDATIONS_ADMIN","recommendationID","RecommendationID","Shape","Dimensions","Quantity","Arrangement","Pinching","createdDate","CreatedDate","SET_RECOMMENDATIONS_ADMIN_SETTINGS","SET_CUTTING_CHARTS","cuttingChartID","CuttingChartID","cuttingChartName","CuttingChartName","Metric","Machine","productImperial","ProductImperial","productMetric","ProductMetric","dimensionMin","DimensionMin","dimensionMax","DimensionMax","dimensionRange","DimensionRange","cuttingChartMaterialGroups","CuttingChartMaterialGroups","SET_CUTTING_CHARTS_SETTINGS","SET_PARAMETERS","parameterID","ParameterID","parameterName","ParameterName","parameterValue","ParameterValue","parameterDescription","ParameterDescription","SET_PRODUCT_SELECTIONS","productSelectionID","ProductSelectionID","applicationScenario","ApplicationScenario","good","Good","better","Better","best","Best","SET_PRODUCT_RECOMMENDATIONS","productRecommendationID","ProductRecommendationID","mrg","MRG","columnIndex","ColumnIndex","columnName","ColumnName","SET_USER_LOGO_SOURCE","SET_USER_LOGO_URL","SET_MACHINES_USER_SETTINGS","SET_USER_MACHINE_IMAGE_SOURCE","SET_MATERIALS_USER_SETTINGS","SET_USER_RECOMMENDATIONS","userRecommendationID","UserRecommendationID","recommendationName","RecommendationName","Input","Recommendation","CostCalculation","SET_RECOMMENDATIONS_USER_SETTINGS","dbPromise","_","openDB","upgrade","db","objectStoreNames","contains","createObjectStore","storeName","tx","transaction","store","objectStore","save","put","complete","storeInit","commit","dispatch","config","test","Success","getSettings","idb","getLanguageSettings","reload","saveSettings","syncRequired","required","dbSyncSeconds","dbSyncDate","timeFromLastSync","getTime","getLanguages","showAll","axios","res","LanguagesList","catch","notification","ErrNetworkError","setDefaultLanguage","changeLanguage","Json","getTranslation","translation","log","updateControlsByLanguage","updateRecommendations","valid","updateCostCalculation","parseFloat","toolCostPerCut","cutsPerHour","hoursPerLife","costPerCut","totalCostPerCut","inputDimensionsMeasurement","measurementImperial","measurementMetric","costCalculationMeasurement","totalCuts","totalCutTime","totalCutTimeHours","costLabor","machineCostPerMeasurement","toolCostPerMeasurement","totalCostPerMeasurement","changeInputUOM","changeInputCurrency","showMachineSelectorDialog","setInputMachine","setSavedInputMachine","reloadMachineComponent","setMachinesReady","getMachines","tasks","unshift","showNotification","showMaterialSelectorDialog","setInputMaterial","setSavedInputMaterial","reloadMaterialSelectorDetailsComponent","setMaterialsReady","showDimensionsSelectorDialog","setInputDimensions","setDimensionsReady","showVisingSelectorDialog","setInputVising","setVisingReady","showConditionsSelectorDialog","setInputConditions","setConditionsReady","setProductLinesReady","getMachinesData","task","ErrRecordNotFound","getMachineManufacturers","MachineManufacturerList","getMachine","setMachine","getUserMachines","UserMachinesList","getUserMachine","UserMachine","addUserMachine","CancelToken","post","cancelToken","ErrRecordExists","removeUserMachine","getMachineFromResponse","getBladeWidthImperialList","List","getBladeWidthMetricList","getBladeThicknessImperialList","getBladeThicknessMetricList","getBladeLengthFtList","getBladeLengthInList","getBladeLengthFrList","getBladeLengthMetricList","addUnknownMachine","bladeWidth","bladeThickness","in","fr","mm","ft","imperial","fpm","mpm","getMatrialsData","getMaterialStandards","getUNSCategories","getUNSAlloyGroups","getSawCalcGroups","SawCalcGroupsList","getUNSGeneralDescriptions","getSubCategories","getMaterials","MaterialsList","getMaterialDetails","Material","getMaterialFromResponse","setMaterial","getScales","ScalesList","setScale","HBtoHRC","HRCtoHB","getHardness","setHardness","setHeavyScaleForged","setHTQuenched","getUserMaterials","UserMaterialsList","getUserMaterial","UserMaterial","addUserMaterial","scaleDescription","scaleAbbreviation","removeUserMaterial","updateUserMaterial","copyUserMaterial","getDimensionsData","getIBeamStandards","IBeamStandardsList","getVisingData","getConditionsData","getProductLinesData","getProductLinesShort","ProductLinesList","getBWLRefs","BWLRefsList","resetSawCalcReady","savedInputMachine","savedInputMaterial","getSawCalcData","sawCalcReady","setSawCalcLoading","selectRecommendation","customize","getRecommendations","RecommendationUIsList","ErrEngine","getRecommendationCustom","measurementUOM","updateCostCalculations","resetOutputs","closeCustomRecommendation","updateFromCustom","getImageUrl","reader","FileReader","readAsDataURL","getImageData","XMLHttpRequest","responseType","open","send","showLoginDialog","loginLoading","login","password","Password","User","getRecommendationReport","sawCalcOutput","count","defaultCostCalculations","obj","SawCalcOutput","Blob","objectURL","URL","createObjectURL","revokeObjectURL","emailRecommendationReport","getCuttingChartReport","openCuttingChartReport","emailCuttingChartReport","logoff","showRegisterDialog","registerLoading","register","showPasswordResetDialog","passwordResetLoading","passwordReset","updatePassword","accessToken","AccessToken","emailVerification","verificationCode","getUser","getUserOnEdit","updateUser","setToken","updateToken","setAxiosSource","cancelRequest","getUsers","UsersList","exp","updateDbUser","updateUserAdmin","updateUserActive","deleteDbUser","sendEmailVerification","updateAccount","deleteAccount","deleteDB","indexedDB","deleteDatabase","onsuccess","onblocked","getCountries","CountryList","reloadUserLinksComponent","updateUserLinks","UserLinkList","getStats","StatsList","showSawCalcDrawer","checkInputs","getImages","ImagesList","getImageSource","base64string","updateImage","form","FormData","append","UpdateAppFormImageResult","onloadend","imageLoading","showDataTableSettingsDialog","showDataTableUOMSettingsDialog","saveMachinesAdminSettings","reloadMachinesAdminSettingsComponent","saveMachinesUserSettings","reloadMachinesUserSettingsComponent","saveMaterialsAdminSettings","reloadMaterialsAdminSettingsComponent","saveMaterialsUserSettings","reloadMaterialsUserSettingsComponent","reloadMaterialDialogComponent","reloadChemicalCompositionsDialogComponent","saveProductLinesSettings","reloadProductLinesSettingsComponent","reloadProductLineDialogComponent","getDictionaryUISections","getDictionaryUI","section","updateDictionaryUI","jsonContent","UpdateDictionaryUIResult","getDictionaryWSSections","getDictionaryWS","updateDictionaryWS","content","UpdateDictionaryWSResult","getDictionaryPages","getDictionaryStatic","DictionaryStatic","updateDictionaryStatic","videos","UpdateDictionaryStaticResult","getAdminMachines","MachinesList","createMachine","updateMachine","deleteMachine","getAdminMatrialsData","getAdminMaterials","createMaterialStandard","updateMaterialStandard","createUNSCategory","updateUNSCategory","createUNSAlloyGroup","updateUNSAlloyGroup","createSawCalcGroup","updateSawCalcGroup","createUNSGeneralDescription","updateUNSGeneralDescription","createSubCategory","updateSubCategory","createMaterial","updateMaterial","deleteMaterial","materialsCleanup","getChemicalCompositions","ChemicalCompositionList","chemicalCompositions","materialElementID","MaterialElementID","elementID","ElementID","symbol","minPercent","MinPercent","maxPercent","MaxPercent","elementDescription","updateChemicalCompositions","getProductLines","createProductLine","productLine","ProductLine","updateProductLine","deleteProductLine","getProductTypes","ProductTypesList","createProductType","updateProductType","getAdminRecommendations","RecommendationDownloadsList","saveAdminRecommendationsSettings","reloadAdminRecommendationsSettingsComponent","saveRecommendationDownloads","numberOfRecords","downloadFileName","fileURL","navigator","msSaveBlob","fileLink","body","click","deleteRecommendationDownloads","getParameters","ParametersList","updateParameter","parameter","getProductSelections","ProductSelectionsList","updateProductSelection","productSelection","getProductRecommendations","ProductRecommendationsList","updateProductRecommendation","productRecommendation","getUserLogoSource","updateUserLogo","UpdateUserLogoResult","removeUserLogo","createUserMachine","updateUserMachine","deleteUserMachine","getUserMachineImages","getUserMachineImageSource","updateUserMachineImage","UpdateUserMachineImageResult","removeUserMachineImage","getMachineFromInput","bladeWidthImperial","lengthImperial","fpmToMpm","mpmToFpm","getUserRecommendations","UserRecommendationsList","createUserRecommendation","now","today","recommendationTitle","UserRecommendation","userRecommendation","updateUserRecommendation","deleteUserRecommendation","saveRecommendationsUserSettings","reloadUserRecommendationsSettingsComponent","openRecommendationReport","emailRecommendationSavedReport","getCuttingCharts","CuttingChartsList","updateCuttingChart","CuttingChart","cuttingChart","deleteCuttingChart","saveCuttingChartsSettings","reloadCuttingChartsSettingsComponent","showSnackbar","closeSnackbar","dollar","euro","pound","bandSpeedUOM","feedRateUOM","chipLoadUOM","cuttingRateUOM","currencySymbol","bandSpeedImperialMin","bandSpeedMetricMin","bandSpeedImperialMax","bandSpeedMetricMax","feedRateImperialMin","feedRateMetricMin","inToMM","feedRateImperialMax","feedRateMetricMax","homeCoverImageLoading","machinesUser","materialsUser","Vue","use","Vuex","Store","mutations","actions","_vm","_h","$createElement","_c","_self","supportedBrowser","_e","staticClass","attrs","staticRenderFns","scopedSlots","_u","fn","on","_v","proxy","callback","$$v","$set","expression","_s","_l","class","tabActive","params","ref","_g","menuItemActive","$event","navigationClicked","stopPropagation","openNavigationDrawer","hiddenXsOnlyIcon","drawer","openSawCalcDrawer","sawCalcDrawerLocal","homeLink","staticStyle","$vuetify","breakpoint","mdAndDown","lgAndUp","_b","clear","$t","reportEnabled","refresh","uomChanged","domProps","computed","methods","component","VBtn","VBtnToggle","VCard","VCardText","VCol","VContainer","VRow","showSelector","$store","getShapeTitle","getDescription","descriptionMetric","descriptionImperial","getQuantityDescription","getArrangementDescription","join","separator","getLubrication","getPinching","currencyChanged","components","InputUOM","InputMachine","InputMaterial","InputDimensions","InputVising","InputConditions","InputCurrency","snackbarTest","bandSawGuide","library","appBarNavIconVisible","$route","sawCalcNavIconVisible","tabsVisible","tabActiveMenu","currentPath","substring","link","routeLink","openUrl","dialPhone","router","updateControls","watch","mounted","VAppBar","VAppBarNavIcon","VDivider","VIcon","VList","VListGroup","VListItem","VListItemContent","VListItemGroup","VListItemTitle","VMenu","VNavigationDrawer","VOverlay","VProgressCircular","VSnackbar","VSpacer","VTab","VTabs","VToolbarItems","VToolbar","VToolbarTitle","VTooltip","navigationClick","copywriteLink","smAndDown","emailRules","indexOf","_k","keyCode","slot","showPassword","inputRules","mdAndUp","resetForm","$refs","validate","reset","VCardActions","VCardTitle","VDialog","VForm","VTextField","countryRules","countryChanged","confirmEmailRules","confirmEmail","passwordRules","showConfirmPassword","confirmPasswordRules","confirmPassword","directives","mask","phoneMask","passwordRepeatedChar","match","VAutocomplete","VCheckbox","browserInfo","browserCheck","getBrowser","tem","ua","userAgent","M","exec","version","appName","appVersion","browser","supported","NavBar","FooterInfo","FooterLinks","Register","PasswordReset","BrowserCheck","publicLinks","adminLinks","footerInfoVisible","footerLinksVisible","created","VApp","VMain","Vuetify","icons","iconfont","theme","light","themes","primary","variables","primaryColor","secondary","secondaryColor","accent","accentColor","errorColor","infoColor","success","successColor","warning","warningColor","FlagIcon","productionTip","vuetify","render","h","App","dispatchEvent","Event","$mount","MASK","conversion","inValue","precision","trim","mmValue","mmToIn","sqInToSqCM","Math","pow","sqCMToSqIn","lengthFt","lengthIn","lengthFr","getFractionValue","itemImperial","itemMetric","inch","frObj","round","max","ext","date","time","getHours","getMinutes","getSeconds","hours","sec","prod","debug","apiUrl","debugUrl","location","startsWith","style","backgroundImage","getURL","Router","base","process","routes","beforeEnter","to","meta","requiresAuth","beforeEach","from","next","matched","some","record","VueI18n","fallbackLocale","en","ErrToManyRequests","ErrServerError"],"mappings":"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","file":"js/app.121e41cb.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/\" + ({\"account\":\"account\",\"account-admin\":\"account-admin\",\"basic-maintenance-tips\":\"basic-maintenance-tips\",\"beam-strength\":\"beam-strength\",\"blade-construction\":\"blade-construction\",\"blade-terminology\":\"blade-terminology\",\"break-in-instructions\":\"break-in-instructions\",\"common-problems\":\"common-problems\",\"cutting-factors\":\"cutting-factors\",\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\":\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\",\"dashboard\":\"dashboard\",\"dashboard-admin\":\"dashboard-admin\",\"engine-parameters-admin\":\"engine-parameters-admin\",\"machines\":\"machines\",\"machines-admin\":\"machines-admin\",\"materials\":\"materials\",\"materials-admin\":\"materials-admin\",\"product-lines-admin\":\"product-lines-admin\",\"recommendations-admin\":\"recommendations-admin\",\"dictionary-ui\":\"dictionary-ui\",\"dictionary-ws\":\"dictionary-ws\",\"email-verification\":\"email-verification\",\"glossary-of-bandsaw-terms\":\"glossary-of-bandsaw-terms\",\"lubrication\":\"lubrication\",\"not-found\":\"not-found\",\"saw-calc\":\"saw-calc\",\"tooth-options\":\"tooth-options\",\"translation\":\"translation\",\"update-password\":\"update-password\"}[chunkId]||chunkId) + \".\" + {\"account\":\"e88724c3\",\"account-admin\":\"7f558cc2\",\"basic-maintenance-tips\":\"fb399b3c\",\"beam-strength\":\"300a25c7\",\"blade-construction\":\"d0b714e6\",\"blade-terminology\":\"989b1c4d\",\"break-in-instructions\":\"6ed8ad0a\",\"common-problems\":\"0236f28e\",\"cutting-factors\":\"38790ec6\",\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\":\"6831036f\",\"dashboard\":\"bfe6c734\",\"dashboard-admin\":\"9235c0ec\",\"engine-parameters-admin\":\"b03e8e4e\",\"machines\":\"da88fd49\",\"machines-admin\":\"5af71c59\",\"materials\":\"c78e31a8\",\"materials-admin\":\"97984341\",\"product-lines-admin\":\"e30497f7\",\"recommendations-admin\":\"b0bbfaa7\",\"dictionary-ui\":\"f56d4da6\",\"dictionary-ws\":\"bacba71a\",\"email-verification\":\"f4ad918e\",\"glossary-of-bandsaw-terms\":\"231f6b96\",\"lubrication\":\"d21ef76b\",\"not-found\":\"0cbd50e4\",\"saw-calc\":\"85842ffd\",\"tooth-options\":\"9b77d3e5\",\"translation\":\"6ff79465\",\"update-password\":\"cd4e4fe7\"}[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 = {\"account\":1,\"account-admin\":1,\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\":1,\"dashboard\":1,\"dashboard-admin\":1,\"machines\":1,\"machines-admin\":1,\"materials\":1,\"materials-admin\":1,\"product-lines-admin\":1,\"recommendations-admin\":1,\"dictionary-ui\":1,\"dictionary-ws\":1,\"saw-calc\":1,\"translation\":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/\" + ({\"account\":\"account\",\"account-admin\":\"account-admin\",\"basic-maintenance-tips\":\"basic-maintenance-tips\",\"beam-strength\":\"beam-strength\",\"blade-construction\":\"blade-construction\",\"blade-terminology\":\"blade-terminology\",\"break-in-instructions\":\"break-in-instructions\",\"common-problems\":\"common-problems\",\"cutting-factors\":\"cutting-factors\",\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\":\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\",\"dashboard\":\"dashboard\",\"dashboard-admin\":\"dashboard-admin\",\"engine-parameters-admin\":\"engine-parameters-admin\",\"machines\":\"machines\",\"machines-admin\":\"machines-admin\",\"materials\":\"materials\",\"materials-admin\":\"materials-admin\",\"product-lines-admin\":\"product-lines-admin\",\"recommendations-admin\":\"recommendations-admin\",\"dictionary-ui\":\"dictionary-ui\",\"dictionary-ws\":\"dictionary-ws\",\"email-verification\":\"email-verification\",\"glossary-of-bandsaw-terms\":\"glossary-of-bandsaw-terms\",\"lubrication\":\"lubrication\",\"not-found\":\"not-found\",\"saw-calc\":\"saw-calc\",\"tooth-options\":\"tooth-options\",\"translation\":\"translation\",\"update-password\":\"update-password\"}[chunkId]||chunkId) + \".\" + {\"account\":\"461f3a48\",\"account-admin\":\"461f3a48\",\"basic-maintenance-tips\":\"31d6cfe0\",\"beam-strength\":\"31d6cfe0\",\"blade-construction\":\"31d6cfe0\",\"blade-terminology\":\"31d6cfe0\",\"break-in-instructions\":\"31d6cfe0\",\"common-problems\":\"31d6cfe0\",\"cutting-factors\":\"31d6cfe0\",\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\":\"146b1a15\",\"dashboard\":\"308c1274\",\"dashboard-admin\":\"ff9d40ef\",\"engine-parameters-admin\":\"31d6cfe0\",\"machines\":\"7e0307aa\",\"machines-admin\":\"7ad166ab\",\"materials\":\"f35c403e\",\"materials-admin\":\"826e0f2c\",\"product-lines-admin\":\"c30cbafa\",\"recommendations-admin\":\"c30cbafa\",\"dictionary-ui\":\"f909b3c2\",\"dictionary-ws\":\"3ce9f062\",\"email-verification\":\"31d6cfe0\",\"glossary-of-bandsaw-terms\":\"31d6cfe0\",\"lubrication\":\"31d6cfe0\",\"not-found\":\"31d6cfe0\",\"saw-calc\":\"1043aca7\",\"tooth-options\":\"31d6cfe0\",\"translation\":\"c72445d2\",\"update-password\":\"31d6cfe0\"}[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","import mod 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!./InputConditionsSide.vue?vue&type=style&index=0&id=1f5fbfdb&lang=scss&scoped=true&\"; export default mod; 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!./InputConditionsSide.vue?vue&type=style&index=0&id=1f5fbfdb&lang=scss&scoped=true&\"","import { returnCode } from \"@/constants/ReturnCode\";\r\n\r\nconst api = {\r\n headers(getters) {\r\n const headers = {\r\n \"Base-Locale\": getters.language != null ? getters.language.locale : \"\",\r\n \"User-Email\": getters.user != null ? getters.user.email : \"\",\r\n \"Access-Token\": getters.token,\r\n };\r\n\r\n return headers;\r\n },\r\n responseError(response) {\r\n if (!response || response == undefined) {\r\n return { code: returnCode.ErrBadRequest, message: \"\" };\r\n } else if (response.status == undefined) {\r\n return null;\r\n } else if (response.status == 200) {\r\n const headers = response.headers;\r\n\r\n if (\r\n headers != undefined &&\r\n headers != null &&\r\n headers.error != null &&\r\n headers.error != \"\"\r\n ) {\r\n return JSON.parse(headers.error);\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return { code: response.status, message: response.statusText };\r\n }\r\n },\r\n authenticationError(code) {\r\n const authenticationErrors = [\r\n returnCode.ErrAccessTokenChanged,\r\n returnCode.ErrAICInvalidAccessToken,\r\n returnCode.ErrAICAuthCodeNotValid,\r\n returnCode.ErrAICTokenExpired,\r\n ];\r\n\r\n if (authenticationErrors.includes(code)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n authErrorRedirectTimeout: 2000,\r\n};\r\n\r\nexport { api };\r\n","import mod 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!./NavBar.vue?vue&type=style&index=0&id=59fbcc85&lang=scss&scoped=true&\"; export default mod; 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!./NavBar.vue?vue&type=style&index=0&id=59fbcc85&lang=scss&scoped=true&\"","import mod 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!./InputVisingSide.vue?vue&type=style&index=0&id=f702dbd2&lang=scss&scoped=true&\"; export default mod; 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!./InputVisingSide.vue?vue&type=style&index=0&id=f702dbd2&lang=scss&scoped=true&\"","var map = {\n\t\"./en.json\": \"edd4\"\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 = \"231a\";","import mod 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!./Login.vue?vue&type=style&index=0&id=901fe3f4&lang=scss&scoped=true&\"; export default mod; 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!./Login.vue?vue&type=style&index=0&id=901fe3f4&lang=scss&scoped=true&\"","const recommendations = {\r\n Performance: 0,\r\n HighPerformance: 1,\r\n ExtremePerformance: 2,\r\n Custom: 3\r\n};\r\n\r\nexport { recommendations };\r\n","import mod 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!./InputMaterialSide.vue?vue&type=style&index=0&id=1dca072a&lang=scss&scoped=true&\"; export default mod; 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!./InputMaterialSide.vue?vue&type=style&index=0&id=1dca072a&lang=scss&scoped=true&\"","export default {\r\n snackbar: {\r\n show: false,\r\n color: \"success\",\r\n timeout: 4000,\r\n message: \"\",\r\n delay: null,\r\n },\r\n navigation: {\r\n toolbar: [\r\n {\r\n heading: true,\r\n title: \"\",\r\n name: \"Home\",\r\n action: \"link\",\r\n visible: true,\r\n },\r\n { spacer: true },\r\n {\r\n hiddenXsOnlyButton: true,\r\n title: \"\",\r\n path: \"\",\r\n action: \"phone\",\r\n visible: true,\r\n },\r\n {\r\n hiddenSmAndDownMenu: true,\r\n title: \"\",\r\n items: [],\r\n visible: true,\r\n },\r\n {\r\n hiddenSmAndDownButton: true,\r\n title: \"Login\",\r\n action: \"showLoginDialog\",\r\n visible: true,\r\n },\r\n {\r\n hiddenSmAndDownButton: true,\r\n title: \"Logoff\",\r\n action: \"logoff\",\r\n visible: false,\r\n },\r\n ],\r\n tabs: [\r\n {\r\n title: \"HOME\",\r\n name: \"Home\",\r\n route: \"\",\r\n tab: true,\r\n },\r\n {\r\n title: \"SAW CALC\",\r\n name: \"SawCalc\",\r\n route: \"saw-calc\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"BAND SAW GUIDE\",\r\n route: \"band-saw-guide\",\r\n menu: true,\r\n menuIndex: 0,\r\n items: [\r\n {\r\n title: \"Blade Terminology\",\r\n name: \"BladeTerminology\",\r\n route: \"blade-terminology\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Blade Construction\",\r\n name: \"BladeConstruction\",\r\n route: \"blade-construction\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Tooth Options\",\r\n name: \"ToothOptions\",\r\n route: \"tooth-options\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Cutting Factors\",\r\n name: \"CuttingFactors\",\r\n route: \"cutting-factors\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Beam Strength\",\r\n name: \"BeamStrength\",\r\n route: \"beam-strength\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Lubrication\",\r\n name: \"Lubrication\",\r\n route: \"lubrication\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Break-In Instructions\",\r\n name: \"BreakInInstructions\",\r\n route: \"break-in-instructions\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Basic Maintenance Tips\",\r\n name: \"BasicMaintenanceTips\",\r\n route: \"basic-maintenance-tips\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Common Problems\",\r\n name: \"CommonProblems\",\r\n route: \"common-problems\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Glossary of Bandsaw Terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n route: \"glossary-of-bandsaw-terms\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LENOX Advantage\",\r\n name: \"LENOXAdvantage\",\r\n route: \"lenox-advantage\",\r\n url: \"https://www.cutwithlenox.com/industrial/advantage\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n ],\r\n tabsUser: [\r\n {\r\n title: \"DASHBOARD\",\r\n name: \"Dashboard\",\r\n route: \"dashboard\",\r\n tab: true,\r\n },\r\n {\r\n title: \"LIBRARY\",\r\n route: \"library\",\r\n menu: true,\r\n menuIndex: 1,\r\n items: [\r\n {\r\n title: \"Machines\",\r\n name: \"Machines\",\r\n route: \"machines\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Materials\",\r\n name: \"Materials\",\r\n route: \"materials\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"SAW CALC\",\r\n name: \"SawCalc\",\r\n route: \"saw-calc\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"BAND SAW GUIDE\",\r\n route: \"band-saw-guide\",\r\n menu: true,\r\n menuIndex: 0,\r\n items: [\r\n {\r\n title: \"Blade Terminology\",\r\n name: \"BladeTerminology\",\r\n route: \"blade-terminology\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Blade Construction\",\r\n name: \"BladeConstruction\",\r\n route: \"blade-construction\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Tooth Options\",\r\n name: \"ToothOptions\",\r\n route: \"tooth-options\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Cutting Factors\",\r\n name: \"CuttingFactors\",\r\n route: \"cutting-factors\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Beam Strength\",\r\n name: \"BeamStrength\",\r\n route: \"beam-strength\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Lubrication\",\r\n name: \"Lubrication\",\r\n route: \"lubrication\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Break-In Instructions\",\r\n name: \"BreakInInstructions\",\r\n route: \"break-in-instructions\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Basic Maintenance Tips\",\r\n name: \"BasicMaintenanceTips\",\r\n route: \"basic-maintenance-tips\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Common Problems\",\r\n name: \"CommonProblems\",\r\n route: \"common-problems\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Glossary of Bandsaw Terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n route: \"glossary-of-bandsaw-terms\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LENOX Advantage\",\r\n name: \"LENOXAdvantage\",\r\n route: \"lenox-advantage\",\r\n url: \"https://www.cutwithlenox.com/industrial/advantage\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"ACCOUNT\",\r\n name: \"Account\",\r\n route: \"account\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n ],\r\n tabsAdmin: [\r\n {\r\n title: \"DASHBOARD ADMIN\",\r\n name: \"DashboardAdmin\",\r\n route: \"admin/dashboard\",\r\n tab: true,\r\n },\r\n {\r\n title: \"LIBRARY\",\r\n route: \"admin/library\",\r\n menu: true,\r\n menuIndex: 1,\r\n items: [\r\n {\r\n title: \"Machines\",\r\n name: \"MachinesAdmin\",\r\n route: \"admin/machines\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Materials\",\r\n name: \"MaterialsAdmin\",\r\n route: \"admin/materials\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Product Lines\",\r\n name: \"ProductLinesAdmin\",\r\n route: \"admin/product-lines\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Recommendations\",\r\n name: \"RecommendationsAdmin\",\r\n route: \"admin/recommendations\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Engine Parameters\",\r\n name: \"EngineParametersAdmin\",\r\n route: \"admin/engine-parameters\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Dictionary UI\",\r\n name: \"DictionaryUI\",\r\n route: \"admin/dictionary-ui\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Dictionary WS\",\r\n name: \"DictionaryWS\",\r\n route: \"admin/dictionary-ws\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Translation\",\r\n name: \"Translation\",\r\n route: \"admin/translation\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"SAW CALC\",\r\n name: \"SawCalc\",\r\n route: \"saw-calc\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"BAND SAW GUIDE\",\r\n route: \"band-saw-guide\",\r\n menu: true,\r\n menuIndex: 0,\r\n items: [\r\n {\r\n title: \"Blade Terminology\",\r\n name: \"BladeTerminology\",\r\n route: \"blade-terminology\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Blade Construction\",\r\n name: \"BladeConstruction\",\r\n route: \"blade-construction\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Tooth Options\",\r\n name: \"ToothOptions\",\r\n route: \"tooth-options\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Cutting Factors\",\r\n name: \"CuttingFactors\",\r\n route: \"cutting-factors\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Beam Strength\",\r\n name: \"BeamStrength\",\r\n route: \"beam-strength\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Lubrication\",\r\n name: \"Lubrication\",\r\n route: \"lubrication\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Break-In Instructions\",\r\n name: \"BreakInInstructions\",\r\n route: \"break-in-instructions\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Basic Maintenance Tips\",\r\n name: \"BasicMaintenanceTips\",\r\n route: \"basic-maintenance-tips\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Common Problems\",\r\n name: \"CommonProblems\",\r\n route: \"common-problems\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Glossary of Bandsaw Terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n route: \"glossary-of-bandsaw-terms\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LENOX Advantage\",\r\n name: \"LENOXAdvantage\",\r\n route: \"lenox-advantage\",\r\n url: \"https://www.cutwithlenox.com/industrial/advantage\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"ACCOUNT\",\r\n name: \"AccountAdmin\",\r\n route: \"admin/account\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n ],\r\n side: [\r\n {\r\n heading: true,\r\n title: \"\",\r\n name: \"Home\",\r\n action: \"link\",\r\n visible: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"HOME\",\r\n name: \"Home\",\r\n route: \"\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"SAW CALC\",\r\n name: \"SawCalc\",\r\n route: \"saw-calc\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"BAND SAW GUIDE\",\r\n route: \"band-saw-guide\",\r\n menu: true,\r\n menuIndex: 0,\r\n items: [\r\n {\r\n title: \"Blade Terminology\",\r\n name: \"BladeTerminology\",\r\n route: \"blade-terminology\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Blade Construction\",\r\n name: \"BladeConstruction\",\r\n route: \"blade-construction\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Tooth Options\",\r\n name: \"ToothOptions\",\r\n route: \"tooth-options\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Cutting Factors\",\r\n name: \"CuttingFactors\",\r\n route: \"cutting-factors\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Beam Strength\",\r\n name: \"BeamStrength\",\r\n route: \"beam-strength\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Lubrication\",\r\n name: \"Lubrication\",\r\n route: \"lubrication\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Break-In Instructions\",\r\n name: \"BreakInInstructions\",\r\n route: \"break-in-instructions\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Basic Maintenance Tips\",\r\n name: \"BasicMaintenanceTips\",\r\n route: \"basic-maintenance-tips\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Common Problems\",\r\n name: \"CommonProblems\",\r\n route: \"common-problems\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Glossary of Bandsaw Terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n route: \"glossary-of-bandsaw-terms\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LENOX Advantage\",\r\n name: \"LENOXAdvantage\",\r\n route: \"lenox-advantage\",\r\n url: \"https://www.cutwithlenox.com/industrial/advantage\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"\",\r\n path: \"\",\r\n action: \"phone\",\r\n tab: true,\r\n },\r\n {\r\n title: \"Login\",\r\n action: \"showLoginDialog\",\r\n tab: true,\r\n },\r\n ],\r\n sideUser: [\r\n {\r\n heading: true,\r\n title: \"\",\r\n name: \"Home\",\r\n action: \"link\",\r\n visible: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"HOME\",\r\n name: \"Home\",\r\n route: \"\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"DASHBOARD\",\r\n name: \"Dashboard\",\r\n route: \"\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"LIBRARY\",\r\n route: \"library\",\r\n menu: true,\r\n menuIndex: 1,\r\n items: [\r\n {\r\n title: \"Machines\",\r\n name: \"Machines\",\r\n route: \"machines\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Materials\",\r\n name: \"Materials\",\r\n route: \"materials\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"SAW CALC\",\r\n name: \"SawCalc\",\r\n route: \"saw-calc\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"BAND SAW GUIDE\",\r\n route: \"band-saw-guide\",\r\n menu: true,\r\n menuIndex: 0,\r\n items: [\r\n {\r\n title: \"Blade Terminology\",\r\n name: \"BladeTerminology\",\r\n route: \"blade-terminology\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Blade Construction\",\r\n name: \"BladeConstruction\",\r\n route: \"blade-construction\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Tooth Options\",\r\n name: \"ToothOptions\",\r\n route: \"tooth-options\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Cutting Factors\",\r\n name: \"CuttingFactors\",\r\n route: \"cutting-factors\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Beam Strength\",\r\n name: \"BeamStrength\",\r\n route: \"beam-strength\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Lubrication\",\r\n name: \"Lubrication\",\r\n route: \"lubrication\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Break-In Instructions\",\r\n name: \"BreakInInstructions\",\r\n route: \"break-in-instructions\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Basic Maintenance Tips\",\r\n name: \"BasicMaintenanceTips\",\r\n route: \"basic-maintenance-tips\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Common Problems\",\r\n name: \"CommonProblems\",\r\n route: \"common-problems\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Glossary of Bandsaw Terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n route: \"glossary-of-bandsaw-terms\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LENOX Advantage\",\r\n name: \"LENOXAdvantage\",\r\n route: \"lenox-advantage\",\r\n url: \"https://www.cutwithlenox.com/industrial/advantage\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"ACCOUNT\",\r\n name: \"Account\",\r\n route: \"account\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"phone\",\r\n path: \"\",\r\n action: \"phone\",\r\n tab: true,\r\n },\r\n {\r\n title: \"Logoff\",\r\n action: \"logoff\",\r\n tab: true,\r\n },\r\n ],\r\n sideAdmin: [\r\n {\r\n heading: true,\r\n title: \"\",\r\n name: \"Home\",\r\n action: \"link\",\r\n visible: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"HOME\",\r\n name: \"Home\",\r\n route: \"\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"DASHBOARD\",\r\n name: \"DashboardAdmin\",\r\n route: \"\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"LIBRARY\",\r\n route: \"admin/library\",\r\n menu: true,\r\n menuIndex: 1,\r\n items: [\r\n {\r\n title: \"Machines\",\r\n name: \"MachinesAdmin\",\r\n route: \"admin/machines\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Materials\",\r\n name: \"MaterialsAdmin\",\r\n route: \"admin/materials\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"ProductLines\",\r\n name: \"ProductLinesAdmin\",\r\n route: \"admin/product-lines\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Recommendations\",\r\n name: \"RecommendationsAdmin\",\r\n route: \"admin/recommendations\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"EngineParameters\",\r\n name: \"EngineParametersAdmin\",\r\n route: \"admin/engine-parameters\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Dictionary UI\",\r\n name: \"DictionaryUI\",\r\n route: \"admin/dictionary-ui\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Dictionary WS\",\r\n name: \"DictionaryWS\",\r\n route: \"admin/dictionary-ws\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Translation\",\r\n name: \"Translation\",\r\n route: \"admin/translation\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"SAW CALC\",\r\n name: \"SawCalc\",\r\n route: \"saw-calc\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n {\r\n title: \"BAND SAW GUIDE\",\r\n route: \"band-saw-guide\",\r\n menu: true,\r\n menuIndex: 0,\r\n items: [\r\n {\r\n title: \"Blade Terminology\",\r\n name: \"BladeTerminology\",\r\n route: \"blade-terminology\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Blade Construction\",\r\n name: \"BladeConstruction\",\r\n route: \"blade-construction\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Tooth Options\",\r\n name: \"ToothOptions\",\r\n route: \"tooth-options\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Cutting Factors\",\r\n name: \"CuttingFactors\",\r\n route: \"cutting-factors\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Beam Strength\",\r\n name: \"BeamStrength\",\r\n route: \"beam-strength\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Lubrication\",\r\n name: \"Lubrication\",\r\n route: \"lubrication\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Break-In Instructions\",\r\n name: \"BreakInInstructions\",\r\n route: \"break-in-instructions\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Basic Maintenance Tips\",\r\n name: \"BasicMaintenanceTips\",\r\n route: \"basic-maintenance-tips\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Common Problems\",\r\n name: \"CommonProblems\",\r\n route: \"common-problems\",\r\n action: \"link\",\r\n },\r\n {\r\n title: \"Glossary of Bandsaw Terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n route: \"glossary-of-bandsaw-terms\",\r\n action: \"link\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"LENOX Advantage\",\r\n name: \"LENOXAdvantage\",\r\n route: \"lenox-advantage\",\r\n url: \"https://www.cutwithlenox.com/industrial/advantage\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"ACCOUNT\",\r\n name: \"AccountAdmin\",\r\n route: \"admin/account\",\r\n action: \"link\",\r\n tab: true,\r\n },\r\n { divider: true },\r\n {\r\n title: \"\",\r\n path: \"\",\r\n action: \"phone\",\r\n tab: true,\r\n },\r\n {\r\n title: \"Logoff\",\r\n action: \"logoff\",\r\n tab: true,\r\n },\r\n ],\r\n },\r\n languages: [{ flag: \"us\", locale: \"en\", title: \"English\", messages: null }],\r\n language: { flag: \"us\", locale: \"en\", title: \"English\" },\r\n footer: {\r\n statusBar: [\r\n {\r\n title: \"Terms of Use\",\r\n name: \"TermsOfUse\",\r\n route: \"terms-of-use\",\r\n url: \"https://www.stanleyblackanddecker.com/terms-use\",\r\n action: \"link\",\r\n },\r\n { divider: true },\r\n {\r\n title: \"Privacy Policy\",\r\n name: \"PrivacyPolicy\",\r\n route: \"updated-privacy-policy\",\r\n url: \"https://www.stanleyblackanddecker.com/privacy-policy\",\r\n action: \"link\",\r\n },\r\n { divider: true },\r\n {\r\n cookieSettings: true,\r\n title: \"Cookie Settings\",\r\n },\r\n {\r\n copywrite: true,\r\n title: \"LENOX, Stanley Black & Decker. All rights reserved.\",\r\n },\r\n ],\r\n info: {\r\n contact: [\r\n {\r\n title: \"lenoxtools.com\",\r\n action: \"url\",\r\n path: \"https://www.lenoxtools.com/\",\r\n },\r\n {\r\n title: \"contact\",\r\n action: \"url\",\r\n path: \"https://www.lenoxtools.com/pages/ContactUs.aspx\",\r\n },\r\n ],\r\n social: [\r\n {\r\n title: \"Facebook\",\r\n action: \"url\",\r\n path: \"https://www.facebook.com/lenoxtools\",\r\n icon: \"mdi-facebook\",\r\n },\r\n {\r\n title: \"Twitter\",\r\n action: \"url\",\r\n path: \"https://twitter.com/lenoxtools\",\r\n icon: \"mdi-twitter\",\r\n },\r\n {\r\n title: \"Instagram\",\r\n action: \"url\",\r\n path: \"https://www.instagram.com/lenoxtools\",\r\n icon: \"mdi-instagram\",\r\n },\r\n {\r\n title: \"YouTube\",\r\n action: \"url\",\r\n path: \"https://www.youtube.com/user/LENOXTools\",\r\n icon: \"mdi-youtube\",\r\n },\r\n ],\r\n },\r\n },\r\n\r\n // Recommendation\r\n // Inputs\r\n\r\n input: {\r\n metric: false,\r\n inputUOM: 0,\r\n machine: {\r\n manufacturerName: null,\r\n model: null,\r\n bladeLength: null,\r\n },\r\n material: {\r\n designation: null,\r\n hardnessDescription: null,\r\n },\r\n dimensions: {\r\n shape: null,\r\n dimensions: null,\r\n },\r\n vising: {\r\n quantity: null,\r\n arrangement: null,\r\n },\r\n conditions: {\r\n lubrication: null,\r\n pinching: null,\r\n canting: null,\r\n },\r\n currency: 0,\r\n inputCurrency: 0,\r\n resetInputs: 0,\r\n },\r\n savedInput: {\r\n machine: {\r\n manufacturerName: null,\r\n model: null,\r\n bladeLength: null,\r\n },\r\n material: {\r\n designation: null,\r\n hardnessDescription: null,\r\n },\r\n },\r\n\r\n // Machines\r\n\r\n machineSelectorDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n manufacturers: [],\r\n machines: [],\r\n machine: {},\r\n userMachines: [],\r\n userMachine: {},\r\n bladeWidthImperialList: [],\r\n bladeWidthMetricList: [],\r\n bladeThicknessImperialList: [],\r\n bladeThicknessMetricList: [],\r\n bladeLengthFtList: [],\r\n bladeLengthInList: [],\r\n bladeLengthFrList: [],\r\n bladeLengthMetricList: [],\r\n unknownMachineImperialKey: 0,\r\n unknownMachineMetricKey: 0,\r\n machinesReady: false,\r\n machineTasks: [\r\n { description: \"Machines\", function: \"getMachineManufacturers\" },\r\n {\r\n description: \"Blade Width Imperial\",\r\n function: \"getBladeWidthImperialList\",\r\n },\r\n {\r\n description: \"Blade Width Metric\",\r\n function: \"getBladeWidthMetricList\",\r\n },\r\n {\r\n description: \"Blade Thickness Imperial\",\r\n function: \"getBladeThicknessImperialList\",\r\n },\r\n {\r\n description: \"Blade Thickness Metric\",\r\n function: \"getBladeThicknessMetricList\",\r\n },\r\n { description: \"Blade Length Ft\", function: \"getBladeLengthFtList\" },\r\n { description: \"Blade Length In\", function: \"getBladeLengthInList\" },\r\n { description: \"Blade Length Fr\", function: \"getBladeLengthFrList\" },\r\n {\r\n description: \"Blade Length Metric\",\r\n function: \"getBladeLengthMetricList\",\r\n },\r\n ],\r\n\r\n // Material\r\n\r\n materialSelectorDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n materialStandards: [],\r\n unsCategories: [],\r\n unsAlloyGroups: [],\r\n sawCalcGroups: [],\r\n machinabilityGroups: [],\r\n unsGeneralDescriptions: [],\r\n subCategories: [],\r\n materials: [],\r\n selectMaterials: [],\r\n material: {},\r\n userMaterials: [],\r\n userMaterial: {},\r\n scales: [],\r\n defaultHardness: 20,\r\n hbHardnessMin: 90,\r\n hbHardnessMinConvertable: 226,\r\n hbHardnessMax: 739,\r\n hrcHardnessMin: 20,\r\n hrcHardnessMax: 65,\r\n materialSelectorDetailsKey: 0,\r\n materialsReady: false,\r\n materialTasks: [\r\n { description: \"Material Standards\", function: \"getMaterialStandards\" },\r\n {\r\n description: \"UNS Categories\",\r\n function: \"getUNSCategories\",\r\n },\r\n {\r\n description: \"UNS Alloy Groups\",\r\n function: \"getUNSAlloyGroups\",\r\n },\r\n {\r\n description: \"SawCalc Groups\",\r\n function: \"getSawCalcGroups\",\r\n },\r\n {\r\n description: \"UNS General Descriptions\",\r\n function: \"getUNSGeneralDescriptions\",\r\n },\r\n {\r\n description: \"Material Sub Categories\",\r\n function: \"getSubCategories\",\r\n },\r\n { description: \"Material\", function: \"getMaterials\" },\r\n { description: \"Scale\", function: \"getScales\" },\r\n ],\r\n\r\n // Dimensions\r\n\r\n dimensionsSelectorDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n iBeamGroups: [],\r\n iBeamStandards: [],\r\n dimensionsReady: false,\r\n dimensionTasks: [\r\n { description: \"Dimensions\", function: \"getIBeamStandards\" },\r\n ],\r\n\r\n // Vising\r\n\r\n visingSelectorDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n visingReady: false,\r\n\r\n // Conditions\r\n\r\n conditionsSelectorDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n conditionsReady: false,\r\n defaultCantingDegrees: 6,\r\n\r\n // Product Lines\r\n\r\n productLines: [],\r\n productLinesReady: false,\r\n productLineTasks: [\r\n { description: \"Products\", function: \"getProductLinesShort\" },\r\n { description: \"BWLRefs\", function: \"getBWLRefs\" },\r\n ],\r\n\r\n // SawCalc\r\n\r\n sawCalcLoading: false,\r\n settingsLoaded: false,\r\n\r\n // Outputs\r\n\r\n recommendations: [\r\n {\r\n title: \"\",\r\n blade: null,\r\n specs: null,\r\n bandSpeed: null,\r\n feedRate: null,\r\n chipLoad: null,\r\n cuttingRate: null,\r\n cutTime: null,\r\n },\r\n {\r\n title: \"\",\r\n blade: null,\r\n specs: null,\r\n bandSpeed: null,\r\n feedRate: null,\r\n chipLoad: null,\r\n cuttingRate: null,\r\n cutTime: null,\r\n },\r\n {\r\n title: \"\",\r\n blade: null,\r\n specs: null,\r\n bandSpeed: null,\r\n feedRate: null,\r\n chipLoad: null,\r\n cuttingRate: null,\r\n cutTime: null,\r\n },\r\n {\r\n title: \"Custom\",\r\n blade: null,\r\n specs: null,\r\n bandSpeed: null,\r\n feedRate: null,\r\n chipLoad: null,\r\n cuttingRate: null,\r\n cutTime: null,\r\n },\r\n ],\r\n selectedRecommendation: 0,\r\n selectedRecommendationForCustom: null,\r\n bandSpeedImperialIncrement: 5,\r\n bandSpeedMetricIncrement: 1,\r\n bandSpeedMin: 1,\r\n bandSpeedMax: 10000,\r\n feedRateImperialIncrement: 0.01,\r\n feedRateMetricIncrement: 1,\r\n feedRateMin: 0.05,\r\n feedRateMax: 100,\r\n overrideMin: 0,\r\n overrideMax: 400,\r\n overrideStep: 5,\r\n recommendationUpdated: 0,\r\n recommendationKey: 0,\r\n\r\n // Cost Calculations\r\n\r\n costCalculations: [\r\n {\r\n title: \"\",\r\n bladeLife: 0,\r\n pricePerBlade: null,\r\n cutsPerBlade: null,\r\n measurement: null,\r\n laborBurdenRate: null,\r\n costsPerCut: null,\r\n costsPerMeasurement: null,\r\n },\r\n {\r\n title: \"\",\r\n bladeLife: 0,\r\n pricePerBlade: null,\r\n cutsPerBlade: null,\r\n measurement: null,\r\n laborBurdenRate: null,\r\n costsPerCut: null,\r\n costsPerMeasurement: null,\r\n },\r\n {\r\n title: \"\",\r\n bladeLife: 0,\r\n pricePerBlade: null,\r\n cutsPerBlade: null,\r\n measurement: null,\r\n laborBurdenRate: null,\r\n costsPerCut: null,\r\n costsPerMeasurement: null,\r\n },\r\n {\r\n title: \"Custom\",\r\n bladeLife: 0,\r\n pricePerBlade: null,\r\n cutsPerBlade: null,\r\n measurement: null,\r\n laborBurdenRate: null,\r\n costsPerCut: null,\r\n costsPerMeasurement: null,\r\n },\r\n ],\r\n\r\n // Login\r\n\r\n loginDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n\r\n // Register\r\n\r\n registerDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n\r\n // Password Reset\r\n\r\n passwordResetDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n\r\n // User\r\n\r\n user: null,\r\n\r\n // Authentication\r\n\r\n token: null,\r\n\r\n // Users\r\n\r\n users: [],\r\n usersKey: 0,\r\n countries: [],\r\n defaultCountry: { code: \"US\", countryName: \"United States\" },\r\n dataTableUserLinksKey: 0,\r\n\r\n // Stats\r\n\r\n stats: [],\r\n\r\n // Axios\r\n\r\n axiosSource: null,\r\n\r\n // UI\r\n\r\n sawCalcDrawer: false,\r\n images: {\r\n home: {\r\n cover: {\r\n fileName: null,\r\n data: null,\r\n // defaultURL: \"../images/saw-calc-home-cover-default.jpg\",\r\n defaultURL: \"../images/clear.jpg\",\r\n loading: false,\r\n loadingURL: \"../images/loading.jpg\",\r\n maxSize: 300,\r\n },\r\n },\r\n },\r\n\r\n dataTableSettingsDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n dataTableUOMSettingsDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n dataTableSettingsKey: 0,\r\n dataTableUOMSettingsKey: 0,\r\n\r\n // Admin\r\n\r\n // Machines\r\n\r\n machinesAdmin: [],\r\n machinesAdminSettings: {},\r\n\r\n // Materials\r\n\r\n materialsAdmin: [],\r\n materialsAdminSettings: {},\r\n materialsLoading: false,\r\n materialDialogKey: 0,\r\n dataTableChemicalCompositionsDialog: {\r\n show: false,\r\n loading: false,\r\n },\r\n chemicalCompositionsDialogKey: 0,\r\n\r\n // ProductLines\r\n\r\n productLinesSettings: {},\r\n productLineDialogKey: 0,\r\n productLinesShort: [],\r\n bwlRefs: [],\r\n\r\n // ProductTypes\r\n\r\n productTypes: [],\r\n\r\n // Recommendations\r\n\r\n recommendationsAdmin: [],\r\n recommendationsAdminSettings: {},\r\n\r\n // CuttingCharts\r\n\r\n cuttingCharts: [],\r\n cuttingChartsSettings: {},\r\n\r\n // Parameters\r\n\r\n parameters: [],\r\n productSelections: [],\r\n productRecommendations: [],\r\n\r\n // User\r\n\r\n // Logo\r\n\r\n userLogoUrl: \"\",\r\n userLogoImageMaxSize: 300,\r\n\r\n // Machines\r\n\r\n machinesUserSettings: {},\r\n machineImageMaxSize: 300,\r\n\r\n // Materials\r\n\r\n materialsUserSettings: {},\r\n\r\n // UserRecommendations\r\n\r\n userRecommendations: [],\r\n recommendationsUserSettings: {},\r\n};\r\n","const machineDetails = {\r\n getFraction(fraction) {\r\n if (fraction > 0 && fraction <= 0.125) {\r\n return \"1/8\";\r\n } else if (fraction <= 0.25) {\r\n return \"1/4\";\r\n } else if (fraction <= 0.375) {\r\n return \"3/8\";\r\n } else if (fraction <= 0.5) {\r\n return \"1/2\";\r\n } else if (fraction <= 0.625) {\r\n return \"5/8\";\r\n } else if (fraction <= 0.75) {\r\n return \"3/4\";\r\n } else if (fraction <= 0.875) {\r\n return \"7/8\";\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n getBladeWidth(item, metric) {\r\n if (metric) {\r\n return item.bladeWidthMetric + \"mm\";\r\n } else {\r\n let desc = \"\";\r\n\r\n if (item.bladeWidthIn > 0) {\r\n desc = item.bladeWidthIn;\r\n }\r\n\r\n if (item.bladeWidthFr > 0) {\r\n if (item.bladeWidthIn > 0) {\r\n desc += \"-\";\r\n }\r\n\r\n desc += this.getFraction(item.bladeWidthFr);\r\n }\r\n\r\n desc += '\"';\r\n\r\n return desc;\r\n }\r\n },\r\n getBladeThickness(item, metric) {\r\n if (metric) {\r\n return item.bladeThicknessMetric + \"mm\";\r\n } else {\r\n return item.bladeThicknessImperial + '\"';\r\n }\r\n },\r\n getBladeLength(item, metric) {\r\n if (metric) {\r\n return item.bladeLengthMetric + \"mm\";\r\n } else {\r\n let desc = item.bladeLengthFt + \"ft\";\r\n\r\n if (item.bladeLengthIn > 0) {\r\n desc += \" \" + item.bladeLengthIn;\r\n }\r\n\r\n if (item.bladeLengthFr > 0) {\r\n if (item.bladeLengthIn > 0) {\r\n desc += \"-\";\r\n }\r\n\r\n desc += this.getFraction(item.bladeLengthFr);\r\n }\r\n\r\n if (item.bladeLengthIn > 0 || item.bladeLengthFr > 0) {\r\n desc += \"in\";\r\n }\r\n\r\n return desc;\r\n }\r\n },\r\n getMachineOrientation(item, messages) {\r\n if (item.hortizontal) {\r\n return messages.sawCalc.inputMachine.machineOrientationHorizontalLabel;\r\n } else {\r\n return messages.sawCalc.inputMachine.machineOrientationVerticalLabel;\r\n }\r\n },\r\n getScissorPivot(item, messages) {\r\n if (item.scissorPivot) {\r\n return messages.common.yes;\r\n } else {\r\n return messages.common.no;\r\n }\r\n },\r\n getCantedHead(item, messages) {\r\n if (item.cantedHead) {\r\n return messages.common.yes;\r\n } else {\r\n return messages.common.no;\r\n }\r\n },\r\n getBandSpeed(item, metric, min) {\r\n if (metric) {\r\n if (min) {\r\n return item.bandSpeedMinMetric + \" mpm\";\r\n } else {\r\n return item.bandSpeedMaxMetric + \" mpm\";\r\n }\r\n } else {\r\n if (min) {\r\n return item.bandSpeedMinImperial + \" fpm\";\r\n } else {\r\n return item.bandSpeedMaxImperial + \" fpm\";\r\n }\r\n }\r\n },\r\n};\r\n\r\nexport { machineDetails };\r\n","const imageConversion = {\r\n arrayBufferToBase64(buffer) {\r\n var binary = \"\";\r\n var bytes = new Uint8Array(buffer);\r\n var len = bytes.byteLength;\r\n for (var i = 0; i < len; i++) {\r\n binary += String.fromCharCode(bytes[i]);\r\n }\r\n return window.btoa(binary);\r\n },\r\n dataBase64: \"data:image/jpg;base64,\",\r\n};\r\n\r\nexport { imageConversion };\r\n","import { navigation } from \"@/constants/Navigation\";\r\nimport { footer } from \"@/constants/Footer\";\r\nimport { recommendations } from \"@/constants/Recommendations\";\r\nimport i18n from \"@/plugins/i18n\";\r\nimport { machineDetails } from \"@/helpers/MachineDetails\";\r\nimport { imageConversion } from \"@/helpers/ImageConversion\";\r\nimport { calculations } from \"@/helpers/Calculations\";\r\n\r\nexport default {\r\n SET_DEFAULT_LANGUAGE(state, language) {\r\n const json = require(\"@/locales/\" + language.locale + \".json\");\r\n state.language.messages = json;\r\n },\r\n SET_LANGUAGES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.languages = [];\r\n return;\r\n }\r\n\r\n let languages = list.languages.map((o) => ({\r\n id: o.LanguageID,\r\n flag: o.Flag,\r\n locale: o.Locale,\r\n title: o.Title,\r\n uom: o.UOM,\r\n messages: null,\r\n }));\r\n\r\n state.languages = languages;\r\n\r\n state.navigation.toolbar[navigation.toolbar.Language].items =\r\n state.languages;\r\n },\r\n SET_LANG(state, language) {\r\n if (state.languages.find((item) => item.locale === language.locale)) {\r\n state.language = language;\r\n\r\n const lang = state.languages.find(\r\n (item) => item.locale === language.locale\r\n );\r\n\r\n if (lang) {\r\n lang.messages = language.messages;\r\n i18n.setLocaleMessage(\r\n language.locale,\r\n language.messages.default || language.messages\r\n );\r\n }\r\n\r\n i18n.locale = language.locale;\r\n }\r\n },\r\n\r\n UPDATE_NAVIGATION_BY_LANG(state, language) {\r\n const json = language.messages;\r\n\r\n state.navigation.toolbar[navigation.toolbar.Title].title =\r\n json.navigation.toolbar.Title;\r\n state.navigation.toolbar[navigation.toolbar.Phone].title =\r\n json.navigation.toolbar.Phone;\r\n state.navigation.toolbar[\r\n navigation.toolbar.Phone\r\n ].path = json.navigation.toolbar.Phone.replace(/[^0-9]/g, \"\");\r\n state.navigation.toolbar[navigation.toolbar.Login].title =\r\n json.navigation.toolbar.Login;\r\n state.navigation.toolbar[navigation.toolbar.Logoff].title =\r\n json.navigation.toolbar.Logoff;\r\n\r\n // Public\r\n\r\n state.navigation.tabs[navigation.tabs.Home].title =\r\n json.navigation.tabs.Home;\r\n state.navigation.tabs[navigation.tabs.SawCalc].title =\r\n json.navigation.tabs.SawCalc;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].title =\r\n json.navigation.tabs.BandSawGuide;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.BladeTerminology\r\n ].title = json.navigation.tabs.BladeTerminology;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.BladeConstruction\r\n ].title = json.navigation.tabs.BladeConstruction;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.ToothOptions\r\n ].title = json.navigation.tabs.ToothOptions;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.CuttingFactors\r\n ].title = json.navigation.tabs.CuttingFactors;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.BeamStrength\r\n ].title = json.navigation.tabs.BeamStrength;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.Lubrication\r\n ].title = json.navigation.tabs.Lubrication;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.BreakInInstructions\r\n ].title = json.navigation.tabs.BreakInInstructions;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.BasicMaintenanceTips\r\n ].title = json.navigation.tabs.BasicMaintenanceTips;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.CommonProblems\r\n ].title = json.navigation.tabs.CommonProblems;\r\n state.navigation.tabs[navigation.tabs.BandSawGuide].items[\r\n navigation.tabs.GlossaryOfBandsawTerms\r\n ].title = json.navigation.tabs.GlossaryOfBandsawTerms;\r\n state.navigation.tabs[navigation.tabs.LENOXAdvantage].title =\r\n json.navigation.tabs.LENOXAdvantage;\r\n\r\n state.navigation.side[navigation.side.Home].title =\r\n json.navigation.tabs.Home;\r\n state.navigation.side[navigation.side.SawCalc].title =\r\n json.navigation.tabs.SawCalc;\r\n state.navigation.side[navigation.side.BandSawGuide].title =\r\n json.navigation.tabs.BandSawGuide;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.BladeTerminology\r\n ].title = json.navigation.tabs.BladeTerminology;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.BladeConstruction\r\n ].title = json.navigation.tabs.BladeConstruction;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.ToothOptions\r\n ].title = json.navigation.tabs.ToothOptions;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.CuttingFactors\r\n ].title = json.navigation.tabs.CuttingFactors;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.BeamStrength\r\n ].title = json.navigation.tabs.BeamStrength;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.Lubrication\r\n ].title = json.navigation.tabs.Lubrication;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.BreakInInstructions\r\n ].title = json.navigation.tabs.BreakInInstructions;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.BasicMaintenanceTips\r\n ].title = json.navigation.tabs.BasicMaintenanceTips;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.CommonProblems\r\n ].title = json.navigation.tabs.CommonProblems;\r\n state.navigation.side[navigation.side.BandSawGuide].items[\r\n navigation.side.GlossaryOfBandsawTerms\r\n ].title = json.navigation.tabs.GlossaryOfBandsawTerms;\r\n state.navigation.side[navigation.side.LENOXAdvantage].title =\r\n json.navigation.tabs.LENOXAdvantage;\r\n state.navigation.side[navigation.side.Phone].title =\r\n json.navigation.toolbar.Phone;\r\n state.navigation.side[\r\n navigation.side.Phone\r\n ].path = json.navigation.toolbar.Phone.replace(/[^0-9]/g, \"\");\r\n state.navigation.side[navigation.side.Login].title =\r\n json.navigation.toolbar.Login;\r\n\r\n // User\r\n\r\n state.navigation.tabsUser[navigation.tabsUser.Dashboard].title =\r\n json.navigation.tabs.Dashboard;\r\n state.navigation.tabsUser[navigation.tabsUser.SawCalc].title =\r\n json.navigation.tabs.SawCalc;\r\n state.navigation.tabsUser[navigation.tabsUser.Library].title =\r\n json.navigation.tabs.Library;\r\n state.navigation.tabsUser[navigation.tabsUser.Library].items[\r\n navigation.tabsUser.Machines\r\n ].title = json.navigation.tabs.Machines;\r\n state.navigation.tabsUser[navigation.tabsUser.Library].items[\r\n navigation.tabsUser.Materials\r\n ].title = json.navigation.tabs.Materials;\r\n // TODO: add more to menu\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].title =\r\n json.navigation.tabs.BandSawGuide;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.BladeTerminology\r\n ].title = json.navigation.tabs.BladeTerminology;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.BladeConstruction\r\n ].title = json.navigation.tabs.BladeConstruction;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.ToothOptions\r\n ].title = json.navigation.tabs.ToothOptions;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.CuttingFactors\r\n ].title = json.navigation.tabs.CuttingFactors;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.BeamStrength\r\n ].title = json.navigation.tabs.BeamStrength;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.Lubrication\r\n ].title = json.navigation.tabs.Lubrication;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.BreakInInstructions\r\n ].title = json.navigation.tabs.BreakInInstructions;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.BasicMaintenanceTips\r\n ].title = json.navigation.tabs.BasicMaintenanceTips;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.CommonProblems\r\n ].title = json.navigation.tabs.CommonProblems;\r\n state.navigation.tabsUser[navigation.tabsUser.BandSawGuide].items[\r\n navigation.tabsUser.GlossaryOfBandsawTerms\r\n ].title = json.navigation.tabs.GlossaryOfBandsawTerms;\r\n state.navigation.tabsUser[navigation.tabsUser.LENOXAdvantage].title =\r\n json.navigation.tabs.LENOXAdvantage;\r\n state.navigation.tabsUser[navigation.tabsUser.Account].title =\r\n json.navigation.tabs.Account;\r\n\r\n state.navigation.sideUser[navigation.sideUser.Home].title =\r\n json.navigation.tabs.Home;\r\n state.navigation.sideUser[navigation.sideUser.Dashboard].title =\r\n json.navigation.tabs.Dashboard;\r\n state.navigation.sideUser[navigation.sideUser.Library].title =\r\n json.navigation.tabs.Library;\r\n state.navigation.sideUser[navigation.sideUser.Library].items[\r\n navigation.sideUser.Machines\r\n ].title = json.navigation.tabs.Machines;\r\n state.navigation.sideUser[navigation.sideUser.Library].items[\r\n navigation.sideUser.Materials\r\n ].title = json.navigation.tabs.Materials;\r\n // // TODO: add more to menu\r\n state.navigation.sideUser[navigation.sideUser.SawCalc].title =\r\n json.navigation.tabs.SawCalc;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].title =\r\n json.navigation.tabs.BandSawGuide;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.BladeTerminology\r\n ].title = json.navigation.tabs.BladeTerminology;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.BladeConstruction\r\n ].title = json.navigation.tabs.BladeConstruction;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.ToothOptions\r\n ].title = json.navigation.tabs.ToothOptions;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.CuttingFactors\r\n ].title = json.navigation.tabs.CuttingFactors;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.BeamStrength\r\n ].title = json.navigation.tabs.BeamStrength;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.Lubrication\r\n ].title = json.navigation.tabs.Lubrication;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.BreakInInstructions\r\n ].title = json.navigation.tabs.BreakInInstructions;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.BasicMaintenanceTips\r\n ].title = json.navigation.tabs.BasicMaintenanceTips;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.CommonProblems\r\n ].title = json.navigation.tabs.CommonProblems;\r\n state.navigation.sideUser[navigation.sideUser.BandSawGuide].items[\r\n navigation.sideUser.GlossaryOfBandsawTerms\r\n ].title = json.navigation.tabs.GlossaryOfBandsawTerms;\r\n state.navigation.sideUser[navigation.sideUser.LENOXAdvantage].title =\r\n json.navigation.tabs.LENOXAdvantage;\r\n state.navigation.sideUser[navigation.sideUser.Account].title =\r\n json.navigation.tabs.Account;\r\n state.navigation.sideUser[navigation.sideUser.Phone].title =\r\n json.navigation.toolbar.Phone;\r\n state.navigation.sideUser[\r\n navigation.sideUser.Phone\r\n ].path = json.navigation.toolbar.Phone.replace(/[^0-9]/g, \"\");\r\n state.navigation.sideUser[navigation.sideUser.Logoff].title =\r\n json.navigation.toolbar.Logoff;\r\n\r\n // Admin\r\n\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Dashboard].title =\r\n json.navigation.tabs.Dashboard;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.SawCalc].title =\r\n json.navigation.tabs.SawCalc;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].title =\r\n json.navigation.tabs.Library;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.Machines\r\n ].title = json.navigation.tabs.Machines;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.Materials\r\n ].title = json.navigation.tabs.Materials;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.ProductLines\r\n ].title = json.navigation.tabs.ProductLines;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.Recommendations\r\n ].title = json.navigation.tabs.Recommendations;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.EngineParameters\r\n ].title = json.navigation.tabs.EngineParameters;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.DictionaryUI\r\n ].title = json.navigation.tabs.DictionaryUI;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.DictionaryWS\r\n ].title = json.navigation.tabs.DictionaryWS;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.Translation\r\n ].title = json.navigation.tabs.Translation;\r\n // TODO: add more to menu\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].title =\r\n json.navigation.tabs.BandSawGuide;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.BladeTerminology\r\n ].title = json.navigation.tabs.BladeTerminology;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.BladeConstruction\r\n ].title = json.navigation.tabs.BladeConstruction;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.ToothOptions\r\n ].title = json.navigation.tabs.ToothOptions;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.CuttingFactors\r\n ].title = json.navigation.tabs.CuttingFactors;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.BeamStrength\r\n ].title = json.navigation.tabs.BeamStrength;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.Lubrication\r\n ].title = json.navigation.tabs.Lubrication;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.BreakInInstructions\r\n ].title = json.navigation.tabs.BreakInInstructions;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.BasicMaintenanceTips\r\n ].title = json.navigation.tabs.BasicMaintenanceTips;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.CommonProblems\r\n ].title = json.navigation.tabs.CommonProblems;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.BandSawGuide].items[\r\n navigation.tabsAdmin.GlossaryOfBandsawTerms\r\n ].title = json.navigation.tabs.GlossaryOfBandsawTerms;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.LENOXAdvantage].title =\r\n json.navigation.tabs.LENOXAdvantage;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Account].title =\r\n json.navigation.tabs.Account;\r\n\r\n state.navigation.sideAdmin[navigation.sideAdmin.Home].title =\r\n json.navigation.tabs.Home;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Dashboard].title =\r\n json.navigation.tabs.Dashboard;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Library].title =\r\n json.navigation.tabs.Library;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Library].items[\r\n navigation.sideAdmin.Machines\r\n ].title = json.navigation.tabs.Machines;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Library].items[\r\n navigation.sideAdmin.Materials\r\n ].title = json.navigation.tabs.Materials;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Library].items[\r\n navigation.sideAdmin.ProductLines\r\n ].title = json.navigation.tabs.ProductLines;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Library].items[\r\n navigation.sideAdmin.Recommendations\r\n ].title = json.navigation.tabs.Recommendations;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Library].items[\r\n navigation.sideAdmin.EngineParameters\r\n ].title = json.navigation.tabs.EngineParameters;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.DictionaryUI\r\n ].title = json.navigation.tabs.DictionaryUI;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.DictionaryWS\r\n ].title = json.navigation.tabs.DictionaryWS;\r\n state.navigation.tabsAdmin[navigation.tabsAdmin.Library].items[\r\n navigation.tabsAdmin.Translation\r\n ].title = json.navigation.tabs.Translation;\r\n // // TODO: add more to menu\r\n state.navigation.sideAdmin[navigation.sideAdmin.SawCalc].title =\r\n json.navigation.tabs.SawCalc;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].title =\r\n json.navigation.tabs.BandSawGuide;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.BladeTerminology\r\n ].title = json.navigation.tabs.BladeTerminology;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.BladeConstruction\r\n ].title = json.navigation.tabs.BladeConstruction;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.ToothOptions\r\n ].title = json.navigation.tabs.ToothOptions;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.CuttingFactors\r\n ].title = json.navigation.tabs.CuttingFactors;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.BeamStrength\r\n ].title = json.navigation.tabs.BeamStrength;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.Lubrication\r\n ].title = json.navigation.tabs.Lubrication;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.BreakInInstructions\r\n ].title = json.navigation.tabs.BreakInInstructions;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.BasicMaintenanceTips\r\n ].title = json.navigation.tabs.BasicMaintenanceTips;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.CommonProblems\r\n ].title = json.navigation.tabs.CommonProblems;\r\n state.navigation.sideAdmin[navigation.sideAdmin.BandSawGuide].items[\r\n navigation.sideAdmin.GlossaryOfBandsawTerms\r\n ].title = json.navigation.tabs.GlossaryOfBandsawTerms;\r\n state.navigation.sideAdmin[navigation.sideAdmin.LENOXAdvantage].title =\r\n json.navigation.tabs.LENOXAdvantage;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Account].title =\r\n json.navigation.tabs.Account;\r\n state.navigation.sideAdmin[navigation.sideAdmin.Phone].title =\r\n json.navigation.toolbar.Phone;\r\n state.navigation.sideAdmin[\r\n navigation.sideAdmin.Phone\r\n ].path = json.navigation.toolbar.Phone.replace(/[^0-9]/g, \"\");\r\n state.navigation.sideAdmin[navigation.sideAdmin.Logoff].title =\r\n json.navigation.toolbar.Logoff;\r\n },\r\n UPDATE_TOOLBAR_NAVIGATION_BY_USER(state) {\r\n if (!state.user) {\r\n state.navigation.toolbar[navigation.toolbar.Login].visible = true;\r\n state.navigation.toolbar[navigation.toolbar.Logoff].visible = false;\r\n } else {\r\n state.navigation.toolbar[navigation.toolbar.Login].visible = false;\r\n state.navigation.toolbar[navigation.toolbar.Logoff].visible = true;\r\n }\r\n },\r\n UPDATE_FOOTER_BY_LANG(state, language) {\r\n const json = language.messages;\r\n\r\n state.footer.statusBar[footer.statusBar.TermsOfUse].title =\r\n json.footer.statusBar.TermsOfUse;\r\n state.footer.statusBar[footer.statusBar.PrivacyPolicy].title =\r\n json.footer.statusBar.PrivacyPolicy;\r\n state.footer.statusBar[footer.statusBar.CookieSettings].title =\r\n json.footer.statusBar.CookieSettings;\r\n\r\n state.footer.statusBar[footer.statusBar.Copywrite].title =\r\n json.footer.statusBar.Copywrite;\r\n\r\n state.footer.info.contact[footer.info.contact.LenoxTools].title =\r\n json.footer.info.contact.LenoxTools;\r\n state.footer.info.contact[footer.info.contact.Contact].title =\r\n json.footer.info.contact.Contact;\r\n },\r\n\r\n // Recommendation\r\n // Inputs\r\n\r\n SET_INPUT_MACHINE(state, payload) {\r\n if (payload == null) {\r\n payload = {};\r\n state.machine = {};\r\n }\r\n\r\n let inputMachine = state.input.machine;\r\n\r\n if (payload.MachineID) {\r\n inputMachine.userMachineID = payload.UserMachineID;\r\n inputMachine.machineID = payload.MachineID;\r\n inputMachine.machineName = payload.MachineName;\r\n inputMachine.manufacturerID = payload.ManufacturerID;\r\n inputMachine.manufacturerName = payload.ManufacturerName;\r\n inputMachine.model = payload.Model;\r\n inputMachine.bladeWidthIn = payload.BladeWidthIn;\r\n inputMachine.bladeWidthFr = payload.BladeWidthFr;\r\n inputMachine.bladeWidthMetric = payload.BladeWidthMetric;\r\n inputMachine.bladeThicknessImperial = payload.BladeThicknessImperial;\r\n inputMachine.bladeThicknessMetric = payload.BladeThicknessMetric;\r\n inputMachine.bladeLengthFt = payload.BladeLengthFt;\r\n inputMachine.bladeLengthIn = payload.BladeLengthIn;\r\n inputMachine.bladeLengthFr = payload.BladeLengthFr;\r\n inputMachine.bladeLengthImperial = payload.BladeLengthImperial;\r\n inputMachine.bladeLengthMetric = payload.BladeLengthMetric;\r\n inputMachine.hortizontal = payload.Hortizontal;\r\n inputMachine.scissorPivot = payload.ScissorPivot;\r\n inputMachine.cantedHead = payload.CantedHead;\r\n inputMachine.bandSpeedMinImperial = payload.BandSpeedMinImperial;\r\n inputMachine.bandSpeedMaxImperial = payload.BandSpeedMaxImperial;\r\n inputMachine.bandSpeedMinMetric = payload.BandSpeedMinMetric;\r\n inputMachine.bandSpeedMaxMetric = payload.BandSpeedMaxMetric;\r\n } else {\r\n inputMachine.userMachineID = payload.userMachineID;\r\n inputMachine.machineID = payload.machineID;\r\n inputMachine.machineName = payload.machineName;\r\n inputMachine.manufacturerID = payload.manufacturerID;\r\n inputMachine.manufacturerName = payload.manufacturerName;\r\n inputMachine.model = payload.model;\r\n inputMachine.bladeWidthIn = payload.bladeWidthIn;\r\n inputMachine.bladeWidthFr = payload.bladeWidthFr;\r\n inputMachine.bladeWidthMetric = payload.bladeWidthMetric;\r\n inputMachine.bladeThicknessImperial = payload.bladeThicknessImperial;\r\n inputMachine.bladeThicknessMetric = payload.bladeThicknessMetric;\r\n inputMachine.bladeLengthFt = payload.bladeLengthFt;\r\n inputMachine.bladeLengthIn = payload.bladeLengthIn;\r\n inputMachine.bladeLengthFr = payload.bladeLengthFr;\r\n inputMachine.bladeLengthImperial = payload.bladeLengthImperial;\r\n inputMachine.bladeLengthMetric = payload.bladeLengthMetric;\r\n\r\n if (payload.machineOrientation != undefined) {\r\n inputMachine.hortizontal = payload.machineOrientation == 0;\r\n } else {\r\n inputMachine.hortizontal = payload.hortizontal;\r\n }\r\n \r\n inputMachine.scissorPivot = payload.scissorPivot;\r\n inputMachine.cantedHead = payload.cantedHead;\r\n inputMachine.bandSpeedMinImperial = payload.bandSpeedMinImperial;\r\n inputMachine.bandSpeedMaxImperial = payload.bandSpeedMaxImperial;\r\n inputMachine.bandSpeedMinMetric = payload.bandSpeedMinMetric;\r\n inputMachine.bandSpeedMaxMetric = payload.bandSpeedMaxMetric;\r\n }\r\n },\r\n SET_SAVED_INPUT_MACHINE(state, payload) {\r\n if (payload == null) {\r\n payload = {};\r\n }\r\n\r\n const inputMachine = state.savedInput.machine;\r\n\r\n inputMachine.machineID = payload.machineID;\r\n inputMachine.machineName = payload.machineName;\r\n inputMachine.manufacturerID = payload.manufacturerID;\r\n inputMachine.manufacturerName = payload.manufacturerName;\r\n inputMachine.model = payload.model;\r\n inputMachine.bladeWidthIn = payload.BladeWidthIn;\r\n inputMachine.bladeWidthFr = payload.BladeWidthFr;\r\n inputMachine.bladeWidthMetric = payload.BladeWidthMetric;\r\n inputMachine.bladeThicknessImperial = payload.BladeThicknessImperial;\r\n inputMachine.bladeThicknessMetric = payload.BladeThicknessMetric;\r\n inputMachine.bladeLengthFt = payload.BladeLengthFt;\r\n inputMachine.bladeLengthIn = payload.BladeLengthIn;\r\n inputMachine.bladeLengthFr = payload.BladeLengthFr;\r\n inputMachine.bladeLengthImperial = payload.BladeLengthImperial;\r\n inputMachine.bladeLengthMetric = payload.BladeLengthMetric;\r\n inputMachine.hortizontal = payload.Hortizontal;\r\n inputMachine.scissorPivot = payload.ScissorPivot;\r\n inputMachine.cantedHead = payload.CantedHead;\r\n inputMachine.bandSpeedMinImperial = payload.BandSpeedMinImperial;\r\n inputMachine.bandSpeedMaxImperial = payload.BandSpeedMaxImperial;\r\n inputMachine.bandSpeedMinMetric = payload.BandSpeedMinMetric;\r\n inputMachine.bandSpeedMaxMetric = payload.BandSpeedMaxMetric;\r\n },\r\n SET_INPUT_MATERIAL(state, payload) {\r\n if (payload == null) {\r\n payload = {};\r\n state.material = {};\r\n state.scale = {};\r\n }\r\n\r\n const inputMaterial = state.input.material;\r\n\r\n inputMaterial.userMaterialID = payload.userMaterialID;\r\n inputMaterial.materialID = payload.materialID;\r\n inputMaterial.designation = payload.designation;\r\n inputMaterial.materialName = payload.materialName;\r\n inputMaterial.materialStandardID = payload.materialStandardID;\r\n inputMaterial.materialStandard = payload.materialStandard;\r\n inputMaterial.uns = payload.uns;\r\n inputMaterial.unsCategoryID = payload.unsCategoryID;\r\n inputMaterial.unsCategory = payload.unsCategory;\r\n inputMaterial.unsAlloyGroupID = payload.unsAlloyGroupID;\r\n inputMaterial.unsAlloyGroup = payload.unsAlloyGroup;\r\n inputMaterial.sawCalcGroupID = payload.sawCalcGroupID;\r\n inputMaterial.sawCalcGroupName = payload.sawCalcGroupName;\r\n inputMaterial.sawCalcGroupDescription = payload.sawCalcGroupDescription;\r\n inputMaterial.machinabilityGroupBiMetal = payload.machinabilityGroupBiMetal;\r\n inputMaterial.machinabilityGroupCarbide = payload.machinabilityGroupCarbide;\r\n inputMaterial.machinabilityRating = payload.machinabilityRating;\r\n inputMaterial.machinability = payload.machinability;\r\n inputMaterial.defaultHBHardness = payload.defaultHBHardness;\r\n inputMaterial.compositeUNS = payload.compositeUNS;\r\n inputMaterial.unsGeneralDescriptionID = payload.unsGeneralDescriptionID;\r\n inputMaterial.unsGeneralDescription = payload.unsGeneralDescription;\r\n inputMaterial.subCategoryID = payload.subCategoryID;\r\n inputMaterial.subCategory = payload.subCategory;\r\n inputMaterial.quickSearch = payload.quickSearch;\r\n inputMaterial.orderInList = payload.orderInList;\r\n inputMaterial.chemicalComposition = payload.chemicalComposition;\r\n inputMaterial.scale = payload.scale;\r\n inputMaterial.hardness = payload.hardness;\r\n inputMaterial.hardnessDescription = payload.hardnessDescription;\r\n inputMaterial.heavyScaleForged = payload.heavyScaleForged;\r\n inputMaterial.htQuenched = payload.htQuenched;\r\n\r\n if (inputMaterial.htQuenched) {\r\n inputMaterial.hardnessDescription += \" H/T\";\r\n }\r\n },\r\n SET_SAVED_INPUT_MATERIAL(state, payload) {\r\n if (payload == null) {\r\n payload = {};\r\n }\r\n\r\n const inputMaterial = state.savedInput.material;\r\n\r\n inputMaterial.materialID = payload.materialID;\r\n inputMaterial.designation = payload.designation;\r\n inputMaterial.materialName = payload.materialName;\r\n inputMaterial.materialStandardID = payload.materialStandardID;\r\n inputMaterial.materialStandard = payload.materialStandard;\r\n inputMaterial.uns = payload.uns;\r\n inputMaterial.unsCategoryID = payload.unsCategoryID;\r\n inputMaterial.unsCategory = payload.unsCategory;\r\n inputMaterial.unsAlloyGroupID = payload.unsAlloyGroupID;\r\n inputMaterial.unsAlloyGroup = payload.unsAlloyGroup;\r\n inputMaterial.sawCalcGroupID = payload.sawCalcGroupID;\r\n inputMaterial.sawCalcGroupName = payload.sawCalcGroupName;\r\n inputMaterial.sawCalcGroupDescription = payload.sawCalcGroupDescription;\r\n inputMaterial.machinabilityGroupBiMetal = payload.machinabilityGroupBiMetal;\r\n inputMaterial.machinabilityGroupCarbide = payload.machinabilityGroupCarbide;\r\n inputMaterial.machinabilityRating = payload.machinabilityRating;\r\n inputMaterial.machinability = payload.machinability;\r\n inputMaterial.defaultHBHardness = payload.defaultHBHardness;\r\n inputMaterial.compositeUNS = payload.compositeUNS;\r\n inputMaterial.unsGeneralDescriptionID = payload.unsGeneralDescriptionID;\r\n inputMaterial.unsGeneralDescription = payload.unsGeneralDescription;\r\n inputMaterial.subCategoryID = payload.subCategoryID;\r\n inputMaterial.subCategory = payload.subCategory;\r\n inputMaterial.quickSearch = payload.quickSearch;\r\n inputMaterial.orderInList = payload.orderInList;\r\n inputMaterial.chemicalComposition = payload.chemicalComposition;\r\n inputMaterial.scale = payload.scale;\r\n inputMaterial.hardness = payload.hardness;\r\n inputMaterial.hardnessDescription = payload.hardnessDescription;\r\n inputMaterial.heavyScaleForged = payload.heavyScaleForged;\r\n inputMaterial.htQuenched = payload.htQuenched;\r\n\r\n if (inputMaterial.htQuenched) {\r\n inputMaterial.hardnessDescription += \" H/T\";\r\n }\r\n },\r\n SET_INPUT_DIMENSIONS(state, payload) {\r\n state.input.dimensions = {};\r\n\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const inputDimensions = state.input.dimensions;\r\n\r\n inputDimensions.shape = payload.dimensions.shape;\r\n inputDimensions.dimensionDetails = payload.dimensions.dimensionDetails;\r\n inputDimensions.rotated = payload.dimensions.rotated;\r\n inputDimensions.measurement = payload.dimensions.measurement;\r\n },\r\n SET_INPUT_VISING(state, payload) {\r\n state.input.vising = {};\r\n\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const inputVising = state.input.vising;\r\n\r\n inputVising.quantity = payload.vising.quantity;\r\n inputVising.arrangement = payload.vising.arrangement;\r\n },\r\n SET_INPUT_CONDITIONS(state, payload) {\r\n state.input.conditions = {};\r\n\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const inputConditions = state.input.conditions;\r\n\r\n inputConditions.lubrication = payload.conditions.lubrication;\r\n inputConditions.pinching = payload.conditions.pinching;\r\n inputConditions.canting = payload.conditions.canting;\r\n },\r\n CHANGE_INPUT_UOM(state, metric) {\r\n state.input.metric = metric;\r\n state.input.inputUOM = metric ? 1 : 0;\r\n },\r\n CHANGE_INPUT_CURRENCY(state, currency) {\r\n state.input.currency = currency;\r\n state.input.inputCurrency = currency ? currency : 0;\r\n },\r\n RESET_INPUTS(state) {\r\n state.input.resetInputs++;\r\n },\r\n\r\n // Machines\r\n\r\n SHOW_MACHINE_SELECTOR_DIALOG(state, show) {\r\n state.machineSelectorDialog.show = show;\r\n },\r\n SET_MACHINE_MANUFACTURERS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.manufacturers = [];\r\n state.machines = [];\r\n return;\r\n }\r\n\r\n let manufacturers = list.map((o) => ({\r\n manufacturerID: o.ManufacturerID,\r\n manufacturerName: o.ManufacturerName,\r\n }));\r\n\r\n let myMap = new Map();\r\n\r\n manufacturers = manufacturers.filter((el) => {\r\n const val = myMap.get(el.manufacturerName);\r\n if (val) {\r\n if (el.manufacturerID < val) {\r\n myMap.delete(el.manufacturerName);\r\n myMap.set(el.manufacturerName, el.manufacturerID);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n myMap.set(el.manufacturerName, el.manufacturerID);\r\n return true;\r\n });\r\n\r\n manufacturers.sort(function(a, b) {\r\n if (!a.manufacturerName || !b.manufacturerName) {\r\n return 0;\r\n }\r\n\r\n var x = a.manufacturerName.toLowerCase();\r\n var y = b.manufacturerName.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.manufacturers = manufacturers;\r\n\r\n let machines = list.map((o) => ({\r\n machineID: o.MachineID,\r\n manufacturerID: o.ManufacturerID,\r\n model: o.Model,\r\n }));\r\n\r\n machines.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.model.toLowerCase();\r\n var y = b.model.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.machines = machines;\r\n },\r\n SET_MANUFACTURERS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.manufacturers = [];\r\n return;\r\n }\r\n\r\n state.manufacturers = list;\r\n },\r\n SET_MACHINES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.machines = [];\r\n return;\r\n }\r\n\r\n state.machines = list;\r\n },\r\n SET_MACHINE(state, payload) {\r\n if (payload) {\r\n state.machine = payload;\r\n } else {\r\n state.machine = {};\r\n }\r\n },\r\n SET_USER_MACHINES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.userMachines = [];\r\n return;\r\n }\r\n\r\n if (list[0].UserMachineID == undefined) {\r\n state.userMachines = list;\r\n } else {\r\n let machines = list.map((o) => ({\r\n userMachineID: o.UserMachineID,\r\n userID: o.UserID,\r\n machineID: o.MachineID,\r\n machineName: o.MachineName,\r\n imageID: o.ImageID,\r\n manufacturerID: o.ManufacturerID,\r\n manufacturerName: o.ManufacturerName,\r\n model: o.Model,\r\n bladeWidthIn: o.BladeWidthIn,\r\n bladeWidthFr: o.BladeWidthFr,\r\n bladeWidthMetric: o.BladeWidthMetric,\r\n bladeThicknessImperial: o.BladeThicknessImperial,\r\n bladeThicknessMetric: o.BladeThicknessMetric,\r\n bladeLengthFt: o.BladeLengthFt,\r\n bladeLengthIn: o.BladeLengthIn,\r\n bladeLengthFr: o.BladeLengthFr,\r\n bladeLengthImperial: o.BladeLengthImperial,\r\n bladeLengthMetric: o.BladeLengthMetric,\r\n hortizontal: o.Hortizontal,\r\n scissorPivot: o.ScissorPivot,\r\n cantedHead: o.CantedHead,\r\n bandSpeedMinImperial: o.BandSpeedMinImperial,\r\n bandSpeedMaxImperial: o.BandSpeedMaxImperial,\r\n bandSpeedMinMetric: o.BandSpeedMinMetric,\r\n bandSpeedMaxMetric: o.BandSpeedMaxMetric,\r\n\r\n fileName: o.FileName,\r\n\r\n details: \"\",\r\n }));\r\n\r\n machines.forEach((item) => {\r\n item.bladeWidthImperialDesc = machineDetails.getBladeWidth(item, false);\r\n item.bladeWidthMetricDesc = machineDetails.getBladeWidth(item, true);\r\n item.bladeThicknessImperialDesc = machineDetails.getBladeThickness(\r\n item,\r\n false\r\n );\r\n item.bladeThicknessMetricDesc = machineDetails.getBladeThickness(\r\n item,\r\n true\r\n );\r\n item.bladeLengthImperialDesc = machineDetails.getBladeLength(\r\n item,\r\n false\r\n );\r\n item.bladeLengthMetricDesc = machineDetails.getBladeLength(item, true);\r\n item.machineOrientationDesc = machineDetails.getMachineOrientation(\r\n item,\r\n this.state.language.messages\r\n );\r\n item.scissorPivotDesc = machineDetails.getScissorPivot(\r\n item,\r\n this.state.language.messages\r\n );\r\n item.cantedHeadDesc = machineDetails.getCantedHead(\r\n item,\r\n this.state.language.messages\r\n );\r\n item.bandSpeedMinImperialDesc = machineDetails.getBandSpeed(\r\n item,\r\n false,\r\n true\r\n );\r\n item.bandSpeedMaxImperialDesc = machineDetails.getBandSpeed(\r\n item,\r\n false,\r\n false\r\n );\r\n item.bandSpeedMinMetricDesc = machineDetails.getBandSpeed(\r\n item,\r\n true,\r\n true\r\n );\r\n item.bandSpeedMaxMetricDesc = machineDetails.getBandSpeed(\r\n item,\r\n true,\r\n false\r\n );\r\n });\r\n\r\n machines.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.model.toLowerCase();\r\n var y = b.model.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.userMachines = machines;\r\n }\r\n },\r\n SET_USER_MACHINE(state, payload) {\r\n let userMachine = state.userMachines.find(\r\n (item) => item.userMachineID === payload.userMachineID\r\n );\r\n\r\n if (userMachine) {\r\n userMachine.manufacturerID = payload.manufacturerID;\r\n userMachine.manufacturerName = payload.manufacturerName;\r\n userMachine.model = payload.model;\r\n userMachine.bladeWidthIn = payload.bladeWidthIn;\r\n userMachine.bladeWidthFr = payload.bladeWidthFr;\r\n userMachine.bladeWidthMetric = payload.bladeWidthMetric;\r\n userMachine.bladeThicknessImperial = payload.bladeThicknessImperial;\r\n userMachine.bladeThicknessMetric = payload.bladeThicknessMetric;\r\n userMachine.bladeLengthFt = payload.bladeLengthFt;\r\n userMachine.bladeLengthIn = payload.bladeLengthIn;\r\n userMachine.bladeLengthImperial = payload.bladeLengthImperial;\r\n userMachine.bladeLengthMetric = payload.bladeLengthMetric;\r\n userMachine.hortizontal = payload.hortizontal;\r\n userMachine.scissorPivot = payload.scissorPivot;\r\n userMachine.cantedHead = payload.cantedHead;\r\n userMachine.bandSpeedMinImperial = payload.bandSpeedMinImperial;\r\n userMachine.bandSpeedMaxImperial = payload.bandSpeedMaxImperial;\r\n userMachine.bandSpeedMinMetric = payload.bandSpeedMinMetric;\r\n userMachine.bandSpeedMaxMetric = payload.bandSpeedMaxMetric;\r\n\r\n userMachine.bladeWidthImperialDesc = payload.bladeWidthImperialDesc;\r\n userMachine.bladeWidthMetricDesc = payload.bladeWidthMetricDesc;\r\n userMachine.bladeThicknessImperialDesc =\r\n payload.bladeThicknessImperialDesc;\r\n userMachine.bladeThicknessMetricDesc = payload.bladeThicknessMetricDesc;\r\n userMachine.bladeLengthImperialDesc = payload.bladeLengthImperialDesc;\r\n userMachine.bladeLengthMetricDesc = payload.bladeLengthMetricDesc;\r\n userMachine.machineOrientationDesc = payload.machineOrientationDesc;\r\n userMachine.scissorPivotDesc = payload.scissorPivotDesc;\r\n userMachine.cantedHeadDesc = payload.cantedHeadDesc;\r\n userMachine.machineConditionDesc = payload.machineConditionDesc;\r\n userMachine.bandSpeedMinImperialDesc = payload.bandSpeedMinImperialDesc;\r\n userMachine.bandSpeedMaxImperialDesc = payload.bandSpeedMaxImperialDesc;\r\n userMachine.bandSpeedMinMetricDesc = payload.bandSpeedMinMetricDesc;\r\n userMachine.bandSpeedMaxMetricDesc = payload.bandSpeedMaxMetricDesc;\r\n\r\n userMachine.manufacturerID = payload.manufacturerID;\r\n userMachine.manufacturerName = payload.manufacturerName;\r\n userMachine.model = payload.model;\r\n userMachine.bladeWidthIn = payload.bladeWidthIn;\r\n userMachine.bladeWidthFr = payload.bladeWidthFr;\r\n userMachine.bladeWidthMetric = payload.bladeWidthMetric;\r\n userMachine.bladeThicknessImperial = payload.bladeThicknessImperial;\r\n userMachine.bladeThicknessMetric = payload.bladeThicknessMetric;\r\n userMachine.bladeLengthFt = payload.bladeLengthFt;\r\n userMachine.bladeLengthIn = payload.bladeLengthIn;\r\n userMachine.bladeLengthImperial = payload.bladeLengthImperial;\r\n userMachine.bladeLengthMetric = payload.bladeLengthMetric;\r\n userMachine.hortizontal = payload.hortizontal;\r\n userMachine.scissorPivot = payload.scissorPivot;\r\n userMachine.cantedHead = payload.cantedHead;\r\n userMachine.bandSpeedMinImperial = payload.bandSpeedMinImperial;\r\n userMachine.bandSpeedMaxImperial = payload.bandSpeedMaxImperial;\r\n userMachine.bandSpeedMinMetric = payload.bandSpeedMinMetric;\r\n userMachine.bandSpeedMaxMetric = payload.bandSpeedMaxMetric;\r\n\r\n userMachine.defined = payload.defined;\r\n }\r\n },\r\n SET_BLADE_WIDTH_IMPERIAL_LIST(state, list) {\r\n if (!list || list.length == 0) {\r\n state.bladeWidthImperialList = [];\r\n return;\r\n }\r\n\r\n if (\"Text\" in list[0]) {\r\n let lst = list.map((o) => ({\r\n text: o.Text,\r\n value: o.Value,\r\n }));\r\n\r\n state.bladeWidthImperialList = lst;\r\n } else {\r\n state.bladeWidthImperialList = list;\r\n }\r\n },\r\n SET_BLADE_WIDTH_METRIC_LIST(state, list) {\r\n if (list) {\r\n state.bladeWidthMetricList = list;\r\n } else {\r\n state.bladeWidthMetricList = [];\r\n }\r\n },\r\n SET_BLADE_THICKNESS_IMPERIAL_LIST(state, list) {\r\n if (list) {\r\n state.bladeThicknessImperialList = list;\r\n } else {\r\n state.bladeThicknessImperialList = [];\r\n }\r\n },\r\n SET_BLADE_THICKNESS_METRIC_LIST(state, list) {\r\n if (list) {\r\n state.bladeThicknessMetricList = list;\r\n } else {\r\n state.bladeThicknessMetricList = [];\r\n }\r\n },\r\n SET_BLADE_LENGTH_FT_LIST(state, list) {\r\n if (list) {\r\n state.bladeLengthFtList = list;\r\n } else {\r\n state.bladeLengthFtList = [];\r\n }\r\n },\r\n SET_BLADE_LENGTH_IN_LIST(state, list) {\r\n if (list) {\r\n state.bladeLengthInList = list;\r\n } else {\r\n state.bladeLengthInList = [];\r\n }\r\n },\r\n SET_BLADE_LENGTH_FR_LIST(state, list) {\r\n if (!list || list.length == 0) {\r\n state.bladeLengthFrList = [];\r\n return;\r\n }\r\n\r\n if (\"Text\" in list[0]) {\r\n let lst = list.map((o) => ({\r\n text: o.Text,\r\n value: o.Value,\r\n }));\r\n\r\n state.bladeLengthFrList = lst;\r\n } else {\r\n state.bladeLengthFrList = list;\r\n }\r\n },\r\n SET_BLADE_LENGTH_METRIC_LIST(state, list) {\r\n if (list) {\r\n state.bladeLengthMetricList = list;\r\n } else {\r\n state.bladeLengthMetricList = [];\r\n }\r\n },\r\n RELOAD_MACHINE_IMPERIAL_COMPONENT(state) {\r\n state.unknownMachineImperialKey += 1;\r\n },\r\n RELOAD_MACHINE_METRIC_COMPONENT(state) {\r\n state.unknownMachineMetricKey += 1;\r\n },\r\n SET_MACHINES_READY(state, ready) {\r\n state.machinesReady = ready;\r\n },\r\n\r\n // Materials\r\n\r\n SHOW_MATERIAL_SELECTOR_DIALOG(state, show) {\r\n state.materialSelectorDialog.show = show;\r\n },\r\n SET_MATERIAL_STANDARDS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.materialStandards = [];\r\n return;\r\n }\r\n\r\n if (\"ID\" in list[0]) {\r\n let materialStandards = list.map((o) => ({\r\n id: o.ID,\r\n value: o.Value,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.materialStandards = materialStandards;\r\n } else {\r\n state.materialStandards = list;\r\n }\r\n },\r\n SET_UNS_CATEGORIES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.unsCategories = [];\r\n return;\r\n }\r\n\r\n if (\"ID\" in list[0]) {\r\n let unsCategories = list.map((o) => ({\r\n id: o.ID,\r\n value: o.Value,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.unsCategories = unsCategories;\r\n } else {\r\n state.unsCategories = list;\r\n }\r\n },\r\n SET_UNS_ALLOY_GROUPS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.unsAlloyGroups = [];\r\n return;\r\n }\r\n\r\n if (\"ID\" in list[0]) {\r\n let unsAlloyGroups = list.map((o) => ({\r\n id: o.ID,\r\n value: o.Value,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.unsAlloyGroups = unsAlloyGroups;\r\n } else {\r\n state.unsAlloyGroups = list;\r\n }\r\n },\r\n SET_SAW_CALC_GROUPS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.sawCalcGroups = [];\r\n return;\r\n }\r\n\r\n if (\"SawCalcGroupID\" in list[0]) {\r\n let sawCalcGroups = list.map((o) => ({\r\n sawCalcGroupID: o.SawCalcGroupID,\r\n sawCalcGroupName: o.SawCalcGroupName,\r\n sawCalcGroupDescription: o.SawCalcGroupDescription,\r\n machinabilityGroupBiMetal: o.MachinabilityGroupBiMetal,\r\n machinabilityGroupCarbide: o.MachinabilityGroupCarbide,\r\n machinabilityRating: o.MachinabilityRating,\r\n defaultHBHardness: o.DefaultHBHardness,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.sawCalcGroups = sawCalcGroups;\r\n } else {\r\n state.sawCalcGroups = list;\r\n }\r\n },\r\n SET_MACHINABILITY_GROUPS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.machinabilityGroups = [];\r\n return;\r\n }\r\n\r\n if (\"MachinabilityGroupID\" in list[0]) {\r\n let machinabilityGroups = list.map((o) => ({\r\n machinabilityGroupID: o.MachinabilityGroupID,\r\n group: o.Group,\r\n rating: o.Rating,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.machinabilityGroups = machinabilityGroups;\r\n } else {\r\n state.machinabilityGroups = list;\r\n }\r\n },\r\n SET_UNS_GENERAL_DESCRIPTIONS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.unsGeneralDescriptions = [];\r\n return;\r\n }\r\n\r\n if (\"ID\" in list[0]) {\r\n let unsGeneralDescriptions = list.map((o) => ({\r\n id: o.ID,\r\n value: o.Value,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.unsGeneralDescriptions = unsGeneralDescriptions;\r\n } else {\r\n state.unsGeneralDescriptions = list;\r\n }\r\n },\r\n SET_SUB_CATEGORIES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.subCategories = [];\r\n return;\r\n }\r\n\r\n if (\"ID\" in list[0]) {\r\n let subCategories = list.map((o) => ({\r\n id: o.ID,\r\n value: o.Value,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.subCategories = subCategories;\r\n } else {\r\n state.subCategories = list;\r\n }\r\n },\r\n SET_MATERIALS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.materials = [];\r\n return;\r\n }\r\n\r\n if (list[0].MaterialID == undefined) {\r\n state.materials = list;\r\n } else {\r\n let materials = list.map((o) => ({\r\n id: o.MaterialID,\r\n designation: o.Designation,\r\n materialStandardID: o.MaterialStandardID,\r\n uns: o.UNS,\r\n unsCategoryID: o.UNSCategoryID,\r\n unsAlloyGroupID: o.UNSAlloyGroupID,\r\n sawCalcGroupID: o.SawCalcGroupID,\r\n compositeUNS: o.CompositeUNS,\r\n unsGeneralDescriptionID: o.UNSGeneralDescriptionID,\r\n subCategoryID: o.SubCategoryID,\r\n quickSearch: o.QuickSearch,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n materials.forEach((item) => {\r\n item.description = item.designation;\r\n });\r\n\r\n state.materials = materials;\r\n }\r\n\r\n const selectMaterials = state.materials.filter(\r\n (item) => item.quickSearch === true\r\n );\r\n\r\n selectMaterials.forEach((item) => {\r\n const subCategory = state.subCategories.find(\r\n (itm) => itm.id == item.subCategoryID\r\n );\r\n\r\n if (subCategory) {\r\n item.description = subCategory.value + \" - \" + item.designation;\r\n }\r\n });\r\n\r\n state.selectMaterials = selectMaterials;\r\n },\r\n SET_SELECT_MATERIALS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.selectMaterials = [];\r\n return;\r\n }\r\n\r\n list.forEach((item) => {\r\n const subCategory = state.subCategories.find(\r\n (itm) => itm.id == item.subCategoryID\r\n );\r\n\r\n if (subCategory) {\r\n item.description = subCategory.value + \" - \" + item.designation;\r\n }\r\n });\r\n\r\n state.selectMaterials = list;\r\n },\r\n SET_MATERIALS_READY(state, ready) {\r\n state.materialsReady = ready;\r\n },\r\n SET_MATERIAL(state, payload) {\r\n if (payload) {\r\n state.material = payload;\r\n\r\n if (state.material.scale == undefined) {\r\n state.material.scale = state.scales[0];\r\n }\r\n if (state.material.hardness == undefined) {\r\n state.material.hardness = state.defaultHardness;\r\n }\r\n if (state.material.heavyScaleForged == undefined) {\r\n state.material.heavyScaleForged = false;\r\n }\r\n if (state.material.htQuenched == undefined) {\r\n state.material.htQuenched = false;\r\n }\r\n\r\n state.material.hardnessDescription =\r\n state.material.hardness + \" \" + state.material.scale.abbreviation;\r\n } else {\r\n state.material = {};\r\n }\r\n },\r\n SET_SCALES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.scales = [];\r\n return;\r\n }\r\n\r\n if (list[0].ScaleID == undefined) {\r\n state.scales = list;\r\n } else {\r\n let scales = list.map((o) => ({\r\n id: o.ScaleID,\r\n description: o.Description,\r\n abbreviation: o.Abbreviation,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.scales = scales;\r\n }\r\n },\r\n SET_SCALE(state, payload) {\r\n if (payload) {\r\n if (state.material) {\r\n state.material.scale = payload;\r\n } else {\r\n state.material.scale = state.scales[0];\r\n }\r\n\r\n state.material.hardnessDescription =\r\n state.material.hardness + \" \" + state.material.scale.abbreviation;\r\n }\r\n },\r\n SET_HARDNESS(state, payload) {\r\n if (payload) {\r\n if (state.material) {\r\n state.material.hardnessCalculated = payload;\r\n state.material.hardness = parseInt(payload);\r\n } else {\r\n state.material.hardness = state.defaultHardness;\r\n }\r\n\r\n if (state.material.scale) {\r\n state.material.hardnessDescription =\r\n state.material.hardness + \" \" + state.material.scale.abbreviation;\r\n } else {\r\n state.material.hardnessDescription = \"\";\r\n }\r\n }\r\n },\r\n SET_HEAVY_SCALE_FORGED(state, payload) {\r\n if (payload) {\r\n if (state.material) {\r\n state.material.heavyScaleForged = payload;\r\n } else {\r\n state.material.heavyScaleForged = false;\r\n }\r\n }\r\n },\r\n SET_HT_QUENCHED(state, payload) {\r\n if (payload) {\r\n if (state.material) {\r\n state.material.htQuenched = payload;\r\n } else {\r\n state.material.htQuenched = false;\r\n }\r\n }\r\n },\r\n SET_USER_MATERIALS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.userMaterials = [];\r\n return;\r\n }\r\n\r\n if (list[0].UserMaterialID == undefined) {\r\n state.userMaterials = list;\r\n } else {\r\n let materials = list.map((o) => ({\r\n userMaterialID: o.UserMaterialID,\r\n userID: o.UserID,\r\n materialID: o.MaterialID,\r\n materialName: o.MaterialName,\r\n designation: o.Designation,\r\n country: o.Country,\r\n standard: o.Standard,\r\n materialStandard: o.MaterialStandard,\r\n uns: o.UNS,\r\n unsCategory: o.UNSCategory,\r\n unsAlloyGroup: o.UNSAlloyGroup,\r\n sawCalcGroupName: o.SawCalcGroupName,\r\n sawCalcGroupDescription: o.SawCalcGroupDescription,\r\n machinabilityGroupBiMetal: o.MachinabilityGroupBiMetal,\r\n machinabilityGroupCarbide: o.MachinabilityGroupCarbide,\r\n machinabilityRating: o.MachinabilityRating,\r\n machinability: o.Machinability,\r\n defaultHBHardness: o.DefaultHBHardness,\r\n compositeUNS: o.CompositeUNS,\r\n unsGeneralDescription: o.UNSGeneralDescription,\r\n subCategory: o.SubCategory,\r\n orderInList: o.OrderInList,\r\n chemicalComposition: JSON.parse(o.ChemicalComposition),\r\n scale: {\r\n scaleID: o.ScaleID,\r\n abbreviation: o.ScaleAbbreviation,\r\n description: o.ScaleDescription,\r\n },\r\n hardness: o.Hardness,\r\n hardnessDescription: o.HardnessDescription,\r\n heavyScaleForged: o.HeavyScaleForged,\r\n htQuenched: o.HTQuenched,\r\n }));\r\n\r\n materials.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.model.toLowerCase();\r\n var y = b.model.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n materials.forEach((item) => {\r\n item.hardnessDescription =\r\n item.hardness + \" \" + item.scale.abbreviation;\r\n\r\n if (item.machinabilityGroupBiMetal == undefined) {\r\n item.machinabilityGroupBiMetal = \"\";\r\n }\r\n\r\n if (item.machinabilityGroupCarbide == undefined) {\r\n item.machinabilityGroupCarbide = \"\";\r\n }\r\n\r\n item.machinability =\r\n \"Group: \" +\r\n item.machinabilityGroupBiMetal +\r\n \"/\" +\r\n item.machinabilityGroupCarbide +\r\n \" \" +\r\n \"Rating: \" +\r\n item.machinabilityRating;\r\n });\r\n\r\n state.userMaterials = materials;\r\n }\r\n },\r\n SET_USER_MATERIAL(state, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n let userMaterial = state.userMaterials.find(\r\n (item) => item.userMaterialID === payload.userMaterialID\r\n );\r\n\r\n if (userMaterial) {\r\n userMaterial.designation = payload.designation;\r\n userMaterial.country = payload.country;\r\n userMaterial.standard = payload.standard;\r\n userMaterial.materialStandard = payload.materialStandard;\r\n userMaterial.uns = payload.uns;\r\n userMaterial.unsCategory = payload.unsCategory;\r\n userMaterial.unsAlloyGroup = payload.unsAlloyGroup;\r\n userMaterial.sawCalcGroupName = payload.sawCalcGroupName;\r\n userMaterial.sawCalcGroupDescription = payload.sawCalcGroupDescription;\r\n userMaterial.machinabilityGroupBiMetal =\r\n payload.machinabilityGroupBiMetal;\r\n userMaterial.machinabilityGroupCarbide =\r\n payload.machinabilityGroupCarbide;\r\n userMaterial.machinabilityRating = payload.machinabilityRating;\r\n userMaterial.machinability = payload.machinability;\r\n userMaterial.defaultHBHardness = payload.defaultHBHardness;\r\n userMaterial.compositeUNS = payload.compositeUNS;\r\n userMaterial.unsGeneralDescription = payload.unsGeneralDescription;\r\n userMaterial.subCategory = payload.subCategory;\r\n userMaterial.orderInList = payload.orderInList;\r\n userMaterial.chemicalComposition = payload.chemicalComposition;\r\n userMaterial.scale = payload.scale;\r\n userMaterial.hardness = payload.hardness;\r\n userMaterial.hardnessDescription = payload.hardnessDescription;\r\n userMaterial.heavyScaleForged = payload.heavyScaleForged;\r\n userMaterial.htQuenched = payload.htQuenched;\r\n\r\n userMaterial.defined = payload.defined;\r\n }\r\n },\r\n RELOAD_MATERIAL_SELECTOR_DETAILS_COMPONENT(state) {\r\n state.materialSelectorDetailsKey += 1;\r\n },\r\n\r\n // Dimensions\r\n\r\n SHOW_DIMENSIONS_SELECTOR_DIALOG(state, show) {\r\n state.dimensionsSelectorDialog.show = show;\r\n },\r\n SET_IBEAM_GROUPS_STANDARDS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.iBeamGroups = [];\r\n state.iBeamStandards = [];\r\n return;\r\n }\r\n\r\n let iBeamGroups = list.map((o) => ({\r\n iBeamGroupID: o.IBeamGroupID,\r\n iBeamGroup: o.IBeamGroup,\r\n orderInList: o.IBeamGroupOrderInList,\r\n }));\r\n\r\n let myMap = new Map();\r\n\r\n iBeamGroups = iBeamGroups.filter((el) => {\r\n const val = myMap.get(el.iBeamGroup);\r\n if (val) {\r\n if (el.iBeamGroupID < val) {\r\n myMap.delete(el.iBeamGroup);\r\n myMap.set(el.iBeamGroup, el.iBeamGroupID);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n myMap.set(el.iBeamGroup, el.iBeamGroupID);\r\n return true;\r\n });\r\n\r\n iBeamGroups.sort(function(a, b) {\r\n var x = a.orderInList;\r\n var y = b.orderInList;\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.iBeamGroups = iBeamGroups;\r\n\r\n let iBeamStandards = list.map((o) => ({\r\n iBeamStandardID: o.IBeamStandardID,\r\n iBeamGroupID: o.IBeamGroupID,\r\n description: o.Description,\r\n depth: o.Depth,\r\n flangeWidth: o.FlangeWidth,\r\n webThickness: o.WebThickness,\r\n flangeThickness: o.FlangeThickness,\r\n }));\r\n\r\n iBeamStandards.sort(function(a, b) {\r\n if (!a.description || !b.description) {\r\n return 0;\r\n }\r\n\r\n var x = a.description.toLowerCase();\r\n var y = b.description.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.iBeamStandards = iBeamStandards;\r\n },\r\n SET_IBEAM_GROUPS(state, payload) {\r\n if (payload) {\r\n state.iBeamGroups = payload;\r\n } else {\r\n state.iBeamGroups = {};\r\n }\r\n },\r\n SET_IBEAM_STANDARDS(state, payload) {\r\n if (payload) {\r\n state.iBeamStandards = payload;\r\n } else {\r\n state.iBeamStandards = {};\r\n }\r\n },\r\n SET_DIMENSIONS_READY(state, ready) {\r\n state.dimensionsReady = ready;\r\n },\r\n\r\n // Vising\r\n\r\n SHOW_VISING_SELECTOR_DIALOG(state, show) {\r\n state.visingSelectorDialog.show = show;\r\n },\r\n SET_VISING_READY(state, ready) {\r\n state.visingReady = ready;\r\n },\r\n\r\n // Conditions\r\n\r\n SHOW_CONDITIONS_SELECTOR_DIALOG(state, show) {\r\n state.conditionsSelectorDialog.show = show;\r\n },\r\n SET_CONDITIONS_READY(state, ready) {\r\n state.conditionsReady = ready;\r\n },\r\n\r\n // Product Lines\r\n\r\n SET_PRODUCT_LINES_READY(state, ready) {\r\n state.productLinesReady = ready;\r\n },\r\n SET_PRODUCT_LINES_SHORT(state, list) {\r\n if (!list || list.length == 0) {\r\n state.productLines = [];\r\n return;\r\n }\r\n\r\n if (list[0].ProductLineID == undefined) {\r\n state.productLinesShort = list;\r\n } else {\r\n let productLines = list.map((o) => ({\r\n productLineID: o.ProductLineID,\r\n productFamily: o.ProductFamily,\r\n productType: o.ProductType,\r\n productTypeDescription: o.ProductTypeDescription,\r\n tpi: o.TPI,\r\n bwl1: o.BWL1,\r\n bwl2: o.BWL2,\r\n bwl3: o.BWL3,\r\n bwl4: o.BWL4,\r\n bwl5: o.BWL5,\r\n bwl6: o.BWL6,\r\n bwl7: o.BWL7,\r\n bwl8: o.BWL8,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n state.productLinesShort = productLines;\r\n }\r\n },\r\n SET_BWL_REFS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.bwlRefs = [];\r\n return;\r\n }\r\n\r\n if (list[0].BWLRefID == undefined) {\r\n state.bwlRefs = list;\r\n } else {\r\n let bwlRefs = list.map((o) => ({\r\n bwlRefID: o.BWLRefID,\r\n bwl: o.BWL,\r\n widthImperial: o.WidthImperial,\r\n widthImperialValue: o.WidthImperialValue,\r\n widthMetric: o.WidthMetric,\r\n gaugeImperial: o.GaugeImperial,\r\n gaugeMetric: o.GaugeMetric,\r\n }));\r\n\r\n state.bwlRefs = bwlRefs;\r\n }\r\n },\r\n\r\n // Recommendation\r\n\r\n RECOMMENDATION_UPDATED(state) {\r\n state.recommendationUpdated += 1;\r\n },\r\n\r\n // Cost Calculations\r\n\r\n UPDATE_COST_CALCULATION(state, payload) {\r\n const costCalculation = payload.costCalculation;\r\n const index = payload.index;\r\n\r\n state.costCalculations[index] = costCalculation;\r\n },\r\n RESET_COST_CALCULATIONS(state) {\r\n state.costCalculations = [{}, {}, {}, {}];\r\n },\r\n\r\n // SawCalc\r\n\r\n SET_SAW_CALC_LOADING(state, loading) {\r\n state.sawCalcLoading = loading;\r\n },\r\n\r\n SET_SETTINGS_LOADED(state, loaded) {\r\n state.settingsLoaded = loaded;\r\n },\r\n\r\n SELECT_RECOMMENDATION(state, payload) {\r\n state.selectedRecommendation = payload.recommendation;\r\n },\r\n CUSTOMIZE(state, payload) {\r\n state.selectedRecommendationForCustom = payload.recommendationIndex;\r\n state.selectedRecommendation = recommendations.Custom;\r\n\r\n state.recommendations[recommendations.Custom] = JSON.parse(\r\n JSON.stringify(payload.recommendation)\r\n );\r\n\r\n state.costCalculations[recommendations.Custom] = JSON.parse(\r\n JSON.stringify(payload.costCalculation)\r\n );\r\n },\r\n SET_RECOMMENDATIONS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.recommendations = [{}, {}, {}, {}];\r\n return;\r\n }\r\n\r\n let recommendations = list.map((o) => ({\r\n title: o.Title,\r\n blade: o.Blade,\r\n bladeDescription: o.BladeDescription,\r\n specsImperial: o.SpecsImperial,\r\n specsMetric: o.SpecsMetric,\r\n bandSpeedImperial: o.BandSpeedImperial,\r\n bandSpeedMetric: o.BandSpeedMetric,\r\n feedRateImperial: o.FeedRateImperial,\r\n feedRateMetric: o.FeedRateMetric,\r\n chipLoadImperial: o.ChipLoadImperial,\r\n chipLoadMetric: o.ChipLoadMetric,\r\n cuttingRateImperial: o.CuttingRateImperial,\r\n cuttingRateMetric: o.CuttingRateMetric,\r\n cutTime: o.CutTime,\r\n cutTimeDescription: calculations.secToTime(o.CutTime),\r\n }));\r\n\r\n const json = state.language.messages;\r\n\r\n for (let i = 0; i < recommendations.length; i++) {\r\n recommendations[i].title = json.sawCalc.recommendation.title[i];\r\n }\r\n\r\n if (recommendations.length == 3) {\r\n recommendations.push({});\r\n }\r\n\r\n state.recommendations = recommendations;\r\n },\r\n CLOSE_CUSTOM_RECOMMENDATION(state) {\r\n state.recommendations[recommendations.Custom].blade = null;\r\n state.recommendations[recommendations.Custom].bladeDescription = null;\r\n state.recommendations[recommendations.Custom].specs = null;\r\n state.recommendations[recommendations.Custom].bandSpeed = null;\r\n state.recommendations[recommendations.Custom].feedRate = null;\r\n state.recommendations[recommendations.Custom].chipLoad = null;\r\n state.recommendations[recommendations.Custom].cuttingRate = null;\r\n state.recommendations[recommendations.Custom].cutTime = null;\r\n\r\n state.selectedRecommendationForCustom = null;\r\n state.selectedRecommendation = 0;\r\n },\r\n UPDATE_FROM_CUSTOM(state, payload) {\r\n const recommendationIndex = state.selectedRecommendationForCustom;\r\n const recommendation = payload.recommendation;\r\n const custom = payload.custom;\r\n const costCalculation = payload.costCalculation;\r\n\r\n state.recommendations[recommendationIndex] = JSON.parse(\r\n JSON.stringify(recommendation)\r\n );\r\n state.recommendations[recommendationIndex].custom = JSON.parse(\r\n JSON.stringify(custom)\r\n );\r\n state.recommendations[recommendationIndex].customized = true;\r\n\r\n state.costCalculations[recommendationIndex] = JSON.parse(\r\n JSON.stringify(costCalculation)\r\n );\r\n },\r\n RELOAD_RECOMMENDATION_COMPONENT(state) {\r\n state.recommendationKey += 1;\r\n },\r\n\r\n // Login\r\n\r\n SHOW_LOGIN_DIALOG(state, show) {\r\n state.loginDialog.show = show;\r\n },\r\n LOGIN_LOADING(state, loading) {\r\n state.loginDialog.loading = loading;\r\n },\r\n\r\n // Register\r\n\r\n SHOW_REGISTER_DIALOG(state, show) {\r\n state.registerDialog.show = show;\r\n },\r\n REGISTER_LOADING(state, loading) {\r\n state.registerDialog.loading = loading;\r\n },\r\n\r\n // Password Reset\r\n\r\n SHOW_PASSWORD_RESET_DIALOG(state, show) {\r\n state.passwordResetDialog.show = show;\r\n },\r\n PASSWORD_RESET_LOADING(state, loading) {\r\n state.passwordResetDialog.loading = loading;\r\n },\r\n\r\n // Snackbar\r\n\r\n SHOW_SNACKBAR(state, payload) {\r\n let message = payload.message;\r\n let delay = payload.delay;\r\n let show = payload.show;\r\n\r\n state.snackbar.show = show;\r\n if (payload.result) {\r\n state.snackbar.color = \"success\";\r\n if (delay) {\r\n state.snackbar.timeout = delay;\r\n } else {\r\n state.snackbar.timeout = 4000;\r\n }\r\n state.snackbar.message = message;\r\n } else {\r\n state.snackbar.color = \"error\";\r\n if (delay) {\r\n state.snackbar.timeout = delay;\r\n } else {\r\n state.snackbar.timeout = 5000;\r\n }\r\n state.snackbar.message = message;\r\n }\r\n },\r\n\r\n // User\r\n\r\n SET_USER(state, user) {\r\n if (user) {\r\n if (user.UserID) {\r\n state.user = {\r\n userID: user.UserID,\r\n companyName: user.CompanyName,\r\n street: user.Street,\r\n city: user.City,\r\n postalCode: user.PostalCode,\r\n country: user.Country,\r\n state: user.State,\r\n phone: user.Phone,\r\n firstName: user.FirstName,\r\n lastName: user.LastName,\r\n email: user.Email,\r\n marketingEmail: user.MarketingEmail,\r\n admin: user.Admin,\r\n imageID: user.ImageID,\r\n fileName: user.FileName,\r\n };\r\n } else {\r\n state.user = user;\r\n }\r\n\r\n if (user.UserLinks) {\r\n const list = [];\r\n\r\n user.UserLinks.forEach((userLink) => {\r\n const p = {\r\n userLinkID: userLink.UserLinkID,\r\n parentID: userLink.ParentID,\r\n userID: userLink.UserID,\r\n linkName: userLink.LinkName,\r\n orderInList: userLink.OrderInList,\r\n };\r\n\r\n list.push(p);\r\n });\r\n\r\n state.user.userLinks = list;\r\n } else {\r\n state.user.userLinks = [];\r\n }\r\n\r\n let country = null;\r\n\r\n if (state.user.country && state.countries) {\r\n if (state.user.country.length == 2) {\r\n country = state.countries.find(\r\n (item) => item.code == state.user.country\r\n );\r\n } else {\r\n country = state.countries.find(\r\n (item) => item.countryName == state.user.country\r\n );\r\n }\r\n }\r\n\r\n if (country) {\r\n state.user.country = country.code;\r\n } else {\r\n state.user.country = state.defaultCountry.code;\r\n }\r\n } else {\r\n state.user = null;\r\n }\r\n },\r\n\r\n // Axios\r\n\r\n SET_AXIOS_SOURCE(state, source) {\r\n state.axiosSource = source;\r\n },\r\n CANCEL_REQUEST(state) {\r\n state.axiosSource.cancel(\"Request cancelled.\");\r\n },\r\n\r\n // Authentication\r\n\r\n SET_TOKEN(state, token) {\r\n state.token = token;\r\n },\r\n\r\n // Users\r\n\r\n SET_USERS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.users = [];\r\n return;\r\n }\r\n\r\n let users = list.map((o) => ({\r\n userID: o.UserID,\r\n email: o.Email,\r\n uuid: o.UUID,\r\n emailVerified: o.EmailVerified,\r\n admin: o.Admin,\r\n marketingEmail: o.MarketingEmail,\r\n technicalGroup: o.TechnicalGroup,\r\n adminGroup: o.AdminGroup,\r\n active: o.Active,\r\n companyName: o.CompanyName,\r\n street: o.Street,\r\n city: o.City,\r\n state: o.State,\r\n postalCode: o.PostalCode,\r\n country: o.Country,\r\n phone: o.Phone,\r\n firstName: o.FirstName,\r\n lastName: o.LastName,\r\n userLinks: o.UserLinks,\r\n }));\r\n\r\n users.forEach((item) => {\r\n item.fullName = item.firstName + \" \" + item.lastName;\r\n\r\n item.address =\r\n item.street +\r\n \", \" +\r\n item.city +\r\n \", \" +\r\n item.state +\r\n \" \" +\r\n item.postalCode +\r\n \", \" +\r\n item.country;\r\n\r\n const list = [];\r\n\r\n if (item.userLinks) {\r\n item.userLinks.forEach((userLink) => {\r\n const p = {\r\n userLinkID: userLink.UserLinkID,\r\n parentID: userLink.ParentID,\r\n userID: userLink.UserID,\r\n linkName: userLink.LinkName,\r\n orderInList: userLink.OrderInList,\r\n };\r\n\r\n list.push(p);\r\n });\r\n }\r\n\r\n item.userLinks = list;\r\n });\r\n\r\n state.users = users;\r\n },\r\n UPDATE_DB_USER(state, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const userID = payload.UserID;\r\n const admin = payload.Admin;\r\n const marketingEmail = payload.MarketingEmail;\r\n const technicalGroup = payload.TechnicalGroup;\r\n const adminGroup = payload.AdminGroup;\r\n const active = payload.Active;\r\n\r\n const user = state.users.find((item) => item.userID == userID);\r\n\r\n if (user) {\r\n user.admin = admin;\r\n user.marketingEmail = marketingEmail;\r\n user.technicalGroup = technicalGroup;\r\n user.adminGroup = adminGroup;\r\n user.active = active;\r\n }\r\n },\r\n DELETE_DB_USER(state, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n var index = state.users.findIndex((o) => {\r\n return o.userID === payload;\r\n });\r\n\r\n if (index !== -1) state.users.splice(index, 1);\r\n },\r\n RELOAD_USERS_COMPONENT(state) {\r\n state.usersKey += 1;\r\n },\r\n UPDATE_ACCOUNT(state, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const user = state.user;\r\n\r\n if (user) {\r\n user.userID = payload.UserID;\r\n user.companyName = payload.CompanyName;\r\n user.street = payload.Street;\r\n user.city = payload.City;\r\n user.state = payload.State;\r\n user.postalCode = payload.PostalCode;\r\n user.country = payload.Country;\r\n user.phone = payload.Phone;\r\n user.firstName = payload.FirstName;\r\n user.lastName = payload.LastName;\r\n user.marketingEmail = payload.MarketingEmail;\r\n user.userLinks = payload.UserLinks;\r\n }\r\n },\r\n SET_COUNTRIES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.countries = [];\r\n return;\r\n }\r\n\r\n if (list[0].CountryID == undefined) {\r\n state.countries = list;\r\n } else {\r\n let countries = list.map((o) => ({\r\n countryID: o.CountryID,\r\n code: o.Code,\r\n countryName: o.CountryName,\r\n }));\r\n\r\n state.countries = countries;\r\n }\r\n },\r\n RELOAD_USER_LINKS_COMPONENT(state) {\r\n state.dataTableUserLinksKey += 1;\r\n },\r\n UPDATE_USER_LINKS(state, payload) {\r\n const parentID = payload.parentID;\r\n const list = payload.list;\r\n\r\n if (!parentID) {\r\n return;\r\n }\r\n\r\n const user = this.state.users.find(({ userID }) => userID === parentID);\r\n\r\n const lst = [];\r\n\r\n if (user) {\r\n if (list) {\r\n list.forEach((item) => {\r\n const userLink = {\r\n userLinkID: item.UserLinkID,\r\n parentID: item.ParentID,\r\n userID: item.UserID,\r\n linkName: item.LinkName,\r\n orderInList: item.OrderInList,\r\n };\r\n\r\n lst.push(userLink);\r\n });\r\n }\r\n\r\n user.userLinks = lst;\r\n }\r\n },\r\n\r\n // Stats\r\n\r\n SET_STATS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.stats = [];\r\n return;\r\n }\r\n\r\n let stats = list.map((o) => ({\r\n title: o.Title,\r\n statValue: o.StatValue,\r\n updatedDate: o.UpdatedDate,\r\n }));\r\n\r\n stats.forEach((item) => {\r\n if (item.updatedDate) {\r\n if (item.updatedDate != null && item.updatedDate != undefined) {\r\n var value = new Date(\r\n parseInt(\r\n item.updatedDate.toString().replace(/(^.*\\()|([+-].*$)/g, \"\")\r\n )\r\n );\r\n\r\n if (!isNaN(value)) {\r\n item.updatedDate =\r\n value.getMonth() +\r\n 1 +\r\n \"/\" +\r\n value.getDate() +\r\n \"/\" +\r\n value.getFullYear();\r\n }\r\n }\r\n }\r\n });\r\n\r\n state.stats = stats;\r\n },\r\n\r\n // UI\r\n\r\n SHOW_SAW_CALC_DRAWER(state, show) {\r\n state.sawCalcDrawer = show;\r\n },\r\n GET_IMAGES(state, images) {\r\n const imagesList = [];\r\n\r\n images.forEach((image) => {\r\n imagesList.push({\r\n page: image.Page,\r\n name: image.Name,\r\n fileName: image.FileName,\r\n });\r\n });\r\n\r\n const homeCover = imagesList.filter(\r\n (item) => item.page === \"Home\" && item.name === \"Cover\"\r\n );\r\n\r\n if (homeCover && homeCover.length == 1) {\r\n state.images.home.cover.fileName = homeCover[0].fileName;\r\n }\r\n },\r\n SET_IMAGE_SOURCE(state, file) {\r\n if (file.id === \"homeCover\" && file.image != null) {\r\n state.images.home.cover.data = imageConversion.dataBase64 + file.data;\r\n }\r\n },\r\n UPDATE_IMAGE(state, payload) {\r\n const page = payload.page;\r\n const name = payload.name;\r\n const fileName = payload.fileName;\r\n const data = payload.data;\r\n\r\n if (page === \"Home\") {\r\n if (name === \"Cover\") {\r\n state.images.home.cover.fileName = fileName;\r\n state.images.home.cover.data = data;\r\n }\r\n }\r\n },\r\n IMAGE_LOADING(state, payload) {\r\n const page = payload.page;\r\n const name = payload.name;\r\n\r\n if (page === \"Home\") {\r\n if (name === \"Cover\") {\r\n state.images.home.cover.loading = payload.loading;\r\n }\r\n }\r\n },\r\n SHOW_DATA_TABLE_SETTINGS_DIALOG(state, show) {\r\n state.dataTableSettingsDialog.show = show;\r\n },\r\n SHOW_DATA_TABLE_UOM_SETTINGS_DIALOG(state, show) {\r\n state.dataTableUOMSettingsDialog.show = show;\r\n },\r\n RELOAD_DATA_TABLE_SETTINGS_COMPONENT(state) {\r\n state.dataTableSettingsKey += 1;\r\n },\r\n RELOAD_DATA_TABLE_UOM_SETTINGS_COMPONENT(state) {\r\n state.dataTableUOMSettingsKey += 1;\r\n },\r\n\r\n // Admin\r\n\r\n // Machines\r\n\r\n SET_MACHINES_ADMIN(state, list) {\r\n if (!list || list.length == 0) {\r\n state.machinesAdmin = [];\r\n return;\r\n }\r\n\r\n let machines = list.map((o) => ({\r\n machineID: o.MachineID,\r\n manufacturerID: o.ManufacturerID,\r\n manufacturerName: o.ManufacturerName,\r\n model: o.Model,\r\n bladeWidthIn: o.BladeWidthIn,\r\n bladeWidthFr: o.BladeWidthFr,\r\n bladeWidthMetric: o.BladeWidthMetric,\r\n bladeThicknessImperial: o.BladeThicknessImperial,\r\n bladeThicknessMetric: o.BladeThicknessMetric,\r\n bladeLengthFt: o.BladeLengthFt,\r\n bladeLengthIn: o.BladeLengthIn,\r\n bladeLengthFr: o.BladeLengthFr,\r\n bladeLengthImperial: o.BladeLengthImperial,\r\n bladeLengthMetric: o.BladeLengthMetric,\r\n hortizontal: o.Hortizontal,\r\n scissorPivot: o.ScissorPivot,\r\n cantedHead: o.CantedHead,\r\n bandSpeedMinImperial: o.BandSpeedMinImperial,\r\n bandSpeedMaxImperial: o.BandSpeedMaxImperial,\r\n bandSpeedMinMetric: o.BandSpeedMinMetric,\r\n bandSpeedMaxMetric: o.BandSpeedMaxMetric,\r\n }));\r\n\r\n machines.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.model.toLowerCase();\r\n var y = b.model.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.machinesAdmin = machines;\r\n },\r\n SET_MACHINES_ADMIN_SETTINGS(state, payload) {\r\n state.machinesAdminSettings = payload;\r\n },\r\n\r\n // Materials\r\n\r\n SET_MATERIALS_ADMIN(state) {\r\n state.materialsAdmin = [];\r\n\r\n let materialsAdmin = state.materials.map((o) => ({\r\n id: o.id,\r\n designation: o.designation,\r\n materialStandardID: o.materialStandardID,\r\n uns: o.uns,\r\n unsCategoryID: o.unsCategoryID,\r\n unsAlloyGroupID: o.unsAlloyGroupID,\r\n sawCalcGroupID: o.sawCalcGroupID,\r\n compositeUNS: o.compositeUNS,\r\n unsGeneralDescriptionID: o.unsGeneralDescriptionID,\r\n subCategoryID: o.subCategoryID,\r\n quickSearch: o.quickSearch,\r\n orderInList: o.orderInList,\r\n }));\r\n\r\n state.materialStandards.forEach((item) => {\r\n const list = materialsAdmin.filter(\r\n (itm) => itm.materialStandardID == item.id\r\n );\r\n\r\n if (list) {\r\n for (let i = 0; i < list.length; i++) {\r\n list[i].materialStandard = item.value;\r\n }\r\n }\r\n });\r\n\r\n state.unsCategories.forEach((item) => {\r\n const list = materialsAdmin.filter((itm) => itm.unsCategoryID == item.id);\r\n\r\n if (list) {\r\n for (let i = 0; i < list.length; i++) {\r\n list[i].unsCategory = item.value;\r\n }\r\n }\r\n });\r\n\r\n state.unsAlloyGroups.forEach((item) => {\r\n const list = materialsAdmin.filter(\r\n (itm) => itm.unsAlloyGroupID == item.id\r\n );\r\n\r\n if (list) {\r\n for (let i = 0; i < list.length; i++) {\r\n list[i].unsAlloyGroup = item.value;\r\n }\r\n }\r\n });\r\n\r\n state.sawCalcGroups.forEach((item) => {\r\n const list = materialsAdmin.filter(\r\n (itm) => itm.sawCalcGroupID == item.sawCalcGroupID\r\n );\r\n\r\n if (list) {\r\n for (let i = 0; i < list.length; i++) {\r\n const itm = list[i];\r\n\r\n itm.defaultHBHardness = item.defaultHBHardness;\r\n itm.machinabilityGroupBiMetal = item.machinabilityGroupBiMetal;\r\n itm.machinabilityGroupCarbide = item.machinabilityGroupCarbide;\r\n itm.machinabilityRating = item.machinabilityRating;\r\n itm.sawCalcGroupName = item.sawCalcGroupName;\r\n itm.sawCalcGroupDescription = item.sawCalcGroupDescription;\r\n }\r\n }\r\n });\r\n\r\n state.unsGeneralDescriptions.forEach((item) => {\r\n const list = materialsAdmin.filter(\r\n (itm) => itm.unsGeneralDescriptionID == item.id\r\n );\r\n\r\n if (list) {\r\n for (let i = 0; i < list.length; i++) {\r\n list[i].unsGeneralDescription = item.value;\r\n }\r\n }\r\n });\r\n\r\n state.subCategories.forEach((item) => {\r\n const list = materialsAdmin.filter((itm) => itm.subCategoryID == item.id);\r\n\r\n if (list) {\r\n for (let i = 0; i < list.length; i++) {\r\n list[i].subCategory = item.value;\r\n }\r\n }\r\n });\r\n\r\n state.materialsAdmin = materialsAdmin;\r\n },\r\n SET_MATERIALS_ADMIN_SETTINGS(state, payload) {\r\n state.materialsAdminSettings = payload;\r\n },\r\n SET_MATERIALS_LOADING(state, loading) {\r\n state.materialsLoading = loading;\r\n },\r\n RELOAD_MATERIAL_DIALOG_COMPONENT(state) {\r\n state.materialDialogKey += 1;\r\n },\r\n SHOW_DATA_TABLE_CHEMICAL_COMPOSITIONS_DIALOG(state, show) {\r\n state.dataTableChemicalCompositionsDialog.show = show;\r\n },\r\n RELOAD_CHEMICAL_COMPOSITIONS_DIALOG_COMPONENT(state) {\r\n state.chemicalCompositionsDialogKey += 1;\r\n },\r\n\r\n // ProductLines\r\n\r\n SET_PRODUCT_LINES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.productLines = [];\r\n return;\r\n }\r\n\r\n let productLines = list.map((o) => ({\r\n productLineID: o.ProductLineID,\r\n productFamilyID: o.ProductFamilyID,\r\n productFamily: o.ProductFamily,\r\n productTypeID: o.ProductTypeID,\r\n productType: o.ProductType,\r\n pitchLevel: o.PitchLevel,\r\n tpi: o.TPI,\r\n averagePitch: o.AveragePitch.toFixed(4),\r\n averageGulletArea: o.AverageGulletArea.toFixed(4),\r\n gulletFill: o.GulletFill.toFixed(2),\r\n bwl1: o.BWL1,\r\n bwl2: o.BWL2,\r\n bwl3: o.BWL3,\r\n bwl4: o.BWL4,\r\n bwl5: o.BWL5,\r\n bwl6: o.BWL6,\r\n bwl7: o.BWL7,\r\n bwl8: o.BWL8,\r\n active: o.Active,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n productLines.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.productFamily.toLowerCase();\r\n var y = b.productFamily.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.productLines = productLines;\r\n },\r\n SET_PRODUCT_LINES_SETTINGS(state, payload) {\r\n state.productLinesSettings = payload;\r\n },\r\n RELOAD_PRODUCT_LINES_DIALOG_COMPONENT(state) {\r\n state.productLineDialogKey += 1;\r\n },\r\n\r\n // ProductTypes\r\n\r\n SET_PRODUCT_TYPES(state, list) {\r\n if (!list || list.length == 0) {\r\n state.productTypes = [];\r\n return;\r\n }\r\n\r\n let productTypes = list.map((o) => ({\r\n productTypeID: o.ProductTypeID,\r\n productTypeName: o.ProductTypeName,\r\n productTypeDescription: o.ProductTypeDescription,\r\n orderInList: o.OrderInList,\r\n }));\r\n\r\n productTypes.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.productTypeName.toLowerCase();\r\n var y = b.productTypeName.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.productTypes = productTypes;\r\n },\r\n\r\n // Recommendations\r\n\r\n SET_RECOMMENDATIONS_ADMIN(state, list) {\r\n if (!list || list.length == 0) {\r\n state.recommendationsAdmin = [];\r\n return;\r\n }\r\n\r\n let recommendationsAdmin = list.map((o) => ({\r\n recommendationID: o.RecommendationID,\r\n uom: o.UOM,\r\n manufacturerName: o.ManufacturerName,\r\n model: o.Model,\r\n designation: o.Designation,\r\n hardness: o.Hardness,\r\n shape: o.Shape,\r\n dimensions: o.Dimensions,\r\n quantity: o.Quantity,\r\n arrangement: o.Arrangement,\r\n lubrication: o.Lubrication,\r\n pinching: o.Pinching,\r\n blade: o.Blade,\r\n specsImperial: o.SpecsImperial,\r\n specsMetric: o.SpecsMetric,\r\n bandSpeedImperial: o.BandSpeedImperial,\r\n bandSpeedMetric: o.BandSpeedMetric,\r\n feedRateImperial: o.FeedRateImperial,\r\n feedRateMetric: o.FeedRateMetric,\r\n chipLoadImperial: o.ChipLoadImperial,\r\n chipLoadMetric: o.ChipLoadMetric,\r\n cuttingRateImperial: o.CuttingRateImperial,\r\n cuttingRateMetric: o.CuttingRateMetric,\r\n cutTime: o.CutTime,\r\n createdDate: o.CreatedDate,\r\n }));\r\n\r\n state.recommendationsAdmin = recommendationsAdmin;\r\n },\r\n SET_RECOMMENDATIONS_ADMIN_SETTINGS(state, payload) {\r\n state.recommendationsAdminSettings = payload;\r\n },\r\n\r\n // CuttingCharts\r\n\r\n SET_CUTTING_CHARTS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.cuttingCharts = [];\r\n return;\r\n }\r\n\r\n let cuttingCharts = list.map((o) => ({\r\n cuttingChartID: o.CuttingChartID,\r\n cuttingChartName: o.CuttingChartName,\r\n userID: o.UserID,\r\n metric: o.Metric,\r\n machine: o.Machine,\r\n productImperial: o.ProductImperial,\r\n productMetric: o.ProductMetric,\r\n dimensionMin: o.DimensionMin,\r\n dimensionMax: o.DimensionMax,\r\n dimensionRange: o.DimensionRange,\r\n cuttingChartMaterialGroups: o.CuttingChartMaterialGroups,\r\n }));\r\n\r\n state.cuttingCharts = cuttingCharts;\r\n },\r\n SET_CUTTING_CHARTS_SETTINGS(state, payload) {\r\n state.cuttingChartsSettings = payload;\r\n },\r\n\r\n // Parameters\r\n\r\n SET_PARAMETERS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.parameters = [];\r\n return;\r\n }\r\n\r\n let parameters = list.map((o) => ({\r\n parameterID: o.ParameterID,\r\n parameterName: o.ParameterName,\r\n parameterValue: o.ParameterValue,\r\n parameterDescription: o.ParameterDescription,\r\n }));\r\n\r\n parameters.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.parameterName.toLowerCase();\r\n var y = b.parameterName.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.parameters = parameters;\r\n },\r\n\r\n SET_PRODUCT_SELECTIONS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.productSelections = [];\r\n return;\r\n }\r\n\r\n let productSelections = list.map((o) => ({\r\n productSelectionID: o.ProductSelectionID,\r\n applicationScenario: o.ApplicationScenario,\r\n good: o.Good,\r\n better: o.Better,\r\n best: o.Best,\r\n }));\r\n\r\n productSelections.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.applicationScenario;\r\n var y = b.applicationScenario;\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n state.productSelections = productSelections;\r\n },\r\n\r\n SET_PRODUCT_RECOMMENDATIONS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.parameters = [];\r\n return;\r\n }\r\n\r\n let productRecommendations = list.map((o) => ({\r\n productRecommendationID: o.ProductRecommendationID,\r\n mrg: o.MRG,\r\n columnIndex: o.ColumnIndex,\r\n columnName: o.ColumnName,\r\n productType: o.ProductType,\r\n }));\r\n\r\n state.productRecommendations = productRecommendations;\r\n },\r\n\r\n // User\r\n\r\n // Logo\r\n\r\n SET_USER_LOGO_SOURCE(state, file) {\r\n let imageID = 0;\r\n let fileName = \"\";\r\n let userLogoUrl = \"\";\r\n\r\n if (file.imageID && file.fileName) {\r\n imageID = file.imageID;\r\n fileName = file.fileName;\r\n }\r\n\r\n if (file.url) {\r\n userLogoUrl = file.url;\r\n } else if (file.data) {\r\n userLogoUrl = imageConversion.dataBase64 + file.data;\r\n }\r\n\r\n if (!userLogoUrl) {\r\n imageID = 0;\r\n fileName = \"\";\r\n }\r\n\r\n state.user.imageID = imageID;\r\n state.user.fileName = fileName;\r\n state.userLogoUrl = userLogoUrl;\r\n },\r\n SET_USER_LOGO_URL(state, data) {\r\n state.userLogoUrl = imageConversion.dataBase64 + data;\r\n },\r\n\r\n // Machines\r\n\r\n SET_MACHINES_USER_SETTINGS(state, payload) {\r\n state.machinesUserSettings = payload;\r\n },\r\n SET_USER_MACHINE_IMAGE_SOURCE(state, file) {\r\n const machine = state.userMachines.find(\r\n (item) => item.userMachineID == file.id\r\n );\r\n\r\n if (machine) {\r\n if (file.imageID) {\r\n machine.imageID = file.imageID;\r\n }\r\n\r\n const imageID = machine.imageID;\r\n machine.imageID = null;\r\n\r\n if (file.url) {\r\n machine.url = file.url;\r\n } else if (file.data) {\r\n machine.url = imageConversion.dataBase64 + file.data;\r\n } else {\r\n machine.url = null;\r\n }\r\n\r\n machine.imageID = imageID;\r\n\r\n if (!machine.url) {\r\n machine.imageID = 0;\r\n }\r\n }\r\n },\r\n\r\n // Materials\r\n\r\n SET_MATERIALS_USER_SETTINGS(state, payload) {\r\n state.materialsUserSettings = payload;\r\n },\r\n\r\n // UserRecommendations\r\n\r\n SET_USER_RECOMMENDATIONS(state, list) {\r\n if (!list || list.length == 0) {\r\n state.userRecommendations = [];\r\n return;\r\n }\r\n\r\n let userRecommendations = list.map((o) => ({\r\n userRecommendationID: o.UserRecommendationID,\r\n userID: o.UserID,\r\n userMachineID: o.UserMachineID,\r\n userMaterialID: o.UserMaterialID,\r\n recommendationName: o.RecommendationName,\r\n input: o.Input,\r\n recommendation: o.Recommendation,\r\n custom: o.Custom,\r\n costCalculation: o.CostCalculation,\r\n }));\r\n\r\n userRecommendations.sort(function(a, b) {\r\n if (!a.model || !b.model) {\r\n return 0;\r\n }\r\n\r\n var x = a.recommendationName.toLowerCase();\r\n var y = b.recommendationName.toLowerCase();\r\n if (x < y) {\r\n return -1;\r\n }\r\n if (x > y) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n userRecommendations.forEach((item) => {\r\n item.input = JSON.parse(item.input);\r\n item.recommendation = JSON.parse(item.recommendation);\r\n item.custom = JSON.parse(item.custom);\r\n item.costCalculation = JSON.parse(item.costCalculation);\r\n });\r\n\r\n state.userRecommendations = userRecommendations;\r\n },\r\n SET_RECOMMENDATIONS_USER_SETTINGS(state, payload) {\r\n state.recommendationsUserSettings = payload;\r\n },\r\n};\r\n","import { openDB } from \"idb\";\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nconst dbPromise = (_) => {\r\n if (!(\"indexedDB\" in window)) {\r\n throw new Error(\"Browser does not support IndexedDB\");\r\n }\r\n\r\n return openDB(\"SawCalcDB\", 1, {\r\n upgrade(db) {\r\n if (!db.objectStoreNames.contains(\"settings\")) {\r\n db.createObjectStore(\"settings\");\r\n }\r\n },\r\n });\r\n};\r\n\r\nconst get = async (storeName, key) => {\r\n try {\r\n const db = await dbPromise();\r\n const tx = db.transaction(storeName, \"readonly\");\r\n const store = tx.objectStore(storeName);\r\n\r\n return store.get(key);\r\n } catch (error) {\r\n return error;\r\n }\r\n};\r\n\r\nconst save = async (storeName, item) => {\r\n try {\r\n const db = await dbPromise();\r\n const tx = db.transaction(storeName, \"readwrite\");\r\n const store = tx.objectStore(storeName);\r\n\r\n store.put(item.value, item.key);\r\n\r\n return tx.complete;\r\n } catch (error) {\r\n return error;\r\n }\r\n};\r\n\r\nexport default { get, save };\r\n","import idb from \"@/services/indexedDB\";\r\nimport axios from \"axios\";\r\nimport { config } from \"@/config/ConfigSettings\";\r\nimport { api } from \"@/helpers/ApiCalls\";\r\nimport { returnCode } from \"@/constants/ReturnCode\";\r\nimport { calculations } from \"@/helpers/Calculations\";\r\nimport { machineDetails } from \"@/helpers/MachineDetails\";\r\nimport { imageConversion } from \"@/helpers/ImageConversion\";\r\nimport { recommendations } from \"@/constants/Recommendations\";\r\nexport default {\r\n // eslint-disable-next-line no-unused-vars\r\n storeInit({ commit, dispatch, getters }) {\r\n dispatch(\"getSettings\");\r\n dispatch(\"setDefaultLanguage\").then(dispatch(\"updateControlsByLanguage\"));\r\n\r\n dispatch(\"getLanguages\", config.test).then(\r\n (response) => {\r\n if (response.code == returnCode.Success) {\r\n dispatch(\"getLanguageSettings\");\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n dispatch(\"getImages\");\r\n },\r\n async getSettings({ commit, dispatch }) {\r\n try {\r\n const countries = await idb.get(\"settings\", \"countries\");\r\n if (!countries || countries.length == 0) {\r\n dispatch(\"getCountries\");\r\n } else {\r\n commit(\"SET_COUNTRIES\", countries);\r\n }\r\n\r\n const user = await idb.get(\"settings\", \"user\");\r\n dispatch(\"updateUser\", { user: user, save: false });\r\n\r\n // Inputs\r\n\r\n \r\n const metric = await idb.get(\"settings\", \"metric\");\r\n commit(\"CHANGE_INPUT_UOM\", metric != null ? metric : 0);\r\n\r\n const currency = await idb.get(\"settings\", \"currency\");\r\n commit(\"CHANGE_INPUT_CURRENCY\", currency != null ? currency : 0);\r\n\r\n // Machines\r\n\r\n const manufacturers = await idb.get(\"settings\", \"manufacturers\");\r\n commit(\"SET_MANUFACTURERS\", manufacturers);\r\n\r\n const machines = await idb.get(\"settings\", \"machines\");\r\n commit(\"SET_MACHINES\", machines);\r\n\r\n const bladeWidthImperialList = await idb.get(\r\n \"settings\",\r\n \"bladeWidthImperialList\"\r\n );\r\n commit(\"SET_BLADE_WIDTH_IMPERIAL_LIST\", bladeWidthImperialList);\r\n\r\n const bladeWidthMetricList = await idb.get(\r\n \"settings\",\r\n \"bladeWidthMetricList\"\r\n );\r\n commit(\"SET_BLADE_WIDTH_METRIC_LIST\", bladeWidthMetricList);\r\n\r\n const bladeThicknessImperialList = await idb.get(\r\n \"settings\",\r\n \"bladeThicknessImperialList\"\r\n );\r\n commit(\"SET_BLADE_THICKNESS_IMPERIAL_LIST\", bladeThicknessImperialList);\r\n\r\n const bladeThicknessMetricList = await idb.get(\r\n \"settings\",\r\n \"bladeThicknessMetricList\"\r\n );\r\n commit(\"SET_BLADE_THICKNESS_METRIC_LIST\", bladeThicknessMetricList);\r\n\r\n const bladeLengthFtList = await idb.get(\"settings\", \"bladeLengthFtList\");\r\n commit(\"SET_BLADE_LENGTH_FT_LIST\", bladeLengthFtList);\r\n\r\n const bladeLengthInList = await idb.get(\"settings\", \"bladeLengthInList\");\r\n commit(\"SET_BLADE_LENGTH_IN_LIST\", bladeLengthInList);\r\n\r\n const bladeLengthFrList = await idb.get(\"settings\", \"bladeLengthFrList\");\r\n commit(\"SET_BLADE_LENGTH_FR_LIST\", bladeLengthFrList);\r\n\r\n const bladeLengthMetricList = await idb.get(\r\n \"settings\",\r\n \"bladeLengthMetricList\"\r\n );\r\n commit(\"SET_BLADE_LENGTH_METRIC_LIST\", bladeLengthMetricList);\r\n\r\n const userMachines = await idb.get(\"settings\", \"userMachines\");\r\n commit(\"SET_USER_MACHINES\", userMachines);\r\n\r\n if (\r\n manufacturers != null &&\r\n manufacturers.length > 0 &&\r\n machines != null &&\r\n machines.length > 0 &&\r\n bladeWidthImperialList != null &&\r\n bladeWidthImperialList.length > 0 &&\r\n bladeWidthMetricList != null &&\r\n bladeWidthMetricList.length > 0 &&\r\n bladeThicknessImperialList != null &&\r\n bladeThicknessImperialList.length > 0 &&\r\n bladeThicknessMetricList != null &&\r\n bladeThicknessMetricList.length > 0 &&\r\n bladeLengthFtList != null &&\r\n bladeLengthFtList.length > 0 &&\r\n bladeLengthInList != null &&\r\n bladeLengthInList.length > 0 &&\r\n bladeLengthFrList != null &&\r\n bladeLengthFrList.length > 0 &&\r\n bladeLengthMetricList != null &&\r\n bladeLengthMetricList.length > 0\r\n ) {\r\n commit(\"SET_MACHINES_READY\", true);\r\n } else {\r\n commit(\"SET_MACHINES_READY\", false);\r\n }\r\n\r\n // Token\r\n\r\n const token = await idb.get(\"settings\", \"token\");\r\n commit(\"SET_TOKEN\", token != null ? token : \"\");\r\n\r\n // Materials\r\n\r\n const materialStandards = await idb.get(\"settings\", \"materialStandards\");\r\n commit(\"SET_MATERIAL_STANDARDS\", materialStandards);\r\n\r\n const unsCategories = await idb.get(\"settings\", \"unsCategories\");\r\n commit(\"SET_UNS_CATEGORIES\", unsCategories);\r\n\r\n const unsAlloyGroups = await idb.get(\"settings\", \"unsAlloyGroups\");\r\n commit(\"SET_UNS_ALLOY_GROUPS\", unsAlloyGroups);\r\n\r\n const sawCalcGroups = await idb.get(\"settings\", \"sawCalcGroups\");\r\n commit(\"SET_SAW_CALC_GROUPS\", sawCalcGroups);\r\n\r\n const unsGeneralDescriptions = await idb.get(\r\n \"settings\",\r\n \"unsGeneralDescriptions\"\r\n );\r\n commit(\"SET_UNS_GENERAL_DESCRIPTIONS\", unsGeneralDescriptions);\r\n\r\n const subCategories = await idb.get(\"settings\", \"subCategories\");\r\n commit(\"SET_SUB_CATEGORIES\", subCategories);\r\n\r\n const materials = await idb.get(\"settings\", \"materials\");\r\n commit(\"SET_MATERIALS\", materials);\r\n\r\n const scales = await idb.get(\"settings\", \"scales\");\r\n commit(\"SET_SCALES\", scales);\r\n\r\n const userMaterials = await idb.get(\"settings\", \"userMaterials\");\r\n commit(\"SET_USER_MATERIALS\", userMaterials);\r\n\r\n if (\r\n materialStandards != null &&\r\n materialStandards.length > 0 &&\r\n unsCategories != null &&\r\n unsCategories.length > 0 &&\r\n unsAlloyGroups != null &&\r\n unsAlloyGroups.length > 0 &&\r\n sawCalcGroups != null &&\r\n sawCalcGroups.length > 0 &&\r\n unsGeneralDescriptions != null &&\r\n unsGeneralDescriptions.length > 0 &&\r\n subCategories != null &&\r\n subCategories.length > 0 &&\r\n materials != null &&\r\n materials.length > 0 &&\r\n scales != null &&\r\n scales.length > 0\r\n ) {\r\n commit(\"SET_MATERIALS_READY\", true);\r\n } else {\r\n commit(\"SET_MATERIALS_READY\", false);\r\n }\r\n\r\n // Dimensions\r\n\r\n const iBeamGroups = await idb.get(\"settings\", \"iBeamGroups\");\r\n commit(\"SET_IBEAM_GROUPS\", iBeamGroups);\r\n\r\n const iBeamStandards = await idb.get(\"settings\", \"iBeamStandards\");\r\n commit(\"SET_IBEAM_STANDARDS\", iBeamStandards);\r\n\r\n if (\r\n iBeamGroups != null &&\r\n iBeamGroups.length > 0 &&\r\n iBeamStandards != null &&\r\n iBeamStandards.length > 0\r\n ) {\r\n commit(\"SET_DIMENSIONS_READY\", true);\r\n } else {\r\n commit(\"SET_DIMENSIONS_READY\", false);\r\n }\r\n\r\n commit(\"SET_VISING_READY\", true);\r\n\r\n commit(\"SET_CONDITIONS_READY\", true);\r\n\r\n // Product Lines, BWL Refs\r\n\r\n const productLinesShort = await idb.get(\"settings\", \"productLinesShort\");\r\n commit(\"SET_PRODUCT_LINES_SHORT\", productLinesShort);\r\n\r\n const bwlRefs = await idb.get(\"settings\", \"bwlRefs\");\r\n commit(\"SET_BWL_REFS\", bwlRefs);\r\n\r\n if (\r\n productLinesShort != null &&\r\n productLinesShort.length > 0 &&\r\n bwlRefs != null &&\r\n bwlRefs.length > 0\r\n ) {\r\n commit(\"SET_PRODUCT_LINES_READY\", true);\r\n } else {\r\n commit(\"SET_PRODUCT_LINES_READY\", false);\r\n }\r\n\r\n // Settings\r\n commit(\"SET_SETTINGS_LOADED\", true);\r\n\r\n // MachinesAdminSettings\r\n const machinesAdminSettings = await idb.get(\r\n \"settings\",\r\n \"machinesAdminSettings\"\r\n );\r\n commit(\"SET_MACHINES_ADMIN_SETTINGS\", machinesAdminSettings);\r\n\r\n // MachinesUserSettings\r\n const machinesUserSettings = await idb.get(\r\n \"settings\",\r\n \"machinesUserSettings\"\r\n );\r\n commit(\"SET_MACHINES_USER_SETTINGS\", machinesUserSettings);\r\n\r\n // MaterialsAdminSettings\r\n const materialsAdminSettings = await idb.get(\r\n \"settings\",\r\n \"materialsAdminSettings\"\r\n );\r\n commit(\"SET_MATERIALS_ADMIN_SETTINGS\", materialsAdminSettings);\r\n\r\n // MaterialsUserSettings\r\n const materialsUserSettings = await idb.get(\r\n \"settings\",\r\n \"materialsUserSettings\"\r\n );\r\n commit(\"SET_MATERIALS_USER_SETTINGS\", materialsUserSettings);\r\n\r\n // RecommendationsUserSettings\r\n const recommendationsUserSettings = await idb.get(\r\n \"settings\",\r\n \"recommendationsUserSettings\"\r\n );\r\n commit(\"SET_RECOMMENDATIONS_USER_SETTINGS\", recommendationsUserSettings);\r\n\r\n // ProductLinesSettings\r\n const productLinesSettings = await idb.get(\r\n \"settings\",\r\n \"productLinesSettings\"\r\n );\r\n commit(\"SET_PRODUCT_LINES_SETTINGS\", productLinesSettings);\r\n\r\n // RecommendationsAdminSettings\r\n const recommendationsAdminSettings = await idb.get(\r\n \"settings\",\r\n \"recommendationsAdminSettings\"\r\n );\r\n commit(\r\n \"SET_RECOMMENDATIONS_ADMIN_SETTINGS\",\r\n recommendationsAdminSettings\r\n );\r\n\r\n // CuttingChartsSettings\r\n const cuttingChartsSettings = await idb.get(\r\n \"settings\",\r\n \"cuttingChartsSettings\"\r\n );\r\n commit(\"SET_CUTTING_CHARTS_SETTINGS\", cuttingChartsSettings);\r\n } catch (error) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting settings: \" + error);\r\n }\r\n },\r\n async getLanguageSettings({ commit, dispatch, getters }) {\r\n try {\r\n const language = await idb.get(\"settings\", \"language\");\r\n\r\n if (language) {\r\n commit(\"SET_LANG\", language);\r\n\r\n dispatch(\"changeLanguage\", {\r\n language: language,\r\n reload: true,\r\n }).then(\r\n () => {\r\n dispatch(\"updateControlsByLanguage\");\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"changeLanguage\", {\r\n language: getters.language,\r\n reload: true,\r\n }).then(\r\n () => {\r\n dispatch(\"updateControlsByLanguage\");\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n } catch (error) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting settings: \" + error);\r\n }\r\n },\r\n async saveSettings({ commit }, payload) {\r\n const key = payload.key;\r\n const value = payload.value;\r\n\r\n try {\r\n await idb.save(\"settings\", {\r\n key: key,\r\n value: value,\r\n });\r\n\r\n if (key === \"language\") {\r\n commit(\"SET_LANG\", value);\r\n commit(\"UPDATE_NAVIGATION_BY_LANG\", value);\r\n commit(\"UPDATE_FOOTER_BY_LANG\", value);\r\n } else if (key === \"metric\") {\r\n commit(\"CHANGE_INPUT_UOM\", value);\r\n } else if (key === \"currency\") {\r\n commit(\"CHANGE_INPUT_CURRENCY\", value);\r\n } else if (key === \"token\") {\r\n commit(\"SET_TOKEN\", value);\r\n }\r\n } catch (error) {\r\n // eslint-disable-next-line\r\n console.error(\"Error saving language: \" + error);\r\n }\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n async syncRequired({ commit, getters }, payload) {\r\n let required = true;\r\n\r\n if (\r\n !getters.machinesReady ||\r\n !getters.materialsReady ||\r\n !getters.dimensionsReady ||\r\n !getters.visingReady ||\r\n !getters.conditionsReady ||\r\n !getters.productLinesReady\r\n ) {\r\n return required;\r\n }\r\n\r\n const dbSyncSeconds = payload;\r\n let dbSyncDate = await idb.get(\"settings\", \"dbSyncDate\");\r\n\r\n if (dbSyncDate) {\r\n dbSyncDate = new Date(parseInt(dbSyncDate, 10));\r\n const timeFromLastSync = new Date().getTime() - dbSyncDate.getTime();\r\n\r\n if (parseInt(timeFromLastSync / 1000) <= dbSyncSeconds) {\r\n required = false;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise(function(resolve, reject) {\r\n resolve(required);\r\n });\r\n },\r\n\r\n // Languages\r\n\r\n getLanguages({ commit, dispatch, getters }, showAll) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetLanguages/\" + showAll;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_LANGUAGES\", {\r\n languages: res.LanguagesList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingLanguages\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_LANGUAGES\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingLanguages\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting languages: \" + error.response.data\r\n );\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting languages: \" + error);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n setDefaultLanguage({ commit, getters }) {\r\n commit(\"SET_DEFAULT_LANGUAGE\", getters.language);\r\n },\r\n changeLanguage({ commit, dispatch, getters }, payload) {\r\n const language = payload.language;\r\n const reload = payload.reload;\r\n\r\n return new Promise((resolve, reject) => {\r\n if (getters.languages.find((item) => item.locale === language.locale)) {\r\n if (!language.messages || reload) {\r\n const url = config.url() + \"GetLanguage/\" + language.locale;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n language.messages = JSON.parse(res.Json);\r\n\r\n commit(\"CHANGE_INPUT_UOM\", language.uom == 1 ? true : false);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"language\",\r\n value: language,\r\n });\r\n\r\n resolve(res.Description);\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorGettingLanguage\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting language: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting language: \" + error);\r\n reject({\r\n code: returnCode.ErrNetworkError,\r\n message: error,\r\n });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n } else {\r\n dispatch(\"saveSettings\", { key: \"language\", value: language });\r\n resolve();\r\n }\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getTranslation({ commit, getters }, text) {\r\n return new Promise((resolve, reject) => {\r\n const json = getters.language.messages;\r\n const translation = json[\"response\"][text];\r\n\r\n if (translation) {\r\n resolve(translation);\r\n } else {\r\n // eslint-disable-next-line\r\n console.log(\"getTranslation\", text);\r\n reject(\"No translation found\");\r\n }\r\n });\r\n },\r\n\r\n // UI Updates\r\n\r\n updateControlsByLanguage({ commit, getters }) {\r\n commit(\"UPDATE_NAVIGATION_BY_LANG\", getters.language);\r\n commit(\"UPDATE_FOOTER_BY_LANG\", getters.language);\r\n },\r\n\r\n // Recommendation\r\n // Inputs\r\n\r\n resetInputs({ commit, dispatch, getters }) {\r\n commit(\"RESET_INPUTS\");\r\n\r\n dispatch(\"setInputMachine\", null);\r\n dispatch(\"setInputMaterial\", null);\r\n dispatch(\"setInputDimensions\", null);\r\n dispatch(\"setInputVising\", null);\r\n dispatch(\"setInputConditions\", null);\r\n dispatch(\"setToken\", null);\r\n\r\n if (getters.selectedRecommendationForCustom != null) {\r\n dispatch(\"closeCustomRecommendation\");\r\n }\r\n },\r\n updateRecommendations({ dispatch, getters }) {\r\n let valid = false;\r\n\r\n if (\r\n getters.inputMachine.manufacturerName != null &&\r\n getters.inputMaterial.designation != null &&\r\n getters.inputDimensions.shape != null &&\r\n getters.inputVising.arrangement != null &&\r\n getters.inputConditions.lubrication != null\r\n ) {\r\n valid = true;\r\n } else {\r\n dispatch(\"resetOutputs\");\r\n }\r\n\r\n if (valid) {\r\n dispatch(\"getRecommendations\");\r\n }\r\n },\r\n\r\n // Cost Calculations\r\n\r\n updateCostCalculation({ commit, getters }, payload) {\r\n const cutTime = payload.cutTime;\r\n const cuttingRate = payload.cuttingRate;\r\n const costCalculation = payload.costCalculation;\r\n const index = payload.recommendationIndex;\r\n return new Promise((resolve, reject) => {\r\n if (costCalculation == undefined) {\r\n reject({ status: false });\r\n return;\r\n }\r\n\r\n if (cutTime == undefined || cutTime == 0) {\r\n costCalculation.costsPerCut = null;\r\n costCalculation.costsPerMeasurement = null;\r\n\r\n commit(\"UPDATE_COST_CALCULATION\", {\r\n costCalculation: costCalculation,\r\n index: index,\r\n });\r\n\r\n resolve({ status: true, costCalculation: costCalculation });\r\n return;\r\n }\r\n\r\n const pricePerBlade = costCalculation.pricePerBlade\r\n ? parseFloat(costCalculation.pricePerBlade)\r\n : 0;\r\n const laborBurdenRate = costCalculation.laborBurdenRate\r\n ? parseFloat(costCalculation.laborBurdenRate)\r\n : 0;\r\n\r\n if (costCalculation.bladeLife == 0) {\r\n costCalculation.costsPerCut = null;\r\n costCalculation.costsPerMeasurement = null;\r\n\r\n const cutsPerBlade = costCalculation.cutsPerBlade\r\n ? parseInt(costCalculation.cutsPerBlade)\r\n : 0;\r\n\r\n let valid = false;\r\n if (\r\n pricePerBlade != undefined &&\r\n pricePerBlade > 0 &&\r\n cutsPerBlade != undefined &&\r\n cutsPerBlade > 0 &&\r\n laborBurdenRate != undefined &&\r\n laborBurdenRate > 0\r\n ) {\r\n valid = true;\r\n }\r\n // console.log(\"valid\", valid);\r\n\r\n if (valid) {\r\n const toolCostPerCut = pricePerBlade / cutsPerBlade;\r\n\r\n const cutsPerHour = (60 * 60) / cutTime;\r\n\r\n const hoursPerLife = cutsPerBlade / cutsPerHour;\r\n\r\n const costPerCut = (laborBurdenRate * hoursPerLife) / cutsPerBlade;\r\n\r\n const totalCostPerCut = toolCostPerCut + costPerCut;\r\n costCalculation.costsPerCut = totalCostPerCut.toFixed(2);\r\n\r\n costCalculation.costsPerMeasurement = (\r\n costCalculation.costsPerCut /\r\n ((cutTime / 60) * cuttingRate)\r\n ).toFixed(2);\r\n }\r\n\r\n commit(\"UPDATE_COST_CALCULATION\", {\r\n costCalculation: costCalculation,\r\n index: index,\r\n });\r\n\r\n resolve({ status: true, costCalculation: costCalculation });\r\n } else {\r\n costCalculation.costsPerMeasurement = null;\r\n costCalculation.costsPerCut = null;\r\n\r\n const inputDimensions = getters.inputDimensions;\r\n\r\n let valid = false;\r\n if (\r\n inputDimensions != undefined &&\r\n inputDimensions != null &&\r\n inputDimensions.measurement != undefined &&\r\n inputDimensions.measurement != null &&\r\n pricePerBlade != undefined &&\r\n pricePerBlade > 0 &&\r\n costCalculation.measurement != undefined &&\r\n costCalculation.measurement != null &&\r\n laborBurdenRate != undefined &&\r\n laborBurdenRate > 0\r\n ) {\r\n valid = true;\r\n }\r\n // console.log(\"inputDimensions\", inputDimensions);\r\n\r\n if (valid) {\r\n let inputDimensionsMeasurement =\r\n getters.inputUOM == 0\r\n ? inputDimensions.measurement.measurementImperial\r\n : inputDimensions.measurement.measurementMetric;\r\n inputDimensionsMeasurement = inputDimensionsMeasurement\r\n ? parseFloat(inputDimensionsMeasurement)\r\n : 0;\r\n // console.log(\"inputDimensionsMeasurement\", inputDimensionsMeasurement);\r\n\r\n let costCalculationMeasurement =\r\n getters.inputUOM == 0\r\n ? costCalculation.measurement.measurementImperial\r\n : costCalculation.measurement.measurementMetric;\r\n costCalculationMeasurement = costCalculationMeasurement\r\n ? parseFloat(costCalculationMeasurement)\r\n : 0;\r\n // console.log(\"costCalculationMeasurement\", costCalculationMeasurement);\r\n\r\n if (\r\n costCalculationMeasurement != 0 &&\r\n inputDimensionsMeasurement != 0\r\n ) {\r\n const totalCuts =\r\n costCalculationMeasurement / inputDimensionsMeasurement;\r\n\r\n const totalCutTime = totalCuts * cutTime;\r\n const totalCutTimeHours = totalCutTime / (60 * 60);\r\n\r\n const costLabor = totalCutTimeHours * laborBurdenRate;\r\n\r\n const machineCostPerMeasurement =\r\n costLabor / costCalculationMeasurement;\r\n\r\n const toolCostPerMeasurement =\r\n pricePerBlade / costCalculationMeasurement;\r\n\r\n const totalCostPerMeasurement =\r\n toolCostPerMeasurement + machineCostPerMeasurement;\r\n\r\n const costsPerCut =\r\n totalCostPerMeasurement * inputDimensionsMeasurement;\r\n\r\n costCalculation.costsPerMeasurement = totalCostPerMeasurement.toFixed(\r\n 2\r\n );\r\n\r\n costCalculation.costsPerCut = costsPerCut.toFixed(2);\r\n }\r\n }\r\n\r\n commit(\"UPDATE_COST_CALCULATION\", {\r\n costCalculation: costCalculation,\r\n index: index,\r\n });\r\n\r\n resolve({ status: true, costCalculation: costCalculation });\r\n }\r\n });\r\n },\r\n\r\n // UOM\r\n\r\n async changeInputUOM({ dispatch }, metric) {\r\n await dispatch(\"saveSettings\", { key: \"metric\", value: metric });\r\n dispatch(\"reloadMachineComponent\", metric);\r\n dispatch(\"updateCostCalculations\");\r\n },\r\n changeInputCurrency({ dispatch }, currency) {\r\n dispatch(\"saveSettings\", { key: \"currency\", value: currency });\r\n },\r\n\r\n // Machines\r\n\r\n showMachineSelectorDialog({ commit }, show) {\r\n commit(\"SHOW_MACHINE_SELECTOR_DIALOG\", show);\r\n },\r\n setInputMachine({ commit, dispatch }, payload) {\r\n commit(\"SET_INPUT_MACHINE\", payload);\r\n dispatch(\"updateRecommendations\");\r\n },\r\n setSavedInputMachine({ commit }, payload) {\r\n commit(\"SET_INPUT_MACHINE\", payload);\r\n commit(\"SET_SAVED_INPUT_MACHINE\", payload);\r\n },\r\n reloadMachineComponent({ commit }, metric) {\r\n if (!metric) {\r\n commit(\"RELOAD_MACHINE_IMPERIAL_COMPONENT\");\r\n } else {\r\n commit(\"RELOAD_MACHINE_METRIC_COMPONENT\");\r\n }\r\n },\r\n setMachinesReady({ commit }, payload) {\r\n commit(\"SET_MACHINES_READY\", payload);\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getMachines({ commit, dispatch, getters }) {\r\n\r\n const tasks = [...getters.machineTasks];\r\n if (getters.user) {\r\n tasks.unshift({\r\n description: \"User Machines\",\r\n function: \"getUserMachines\",\r\n payload: { showNotification: true },\r\n });\r\n }\r\n\r\n dispatch(\"getMachinesData\", { tasks: tasks }).then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n },\r\n\r\n // Materials\r\n\r\n showMaterialSelectorDialog({ commit }, show) {\r\n commit(\"SHOW_MATERIAL_SELECTOR_DIALOG\", show);\r\n },\r\n setInputMaterial({ commit, dispatch }, payload) {\r\n commit(\"SET_INPUT_MATERIAL\", payload);\r\n dispatch(\"updateRecommendations\");\r\n },\r\n setSavedInputMaterial({ commit }, payload) {\r\n commit(\"SET_INPUT_MATERIAL\", payload);\r\n commit(\"SET_SAVED_INPUT_MATERIAL\", payload);\r\n },\r\n reloadMaterialSelectorDetailsComponent({ commit }) {\r\n commit(\"RELOAD_MATERIAL_SELECTOR_DETAILS_COMPONENT\");\r\n },\r\n setMaterialsReady({ commit }, payload) {\r\n commit(\"SET_MATERIALS_READY\", payload);\r\n },\r\n\r\n // Dimensions\r\n\r\n showDimensionsSelectorDialog({ commit }, show) {\r\n commit(\"SHOW_DIMENSIONS_SELECTOR_DIALOG\", show);\r\n },\r\n setInputDimensions({ commit, dispatch }, payload) {\r\n commit(\"SET_INPUT_DIMENSIONS\", payload);\r\n\r\n if (payload == null) {\r\n dispatch(\"setInputVising\", null);\r\n }\r\n\r\n dispatch(\"updateRecommendations\");\r\n },\r\n setDimensionsReady({ commit }, payload) {\r\n commit(\"SET_DIMENSIONS_READY\", payload);\r\n },\r\n\r\n // Vising\r\n\r\n showVisingSelectorDialog({ commit }, show) {\r\n commit(\"SHOW_VISING_SELECTOR_DIALOG\", show);\r\n },\r\n setInputVising({ commit, dispatch }, payload) {\r\n commit(\"SET_INPUT_VISING\", payload);\r\n dispatch(\"updateRecommendations\");\r\n },\r\n setVisingReady({ commit }, payload) {\r\n commit(\"SET_VISING_READY\", payload);\r\n },\r\n\r\n // Conditions\r\n\r\n showConditionsSelectorDialog({ commit }, show) {\r\n commit(\"SHOW_CONDITIONS_SELECTOR_DIALOG\", show);\r\n },\r\n setInputConditions({ commit, dispatch }, payload) {\r\n commit(\"SET_INPUT_CONDITIONS\", payload);\r\n dispatch(\"updateRecommendations\");\r\n },\r\n setConditionsReady({ commit }, payload) {\r\n commit(\"SET_CONDITIONS_READY\", payload);\r\n },\r\n\r\n // Product Lines\r\n\r\n setProductLinesReady({ commit }, payload) {\r\n commit(\"SET_PRODUCT_LINES_READY\", payload);\r\n },\r\n\r\n // SawCalc\r\n\r\n // Machines\r\n\r\n async getMachinesData({ commit, dispatch }, payload) {\r\n commit(\"SET_MACHINES_READY\", false);\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n const tasks = [...payload.tasks];\r\n\r\n for (let i = 0; i < tasks.length; i++) {\r\n const task = tasks[i];\r\n\r\n let promise;\r\n try {\r\n promise = await dispatch(task.function, task.payload);\r\n\r\n if (\r\n promise != undefined &&\r\n promise.code != returnCode.Success &&\r\n promise.code != returnCode.ErrRecordNotFound\r\n ) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n dispatch(\"setSawCalcLoading\", false);\r\n reject({ code: promise.Code, message: promise.Description });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n } catch (error) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n reject(error);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n }\r\n\r\n commit(\"SET_MACHINES_READY\", true);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"machinesUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n getMachineManufacturers({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetMachineManufacturers/_/_/_/_/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_MACHINE_MANUFACTURERS\", res.MachineManufacturerList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"manufacturers\",\r\n value: getters.manufacturers,\r\n });\r\n dispatch(\"saveSettings\", {\r\n key: \"machines\",\r\n value: getters.machines,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_MACHINE_MANUFACTURERS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"manufacturers\",\r\n value: null,\r\n });\r\n dispatch(\"saveSettings\", {\r\n key: \"machines\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"machinesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_MACHINE_MANUFACTURERS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"manufacturers\",\r\n value: null,\r\n });\r\n dispatch(\"saveSettings\", {\r\n key: \"machines\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMachines\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getMachine({ commit, dispatch, getters }, payload) {\r\n return new Promise((resolve, reject) => {\r\n const machineID = payload.machineID;\r\n\r\n const url = config.url() + \"GetMachine/\" + machineID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.Machine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n response.machineID = item.MachineID;\r\n dispatch(\"setMachine\", response);\r\n\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setMachine\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n setMachine({ commit }, machine) {\r\n commit(\"SET_MACHINE\", machine);\r\n },\r\n getUserMachines({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const showNotification = payload.showNotification;\r\n let userID = payload.userID;\r\n\r\n if (!userID) {\r\n userID = getters.user.userID;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUserMachines/_/\" + userID + \"/_/_/_/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USER_MACHINES\", res.UserMachinesList);\r\n dispatch(\"saveSettings\", {\r\n key: \"userMachines\",\r\n value: getters.userMachines,\r\n });\r\n\r\n if (showNotification) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n resolve({ code: res.Code, message: \"\" });\r\n }\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_USER_MACHINES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"userMachines\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"machinesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_MACHINES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"userMachines\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMachines\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getUserMachine({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const userMachineID = payload.userMachineID;\r\n\r\n const url = config.url() + \"GetUserMachine/\" + userMachineID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserMachine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n response.userMachineID = item.UserMachineID;\r\n response.userID = item.UserID;\r\n response.machineName = item.MachineName;\r\n response.imageID = item.ImageID;\r\n response.defined = true;\r\n\r\n commit(\"SET_USER_MACHINE\", response);\r\n\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_MACHINE\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n addUserMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machineID = payload.machineID;\r\n\r\n const url = config.url() + \"AddUserMachine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserID: getters.user.userID,\r\n MachineID: machineID,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserMachine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n response.machineID = item.MachineID;\r\n dispatch(\"setMachine\", response);\r\n\r\n dispatch(\"getUserMachines\", { showNotification: false });\r\n\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"machineExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setMachine\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorCreatingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating user machine: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating user machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n removeUserMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userID = getters.user.userID;\r\n const userMachineID = payload.userMachineID;\r\n\r\n if (!userID || !userMachineID) {\r\n return;\r\n }\r\n\r\n const url =\r\n config.url() + \"RemoveUserMachine/\" + userID + \"/\" + userMachineID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"getUserMachines\", { showNotification: false });\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorRemovingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error removing user machine: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error removing user machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getMachineFromResponse({ commit, getters }, item) {\r\n if (!item) {\r\n return;\r\n }\r\n\r\n return new Promise((resolve) => {\r\n const machine = {\r\n manufacturerID: item.ManufacturerID,\r\n manufacturerName: item.ManufacturerName,\r\n model: item.Model,\r\n bladeWidthIn: item.BladeWidthIn,\r\n bladeWidthFr: item.BladeWidthFr,\r\n bladeWidthMetric: item.BladeWidthMetric,\r\n bladeThicknessImperial: item.BladeThicknessImperial,\r\n bladeThicknessMetric: item.BladeThicknessMetric,\r\n bladeLengthFt: item.BladeLengthFt,\r\n bladeLengthIn: item.BladeLengthIn,\r\n bladeLengthFr: item.BladeLengthFr,\r\n bladeLengthImperial: item.BladeLengthImperial,\r\n bladeLengthMetric: item.BladeLengthMetric,\r\n hortizontal: item.Hortizontal,\r\n scissorPivot: item.ScissorPivot,\r\n cantedHead: item.CantedHead,\r\n bandSpeedMinImperial: item.BandSpeedMinImperial,\r\n bandSpeedMaxImperial: item.BandSpeedMaxImperial,\r\n bandSpeedMinMetric: item.BandSpeedMinMetric,\r\n bandSpeedMaxMetric: item.BandSpeedMaxMetric,\r\n };\r\n\r\n machine.bladeWidthImperialDesc = machineDetails.getBladeWidth(\r\n machine,\r\n false\r\n );\r\n machine.bladeWidthMetricDesc = machineDetails.getBladeWidth(\r\n machine,\r\n true\r\n );\r\n machine.bladeThicknessImperialDesc = machineDetails.getBladeThickness(\r\n machine,\r\n false\r\n );\r\n machine.bladeThicknessMetricDesc = machineDetails.getBladeThickness(\r\n machine,\r\n true\r\n );\r\n machine.bladeLengthImperialDesc = machineDetails.getBladeLength(\r\n machine,\r\n false\r\n );\r\n machine.bladeLengthMetricDesc = machineDetails.getBladeLength(\r\n machine,\r\n true\r\n );\r\n machine.machineOrientationDesc = machineDetails.getMachineOrientation(\r\n machine,\r\n getters.language.messages\r\n );\r\n machine.scissorPivotDesc = machineDetails.getScissorPivot(\r\n machine,\r\n getters.language.messages\r\n );\r\n machine.cantedHeadDesc = machineDetails.getCantedHead(\r\n machine,\r\n getters.language.messages\r\n );\r\n machine.bandSpeedMinImperialDesc = machineDetails.getBandSpeed(\r\n machine,\r\n false,\r\n true\r\n );\r\n machine.bandSpeedMaxImperialDesc = machineDetails.getBandSpeed(\r\n machine,\r\n false,\r\n false\r\n );\r\n machine.bandSpeedMinMetricDesc = machineDetails.getBandSpeed(\r\n machine,\r\n true,\r\n true\r\n );\r\n machine.bandSpeedMaxMetricDesc = machineDetails.getBandSpeed(\r\n machine,\r\n true,\r\n false\r\n );\r\n\r\n resolve(machine);\r\n });\r\n },\r\n getBladeWidthImperialList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetWidthImperialList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_WIDTH_IMPERIAL_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeWidthImperialList\",\r\n value: getters.bladeWidthImperialList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_WIDTH_IMPERIAL_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeWidthImperialList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bladeWidthImperialListNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_WIDTH_IMPERIAL_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeWidthImperialList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingWidthImperialList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting width imperial list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting width imperial list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeWidthMetricList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetWidthMetricList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_WIDTH_METRIC_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeWidthMetricList\",\r\n value: getters.bladeWidthMetricList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_WIDTH_METRIC_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeWidthMetricList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bladeWidthMetricListNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_WIDTH_METRIC_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeWidthMetricList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingWidthMetricList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting width metric list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting width metric list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeThicknessImperialList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetThicknessImperialList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_THICKNESS_IMPERIAL_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeThicknessImperialList\",\r\n value: getters.bladeThicknessImperialList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_THICKNESS_IMPERIAL_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeThicknessImperialList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\r\n \"getTranslation\",\r\n \"bladeThicknessImperialListNotFound\"\r\n ).then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_THICKNESS_IMPERIAL_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeThicknessImperialList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingThicknessImperialList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting thickness imperial list: \" +\r\n error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting thickness imperial list: \" + error\r\n );\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeThicknessMetricList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetThicknessMetricList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_THICKNESS_METRIC_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeThicknessMetricList\",\r\n value: getters.bladeThicknessMetricList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_THICKNESS_METRIC_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeThicknessMetricList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\r\n \"getTranslation\",\r\n \"bladeThicknessMetricListNotFound\"\r\n ).then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_THICKNESS_METRIC_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeThicknessMetricList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingThicknessMetricList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting thickness metric list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting thickness metric list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeLengthFtList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetLengthFtList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_LENGTH_FT_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthFtList\",\r\n value: getters.bladeLengthFtList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_LENGTH_FT_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthFtList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bladeLengthFtListNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_LENGTH_FT_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthFtList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingLengthFtList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting length, ft list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting length, ft list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeLengthInList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetLengthInList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_LENGTH_IN_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthInList\",\r\n value: getters.bladeLengthInList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_LENGTH_IN_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthInList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bladeLengthInListNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_LENGTH_IN_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthInList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingLengthInList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting length, in list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting length, in list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeLengthFrList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetLengthFrList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_LENGTH_FR_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthFrList\",\r\n value: getters.bladeLengthFrList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_LENGTH_FR_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthFrList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bladeLengthFrListNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_LENGTH_FR_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthFrList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingLengthFrList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting length, fr list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting length, fr list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBladeLengthMetricList({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetLengthMetricList\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BLADE_LENGTH_METRIC_LIST\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthMetricList\",\r\n value: getters.bladeLengthMetricList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BLADE_LENGTH_METRIC_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthMetricList\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bladeLengthMetricListNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BLADE_LENGTH_METRIC_LIST\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bladeLengthMetricList\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingLengthMetricList\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting length, metric list: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting length, metric list: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n addUnknownMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machine = payload.machine;\r\n\r\n if (!machine) {\r\n return;\r\n }\r\n\r\n const metric = payload.uom == 0 ? false : true;\r\n const bladeWidth = calculations.getBladeWidth(\r\n machine,\r\n metric,\r\n getters.bladeWidthImperialList,\r\n getters.bladeWidthMetricList\r\n );\r\n const bladeThickness = calculations.getBladeThickness(\r\n machine,\r\n metric,\r\n getters.bladeThicknessImperialList,\r\n getters.bladeThicknessMetricList\r\n );\r\n const bladeLength = calculations.getBladeLength(machine, metric);\r\n const bandSpeedMin = calculations.getBandSpeed(machine, true, metric);\r\n const bandSpeedMax = calculations.getBandSpeed(machine, false, metric);\r\n\r\n const item = {\r\n UserID: getters.user.userID,\r\n ManufacturerName: machine.manufacturerName,\r\n Model: machine.model,\r\n BladeWidthIn: bladeWidth.in,\r\n BladeWidthFr: bladeWidth.fr,\r\n BladeWidthMetric: bladeWidth.mm,\r\n BladeThicknessImperial: bladeThickness.in,\r\n BladeThicknessMetric: bladeThickness.mm,\r\n BladeLengthFt: bladeLength.ft,\r\n BladeLengthIn: bladeLength.in,\r\n BladeLengthFr: bladeLength.fr,\r\n BladeLengthImperial: bladeLength.imperial,\r\n BladeLengthMetric: bladeLength.mm,\r\n Hortizontal: machine.machineOrientation,\r\n ScissorPivot: machine.scissorPivot,\r\n CantedHead: machine.cantedHead,\r\n BandSpeedMinImperial: bandSpeedMin.fpm,\r\n BandSpeedMaxImperial: bandSpeedMax.fpm,\r\n BandSpeedMinMetric: bandSpeedMin.mpm,\r\n BandSpeedMaxMetric: bandSpeedMax.mpm,\r\n };\r\n\r\n const url = config.url() + \"AddUserMachine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, item, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"getUserMachines\", { showNotification: false });\r\n resolve({ message: res.Description, machine: response });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"machineExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorGettingMachines\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting user machines: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting user machines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Material\r\n\r\n async getMatrialsData({ commit, dispatch }, payload) {\r\n commit(\"SET_MATERIALS_READY\", false);\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n const tasks = [...payload.tasks];\r\n\r\n for (let i = 0; i < tasks.length; i++) {\r\n const task = tasks[i];\r\n\r\n let promise;\r\n try {\r\n promise = await dispatch(task.function, task.payload);\r\n\r\n if (\r\n promise.code != returnCode.Success &&\r\n promise.code != returnCode.ErrRecordNotFound\r\n ) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n dispatch(\"setSawCalcLoading\", false);\r\n reject({ code: promise.Code, message: promise.Description });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n } catch (error) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n reject(error);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n }\r\n\r\n commit(\"SET_MATERIALS_READY\", true);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"materialsUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n getMaterialStandards({ commit, dispatch, getters }) {\r\n commit(\"SET_MATERIAL_STANDARDS\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetMaterialStandards/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_MATERIAL_STANDARDS\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materialStandards\",\r\n value: getters.materialStandards,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_MATERIAL_STANDARDS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materialStandards\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"materialStandardsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_MATERIAL_STANDARDS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materialStandards\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterialStandards\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting materialStandards: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting materialStandards: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getUNSCategories({ commit, dispatch, getters }) {\r\n commit(\"SET_UNS_CATEGORIES\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUNSCategories/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_UNS_CATEGORIES\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsCategories\",\r\n value: getters.unsCategories,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_UNS_CATEGORIES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsCategories\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"unsCategoriesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_UNS_CATEGORIES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsCategories\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingUNSCategories\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting unsCategories: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting unsCategories: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getUNSAlloyGroups({ commit, dispatch, getters }) {\r\n commit(\"SET_UNS_ALLOY_GROUPS\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUNSAlloyGroups/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_UNS_ALLOY_GROUPS\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsAlloyGroups\",\r\n value: getters.unsAlloyGroups,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_UNS_ALLOY_GROUPS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsAlloyGroups\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"unsAlloyGroupsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_UNS_ALLOY_GROUPS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsAlloyGroups\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingUNSAlloyGroups\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting unsAlloyGroups: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting unsAlloyGroups: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getSawCalcGroups({ commit, dispatch, getters }) {\r\n commit(\"SET_SAW_CALC_GROUPS\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetSawCalcGroups/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_SAW_CALC_GROUPS\", res.SawCalcGroupsList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"sawCalcGroups\",\r\n value: getters.sawCalcGroups,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_SAW_CALC_GROUPS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"sawCalcGroups\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"sawCalcGroupsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_GROUPS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"sawCalcGroups\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingSawCalcGroups\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting sawCalcGroups: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting sawCalcGroups: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getUNSGeneralDescriptions({ commit, dispatch, getters }) {\r\n commit(\"SET_UNS_GENERAL_DESCRIPTIONS\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUNSGeneralDescriptions/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_UNS_GENERAL_DESCRIPTIONS\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsGeneralDescriptions\",\r\n value: getters.unsGeneralDescriptions,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_UNS_GENERAL_DESCRIPTIONS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsGeneralDescriptions\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"unsGeneralDescriptionsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_UNS_GENERAL_DESCRIPTIONS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"unsGeneralDescriptions\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingUNSGeneralDescriptions\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting unsGeneralDescriptions: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting unsGeneralDescriptions: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getSubCategories({ commit, dispatch, getters }) {\r\n commit(\"SET_SUB_CATEGORIES\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetSubCategories/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_SUB_CATEGORIES\", res.List);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"subCategories\",\r\n value: getters.subCategories,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_SUB_CATEGORIES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"subCategories\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"subCategoriesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SUB_CATEGORIES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"subCategories\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterialSubCategories\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting subCategories: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting subCategories: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getMaterials({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetMaterials/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_MATERIALS\", res.MaterialsList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materials\",\r\n value: getters.materials,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_MATERIALS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materials\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"materialsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_MATERIALS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materials\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterials\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting materials: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting materials: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getMaterialDetails({ commit, dispatch, getters }, payload) {\r\n return new Promise((resolve, reject) => {\r\n const materialID = payload.id;\r\n\r\n const url = config.url() + \"GetMaterialDetails/\" + materialID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.Material;\r\n\r\n dispatch(\"getMaterialFromResponse\", item).then((response) => {\r\n response.hardness = response.defaultHBHardness;\r\n\r\n dispatch(\"setMaterial\", response);\r\n resolve({ message: res.Description, material: response });\r\n });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setMaterial\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting material: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getMaterialFromResponse({ commit, getters }, item) {\r\n if (!item) {\r\n return;\r\n }\r\n\r\n return new Promise((resolve) => {\r\n const material = {\r\n materialID: item.MaterialID,\r\n designation: item.Designation,\r\n materialStandardID: item.MaterialStandardID,\r\n materialStandard: item.MaterialStandard,\r\n country: item.Country,\r\n standard: item.Standard,\r\n uns: item.UNS,\r\n unsCategoryID: item.UNSCategoryID,\r\n unsCategory: item.UNSCategory,\r\n unsAlloyGroupID: item.UNSAlloyGroupID,\r\n unsAlloyGroup: item.UNSAlloyGroup,\r\n sawCalcGroupID: item.SawCalcGroupID,\r\n sawCalcGroupName: item.SawCalcGroupName,\r\n sawCalcGroupDescription: item.sawCalcGroupDescription,\r\n machinabilityGroupBiMetal: item.MachinabilityGroupBiMetal,\r\n machinabilityGroupCarbide: item.MachinabilityGroupCarbide,\r\n machinabilityRating: item.MachinabilityRating,\r\n defaultHBHardness: item.DefaultHBHardness,\r\n compositeUNS: item.CompositeUNS,\r\n unsGeneralDescriptionID: item.UNSGeneralDescriptionID,\r\n unsGeneralDescription: item.UNSGeneralDescription,\r\n subCategoryID: item.SubCategoryID,\r\n subCategory: item.SubCategory,\r\n chemicalComposition: JSON.parse(item.ChemicalComposition),\r\n quickSearch: item.QuickSearch,\r\n hardness: item.Hardness,\r\n heavyScaleForged: item.HeavyScaleForged,\r\n htQuenched: item.HTQuenched,\r\n };\r\n\r\n if (item.ScaleAbbreviation) {\r\n const scale = {\r\n abbreviation: item.ScaleAbbreviation,\r\n description: item.ScaleDescription,\r\n };\r\n\r\n material.scale = scale;\r\n } else if (getters.scales) {\r\n material.scale = getters.scales[0];\r\n }\r\n\r\n material.hardnessDescription =\r\n material.hardness + \" \" + material.scale.abbreviation;\r\n\r\n if (material.machinabilityGroupBiMetal == undefined) {\r\n material.machinabilityGroupBiMetal = \"\";\r\n }\r\n\r\n if (material.machinabilityGroupCarbide == undefined) {\r\n material.machinabilityGroupCarbide = \"\";\r\n }\r\n\r\n material.machinability =\r\n \"Group: \" +\r\n material.machinabilityGroupBiMetal +\r\n \"/\" +\r\n material.machinabilityGroupCarbide +\r\n \" \" +\r\n \"Rating: \" +\r\n material.machinabilityRating;\r\n\r\n resolve(material);\r\n });\r\n },\r\n setMaterial({ commit }, material) {\r\n commit(\"SET_MATERIAL\", material);\r\n },\r\n getScales({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetScales\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_SCALES\", res.ScalesList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"scales\",\r\n value: getters.scales,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_SCALES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"scales\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"scalesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SCALES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"scales\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingScales\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting scales: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting scales: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n setScale({ commit, dispatch }, payload) {\r\n const scale = payload.scale;\r\n\r\n commit(\"SET_SCALE\", scale);\r\n\r\n let hardness = payload.hardness;\r\n const hardnessCalculated = payload.hardnessCalculated;\r\n\r\n if (hardnessCalculated != undefined && hardnessCalculated > 0) {\r\n if (hardnessCalculated - hardness < 1) {\r\n hardness = hardnessCalculated;\r\n }\r\n }\r\n\r\n if (scale.abbreviation == \"HRC\") {\r\n hardness = calculations.HBtoHRC(hardness);\r\n } else if (scale.abbreviation == \"HB\") {\r\n hardness = calculations.HRCtoHB(hardness);\r\n }\r\n\r\n dispatch(\"setHardness\", hardness);\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getHardness({ commit }, payload) {\r\n const scale = payload.scale;\r\n\r\n let hardness = payload.hardness;\r\n const hardnessCalculated = payload.hardnessCalculated;\r\n\r\n if (hardnessCalculated != undefined && hardnessCalculated > 0) {\r\n if (hardnessCalculated - hardness < 1) {\r\n hardness = hardnessCalculated;\r\n }\r\n }\r\n\r\n if (scale.abbreviation == \"HRC\") {\r\n hardness = calculations.HBtoHRC(hardness);\r\n } else if (scale.abbreviation == \"HB\") {\r\n hardness = calculations.HRCtoHB(hardness);\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ hardness: parseInt(hardness), hardnessCalculated: hardness });\r\n });\r\n },\r\n setHardness({ commit }, hardness) {\r\n commit(\"SET_HARDNESS\", hardness);\r\n },\r\n setHeavyScaleForged({ commit }, heavyScaleForged) {\r\n commit(\"SET_HEAVY_SCALE_FORGED\", heavyScaleForged);\r\n },\r\n setHTQuenched({ commit }, htQuenched) {\r\n commit(\"SET_HT_QUENCHED\", htQuenched);\r\n },\r\n getUserMaterials({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const showNotification = payload.showNotification;\r\n let userID = payload.userID;\r\n\r\n if (!userID) {\r\n userID = getters.user.userID;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUserMaterials/_/\" + userID + \"/_/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USER_MATERIALS\", res.UserMaterialsList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"userMaterials\",\r\n value: getters.userMaterials,\r\n });\r\n\r\n if (showNotification) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n resolve({ code: res.Code, message: \"\" });\r\n }\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_USER_MATERIALS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"userMaterials\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"materialsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_MATERIALS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"userMaterials\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterials\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getUserMaterial({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const userMaterialID = payload.userMaterialID;\r\n\r\n const url = config.url() + \"GetUserMaterial/\" + userMaterialID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserMaterial;\r\n\r\n dispatch(\"getMaterialFromResponse\", item).then((response) => {\r\n response.userMaterialID = item.UserMaterialID;\r\n response.userID = item.UserID;\r\n response.materialName = item.MaterialName;\r\n response.defined = true;\r\n\r\n commit(\"SET_USER_MATERIAL\", response);\r\n\r\n resolve({ message: res.Description, material: response });\r\n });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_MATERIAL\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting material: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n addUserMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const materialID = payload.materialID;\r\n const scaleDescription = payload.scale.description;\r\n const scaleAbbreviation = payload.scale.abbreviation;\r\n let hardness = payload.hardness;\r\n if (hardness == 0) {\r\n hardness = getters.defaultHardness;\r\n }\r\n const heavyScaleForged = payload.heavyScaleForged;\r\n const htQuenched = payload.htQuenched;\r\n\r\n const url = config.url() + \"AddUserMaterial\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserID: getters.user.userID,\r\n MaterialID: materialID,\r\n ScaleDescription: scaleDescription,\r\n ScaleAbbreviation: scaleAbbreviation,\r\n Hardness: hardness,\r\n HeavyScaleForged: heavyScaleForged,\r\n HTQuenched: htQuenched,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserMaterial;\r\n\r\n dispatch(\"getMaterialFromResponse\", item).then((response) => {\r\n response.userMaterialID = item.UserMaterialID;\r\n response.materialName = item.MaterialName;\r\n\r\n dispatch(\"getUserMaterials\", { showNotification: false });\r\n\r\n resolve({ message: res.Description, material: response });\r\n });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"materialExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setMaterial\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorCreatingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating user material: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating user material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n removeUserMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userID = getters.user.userID;\r\n const userMaterialID = payload.userMaterialID;\r\n\r\n if (!userID || !userMaterialID) {\r\n return;\r\n }\r\n\r\n const url =\r\n config.url() + \"RemoveUserMaterial/\" + userID + \"/\" + userMaterialID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"getUserMaterials\", { showNotification: false });\r\n\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorRemovingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorRemovingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error removing user material: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error removing user material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateUserMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n \r\n const userMaterialID = payload.userMaterialID;\r\n const materialName = payload.materialName;\r\n const scaleDescription = payload.scale.description;\r\n const scaleAbbreviation = payload.scale.abbreviation;\r\n let hardness = payload.hardness;\r\n if (hardness == 0) {\r\n hardness = getters.defaultHardness;\r\n }\r\n const heavyScaleForged = payload.heavyScaleForged;\r\n const htQuenched = payload.htQuenched;\r\n\r\n const url = config.url() + \"UpdateUserMaterial\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserID: getters.user.userID,\r\n UserMaterialID: userMaterialID,\r\n MaterialName: materialName,\r\n ScaleDescription: scaleDescription,\r\n ScaleAbbreviation: scaleAbbreviation,\r\n Hardness: hardness,\r\n HeavyScaleForged: heavyScaleForged,\r\n HTQuenched: htQuenched,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserMaterial;\r\n\r\n dispatch(\"getMaterialFromResponse\", item).then((response) => {\r\n response.userMaterialID = item.UserMaterialID;\r\n response.materialName = item.MaterialName;\r\n\r\n dispatch(\"getUserMaterials\", { showNotification: false });\r\n\r\n resolve({ message: res.Description, material: response });\r\n });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"materialExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setMaterial\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorCreatingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating user material: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating user material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n copyUserMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userID = getters.user.userID;\r\n const userMaterialID = payload.userMaterialID;\r\n\r\n if (!userID || !userMaterialID) {\r\n return;\r\n }\r\n\r\n const url =\r\n config.url() + \"CopyUserMaterial/\" + userID + \"/\" + userMaterialID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating user material: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating user material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Dimensions\r\n\r\n async getDimensionsData({ commit, dispatch }, payload) {\r\n commit(\"SET_DIMENSIONS_READY\", false);\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n const tasks = [...payload.tasks];\r\n\r\n for (let i = 0; i < tasks.length; i++) {\r\n const task = tasks[i];\r\n\r\n let promise;\r\n try {\r\n promise = await dispatch(task.function, task.payload);\r\n\r\n if (\r\n promise.code != returnCode.Success &&\r\n promise.code != returnCode.ErrRecordNotFound\r\n ) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n dispatch(\"setSawCalcLoading\", false);\r\n reject({ code: promise.Code, message: promise.Description });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n } catch (error) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n reject(error);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n }\r\n\r\n commit(\"SET_DIMENSIONS_READY\", true);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"dimensionsUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n getIBeamStandards({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetIBeamStandards/_/_/_/_\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_IBEAM_GROUPS_STANDARDS\", res.IBeamStandardsList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"iBeamGroups\",\r\n value: getters.iBeamGroups,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"iBeamStandards\",\r\n value: getters.iBeamStandards,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_IBEAM_GROUPS_STANDARDS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"iBeamGroups\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"iBeamStandards\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"iBeamStandardsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_IBEAM_GROUPS_STANDARDS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"iBeamGroups\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"iBeamStandards\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingIBeamStandards\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting IBeamStandards: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting IBeamStandards: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Vising\r\n\r\n async getVisingData({ commit, dispatch, getters }) {\r\n commit(\"SET_VISING_READY\", true);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"visingReady\",\r\n value: getters.visingReady,\r\n });\r\n\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"visingUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n\r\n // Conditions\r\n\r\n async getConditionsData({ commit, dispatch, getters }) {\r\n commit(\"SET_CONDITIONS_READY\", true);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"conditionsReady\",\r\n value: getters.conditionsReady,\r\n });\r\n\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"conditionsUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n\r\n // Product Lines\r\n\r\n async getProductLinesData({ commit, dispatch }, payload) {\r\n commit(\"SET_PRODUCT_LINES_READY\", false);\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n const tasks = [...payload.tasks];\r\n\r\n for (let i = 0; i < tasks.length; i++) {\r\n const task = tasks[i];\r\n\r\n let promise;\r\n try {\r\n promise = await dispatch(task.function, task.payload);\r\n\r\n if (\r\n promise.code != returnCode.Success &&\r\n promise.code != returnCode.ErrRecordNotFound\r\n ) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n dispatch(\"setSawCalcLoading\", false);\r\n reject({ code: promise.Code, message: promise.Description });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n } catch (error) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n reject(error);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n }\r\n\r\n commit(\"SET_PRODUCT_LINES_READY\", true);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"productLinesUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n getProductLinesShort({ commit, dispatch, getters }) {\r\n commit(\"SET_PRODUCT_LINES_SHORT\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetProductLinesShort/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_PRODUCT_LINES_SHORT\", res.ProductLinesList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"productLinesShort\",\r\n value: getters.productLinesShort,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_PRODUCT_LINES_SHORT\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"productLinesShort\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"productLinesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_PRODUCT_LINES_SHORT\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"productLinesShort\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingProductLines\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting product lines: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting product lines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getBWLRefs({ commit, dispatch, getters }) {\r\n commit(\"SET_BWL_REFS\", null);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetBWLRefs/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_BWL_REFS\", res.BWLRefsList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bwlRefs\",\r\n value: getters.bwlRefs,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_BWL_REFS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bwlRefs\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"bwlRefsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_BWL_REFS\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"bwlRefs\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingBWLRefs\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting bwlRefs: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting bwlRefs: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // SawCalc\r\n\r\n resetSawCalcReady({ dispatch, getters }) {\r\n dispatch(\"setMachine\", null);\r\n dispatch(\"setMaterial\", null);\r\n\r\n if (getters.savedInputMachine) {\r\n dispatch(\"setInputMachine\", getters.savedInputMachine);\r\n } else {\r\n dispatch(\"setInputMachine\", null);\r\n }\r\n\r\n if (getters.savedInputMaterial) {\r\n dispatch(\"setInputMaterial\", getters.savedInputMaterial);\r\n } else {\r\n dispatch(\"setInputMaterial\", null);\r\n }\r\n\r\n dispatch(\"setInputDimensions\", null);\r\n dispatch(\"setInputVising\", null);\r\n dispatch(\"setInputConditions\", null);\r\n\r\n dispatch(\"setMachinesReady\", false);\r\n dispatch(\"setMaterialsReady\", false);\r\n dispatch(\"setDimensionsReady\", false);\r\n dispatch(\"setVisingReady\", false);\r\n dispatch(\"setConditionsReady\", false);\r\n dispatch(\"setProductLinesReady\", false);\r\n },\r\n getSawCalcData({ dispatch, getters }) {\r\n if (!getters.machinesReady) {\r\n const tasks = [...getters.machineTasks];\r\n\r\n if (getters.user) {\r\n tasks.unshift({\r\n description: \"User Machines\",\r\n function: \"getUserMachines\",\r\n payload: { showNotification: true },\r\n });\r\n }\r\n\r\n dispatch(\"getMachinesData\", { tasks: tasks }).then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"getSawCalcData\");\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n } else if (!getters.materialsReady) {\r\n const tasks = [...getters.materialTasks];\r\n\r\n if (getters.user) {\r\n tasks.unshift({\r\n description: \"User Materials\",\r\n function: \"getUserMaterials\",\r\n payload: {\r\n showNotification: true,\r\n },\r\n });\r\n }\r\n\r\n dispatch(\"getMatrialsData\", { tasks: tasks }).then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"getSawCalcData\");\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n } else if (!getters.dimensionsReady) {\r\n const tasks = [...getters.dimensionTasks];\r\n\r\n dispatch(\"getDimensionsData\", { tasks: tasks }).then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"getSawCalcData\");\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n } else if (!getters.visingReady) {\r\n dispatch(\"getVisingData\").then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"getSawCalcData\");\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n } else if (!getters.conditionsReady) {\r\n dispatch(\"getConditionsData\").then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"getSawCalcData\");\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n } else if (!getters.productLinesReady) {\r\n const tasks = [...getters.productLineTasks];\r\n\r\n dispatch(\"getProductLinesData\", { tasks: tasks }).then(\r\n (response) => {\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: response.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"getSawCalcData\");\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n resolve({ status: true, response: response });\r\n });\r\n },\r\n (error) => {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: error.message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ status: false, error: error });\r\n });\r\n }\r\n );\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n return new Promise((resolve, reject) => {\r\n if (getters.sawCalcReady) {\r\n dispatch(\"getTranslation\", \"sawCalcUpdated\").then((response) => {\r\n const message = response;\r\n\r\n const notification = {\r\n show: true,\r\n result: true,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"dbSyncDate\",\r\n value: new Date().getTime(),\r\n });\r\n });\r\n\r\n dispatch(\"setSawCalcLoading\", false);\r\n dispatch(\"checkInputs\");\r\n }\r\n\r\n if (getters.selectedRecommendationForCustom != null) {\r\n dispatch(\"closeCustomRecommendation\");\r\n }\r\n\r\n resolve({ status: true });\r\n });\r\n },\r\n setSawCalcLoading({ commit }, payload) {\r\n commit(\"SET_SAW_CALC_LOADING\", payload);\r\n },\r\n\r\n selectRecommendation({ commit }, payload) {\r\n commit(\"SELECT_RECOMMENDATION\", {\r\n recommendation: payload,\r\n });\r\n },\r\n customize({ commit, getters }, payload) {\r\n const recommendationIndex = payload;\r\n\r\n return new Promise((resolve) => {\r\n commit(\"CUSTOMIZE\", {\r\n recommendationIndex: recommendationIndex,\r\n recommendation: getters.recommendations[recommendationIndex],\r\n costCalculation: getters.costCalculations[recommendationIndex],\r\n });\r\n\r\n commit(\"RELOAD_RECOMMENDATION_COMPONENT\");\r\n\r\n resolve();\r\n });\r\n },\r\n getRecommendations({ commit, dispatch, getters }) {\r\n if (\r\n getters.input.machine.cantedHead &&\r\n getters.input.conditions.canting == 0\r\n ) {\r\n getters.input.conditions.canting = getters.defaultCantingDegrees;\r\n }\r\n\r\n if (!getters.input.machine.cantedHead) {\r\n getters.input.conditions.canting = 0;\r\n }\r\n\r\n const input = JSON.parse(JSON.stringify(getters.input));\r\n delete input.material.chemicalComposition;\r\n\r\n const url = config.url() + \"GetRecommendations\";\r\n\r\n \r\n\r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(input),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_RECOMMENDATIONS\", res.RecommendationUIsList);\r\n commit(\"RECOMMENDATION_UPDATED\");\r\n\r\n dispatch(\"updateCostCalculations\");\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrEngine) {\r\n commit(\"SET_RECOMMENDATIONS\", null);\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: res.Description,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_RECOMMENDATIONS\", null);\r\n let message;\r\n dispatch(\"getTranslation\", \"recommendationsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n commit(\"SET_RECOMMENDATIONS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingRecommedations\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting recommendations: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting recommendations: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getRecommendationCustom({ dispatch, getters }, payload) {\r\n const input = JSON.parse(JSON.stringify(getters.input));\r\n delete input.material.chemicalComposition;\r\n input.custom = payload;\r\n\r\n const url = config.url() + \"GetRecommendations\";\r\n \r\n dispatch(\"setSawCalcLoading\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(input),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n let recommendation = null;\r\n\r\n if (\r\n res.RecommendationUIsList != null &&\r\n res.RecommendationUIsList.length > 0\r\n ) {\r\n recommendation = res.RecommendationUIsList[0];\r\n }\r\n\r\n const costCalculation =\r\n getters.costCalculations[recommendations.Custom];\r\n costCalculation.uom = getters.measurementUOM;\r\n\r\n const cuttingRate = getters.input.metric\r\n ? recommendation.CuttingRateMetric\r\n : recommendation.CuttingRateImperial;\r\n\r\n dispatch(\"updateCostCalculation\", {\r\n cutTime: recommendation.CutTime,\r\n cuttingRate: cuttingRate,\r\n costCalculation: costCalculation,\r\n recommendationIndex: recommendations.Custom,\r\n })\r\n .then(() => {})\r\n .catch(() => {});\r\n\r\n resolve({\r\n code: res.Code,\r\n message: res.Description,\r\n recommendation: recommendation,\r\n });\r\n } else if (res.Code == returnCode.ErrEngine) {\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: res.Description,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n let message;\r\n dispatch(\"getTranslation\", \"recommendationsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"setSawCalcLoading\", false);\r\n dispatch(\"getTranslation\", \"errorGettingRecommedations\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting recommendations: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting recommendations: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateCostCalculations({ dispatch, getters }) {\r\n if (getters.recommendations.length > 0) {\r\n for (let i = 0; i < getters.recommendations.length; i++) {\r\n const recommendation = getters.recommendations[i];\r\n\r\n const costCalculation = getters.costCalculations[i];\r\n costCalculation.uom = getters.measurementUOM;\r\n\r\n const cuttingRate = getters.input.metric\r\n ? recommendation.cuttingRateMetric\r\n : recommendation.cuttingRateImperial;\r\n\r\n dispatch(\"updateCostCalculation\", {\r\n cutTime: recommendation.cutTime,\r\n cuttingRate: cuttingRate,\r\n costCalculation: costCalculation,\r\n recommendationIndex: i,\r\n })\r\n .then(() => {})\r\n .catch(() => {});\r\n }\r\n } else {\r\n dispatch(\"resetOutputs\");\r\n }\r\n },\r\n resetOutputs({ commit }) {\r\n commit(\"SET_RECOMMENDATIONS\", null);\r\n commit(\"RECOMMENDATION_UPDATED\");\r\n commit(\"RESET_COST_CALCULATIONS\");\r\n },\r\n\r\n closeCustomRecommendation({ commit }) {\r\n commit(\"CLOSE_CUSTOM_RECOMMENDATION\");\r\n commit(\"RELOAD_RECOMMENDATION_COMPONENT\");\r\n },\r\n updateFromCustom({ commit }, payload) {\r\n commit(\"UPDATE_FROM_CUSTOM\", payload);\r\n commit(\"CLOSE_CUSTOM_RECOMMENDATION\");\r\n commit(\"RELOAD_RECOMMENDATION_COMPONENT\");\r\n },\r\n\r\n // Home\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n getImageUrl({ commit, dispatch }, image) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = () => {\r\n let message;\r\n dispatch(\"getTranslation\", \"imageUrlFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ message: message, url: reader.result });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n };\r\n\r\n reader.onerror = () => {\r\n dispatch(\"getTranslation\", \"errorGettingImageData\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n };\r\n\r\n if (image) {\r\n reader.readAsDataURL(image);\r\n }\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getImageData({ commit, dispatch }, url) {\r\n return new Promise((resolve, reject) => {\r\n var request = new XMLHttpRequest();\r\n request.responseType = \"blob\";\r\n\r\n request.onload = () => {\r\n const image = request.response;\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"imageDataReceived\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ message: message, image: image });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n };\r\n\r\n request.onerror = () => {\r\n dispatch(\"getTranslation\", \"errorGettingImageData\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n };\r\n\r\n request.open(\"GET\", url);\r\n request.send();\r\n });\r\n },\r\n\r\n // Login\r\n\r\n showLoginDialog({ commit }, show) {\r\n commit(\"SHOW_LOGIN_DIALOG\", show);\r\n },\r\n loginLoading({ commit }, loading) {\r\n commit(\"LOGIN_LOADING\", loading);\r\n },\r\n login({ dispatch, getters }, payload) {\r\n dispatch(\"resetSawCalcReady\");\r\n\r\n const email = payload.email;\r\n const password = payload.password;\r\n\r\n const url = config.url() + \"Login\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Email: email,\r\n Password: password,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"updateUser\", { user: res.User, save: true });\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n\r\n // Reports\r\n\r\n getRecommendationReport({ commit, dispatch, getters }) {\r\n const input = JSON.parse(JSON.stringify(getters.input));\r\n delete input.material.chemicalComposition;\r\n\r\n const sawCalcOutput = [];\r\n let count = getters.recommendations.length;\r\n if (count > 3) {\r\n count = 3;\r\n }\r\n\r\n for (let i = 0; i < count; i++) {\r\n const defaultCostCalculations = {\r\n bladeLife: 1,\r\n costsPerCut: \"\",\r\n costsPerMeasurement: \"\",\r\n cutsPerBlade: \"\",\r\n laborBurdenRate: \"\",\r\n measurement: {\r\n measurementImperial: 0,\r\n measurementMetric: 0,\r\n },\r\n pricePerBlade: \"\",\r\n title: \"\",\r\n };\r\n\r\n const costCalculations =\r\n getters.costCalculations[i].costsPerCut != undefined &&\r\n getters.costCalculations[i].costsPerCut != null\r\n ? getters.costCalculations[i]\r\n : defaultCostCalculations;\r\n\r\n if (\r\n costCalculations.measurement.measurementImperial == undefined ||\r\n costCalculations.measurement.measurementImperial == null\r\n ) {\r\n costCalculations.measurement.measurementImperial = 0;\r\n }\r\n\r\n if (\r\n costCalculations.measurement.measurementMetric == undefined ||\r\n costCalculations.measurement.measurementMetric == null\r\n ) {\r\n costCalculations.measurement.measurementMetric = 0;\r\n }\r\n\r\n sawCalcOutput.push({\r\n Recommendation: getters.recommendations[i],\r\n CostCalculation: costCalculations,\r\n });\r\n }\r\n\r\n const obj = {\r\n Input: input,\r\n SawCalcOutput: sawCalcOutput,\r\n };\r\n\r\n const url = config.url() + \"GetRecommendationReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(obj),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n responseType: \"blob\",\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n const file = new Blob([res], { type: \"application/pdf\" });\r\n const objectURL = URL.createObjectURL(file);\r\n\r\n window.open(objectURL);\r\n URL.revokeObjectURL(file);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"reportCreated\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: returnCode.Success, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n emailRecommendationReport({ commit, dispatch, getters }) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const input = JSON.parse(JSON.stringify(getters.input));\r\n delete input.material.chemicalComposition;\r\n\r\n const sawCalcOutput = [];\r\n let count = getters.recommendations.length;\r\n if (count > 3) {\r\n count = 3;\r\n }\r\n\r\n for (let i = 0; i < count; i++) {\r\n const defaultCostCalculations = {\r\n bladeLife: 1,\r\n costsPerCut: \"\",\r\n costsPerMeasurement: \"\",\r\n cutsPerBlade: \"\",\r\n laborBurdenRate: \"\",\r\n measurement: {\r\n measurementImperial: 0,\r\n measurementMetric: 0,\r\n },\r\n pricePerBlade: \"\",\r\n title: \"\",\r\n };\r\n\r\n const costCalculations =\r\n getters.costCalculations[i].costsPerCut != undefined &&\r\n getters.costCalculations[i].costsPerCut != null\r\n ? getters.costCalculations[i]\r\n : defaultCostCalculations;\r\n\r\n if (\r\n costCalculations.measurement.measurementImperial == undefined ||\r\n costCalculations.measurement.measurementImperial == null\r\n ) {\r\n costCalculations.measurement.measurementImperial = 0;\r\n }\r\n\r\n if (\r\n costCalculations.measurement.measurementMetric == undefined ||\r\n costCalculations.measurement.measurementMetric == null\r\n ) {\r\n costCalculations.measurement.measurementMetric = 0;\r\n }\r\n\r\n sawCalcOutput.push({\r\n Recommendation: getters.recommendations[i],\r\n CostCalculation: costCalculations,\r\n });\r\n }\r\n\r\n const obj = {\r\n Input: input,\r\n SawCalcOutput: sawCalcOutput,\r\n };\r\n\r\n const url = config.url() + \"EmailRecommendationReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(obj),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n getCuttingChartReport({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const input = payload.input;\r\n input.userID = getters.user.userID;\r\n\r\n const obj = {\r\n Input: input,\r\n Recommendations: payload.recommendations,\r\n };\r\n\r\n const url = config.url() + \"GetCuttingChartReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(obj),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n responseType: \"blob\",\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n const file = new Blob([res], { type: \"application/pdf\" });\r\n const objectURL = URL.createObjectURL(file);\r\n\r\n window.open(objectURL);\r\n URL.revokeObjectURL(file);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"reportCreated\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: returnCode.Success, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n openCuttingChartReport({ commit, dispatch, getters }, payload) {\r\n const cuttingChartID = payload.cuttingChartID;\r\n const cuttingChartName = payload.cuttingChartName;\r\n const userID = payload.userID;\r\n const metric = payload.metric;\r\n const machine = payload.machine;\r\n const productImperial = payload.productImperial;\r\n const productMetric = payload.productMetric;\r\n const dimensionMin = payload.dimensionMin;\r\n const dimensionMax = payload.dimensionMax;\r\n const dimensionRange = payload.dimensionRange;\r\n const cuttingChartMaterialGroups = payload.cuttingChartMaterialGroups;\r\n\r\n const url = config.url() + \"GetSavedCuttingChartReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n CuttingChartID: cuttingChartID,\r\n CuttingChartName: cuttingChartName,\r\n UserID: userID,\r\n Metric: metric,\r\n Machine: machine,\r\n ProductImperial: productImperial,\r\n ProductMetric: productMetric,\r\n DimensionMin: dimensionMin,\r\n DimensionMax: dimensionMax,\r\n DimensionRange: dimensionRange,\r\n CuttingChartMaterialGroups: cuttingChartMaterialGroups,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n responseType: \"blob\",\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n const file = new Blob([res], { type: \"application/pdf\" });\r\n const objectURL = URL.createObjectURL(file);\r\n\r\n window.open(objectURL);\r\n URL.revokeObjectURL(file);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"reportCreated\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: returnCode.Success, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n emailCuttingChartReport({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n const cuttingChartID = payload.cuttingChartID;\r\n const cuttingChartName = payload.cuttingChartName;\r\n const userID = payload.userID;\r\n const metric = payload.metric;\r\n const machine = payload.machine;\r\n const productImperial = payload.productImperial;\r\n const productMetric = payload.productMetric;\r\n const dimensionMin = payload.dimensionMin;\r\n const dimensionMax = payload.dimensionMax;\r\n const dimensionRange = payload.dimensionRange;\r\n const cuttingChartMaterialGroups = payload.cuttingChartMaterialGroups;\r\n\r\n const url = config.url() + \"EmailSavedCuttingChartReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n CuttingChartID: cuttingChartID,\r\n CuttingChartName: cuttingChartName,\r\n UserID: userID,\r\n Metric: metric,\r\n Machine: machine,\r\n ProductImperial: productImperial,\r\n ProductMetric: productMetric,\r\n DimensionMin: dimensionMin,\r\n DimensionMax: dimensionMax,\r\n DimensionRange: dimensionRange,\r\n CuttingChartMaterialGroups: cuttingChartMaterialGroups,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n\r\n // Logoff\r\n\r\n logoff({ dispatch }) {\r\n return new Promise((resolve) => {\r\n dispatch(\"resetSawCalcReady\");\r\n\r\n dispatch(\"deleteDB\");\r\n\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n dispatch(\"resetInputs\");\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"logoffSuccessful\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n },\r\n\r\n // Register\r\n\r\n showRegisterDialog({ commit }, show) {\r\n commit(\"SHOW_REGISTER_DIALOG\", show);\r\n },\r\n registerLoading({ commit }, loading) {\r\n commit(\"REGISTER_LOADING\", loading);\r\n },\r\n register({ dispatch, getters }, payload) {\r\n const companyName = payload.companyName;\r\n const street = payload.street;\r\n const city = payload.city;\r\n const postalCode = payload.postalCode;\r\n const country = payload.country;\r\n const state = payload.state;\r\n const phone = payload.phone;\r\n const firstName = payload.firstName;\r\n const lastName = payload.lastName;\r\n const email = payload.email;\r\n const password = payload.password;\r\n const marketingEmail = payload.marketingEmail;\r\n\r\n const url = config.url() + \"Register\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n CompanyName: companyName,\r\n Street: street,\r\n City: city,\r\n PostalCode: postalCode,\r\n Country: country,\r\n State: state,\r\n Phone: phone,\r\n FirstName: firstName,\r\n LastName: lastName,\r\n Email: email,\r\n Password: password,\r\n MarketingEmail: marketingEmail,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"updateUser\", { user: res.User, save: true });\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject(error);\r\n });\r\n });\r\n },\r\n\r\n // Password Reset\r\n\r\n showPasswordResetDialog({ commit }, show) {\r\n commit(\"SHOW_PASSWORD_RESET_DIALOG\", show);\r\n },\r\n passwordResetLoading({ commit }, loading) {\r\n commit(\"PASSWORD_RESET_LOADING\", loading);\r\n },\r\n passwordReset({ dispatch, getters }, payload) {\r\n const email = payload.email;\r\n\r\n const url = config.url() + \"PasswordReset\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Email: email,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject(error);\r\n });\r\n });\r\n },\r\n\r\n // Update Password\r\n\r\n updatePassword({ dispatch, getters }, payload) {\r\n const password = payload.password;\r\n const accessToken = payload.accessToken;\r\n\r\n const url = config.url() + \"UpdatePassword\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n AccessToken: accessToken,\r\n Password: password,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"updateUser\", { user: null, save: true });\r\n reject(error);\r\n });\r\n });\r\n },\r\n\r\n emailVerification({ dispatch, getters }, payload) {\r\n const verificationCode = payload.verificationCode;\r\n const lang = payload.lang;\r\n\r\n const url = config.url() + \"UpdateUserEmailVerified\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n const headers = api.headers(getters);\r\n headers[\"Base-Locale\"] = lang != null ? lang : \"\";\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UUID: verificationCode,\r\n },\r\n {\r\n headers: headers,\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n\r\n // User\r\n\r\n getUser({ commit, dispatch, getters }) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userID = getters.user.userID;\r\n \r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUser/\" + userID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USER\", res.User);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_USER\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"usersNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingUsers\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting users: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting users: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n getUserOnEdit({ dispatch, getters },payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n let userID =0;\r\n\r\n if (payload && payload.userID !=undefined) {\r\n userID = payload.userID;\r\n }\r\n \r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUser/\" + userID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n \r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description, user : res.User });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n let message;\r\n dispatch(\"getTranslation\", \"usersNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n \r\n\r\n dispatch(\"getTranslation\", \"errorGettingUsers\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting users: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting users: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateUser({ commit, dispatch }, payload) {\r\n commit(\"SET_USER\", payload.user);\r\n commit(\"UPDATE_TOOLBAR_NAVIGATION_BY_USER\");\r\n\r\n if (payload.save) {\r\n dispatch(\"saveSettings\", { key: \"user\", value: payload.user });\r\n }\r\n },\r\n\r\n // Token\r\n\r\n setToken({ commit }, payload) {\r\n commit(\"SET_TOKEN\", payload);\r\n },\r\n updateToken({ commit, dispatch }, response) {\r\n let token = \"\";\r\n\r\n if (\r\n response != null &&\r\n response.headers != null &&\r\n response.headers.token != null &&\r\n response.headers.token != \"\"\r\n ) {\r\n token = response.headers.token;\r\n dispatch(\"saveSettings\", { key: \"token\", value: token });\r\n commit(\"SET_TOKEN\", token);\r\n }\r\n },\r\n\r\n // Axios\r\n\r\n setAxiosSource({ commit }, payload) {\r\n commit(\"SET_AXIOS_SOURCE\", payload);\r\n },\r\n cancelRequest({ commit, getters }) {\r\n if (getters.axiosSource) {\r\n commit(\"CANCEL_REQUEST\");\r\n }\r\n },\r\n\r\n // Users\r\n\r\n getUsers({ commit, dispatch, getters }) {\r\n \r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUsers/_/_/_/_\";\r\n console.log('headers ',api.headers(getters));\r\n try {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USERS\", res.UsersList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_USERS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"usersNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USERS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingUsers\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n // console.error(\"Error getting users: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n // console.error(\"Error getting users: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n } catch (exp) {\r\n // eslint-disable-next-line\r\n console.error(exp)\r\n }\r\n \r\n });\r\n },\r\n\r\n updateDbUser({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const userID = payload.userID;\r\n const marketingEmail = payload.marketingEmail;\r\n const technicalGroup = payload.technicalGroup;\r\n const adminGroup = payload.adminGroup;\r\n\r\n const url = config.url() + \"UpdateUser\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserID: userID,\r\n MarketingEmail: marketingEmail,\r\n TechnicalGroup: technicalGroup,\r\n AdminGroup: adminGroup,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"UPDATE_DB_USER\", res.User);\r\n commit(\"RELOAD_USERS_COMPONENT\");\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n updateUserAdmin({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const user = payload.item;\r\n const userID = user.userID;\r\n const admin = payload.admin;\r\n\r\n if (\r\n userID == null ||\r\n userID == undefined ||\r\n admin == null ||\r\n admin == undefined\r\n ) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"UpdateUserAdmin/\" + userID + \"/\" + admin;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n user.admin = admin;\r\n commit(\"UPDATE_DB_USER\", user);\r\n commit(\"RELOAD_USERS_COMPONENT\");\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n updateUserActive({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const user = payload.item;\r\n const userID = user.userID;\r\n const active = payload.active;\r\n\r\n if (\r\n userID == null ||\r\n userID == undefined ||\r\n active == null ||\r\n active == undefined\r\n ) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"UpdateUserActive/\" + userID + \"/\" + active;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n user.active = active;\r\n commit(\"UPDATE_DB_USER\", user);\r\n commit(\"RELOAD_USERS_COMPONENT\");\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n deleteDbUser({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const user = payload;\r\n const userID = user.userID;\r\n\r\n if (userID == null || userID == undefined) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"DeleteAccount/\" + userID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"DELETE_DB_USER\", userID);\r\n commit(\"RELOAD_USERS_COMPONENT\");\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n sendEmailVerification({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const user = payload.item;\r\n const userID = user.userID;\r\n\r\n if (userID == null || userID == undefined) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"SendEmailVerification/\" + userID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n updateAccount({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const userID = payload.userID;\r\n const companyName = payload.companyName;\r\n const street = payload.street;\r\n const city = payload.city;\r\n const state = payload.state;\r\n const postalCode = payload.postalCode;\r\n const country = payload.country;\r\n const phone = payload.phone;\r\n const firstName = payload.firstName;\r\n const lastName = payload.lastName;\r\n const marketingEmail = payload.marketingEmail;\r\n\r\n const url = config.url() + \"UpdateAccount\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserID: userID,\r\n CompanyName: companyName,\r\n Street: street,\r\n City: city,\r\n State: state,\r\n PostalCode: postalCode,\r\n Country: country,\r\n Phone: phone,\r\n FirstName: firstName,\r\n LastName: lastName,\r\n MarketingEmail: marketingEmail,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"UPDATE_ACCOUNT\", res.User);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n deleteAccount({ commit, dispatch, getters }, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n\r\n const user = payload;\r\n const userID = user.userID;\r\n\r\n if (userID == null || userID == undefined) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"DeleteAccount/\" + userID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n dispatch(\"deleteDB\");\r\n\r\n dispatch(\"logoff\").then(() => {\r\n resolve({ code: res.Code, message: res.Description });\r\n });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n deleteDB({ dispatch }) {\r\n const req = indexedDB.deleteDatabase(\"SawCalcDB\");\r\n req.onsuccess = function() {\r\n // eslint-disable-next-line\r\n console.log(\"Deleted database successfully\");\r\n };\r\n req.onerror = function() {\r\n // eslint-disable-next-line\r\n console.log(\"Couldn't delete database\");\r\n };\r\n req.onblocked = function() {\r\n // eslint-disable-next-line\r\n console.log(\r\n \"Couldn't delete database due to the operation being blocked\"\r\n );\r\n };\r\n },\r\n getCountries({ commit, dispatch, getters }) {\r\n dispatch(\"registerLoading\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetCountryList/_/_\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"registerLoading\", false);\r\n dispatch(\"updateToken\", response);\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_COUNTRIES\", res.CountryList);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"countries\",\r\n value: getters.countries,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_COUNTRIES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"countries\",\r\n value: null,\r\n });\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"statsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"registerLoading\", false);\r\n commit(\"SET_COUNTRIES\", null);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"countries\",\r\n value: null,\r\n });\r\n\r\n dispatch(\"getTranslation\", \"errorGettingStats\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting stats: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting stats: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n reloadUserLinksComponent({ commit }) {\r\n commit(\"RELOAD_USER_LINKS_COMPONENT\");\r\n },\r\n updateUserLinks({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const parentID = payload.parentID;\r\n\r\n const list = payload.list.map((o) => ({\r\n UserLinkID: o.userLinkID,\r\n ParentID: o.parentID,\r\n UserID: o.userID,\r\n LinkName: o.linkName,\r\n }));\r\n\r\n const url = config.url() + \"UpdateUserLinks\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n List: list,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"UPDATE_USER_LINKS\", {\r\n parentID: parentID,\r\n list: res.UserLinkList,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingUserLinks\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingUserLinks\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating user links: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating user links: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Stats\r\n\r\n getStats({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetStats/_/_/_\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_STATS\", res.StatsList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_STATS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"statsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_STATS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingStats\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting stats: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting stats: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // UI\r\n\r\n showSawCalcDrawer({ commit }, show) {\r\n commit(\"SHOW_SAW_CALC_DRAWER\", show);\r\n },\r\n checkInputs({ dispatch, getters }) {\r\n let valid = false;\r\n\r\n if (\r\n getters.inputMachine.manufacturerName != null &&\r\n getters.inputMaterial.designation != null &&\r\n getters.inputDimensions.shape != null &&\r\n getters.inputVising.arrangement != null &&\r\n getters.inputConditions.lubrication != null\r\n ) {\r\n valid = true;\r\n }\r\n\r\n if (!valid) {\r\n setTimeout(() => dispatch(\"showSawCalcDrawer\", true), 500);\r\n setTimeout(() => dispatch(\"showSawCalcDrawer\", false), 1000);\r\n }\r\n },\r\n getImages({ commit, dispatch, getters }) {\r\n const url = config.url() + \"GetImagesList\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"GET_IMAGES\", res.ImagesList);\r\n\r\n const homeCover = getters.images.home.cover;\r\n\r\n if (homeCover.fileName) {\r\n dispatch(\"getImageSource\", {\r\n id: \"homeCover\",\r\n image: homeCover,\r\n });\r\n }\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting images: \" + error);\r\n });\r\n },\r\n getImageSource({ commit, dispatch }, payload) {\r\n const id = payload.id;\r\n const image = payload.image;\r\n\r\n const fileName = image.fileName;\r\n\r\n if (!fileName) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetImage/\" + fileName;\r\n\r\n axios\r\n .create()\r\n .get(url)\r\n .then((response) => {\r\n const error = api.responseError(response.headers);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n commit(\"SET_IMAGE_SOURCE\", { id: id, image: null });\r\n } else {\r\n const res = response.data;\r\n\r\n const base64string = imageConversion.arrayBufferToBase64(res);\r\n\r\n commit(\"SET_IMAGE_SOURCE\", {\r\n id: id,\r\n image: image,\r\n data: base64string,\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting image\");\r\n });\r\n },\r\n updateImage({ commit, dispatch, getters }, payload) {\r\n const page = payload.page;\r\n const name = payload.name;\r\n const file = payload.file;\r\n const fileName = file.name;\r\n\r\n const url =\r\n config.url() + \"UpdateAppFormImage/\" + page + \"/\" + name + \"/\" + fileName;\r\n\r\n const form = new FormData();\r\n form.append(\"image\", file);\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, form, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data.UpdateAppFormImageResult;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n let base64string = reader.result;\r\n\r\n commit(\"UPDATE_IMAGE\", {\r\n page: page,\r\n name: name,\r\n fileName: fileName,\r\n data: base64string,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n };\r\n reader.readAsDataURL(file);\r\n } else {\r\n commit(\"UPDATE_IMAGE\", {\r\n page: page,\r\n name: name,\r\n fileName: fileName,\r\n data: null,\r\n });\r\n\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n imageLoading({ commit }, payload) {\r\n const page = payload.page;\r\n const name = payload.name;\r\n const loading = payload.loading;\r\n\r\n commit(\"IMAGE_LOADING\", { page: page, name: name, loading: loading });\r\n },\r\n showDataTableSettingsDialog({ commit }, show) {\r\n commit(\"SHOW_DATA_TABLE_SETTINGS_DIALOG\", show);\r\n },\r\n showDataTableUOMSettingsDialog({ commit }, show) {\r\n commit(\"SHOW_DATA_TABLE_UOM_SETTINGS_DIALOG\", show);\r\n },\r\n\r\n // Machines\r\n\r\n saveMachinesAdminSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_MACHINES_ADMIN_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"machinesAdminSettings\",\r\n value: getters.machinesAdminSettings,\r\n });\r\n },\r\n reloadMachinesAdminSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_UOM_SETTINGS_COMPONENT\");\r\n },\r\n saveMachinesUserSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_MACHINES_USER_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"machinesUserSettings\",\r\n value: getters.machinesUserSettings,\r\n });\r\n },\r\n reloadMachinesUserSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_UOM_SETTINGS_COMPONENT\");\r\n },\r\n\r\n // Materials\r\n\r\n saveMaterialsAdminSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_MATERIALS_ADMIN_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materialsAdminSettings\",\r\n value: getters.materialsAdminSettings,\r\n });\r\n },\r\n reloadMaterialsAdminSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_SETTINGS_COMPONENT\");\r\n },\r\n saveMaterialsUserSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_MATERIALS_USER_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"materialsUserSettings\",\r\n value: getters.materialsUserSettings,\r\n });\r\n },\r\n reloadMaterialsUserSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_SETTINGS_COMPONENT\");\r\n },\r\n reloadMaterialDialogComponent({ commit }) {\r\n commit(\"RELOAD_MATERIAL_DIALOG_COMPONENT\");\r\n },\r\n reloadChemicalCompositionsDialogComponent({ commit }) {\r\n commit(\"RELOAD_CHEMICAL_COMPOSITIONS_DIALOG_COMPONENT\");\r\n },\r\n\r\n // ProductLines\r\n\r\n saveProductLinesSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_PRODUCT_LINES_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"productLinesSettings\",\r\n value: getters.productLinesSettings,\r\n });\r\n },\r\n reloadProductLinesSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_SETTINGS_COMPONENT\");\r\n },\r\n reloadProductLineDialogComponent({ commit }) {\r\n commit(\"RELOAD_PRODUCT_LINES_DIALOG_COMPONENT\");\r\n },\r\n\r\n // DictionaryUI\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n getDictionaryUISections({ commit, dispatch, getters }, locale) {\r\n return new Promise((resolve, reject) => {\r\n if (!locale) {\r\n let message;\r\n dispatch(\"getTranslation\", \"languageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetDictionaryUISections/\" + locale;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, items: res.List });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingSections\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting sections: \" + error);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingSections\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getDictionaryUI({ commit, dispatch, getters }, payload) {\r\n const locale = payload.locale;\r\n const section = payload.section;\r\n\r\n return new Promise((resolve, reject) => {\r\n if (!locale) {\r\n let message;\r\n dispatch(\"getTranslation\", \"languageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n if (!section) {\r\n let message;\r\n dispatch(\"getTranslation\", \"sectionIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetDictionaryUI/\" + locale + \"/\" + section;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, item: res.DictionaryUI });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingContent\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting content: \" + error);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingContent\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n updateDictionaryUI({ commit, dispatch, getters }, payload) {\r\n const id = payload.id;\r\n const jsonContent = payload.jsonContent;\r\n\r\n const url = config.url() + \"UpdateDictionaryUI/\" + id;\r\n\r\n const form = new FormData();\r\n form.append(\"jsonContent\", jsonContent);\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, form, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data.UpdateDictionaryUIResult;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, item: res.DictionaryUI });\r\n } else {\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error.message);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n });\r\n });\r\n },\r\n\r\n // DictionaryWS\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n getDictionaryWSSections({ commit, dispatch, getters }, locale) {\r\n return new Promise((resolve, reject) => {\r\n if (!locale) {\r\n let message;\r\n dispatch(\"getTranslation\", \"languageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetDictionaryWSSections/\" + locale;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, items: res.List });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingSections\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting sections: \" + error);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingSections\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getDictionaryWS({ commit, dispatch, getters }, payload) {\r\n const locale = payload.locale;\r\n const section = payload.section;\r\n\r\n return new Promise((resolve, reject) => {\r\n if (!locale) {\r\n let message;\r\n dispatch(\"getTranslation\", \"languageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n if (!section) {\r\n let message;\r\n dispatch(\"getTranslation\", \"sectionIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetDictionaryWS/\" + locale + \"/\" + section;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, item: res.DictionaryWS });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingContent\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting content: \" + error);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingContent\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n updateDictionaryWS({ commit, dispatch, getters }, payload) {\r\n const id = payload.id;\r\n const content = payload.content;\r\n\r\n const url = config.url() + \"UpdateDictionaryWS/\" + id;\r\n\r\n const form = new FormData();\r\n form.append(\"content\", content);\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, form, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data.UpdateDictionaryWSResult;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, item: res.DictionaryWS });\r\n } else {\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n\r\n // DictionaryStatic\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n getDictionaryPages({ commit, dispatch, getters }, locale) {\r\n return new Promise((resolve, reject) => {\r\n if (!locale) {\r\n let message;\r\n dispatch(\"getTranslation\", \"languageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetDictionaryPages/\" + locale;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, items: res.List });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingPages\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting pages: \" + error);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingPages\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n getDictionaryStatic({ commit, dispatch, getters }, payload) {\r\n const locale = payload.locale;\r\n const page = payload.page;\r\n\r\n return new Promise((resolve, reject) => {\r\n if (!locale) {\r\n let message;\r\n dispatch(\"getTranslation\", \"languageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n if (!page) {\r\n let message;\r\n dispatch(\"getTranslation\", \"pageIsRequired\").then(\r\n (response) => {\r\n message = response;\r\n reject(message);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetDictionaryStatic/\" + locale + \"/\" + page;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, item: res.DictionaryStatic });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorGettingContent\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting content: \" + error);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingContent\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n );\r\n });\r\n });\r\n },\r\n // eslint-disable-next-line no-unused-vars\r\n updateDictionaryStatic({ commit, dispatch, getters }, payload) {\r\n const id = payload.id;\r\n const title = payload.title;\r\n const videos = payload.videos;\r\n const content = payload.content;\r\n\r\n const url = config.url() + \"UpdateDictionaryStatic/\" + id;\r\n\r\n const form = new FormData();\r\n form.append(\"title\", title);\r\n form.append(\"videos\", videos);\r\n form.append(\"content\", content);\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, form, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data.UpdateDictionaryStaticResult;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description, item: res.DictionaryStatic });\r\n } else {\r\n reject({ message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n\r\n // Admin\r\n\r\n // Machines\r\n\r\n getAdminMachines({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetMachines/_/_/_/_/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_MACHINES_ADMIN\", res.MachinesList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_MACHINES_ADMIN\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"machinesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_MACHINES_ADMIN\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMachines\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting machines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n async createMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machine = await dispatch(\"getMachineFromInput\", {\r\n machine: payload.machine,\r\n uom: payload.uom,\r\n });\r\n const url = config.url() + \"CreateMachine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ManufacturerName: machine.manufacturerName,\r\n Model: machine.model,\r\n BladeWidthIn: machine.bladeWidthIn,\r\n BladeWidthFr: machine.bladeWidthFr,\r\n BladeWidthMetric: machine.bladeWidthMetric,\r\n BladeThicknessImperial: machine.bladeThicknessImperial,\r\n BladeThicknessMetric: machine.bladeThicknessMetric,\r\n BladeLengthFt: machine.bladeLengthFt,\r\n BladeLengthIn: machine.bladeLengthIn,\r\n BladeLengthFr: machine.bladeLengthFr,\r\n BladeLengthImperial: machine.bladeLengthImperial,\r\n BladeLengthMetric: machine.bladeLengthMetric,\r\n Hortizontal: machine.hortizontal,\r\n ScissorPivot: machine.scissorPivot,\r\n CantedHead: machine.cantedHead,\r\n BandSpeedMinImperial: machine.bandSpeedMinImperial,\r\n BandSpeedMaxImperial: machine.bandSpeedMaxImperial,\r\n BandSpeedMinMetric: machine.bandSpeedMinMetric,\r\n BandSpeedMaxMetric: machine.bandSpeedMaxMetric,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.Machine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"machineExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingMachine\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n async updateMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machine = await dispatch(\"getMachineFromInput\", {\r\n machine: payload.machine,\r\n uom: payload.uom,\r\n });\r\n \r\n const url = config.url() + \"UpdateMachine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n MachineID: machine.machineID,\r\n ManufacturerName: machine.manufacturerName,\r\n Model: machine.model,\r\n BladeWidthIn: machine.bladeWidthIn,\r\n BladeWidthFr: machine.bladeWidthFr,\r\n BladeWidthMetric: machine.bladeWidthMetric,\r\n BladeThicknessImperial: machine.bladeThicknessImperial,\r\n BladeThicknessMetric: machine.bladeThicknessMetric,\r\n BladeLengthFt: machine.bladeLengthFt,\r\n BladeLengthIn: machine.bladeLengthIn,\r\n BladeLengthFr: machine.bladeLengthFr,\r\n BladeLengthImperial: machine.bladeLengthImperial,\r\n BladeLengthMetric: machine.bladeLengthMetric,\r\n Hortizontal: machine.hortizontal,\r\n ScissorPivot: machine.scissorPivot,\r\n CantedHead: machine.cantedHead,\r\n BandSpeedMinImperial: machine.bandSpeedMinImperial,\r\n BandSpeedMaxImperial: machine.bandSpeedMaxImperial,\r\n BandSpeedMinMetric: machine.bandSpeedMinMetric,\r\n BandSpeedMaxMetric: machine.bandSpeedMaxMetric,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.Machine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingMachine\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n deleteMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machineID = payload.machine.machineID;\r\n\r\n const url = config.url() + \"DeleteMachine/\" + machineID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorDeletingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Materials\r\n\r\n async getAdminMatrialsData({ commit, dispatch, getters }) {\r\n commit(\"SET_MATERIALS_LOADING\", true);\r\n\r\n const tasks = [...getters.materialTasks];\r\n\r\n for (let i = 0; i < tasks.length; i++) {\r\n const task = tasks[i];\r\n\r\n let promise;\r\n try {\r\n promise = await dispatch(task.function, task.payload);\r\n\r\n if (\r\n promise.code != returnCode.Success &&\r\n promise.code != returnCode.ErrRecordNotFound\r\n ) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n commit(\"SET_MATERIALS_LOADING\", false);\r\n reject({ code: promise.Code, message: promise.Description });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n } catch (error) {\r\n let p = new Promise(function(resolve, reject) {\r\n let message;\r\n dispatch(\"getTranslation\", \"errorNotLoaded\").then(\r\n (response) => {\r\n message = task.description + \" \" + response;\r\n\r\n const notification = {\r\n show: true,\r\n result: false,\r\n message: message,\r\n };\r\n\r\n dispatch(\"showSnackbar\", notification);\r\n commit(\"SET_MATERIALS_LOADING\", false);\r\n\r\n reject(error);\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n }\r\n }\r\n\r\n commit(\"SET_MATERIALS_ADMIN\");\r\n commit(\"SET_MATERIALS_LOADING\", false);\r\n\r\n let p = new Promise(function(resolve, reject) {\r\n dispatch(\"getTranslation\", \"materialsUpdated\").then(\r\n (response) => {\r\n resolve({ message: response });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n\r\n return p;\r\n },\r\n getAdminMaterials({ commit, dispatch, getters }) {\r\n commit(\"SET_MATERIALS_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetMaterials/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_MATERIALS\", res.MaterialsList);\r\n commit(\"SET_MATERIALS_ADMIN\");\r\n commit(\"SET_MATERIALS_LOADING\", false);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_MATERIALS\", null);\r\n commit(\"SET_MATERIALS_ADMIN\");\r\n commit(\"SET_MATERIALS_LOADING\", false);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"materialsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_MATERIALS\", null);\r\n commit(\"SET_MATERIALS_ADMIN\");\r\n commit(\"SET_MATERIALS_LOADING\", false);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingMaterials\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting materials: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting materials: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createMaterialStandard({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateMaterialStandard\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateMaterialStandard({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateMaterialStandard\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createUNSCategory({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateUNSCategory\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateUNSCategory({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateUNSCategory\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createUNSAlloyGroup({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateUNSAlloyGroup\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateUNSAlloyGroup({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateUNSAlloyGroup\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createSawCalcGroup({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const sawCalcGroupID = payload.sawCalcGroupID;\r\n const sawCalcGroupName = payload.sawCalcGroupName;\r\n const sawCalcGroupDescription = payload.sawCalcGroupDescription;\r\n const machinabilityGroupBiMetal = payload.machinabilityGroupBiMetal;\r\n const machinabilityGroupCarbide = payload.machinabilityGroupCarbide;\r\n const machinabilityRating = parseFloat(payload.machinabilityRating);\r\n const defaultHBHardness = payload.defaultHBHardness;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateSawCalcGroup\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n SawCalcGroupID: sawCalcGroupID,\r\n SawCalcGroupName: sawCalcGroupName,\r\n SawCalcGroupDescription: sawCalcGroupDescription,\r\n MachinabilityGroupBiMetal: machinabilityGroupBiMetal,\r\n MachinabilityGroupCarbide: machinabilityGroupCarbide,\r\n MachinabilityRating: machinabilityRating,\r\n DefaultHBHardness: defaultHBHardness,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateSawCalcGroup({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const sawCalcGroupID = payload.sawCalcGroupID;\r\n const sawCalcGroupName = payload.sawCalcGroupName;\r\n const sawCalcGroupDescription = payload.sawCalcGroupDescription;\r\n const machinabilityGroupBiMetal = payload.machinabilityGroupBiMetal;\r\n const machinabilityGroupCarbide = payload.machinabilityGroupCarbide;\r\n const machinabilityRating = parseFloat(payload.machinabilityRating);\r\n const defaultHBHardness = payload.defaultHBHardness;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateSawCalcGroup\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n SawCalcGroupID: sawCalcGroupID,\r\n SawCalcGroupName: sawCalcGroupName,\r\n SawCalcGroupDescription: sawCalcGroupDescription,\r\n MachinabilityGroupBiMetal: machinabilityGroupBiMetal,\r\n MachinabilityGroupCarbide: machinabilityGroupCarbide,\r\n MachinabilityRating: machinabilityRating,\r\n DefaultHBHardness: defaultHBHardness,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createUNSGeneralDescription({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateUNSGeneralDescription\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateUNSGeneralDescription({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateUNSGeneralDescription\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createSubCategory({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateSubCategory\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateSubCategory({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const value = payload.value;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateSubCategory\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ID: id,\r\n Value: value,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const designation = payload.designation;\r\n const materialStandardID = payload.materialStandardID;\r\n const uns = payload.uns;\r\n const unsCategoryID = payload.unsCategoryID;\r\n const unsAlloyGroupID = payload.unsAlloyGroupID;\r\n const sawCalcGroupID = payload.sawCalcGroupID;\r\n const compositeUNS = payload.compositeUNS;\r\n const unsGeneralDescriptionID = payload.unsGeneralDescriptionID;\r\n const subCategoryID = payload.subCategoryID;\r\n const quickSearch = payload.quickSearch;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"CreateMaterial\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n MaterialID: id,\r\n Designation: designation,\r\n MaterialStandardID: materialStandardID,\r\n UNS: uns,\r\n UNSCategoryID: unsCategoryID,\r\n UNSAlloyGroupID: unsAlloyGroupID,\r\n SawCalcGroupID: sawCalcGroupID,\r\n CompositeUNS: compositeUNS,\r\n UNSGeneralDescriptionID: unsGeneralDescriptionID,\r\n SubCategoryID: subCategoryID,\r\n QuickSearch: quickSearch,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"itemExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const id = payload.id;\r\n const designation = payload.designation;\r\n const materialStandardID = payload.materialStandardID;\r\n const uns = payload.uns;\r\n const unsCategoryID = payload.unsCategoryID;\r\n const unsAlloyGroupID = payload.unsAlloyGroupID;\r\n const sawCalcGroupID = payload.sawCalcGroupID;\r\n const compositeUNS = payload.compositeUNS;\r\n const unsGeneralDescriptionID = payload.unsGeneralDescriptionID;\r\n const subCategoryID = payload.subCategoryID;\r\n const quickSearch = payload.quickSearch;\r\n const orderInList = payload.orderInList;\r\n\r\n const url = config.url() + \"UpdateMaterial\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n MaterialID: id,\r\n Designation: designation,\r\n MaterialStandardID: materialStandardID,\r\n UNS: uns,\r\n UNSCategoryID: unsCategoryID,\r\n UNSAlloyGroupID: unsAlloyGroupID,\r\n SawCalcGroupID: sawCalcGroupID,\r\n CompositeUNS: compositeUNS,\r\n UNSGeneralDescriptionID: unsGeneralDescriptionID,\r\n SubCategoryID: subCategoryID,\r\n QuickSearch: quickSearch,\r\n OrderInList: orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingItem\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating item: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n deleteMaterial({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const materialID = payload.material.id;\r\n\r\n const url = config.url() + \"DeleteMaterial/\" + materialID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorDeletingMaterial\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingMaterial\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error deleting material: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting material: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n materialsCleanup({ dispatch, getters }) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"MaterialsCleanup\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorMaterialsCleanup\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorMaterialsCleanup\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error materials cleanup: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error materials cleanup: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getChemicalCompositions({ dispatch, getters }, payload) {\r\n return new Promise((resolve, reject) => {\r\n const materialID = payload;\r\n\r\n const url = config.url() + \"GetChemicalCompositions/\" + materialID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const list = res.ChemicalCompositionList;\r\n\r\n let chemicalCompositions = list.map((o) => ({\r\n materialElementID: o.MaterialElementID,\r\n materialID: o.MaterialID,\r\n elementID: o.ElementID,\r\n name: o.Name,\r\n symbol: o.Symbol,\r\n minPercent: o.MinPercent,\r\n maxPercent: o.MaxPercent,\r\n orderInList: o.OrderInList,\r\n elementDescription: o.Symbol + \" - \" + o.Name,\r\n }));\r\n\r\n resolve({\r\n code: res.Code,\r\n message: res.Description,\r\n list: chemicalCompositions,\r\n });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n let message;\r\n dispatch(\"getTranslation\", \"chemicalCompositionsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorGettingChemicalCompositions\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting chemical compositions: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting chemical compositions: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateChemicalCompositions({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const materialID = payload.id;\r\n\r\n const list = payload.list.map((o) => ({\r\n MaterialElementID: o.materialElementID,\r\n MaterialID: o.materialID,\r\n ElementID: o.elementID,\r\n MinPercent: o.minPercent,\r\n MaxPercent: o.maxPercent,\r\n }));\r\n\r\n const url = config.url() + \"UpdateChemicalCompositions\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n MaterialID: materialID,\r\n List: list,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n dispatch(\r\n \"getTranslation\",\r\n \"errorUpdatingChemicalCompositions\"\r\n ).then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingChemicalCompositions\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating chemical compositions: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating chemical compositions: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // ProductLines\r\n\r\n getProductLines({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetProductLines/_/_\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_PRODUCT_LINES\", res.ProductLinesList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_PRODUCT_LINES\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"productLinesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_PRODUCT_LINES\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingProductLines\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting productLines: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting productLines: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createProductLine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productLine = payload.productLine;\r\n\r\n const url = config.url() + \"CreateProductLine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ProductFamily: productLine.productFamily,\r\n ProductType: productLine.productType,\r\n PitchLevel: productLine.pitchLevel,\r\n TPI: productLine.tpi,\r\n AveragePitch: productLine.averagePitch,\r\n AverageGulletArea: productLine.averageGulletArea,\r\n GulletFill: productLine.gulletFill,\r\n BWL1: productLine.bwl1,\r\n BWL2: productLine.bwl2,\r\n BWL3: productLine.bwl3,\r\n BWL4: productLine.bwl4,\r\n BWL5: productLine.bwl5,\r\n BWL6: productLine.bwl6,\r\n BWL7: productLine.bwl7,\r\n BWL8: productLine.bwl8,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductLine;\r\n\r\n resolve({ message: res.Description, productLine: item });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"productLineExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingProductLine\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingProductLine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating productLine: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating productLine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateProductLine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productLine = payload.productLine;\r\n\r\n const url = config.url() + \"UpdateProductLine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ProductLineID: productLine.productLineID,\r\n ProductFamily: productLine.productFamily,\r\n ProductType: productLine.productType,\r\n PitchLevel: productLine.pitchLevel,\r\n TPI: productLine.tpi,\r\n AveragePitch: productLine.averagePitch,\r\n AverageGulletArea: productLine.averageGulletArea,\r\n GulletFill: productLine.gulletFill,\r\n BWL1: productLine.bwl1,\r\n BWL2: productLine.bwl2,\r\n BWL3: productLine.bwl3,\r\n BWL4: productLine.bwl4,\r\n BWL5: productLine.bwl5,\r\n BWL6: productLine.bwl6,\r\n BWL7: productLine.bwl7,\r\n BWL8: productLine.bwl8,\r\n Active: productLine.active,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductLine;\r\n\r\n resolve({ message: res.Description, productLine: item });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductLine\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductLine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating productLine: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating productLine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n deleteProductLine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productLineID = payload.productLine.productLineID;\r\n\r\n const url = config.url() + \"DeleteProductLine/\" + productLineID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorDeletingProductLine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingProductLine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error deleting productLine: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting productLine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // ProductTypes\r\n\r\n getProductTypes({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetProductTypes/1/1\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_PRODUCT_TYPES\", res.ProductTypesList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_PRODUCT_TYPES\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"productTypesNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_PRODUCT_TYPES\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingProductTypes\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting productTypes: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting productTypes: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createProductType({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productType = payload;\r\n\r\n const url = config.url() + \"CreateProductType\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ProductTypeName: productType.productTypeName,\r\n ProductTypeDescription: productType.productTypeDescription,\r\n OrderInList: productType.orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductType;\r\n\r\n resolve({ message: res.Description, productType: item });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"productTypeExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingProductType\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingProductType\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating productType: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating productType: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateProductType({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productType = payload;\r\n\r\n const url = config.url() + \"UpdateProductType\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ProductTypeID: productType.productTypeID,\r\n ProductTypeName: productType.productTypeName,\r\n ProductTypeDescription: productType.productTypeDescription,\r\n OrderInList: productType.orderInList,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductType;\r\n\r\n resolve({ message: res.Description, productType: item });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductType\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductType\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating productType: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating productType: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Recommendations\r\n\r\n getAdminRecommendations({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetRecommendationDownloads\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\r\n \"SET_RECOMMENDATIONS_ADMIN\",\r\n res.RecommendationDownloadsList\r\n );\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_RECOMMENDATIONS_ADMIN\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"recommendationsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_RECOMMENDATIONS_ADMIN\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingRecommendations\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting recommendations: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting recommendations: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n saveAdminRecommendationsSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_RECOMMENDATIONS_ADMIN_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"recommendationsAdminSettings\",\r\n value: getters.recommendationsAdminSettings,\r\n });\r\n },\r\n reloadAdminRecommendationsSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_SETTINGS_COMPONENT\");\r\n },\r\n saveRecommendationDownloads({ commit, dispatch, getters }) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const numberOfRecords = 5000;\r\n\r\n const url = config.url() + \"SaveRecommendationDownloads/\" + numberOfRecords;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios.create();\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n responseType: \"blob\",\r\n })\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n const fileName = calculations.downloadFileName(\r\n \"Recommendations History\",\r\n \".csv\"\r\n );\r\n\r\n const fileURL = window.URL.createObjectURL(new Blob([res]));\r\n\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(fileURL, fileName);\r\n } else {\r\n const fileLink = document.createElement(\"a\");\r\n fileLink.href = fileURL;\r\n fileLink.setAttribute(\"download\", fileName);\r\n\r\n document.body.appendChild(fileLink);\r\n\r\n fileLink.click();\r\n document.body.removeChild(fileLink);\r\n }\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"reportCreated\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: returnCode.Success, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n deleteRecommendationDownloads({ dispatch, getters }) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n const numberOfRecords = 5000;\r\n\r\n const url =\r\n config.url() + \"DeleteRecommendationDownloads/\" + numberOfRecords;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorDeletingRecords\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingRecords\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting records: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting records: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // Parameters\r\n\r\n getParameters({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetParameters\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_PARAMETERS\", res.ParametersList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_PARAMETERS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"parametersNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_PARAMETERS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingParameters\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting parameters: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting parameters: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateParameter({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const parameter = payload;\r\n\r\n const url = config.url() + \"UpdateParameter\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ParameterID: parameter.parameterID,\r\n ParameterName: parameter.parameterName,\r\n ParameterValue: parameter.parameterValue,\r\n ParameterDescription: parameter.parameterDescription,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductType;\r\n\r\n resolve({ message: res.Description, productType: item });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingParameter\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingParameter\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating parameter: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating parameter: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getProductSelections({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetProductSelections\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_PRODUCT_SELECTIONS\", res.ProductSelectionsList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_PRODUCT_SELECTIONS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"productSelectionsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_PRODUCT_SELECTIONS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingProductSelections\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting productSelections: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting productSelections: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateProductSelection({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productSelection = payload;\r\n\r\n const url = config.url() + \"UpdateProductSelection\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ProductSelectionID: productSelection.productSelectionID,\r\n ApplicationScenario: productSelection.applicationScenario,\r\n Good: productSelection.good,\r\n Better: productSelection.better,\r\n Best: productSelection.best,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductType;\r\n\r\n resolve({ message: res.Description, productType: item });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductSelection\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductSelection\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating productSelection: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating productSelection: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getProductRecommendations({ commit, dispatch, getters }) {\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetProductRecommendations\";\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_PRODUCT_RECOMMENDATIONS\", res.ProductRecommendationsList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_PRODUCT_RECOMMENDATIONS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"productRecommendationsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_PRODUCT_RECOMMENDATIONS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingProductRecommendations\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting product recommendations: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting product recommendations: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateProductRecommendation({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const productRecommendation = payload;\r\n\r\n const url = config.url() + \"UpdateProductRecommendation\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ProductRecommendationID: productRecommendation.productRecommendationID,\r\n MRG: productRecommendation.mrg,\r\n ColumnIndex: productRecommendation.columnIndex,\r\n ColumnName: productRecommendation.columnName,\r\n ProductType: productRecommendation.productType,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.ProductType;\r\n\r\n resolve({ message: res.Description, productType: item });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductRecommendation\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingProductRecommendation\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating product recommendation: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating product recommendation: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n\r\n // User\r\n\r\n // Logo\r\n\r\n getUserLogoSource({ commit, dispatch }, payload) {\r\n const fileName = payload.fileName;\r\n\r\n if (!fileName) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetImage/\" + fileName;\r\n\r\n axios\r\n .create()\r\n .get(url)\r\n .then((response) => {\r\n const error = api.responseError(response.headers);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n commit(\"SET_USER_LOGO_URL\", null);\r\n } else {\r\n const res = response.data;\r\n\r\n const base64string = imageConversion.arrayBufferToBase64(res);\r\n\r\n commit(\"SET_USER_LOGO_URL\", base64string);\r\n }\r\n })\r\n .catch(() => {\r\n commit(\"SET_USER_LOGO_URL\", null);\r\n\r\n // eslint-disable-next-line\r\n console.error(\"Error getting image\");\r\n });\r\n },\r\n updateUserLogo({ commit, dispatch, getters }, payload) {\r\n const userID = getters.user.userID;\r\n const imageID = payload.imageID;\r\n const file = payload.file;\r\n const fileName = file.name;\r\n\r\n const url =\r\n config.url() +\r\n \"UpdateUserLogo/\" +\r\n userID +\r\n \"/\" +\r\n imageID +\r\n \"/\" +\r\n fileName;\r\n\r\n const form = new FormData();\r\n form.append(\"image\", file);\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, form, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data.UpdateUserLogoResult;\r\n\r\n if (res.Code == returnCode.Success) {\r\n let imageID = null;\r\n let fileName = \"\";\r\n\r\n if (res.ImageID) {\r\n imageID = parseInt(res.ImageID);\r\n }\r\n\r\n if (res.FileName) {\r\n fileName = res.FileName;\r\n }\r\n\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n let base64string = reader.result;\r\n\r\n commit(\"SET_USER_LOGO_SOURCE\", {\r\n url: base64string,\r\n imageID: imageID,\r\n fileName: fileName,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"user\",\r\n value: getters.user,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n };\r\n reader.readAsDataURL(file);\r\n } else {\r\n commit(\"SET_USER_LOGO_SOURCE\", {\r\n data: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"user\",\r\n value: getters.user,\r\n });\r\n\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_LOGO_SOURCE\", {\r\n data: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"user\",\r\n value: getters.user,\r\n });\r\n\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n removeUserLogo({ commit, dispatch, getters }) {\r\n const userID = getters.user.userID;\r\n\r\n const url = config.url() + \"RemoveUserLogo/\" + userID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USER_LOGO_SOURCE\", {\r\n data: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"user\",\r\n value: getters.user,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n commit(\"SET_USER_LOGO_SOURCE\", {\r\n data: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"user\",\r\n value: getters.user,\r\n });\r\n\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_LOGO_SOURCE\", {\r\n data: null,\r\n });\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"user\",\r\n value: getters.user,\r\n });\r\n\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n\r\n // Machines\r\n\r\n async createUserMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machine = await dispatch(\"getMachineFromInput\", {\r\n machine: payload.machine,\r\n uom: payload.uom,\r\n });\r\n const url = config.url() + \"CreateMachine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n ManufacturerName: machine.manufacturerName,\r\n Model: machine.model,\r\n BladeWidthIn: machine.bladeWidthIn,\r\n BladeWidthFr: machine.bladeWidthFr,\r\n BladeWidthMetric: machine.bladeWidthMetric,\r\n BladeThicknessImperial: machine.bladeThicknessImperial,\r\n BladeThicknessMetric: machine.bladeThicknessMetric,\r\n BladeLengthFt: machine.bladeLengthFt,\r\n BladeLengthIn: machine.bladeLengthIn,\r\n BladeLengthFr: machine.bladeLengthFr,\r\n BladeLengthImperial: machine.bladeLengthImperial,\r\n BladeLengthMetric: machine.bladeLengthMetric,\r\n Hortizontal: machine.hortizontal,\r\n ScissorPivot: machine.scissorPivot,\r\n CantedHead: machine.cantedHead,\r\n BandSpeedMinImperial: machine.bandSpeedMinImperial,\r\n BandSpeedMaxImperial: machine.bandSpeedMaxImperial,\r\n BandSpeedMinMetric: machine.bandSpeedMinMetric,\r\n BandSpeedMaxMetric: machine.bandSpeedMaxMetric,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.Machine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else if (res.Code == returnCode.ErrRecordExists) {\r\n dispatch(\"getTranslation\", \"machineExists\").then(\r\n (response) => {\r\n reject({ code: res.Code, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n dispatch(\"getTranslation\", \"errorCreatingMachine\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorCreatingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n async updateUserMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machine = await dispatch(\"getMachineFromInput\", {\r\n machine: payload.machine,\r\n uom: payload.uom,\r\n });\r\n machine.userMachineID = payload.machine.userMachineID;\r\n machine.machineName = payload.machine.machineName;\r\n\r\n \r\n\r\n const url = config.url() + \"UpdateUserMachine\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserMachineID: machine.userMachineID,\r\n MachineName: machine.machineName,\r\n ManufacturerName: machine.manufacturerName,\r\n Model: machine.model,\r\n BladeWidthIn: machine.bladeWidthIn,\r\n BladeWidthFr: machine.bladeWidthFr,\r\n BladeWidthMetric: machine.bladeWidthMetric,\r\n BladeThicknessImperial: machine.bladeThicknessImperial,\r\n BladeThicknessMetric: machine.bladeThicknessMetric,\r\n BladeLengthFt: machine.bladeLengthFt,\r\n BladeLengthIn: machine.bladeLengthIn,\r\n BladeLengthFr: machine.bladeLengthFr,\r\n BladeLengthImperial: machine.bladeLengthImperial,\r\n BladeLengthMetric: machine.bladeLengthMetric,\r\n Hortizontal: machine.hortizontal,\r\n ScissorPivot: machine.scissorPivot,\r\n CantedHead: machine.cantedHead,\r\n BandSpeedMinImperial: machine.bandSpeedMinImperial,\r\n BandSpeedMaxImperial: machine.bandSpeedMaxImperial,\r\n BandSpeedMinMetric: machine.bandSpeedMinMetric,\r\n BandSpeedMaxMetric: machine.bandSpeedMaxMetric,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserMachine;\r\n\r\n dispatch(\"getMachineFromResponse\", item).then((response) => {\r\n response.userMachineID = item.UserMachineID;\r\n response.machineName = item.MachineName;\r\n\r\n resolve({ message: res.Description, machine: response });\r\n });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingMachine\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorUpdatingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n deleteUserMachine({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const machineID = payload.machine.machineID;\r\n\r\n const url = config.url() + \"DeleteMachine/\" + machineID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorDeletingMachine\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingMachine\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting machine: \" + error.response.data);\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting machine: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n getUserMachineImages({ dispatch }, payload) {\r\n const list = payload.list;\r\n\r\n list.forEach(async (item) => {\r\n await dispatch(\"getUserMachineImageSource\", {\r\n id: item.userMachineID,\r\n fileName: item.fileName,\r\n });\r\n });\r\n },\r\n getUserMachineImageSource({ commit, dispatch }, payload) {\r\n const id = payload.id;\r\n const fileName = payload.fileName;\r\n\r\n if (!fileName) {\r\n return;\r\n }\r\n\r\n const url = config.url() + \"GetImage/\" + fileName;\r\n\r\n axios\r\n .create()\r\n .get(url)\r\n .then((response) => {\r\n const error = api.responseError(response.headers);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", { id: id, data: null });\r\n } else {\r\n const res = response.data;\r\n\r\n const base64string = imageConversion.arrayBufferToBase64(res);\r\n\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: id,\r\n data: base64string,\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", { id: id, data: null });\r\n\r\n // eslint-disable-next-line\r\n console.error(\"Error getting image\");\r\n });\r\n },\r\n updateUserMachineImage({ commit, dispatch, getters }, payload) {\r\n const userID = getters.user.userID;\r\n const userMachineID = payload.userMachineID;\r\n const imageID = payload.imageID;\r\n const file = payload.file;\r\n const fileName = file.name;\r\n\r\n const url =\r\n config.url() +\r\n \"UpdateUserMachineImage/\" +\r\n userID +\r\n \"/\" +\r\n userMachineID +\r\n \"/\" +\r\n imageID +\r\n \"/\" +\r\n fileName;\r\n\r\n const form = new FormData();\r\n form.append(\"image\", file);\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(url, form, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data.UpdateUserMachineImageResult;\r\n\r\n if (res.Code == returnCode.Success) {\r\n let imageID = null;\r\n\r\n if (res.ImageID) {\r\n imageID = parseInt(res.ImageID);\r\n }\r\n\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n let base64string = reader.result;\r\n\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: userMachineID,\r\n url: base64string,\r\n imageID: imageID,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n };\r\n reader.readAsDataURL(file);\r\n } else {\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: userMachineID,\r\n data: null,\r\n });\r\n\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: userMachineID,\r\n data: null,\r\n });\r\n\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n removeUserMachineImage({ commit, dispatch, getters }, payload) {\r\n const userID = getters.user.userID;\r\n const userMachineID = payload.userMachineID;\r\n\r\n const url =\r\n config.url() + \"RemoveUserMachineImage/\" + userID + \"/\" + userMachineID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: userMachineID,\r\n data: null,\r\n });\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: userMachineID,\r\n data: null,\r\n });\r\n\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_MACHINE_IMAGE_SOURCE\", {\r\n id: userMachineID,\r\n data: null,\r\n });\r\n\r\n reject(error.message);\r\n });\r\n });\r\n },\r\n\r\n // Materials\r\n\r\n getMachineFromInput({ getters }, payload) {\r\n const machine = payload.machine;\r\n const uom = payload.uom;\r\n\r\n if (machine == null || uom == null) {\r\n return;\r\n }\r\n\r\n const machineID = machine.machineID;\r\n const manufacturerID = machine.manufacturerID;\r\n const manufacturerName = machine.manufacturerName;\r\n const model = machine.model;\r\n\r\n let bladeWidthIn = 0;\r\n let bladeWidthFr = null;\r\n let bladeWidthMetric = 0;\r\n let bladeThicknessImperial = 0;\r\n let bladeThicknessMetric = 0;\r\n let bladeLengthFt = 0;\r\n let bladeLengthIn = null;\r\n let bladeLengthFr = null;\r\n let bladeLengthImperial = 0;\r\n let bladeLengthMetric = 0;\r\n\r\n const hortizontal = machine.machineOrientation == 0;\r\n const scissorPivot = machine.scissorPivot != 1 ? false : true;\r\n const cantedHead = machine.cantedHead !=1 ? false : true;\r\n\r\n let bandSpeedMinImperial = 0;\r\n let bandSpeedMaxImperial = 0;\r\n let bandSpeedMinMetric = 0;\r\n let bandSpeedMaxMetric = 0;\r\n\r\n if (uom == 0) {\r\n if (machine.bladeWidthImperial) {\r\n bladeWidthIn = parseInt(machine.bladeWidthImperial.value);\r\n bladeWidthFr = machine.bladeWidthImperial.value - bladeWidthIn;\r\n\r\n const bladeWidth = calculations.getBladeWidth(machine, false, getters.bladeWidthImperialList, getters.bladeWidthMetricList);\r\n bladeWidthMetric = bladeWidth.mm;\r\n }\r\n\r\n bladeThicknessImperial = machine.bladeThicknessImperial;\r\n\r\n const bladeThickness = calculations.getBladeThickness(machine, false, getters.bladeThicknessImperialList, getters.bladeThicknessMetricList);\r\n bladeThicknessMetric= bladeThickness.mm;\r\n\r\n bladeLengthFt = parseInt(machine.bladeLengthFt);\r\n\r\n if (machine.bladeLengthIn != null) {\r\n bladeLengthIn = parseInt(machine.bladeLengthIn);\r\n }\r\n\r\n if (machine.bladeLengthFr) {\r\n bladeLengthFr = machine.bladeLengthFr.value;\r\n }\r\n\r\n bladeLengthImperial = calculations.lengthImperial(\r\n bladeLengthFt,\r\n bladeLengthIn,\r\n bladeLengthFr\r\n );\r\n\r\n const bladeLength = calculations.getBladeLength(machine, false)\r\n bladeLengthMetric = bladeLength.mm;\r\n bladeLengthMetric = bladeLengthMetric ? parseInt(bladeLengthMetric) : 0;\r\n\r\n bandSpeedMinImperial = parseInt(machine.bandSpeedMinImperial);\r\n bandSpeedMaxImperial = parseInt(machine.bandSpeedMaxImperial);\r\n\r\n bandSpeedMinMetric = parseInt(calculations.fpmToMpm(bandSpeedMinImperial));\r\n bandSpeedMaxMetric = parseInt(calculations.fpmToMpm(bandSpeedMaxImperial));\r\n\r\n } else {\r\n bladeWidthMetric = machine.bladeWidthMetric;\r\n bladeThicknessMetric = machine.bladeThicknessMetric;\r\n bladeLengthMetric = parseInt(machine.bladeLengthMetric);\r\n bandSpeedMinMetric = parseInt(machine.bandSpeedMinMetric);\r\n bandSpeedMaxMetric = parseInt(machine.bandSpeedMaxMetric);\r\n\r\n const bladeWidth = calculations.getBladeWidth(machine, true, getters.bladeWidthImperialList, getters.bladeWidthMetricList);\r\n bladeWidthIn = bladeWidth.in;\r\n bladeWidthFr = bladeWidth.fr;\r\n\r\n const bladeThickness = calculations.getBladeThickness(machine, true, getters.bladeThicknessImperialList, getters.bladeThicknessMetricList);\r\n bladeThicknessImperial = bladeThickness.in;\r\n\r\n const bladeLength = calculations.getBladeLength(machine, true);\r\n bladeLengthImperial = bladeLength.imperial;\r\n bladeLengthFt = bladeLength.ft;\r\n bladeLengthIn = bladeLength.in;\r\n bladeLengthFr = bladeLength.fr;\r\n \r\n bandSpeedMinImperial = calculations.mpmToFpm(machine.bandSpeedMinMetric);\r\n bandSpeedMaxImperial = calculations.mpmToFpm(machine.bandSpeedMaxMetric);\r\n }\r\n\r\n return new Promise((resolve) => {\r\n const item = {\r\n machineID: machineID,\r\n manufacturerID: manufacturerID,\r\n manufacturerName: manufacturerName,\r\n model: model,\r\n bladeWidthIn: bladeWidthIn,\r\n bladeWidthFr: bladeWidthFr,\r\n bladeWidthMetric: bladeWidthMetric,\r\n bladeThicknessImperial: bladeThicknessImperial,\r\n bladeThicknessMetric: bladeThicknessMetric,\r\n bladeLengthFt: bladeLengthFt,\r\n bladeLengthIn: bladeLengthIn,\r\n bladeLengthFr: bladeLengthFr,\r\n bladeLengthImperial: bladeLengthImperial,\r\n bladeLengthMetric: bladeLengthMetric,\r\n hortizontal: hortizontal,\r\n scissorPivot: scissorPivot,\r\n cantedHead: cantedHead,\r\n bandSpeedMinImperial: bandSpeedMinImperial,\r\n bandSpeedMaxImperial: bandSpeedMaxImperial,\r\n bandSpeedMinMetric: bandSpeedMinMetric,\r\n bandSpeedMaxMetric: bandSpeedMaxMetric,\r\n };\r\n\r\n resolve(item);\r\n });\r\n },\r\n\r\n // UserRecommendations\r\n\r\n getUserRecommendations({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n let userID = payload.userID;\r\n\r\n if (!userID) {\r\n userID = getters.user.userID;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUserRecommendations/\" + userID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_USER_RECOMMENDATIONS\", res.UserRecommendationsList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_USER_RECOMMENDATIONS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"userRecommendationsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_USER_RECOMMENDATIONS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingUserRecommendations\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting userRecommendations: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting userRecommendations: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n createUserRecommendation({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const recommendation = payload.recommendation;\r\n const custom = payload.custom;\r\n const costCalculation = payload.costCalculation;\r\n\r\n if (costCalculation != undefined && costCalculation != null) {\r\n const measurement = costCalculation.measurement;\r\n\r\n if (measurement != undefined && measurement != null) {\r\n if (\r\n measurement.measurementImperial == undefined ||\r\n measurement.measurementImperial == null\r\n ) {\r\n measurement.measurementImperial = 0;\r\n }\r\n\r\n if (\r\n measurement.measurementMetric == undefined ||\r\n measurement.measurementMetric == null\r\n ) {\r\n measurement.measurementMetric = 0;\r\n }\r\n }\r\n }\r\n\r\n const input = JSON.parse(JSON.stringify(getters.input));\r\n delete input.material.chemicalComposition;\r\n\r\n const now = new Date();\r\n const today =\r\n now.getFullYear() + \"-\" + (now.getMonth() + 1) + \"-\" + now.getDate();\r\n const recommendationTitle = recommendation.title + \" \" + today;\r\n\r\n const url = config.url() + \"CreateUserRecommendation\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserID: getters.user.userID,\r\n UserMachineID: input.machine.userMachineID,\r\n UserMaterialID: input.material.userMaterialID,\r\n RecommendationName: recommendationTitle,\r\n Input: JSON.stringify(input),\r\n Recommendation: JSON.stringify(recommendation),\r\n Custom: JSON.stringify(custom),\r\n CostCalculation: JSON.stringify(costCalculation),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserRecommendation;\r\n\r\n resolve({ message: res.Description, userRecommendation: item });\r\n } else {\r\n dispatch(\r\n \"getTranslation\",\r\n \"errorCreatingUserRecommendation\"\r\n ).then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n dispatch(\"getTranslation\", \"errorCreatingUserRecommendation\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error creating userRecommendation: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error creating userRecommendation: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateUserRecommendation({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userRecommendationID = payload.userRecommendationID;\r\n const recommendationName = payload.recommendationName;\r\n const input = payload.input;\r\n const recommendation = payload.recommendation;\r\n const custom = payload.custom;\r\n const costCalculation = payload.costCalculation;\r\n\r\n delete input.material.chemicalComposition;\r\n\r\n const url = config.url() + \"UpdateUserRecommendation\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n UserRecommendationID: userRecommendationID,\r\n UserID: getters.user.userID,\r\n UserMachineID: input.machine.userMachineID,\r\n UserMaterialID: input.material.userMaterialID,\r\n RecommendationName: recommendationName,\r\n Input: JSON.stringify(input),\r\n Recommendation: JSON.stringify(recommendation),\r\n Custom: JSON.stringify(custom),\r\n CostCalculation: JSON.stringify(costCalculation),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.UserRecommendation;\r\n\r\n resolve({ message: res.Description, userRecommendation: item });\r\n } else {\r\n dispatch(\r\n \"getTranslation\",\r\n \"errorUpdatingUserRecommendation\"\r\n ).then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n dispatch(\"getTranslation\", \"errorUpdatingUserRecommendation\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating userRecommendation: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating userRecommendation: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n deleteUserRecommendation({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userRecommendationID = payload.userRecommendationID;\r\n\r\n const url =\r\n config.url() + \"DeleteUserRecommendation/\" + userRecommendationID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\r\n \"getTranslation\",\r\n \"errorDeletingUserRecommendation\"\r\n ).then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingUserRecommendation\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error deleting userRecommendation: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting userRecommendation: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n saveRecommendationsUserSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_RECOMMENDATIONS_USER_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"recommendationsUserSettings\",\r\n value: getters.recommendationsUserSettings,\r\n });\r\n },\r\n reloadUserRecommendationsSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_SETTINGS_COMPONENT\");\r\n },\r\n openRecommendationReport({ commit, dispatch, getters }, payload) {\r\n const userRecommendation = payload;\r\n\r\n const input = JSON.parse(JSON.stringify(userRecommendation.input));\r\n delete input.material.chemicalComposition;\r\n\r\n let recommendation = JSON.parse(\r\n JSON.stringify(userRecommendation.recommendation)\r\n );\r\n\r\n const custom = userRecommendation.custom;\r\n\r\n if (\r\n custom != undefined &&\r\n custom != null &&\r\n custom.recommendation != undefined &&\r\n custom.recommendation != null\r\n ) {\r\n recommendation = custom.recommendation;\r\n }\r\n\r\n const sawCalcOutput = [\r\n {\r\n Recommendation: recommendation,\r\n CostCalculation: userRecommendation.costCalculation,\r\n },\r\n ];\r\n\r\n const obj = {\r\n Input: input,\r\n SawCalcOutput: sawCalcOutput,\r\n };\r\n\r\n const url = config.url() + \"GetRecommendationReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(obj),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n responseType: \"blob\",\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n const file = new Blob([res], { type: \"application/pdf\" });\r\n const objectURL = URL.createObjectURL(file);\r\n\r\n window.open(objectURL);\r\n URL.revokeObjectURL(file);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"reportCreated\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: returnCode.Success, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n emailRecommendationSavedReport({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const userRecommendation = payload;\r\n\r\n const input = JSON.parse(JSON.stringify(userRecommendation.input));\r\n delete input.material.chemicalComposition;\r\n\r\n const sawCalcOutput = [\r\n {\r\n Recommendation: userRecommendation.recommendation,\r\n CostCalculation: userRecommendation.costCalculation,\r\n },\r\n ];\r\n\r\n const obj = {\r\n Input: input,\r\n SawCalcOutput: sawCalcOutput,\r\n };\r\n\r\n const url = config.url() + \"EmailRecommendationReport\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n Json: JSON.stringify(obj),\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ code: res.Code, message: res.Description });\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n reject(error);\r\n });\r\n });\r\n },\r\n\r\n // CuttingCharts\r\n\r\n getCuttingCharts({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n let userID = payload.userID;\r\n\r\n if (!userID) {\r\n userID = getters.user.userID;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetCuttingCharts/\" + userID;\r\n\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n })\r\n .then((response) => {\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n commit(\"SET_CUTTING_CHARTS\", res.CuttingChartsList);\r\n\r\n resolve({ code: res.Code, message: res.Description });\r\n } else if (res.Code == returnCode.ErrRecordNotFound) {\r\n commit(\"SET_CUTTING_CHARTS\", null);\r\n\r\n let message;\r\n dispatch(\"getTranslation\", \"cuttingChartsNotFound\").then(\r\n (response) => {\r\n message = response;\r\n resolve({ code: res.Code, message: message });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n reject({ code: res.Code, message: res.Description });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_CUTTING_CHARTS\", null);\r\n\r\n dispatch(\"getTranslation\", \"errorGettingCuttingCharts\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error getting cuttingCharts: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error getting cuttingCharts: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n updateCuttingChart({ commit, dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const cuttingChartID = payload.cuttingChartID;\r\n const cuttingChartName = payload.cuttingChartName;\r\n const userID = payload.userID;\r\n const metric = payload.metric;\r\n const machine = payload.machine;\r\n const productImperial = payload.productImperial;\r\n const productMetric = payload.productMetric;\r\n const dimensionMin = payload.dimensionMin;\r\n const dimensionMax = payload.dimensionMax;\r\n const dimensionRange = payload.dimensionRange;\r\n const cuttingChartMaterialGroups = payload.cuttingChartMaterialGroups;\r\n\r\n const url = config.url() + \"UpdateCuttingChart\";\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n commit(\"SET_SAW_CALC_LOADING\", true);\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .post(\r\n url,\r\n {\r\n CuttingChartID: cuttingChartID,\r\n CuttingChartName: cuttingChartName,\r\n UserID: userID,\r\n Metric: metric,\r\n Machine: machine,\r\n ProductImperial: productImperial,\r\n ProductMetric: productMetric,\r\n DimensionMin: dimensionMin,\r\n DimensionMax: dimensionMax,\r\n DimensionRange: dimensionRange,\r\n CuttingChartMaterialGroups: cuttingChartMaterialGroups,\r\n },\r\n {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n }\r\n )\r\n .then((response) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n const item = res.CuttingChart;\r\n\r\n resolve({ message: res.Description, cuttingChart: item });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorUpdatingCuttingChart\").then(\r\n (response) => {\r\n reject({\r\n code: returnCode.ErrBadRequest,\r\n message: response,\r\n });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n commit(\"SET_SAW_CALC_LOADING\", false);\r\n\r\n dispatch(\"getTranslation\", \"errorUpdatingCuttingChart\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error updating cuttingChart: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error updating cuttingChart: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n deleteCuttingChart({ dispatch, getters }, payload) {\r\n if (!getters.user) {\r\n return;\r\n }\r\n\r\n const cuttingChartID = payload.cuttingChartID;\r\n\r\n const url = config.url() + \"DeleteCuttingChart/\" + cuttingChartID;\r\n\r\n dispatch(\"cancelRequest\");\r\n dispatch(\"setAxiosSource\", axios.CancelToken.source());\r\n\r\n return new Promise((resolve, reject) => {\r\n axios\r\n .create()\r\n .get(url, {\r\n headers: api.headers(getters),\r\n cancelToken: getters.axiosSource.token,\r\n })\r\n .then((response) => {\r\n dispatch(\"updateToken\", response);\r\n\r\n const error = api.responseError(response);\r\n\r\n if (error) {\r\n if (api.authenticationError(error.Code)) {\r\n dispatch(\"logoff\");\r\n }\r\n\r\n reject({ code: error.Code, message: error.Description });\r\n } else {\r\n const res = response.data;\r\n\r\n if (res.Code == returnCode.Success) {\r\n resolve({ message: res.Description });\r\n } else {\r\n dispatch(\"getTranslation\", \"errorDeletingCuttingChart\").then(\r\n (response) => {\r\n reject({ code: returnCode.ErrBadRequest, message: response });\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n dispatch(\"getTranslation\", \"errorDeletingCuttingChart\").then(\r\n (response) => {\r\n if (error.response) {\r\n // eslint-disable-next-line\r\n console.error(\r\n \"Error deleting cuttingChart: \" + error.response.data\r\n );\r\n reject({ code: error.response.status, message: response });\r\n } else {\r\n // eslint-disable-next-line\r\n console.error(\"Error deleting cuttingChart: \" + error);\r\n reject({ code: returnCode.ErrNetworkError, message: error });\r\n }\r\n },\r\n (error) => {\r\n // eslint-disable-next-line\r\n console.error(error);\r\n }\r\n );\r\n });\r\n });\r\n },\r\n saveCuttingChartsSettings({ commit, dispatch, getters }, payload) {\r\n commit(\"SET_CUTTING_CHARTS_SETTINGS\", payload);\r\n\r\n dispatch(\"saveSettings\", {\r\n key: \"cuttingChartsSettings\",\r\n value: getters.cuttingChartsSettings,\r\n });\r\n },\r\n reloadCuttingChartsSettingsComponent({ commit }) {\r\n commit(\"RELOAD_DATA_TABLE_SETTINGS_COMPONENT\");\r\n },\r\n\r\n // Snackbar\r\n showSnackbar({ commit }, payload) {\r\n const show = payload.show;\r\n const result = payload.result;\r\n const message = payload.message;\r\n const delay = payload.delay;\r\n\r\n commit(\"SHOW_SNACKBAR\", {\r\n show: show,\r\n result: result,\r\n message: message,\r\n delay: delay,\r\n });\r\n },\r\n closeSnackbar({ commit }) {\r\n commit(\"SHOW_SNACKBAR\", {\r\n show: false,\r\n });\r\n },\r\n};\r\n","const currency = {\r\n dollar: 0,\r\n euro: 1,\r\n pound: 2,\r\n};\r\n\r\nexport { currency };\r\n","import { currency } from \"@/constants/Currency\";\r\nimport { calculations } from \"@/helpers/Calculations\";\r\n\r\nexport default {\r\n snackbar(state) {\r\n return state.snackbar;\r\n },\r\n navigation(state) {\r\n return state.navigation;\r\n },\r\n languages(state) {\r\n return state.languages;\r\n },\r\n language(state) {\r\n return state.language;\r\n },\r\n\r\n footer(state) {\r\n return state.footer;\r\n },\r\n\r\n // Recommendation\r\n // Inputs\r\n\r\n input(state) {\r\n return state.input;\r\n },\r\n metric(state) {\r\n return state.input.metric;\r\n },\r\n inputUOM(state) {\r\n return state.input.inputUOM;\r\n },\r\n bandSpeedUOM(getters) {\r\n return getters.input.metric ? \"mpm\" : \"fpm\";\r\n },\r\n feedRateUOM(getters) {\r\n return getters.input.metric ? \"mm/min\" : \"in/min\";\r\n },\r\n chipLoadUOM(getters) {\r\n return getters.input.metric ? \"mm\" : \"in\";\r\n },\r\n cuttingRateUOM(getters) {\r\n return getters.input.metric ? \"cm²/min\" : \"in²/min\";\r\n },\r\n inputMachine(state) {\r\n return state.input.machine;\r\n },\r\n savedInputMachine(state) {\r\n return state.savedInput.machine;\r\n },\r\n inputMaterial(state) {\r\n return state.input.material;\r\n },\r\n savedInputMaterial(state) {\r\n return state.savedInput.material;\r\n },\r\n inputDimensions(state) {\r\n return state.input.dimensions;\r\n },\r\n inputVising(state) {\r\n return state.input.vising;\r\n },\r\n inputConditions(state) {\r\n return state.input.conditions;\r\n },\r\n inputCurrency(state) {\r\n return state.input.inputCurrency;\r\n },\r\n resetInputs(state) {\r\n return state.input.resetInputs;\r\n },\r\n\r\n // Machines\r\n\r\n machineSelectorDialog(state) {\r\n return state.machineSelectorDialog;\r\n },\r\n manufacturers(state) {\r\n return state.manufacturers;\r\n },\r\n machines(state) {\r\n return state.machines;\r\n },\r\n machine(state) {\r\n return state.machine;\r\n },\r\n userMachines(state) {\r\n return state.userMachines;\r\n },\r\n bladeWidthImperialList(state) {\r\n return state.bladeWidthImperialList;\r\n },\r\n bladeWidthMetricList(state) {\r\n return state.bladeWidthMetricList;\r\n },\r\n bladeThicknessImperialList(state) {\r\n return state.bladeThicknessImperialList;\r\n },\r\n bladeThicknessMetricList(state) {\r\n return state.bladeThicknessMetricList;\r\n },\r\n bladeLengthFtList(state) {\r\n return state.bladeLengthFtList;\r\n },\r\n bladeLengthInList(state) {\r\n return state.bladeLengthInList;\r\n },\r\n bladeLengthFrList(state) {\r\n return state.bladeLengthFrList;\r\n },\r\n bladeLengthMetricList(state) {\r\n return state.bladeLengthMetricList;\r\n },\r\n unknownMachineImperialKey(state) {\r\n return state.unknownMachineImperialKey;\r\n },\r\n unknownMachineMetricKey(state) {\r\n return state.unknownMachineMetricKey;\r\n },\r\n machinesReady(state) {\r\n return state.machinesReady;\r\n },\r\n machineTasks(state) {\r\n return state.machineTasks;\r\n },\r\n\r\n // Materials\r\n\r\n materialSelectorDialog(state) {\r\n return state.materialSelectorDialog;\r\n },\r\n materialStandards(state) {\r\n return state.materialStandards;\r\n },\r\n unsCategories(state) {\r\n return state.unsCategories;\r\n },\r\n unsAlloyGroups(state) {\r\n return state.unsAlloyGroups;\r\n },\r\n sawCalcGroups(state) {\r\n return state.sawCalcGroups;\r\n },\r\n machinabilityGroups(state) {\r\n return state.machinabilityGroups;\r\n },\r\n unsGeneralDescriptions(state) {\r\n return state.unsGeneralDescriptions;\r\n },\r\n subCategories(state) {\r\n return state.subCategories;\r\n },\r\n materials(state) {\r\n return state.materials;\r\n },\r\n selectMaterials(state) {\r\n return state.selectMaterials;\r\n },\r\n material(state) {\r\n return state.material;\r\n },\r\n userMaterials(state) {\r\n return state.userMaterials;\r\n },\r\n scales(state) {\r\n return state.scales;\r\n },\r\n defaultHardness(state) {\r\n return state.defaultHardness;\r\n },\r\n hbHardnessMin(state) {\r\n return state.hbHardnessMin;\r\n },\r\n hbHardnessMinConvertable(state) {\r\n return state.hbHardnessMinConvertable;\r\n },\r\n hbHardnessMax(state) {\r\n return state.hbHardnessMax;\r\n },\r\n hrcHardnessMin(state) {\r\n return state.hrcHardnessMin;\r\n },\r\n hrcHardnessMax(state) {\r\n return state.hrcHardnessMax;\r\n },\r\n materialSelectorDetailsKey(state) {\r\n return state.materialSelectorDetailsKey;\r\n },\r\n materialsReady(state) {\r\n return state.materialsReady;\r\n },\r\n materialTasks(state) {\r\n return state.materialTasks;\r\n },\r\n\r\n // Dimensions\r\n\r\n dimensionsSelectorDialog(state) {\r\n return state.dimensionsSelectorDialog;\r\n },\r\n iBeamGroups(state) {\r\n return state.iBeamGroups;\r\n },\r\n iBeamStandards(state) {\r\n return state.iBeamStandards;\r\n },\r\n dimensionsReady(state) {\r\n return state.dimensionsReady;\r\n },\r\n dimensionTasks(state) {\r\n return state.dimensionTasks;\r\n },\r\n\r\n // Vising\r\n\r\n visingSelectorDialog(state) {\r\n return state.visingSelectorDialog;\r\n },\r\n visingReady(state) {\r\n return state.visingReady;\r\n },\r\n\r\n // Conditions\r\n\r\n conditionsSelectorDialog(state) {\r\n return state.conditionsSelectorDialog;\r\n },\r\n conditionsReady(state) {\r\n return state.conditionsReady;\r\n },\r\n defaultCantingDegrees(state) {\r\n return state.defaultCantingDegrees;\r\n },\r\n\r\n // Product Lines\r\n\r\n productLines(state) {\r\n return state.productLines;\r\n },\r\n productLinesReady(state) {\r\n return state.productLinesReady;\r\n },\r\n productLineTasks(state) {\r\n return state.productLineTasks;\r\n },\r\n\r\n sawCalcReady(state, getters) {\r\n return (\r\n getters.machinesReady &&\r\n getters.materialsReady &&\r\n getters.dimensionsReady &&\r\n getters.visingReady &&\r\n getters.conditionsReady &&\r\n getters.productLinesReady\r\n );\r\n },\r\n\r\n // SawCalc\r\n\r\n sawCalcLoading(state) {\r\n return state.sawCalcLoading;\r\n },\r\n settingsLoaded(state) {\r\n return state.settingsLoaded;\r\n },\r\n\r\n // Recommendation\r\n\r\n recommendations(state) {\r\n return state.recommendations;\r\n },\r\n recommendationUpdated(state) {\r\n return state.recommendationUpdated;\r\n },\r\n\r\n // Cost Calculations\r\n\r\n costCalculations(state) {\r\n return state.costCalculations;\r\n },\r\n currencySymbol(getters) {\r\n if (getters.input.currency == currency.dollar) {\r\n return \"$\";\r\n } else if (getters.input.currency == currency.euro) {\r\n return \"€\";\r\n } else if (getters.input.currency == currency.pound) {\r\n return \"£\";\r\n }\r\n },\r\n measurementUOM(getters) {\r\n return getters.input.metric ? \"cm²\" : \"in²\";\r\n },\r\n\r\n // SawCalc\r\n\r\n selectedRecommendation(state) {\r\n return state.selectedRecommendation;\r\n },\r\n selectedRecommendationForCustom(state) {\r\n return state.selectedRecommendationForCustom;\r\n },\r\n bandSpeedImperialIncrement(state) {\r\n return state.bandSpeedImperialIncrement;\r\n },\r\n bandSpeedMetricIncrement(state) {\r\n return state.bandSpeedMetricIncrement;\r\n },\r\n bandSpeedImperialMin(state) {\r\n return state.bandSpeedMin;\r\n },\r\n bandSpeedMetricMin(state) {\r\n return calculations.fpmToMpm(state.bandSpeedMin);\r\n },\r\n bandSpeedImperialMax(state) {\r\n return state.bandSpeedMax;\r\n },\r\n bandSpeedMetricMax(state) {\r\n return calculations.fpmToMpm(state.bandSpeedMax);\r\n },\r\n feedRateImperialIncrement(state) {\r\n return state.feedRateImperialIncrement;\r\n },\r\n feedRateMetricIncrement(state) {\r\n return state.feedRateMetricIncrement;\r\n },\r\n feedRateImperialMin(state) {\r\n return state.feedRateMin;\r\n },\r\n feedRateMetricMin(state) {\r\n return calculations.inToMM(state.feedRateMin);\r\n },\r\n feedRateImperialMax(state) {\r\n return state.feedRateMax;\r\n },\r\n feedRateMetricMax(state) {\r\n return calculations.inToMM(state.feedRateMax);\r\n },\r\n overrideMin(state) {\r\n return state.overrideMin;\r\n },\r\n overrideMax(state) {\r\n return state.overrideMax;\r\n },\r\n overrideStep(state) {\r\n return state.overrideStep;\r\n },\r\n recommendationKey(state) {\r\n return state.recommendationKey;\r\n },\r\n\r\n // Register\r\n\r\n registerDialog(state) {\r\n return state.registerDialog;\r\n },\r\n\r\n // Login\r\n\r\n loginDialog(state) {\r\n return state.loginDialog;\r\n },\r\n\r\n // Password Reset\r\n\r\n passwordResetDialog(state) {\r\n return state.passwordResetDialog;\r\n },\r\n\r\n // User\r\n\r\n user(state) {\r\n return state.user;\r\n },\r\n\r\n // Axios\r\n\r\n axiosSource(state) {\r\n return state.axiosSource;\r\n },\r\n\r\n // Authentication\r\n\r\n token(state) {\r\n return state.token;\r\n },\r\n\r\n // Users\r\n\r\n users(state) {\r\n return state.users;\r\n },\r\n usersKey(state) {\r\n return state.usersKey;\r\n },\r\n countries(state) {\r\n return state.countries;\r\n },\r\n defaultCountry(state) {\r\n return state.defaultCountry;\r\n },\r\n dataTableUserLinksKey(state) {\r\n return state.dataTableUserLinksKey;\r\n },\r\n\r\n // Stats\r\n\r\n stats(state) {\r\n return state.stats;\r\n },\r\n\r\n // UI\r\n\r\n sawCalcDrawer(state) {\r\n return state.sawCalcDrawer;\r\n },\r\n images(state) {\r\n return state.images;\r\n },\r\n homeCoverImageLoading(state) {\r\n return state.images.home.cover.loading;\r\n },\r\n dataTableSettingsDialog(state) {\r\n return state.dataTableSettingsDialog;\r\n },\r\n dataTableUOMSettingsDialog(state) {\r\n return state.dataTableUOMSettingsDialog;\r\n },\r\n dataTableSettingsKey(state) {\r\n return state.dataTableSettingsKey;\r\n },\r\n dataTableUOMSettingsKey(state) {\r\n return state.dataTableUOMSettingsKey;\r\n },\r\n\r\n // Admin\r\n\r\n // Machines\r\n\r\n machinesAdmin(state) {\r\n return state.machinesAdmin;\r\n },\r\n machinesAdminSettings(state) {\r\n return state.machinesAdminSettings;\r\n },\r\n machinesUser(state) {\r\n return state.machinesUser;\r\n },\r\n\r\n // Materials\r\n\r\n materialsAdmin(state) {\r\n return state.materialsAdmin;\r\n },\r\n materialsAdminSettings(state) {\r\n return state.materialsAdminSettings;\r\n },\r\n materialsLoading(state) {\r\n return state.materialsLoading;\r\n },\r\n materialDialogKey(state) {\r\n return state.materialDialogKey;\r\n },\r\n dataTableChemicalCompositionsDialog(state) {\r\n return state.dataTableChemicalCompositionsDialog;\r\n },\r\n chemicalCompositionsDialogKey(state) {\r\n return state.chemicalCompositionsDialogKey;\r\n },\r\n\r\n // ProductLines\r\n\r\n productLinesSettings(state) {\r\n return state.productLinesSettings;\r\n },\r\n productLineDialogKey(state) {\r\n return state.productLineDialogKey;\r\n },\r\n productLinesShort(state) {\r\n return state.productLinesShort;\r\n },\r\n bwlRefs(state) {\r\n return state.bwlRefs;\r\n },\r\n\r\n // ProductTypes\r\n\r\n productTypes(state) {\r\n return state.productTypes;\r\n },\r\n\r\n // Recommendations\r\n\r\n recommendationsAdmin(state) {\r\n return state.recommendationsAdmin;\r\n },\r\n recommendationsAdminSettings(state) {\r\n return state.recommendationsAdminSettings;\r\n },\r\n\r\n // CuttingCharts\r\n\r\n cuttingCharts(state) {\r\n return state.cuttingCharts;\r\n },\r\n cuttingChartsSettings(state) {\r\n return state.cuttingChartsSettings;\r\n },\r\n\r\n // Parameters\r\n\r\n parameters(state) {\r\n return state.parameters;\r\n },\r\n productSelections(state) {\r\n return state.productSelections;\r\n },\r\n productRecommendations(state) {\r\n return state.productRecommendations;\r\n },\r\n\r\n // User\r\n\r\n // Logo\r\n\r\n userLogoUrl(state) {\r\n return state.userLogoUrl;\r\n },\r\n userLogoImageMaxSize(state) {\r\n return state.userLogoImageMaxSize;\r\n },\r\n\r\n // Machines\r\n\r\n machinesUserSettings(state) {\r\n return state.machinesUserSettings;\r\n },\r\n machineImageMaxSize(state) {\r\n return state.machineImageMaxSize;\r\n },\r\n\r\n // Materials\r\n\r\n materialsUserSettings(state) {\r\n return state.materialsUserSettings;\r\n },\r\n materialsUser(state) {\r\n return state.materialsUser;\r\n },\r\n\r\n // UserRecommendations\r\n\r\n userRecommendations(state) {\r\n return state.userRecommendations;\r\n },\r\n recommendationsUserSettings(state) {\r\n return state.recommendationsUserSettings;\r\n },\r\n};\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport state from \"@/store/state\";\r\nimport mutations from \"@/store/mutations\";\r\nimport actions from \"@/store/actions\";\r\nimport getters from \"@/store/getters\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n});\r\n","import mod 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!./FooterInfo.vue?vue&type=style&index=0&id=1faa11d0&lang=scss&scoped=true&\"; export default mod; 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!./FooterInfo.vue?vue&type=style&index=0&id=1faa11d0&lang=scss&scoped=true&\"","const navigation = {\r\n toolbar: {\r\n Title: 0,\r\n Phone: 2,\r\n Language: 3,\r\n Login: 4,\r\n Logoff: 5,\r\n },\r\n tabs: {\r\n Home: 0,\r\n SawCalc: 1,\r\n BandSawGuide: 2,\r\n BladeTerminology: 0,\r\n BladeConstruction: 1,\r\n ToothOptions: 2,\r\n CuttingFactors: 3,\r\n BeamStrength: 4,\r\n Lubrication: 5,\r\n BreakInInstructions: 6,\r\n BasicMaintenanceTips: 7,\r\n CommonProblems: 8,\r\n GlossaryOfBandsawTerms: 9,\r\n LENOXAdvantage: 3,\r\n },\r\n tabsUser: {\r\n Dashboard: 0,\r\n Library: 1,\r\n Machines: 0,\r\n Materials: 1,\r\n SawCalc: 2,\r\n BandSawGuide: 3,\r\n BladeTerminology: 0,\r\n BladeConstruction: 1,\r\n ToothOptions: 2,\r\n CuttingFactors: 3,\r\n BeamStrength: 4,\r\n Lubrication: 5,\r\n BreakInInstructions: 6,\r\n BasicMaintenanceTips: 7,\r\n CommonProblems: 8,\r\n GlossaryOfBandsawTerms: 9,\r\n LENOXAdvantage: 4,\r\n Account: 5,\r\n },\r\n tabsAdmin: {\r\n Dashboard: 0,\r\n Library: 1,\r\n Machines: 0,\r\n Materials: 1,\r\n ProductLines: 2,\r\n Recommendations: 3,\r\n EngineParameters: 4,\r\n DictionaryUI: 5,\r\n DictionaryWS: 6,\r\n Translation: 7,\r\n SawCalc: 2,\r\n BandSawGuide: 3,\r\n BladeTerminology: 0,\r\n BladeConstruction: 1,\r\n ToothOptions: 2,\r\n CuttingFactors: 3,\r\n BeamStrength: 4,\r\n Lubrication: 5,\r\n BreakInInstructions: 6,\r\n BasicMaintenanceTips: 7,\r\n CommonProblems: 8,\r\n GlossaryOfBandsawTerms: 9,\r\n LENOXAdvantage: 4,\r\n Account: 5,\r\n },\r\n side: {\r\n Home: 2,\r\n SawCalc: 3,\r\n BandSawGuide: 4,\r\n BladeTerminology: 0,\r\n BladeConstruction: 1,\r\n ToothOptions: 2,\r\n CuttingFactors: 3,\r\n BeamStrength: 4,\r\n Lubrication: 5,\r\n BreakInInstructions: 6,\r\n BasicMaintenanceTips: 7,\r\n CommonProblems: 8,\r\n GlossaryOfBandsawTerms: 9,\r\n LENOXAdvantage: 5,\r\n Phone: 7,\r\n Login: 8,\r\n Logoff: 0,\r\n },\r\n sideUser: {\r\n Home: 2,\r\n Dashboard: 3,\r\n Library: 4,\r\n Machines: 0,\r\n Materials: 1,\r\n SawCalc: 5,\r\n BandSawGuide: 6,\r\n BladeTerminology: 0,\r\n BladeConstruction: 1,\r\n ToothOptions: 2,\r\n CuttingFactors: 3,\r\n BeamStrength: 4,\r\n Lubrication: 5,\r\n BreakInInstructions: 6,\r\n BasicMaintenanceTips: 7,\r\n CommonProblems: 8,\r\n GlossaryOfBandsawTerms: 9,\r\n LENOXAdvantage: 7,\r\n Account: 9,\r\n Phone: 11,\r\n Logoff: 12,\r\n },\r\n sideAdmin: {\r\n Home: 2,\r\n Dashboard: 3,\r\n Library: 4,\r\n Machines: 0,\r\n Materials: 1,\r\n ProductLines: 2,\r\n Recommendations: 3,\r\n EngineParameters: 4,\r\n DictionaryUI: 5,\r\n DictionaryWS: 6,\r\n Translation: 7,\r\n SawCalc: 5,\r\n BandSawGuide: 6,\r\n BladeTerminology: 0,\r\n BladeConstruction: 1,\r\n ToothOptions: 2,\r\n CuttingFactors: 3,\r\n BeamStrength: 4,\r\n Lubrication: 5,\r\n BreakInInstructions: 6,\r\n BasicMaintenanceTips: 7,\r\n CommonProblems: 8,\r\n GlossaryOfBandsawTerms: 9,\r\n LENOXAdvantage: 7,\r\n Account: 9,\r\n Phone: 11,\r\n Logoff: 12,\r\n },\r\n menu: {\r\n BandSawGuide: 0,\r\n Library: 1,\r\n },\r\n footer: {\r\n TermsOfUse: 0,\r\n PrivacyPolicy: 2,\r\n CookieSettings: 4,\r\n Copywrite: 5,\r\n },\r\n};\r\n\r\nexport { navigation };\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('NavBar'),_c('Login'),_c('Register'),_c('PasswordReset'),(!_vm.supportedBrowser)?_c('BrowserCheck'):_vm._e(),(_vm.supportedBrowser)?_c('v-main',{staticClass:\"white\"},[_c('transition',{attrs:{\"name\":\"slide-fade\",\"mode\":\"out-in\"}},[_c('router-view')],1)],1):_vm._e(),(_vm.footerInfoVisible)?_c('FooterInfo'):_vm._e(),(_vm.footerLinksVisible)?_c('FooterLinks'):_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('nav',[_c('v-snackbar',{attrs:{\"timeout\":_vm.snackbar.timeout,\"top\":\"\",\"color\":_vm.snackbar.color},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"white\",\"dark\":\"\",\"text\":\"\"},on:{\"click\":_vm.closeSnackbar}},[_vm._v(\" Close \")])]},proxy:true}]),model:{value:(_vm.snackbar.show),callback:function ($$v) {_vm.$set(_vm.snackbar, \"show\", $$v)},expression:\"snackbar.show\"}},[_c('span',[_vm._v(_vm._s(_vm.snackbar.message))])]),_c('v-app-bar',{staticClass:\"white\",attrs:{\"app\":\"\",\"flat\":\"\",\"light\":\"\"},scopedSlots:_vm._u([(_vm.tabsVisible)?{key:\"extension\",fn:function(){return _vm._l((_vm.tabs),function(item,i){return _c('v-tabs',{key:(i + \"-tab-link\"),attrs:{\"fixed-tabs\":\"\",\"grow\":\"\",\"background-color\":\"transparent\",\"slider-color\":\"primary\",\"slider-size\":\"2\"}},[(item.tab)?[_c('v-tab',{staticClass:\"nav\",class:{\n 'primary--text': !_vm.tabActive(item.route, item.menuIndex),\n 'secondary--text': _vm.tabActive(item.route, item.menuIndex),\n },attrs:{\"to\":{ name: item.name, params: { url: item.url } }}},[_vm._v(_vm._s(item.title))])]:(item.menu)?[(item.items)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-tab',_vm._g({staticClass:\"nav\",class:{\n 'primary--text': !_vm.tabActive(item.route, item.menuIndex),\n 'secondary--text': _vm.tabActive(item.route, item.menuIndex),\n }},on),[_vm._v(_vm._s(item.title))])]}}],null,true)},[_c('v-list',{staticClass:\"grey lighten-3\"},[_c('v-list-item-group',_vm._l((item.items),function(itm,i){return _c('v-list-item',{key:(i + \"-tab-menu-link\"),staticClass:\"primary--text\",class:{\n 'list-item-active': _vm.menuItemActive(itm),\n 'list-item-not-active': !_vm.menuItemActive(itm),\n },on:{\"click\":function($event){return _vm.navigationClicked(itm)}}},[_vm._v(\" \"+_vm._s(itm.title)+\" \")])}),1)],1)],1):_vm._e()]:_vm._e()],2)})},proxy:true}:null],null,true)},[(_vm.appBarNavIconVisible)?_c('v-app-bar-nav-icon',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openNavigationDrawer(false)}}}):_vm._e(),_vm._l((_vm.navigation.toolbar),function(item,i){return [(item.heading && item.visible)?[_c('v-toolbar-title',{key:(i + \"-toolbar-link\"),on:{\"click\":function($event){return _vm.navigationClicked(item)}}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@/assets/logo.png\")}})])]:(item.spacer)?_c('v-spacer',{key:(i + \"-toolbar-link\")}):(item.hiddenXsOnlyButton && item.visible)?[_c('v-toolbar-items',{key:(i + \"-toolbar-link\")},[_c('v-btn',{staticClass:\"nav primary--text hidden-xs-only\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.navigationClicked(item)}}},[_vm._v(_vm._s(item.title))])],1)]:(item.hiddenXsOnlyIcon && item.visible)?[_c('v-toolbar-items',{key:(i + \"-toolbar-link\")},[_c('v-btn',{staticClass:\"primary--text hidden-xs-only\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.navigationClicked(item)}}},[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1)],1)]:(item.hiddenSmAndDownButton && item.visible)?[_c('v-toolbar-items',{key:(i + \"-toolbar-link\")},[_c('v-btn',{staticClass:\"nav primary--text hidden-sm-and-down\",attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.navigationClicked(item)}}},[_vm._v(_vm._s(item.title))])],1)]:(item.hiddenSmAndDownMenu && item.visible)?[_c('v-toolbar-items',{key:(i + \"-toolbar-link\")},[_c('v-menu',{attrs:{\"left\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"nav primary--text\",attrs:{\"icon\":\"\"}},on),[_c('flag',{staticClass:\"flag\",attrs:{\"iso\":_vm.language.flag,\"squared\":false}}),_vm._v(_vm._s(_vm.language.locale))],1)]}}],null,true)},[_c('v-list',_vm._l((item.items),function(language){return _c('v-list-item',{key:language.title,on:{\"click\":function($event){return _vm.changeLanguage(language)}}},[_c('v-list-item-title',[_c('flag',{staticClass:\"flag\",attrs:{\"iso\":language.flag,\"squared\":false}}),_vm._v(_vm._s(language.title))],1)],1)}),1)],1)],1)]:_vm._e()]})],2),_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"temporary\":\"\",\"width\":\"320px\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"pa-0 px-2\"},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-list',{staticClass:\"pt-1\"},[_vm._l((_vm.side),function(item,i){return [(item.heading)?_c('v-container',{key:((item.title) + \"-sidebar-link\"),staticClass:\"pa-0 pb-3\",attrs:{\"align-center\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('img',{staticClass:\"pl-4 logo\",attrs:{\"src\":require(\"@/assets/logo.svg\")},on:{\"click\":function($event){return _vm.navigationClicked(item)}}})]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"2\"}},[(_vm.sawCalcNavIconVisible)?_c('v-btn',{staticClass:\"pr-5\",attrs:{\"icon\":\"\",\"large\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openSawCalcDrawer()}}},[_c('v-icon',[_vm._v(\"mdi-calculator\")])],1):_vm._e()],1)],1)],1):(item.divider)?_c('v-divider',{key:i,attrs:{\"dark\":\"\"}}):(item.tab && item.action !== 'link')?[_c('v-list-item',{key:((item.title) + \"-sidebar-link\"),class:{\n 'primary--text': !_vm.tabActive(item.route, item.menuIndex),\n 'secondary--text': _vm.tabActive(\n item.route,\n item.menuIndex\n ),\n },on:{\"click\":function($event){return _vm.navigationClicked(item)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)],1)]:(item.tab && item.action === 'link')?[_c('v-list-item',{key:((item.title) + \"-sidebar-link\"),class:{\n 'primary--text': !_vm.tabActive(item.route, item.menuIndex),\n 'secondary--text': _vm.tabActive(\n item.route,\n item.menuIndex\n ),\n },attrs:{\"to\":{ name: item.name, params: { url: item.url } }}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)],1)]:(item.menu)?_c('v-list-group',{key:((item.title) + \"-sidebar-link\"),class:{\n 'primary--text': !_vm.tabActive(item.route, item.menuIndex),\n 'secondary--text': _vm.tabActive(item.route, item.menuIndex),\n },attrs:{\"no-action\":\"\",\"value\":_vm.tabActive(item.route, item.menuIndex)},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.title)+\" \")])],1)]},proxy:true}],null,true)},_vm._l((item.items),function(itm){return _c('v-list-item',{key:((itm.title) + \"-sidebar-link\"),attrs:{\"to\":{ name: itm.name, params: { url: itm.url } },\"link\":\"\"}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(itm.title)+\" \")])],1)}),1):_vm._e()]})],2)],1)],1)],1)],1)],1),_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"temporary\":\"\",\"width\":\"320px\"},model:{value:(_vm.sawCalcDrawerLocal),callback:function ($$v) {_vm.sawCalcDrawerLocal=$$v},expression:\"sawCalcDrawerLocal\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('img',{staticClass:\"pl-4 logo\",attrs:{\"src\":require(\"@/assets/logo.svg\")},on:{\"click\":function($event){return _vm.navigationClicked(_vm.homeLink)}}})]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"2\"}},[(_vm.sawCalcNavIconVisible)?_c('v-btn',{staticClass:\"pr-5\",attrs:{\"icon\":\"\",\"large\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openNavigationDrawer(true)}}},[_c('v-icon',[_vm._v(\"mdi-backburger\")])],1):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pa-0 ma-0 primary\",staticStyle:{\"height\":\"2px\"}})],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{staticClass:\"py-0\"},[_c('InputUOM'),_c('InputMachine'),_c('InputMaterial'),_c('InputDimensions'),_c('InputVising'),_c('InputConditions'),_c('InputCurrency')],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pl-5\"},[_c('v-container',{staticClass:\"pa-0\",class:{\n 'controls-small-max': _vm.$vuetify.breakpoint.mdAndDown,\n 'controls-large-max': _vm.$vuetify.breakpoint.lgAndUp,\n },attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.clear()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-restart-alert\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('sawCalc.navBar.clear')))])])],1),_c('v-col',{staticClass:\"pa-0\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\",\"disabled\":_vm.loading || !_vm.reportEnabled},on:{\"click\":function($event){return _vm.getRecommendationReport()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-printer\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('sawCalc.navBar.print')))])])],1),(_vm.user)?_c('v-col',{staticClass:\"pa-0\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\",\"disabled\":_vm.loading || !_vm.reportEnabled},on:{\"click\":function($event){return _vm.emailRecommendationReport()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-email\")])],1)]}}],null,false,779527180)},[_c('span',[_vm._v(_vm._s(_vm.$t('sawCalc.navBar.email')))])])],1):_vm._e(),_c('v-col',{staticClass:\"pa-0\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.refresh()}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-cached\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('sawCalc.navBar.refresh')))])])],1)],1),_c('v-row',[_c('v-col',{staticStyle:{\"height\":\"80px\"}})],1)],1)],1)],1)],1)],1),_c('v-overlay',{attrs:{\"value\":_vm.loading}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"64\"}})],1)],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('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{staticClass:\"px-0 py-0\"},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",attrs:{\"justify\":\"center\",\"align\":\"left\"}},[_c('v-btn-toggle',{attrs:{\"depressed\":\"\",\"tile\":\"\",\"dark\":\"\",\"mandatory\":\"\",\"value\":_vm.inputUOM},on:{\"change\":_vm.uomChanged}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"x-small\":_vm.$vuetify.breakpoint.mdAndDown},domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputUOM.imperial'))}}),_c('v-btn',{attrs:{\"color\":\"primary\",\"x-small\":_vm.$vuetify.breakpoint.mdAndDown},domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputUOM.metric'))}})],1)],1)],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./InputUOMSide.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!./InputUOMSide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputUOMSide.vue?vue&type=template&id=613daf6a&scoped=true&\"\nimport script from \"./InputUOMSide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputUOMSide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputUOMSide.vue?vue&type=style&index=0&id=613daf6a&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 \"613daf6a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"},on:{\"click\":_vm.showSelector}},[_c('v-col',{staticClass:\"pa-0\"},[_c('v-card',{class:{\n 'card-input': _vm.selectedRecommendationForCustom == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n },attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",class:{\n 'title-ready': _vm.inputMachine.manufacturerName != null,\n 'title-not-ready': _vm.inputMachine.manufacturerName == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sawCalc.inputMachine.title\")))])])],1),(_vm.machinesReady && _vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMachine.machineNameLabel'))}})])],1):_vm._e(),(_vm.machinesReady && _vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMachine.machineName)}})])],1):_vm._e(),(_vm.machinesReady && _vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMachine.manufacturerLabel'))}})])],1):_vm._e(),(_vm.machinesReady && _vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMachine.manufacturerName)}})])],1):_vm._e(),(_vm.machinesReady && !_vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMachine.manufacturerLabel'))}})])],1):_vm._e(),(_vm.machinesReady && !_vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMachine.manufacturerName)}})])],1):_vm._e(),(_vm.machinesReady && !_vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMachine.modelLabel'))}})])],1):_vm._e(),(_vm.machinesReady && !_vm.inputMachine.machineName)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMachine.model)}})])],1):_vm._e(),(!_vm.machinesReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-error\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMachine.errorNotLoaded'))}})])],1):_vm._e()],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"sawCalc.inputMachine.title\") }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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!./InputMachineSide.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!./InputMachineSide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputMachineSide.vue?vue&type=template&id=fc8065d0&scoped=true&\"\nimport script from \"./InputMachineSide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputMachineSide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputMachineSide.vue?vue&type=style&index=0&id=fc8065d0&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 \"fc8065d0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"},on:{\"click\":_vm.showSelector}},[_c('v-col',{staticClass:\"pa-0\"},[_c('v-card',{class:{\n 'card-input': _vm.selectedRecommendationForCustom == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n },attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",class:{\n 'title-ready': _vm.inputMaterial.designation != null,\n 'title-not-ready': _vm.inputMaterial.designation == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sawCalc.inputMaterial.title\")))])])],1),(_vm.materialsReady && _vm.inputMaterial.materialName)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMaterial.materialNameLabel'))}})])],1):_vm._e(),(_vm.materialsReady && _vm.inputMaterial.materialName)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMaterial.materialName)}})])],1):_vm._e(),(_vm.materialsReady && !_vm.inputMaterial.materialName)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMaterial.designationLabel'))}})])],1):_vm._e(),(_vm.materialsReady && !_vm.inputMaterial.materialName)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMaterial.designation)}})])],1):_vm._e(),(_vm.materialsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMaterial.hardnessLabel'))}})])],1):_vm._e(),(_vm.materialsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.inputMaterial.hardnessDescription)}})])],1):_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-error\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputMaterial.errorNotLoaded'))}})])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"sawCalc.inputMaterial.title\") }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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!./InputMaterialSide.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!./InputMaterialSide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputMaterialSide.vue?vue&type=template&id=1dca072a&scoped=true&\"\nimport script from \"./InputMaterialSide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputMaterialSide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputMaterialSide.vue?vue&type=style&index=0&id=1dca072a&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 \"1dca072a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"},on:{\"click\":_vm.showSelector}},[_c('v-col',{staticClass:\"pa-0\"},[_c('v-card',{class:{\n 'card-input': _vm.selectedRecommendationForCustom == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n },attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",class:{\n 'title-ready': _vm.inputDimensions.shape != null,\n 'title-not-ready': _vm.inputDimensions.shape == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sawCalc.inputDimensions.title\")))])])],1),(_vm.dimensionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputDimensions.shape'))}})])],1):_vm._e(),(_vm.dimensionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getShapeTitle)}})])],1):_vm._e(),(_vm.dimensionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputDimensions.dimensions'))}})])],1):_vm._e(),(_vm.dimensionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getDescription)}})])],1):_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-error\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputDimensions.errorNotLoaded'))}})])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"sawCalc.inputDimensions.title\") }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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!./InputDimensionsSide.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!./InputDimensionsSide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputDimensionsSide.vue?vue&type=template&id=36de9c08&scoped=true&\"\nimport script from \"./InputDimensionsSide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputDimensionsSide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputDimensionsSide.vue?vue&type=style&index=0&id=36de9c08&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 \"36de9c08\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"},on:{\"click\":_vm.showSelector}},[_c('v-col',{staticClass:\"pa-0\"},[_c('v-card',{class:{\n 'card-input': _vm.selectedRecommendationForCustom == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n },attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",class:{\n 'title-ready': _vm.inputVising.arrangement != null,\n 'title-not-ready': _vm.inputVising.arrangement == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sawCalc.inputVising.title\")))])])],1),(_vm.visingReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputVising.quantity'))}})])],1):_vm._e(),(_vm.visingReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getQuantityDescription)}})])],1):_vm._e(),(_vm.visingReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputVising.arrangement'))}})])],1):_vm._e(),(_vm.visingReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getArrangementDescription)}})])],1):_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-error\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputVising.errorNotLoaded'))}})])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"sawCalc.inputVising.title\") }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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!./InputVisingSide.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!./InputVisingSide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputVisingSide.vue?vue&type=template&id=f702dbd2&scoped=true&\"\nimport script from \"./InputVisingSide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputVisingSide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputVisingSide.vue?vue&type=style&index=0&id=f702dbd2&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 \"f702dbd2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"},on:{\"click\":_vm.showSelector}},[_c('v-col',{staticClass:\"pa-0\"},[_c('v-card',{class:{\n 'card-input': _vm.selectedRecommendationForCustom == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n },attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",class:{\n 'title-ready': _vm.inputConditions.lubrication != null,\n 'title-not-ready': _vm.inputConditions.lubrication == null,\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"sawCalc.inputConditions.title\")))])])],1),(_vm.conditionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputConditions.lubrication'))}})])],1):_vm._e(),(_vm.conditionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getLubrication(_vm.inputConditions.lubrication))}})])],1):_vm._e(),(_vm.conditionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-caption\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputConditions.pinching'))}})])],1):_vm._e(),(_vm.conditionsReady)?_c('v-row',[_c('v-col',{staticClass:\"px-4 py-0 card-text-description\",class:{\n 'card-disabled': _vm.selectedRecommendationForCustom != null,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getPinching(_vm.inputConditions.pinching))}})])],1):_c('v-row',[_c('v-col',{staticClass:\"px-2 pt-1 pb-0 card-text-error\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputConditions.errorNotLoaded'))}})])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"sawCalc.inputConditions.title\") }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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!./InputConditionsSide.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!./InputConditionsSide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputConditionsSide.vue?vue&type=template&id=1f5fbfdb&scoped=true&\"\nimport script from \"./InputConditionsSide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputConditionsSide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputConditionsSide.vue?vue&type=style&index=0&id=1f5fbfdb&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 \"1f5fbfdb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{staticClass:\"pa-0\"},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"px-2 py-0\",attrs:{\"justify\":\"center\",\"align\":\"left\"}},[_c('v-btn-toggle',{attrs:{\"depressed\":\"\",\"tile\":\"\",\"dark\":\"\",\"mandatory\":\"\",\"value\":_vm.inputCurrency},on:{\"change\":_vm.currencyChanged}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"x-small\":_vm.$vuetify.breakpoint.mdAndDown},domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputCurrency.dollar'))}}),_c('v-btn',{attrs:{\"color\":\"primary\",\"x-small\":_vm.$vuetify.breakpoint.mdAndDown},domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputCurrency.euro'))}}),_c('v-btn',{attrs:{\"color\":\"primary\",\"x-small\":_vm.$vuetify.breakpoint.mdAndDown},domProps:{\"innerHTML\":_vm._s(_vm.$t('sawCalc.inputCurrency.pound'))}})],1)],1)],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./InputCurrencySide.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!./InputCurrencySide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputCurrencySide.vue?vue&type=template&id=69bd0cad&scoped=true&\"\nimport script from \"./InputCurrencySide.vue?vue&type=script&lang=js&\"\nexport * from \"./InputCurrencySide.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputCurrencySide.vue?vue&type=style&index=0&id=69bd0cad&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 \"69bd0cad\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VBtnToggle,VCard,VCardText,VCol,VContainer,VRow})\n","\r\n \r\n\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!./NavBar.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!./NavBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavBar.vue?vue&type=template&id=59fbcc85&scoped=true&\"\nimport script from \"./NavBar.vue?vue&type=script&lang=js&\"\nexport * from \"./NavBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavBar.vue?vue&type=style&index=0&id=59fbcc85&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 \"59fbcc85\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VToolbarItems } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAppBar,VAppBarNavIcon,VBtn,VCard,VCol,VContainer,VDivider,VIcon,VList,VListGroup,VListItem,VListItemContent,VListItemGroup,VListItemTitle,VMenu,VNavigationDrawer,VOverlay,VProgressCircular,VRow,VSnackbar,VSpacer,VTab,VTabs,VToolbarItems,VToolbarTitle,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"white black--text py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0 ma-0 primary\",staticStyle:{\"height\":\"2px\"}})],1),_c('v-row',[_c('v-col',{staticClass:\"px-0 pb-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"sm\":\"6\"}},[_c('v-row',{staticClass:\"py-0\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-container',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"pt-1 pb-0\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('ul',_vm._l((_vm.footer.info.contact),function(item,i){return _c('li',{key:(i + \"-footer-info-contact\"),staticClass:\"mx-1 footer-info-contact\",on:{\"click\":function($event){return _vm.navigationClick(item)}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),0)])],1)],1)],1)],1),_c('v-col',{staticClass:\"px-0 pb-0\",attrs:{\"cols\":\"12\",\"md\":\"6\",\"sm\":\"6\"}},[_c('v-row',{staticClass:\"py-0\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-container',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0 info-caption-links\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_vm._l((_vm.footer.info.social),function(item,i){return [(item.icon)?[_c('v-btn',{key:(i + \"-footer-info-connect\"),attrs:{\"text\":\"\",\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.navigationClick(item)}}},[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1)]:_vm._e()]})],2)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n - \r\n {{ item.title }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.icon }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./FooterInfo.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!./FooterInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FooterInfo.vue?vue&type=template&id=1faa11d0&scoped=true&\"\nimport script from \"./FooterInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./FooterInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FooterInfo.vue?vue&type=style&index=0&id=1faa11d0&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 \"1faa11d0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"white black--text py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-row',{staticClass:\"footer-text pb-2\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_vm._l((_vm.footer.statusBar),function(item,i){return [(!item.divider && !item.copywrite && !item.cookieSettings)?[_c('router-link',{key:(i + \"-footer-link\"),staticClass:\"footer-link\",attrs:{\"to\":{ name: item.name, params: { url: item.url } }}},[_vm._v(_vm._s(item.title))])]:_vm._e(),(item.divider)?[_c('span',{key:(i + \"-footer-link\"),staticClass:\"footer-link\"},[_vm._v(\"|\")])]:_vm._e(),(item.cookieSettings)?[_c('button',{key:(i + \"-footer-link\"),staticClass:\"ot-sdk-show-settings footer-link\",attrs:{\"id\":\"ot-sdk-btn\"}},[_vm._v(_vm._s(item.title))])]:_vm._e()]})],2)],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-row',{staticClass:\"footer-text pb-2\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_vm._v(\" ©\"+_vm._s(new Date().getFullYear())+\", \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.footer.statusBar[_vm.copywriteLink].title)}})])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./FooterLinks.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!./FooterLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FooterLinks.vue?vue&type=template&id=1661b493&scoped=true&\"\nimport script from \"./FooterLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./FooterLinks.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FooterLinks.vue?vue&type=style&index=0&id=1661b493&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 \"1661b493\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.smAndDown,\"max-width\":\"400px\"},model:{value:(_vm.loginDialog.show),callback:function ($$v) {_vm.$set(_vm.loginDialog, \"show\", $$v)},expression:\"loginDialog.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-title\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t(\"login.title\"))+\" \")]),_c('v-spacer'),_c('span',{on:{\"click\":function($event){return _vm.register()}}},[_c('span',{staticClass:\"action-link\"},[_vm._v(_vm._s(_vm.$t(\"login.register\")))]),_vm._v(\" \"),_c('span',{staticClass:\"action-link-text\"},[_vm._v(_vm._s(_vm.$t(\"login.instead\")))])])],1),_c('v-form',{ref:\"form\"},[_c('v-card-text',[_c('v-container',{staticClass:\"pb-0\"},[_c('v-row',[_c('v-col',{class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"label\":_vm.$t('login.emailLabel'),\"disabled\":_vm.loginDialog.loading,\"prepend-icon\":\"mdi-email\",\"rules\":_vm.emailRules},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.login()}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-email\")])],1)],1),_c('v-col',{class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"9\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.showPassword ? 'text' : 'password',\"label\":_vm.$t('login.passwordLabel'),\"disabled\":_vm.loginDialog.loading,\"rules\":_vm.inputRules},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.login()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-lock\")])],1)],1)],1)],1)],1),_c('v-card-actions',{class:{\n 'padding-action-small': _vm.$vuetify.breakpoint.smAndDown,\n 'padding-action': _vm.$vuetify.breakpoint.mdAndUp,\n }},[_c('v-container',{staticClass:\"px-1 py-0\"},[_c('v-row',[_c('v-col',{attrs:{\"align\":\"right\"}},[_c('span',{staticClass:\"action-link\",on:{\"click\":function($event){return _vm.passwordReset()}}},[_vm._v(_vm._s(_vm.$t(\"login.passwordReset\")))])])],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"primary white--text full-width\",attrs:{\"depressed\":\"\",\"tile\":\"\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('login.cancelButton'))},on:{\"click\":_vm.cancel}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"primary white--text full-width\",attrs:{\"depressed\":\"\",\"tile\":\"\",\"disabled\":_vm.loginDialog.loading,\"loading\":_vm.loginDialog.loading},domProps:{\"innerHTML\":_vm._s(_vm.$t('login.submitButton'))},on:{\"click\":_vm.login}})],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n {{ $t(\"login.title\") }}\r\n
\r\n \r\n \r\n {{ $t(\"login.register\") }} \r\n {{ $t(\"login.instead\") }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n mdi-email\r\n \r\n \r\n \r\n \r\n mdi-lock\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{\r\n $t(\"login.passwordReset\")\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./Login.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!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=901fe3f4&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=901fe3f4&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 \"901fe3f4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VDialog,VForm,VIcon,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.smAndDown,\"max-width\":\"600px\"},model:{value:(_vm.registerDialog.show),callback:function ($$v) {_vm.$set(_vm.registerDialog, \"show\", $$v)},expression:\"registerDialog.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-title\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t(\"register.title\"))+\" \")]),_c('v-spacer'),_c('span',{on:{\"click\":function($event){return _vm.login()}}},[_c('span',{staticClass:\"action-link\"},[_vm._v(_vm._s(_vm.$t(\"register.login\")))]),_vm._v(\" \"),_c('span',{staticClass:\"action-link-text\"},[_vm._v(_vm._s(_vm.$t(\"register.instead\")))])])],1),_c('v-form',{ref:\"form\"},[_c('v-card-text',[_c('v-container',{staticClass:\"pb-0\"},[_c('v-row',[_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"7\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"label\":_vm.$t('register.companyNameLabel'),\"disabled\":_vm.registerDialog.loading,\"rules\":_vm.inputRules},model:{value:(_vm.companyName),callback:function ($$v) {_vm.companyName=$$v},expression:\"companyName\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-domain\")])],1)],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"5\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.phoneLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\"},model:{value:(_vm.phone),callback:function ($$v) {_vm.phone=$$v},expression:\"phone\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.streetLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\"},model:{value:(_vm.street),callback:function ($$v) {_vm.street=$$v},expression:\"street\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.cityLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\",\"rules\":_vm.inputRules},model:{value:(_vm.city),callback:function ($$v) {_vm.city=$$v},expression:\"city\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.stateLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.postalCodeLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\"},model:{value:(_vm.postalCode),callback:function ($$v) {_vm.postalCode=$$v},expression:\"postalCode\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('register.countryLabel'),\"disabled\":_vm.registerDialog.loading,\"items\":_vm.countries,\"item-text\":\"countryName\",\"item-value\":\"countryID\",\"rules\":_vm.countryRules},on:{\"change\":_vm.countryChanged}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"5\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.firstNameLabel'),\"disabled\":_vm.registerDialog.loading,\"rules\":_vm.inputRules},model:{value:(_vm.firstName),callback:function ($$v) {_vm.firstName=$$v},expression:\"firstName\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-account\")])],1)],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"7\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.lastNameLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\",\"rules\":_vm.inputRules},model:{value:(_vm.lastName),callback:function ($$v) {_vm.lastName=$$v},expression:\"lastName\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'hide-empty': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"sm\":\"7\"}}),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.emailLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-email\",\"rules\":_vm.emailRules},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-email\")])],1)],1),_c('v-col',{staticClass:\"pa-0 px-3\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('register.confirmEmailLabel'),\"disabled\":_vm.registerDialog.loading,\"prepend-icon\":\"mdi-empty\",\"rules\":_vm.confirmEmailRules},model:{value:(_vm.confirmEmail),callback:function ($$v) {_vm.confirmEmail=$$v},expression:\"confirmEmail\"}})],1),_c('v-col',{staticClass:\"pa-0 px-3 pr-8\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"rules\":_vm.passwordRules,\"type\":_vm.showPassword ? 'text' : 'password',\"label\":_vm.$t('register.passwordLabel'),\"disabled\":_vm.registerDialog.loading},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-lock\")])],1)],1),_c('v-col',{staticClass:\"pa-0 px-3 pr-8\",class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"prepend-icon\":\"mdi-empty\",\"append-icon\":_vm.showConfirmPassword ? 'mdi-eye' : 'mdi-eye-off',\"rules\":_vm.confirmPasswordRules,\"type\":_vm.showConfirmPassword ? 'text' : 'password',\"label\":_vm.$t('register.confirmPasswordLabel'),\"disabled\":_vm.registerDialog.loading},on:{\"click:append\":function($event){_vm.showConfirmPassword = !_vm.showConfirmPassword}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1),_c('v-col',[_c('v-checkbox',{attrs:{\"label\":_vm.$t('register.marketingEmailLabel'),\"disabled\":_vm.registerDialog.loading},model:{value:(_vm.marketingEmail),callback:function ($$v) {_vm.marketingEmail=$$v},expression:\"marketingEmail\"}})],1)],1)],1)],1),_c('v-card-actions',{class:{\n 'padding-action-small': _vm.$vuetify.breakpoint.smAndDown,\n 'padding-action': _vm.$vuetify.breakpoint.mdAndUp,\n }},[_c('v-container',{staticClass:\"px-1 py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"primary white--text full-width\",attrs:{\"depressed\":\"\",\"tile\":\"\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('register.cancelButton'))},on:{\"click\":_vm.cancel}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"primary white--text full-width\",attrs:{\"depressed\":\"\",\"tile\":\"\",\"disabled\":_vm.registerDialog.loading,\"loading\":_vm.registerDialog.loading},domProps:{\"innerHTML\":_vm._s(_vm.$t('register.submitButton'))},on:{\"click\":_vm.register}})],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n {{ $t(\"register.title\") }}\r\n
\r\n \r\n \r\n {{ $t(\"register.login\") }} \r\n {{ $t(\"register.instead\") }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n mdi-domain\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n mdi-account\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n mdi-email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n mdi-lock\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./Register.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!./Register.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Register.vue?vue&type=template&id=51eb964a&scoped=true&\"\nimport script from \"./Register.vue?vue&type=script&lang=js&\"\nexport * from \"./Register.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Register.vue?vue&type=style&index=0&id=51eb964a&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 \"51eb964a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAutocomplete,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDialog,VForm,VIcon,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.smAndDown,\"max-width\":\"400px\"},model:{value:(_vm.passwordResetDialog.show),callback:function ($$v) {_vm.$set(_vm.passwordResetDialog, \"show\", $$v)},expression:\"passwordResetDialog.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-title\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t(\"passwordReset.title\"))+\" \")]),_c('v-spacer'),_c('span',{on:{\"click\":function($event){return _vm.login()}}},[_c('span',{staticClass:\"action-link\"},[_vm._v(_vm._s(_vm.$t(\"register.login\")))]),_vm._v(\" \"),_c('span',{staticClass:\"action-link-text\"},[_vm._v(_vm._s(_vm.$t(\"register.instead\")))])])],1),_c('v-form',{ref:\"form\"},[_c('v-card-text',[_c('v-container',{staticClass:\"pb-0\"},[_c('v-row',[_c('v-col',{class:{ 'padding-input': _vm.$vuetify.breakpoint.smAndDown },attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"label\":_vm.$t('passwordReset.emailLabel'),\"disabled\":_vm.passwordResetDialog.loading,\"prepend-icon\":\"mdi-email\",\"rules\":_vm.inputRules},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.passwordReset()}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}},[_c('v-icon',{attrs:{\"slot\":\"prepend\",\"color\":\"primary lighten-1\"},slot:\"prepend\"},[_vm._v(\"mdi-email\")])],1)],1)],1)],1)],1),_c('v-card-actions',{class:{\n 'padding-action-small': _vm.$vuetify.breakpoint.smAndDown,\n 'padding-action': _vm.$vuetify.breakpoint.mdAndUp,\n }},[_c('v-container',{staticClass:\"px-1 py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"primary white--text full-width\",attrs:{\"depressed\":\"\",\"tile\":\"\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('passwordReset.cancelButton'))},on:{\"click\":_vm.cancel}})],1),_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"primary white--text full-width\",attrs:{\"depressed\":\"\",\"tile\":\"\",\"disabled\":_vm.passwordResetDialog.loading,\"loading\":_vm.passwordResetDialog.loading},domProps:{\"innerHTML\":_vm._s(_vm.$t('passwordReset.submitButton'))},on:{\"click\":_vm.passwordReset}})],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n {{ $t(\"passwordReset.title\") }}\r\n
\r\n \r\n \r\n {{ $t(\"register.login\") }} \r\n {{ $t(\"register.instead\") }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n mdi-email\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./PasswordReset.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!./PasswordReset.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PasswordReset.vue?vue&type=template&id=b84f4aba&scoped=true&\"\nimport script from \"./PasswordReset.vue?vue&type=script&lang=js&\"\nexport * from \"./PasswordReset.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PasswordReset.vue?vue&type=style&index=0&id=b84f4aba&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 \"b84f4aba\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VDialog,VForm,VIcon,VRow,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\",\"fill-height\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-card',{attrs:{\"max-width\":\"500\"}},[_c('v-card-title',{staticClass:\"card-title\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t(\"browserCheck.title\"))+\" \")])]),_c('v-card-text',[_c('v-container',{staticClass:\"pb-0\"},[_c('v-row',[_c('v-col',[_c('span',{staticClass:\"secondary--text\"},[_vm._v(_vm._s(_vm.$t(\"browserCheck.message\")))])])],1),_c('v-row',[_c('v-col',{staticClass:\"pt-8\"},[_c('v-divider')],1)],1),_c('v-row',[_c('v-col',[_c('span',[_vm._v(_vm._s(_vm.$t(\"browserCheck.detected\"))+\": \"+_vm._s(_vm.browserInfo))])])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const browserCheck = {\r\n getBrowser() {\r\n var ua = navigator.userAgent, tem, M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n if (/trident/i.test(M[1])) {\r\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return { name: 'IE', version: (tem[1] || '') };\r\n }\r\n if (M[1] === 'Chrome') {\r\n tem = ua.match(/\\bOPR\\/(\\d+)/)\r\n if (tem != null) { return { name: 'Opera', version: tem[1] }; }\r\n }\r\n if (window.navigator.userAgent.indexOf(\"Edge\") > -1) {\r\n // eslint-disable-next-line no-useless-escape\r\n tem = ua.match(/\\Edge\\/(\\d+)/)\r\n if (tem != null) { return { name: 'Edge', version: tem[1] }; } \r\n }\r\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\r\n if ((tem = ua.match(/version\\/(\\d+)/i)) != null) { M.splice(1, 1, tem[1]); }\r\n \r\n return {\r\n name: M[0],\r\n version: +M[1]\r\n };\r\n },\r\n supportedBrowser() {\r\n var browser = this.getBrowser();\r\n \r\n var supported = false;\r\n \r\n if (browser.name === \"Chrome\" && browser.version > 78) {\r\n supported = true;\r\n\r\n } else if (browser.name === \"Firefox\" && browser.version >= 83) {\r\n supported = true;\r\n } else if (browser.name === \"Safari\" && browser.version >= 11) {\r\n supported = true;\r\n } else if (browser.name === \"Opera\" && browser.version >= 72) {\r\n supported = true;\r\n } else if ((browser.name === \"MSIE\" || browser.name === \"IE\")) {\r\n supported = false;\r\n } else if (browser.name === \"Edge\") {\r\n supported = false;\r\n }\r\n \r\n return supported;\r\n }\r\n}\r\n\r\nexport { browserCheck };","\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"browserCheck.title\") }}\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ $t(\"browserCheck.message\") }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ $t(\"browserCheck.detected\") }}: {{ browserInfo }}\r\n \r\n \r\n \r\n \r\n \r\n \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!./BrowserCheck.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!./BrowserCheck.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BrowserCheck.vue?vue&type=template&id=04716b4d&\"\nimport script from \"./BrowserCheck.vue?vue&type=script&lang=js&\"\nexport * from \"./BrowserCheck.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VContainer,VDivider,VRow})\n","\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\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=6556ce6a&\"\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=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\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib\";\r\nimport variables from \"../styles/_variables.scss\";\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n icons: {\r\n iconfont: \"mdi\"\r\n },\r\n theme: {\r\n light: true,\r\n themes: {\r\n light: {\r\n primary: variables.primaryColor,\r\n secondary: variables.secondaryColor,\r\n accent: variables.accentColor,\r\n error: variables.errorColor,\r\n info: variables.infoColor,\r\n success: variables.successColor,\r\n warning: variables.warningColor\r\n }\r\n }\r\n }\r\n});\r\n","import Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport vuetify from \"./plugins/vuetify\";\r\nimport i18n from \"./plugins/i18n\";\r\nimport \"./styles/_variables.scss\";\r\n\r\nimport FlagIcon from \"vue-flag-icon\";\r\nVue.use(FlagIcon);\r\n\r\nVue.config.productionTip = false;\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n vuetify,\r\n i18n,\r\n render: (h) => h(App),\r\n mounted: () => document.dispatchEvent(new Event(\"x-app-rendered\")),\r\n}).$mount(\"#app\");\r\n","const MASK = {\r\n phone: \"(###) ###-####\"\r\n};\r\n\r\nexport { MASK };\r\n","import mod 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!./FooterLinks.vue?vue&type=style&index=0&id=1661b493&lang=scss&scoped=true&\"; export default mod; 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!./FooterLinks.vue?vue&type=style&index=0&id=1661b493&lang=scss&scoped=true&\"","import mod 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!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; 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!./App.vue?vue&type=style&index=0&lang=scss&\"","import mod 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!./InputUOMSide.vue?vue&type=style&index=0&id=613daf6a&lang=scss&scoped=true&\"; export default mod; 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!./InputUOMSide.vue?vue&type=style&index=0&id=613daf6a&lang=scss&scoped=true&\"","const calculations = {\r\n conversion: 25.4,\r\n inValue(value, precision, trim) {\r\n if (!trim) {\r\n return parseFloat(value).toFixed(precision) + \"in\";\r\n } else {\r\n return parseFloat(parseFloat(value).toFixed(precision)) + \"in\";\r\n }\r\n },\r\n mmValue(value, precision, trim) {\r\n if (!trim) {\r\n return parseFloat(value).toFixed(precision) + \"mm\";\r\n } else {\r\n return parseFloat(parseFloat(value).toFixed(precision)) + \"mm\";\r\n }\r\n },\r\n mmToIn(value) {\r\n return parseFloat((value / this.conversion).toFixed(3));\r\n },\r\n inToMM(value) {\r\n return parseFloat((value * this.conversion).toFixed(2));\r\n },\r\n fpmToMpm(value) {\r\n return (value * 12 * this.conversion) / 1000;\r\n },\r\n mpmToFpm(value) {\r\n return (value * 1000) / this.conversion / 12;\r\n },\r\n sqInToSqCM(value) {\r\n return parseInt(value * Math.pow(this.conversion / 10, 2));\r\n },\r\n sqCMToSqIn(value) {\r\n return parseInt(value / Math.pow(this.conversion / 10, 2));\r\n },\r\n lengthImperial(lengthFt, lengthIn, lengthFr) {\r\n const length = lengthFt * 12 + lengthIn + lengthFr;\r\n return parseFloat(parseFloat(length).toFixed(2));\r\n },\r\n getFraction(fraction) {\r\n if (fraction > 0 && fraction <= 0.125) {\r\n return \"1/8\";\r\n } else if (fraction <= 0.25) {\r\n return \"1/4\";\r\n } else if (fraction <= 0.375) {\r\n return \"3/8\";\r\n } else if (fraction <= 0.5) {\r\n return \"1/2\";\r\n } else if (fraction <= 0.625) {\r\n return \"5/8\";\r\n } else if (fraction <= 0.75) {\r\n return \"3/4\";\r\n } else if (fraction <= 0.875) {\r\n return \"7/8\";\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n getFractionValue(fraction) {\r\n if (fraction <= 0) {\r\n return 0;\r\n } else if (fraction > 0 && fraction <= 0.125) {\r\n return 0.125;\r\n } else if (fraction <= 0.25) {\r\n return 0.25;\r\n } else if (fraction <= 0.375) {\r\n return 0.375;\r\n } else if (fraction <= 0.5) {\r\n return 0.5;\r\n } else if (fraction <= 0.625) {\r\n return 0.625;\r\n } else if (fraction <= 0.75) {\r\n return 0.75;\r\n } else if (fraction <= 0.875) {\r\n return 0.875;\r\n } else {\r\n return 0;\r\n }\r\n },\r\n getBladeWidth(machine, metric, bladeWidthImperialList, bladeWidthMetricList) {\r\n const itemImperial = machine.bladeWidthImperial;\r\n const itemMetric = machine.bladeWidthMetric;\r\n\r\n if (!metric) {\r\n if (itemImperial) {\r\n const index = bladeWidthImperialList.indexOf(itemImperial);\r\n const bladeWidthMetric = bladeWidthMetricList[index];\r\n\r\n if (bladeWidthMetric != undefined) {\r\n return {\r\n in: parseInt(itemImperial.value),\r\n fr: this.getFractionValue(\r\n parseFloat(itemImperial.value) - parseInt(itemImperial.value)\r\n ),\r\n mm: bladeWidthMetric,\r\n };\r\n } else {\r\n return { in: 0, fr: 0, mm: 0 };\r\n }\r\n } else {\r\n return { in: 0, fr: 0, mm: 0 };\r\n }\r\n } else {\r\n if (itemMetric) {\r\n const index = bladeWidthMetricList.indexOf(itemMetric);\r\n const bladeWidthImperial = bladeWidthImperialList[index];\r\n\r\n if (bladeWidthImperial != undefined) {\r\n return {\r\n in: parseInt(bladeWidthImperial.value),\r\n fr: this.getFractionValue(\r\n parseFloat(bladeWidthImperial.value) -\r\n parseInt(bladeWidthImperial.value)\r\n ),\r\n mm: itemMetric,\r\n };\r\n } else {\r\n return { in: 0, fr: 0, mm: 0 };\r\n }\r\n } else {\r\n return { in: 0, fr: 0, mm: 0 };\r\n }\r\n }\r\n },\r\n getBladeThickness(\r\n machine,\r\n metric,\r\n bladeThicknessImperialList,\r\n bladeThicknessMetricList\r\n ) {\r\n const itemImperial = machine.bladeThicknessImperial;\r\n const itemMetric = machine.bladeThicknessMetric;\r\n\r\n if (!metric) {\r\n if (itemImperial) {\r\n const index = bladeThicknessImperialList.indexOf(itemImperial);\r\n const bladeThicknessMetric = bladeThicknessMetricList[index];\r\n\r\n if (bladeThicknessMetric != undefined) {\r\n return {\r\n in: itemImperial,\r\n mm: bladeThicknessMetric,\r\n };\r\n } else {\r\n return { in: 0, fr: 0, mm: 0 };\r\n }\r\n } else {\r\n return { in: 0, mm: 0 };\r\n }\r\n } else {\r\n if (itemMetric) {\r\n const index = bladeThicknessMetricList.indexOf(itemMetric);\r\n const bladeThicknessImperial = bladeThicknessImperialList[index];\r\n\r\n if (bladeThicknessImperial != undefined) {\r\n return {\r\n in: bladeThicknessImperial,\r\n mm: itemMetric,\r\n };\r\n } else {\r\n return { in: 0, fr: 0, mm: 0 };\r\n }\r\n } else {\r\n return { in: 0, mm: 0 };\r\n }\r\n }\r\n },\r\n getBladeLength(machine, metric) {\r\n const ft = machine.bladeLengthFt;\r\n const inch = machine.bladeLengthIn != null ? machine.bladeLengthIn : 0;\r\n \r\n //let fr = machine.bladeLengthFr != null ? machine.bladeLengthFr : 0;\r\n //const mm = machine.bladeLengthMetric;\r\n\r\n /***DFCT0020656****/\r\n let fr = 0;\r\n if (machine.bladeLengthFr != null) {\r\n let frObj = JSON.parse(JSON.stringify(machine.bladeLengthFr));\r\n if (Object.prototype.hasOwnProperty.call(frObj,'text')) {\r\n fr = frObj.value;\r\n } \r\n } \r\n //const mm = machine.bladeLengthMetric;\r\n const mm = JSON.parse(JSON.stringify(machine.bladeLengthMetric));\r\n /********/\r\n\r\n if (!metric) {\r\n return {\r\n ft: parseInt(ft),\r\n in: parseInt(inch),\r\n fr: this.getFractionValue(parseFloat(fr)),\r\n imperial: parseInt(ft) * 12 + parseInt(inch) + parseFloat(fr),\r\n mm: Math.round(\r\n (parseInt(ft) * 12 + parseInt(inch) + parseFloat(fr)) *\r\n this.conversion\r\n ),\r\n };\r\n } else {\r\n const inValue = parseFloat(mm / this.conversion);\r\n return {\r\n ft: parseInt(inValue / 12),\r\n in: parseInt(inValue % 12),\r\n fr: this.getFractionValue(inValue - parseInt(inValue)),\r\n imperial: inValue,\r\n mm: parseInt(mm),\r\n };\r\n }\r\n },\r\n getBandSpeed(machine, min, metric) {\r\n let bandSpeedImperial = machine.bandSpeedMinImperial;\r\n let bandSpeedMetric = machine.bandSpeedMinMetric;\r\n\r\n if (!min) {\r\n bandSpeedImperial = machine.bandSpeedMaxImperial;\r\n bandSpeedMetric = machine.bandSpeedMaxMetric;\r\n }\r\n\r\n if (!metric) {\r\n if (bandSpeedImperial) {\r\n return {\r\n fpm: parseInt(bandSpeedImperial),\r\n mpm: parseInt(this.fpmToMpm(bandSpeedImperial)),\r\n };\r\n } else {\r\n return { fpm: 0, mpm: 0 };\r\n }\r\n } else {\r\n if (bandSpeedMetric) {\r\n return {\r\n fpm: parseInt(this.mpmToFpm(bandSpeedMetric)),\r\n mpm: bandSpeedMetric,\r\n };\r\n } else {\r\n return { fpm: 0, mpm: 0 };\r\n }\r\n }\r\n },\r\n HBtoHRC(value) {\r\n const min = 20;\r\n const max = 65;\r\n let result = 0;\r\n\r\n value = parseFloat(value);\r\n\r\n if (value > 0 && value <= 226) {\r\n result = min;\r\n } else if (value > 226 && value <= 286) {\r\n result = (value - 104.7) / 5.97;\r\n } else if (value > 286 && value <= 371) {\r\n result = (value - 27.6) / 8.57;\r\n } else if (value > 371 && value <= 482) {\r\n result = (value + 79.6) / 11.158;\r\n } else if (value > 482 && value <= 739) {\r\n result = (value + 401) / 17.515;\r\n } else {\r\n result = max;\r\n }\r\n\r\n return result;\r\n },\r\n HRCtoHB(value) {\r\n const min = 226;\r\n const max = 739;\r\n let result = 0;\r\n\r\n value = parseFloat(value);\r\n\r\n if (value > 0 && value <= 20) {\r\n result = min;\r\n } else if (value > 20 && value <= 30) {\r\n result = 5.97 * value + 104.7;\r\n } else if (value > 30 && value <= 40) {\r\n result = 8.57 * value + 27.6;\r\n } else if (value > 40 && value <= 50) {\r\n result = 11.158 * value - 79.6;\r\n } else if (value > 50 && value <= 65) {\r\n result = 17.515 * value - 401;\r\n } else {\r\n result = max;\r\n }\r\n\r\n return result;\r\n },\r\n downloadFileName(title, ext) {\r\n const today = new Date();\r\n\r\n const date =\r\n today.getMonth() + 1 + \"-\" + today.getDate() + \"-\" + today.getFullYear();\r\n const time =\r\n today.getHours() + \"-\" + today.getMinutes() + \"-\" + today.getSeconds();\r\n\r\n return title + \" \" + date + \" \" + time + ext;\r\n },\r\n secToTime(value) {\r\n let desc = \"\";\r\n\r\n if (value == undefined || value <= 0) {\r\n return desc;\r\n }\r\n\r\n value = parseInt(value);\r\n\r\n const hours = parseInt(value / 3600);\r\n const min = parseInt(value / 60) - hours * 60;\r\n const sec = value - hours * 3600 - min * 60;\r\n\r\n if (hours > 0) {\r\n desc = `${hours} hours `;\r\n }\r\n\r\n if (min > 0) {\r\n desc += `${min} min `;\r\n }\r\n\r\n if (sec > 0) {\r\n desc += `${sec} sec `;\r\n }\r\n\r\n return desc.trim();\r\n },\r\n};\r\n\r\nexport { calculations };\r\n","import mod 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!./Home.vue?vue&type=style&index=0&id=8037a418&lang=scss&scoped=true&\"; export default mod; 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!./Home.vue?vue&type=style&index=0&id=8037a418&lang=scss&scoped=true&\"","const footer = {\r\n statusBar: {\r\n TermsOfUse: 0,\r\n PrivacyPolicy: 2,\r\n CookieSettings: 4,\r\n Copywrite: 5,\r\n },\r\n info: {\r\n contact: {\r\n LenoxTools: 0,\r\n Contact: 1,\r\n },\r\n social: {},\r\n },\r\n};\r\n\r\nexport { footer };\r\n","const config = {\r\n prod: true,\r\n debug: false,\r\n // proxy: \"https://cors-anywhere.herokuapp.com/\",\r\n proxy: \"https://obscure-sea-01598.herokuapp.com/\",\r\n apiUrl() {\r\n if (this.prod) {\r\n return \"https://www.sawcalc.com/api/Service.svc/\";\r\n } else {\r\n return \"https://devsawcalc.sbdinc.com/api/Service.svc/\";\r\n }\r\n },\r\n url() {\r\n const debugUrl = this.proxy + this.apiUrl();\r\n if (this.debug) {\r\n return debugUrl;\r\n } else {\r\n const debug = window.location.href.startsWith(\"http://localhost\");\r\n if (debug) {\r\n return debugUrl;\r\n } else {\r\n return this.apiUrl();\r\n }\r\n }\r\n },\r\n dbSyncSeconds() {\r\n if (this.prod) {\r\n return 86400;\r\n } else {\r\n return 14400;\r\n }\r\n },\r\n};\r\n\r\nexport { config };\r\n","module.exports = __webpack_public_path__ + \"img/logo.8617d5af.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"primaryColor\":\"#0067b1\",\"secondaryColor\":\"#e21836\",\"accentColor\":\"#82b1ff\",\"errorColor\":\"#ff5252\",\"infoColor\":\"#2196f3\",\"successColor\":\"#4caf50\",\"warningColor\":\"#fb8c00\"};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"back\",style:({ backgroundImage: (\"url('\" + _vm.getURL + \"')\") }),attrs:{\"fluid\":\"\",\"fill-height\":\"\"}},[_c('v-row',{attrs:{\"id\":\"content\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('h1',{class:{\n 'margin-small': _vm.$vuetify.breakpoint.mdAndUp,\n 'white--text': !_vm.imageLoading,\n 'primary--text': _vm.imageLoading,\n },domProps:{\"innerHTML\":_vm._s(_vm.$t('home.title'))}})])],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('p',{class:{\n 'margin-small': _vm.$vuetify.breakpoint.mdAndUp,\n 'white--text': !_vm.imageLoading,\n 'black--text': _vm.imageLoading,\n },domProps:{\"innerHTML\":_vm._s(_vm.$t('home.description'))}})])],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('v-btn',{staticClass:\"white primary--text\",class:{ 'margin-small': _vm.$vuetify.breakpoint.mdAndUp },attrs:{\"depressed\":\"\",\"tile\":\"\",\"to\":{ name: 'SawCalc' }},domProps:{\"innerHTML\":_vm._s(_vm.$t('home.sawCalcButton'))}})],1),(!_vm.user)?_c('v-row',{staticClass:\"mt-5\"},[_c('v-btn',{staticClass:\"primary white--text\",class:{ 'margin-small': _vm.$vuetify.breakpoint.mdAndUp },attrs:{\"depressed\":\"\",\"tile\":\"\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('home.loginButton'))},on:{\"click\":function($event){return _vm.login()}}}),_c('span',{staticClass:\"pa-0 ml-5 mt-1\",class:{\n 'margin-small mt-4': _vm.$vuetify.breakpoint.mdAndUp,\n 'white--text': !_vm.imageLoading,\n 'black--text': _vm.imageLoading,\n },domProps:{\"innerHTML\":_vm._s(_vm.$t('home.or'))}}),_c('v-btn',{staticClass:\"primary white--text ml-4\",class:{ 'margin-small': _vm.$vuetify.breakpoint.mdAndUp },attrs:{\"depressed\":\"\",\"tile\":\"\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('home.registerButton'))},on:{\"click\":function($event){return _vm.register()}}})],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\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!./Home.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!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=8037a418&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=8037a418&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 \"8037a418\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VRow})\n","import Vue from \"vue\";\r\nimport Router from \"vue-router\";\r\nimport Home from \"@/views/public/Home.vue\";\r\nimport store from \"@/store\";\r\n\r\nVue.use(Router);\r\n\r\nconst router = new Router({\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: \"/\",\r\n name: \"Home\",\r\n component: Home,\r\n },\r\n {\r\n path: \"/saw-calc\",\r\n name: \"SawCalc\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"saw-calc\" */ \"../views/public/SawCalc.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/blade-terminology\",\r\n name: \"BladeTerminology\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"blade-terminology\" */ \"../views/public/BandSawGuide/BladeTerminology.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/blade-construction\",\r\n name: \"BladeConstruction\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"blade-construction\" */ \"../views/public/BandSawGuide/BladeConstruction.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/tooth-options\",\r\n name: \"ToothOptions\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"tooth-options\" */ \"../views/public/BandSawGuide/ToothOptions.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/cutting-factors\",\r\n name: \"CuttingFactors\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"cutting-factors\" */ \"../views/public/BandSawGuide/CuttingFactors.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/beam-strength\",\r\n name: \"BeamStrength\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"beam-strength\" */ \"../views/public/BandSawGuide/BeamStrength.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/lubrication\",\r\n name: \"Lubrication\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"lubrication\" */ \"../views/public/BandSawGuide/Lubrication.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/break-in-instructions\",\r\n name: \"BreakInInstructions\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"break-in-instructions\" */ \"../views/public/BandSawGuide/BreakInInstructions.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/basic-maintenance-tips\",\r\n name: \"BasicMaintenanceTips\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"basic-maintenance-tips\" */ \"../views/public/BandSawGuide/BasicMaintenanceTips.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/common-problems\",\r\n name: \"CommonProblems\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"common-problems\" */ \"../views/public/BandSawGuide/CommonProblems.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/glossary-of-bandsaw-terms\",\r\n name: \"GlossaryOfBandsawTerms\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"glossary-of-bandsaw-terms\" */ \"../views/public/BandSawGuide/GlossaryOfBandsawTerms.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/lenox-advantage\",\r\n name: \"LENOXAdvantage\",\r\n beforeEnter: (to) => {\r\n window.open(to.params.url);\r\n },\r\n },\r\n {\r\n path: \"/terms-of-use\",\r\n name: \"TermsOfUse\",\r\n beforeEnter: (to) => {\r\n window.open(to.params.url);\r\n },\r\n },\r\n {\r\n path: \"/updated-privacy-policy\",\r\n name: \"PrivacyPolicy\",\r\n beforeEnter: (to) => {\r\n window.open(to.params.url);\r\n },\r\n },\r\n {\r\n path: \"/update-password\",\r\n name: \"UpdatePassword\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"update-password\" */ \"../views/public/UpdatePassword.vue\"\r\n ),\r\n },\r\n {\r\n path: \"/email-verification\",\r\n name: \"EmailVerification\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"email-verification\" */ \"../views/public/EmailVerification.vue\"\r\n ),\r\n },\r\n {\r\n path: \"*\",\r\n name: \"NotFound\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"not-found\" */ \"../views/public/NotFound.vue\"\r\n ),\r\n },\r\n\r\n // User\r\n\r\n {\r\n path: \"/dashboard\",\r\n name: \"Dashboard\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"dashboard\" */ \"../views/user/Dashboard.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/machines\",\r\n name: \"Machines\",\r\n component: () =>\r\n import(/* webpackChunkName: \"machines\" */ \"../views/user/Machines.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/materials\",\r\n name: \"Materials\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"materials\" */ \"../views/user/Materials.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/account\",\r\n name: \"Account\",\r\n component: () =>\r\n import(/* webpackChunkName: \"account\" */ \"../views/user/Account.vue\"),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n\r\n // Admin\r\n\r\n {\r\n path: \"/admin/dashboard\",\r\n name: \"DashboardAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"dashboard-admin\" */ \"../views/admin/Dashboard.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/machines\",\r\n name: \"MachinesAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"machines-admin\" */ \"../views/admin/Machines.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/materials\",\r\n name: \"MaterialsAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"materials-admin\" */ \"../views/admin/Materials.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/product-lines\",\r\n name: \"ProductLinesAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"product-lines-admin\" */ \"../views/admin/ProductLines.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/recommendations\",\r\n name: \"RecommendationsAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"recommendations-admin\" */ \"../views/admin/Recommendations.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/engine-parameters\",\r\n name: \"EngineParametersAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"engine-parameters-admin\" */ \"../views/admin/EngineParameters.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/account\",\r\n name: \"AccountAdmin\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"account-admin\" */ \"../views/admin/Account.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/dictionary-ui\",\r\n name: \"DictionaryUI\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"dictionary-ui\" */ \"../views/admin/DictionaryUI.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/dictionary-ws\",\r\n name: \"DictionaryWS\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"dictionary-ws\" */ \"../views/admin/DictionaryWS.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n {\r\n path: \"/admin/translation\",\r\n name: \"Translation\",\r\n component: () =>\r\n import(\r\n /* webpackChunkName: \"translation\" */ \"../views/admin/Translation.vue\"\r\n ),\r\n meta: {\r\n requiresAuth: true,\r\n },\r\n },\r\n ],\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n if (to.matched.some((record) => record.meta.requiresAuth)) {\r\n if (!store.getters.user) {\r\n next({\r\n path: \"/\",\r\n });\r\n } else {\r\n next();\r\n }\r\n } else {\r\n next();\r\n }\r\n});\r\n\r\nexport default router;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"primaryColor\":\"#0067b1\",\"secondaryColor\":\"#e21836\",\"accentColor\":\"#82b1ff\",\"errorColor\":\"#ff5252\",\"infoColor\":\"#2196f3\",\"successColor\":\"#4caf50\",\"warningColor\":\"#fb8c00\"};","import mod 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!./PasswordReset.vue?vue&type=style&index=0&id=b84f4aba&lang=scss&scoped=true&\"; export default mod; 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!./PasswordReset.vue?vue&type=style&index=0&id=b84f4aba&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/logo.cc7ebfd8.png\";","import Vue from \"vue\";\r\nimport VueI18n from \"vue-i18n\";\r\n\r\nVue.use(VueI18n);\r\n\r\nconst i18n = new VueI18n({\r\n locale: \"en\",\r\n fallbackLocale: \"en\",\r\n messages: {\r\n // de: require(\"../locales/de.json\"),\r\n en: require(\"../locales/en.json\"),\r\n // es: require(\"../locales/es.json\"),\r\n // fr: require(\"../locales/fr.json\")\r\n },\r\n});\r\n\r\nexport default i18n;\r\n","import mod 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!./InputCurrencySide.vue?vue&type=style&index=0&id=69bd0cad&lang=scss&scoped=true&\"; export default mod; 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!./InputCurrencySide.vue?vue&type=style&index=0&id=69bd0cad&lang=scss&scoped=true&\"","const returnCode = {\r\n Success: 0,\r\n ErrRecordNotFound: 103,\r\n ErrRecordExists: 104,\r\n ErrAccessTokenChanged: 112,\r\n ErrAICInvalidAccessToken: 200,\r\n ErrBadRequest: 400,\r\n ErrAICAuthCodeNotValid: 413,\r\n ErrAICTokenExpired: 414,\r\n ErrToManyRequests: 429,\r\n ErrServerError: 500,\r\n ErrEngine: 601,\r\n ErrNetworkError: 801,\r\n};\r\n\r\nexport { returnCode };\r\n","import mod 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!./InputMachineSide.vue?vue&type=style&index=0&id=fc8065d0&lang=scss&scoped=true&\"; export default mod; 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!./InputMachineSide.vue?vue&type=style&index=0&id=fc8065d0&lang=scss&scoped=true&\"","import mod 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!./InputDimensionsSide.vue?vue&type=style&index=0&id=36de9c08&lang=scss&scoped=true&\"; export default mod; 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!./InputDimensionsSide.vue?vue&type=style&index=0&id=36de9c08&lang=scss&scoped=true&\"","import mod 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!./Register.vue?vue&type=style&index=0&id=51eb964a&lang=scss&scoped=true&\"; export default mod; 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!./Register.vue?vue&type=style&index=0&id=51eb964a&lang=scss&scoped=true&\""],"sourceRoot":""}