{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/public/Register.vue?8beb","webpack:///./src/components/public/FooterInfo.vue?e515","webpack:///./src/helpers/ApiCalls.js","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?2a39","webpack:///./src/locales sync ^\\.\\/.*\\.json$","webpack:///./src/constants/Recommendations.js","webpack:///./src/components/public/NavBar.vue?d521","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/FooterLinks.vue?c3b4","webpack:///./src/constants/Navigation.js","webpack:///./src/App.vue","webpack:///./src/components/public/NavBar.vue","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue","webpack:///src/components/public/SawCalc/Inputs/InputUOMSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?48f1","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?b626","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue","webpack:///src/components/public/SawCalc/Inputs/InputMachineSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?bfc8","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?342f","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue","webpack:///src/components/public/SawCalc/Inputs/InputMaterialSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?4fb2","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?8cd7","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue","webpack:///src/components/public/SawCalc/Inputs/InputDimensionsSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?32b2","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?8377","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue","webpack:///src/components/public/SawCalc/Inputs/InputVisingSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?804a","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?58df","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue","webpack:///src/components/public/SawCalc/Inputs/InputConditionsSide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?c6ff","webpack:///./src/components/public/SawCalc/Inputs/InputConditionsSide.vue?ded3","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue","webpack:///src/components/public/SawCalc/Inputs/InputCurrencySide.vue","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?03a0","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?4e58","webpack:///src/components/public/NavBar.vue","webpack:///./src/components/public/NavBar.vue?9e6f","webpack:///./src/components/public/NavBar.vue?8f8b","webpack:///./src/components/public/FooterInfo.vue","webpack:///src/components/public/FooterInfo.vue","webpack:///./src/components/public/FooterInfo.vue?15f3","webpack:///./src/components/public/FooterInfo.vue?b75f","webpack:///./src/components/public/FooterLinks.vue","webpack:///src/components/public/FooterLinks.vue","webpack:///./src/components/public/FooterLinks.vue?10fc","webpack:///./src/components/public/FooterLinks.vue?ba0a","webpack:///./src/components/public/Login.vue","webpack:///src/components/public/Login.vue","webpack:///./src/components/public/Login.vue?7d9f","webpack:///./src/components/public/Login.vue?beee","webpack:///./src/components/public/Register.vue","webpack:///src/components/public/Register.vue","webpack:///./src/components/public/Register.vue?7903","webpack:///./src/components/public/Register.vue?23f3","webpack:///./src/components/public/PasswordReset.vue","webpack:///src/components/public/PasswordReset.vue","webpack:///./src/components/public/PasswordReset.vue?5e84","webpack:///./src/components/public/PasswordReset.vue?ede1","webpack:///./src/views/public/BrowserCheck.vue","webpack:///./src/helpers/BrowserCheck.js","webpack:///src/views/public/BrowserCheck.vue","webpack:///./src/views/public/BrowserCheck.vue?66be","webpack:///./src/views/public/BrowserCheck.vue?fac2","webpack:///src/App.vue","webpack:///./src/App.vue?f5fe","webpack:///./src/App.vue?bff9","webpack:///./src/plugins/vuetify.js","webpack:///./src/main.js","webpack:///./src/constants/Masks.js","webpack:///./src/views/public/Home.vue?109a","webpack:///./src/App.vue?2c6e","webpack:///./src/helpers/Calculations.js","webpack:///./src/constants/Footer.js","webpack:///./src/config/ConfigSettings.js","webpack:///./src/components/public/SawCalc/Inputs/InputCurrencySide.vue?3ee5","webpack:///./src/components/public/SawCalc/Inputs/InputDimensionsSide.vue?a983","webpack:///./src/components/public/PasswordReset.vue?6f98","webpack:///./src/assets/logo.svg","webpack:///./src/components/public/SawCalc/Inputs/InputUOMSide.vue?6b56","webpack:///./src/components/public/SawCalc/Inputs/InputVisingSide.vue?41e7","webpack:///./src/views/public/Home.vue","webpack:///src/views/public/Home.vue","webpack:///./src/views/public/Home.vue?6733","webpack:///./src/views/public/Home.vue?4179","webpack:///./src/router/index.js","webpack:///./src/components/public/Login.vue?b3df","webpack:///./src/assets/logo.png","webpack:///./src/App.vue?b3df","webpack:///./src/plugins/i18n.js","webpack:///./src/constants/ReturnCode.js","webpack:///./src/components/public/SawCalc/Inputs/InputMaterialSide.vue?11bb","webpack:///./src/components/public/SawCalc/Inputs/InputMachineSide.vue?111f"],"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","_this","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","DistributorfirstName","DistributorlastName","DistributorEmail","LENOXcontactEmail","LENOXcontactfirstName","LENOXcontactlastName","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","_ref","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","_asyncToGenerator","_regeneratorRuntime","mark","_callee","storeName","tx","store","wrap","_context","prev","next","sent","transaction","objectStore","abrupt","t0","stop","_x","_x2","arguments","save","_ref2","_callee2","_context2","put","complete","_x3","_x4","storeInit","commit","dispatch","config","test","Success","getSettings","idb","getLanguageSettings","_ref3","reload","saveSettings","_ref4","_callee3","_context3","syncRequired","_ref5","_callee4","required","dbSyncSeconds","dbSyncDate","timeFromLastSync","_context4","getTime","getLanguages","_ref6","showAll","axios","res","LanguagesList","catch","notification","ErrNetworkError","setDefaultLanguage","_ref7","changeLanguage","_ref8","Json","getTranslation","_ref9","translation","updateControlsByLanguage","_ref10","_ref11","updateRecommendations","_ref12","valid","updateCostCalculation","_ref13","parseFloat","toolCostPerCut","cutsPerHour","hoursPerLife","costPerCut","totalCostPerCut","inputDimensionsMeasurement","measurementImperial","measurementMetric","costCalculationMeasurement","totalCuts","totalCutTime","totalCutTimeHours","costLabor","machineCostPerMeasurement","toolCostPerMeasurement","totalCostPerMeasurement","changeInputUOM","_ref14","_callee5","_context5","changeInputCurrency","_ref15","showMachineSelectorDialog","_ref16","setInputMachine","_ref17","setSavedInputMachine","_ref18","reloadMachineComponent","_ref19","setMachinesReady","_ref20","getMachines","_ref21","tasks","_toConsumableArray","unshift","showNotification","showMaterialSelectorDialog","_ref22","setInputMaterial","_ref23","setSavedInputMaterial","_ref24","reloadMaterialSelectorDetailsComponent","_ref25","setMaterialsReady","_ref26","showDimensionsSelectorDialog","_ref27","setInputDimensions","_ref28","setDimensionsReady","_ref29","showVisingSelectorDialog","_ref30","setInputVising","_ref31","setVisingReady","_ref32","showConditionsSelectorDialog","_ref33","setInputConditions","_ref34","setConditionsReady","_ref35","setProductLinesReady","_ref36","getMachinesData","_ref37","_callee6","_loop","_ret","_context7","task","_p","_p2","_context6","ErrRecordNotFound","v","delegateYield","_typeof","getMachineManufacturers","_ref38","MachineManufacturerList","getMachine","_ref39","setMachine","_ref40","getUserMachines","_ref41","UserMachinesList","getUserMachine","_ref42","UserMachine","addUserMachine","_ref43","CancelToken","post","cancelToken","ErrRecordExists","removeUserMachine","_ref44","getMachineFromResponse","_ref45","getBladeWidthImperialList","_ref46","List","getBladeWidthMetricList","_ref47","getBladeThicknessImperialList","_ref48","getBladeThicknessMetricList","_ref49","getBladeLengthFtList","_ref50","getBladeLengthInList","_ref51","getBladeLengthFrList","_ref52","getBladeLengthMetricList","_ref53","addUnknownMachine","_ref54","bladeWidth","bladeThickness","in","fr","mm","ft","imperial","fpm","mpm","getMatrialsData","_ref55","_callee7","_loop2","_ret2","_context9","_p3","_p4","_context8","getMaterialStandards","_ref56","getUNSCategories","_ref57","getUNSAlloyGroups","_ref58","getSawCalcGroups","_ref59","SawCalcGroupsList","getUNSGeneralDescriptions","_ref60","getSubCategories","_ref61","getMaterials","_ref62","MaterialsList","getMaterialDetails","_ref63","Material","getMaterialFromResponse","_ref64","setMaterial","_ref65","getScales","_ref66","ScalesList","setScale","_ref67","HBtoHRC","HRCtoHB","getHardness","_ref68","setHardness","_ref69","setHeavyScaleForged","_ref70","setHTQuenched","_ref71","getUserMaterials","_ref72","UserMaterialsList","getUserMaterial","_ref73","UserMaterial","addUserMaterial","_ref74","scaleDescription","scaleAbbreviation","removeUserMaterial","_ref75","updateUserMaterial","_ref76","copyUserMaterial","_ref77","getDimensionsData","_ref78","_callee8","_loop3","_ret3","_context11","_p5","_p6","_context10","getIBeamStandards","_ref79","IBeamStandardsList","getVisingData","_ref80","_callee9","_context12","getConditionsData","_ref81","_callee10","_context13","getProductLinesData","_ref82","_callee11","_loop4","_ret4","_context15","_p7","_p8","_context14","getProductLinesShort","_ref83","ProductLinesList","getBWLRefs","_ref84","BWLRefsList","resetSawCalcReady","_ref85","savedInputMachine","savedInputMaterial","getSawCalcData","_ref86","sawCalcReady","setSawCalcLoading","_ref87","selectRecommendation","_ref88","customize","_ref89","getRecommendations","_ref90","RecommendationUIsList","localStorage","removeItem","mapData","setItem","ErrEngine","getRecommendationCustom","_ref91","measurementUOM","updateCostCalculations","_ref92","resetOutputs","_ref93","closeCustomRecommendation","_ref94","updateFromCustom","_ref95","getImageUrl","_ref96","reader","FileReader","readAsDataURL","getImageData","_ref97","XMLHttpRequest","responseType","open","send","showLoginDialog","_ref98","loginLoading","_ref99","login","_ref100","password","Password","User","getRecommendationReport","_ref101","sawCalcOutput","count","defaultCostCalculations","obj","SawCalcOutput","Blob","objectURL","URL","createObjectURL","revokeObjectURL","emailRecommendationReport","_ref102","getCuttingChartReport","_ref103","openCuttingChartReport","_ref104","openCuttingChartExcelReport","_ref105","emailCuttingChartReport","_ref106","logoff","_ref107","showRegisterDialog","_ref108","registerLoading","_ref109","register","_ref110","showPasswordResetDialog","_ref111","passwordResetLoading","_ref112","passwordReset","_ref113","updatePassword","_ref114","accessToken","AccessToken","emailVerification","_ref115","verificationCode","getUser","_ref116","getUserOnEdit","_ref117","updateUser","_ref118","setToken","_ref119","updateToken","_ref120","setAxiosSource","_ref121","cancelRequest","_ref122","getDashboardUsers","_ref123","UsersList","exp","getUsers","_ref124","updateDbUser","_ref125","updateUserAdmin","_ref126","updateUserActive","_ref127","deleteDbUser","_ref128","sendEmailVerification","_ref129","updateAccount","_ref130","deleteAccount","_ref131","deleteDB","_ref132","indexedDB","deleteDatabase","onsuccess","onblocked","getCountries","_ref133","CountryList","reloadUserLinksComponent","_ref134","updateUserLinks","_ref135","UserLinkList","getStats","_ref136","StatsList","showSawCalcDrawer","_ref137","checkInputs","_ref138","getImages","_ref139","ImagesList","getImageSource","_ref140","base64string","updateImage","_ref141","form","FormData","append","UpdateAppFormImageResult","onloadend","imageLoading","_ref142","showDataTableSettingsDialog","_ref143","showDataTableUOMSettingsDialog","_ref144","saveMachinesAdminSettings","_ref145","reloadMachinesAdminSettingsComponent","_ref146","saveMachinesUserSettings","_ref147","reloadMachinesUserSettingsComponent","_ref148","saveMaterialsAdminSettings","_ref149","reloadMaterialsAdminSettingsComponent","_ref150","saveMaterialsUserSettings","_ref151","reloadMaterialsUserSettingsComponent","_ref152","reloadMaterialDialogComponent","_ref153","reloadChemicalCompositionsDialogComponent","_ref154","saveProductLinesSettings","_ref155","reloadProductLinesSettingsComponent","_ref156","reloadProductLineDialogComponent","_ref157","getDictionaryUISections","_ref158","getDictionaryUI","_ref159","section","updateDictionaryUI","_ref160","jsonContent","UpdateDictionaryUIResult","getDictionaryWSSections","_ref161","getDictionaryWS","_ref162","updateDictionaryWS","_ref163","content","UpdateDictionaryWSResult","getDictionaryPages","_ref164","getDictionaryStatic","_ref165","DictionaryStatic","updateDictionaryStatic","_ref166","videos","UpdateDictionaryStaticResult","getAdminMachines","_ref167","MachinesList","createMachine","_ref168","_callee12","_context16","updateMachine","_ref169","_callee13","_context17","deleteMachine","_ref170","getAdminMatrialsData","_ref171","_callee14","_loop5","_ret5","_context19","_p9","_p10","_context18","getAdminMaterials","_ref172","createMaterialStandard","_ref173","updateMaterialStandard","_ref174","createUNSCategory","_ref175","updateUNSCategory","_ref176","createUNSAlloyGroup","_ref177","updateUNSAlloyGroup","_ref178","createSawCalcGroup","_ref179","updateSawCalcGroup","_ref180","createUNSGeneralDescription","_ref181","updateUNSGeneralDescription","_ref182","createSubCategory","_ref183","updateSubCategory","_ref184","createMaterial","_ref185","updateMaterial","_ref186","deleteMaterial","_ref187","materialsCleanup","_ref188","getChemicalCompositions","_ref189","ChemicalCompositionList","chemicalCompositions","materialElementID","MaterialElementID","elementID","ElementID","symbol","minPercent","MinPercent","maxPercent","MaxPercent","elementDescription","updateChemicalCompositions","_ref190","getProductLines","_ref191","createProductLine","_ref192","productLine","ProductLine","updateProductLine","_ref193","deleteProductLine","_ref194","getProductTypes","_ref195","ProductTypesList","createProductType","_ref196","updateProductType","_ref197","getAdminRecommendations","_ref198","RecommendationDownloadsList","saveAdminRecommendationsSettings","_ref199","reloadAdminRecommendationsSettingsComponent","_ref200","saveRecommendationDownloads","_ref201","numberOfRecords","downloadFileName","fileURL","navigator","msSaveBlob","fileLink","body","click","deleteRecommendationDownloads","_ref202","getParameters","_ref203","ParametersList","updateParameter","_ref204","parameter","getProductSelections","_ref205","ProductSelectionsList","updateProductSelection","_ref206","productSelection","getProductRecommendations","_ref207","ProductRecommendationsList","updateProductRecommendation","_ref208","productRecommendation","getUserLogoSource","_ref209","updateUserLogo","_ref210","UpdateUserLogoResult","removeUserLogo","_ref211","createUserMachine","_ref212","_callee15","_context20","updateUserMachine","_ref213","_callee16","_context21","deleteUserMachine","_ref214","getUserMachineImages","_ref215","_ref216","_callee17","_context22","getUserMachineImageSource","_ref217","updateUserMachineImage","_ref218","UpdateUserMachineImageResult","removeUserMachineImage","_ref219","getMachineFromInput","_ref220","bladeWidthImperial","lengthImperial","fpmToMpm","mpmToFpm","getUserRecommendations","_ref221","UserRecommendationsList","createUserRecommendation","_ref222","now","today","recommendationTitle","UserRecommendation","userRecommendation","updateUserRecommendation","_ref223","deleteUserRecommendation","_ref224","saveRecommendationsUserSettings","_ref225","reloadUserRecommendationsSettingsComponent","_ref226","openRecommendationReport","_ref227","emailRecommendationSavedReport","_ref228","getCuttingCharts","_ref229","CuttingChartsList","updateCuttingChart","_ref230","CuttingChart","cuttingChart","deleteCuttingChart","_ref231","saveCuttingChartsSettings","_ref232","reloadCuttingChartsSettingsComponent","_ref233","showSnackbar","_ref234","closeSnackbar","_ref235","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","staticClass","_c","render","staticRenderFns","callback","$set","expression","_s","attrs","scopedSlots","_vm","fn","_l","class","tabActive","concat","on","appBarNavIconVisible","stopPropagation","_e","navigationClicked","hiddenXsOnlyIcon","sawCalcNavIconVisible","params","sawCalcDrawerLocal","$event","staticStyle","domProps","$vuetify","breakpoint","mdAndDown","$t","computed","_objectSpread","mapGetters","methods","mapActions","uomChanged","component","showSelector","$store","getShapeTitle","getDescription","descriptionMetric","descriptionImperial","getQuantityDescription","getArrangementDescription","separator","split","join","getLubrication","getPinching","currencyChanged","components","InputUOM","InputMachine","InputMaterial","InputDimensions","InputVising","InputConditions","InputCurrency","snackbarTest","drawer","reportEnabled","bandSawGuide","library","$route","tabsVisible","homeLink","currentPath","router","currentRoute","fullPath","tabActiveMenu","substring","menuItemActive","link","routeLink","openUrl","dialPhone","_this2","errorMessage","reason","openNavigationDrawer","openSawCalcDrawer","clear","_this3","_this4","refresh","updateControls","_this5","watch","mounted","navigationClick","_v","copywriteLink","keydown","$$v","clickAppend","showPassword","inputRules","emailRules","resetForm","$refs","validate","reset","slot","countryRules","countryChanged","confirmEmail","passwordRules","directives","mask","confirmPassword","showConfirmPassword","confirmEmailRules","confirmPasswordRules","phoneMask","MASK","passwordRepeatedChar","match","browserCheck","getBrowser","tem","ua","userAgent","M","exec","version","indexOf","appName","appVersion","supportedBrowser","browser","supported","browserInfo","NavBar","FooterInfo","FooterLinks","Register","PasswordReset","BrowserCheck","publicLinks","adminLinks","footerInfoVisible","footerLinksVisible","created","Vuetify","icons","iconfont","theme","light","themes","primary","secondary","accent","success","warning","FlagIcon","productionTip","vuetify","h","App","dispatchEvent","Event","$mount","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","proxy","apiUrl","debugUrl","location","startsWith","style","backgroundImage","getURL","Router","base","process","routes","beforeEnter","to","meta","requiresAuth","beforeEach","from","matched","some","record","VueI18n","fallbackLocale","en","ErrToManyRequests","ErrServerError"],"mappings":"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","file":"js/app.be334c91.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\":\"7f1d448a\",\"account-admin\":\"de120387\",\"basic-maintenance-tips\":\"73826f92\",\"beam-strength\":\"aff1948b\",\"blade-construction\":\"c9b8ea34\",\"blade-terminology\":\"a7e50741\",\"break-in-instructions\":\"0cf26865\",\"common-problems\":\"375adb80\",\"cutting-factors\":\"5594e79c\",\"dashboard~dashboard-admin~engine-parameters-admin~machines~machines-admin~materials~materials-admin~~deac2a48\":\"d9d5d860\",\"dashboard\":\"d7be1256\",\"dashboard-admin\":\"b9628af0\",\"engine-parameters-admin\":\"f13c26ea\",\"machines\":\"dd748054\",\"machines-admin\":\"a92874b5\",\"materials\":\"47971584\",\"materials-admin\":\"3c164cc3\",\"product-lines-admin\":\"a5ff8a20\",\"recommendations-admin\":\"3a0a6fb6\",\"dictionary-ui\":\"1d533748\",\"dictionary-ws\":\"84ba2d7e\",\"email-verification\":\"6703eabc\",\"glossary-of-bandsaw-terms\":\"a7af654e\",\"lubrication\":\"0f2fb82d\",\"not-found\":\"26a76121\",\"saw-calc\":\"7147b636\",\"tooth-options\":\"b0d91142\",\"translation\":\"fd3c969b\",\"update-password\":\"4fe35386\"}[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\":\"233b6b6d\",\"account-admin\":\"233b6b6d\",\"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\":\"18bc4a4a\",\"dashboard\":\"9efb8872\",\"dashboard-admin\":\"146c9175\",\"engine-parameters-admin\":\"31d6cfe0\",\"machines\":\"8d1d82d2\",\"machines-admin\":\"415cd12b\",\"materials\":\"7a55cddb\",\"materials-admin\":\"2914b877\",\"product-lines-admin\":\"2ee83ade\",\"recommendations-admin\":\"2ee83ade\",\"dictionary-ui\":\"b60deae1\",\"dictionary-ws\":\"07130092\",\"email-verification\":\"31d6cfe0\",\"glossary-of-bandsaw-terms\":\"31d6cfe0\",\"lubrication\":\"31d6cfe0\",\"not-found\":\"31d6cfe0\",\"saw-calc\":\"912f573c\",\"tooth-options\":\"31d6cfe0\",\"translation\":\"328ccdef\",\"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","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=4ed4fa7d&prod&lang=scss&scoped=true&\"","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=0421324a&prod&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","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=1611b848&prod&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\";","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","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=399ccbe8&prod&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 DistributorfirstName: user.DistributorfirstName,\r\n DistributorlastName: user.DistributorlastName,\r\n DistributorEmail: user.DistributorEmail,\r\n LENOXcontactEmail: user.LENOXcontactEmail,\r\n LENOXcontactfirstName: user.LENOXcontactfirstName,\r\n LENOXcontactlastName: user.LENOXcontactlastName,\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 user.DistributorfirstName= payload.DistributorfirstName;\r\n user.DistributorlastName= payload.DistributorlastName;\r\n user.DistributorEmail= payload.DistributorEmail;\r\n user.LENOXcontactEmail= payload.LENOXcontactEmail;\r\n user.LENOXcontactfirstName= payload.LENOXcontactfirstName;\r\n user.LENOXcontactlastName= payload.LENOXcontactlastName;\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 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 try { \r\n //clearing data for old storage/recommendation\r\n window.localStorage.removeItem(\"recommendationIndex\");\r\n window.localStorage.removeItem(\"lastOverrideValue\");\r\n window.localStorage.removeItem(\"recommendationDataVal\"); \r\n\r\n //setting new values. it will be used during customization\r\n let mapData = {bandSpeedMinImperial:input.machine.bandSpeedMinImperial,bandSpeedMaxImperial:input.machine.bandSpeedMaxImperial,bandSpeedMinMetric:input.machine.bandSpeedMinMetric,bandSpeedMaxMetric:input.machine.bandSpeedMaxMetric}\r\n window.localStorage.setItem(\"machineMapsData\", JSON.stringify(mapData));\r\n } catch (error) {\r\n // eslint-disable-next-line\r\n }\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 const url = config.url() + \"GetRecommendations\";\r\n \r\n dispatch(\"setSawCalcLoading\", true);\r\n // return false;\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 try {\r\n //clearing data for old storage/recommendation\r\n window.localStorage.removeItem(\"recommendationIndex\");\r\n window.localStorage.removeItem(\"lastOverrideValue\"); \r\n window.localStorage.removeItem(\"recommendationDataVal\"); \r\n\r\n //setting new values. it will be used during customization\r\n let mapData = {bandSpeedMinImperial:input.machine.bandSpeedMinImperial,bandSpeedMaxImperial:input.machine.bandSpeedMaxImperial,bandSpeedMinMetric:input.machine.bandSpeedMinMetric,bandSpeedMaxMetric:input.machine.bandSpeedMaxMetric}\r\n window.localStorage.setItem(\"machineMapsData\", JSON.stringify(mapData));\r\n } catch (error) {\r\n // eslint-disable-next-line\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 openCuttingChartExcelReport({ 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\r\n // console.log(\"cuttingChartID = \" + cuttingChartID);\r\n // console.log(\"cuttingChartName = \" +cuttingChartName);\r\n // console.log(\"userID = \" +userID);\r\n // console.log(\"machine = \" +machine);\r\n // console.log(\"productImperial = \" +productImperial);\r\n // console.log(\"productMetric = \" +productMetric);\r\n // console.log(\"dimensionMin = \" +dimensionMin);\r\n // console.log(\"dimensionMax = \" +dimensionMax);\r\n // console.log(\"dimensionRange = \" +dimensionRange);\r\n // console.log(\"cuttingChartMaterialGroups = \" +cuttingChartMaterialGroups);\r\n // console.log(cuttingChartMaterialGroups);\r\n\r\n const url = config.url() + \"GetSavedCuttingChartExcelReport\";\r\n //console.log(url);\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/vnd.ms-excel\" });\r\n const objectURL = URL.createObjectURL(file);\r\n window.open(objectURL);\r\n URL.revokeObjectURL(file);\r\n\r\n \r\n //const objectURL = URL.createObjectURL(new Blob([response.data], { type: 'application/vnd.ms-excel' }));\r\n \r\n //const link = document.createElement('a')\r\n //link.href = objectURL\r\n //link.setAttribute('download', 'test.xls')\r\n //document.body.appendChild(link)\r\n //link.click()\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 //console.log(\"userID = \" + 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 //console.log(res.User);\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 getDashboardUsers({ commit, dispatch, getters }) {\r\n \r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetDashboardUsers/_/_/_/_\";\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 getUsers({ commit, dispatch, getters }) {\r\n \r\n return new Promise((resolve, reject) => {\r\n const url = config.url() + \"GetUsers/_/_/_/_\";\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 DistributorfirstName= payload.DistributorfirstName;\r\n const DistributorlastName= payload.DistributorlastName;\r\n const DistributorEmail= payload.DistributorEmail;\r\n\r\n const LENOXcontactfirstName= payload.LENOXcontactfirstName;\r\n const LENOXcontactlastName= payload.LENOXcontactlastName;\r\n const LENOXcontactEmail= payload.LENOXcontactEmail;\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 DistributorfirstName: DistributorfirstName,\r\n DistributorlastName: DistributorlastName,\r\n DistributorEmail: DistributorEmail,\r\n LENOXcontactfirstName: LENOXcontactfirstName,\r\n LENOXcontactlastName: LENOXcontactlastName,\r\n LENOXcontactEmail: LENOXcontactEmail,\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(\"Couldn't delete database due to the operation being blocked\" );\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","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=736b83eb&prod&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 render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;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({ on }){return [_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({ on }){return [_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({ on, attrs }){return [_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({ on, attrs }){return [_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({ on, attrs }){return [_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({ on, attrs }){return [_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\"}},[_vm._v(\"   \")])],1)],1)],1)],1)],1)],1),_c('v-overlay',{attrs:{\"value\":_vm.loading}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"64\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=13c64fb2&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=13c64fb2&prod&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 \"13c64fb2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=b8314060&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=b8314060&prod&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 \"b8314060\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=2373f179&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=2373f179&prod&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 \"2373f179\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=dfc3733e&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=dfc3733e&prod&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 \"dfc3733e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=1a7efe86&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=1a7efe86&prod&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 \"1a7efe86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=1611b848&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=1611b848&prod&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 \"1611b848\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=6f85b567&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=6f85b567&prod&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 \"6f85b567\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=399ccbe8&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=399ccbe8&prod&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 \"399ccbe8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=0421324a&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=0421324a&prod&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 \"0421324a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=736b83eb&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=736b83eb&prod&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 \"736b83eb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=0e01ea6e&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=0e01ea6e&prod&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 \"0e01ea6e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=4ed4fa7d&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=4ed4fa7d&prod&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 \"4ed4fa7d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=7d39e378&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=7d39e378&prod&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 \"7d39e378\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\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","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=dc60f38a&\"\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","\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=1eb00c75&\"\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&id=1eb00c75&prod&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","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib\";\r\n//import 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: '#0067b1',\r\n secondary: '#e21836',\r\n accent: '#82b1ff',\r\n error: '#ff5252',\r\n info: '#2196f3',\r\n success: '#4caf50',\r\n warning: '#fb8c00'\r\n }\r\n\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\n//import \"./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","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=225c8280&prod&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"primaryColor\":\"#0067b1\",\"secondaryColor\":\"#e21836\",\"accentColor\":\"#82b1ff\",\"errorColor\":\"#ff5252\",\"infoColor\":\"#2196f3\",\"successColor\":\"#4caf50\",\"warningColor\":\"#fb8c00\"};","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","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 proxy: \"\",\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 //return \"http://localhost:8080/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","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=6f85b567&prod&lang=scss&scoped=true&\"","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=dfc3733e&prod&lang=scss&scoped=true&\"","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=7d39e378&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/logo.8617d5af.svg\";","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=13c64fb2&prod&lang=scss&scoped=true&\"","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=1a7efe86&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c;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)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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=225c8280&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=225c8280&prod&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 \"225c8280\",\n null\n \n)\n\nexport default component.exports","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","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=0e01ea6e&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/logo.cc7ebfd8.png\";","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&id=1eb00c75&prod&lang=scss&\"","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","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","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=2373f179&prod&lang=scss&scoped=true&\"","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=b8314060&prod&lang=scss&scoped=true&\""],"sourceRoot":""}