{"version":3,"sources":["assets/icn_more.png","assets/intro-logo.png","assets/icn_close.png","assets/icn_check.png","assets/onboarding-1.png","assets/img-ob-3.png","assets/icn_back.png","assets/btn_icn_favorite_on.png","assets/btn_icn_save_on.png","assets/btn_icn_save.png","assets/icn_option_selected.png","assets/icn_selected.png","assets/icn-assembly.png","assets/icn-catalog.png","assets/icn-contact.png","assets/icn-about.png","node_modules/moment/locale sync /^/.//.*$","assets/intro-save.png","assets/onboarding-3.png","assets/onboarding-4.png","assets/onboarding-5.png","assets/img-ob-2.png","assets/btn_icn_favorite.png","assets/MIK-1_kit.png","assets/parallel_or_tapered.png","assets/determine_thread_pitch.png","assets/determine_thread_size.png","assets/icn_option.png","assets/icon.png","assets/logo-parker-ff-2.png","assets/icn_part_on.png","assets/icn_part.png","assets/icn_search_nav_on.png","assets/icn_search_nav.png","assets/icn_pin_on.png","assets/icn_pin.png","assets/icn_user_on.png","assets/icn_user.png","assets/icn_wrench_on.png","assets/icn_wrench.png","assets/logo-black.png","utils/Colors.js","utils/Configuration.js","utils/API.js","utils/AnalyticsStore.js","utils/AuthStore.js","components/Button.js","components/Popup.js","utils/PartStore.js","components/FittingImage.js","utils/NavStore.js","screens/Launch.js","screens/Onboarding.js","screens/FittingSelection.js","screens/FittingOverview.js","screens/FittingDetails.js","auth.config.js","screens/FittingSearch.js","screens/SelectCompetitor.js","screens/ThreadID/ToolIntro.js","screens/ThreadID/Tool1.js","screens/ThreadID/Tool2.js","screens/ThreadID/Tool3.js","screens/WhereToBuy.js","screens/DistributorDetails.js","screens/Account.js","screens/Settings.js","screens/Contact.js","screens/SavedProducts.js","screens/Privacy.js","screens/Terms.js","screens/Safety.js","screens/Login.js","screens/CreateAccount.js","screens/ForgotPassword.js","screens/ResetPassword.js","screens/About.js","components/OktaAuth.js","components/GTMView.js","components/CustomTabBar.js","components/WebNavBar.js","components/WebHeader.js","screens/OktaCallbackScreen.js","screens/Resources.js","components/WebFooter.js","App.js","index.js"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","Colors","transparent","semiTransparent","overlayBackground","white","black","darkGrey","mediumGrey","grey","backgroundGrey","lightGrey","titleGrey","yellow","primaryBlue","primaryGreen","red","WEB_URL","IMGSRV_URL","baseURL","apiURL","console","log","API","api","apisauce","create","headers","timeout","tokenRefreshResponseTransformer","_ref","_asyncToGenerator","response","status","newToken","refreshTokens","setToken","access_token","authStore","signInSuccess","axiosInstance","config","_x","apply","arguments","addResponseTransform","token","setHeader","login","data","post","forgotPassword","createAccount","updateAccount","put","getAccount","get","deleteAccount","delete","createFavoritePart","updateFavoritePart","deleteFavoritePart","getFavoriteParts","createFavoriteDistributor","updateFavoriteDistributor","deleteFavoriteDistributor","getFavoriteDistributors","refreshToken","getProductTypes","getShapes","getEndGenders","productId","shapeId","endNumber","params","getEndTypes","genderId","subGenderId","getEndTypeSizes","getThreadIdentification","getMaterials","getProducts","materialId","getSpecifications","searchPart","endpoint","str","competitorId","loadPartById","isTFD","getCompetitors","getImageURL","img","RestAPI","GoogleAPI","addMonitor","getGeoCodePoint","zip","GoogleGeoAPI","ParkerAPI","searchForDistributor","point","ParkerRestAPI","CADAPI","API_BASE_URL","setAPIKey","apiKey","getCadLinks","partNumber","CADRestAPI","analyticsStore","AnalyticsStore","_classCallCheck","eventUrl","makeAutoObservable","this","_createClass","key","value","eventName","Platform","OS","window","dataLayer","push","event","customData","AuthStore","loading","error","undefined","authenticated","showHomeStack","accountInfo","isCreateAccount","allowEmailUpdates","allowAppNotifications","faceId","noAccount","navLink","_save","SecureStore","_x2","_getSecureKey","_x3","_signInSuccess","email","_this","AsyncStorage","setItem","JSON","stringify","logEvent","then","res","ok","model","syncLocalData","logout","_x4","_x5","_x6","_signInSuccessCreateAccount","_this2","_res$data","_res$data$errorMessag","faceID","_x11","errorMessage","includes","_ref2","_x12","_x7","_x8","_x9","_x10","password","_this3","username","alert","jwt_decode","err","userId","getItem","favoritesData","parse","Promise","all","filter","a","synced","item","_objectSpread","deletedFavorites","forEach","_this4","_this5","_logout","faceIDObj","tokenStore","save","removeItem","_this6","Button","props","theme","buttonStyle","styles","button","yellowButton","textStyle","buttonText","buttonType","outlineButton","outlineButtonText","clearButton","clearButtonText","clearButtonTextWhite","_jsx","Pressable","style","disabled","onPress","children","Text","numberOfLines","title","StyleSheet","backgroundColor","padding","paddingHorizontal","borderColor","borderWidth","alignItems","color","fontSize","fontWeight","textAlign","opacity","screenWidth","Dimensions","width","maxWidth","Math","min","Popup","refBackground","useRef","refContainer","Animatable","background","useNativeDriver","animation","ref","duration","View","secondButtonTitle","wrapper2","wrapper","_jsxs","container","body","closeButtonTitle","current","fadeOut","fadeOutDownBig","closeAction","marginTop","secondAction","cancelButtonTitle","cancelAction","position","top","left","right","bottom","flex","justifyContent","borderRadius","margin","lineHeight","marginVertical","partStore","PartStore","productTypes","shapes","endGenders","subGenders","endTypes","endSizes","materials","products","threadIdentification","showThreadIDTool","searchResults","selectedEndNumber","allEndsMatch","part","nextScreen","productType","shape","overview","endGender","subGender","endType","endSize","material","product","clearPart","gender","ends","end","endTypeSize","competitorNumber","source","end0","end1","end2","end3","end4","method","length","inProgress","finally","action","callAPI","models","getEndParameters","_this7","endTypeId","_this8","_this$part","_this$part$subGender","_this$part2","_this9","pitchSet","_this10","_this$part$material","_this$part$material2","_this11","currentKey","val","_val$gender","_val$gender2","_val$gender2$division","_this$part$shape2","_this$part$shape","_this12","Array","endCount","fill","d","i","clearEndParams","clearEnds","setSubGender","name","division","abbreviation","setEndType","allEndsSame","_this$part$subGender2","subGenderID","toJS","_this$part$shape3","_this13","filled","_this13$part","_this14","encodeURIComponent","results","_this$part$end","_this$part$end2","_this$part$end3","_this$part$end4","_this$part$end5","_this$part$end6","_this$part$end7","_this$part$end8","_this$part$end9","includeSize","includeAll","_this$part$end10","_this$part$end11","_this$part$end12","_this$part$end13","_this$part$end14","_this$part$end15","_this$part$end16","_this$part$end17","FittingImage","_partStore$part","_partStore$part$endTy","_partStore$part$endTy2","_partStore$part2","_partStore$part2$endT","_partStore$part2$endT2","_partStore$part3","_partStore$part3$endT","_partStore$part3$endT2","_partStore$part4","_partStore$part4$endT","_partStore$part4$endT2","_partStore$part5","_partStore$part5$shap","_partStore$part6","_partStore$part6$shap","_partStore$part7","_partStore$part7$shap","_partStore$part8","_partStore$part8$shap","_partStore$part9","_partStore$part9$shap","_partStore$part10","_partStore$part10$sha","_partStore$part11","_partStore$part11$sha","_partStore$part12","_partStore$part12$sha","_partStore$part13","_partStore$part13$sha","_partStore$part14","_partStore$part14$sha","_partStore$part15","_partStore$part15$sha","_partStore$part16","_partStore$part16$sha","_partStore$part17","_partStore$part17$sha","_partStore$part18","_partStore$part18$sha","_partStore$part19","_partStore$part19$pro","_partStore$part20","_partStore$part20$sha","_partStore$part20$sha2","end1Path","image","path","end2Path","end3Path","end4Path","_useState","useState","_useState2","_slicedToArray","end1AspectRatio","setEnd1AspectRatio","_useState3","_useState4","end2AspectRatio","setEnd2AspectRatio","_useState5","_useState6","end3AspectRatio","setEnd3AspectRatio","_useState7","_useState8","end4AspectRatio","setEnd4AspectRatio","end1Position","rotate","scale","end2Position","end3Position","end4Position","end1Label","end2Label","end3Label","end4Label","bgLeft","bgTop","topPadding","end1URI","end2URI","end3URI","end4URI","Image","getSize","height","xOffset","correctOffset","uri","alignSelf","resizeMode","_Fragment","replace","transform","paddingVertical","navStore","NavStore","navigation","stack","screen","navigate","observer","useEffect","_checkAuth","onboarded","tokenObject","expirationTimeInSeconds","jwtDecode","exp","expirationDate","Date","moment","isAfter","_token","checkAuth","launchContainer","ActivityIndicator","spinner","size","logo","require","subtitle","marginBottom","showCancel","marginLeft","maxButtonWidth","_props$route$params","_props$route$params2","skipWarning","setSkipWarning","zipCode","setZipCode","favorites","setFavorites","setData","_useState9","_useState10","setLoading","parseString","_response$data","_response$data$result","_response$data$result2","_response$data$result3","_response$data2","_response$data2$resul","_response$data2$resul2","_response$data2$resul3","geometry","location","lat","lng","premier","resultType_s","standard","concat","_toConsumableArray","uniqueResults","uniqueSet","Set","result","uniqueKey","Name","Address","has","add","slides","step","activeSlide","route","header","goBack","src","headerSpacer","subtitle6","popToTop","dots","dot","activeDot","TouchableWithoutFeedback","Keyboard","dismiss","accessible","searchBar","Icon","TextInput","input","placeholder","onChangeText","keyboardType","autoComplete","textContentType","clearButtonMode","clearTextOnFocus","maxLength","returnKeyType","underlineColorAndroid","Surface","FlatList","contentContainerStyle","listContainer","keyExtractor","renderItem","isFavorite","find","distributorNumber","DistributorNo","address","Address1","city","City","state","State","Zip","phone","Phone","fax","Fax","Email","notes","toggleFavorite","resultRow","itemTitle","itemSubtitle","marginRight","flexDirection","image6","paddingLeft","paddingRight","borderBottomColor","borderBottomWidth","marginHorizontal","gridWidth","_route$params","_partStore$endGenders","_partStore$part2$prod","_partStore$part3$shap","gridFormat","fittingScreen","col","mainContainerStyle","mainContainer","addListener","useNavigation","React","useLayoutEffect","_route$params2","_route$params4","setOptions","headerRight","colors","handleBackButton","_route$params3","addEventListener","history","pushState","href","unsubscribe","_route$params5","removeEventListener","selectItem","_item$subGenders","setPartObj","setEnd","isComponentScreen","slice","allEndsFilledOut","mainContainer2","_partStore$part$endGe","_partStore$part$endGe2","sort","b","priority","parseInt","dash","getEndId","_partStore$part$end","_partStore$part$end$e","gridContainer","numColumns","_item$image","surface","partImage","gridItemTitle","maxHeight","sizeRowHeader","itemSizeHeader","_ref3","sizeRow","itemSize","outsideDiameterInches","outsideDiameterMillimeters","thread","row","paddingTop","paddingBottom","threadIDRow","threadIDTitle","elevation","actionButton","actionText","Share","_partStore$part2$shap","_partStore$part$end2","_partStore$part$end3","_partStore$part$end4","_partStore$part$end5","colContainerStyle","columnContainer","useFocusEffect","useCallback","_route$params$key","startsWith","split","headerLeft","canGoBack","HeaderBackButton","ScrollView","_end$endType","_end$endSize","_end$endSize2","_end$endSize3","_partStore$part$produ","_partStore$part$produ2","prevEnd","endRow","j","endName","endLabel","columnContainerRight","descTitleContainer","descTitle","descLabel","oidc","clientId","redirectUri","endSessionRedirectUri","discoveryUri","scopes","requireHardwareBackedKeyStore","oktaAuth","OktaAuth","issuer","share","warn","default","FittingDetails","_selectedPart$image","_selectedPart$image2","_selectedPart$image3","_partStore$part$shape","_selectedPart$image6","_selectedPart$product6","_partStore$part$end6","_partStore$part$end7","_partStore$part$end8","_partStore$part$end9","_selectedPart$product7","_selectedPart$product8","_selectedPart$product9","_selectedPart$product10","_selectedPart$product11","selectedPart","setSelectedPart","selectedPartTab","setSelectedPartTab","promptCreateAccount","setPromptCreateAccount","cadLinks","setCadLinks","_useState11","_useState12","favoriteParts","setFavoriteParts","_useState13","_useState14","savedPart","setSavedPart","_useState15","_useState16","savedVisible","setSavedVisible","_useState17","_useState18","savedTitle","setSavedTitle","_useState19","_useState20","savedNotes","setSavedNotes","onShare","msg","url","open","subject","message","sharedAction","dismissedAction","onCADShare","favoritePart","description","nickName","cadKey","collection","_partStore$products","partName","decodeURIComponent","partId","_result$data$result","productConfig","competitorName","getSecureValueFor","_ref5","endEditing","onBlur","showDivision","some","x","isFsc","flexGrow","partImageContainer","horizontal","partTabContainer","partNameText","partNameTab","tabSelected","isMetric","partNameSubtext","actionRow","syle","Octicons","actionButtonLarge","_selectedPart$product","_selectedPart$product2","_selectedPart$product3","_selectedPart$product4","_selectedPart$product5","_selectedPart$image4","_selectedPart$image5","isStandard","isMadeToOrder","productSpecification","productSpecificationLabels","sae","label","join","filteredCadLinks","cadType","fileLoc","MailComposer","isHtml","catch","productTypeId","getParametersForEnd","toggleSave","onEndEditing","onSubmitEditing","multiline","_ref6","TouchableOpacity","cadShareButton","Linking","openURL","cadShareButtonText","signInWithRedirect","_ref4","faceIDStr","tokenObj","checkFaceID","signIn","FittingSearch","searchText","setSearchText","setResults","selectedToggle","setSelectedToggle","selectedManufacturer","setSelectedManufacturer","searchFocused","setSearchFocused","otherManufacturerMatchFound","setOtherManufacturerMatchFound","performSearch","toggleContainer","toggle","selected","toggleText","selectedText","autoFocus","autoCorrect","onFocus","onManufacturerSelected","manufacturer","manufacturerContainer","manufacturerText","instructionsText","resultsRow","resultsText","noResultsRow","competitorPartId","fluidSystemConnectorPartId","_res$data$result","SelectCompetitor","competitors","setCompetitors","unshift","scrollViewContainer","ToolIntro","listTitle","listItem","Tool1","visual","isTapererd","textAlignVertical","Tool2","selectedItem","setSelectedItem","showConfirmNoMatch","setShowConfirmNoMatch","pitch","Tool3","_route$params$selecte","_route$params$selecte2","endTypeSizes","column1","isPipe","column2","isTube","selectedThreadSize","label1","label2","threadComponents","threadOutsideDiameter","WhereToBuy","keyboardShouldPersistTaps","onScroll","DistributorDetails","_distributor$address","setIsFavorite","distributor","setNotes","changesSaved","setChangesSaved","location_name","favObj","formatPhoneNumber","number","PhoneNumber","formatNational","KeyboardAwareScrollView","distributorTitle","select","ios","android","addr","destination","link","canOpenURL","SimpleIcon","alertContainer","alertText","Clipboard","setString","distributorBody","address2","trim","Address2","distance","Distance","ceil","distNo","deleted","distanceMarker","distanceUOM","DistanceUOM","favoriteButton","favoriteText","favoriteIcon","accountCreated","setAccountCreated","accountDeleted","setAccountDeleted","showNoAccount","setShowNoAccount","faceIDSuccess","setFaceIDSuccess","setParams","_fetchData","fetchData","LocalAuthentication","disableDeviceFallback","success","submitSignin","createdContainer","createdText","menuItem","info","Constants","manifest","version","buildNumber","versionCode","confirmPassword","showConfirmDelete","setShowConfirmDelete","setFaceID","setEmailUpdates","setNotifications","setError","submit","preferencesRow","Switch","onValueChange","preferencesText","accountId","textField","Contact","Icon2","actionButtonCenter","SavedProducts","setTimeout","configuration","Privacy","useWindowDimensions","WebView","Terms","Safety","Login","setEmail","setPassword","setDisabled","modalVisible","setModalVisible","setAlertMessage","savedEmail","savedPassword","Alert","SafeAreaView","text","toLowerCase","autoCompleteType","autoCapitalize","secureTextEntry","blurOnSubmit","orContainer","line","or","alertMsg","setAlertMsg","agreeToTerms","setAgreeToTerms","onPressProp","preferencesRow1","trackColor","false","true","thumbColor","textDecorationLine","ForgotPassword","requestSent","setRequestSent","host","instructions","ResetPassword","setConfirmPassword","About","boldText","_Component","_inherits","_super","_createSuper","call","setContext","setState","context","newAccount","checkAuthentication","bind","_assertThisInitialized","_componentDidDisappear","_componentDidMount","createConfig","configFile","that","EventEmitter","user","getUserFromIdToken","getAccessToken","signInSuccessCreateAccount","originalError","sub","preferred_username","resolve_type","error_message","removeAllListeners","_componentDidUpdate","_checkAuthentication","isAuthenticated","_login","_createAccount","signOut","_getUserIdToken","_getMyUser","getUser","Fragment","Component","absoluteFillObject","GTMView","eventValue","webViewRef","getter","setValue","disposer","autorun","useMobxObserver","webViewSource","setWebViewSource","htmlContent","setHtmlContent","fetch","html","dangerouslySetInnerHTML","__html","originWhitelist","CustomTabBar","descriptors","routes","index","WebNavBar","currentScreen","setCurrentScreen","navigationBar","menuBar","logoContainer","navItemsContainer","spacer","navItem","navSelectedItem","searchItemContainer","navSearchItem","absoluteRight","headerCenter","backButton","backButtonText","headerTitle","CallbackScreen","errorMsg","setErrorMsg","parseFromUrl","tokenResponse","accessToken","tokens","wrenchIcon","catalogIcon","contactIcon","aboutIcon","WebFooter","currentYear","getFullYear","footer","leftText","rightTextContainer","borderTopWidth","borderTopColor","LogBox","ignoreAllLogs","shouldRenderCustomTabBar","navigationRef","createRef","DefaultTheme","primary","accent","Tab","routeNameRef","Stack","createStackNavigator","createBottomTabNavigator","screenOptions","headerStyle","shadowOpacity","headerLeftContainerStyle","headerTintColor","headerTitleStyle","headerBackTitleVisible","headerTitleAlign","tabOptions","tabBarIcon","iconName","focused","headerBackVisible","headerShown","tabBarActiveTintColor","tabBarInactiveTintColor","tabBarStyle","FinderStack","Navigator","Screen","component","FittingSelection","FittingOverview","options","CreateAccount","WhereToBuyStack","AccountStack","Account","Settings","ResourceStack","Resources","PaperProvider","StatusBar","NavigationContainer","linking","screens","TabStack","Callback","onReady","_navigationRef$curren","getCurrentRoute","onStateChange","_navigationRef$curren2","currentRouteName","Launch","Onboarding","tabBar","tabBarOptions","keyboardHidesTabBar","borderBottom","registerRootComponent","App"],"mappings":"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","file":"static/js/app.a0e36ae3.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAVCAYAAAByrA+0AAAABHNCSVQICAgIfAhkiAAAAMVJREFUOE+V090NwiAQB3Av8K4bOIKOoCO4ge+8yAS6QQ2EZ0cwbuAIuoEjdABavCPapOGbpKEP/x9H7lowxmyHYbgzxg5CiNeisEBr/cHM2jnXI9qXEFCFcRyfiJY1COgGLciDFjSBWjQDNSgAJRQFOZQEKZQFhHCwF9zO9I5zemSBUuoIALdf59/W2l0SxMJSyj4KUmGqFIBcOACl8AzUhCdQG/agJewBDoZ+yw0+vs/Uuv8nH9uh67oV5/yK4VMpTAd8AX6VzCinyKQCAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/intro-logo.40bf996b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAABHNCSVQICAgIfAhkiAAAAPlJREFUOE+d0wsNAjEMAFBOAUjBAeAAFAAOOCkoAAk4ABQQnJwDaEebNE1/45KGG7u9dF03zH7PFeIDcaRx788SFtwhRrQGAvcC74UZXJCx0yhnXYU1iOsbyhBnW4UtEJNp2+cH61qFXRAxiVYzDkELzeAU9FAPPlPb8Cnjd62GooTtVW9fzusa67UmmKFWxgy7YAXFGr5Uig8Yb3Tachxt3zoU2X7uBfFQC3yCuBIZYc1N2EKjttGHZ8IarfRhCku0Asqaulea0R4whRH9BwxhRCeIuTjVsLGN/tQ1HhE9QFzo415QZ/yGP9Zc0y3N3qKbksydYB6znr5NnUg2pKkp3QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAtRJREFUWEe1V8152kAQnVE+uIZUEFxBEFhcgyswqSCkAtsFxBK4AVJB6CCkgpgrBIQriFNBlCt8305mFkQE2hVCwnviZ2ffm5k3s7MIJ6x+eHmNCruAUCeAGgI2xJyAlggQ8Ydncmjsuz+/5z2W7bJXEDbqjqr4hNBlwNqx/VtCERKMlbO+C9xllGVjJcDAtVdQvVFEt3mBD4E4MpGDOPzsTvs2EkYCAo5U+RGHOI/XWXskRYTrK1M0UgSC0Gtw+AQ8V7jzkmPNPBPSh8CdLZM2ewS2nv86N3gMuCGxcpOR2BE4d9htkZF0+M2ZG/+/I9CftwNE8POGtMw+Iuj7rWkgZ2gCUmosuvClQm+qDhblhaRCE+gvvBGDfyzjVcqW6C/nfASIdQa5TpEg+uK3ZlziGwJ/zuo9gysHOrHiTQ5Kj2AtvMGHsN3lnHw7m/cH4PG5g0Vbyu/dXgmiusKzht8CvqmwKmsM6kkCxGnAwcJ7ZC2+Lx2BTHBbV6WJREDUr281w3ra3HRHBFoIXNCYAOeGxWoGV7hiIS2jQej1gPCrcVdh8M1pNgK/GbyRbJlGEiXBge2FQEqd0rP95vTi0OM9EmXB9eE6BRYREo3uW7NPRhIKhsk6j/ecfp+ICOfeEBFvLPk1khCgw7v9dHD2X8rwaCOyRCJJuAi42CskV7fiwdyLuGe/tvaCDBJFwUWAnGIebHnl6oYGEoXBRX7bKzm+jms8+T5nRkGL9r8wy4CL9zwx13fXsY5C3oGEx21y1IgbU1B0aE0NJHHuTT3BqovCf9DkvjnrxOapodShqjSmt4XPzzZ8itu7kYD8KGO5Qzh+ARIMTr3MsTzZ0TgSj/x9b4AoHhWaKFx3cz1MkiBamEC3R6vDxkzPhTiMJ2DTtjyP0xqqChOBXm4iW2ByVsPCj1MT24fwsqP4ec7vh+0Aw5MUg/Fwr59bXF5LcmB0mOes1P0Dp9m63fJh2YoAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/onboarding-1.18ea90a8.png\";","module.exports = __webpack_public_path__ + \"static/media/img-ob-3.34c8cc66.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAVCAYAAAByrA+0AAAABHNCSVQICAgIfAhkiAAAAJRJREFUOE+N020JgDAQgGGXwCpG0CaziSYwglawgTYwijbwDnZwbPclDPfjfUB2M3WxJ0O2wZpSoMd4L93tAR5/gEYLNDGARwNijJ8lATWWgBnXwI05CMUEwjGBFzZ9GcwK78UaJp7SAOtiaIb9oSE61jDicwihenAukiZtIu0uqci6rSLy/ocGeQDHwdEZAYTwBuQfN8EuVgAEgN0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAABHNCSVQICAgIfAhkiAAAAV5JREFUOE+tldtRwkAUhv/j7TkdiBVIKoAS4AEdnxwrkA6MFWgJ+OQgD0AFJh3ECkwH8qyj679rYLLJhk2Qncnksud8+8+5RdBgqRnGUHig6Y1cYOJzEZ+BekYHh3jP7VY4xpkMsdrm54dOqUxwvYEo3Mslop2hao4AX/goAbxqtypVUyoS3FVUedTWQnOVOpaBA5rhBGFdbMUk4gA9Xh38oEtlGtL3JbCwH/M5o1/Ge4ojJKJezMtpC4jPNBbGLeUp5z7LFvtLMbH7RLwXsMIbY903idoLeA1kY2yy/y9wAahFWiW1Izhh6w6K5VWpU1bDIw+7bZwYRyO4oLrueo2hwJKTa1C0d0FVC6A2TQkNa6GlMdeYTaglzk7UjO2p8Oro9Sd+W9B1XBOakOB07WdDq1MpISiSEZsjX/wL6IMjC64w5IxduKF/DnpTt64FK6vP4RN+D/CNrlyZGWLWL1qeeFKaf7MmAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAABHNCSVQICAgIfAhkiAAAAJpJREFUOE9j/L+KIYGBgaEfiAWAmFjwAaiwkBGoGcTgJ1YXkroPIM3/ydAI1jKqmcSQGw2wYRNgB4E+scflG1zxfJCBkaGBMZThwP/VDA7AfNeAzRB0zR+BigoYwxgWoNsGLTQmIOd9hOb/DI0MbAwTGAPBhQNW8H89sLT5xVAAdFU9LD8fYPjLkMAYyfCA2Jj6v5xBgYGZYQEA3OlPR96hWEwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAUCAYAAABSx2cSAAAABHNCSVQICAgIfAhkiAAAANxJREFUOE/tU8EJwkAQnEXwqyXYiXYgPlT8pYRYgUkFpoT4EvQhdpB0YAmWEL+CnLNJLiaHyj18urCwd8zs7Q07Yg4IAGyZQ6ZvFASuhWQtBr6sFq5QsuFFLgtMfBvUHPzJnor9Bfv1hpkTjXLHFH2cZVbufxNf1XacVnD7Q1liZ9lvyeZIcxhsCLImyVmPa1IGQSxzZC75QoCmelsjJzAqgVXDqNUktTjrKjvRjUVIeyqgE/VXEl423n+RDWKKk7jidISqRAw5lX6t9HOGBwJZ4eq+9uls9hihh/QJWnObR/uHftoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAlNJREFUSEtjZCAATs2zk+Vn/lbGwvxH4+dfVj6Qcnbm35/+/GW58fEvV5dZ0qHH+IxgxCV5e5G+OxfTl3lSbHel8Bnw7Jfys2//eJJU4y7uxKYOw4L/6xkEnn9VXCnJdt+NkO+Q5Z//UtwlFXPfHV0PigWnlwYpqTAeOi/A8gYcFKSCD39EPt35b2doGr3uHkwv3AKQyz98F3lIruEwA0GWCEa94cew4NlSxV2SrPddSXU1NvXPfyvuloqGBDHYB6AIVeG4uIMahsPMuPND3wMU8WALnixWfCbNfl+STAs+MvxnSADqDQA6Nx5mxtOfis9lYu9LMYLSuSnPoUdkG87A4MAYxnABpP//KoYDQMoeZtbpL3ZyjDcXmUxR4ziTTYYFH4F64IZjs+DyN9suxruL9fcosV90JtECTMNXMixADiKQefd+6u9lvLHQ9KQ652kzNAsSGVgZNjD8AnqZkUEfTY4ow0F6bn43PYVpwX+GhYzh4EhjAOUNNEuINhxuAUYQ/Wd4wMDGYMgYyPABzRIFjDDHEizIvgUHEY5IvgAMIkcUS34zKMBSC9hiAoaD1IAjGU8yRbEE2WXEGA5SD06mIAaejIZhCbGGwzMayAICRQXcEmINB5mJUlSABPAWdqCIZwRHugEx+QWjsIOllo/A4pqfzLoAZvFHYHEtgK24BkcKsMJRBVY45FoCMvw2rgoH2evk1A3IwYJsFt5Kn5Px03xCxTgotXz/z5dIdKWPHomgfCLI+q2MieG35u9/bLwgeVamX5+//uU7++Mf4xRCzRYATNoi4vJ7qzEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABHNCSVQICAgIfAhkiAAAAhhJREFUSEutltFVwjAUhg3wLkwgTiBOIBvABsIAIJ1AmKAcGACYQJhAnEA2kA3kHTj1/7HpSdOkTQO8hLY398u9979JxJ3Dbz6fd6Mo6gghmhhbGOsYDxh3GPeVSmV7PB43QRAcitwJm0EYhvVarfYGhyMCihzxO2yn5/N5kgc2AuOIFq4gdTGMHM/BcDhcmhaZAc5mM0YUukSUZ8NoAQ10mxTwVjAJAXQJaF+FJkCmER8+ro1Mnw9oX03vBUiBVKvVH5+auSzwdDo9Qkh72l6AiG6M4d1lsqfNajAY9FQglXXv6SyZxvShLdZopy1ePqn+ZJTiVrVTaxX38A7AB0VAbJUpgeyX12ui04URa+KbO5MC3ADYFWiFLT68+AJNMKT0E/5aqk9uCAA2GKGtfhNM4Aqt0bvCJBjCEQRGenSqI1vKy8LIkEA9wh0+PKuL0KE+sARoqqFpS5JQX5gKXEM0HUNaM/sgoG1Ezx67/GL5ZwRiEiAW+gXRtKnSHoALi1EG6gPjHAD/+zBe5a+tLUzpLROZ9JvsNHxR1Pwq1Acm00lWclqgWfd4tu6nhGKfDExNbcuOHl0C5J+8WhY5LPg+gdDG0iZ14hel1gOcHEtGoEs9S0BXEMpIv8EZb203SG8qjeoi8+6lTQiEuXc+uqhGCKsnrxOmbFiBSoM3cd/hBauLDYJHTkrJhODdmid9HshawxI18jL9A0nUYyz2Zic3AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAN+SURBVFhHzZdpiE1hGMddpZEIMyRLGiOaiNKMtWwfzAc1phTSlLGPYcjSKD74Iikmsu9LPkwkWSKRGFsajDWJiDE+UIzlCwZdv//tPbczZ+6517nnnOGtf+95l/M8v/O864m0+o9SJGiWaDSahc0ZKB/1Q+1QPXqONkYikbduPgODAaK9nKGZqK2Lw+vAjAkVBpABODiBco2jq+S3UC1SJPaiQegpMOqbMPmODCA9sXwfdUXvURkOT8obba3JDpho/SQvou18KDA4a4PhajTKRKIQZx9dQKZZkGHBlGD4MPqAhliT00RkP3WzkCKSEkSAvoYJpzXYGIbKAdlhfTH1u3kuTQZCn760bzAMy3i/Lm0YjGVj6BX6gbpj7JMN5qYZugrqK53Dwrv9qbuCepi2KvoV+4GZgKGLqAZDI+wOcbaP8ly0hra1jjY7iFZaL/SYfoP9wMiZnJ7BUJHD4VLKm9FR2qbbImYHuWOG8h75F/p18gMzFSPH0FkMFTpgCihfQJrYR9ATpGWv/UZDcxcpsh3Ra9SAjSw/MEMxchvVY6i3A0ah1xGQKMVAeOczwzmR53OyQ3m4H5h55kvlsIu1v1jecZTH80Aj7bp6VqQKBKJ+9NlCtkR2qCtNCwYj2l8OIu2wmzC0wiUKrtXYyKSxDulMy8dGrWeYgEDk9xSahG4AMlrUnmACAsnA71Y0H31FecC88ATjBURnFg50DMQTdfrwsUiboObTbzTFfl79VWQ8gswxX/6Q/AH6hrqhkSjH0L0j13l1zQ6cEsYjiDZC7SVudhtoO4R049O+0yQlhfEIoqW+x4BoTuh86oO0at6gl6gaiO9OCKvsCuMRRJNRJ7XsVeKwws1hsvqEMB5BdFXY5RdEkM1g/hVIMxiPIAswsDOIiDSbM4AUU6kTNuUWT98y+ulm52uOJFxN5gr4iEb9cCU9a+i7kD7bgwaJDxMOqijoEhS7DJndMsO5DKlfZED0btqrJunSxonustkoF4BnlI/zPB7lUNb5oeO+nGybMRQ4iD0y2hk7o0xdrHG8zsCMo9xIeTFlbWShRMSKVGxp4+yycV6Cc03ieKJNlx9dgkIFsUdmMgX9K+sGpgl6GnVAK9HylgCJw5joWL8XsSKyb4jridhqe8TCeG6yAzMks0009EvxC+kasAqQS2E4d9p0O5s0RI1A6G+xxdIfRmCMM89t+ysAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAANpSURBVFhH7Zf9cdRADMXjCiAV4FQAVJCkAkIFHBVAB5gOLh1cKuBSAU4FhAowFRAqON5vR7pR9rz27SUz5I/sjMb2fkhPT1rtujl6Qq15QliOnsGUorHDzGazWWjyF8mdSa/ngDRNc1MTVul6qfmvJW8kvJ9JWtP7Ufpuo74ERotaDQw89flLcmWT+D7NAAASJQggeaJnE4yxzgH48p9hPmOnsnkc7TcC8FkdFxo40zvIv0vO9d27FvMQBbmHrzKgfEajCXDOgNtRv5OBrTVgOjyaAjNicNul9Ut9fJJA+2pqbnAuOZ2B6YtgjAWMeEh43kgBYYpgcIYcu8fmjAPVYFgAfRgnPHxDOcZHwTAu+WDzWz1PJJ3WLMUgOl5ICCPvVcwkMJ47Fmf6fIdgmESnLzFj7wBN6ywF+AYY0kvWpuPhYGAmJDShYwNEMNGBDiQjbOLAw8GYZ4lu8se8nwSjuX8khAZ2vgKwFgwL8Yy6A72E569kkOAZ4yt7zoHx0NyaA3XMhFzBqNeYbQjMOwomgCMYao+vIVlJYJzZtkKdKW/tXEFUlimOYBiCQRiAwdFWDcaUchR4FR09lyIzFQ7UhUkgWECNwVNPvhU1o8SMbWfm+uHI+6X6yZnDw2RgxuoM9JMXqSJL8q2NE73JQk/mtxJYZgMwn/ZoWxuDMIZR3v9PnZk5DhIrYSd2xgJhgk3Cdm2OVDND7PGekHD3QBmMcIDSf2l9c3Vm0LxWwhNgdWeTJSOeeo1B2XoqgTXOfKotzQ9XEjhPeubtz0zFNu2k2JkBMIZgMkl+5QDlXJ15p0Vv7Zj/YVT2enJ/QWmx7Vtn7EpL2AGLnEg3IQccNq+5XCXKJMd2brD1FhIWegMYkrZz9LYExhyLxtugj5KwpP7YDYDQnvsddNAHBa3zBeGa4J6QA5zWNOY7OPoBjxNeIFmTvFajtjA3zR85p7C5UH/rYC7U8U3CwFXpXDFvPTExWLqQO1C2OcB3moWNWyE238PS9r/J/pcYwMAdXrg3enJ32VFq7AEKgDsnuiMI/08+l/mt5DdgpHvF3LGfON/K/vT/pggQYADcSe4Jw9jjStGbo4Ts3vq9/rUtPHjiIYr548o9Xxhzw3GLM2+y7QVmTIPF3NmDftjy2jJreEznwWDmvDxk/BlMibV/JeextjJIFpEAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/icn-contact.b11ce56a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAALcSURBVFhHzZi7a1RBFMb3NqbQtYrgq7CQJFqICoIoSCKIIQkaTZm/QO1sxVfE1s7kL7A0ipigBJIloAgpIil8BAsLX6CVxkKb9feFszKZ3bsz994suwMfd3dmzpnvntfM3KTUQS3pIC6lzGSq1eoWXmAAnAMHwW6D3uuL4Q3PJ2AhSZK/sS8cTQYSO1F6A4yD7ZEL/GTeAzABqW8hmSAZSHSh5Bq4Craawtc8H4NF8Bl8tf5dPPeAU+A8OGL9v3neA3ch9SeNVFMyZo1HCB83BdMihsJ3obfUOPJ9IgAu2vxXPC+kWSmVDIoOITgD9oKPYBwlL2NI+HPQdYI+uWsf+ASG0bXiz2tIxiyyZETkijGEf+QhUpNBZze/HwK5UISO+RaqI2MxUjHXiMiZLBnRjLBl4pwRksv63RhqRGaCSdfNNWJfyCINXCYLyepy2R30K0PX2wYy5p4P9CtrTsbECDLSMWT6ZpGphtxpMfSCecqy/TV3+WQmGbwEppkwFlKqcRQP83hqcxWYs5Fyih9l2RQylzdYxvz5nU4VtAMZ0tclM4KcMjDYLO3fMlGFcYfi8r9lGDxL5zOwzMDRoDabkMdNNd3ILvP7MBhkzecumft0yly3GLgdS6bIPMjc1HpgkjWvuGQW6OwHpxnQ75Y3yGjDnQcV1hxwybynswf0MrAawwRlClzFjNoMciMxco6btJ7WXUW21yXzi85toMzAWoxSj0wJueDG6+pFvsx/BfAaouVCZJw3XK8tm0kms5s2gUyqm3IHMObOa5nUAM6d2gXIpKZ2rqInVxUgk1r0dNDOvB3kJdN0OzCl0Ruln9ZeKQjWHOTTN0ojoxtA1BEiQEZHiVoxrCtZUUcII9QZhysjo6tJBehG0N5jp+Ou9h/InaraGVcVh5ACuv2XOIdQ3uvtKDp0ilMrfr11c9JuDu29+PtFwg7u/icRXfjV9AFAn0Va+0mkrnK1oOMfYuCRMyOIOKAAAAAASUVORK5CYII=\"","var map = {\n\t\"./af\": 308,\n\t\"./af.js\": 308,\n\t\"./ar\": 309,\n\t\"./ar-dz\": 310,\n\t\"./ar-dz.js\": 310,\n\t\"./ar-kw\": 311,\n\t\"./ar-kw.js\": 311,\n\t\"./ar-ly\": 312,\n\t\"./ar-ly.js\": 312,\n\t\"./ar-ma\": 313,\n\t\"./ar-ma.js\": 313,\n\t\"./ar-sa\": 314,\n\t\"./ar-sa.js\": 314,\n\t\"./ar-tn\": 315,\n\t\"./ar-tn.js\": 315,\n\t\"./ar.js\": 309,\n\t\"./az\": 316,\n\t\"./az.js\": 316,\n\t\"./be\": 317,\n\t\"./be.js\": 317,\n\t\"./bg\": 318,\n\t\"./bg.js\": 318,\n\t\"./bm\": 319,\n\t\"./bm.js\": 319,\n\t\"./bn\": 320,\n\t\"./bn-bd\": 321,\n\t\"./bn-bd.js\": 321,\n\t\"./bn.js\": 320,\n\t\"./bo\": 322,\n\t\"./bo.js\": 322,\n\t\"./br\": 323,\n\t\"./br.js\": 323,\n\t\"./bs\": 324,\n\t\"./bs.js\": 324,\n\t\"./ca\": 325,\n\t\"./ca.js\": 325,\n\t\"./cs\": 326,\n\t\"./cs.js\": 326,\n\t\"./cv\": 327,\n\t\"./cv.js\": 327,\n\t\"./cy\": 328,\n\t\"./cy.js\": 328,\n\t\"./da\": 329,\n\t\"./da.js\": 329,\n\t\"./de\": 330,\n\t\"./de-at\": 331,\n\t\"./de-at.js\": 331,\n\t\"./de-ch\": 332,\n\t\"./de-ch.js\": 332,\n\t\"./de.js\": 330,\n\t\"./dv\": 333,\n\t\"./dv.js\": 333,\n\t\"./el\": 334,\n\t\"./el.js\": 334,\n\t\"./en-au\": 335,\n\t\"./en-au.js\": 335,\n\t\"./en-ca\": 336,\n\t\"./en-ca.js\": 336,\n\t\"./en-gb\": 337,\n\t\"./en-gb.js\": 337,\n\t\"./en-ie\": 338,\n\t\"./en-ie.js\": 338,\n\t\"./en-il\": 339,\n\t\"./en-il.js\": 339,\n\t\"./en-in\": 340,\n\t\"./en-in.js\": 340,\n\t\"./en-nz\": 341,\n\t\"./en-nz.js\": 341,\n\t\"./en-sg\": 342,\n\t\"./en-sg.js\": 342,\n\t\"./eo\": 343,\n\t\"./eo.js\": 343,\n\t\"./es\": 344,\n\t\"./es-do\": 345,\n\t\"./es-do.js\": 345,\n\t\"./es-mx\": 346,\n\t\"./es-mx.js\": 346,\n\t\"./es-us\": 347,\n\t\"./es-us.js\": 347,\n\t\"./es.js\": 344,\n\t\"./et\": 348,\n\t\"./et.js\": 348,\n\t\"./eu\": 349,\n\t\"./eu.js\": 349,\n\t\"./fa\": 350,\n\t\"./fa.js\": 350,\n\t\"./fi\": 351,\n\t\"./fi.js\": 351,\n\t\"./fil\": 352,\n\t\"./fil.js\": 352,\n\t\"./fo\": 353,\n\t\"./fo.js\": 353,\n\t\"./fr\": 354,\n\t\"./fr-ca\": 355,\n\t\"./fr-ca.js\": 355,\n\t\"./fr-ch\": 356,\n\t\"./fr-ch.js\": 356,\n\t\"./fr.js\": 354,\n\t\"./fy\": 357,\n\t\"./fy.js\": 357,\n\t\"./ga\": 358,\n\t\"./ga.js\": 358,\n\t\"./gd\": 359,\n\t\"./gd.js\": 359,\n\t\"./gl\": 360,\n\t\"./gl.js\": 360,\n\t\"./gom-deva\": 361,\n\t\"./gom-deva.js\": 361,\n\t\"./gom-latn\": 362,\n\t\"./gom-latn.js\": 362,\n\t\"./gu\": 363,\n\t\"./gu.js\": 363,\n\t\"./he\": 364,\n\t\"./he.js\": 364,\n\t\"./hi\": 365,\n\t\"./hi.js\": 365,\n\t\"./hr\": 366,\n\t\"./hr.js\": 366,\n\t\"./hu\": 367,\n\t\"./hu.js\": 367,\n\t\"./hy-am\": 368,\n\t\"./hy-am.js\": 368,\n\t\"./id\": 369,\n\t\"./id.js\": 369,\n\t\"./is\": 370,\n\t\"./is.js\": 370,\n\t\"./it\": 371,\n\t\"./it-ch\": 372,\n\t\"./it-ch.js\": 372,\n\t\"./it.js\": 371,\n\t\"./ja\": 373,\n\t\"./ja.js\": 373,\n\t\"./jv\": 374,\n\t\"./jv.js\": 374,\n\t\"./ka\": 375,\n\t\"./ka.js\": 375,\n\t\"./kk\": 376,\n\t\"./kk.js\": 376,\n\t\"./km\": 377,\n\t\"./km.js\": 377,\n\t\"./kn\": 378,\n\t\"./kn.js\": 378,\n\t\"./ko\": 379,\n\t\"./ko.js\": 379,\n\t\"./ku\": 380,\n\t\"./ku.js\": 380,\n\t\"./ky\": 381,\n\t\"./ky.js\": 381,\n\t\"./lb\": 382,\n\t\"./lb.js\": 382,\n\t\"./lo\": 383,\n\t\"./lo.js\": 383,\n\t\"./lt\": 384,\n\t\"./lt.js\": 384,\n\t\"./lv\": 385,\n\t\"./lv.js\": 385,\n\t\"./me\": 386,\n\t\"./me.js\": 386,\n\t\"./mi\": 387,\n\t\"./mi.js\": 387,\n\t\"./mk\": 388,\n\t\"./mk.js\": 388,\n\t\"./ml\": 389,\n\t\"./ml.js\": 389,\n\t\"./mn\": 390,\n\t\"./mn.js\": 390,\n\t\"./mr\": 391,\n\t\"./mr.js\": 391,\n\t\"./ms\": 392,\n\t\"./ms-my\": 393,\n\t\"./ms-my.js\": 393,\n\t\"./ms.js\": 392,\n\t\"./mt\": 394,\n\t\"./mt.js\": 394,\n\t\"./my\": 395,\n\t\"./my.js\": 395,\n\t\"./nb\": 396,\n\t\"./nb.js\": 396,\n\t\"./ne\": 397,\n\t\"./ne.js\": 397,\n\t\"./nl\": 398,\n\t\"./nl-be\": 399,\n\t\"./nl-be.js\": 399,\n\t\"./nl.js\": 398,\n\t\"./nn\": 400,\n\t\"./nn.js\": 400,\n\t\"./oc-lnc\": 401,\n\t\"./oc-lnc.js\": 401,\n\t\"./pa-in\": 402,\n\t\"./pa-in.js\": 402,\n\t\"./pl\": 403,\n\t\"./pl.js\": 403,\n\t\"./pt\": 404,\n\t\"./pt-br\": 405,\n\t\"./pt-br.js\": 405,\n\t\"./pt.js\": 404,\n\t\"./ro\": 406,\n\t\"./ro.js\": 406,\n\t\"./ru\": 407,\n\t\"./ru.js\": 407,\n\t\"./sd\": 408,\n\t\"./sd.js\": 408,\n\t\"./se\": 409,\n\t\"./se.js\": 409,\n\t\"./si\": 410,\n\t\"./si.js\": 410,\n\t\"./sk\": 411,\n\t\"./sk.js\": 411,\n\t\"./sl\": 412,\n\t\"./sl.js\": 412,\n\t\"./sq\": 413,\n\t\"./sq.js\": 413,\n\t\"./sr\": 414,\n\t\"./sr-cyrl\": 415,\n\t\"./sr-cyrl.js\": 415,\n\t\"./sr.js\": 414,\n\t\"./ss\": 416,\n\t\"./ss.js\": 416,\n\t\"./sv\": 417,\n\t\"./sv.js\": 417,\n\t\"./sw\": 418,\n\t\"./sw.js\": 418,\n\t\"./ta\": 419,\n\t\"./ta.js\": 419,\n\t\"./te\": 420,\n\t\"./te.js\": 420,\n\t\"./tet\": 421,\n\t\"./tet.js\": 421,\n\t\"./tg\": 422,\n\t\"./tg.js\": 422,\n\t\"./th\": 423,\n\t\"./th.js\": 423,\n\t\"./tk\": 424,\n\t\"./tk.js\": 424,\n\t\"./tl-ph\": 425,\n\t\"./tl-ph.js\": 425,\n\t\"./tlh\": 426,\n\t\"./tlh.js\": 426,\n\t\"./tr\": 427,\n\t\"./tr.js\": 427,\n\t\"./tzl\": 428,\n\t\"./tzl.js\": 428,\n\t\"./tzm\": 429,\n\t\"./tzm-latn\": 430,\n\t\"./tzm-latn.js\": 430,\n\t\"./tzm.js\": 429,\n\t\"./ug-cn\": 431,\n\t\"./ug-cn.js\": 431,\n\t\"./uk\": 432,\n\t\"./uk.js\": 432,\n\t\"./ur\": 433,\n\t\"./ur.js\": 433,\n\t\"./uz\": 434,\n\t\"./uz-latn\": 435,\n\t\"./uz-latn.js\": 435,\n\t\"./uz.js\": 434,\n\t\"./vi\": 436,\n\t\"./vi.js\": 436,\n\t\"./x-pseudo\": 437,\n\t\"./x-pseudo.js\": 437,\n\t\"./yo\": 438,\n\t\"./yo.js\": 438,\n\t\"./zh-cn\": 439,\n\t\"./zh-cn.js\": 439,\n\t\"./zh-hk\": 440,\n\t\"./zh-hk.js\": 440,\n\t\"./zh-mo\": 441,\n\t\"./zh-mo.js\": 441,\n\t\"./zh-tw\": 442,\n\t\"./zh-tw.js\": 442\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 = 677;","module.exports = __webpack_public_path__ + \"static/media/intro-save.e9f4a199.png\";","module.exports = __webpack_public_path__ + \"static/media/onboarding-3.af91ca2a.png\";","module.exports = __webpack_public_path__ + \"static/media/onboarding-4.501e1106.png\";","module.exports = __webpack_public_path__ + \"static/media/onboarding-5.49258c8b.png\";","module.exports = __webpack_public_path__ + \"static/media/img-ob-2.783f5808.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAABHNCSVQICAgIfAhkiAAAAdZJREFUOE+dlN1RwkAUhc/692o6MFYgVJBQgfAgjk9iBUIFxAqkA/HJQR+ECiQVGCuQDsRXHV3P/iRsICHgzmSSwN3vnnvuzQpssOQTupC4ZeiVaGNYtUVUBcgH+NjFu42bYx/HooX5un3V0BGVCVwS8snrkIpvxDmif0PlMzx848MCQ95feVWqXatUjqhIoJ+q47tRXaG2FGpVKi8FffSVj5m/EjMcoF7mrdCBOwh4+fhFjQiPIFWqWUuqMrULU6d8nHHfjPcEe4iFfNQvRwXGx9a/jqvIqh3wP5U8KNg3FcycMMuJziLQY6akamRckK1UVXhnE02E9u4LUwse0r/eVlAzIS8E1mjVG70OdaOWwAnBjU3Atpl5IBuadX9bcBlQicyNVA5cMYvZDAMxK2u6la3MKadBdfaa6RrijF6XrOyQKUheBFWgAD88OC70uBUuQkM2Rvk54cnVdIOKoFL70l5YY0s9JWTAw+Q+a645FxLG1kuhzjEXMzCkFR2C+sT72Sb1iQKRgqcfjitgtVFpSWajaqOBSa1uzPeutsashL97NqZOcJImznc/PZUWtcTcFLkNs15GDlwlbVH5uBhqlKo/1Sebg7meafEmdshHj02tuU39A6LTz1JT7zEYAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/MIK-1_kit.de7a47c5.png\";","module.exports = __webpack_public_path__ + \"static/media/parallel_or_tapered.943b7f6d.png\";","module.exports = __webpack_public_path__ + \"static/media/determine_thread_pitch.a5c8c0f0.png\";","module.exports = __webpack_public_path__ + \"static/media/determine_thread_size.429c2127.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAeFJREFUSEu9Vj0sQ1EUdttEh5eQKIuEhISJhdGsBp38hIEEJR2qDTFhZhPy3uvQaJAwEGGqgd3G1FFCQmLxk5Spkra+05wrt/WovuRq8tLTd7/zfefv3ltRU+FjmmYdIAGPx9ORz+ebCQ77EfYNzItYLPb2G4X4aTEej7fkcrktrAeFELVOuEKh8IH3Ka/XuxCJRB6cMI4ClmVNA7yJp146gewV9hX9hmAvvvwKYQb2YjQa3S0XKRFIJBKN2Wx2DwSDBATpPexVmJdwvlOdEUQbfvcBswZMK+PPfD7fVDgcfpbYEgHUO6WQJwFaqlRj7tEG/GalCHyC3wS4LDu8MI6Ijyr0v2QZ/mN4ccgvZ2S5ihlQQzEVaao5Uk4igrlqyCUW2WxzJhlMWjc1viiAhRMsDFHNDcPoCoVC7y4FaKTT1BNwnSLQYcE1fOJRnERqB27IpQ9KNQF7n0e4iQRGQH7MgPbyaalWjKfrlhs+KmzbXobaOs05UlJnu1ruLzyCfkHQDXhWKAMLxjwEaNsPuGZVHMF5Ds4AOG39AjpKhD7QTvbLEultsvYx1b7R/uWoIBGth51yWOk7rklE+4WjHFiOVybm+poxPTTnyub925WpHhNaL31ViPYJIu/H0+nmb8sngvVcwLeDV7kAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/icon.ff74d934.png\";","module.exports = __webpack_public_path__ + \"static/media/logo-parker-ff-2.2ff4aadb.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAnCAYAAAAcsCj6AAAABHNCSVQICAgIfAhkiAAAAg5JREFUWEftlsFVAjEQhv88n57tQK1AqUCoQDioz9vSAVSgViBWIJx8epEO1A6wAzsQzohxJmTZZTfZJG+DHjTH3Zn5MpP5JxEIWPIRR2R+g210RAfTANeVqfB10rBnst+FxFico+Prm7fzAhIsUZkxLFu34gy9UKgTqGF3lsBdgg5DoJVAB2xGoCYBJ1GA8oFKKCwlk3ijfwnDtN3IF2zMkDLjEvK5lRfDdtBUP+bqXNluQp3b8uncErASBrxS4LaGcceyTNI1oSwbrvKugPKJOnCOYpDMX2JEUkgcdkOCdqugCugNu8c+tvBUyGw9vsQ1bezKBhVOmEBfnGKwJnxX3QCrXAQF+iD/vKDz4ZRjIIz9eey1TJ3LQGnY8Iy+JlSaMbV9myTAXWvblC3fKRZoiAu85w1swIbS2HKk2aZMdWF1kxWNjECC8ffaMBVD4iQ/6KuAL7S7Y3d/FCxS+axveCWXuMAUZh6LqgHjAbPM7GNxgYM4QB+Y1mZ9oBs2I1m1aXhwT6huLOlQd6lf0wi01KiT6uYortKdGQf4RdeVwGWBZrygNwlUwyNE+P4lNWTIx2LS8MYy/MPA4FlZ02H5xOBBK7BXM1bm/knvn8I9mP5MgX4d6bsjGgbpZCnJQmf4s0DfjcewS0s6oGCHMQLqGH3b0//XzpAzzD/b6ybbc2X4L4uwErt0GBatnvU3Uo0Y/exkSmUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAnCAYAAAAcsCj6AAAABHNCSVQICAgIfAhkiAAAAdxJREFUWEftl+FRwzAMhesN2ACYADoB6QS0G6QblAmACSgTUCagGwAblA26QcsE4T2fnTOOHcuNCz8gd/lTS/osRU921SjjaZrmEuYPeGdKqX2Ga2uqpE4G9gr7E7xrAGdSX9dOBASsNpkRZp9HQBe50CTQwJ4igeeArnKgvcAE7BOgCsBNESBgbI5YyT6wVhNm7J6l4GCGCMIS8ruFHsIqs8BN0Y5ZTiSd2wEmYO8IPDUwdixlYp8NgONUeVsgQOxAP4jrz7LVCbsVbOZ9UA3MgJ3B/MXLzI9/D+hdDKoEsBsEWHrCT1UuKhcCd/B2Be0G046ZMPpz7LGJOpIhsAlslxpj26+xzCZh18Y2FcuW0DFibF2DGJCG1FhtYKkShtZ1k/kLQSAM+ftgmIlx7Q76PuAbdnd1QGpWPu6GW7mUBlpYaCzqBiwJtLC+sXheCiiBFcswBaPEpigne2JUIsMJ4ti7jt9jnTOzFLAC6dajBQ/oYwL18MgRvlSHLGknQw6PkIaPluEfBh4wKwe52CsGB+3poEjfnTkMtsGm4Y84RqQdKd0TT3s9WTqy+BWgdNsl7Ow3XCLYRYmAJgZvesH/HBb449+QGbrX9qHJLlIZ/ssit8T9OsyNNsT+C8R4N1QNni4IAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABHNCSVQICAgIfAhkiAAAAz1JREFUWEfFV8112kAQnlkZIk4hFQQqCK7AuALjQ/DLyVBBSAWBCoIriH3KMxyMKzDpgFRgXEHISXq2pMmsJIR+VytiO7rwHrsz+818s9/MImh8NDOPPMIeIXWQoAWILWlGQEv5i0AL4eItfrLXGu5yt6DK0Lk2zxFxynuaOgdIYAbCBD/aPsAqXy4QmtU6Hhk328irOPT3EkxF3ZrgKWx0bTNAnJk5QMBv6SxwtD+ZlqUQsIvW85oeGl0+uccEvU8duhI161gXTAJICOJ7wiHRlfBgXMY/Xdd7HgqmMQaIaC3q9qEOmAiITwcc3O0yQX8EeQM8e1zoplfuc6/NS6b0PGazMvrWYZmPCAg7uN/VBIMAt4v9p1WZg7x1d9aQBf45WiOaGGf2WOXLB5KmRJB7WjUT6UOcWWPBzk/C/zdcL20VRT4QjuB3RAnXBKMf7JOJuA3dQNN7MtdcM2+Dm6TOCtLc7LJYydrwP+FSu6wwdUEy3WOm+2sIZM0BtotsMc6nvKIHfbure1DZPvphtjwD76MgwTksqjvk+liybhzppK/s4Lx1d+bT42sMBzrkQC/z9mH8tgik433kWQVQN1BJDUWpewEgiausKNgXB5K4xiog8dQ9h36kadKmJrER4ILleLRPURbZxDVKXazzNyMgIbutFB3lXa8KMGiEPE5sNapmvStSV8zc9WeQ9+3BnO07loZAlwh+GWdWp1DQ5EKKx2fJSlqxVbRIDH6vSRvxP5dG3x5WpWK7P+gzDamo4YhJD+yvpfK3GwMyrRumnMovVcGEIGTvimjQEcrdYCSjeGwsOUcfosgIFkbdGupMWLHMyuKMhm3S9JEYFcPWzcNQYv7cANJUOHBV1JVpXj9xSYyiwsymcSPAOVYNWpnh2QeTykzM74qLboOEKwbX5N7Q4sMlBZnnBq/dxgYj6UIJpvBdE8wSwOIWDjbaxUIPAmEAB/YqMRgF9oVglA+sIDvmiAENcp4LSWisE/wSnMbbfDCQG8tUMLlglEDiJ/lOUXTBwwQNhLA2avaiqKB1wWgD0WYmZ6MOmFcB4l/tEppeDUgpmH9J+T62RZl51YxEip2l6eK/AEnRxA3WGv0FHmTG7zDLx7cAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABHNCSVQICAgIfAhkiAAAAqNJREFUWEfFl4FVE0EQhnMViBUYKhAq8KxAqcBQAViBWIFQgaECoQJCB1ABoQK1gvh/vlnfuOzuzZEzznv3klx2/v12ZnZvrpsFbLPZvNGw97oOdM3twnNl7lf6vO66bh2QKw7pWo4C+KD/z3XtBScA7LOAEmDQbTYrggiAlX9zKw8L2kDgAfoRdXwCIoiFnL8UonBrqfCrJVK9LtL2Kpv0Tr/fRmH+AjGIr5ngpX6fDeVfvsAQCQ9EzRxGYP6AWDpuXCR+6vtCIhRi2KSz1GBqK9mdNA6HBDzIgwbPzQGIXgKEd7QJhsicOEfq5awl9BukkJKjsZHIJ5EmkXxn9yna/VaKEsh3l5JLOSxGhyFzEAiFvNb1wv5qRqWTQ6+B1EYyyBHY2qRNOj6Z0Fq6+zVRQHw+bzUYsElM2nMJUXvJ2EHFugNkpVEc4dhgUY0llD7RTVv6WCDLkgYgfrdwAAE2mUUXCsjGzfovQHzqqxHfBYjfxk0QXyNbnx95TsekxoNcqEZOJysQCQnEn1HNYmVinrZYc6+PBbQHIe1Espe105UamWuU3+uTpUfaHJS9UdwLgj6naOmI9+mZJCqFE7uaFsgSCNT+mF+K/nhsKtJ4e84Q5dRiPkqPyFfNtwH5o/tczh/HwhgEi/JpGDyfPAj0pOi1m5wzgJCGek9LB8Xpm+2QRt4qIsBDybd7QBAt2oN1KUICoO9g95HikqFBVKqNVql5LkUmiSOEKJ+MI++kwEcgjb3Wl9QYca8JU32vsV6CVabGprLYJ7cfdWdhsETQ+1dhhl6wWCkwCOevCznBvW5Q4Mv0hzXkqwhME8TPZKJ9IQ2s+qpW0FGYMEg0L6VxEZidgAA3BLMzkEGYbUL+HN9aZHYakcZuuvgvIFmaeMCe/gLFdTjYQ4RbWgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAiCAYAAABBY8kOAAAABHNCSVQICAgIfAhkiAAAAmBJREFUSEutl89VGzEQxj89HlxDKog7ACrAriDmQHg5gSuIqSB2BTgVhJzy4hyACuIOMBUAFcQ+ByK+kbT+s97RrDG67O6TNL+Z0cxo1sEYfoh9eJzChWeDz0baMuL3hO/X2MGNOwrv6nDajP+NJv7j+4LgvEoeAwL7GnAF5K+wi3+4otSmZW3F/IRWdtwJrSyNJVBwE2gFwvP1w6HnjtFfFDADJUv+bAyZS++4T7gsPuegYTD34+vNqNx5QNhYZgLI/0Kbb3Iubz1GBLXmoCEe+PHBoEx50GK1rJUhyu3V0Cy40KUAuM1u8PjB0O2WQzekQIS/y+y/IagtoAEXfVEXEsJwPdPmk6KjLGwb7wUkiw4VQY/Yxr6V9TzjHt34VVXWoSUg/XwMawrB/ifL0hbuM+7rCMhn3Nan23o1DhymHHPBG4Kk6mpRM2bEHFgWmXnocG4Fg6R0i3VLAkb3cD6gogzmQpendJGRIxa3ilJSXkdrLinoNLN/yr27LhXTv4Z7JhQ2wBNz6nOsDMldkn9NY+83grpFrbO0so5Jm5/imXlI5SIoXnaiaa6UrA/zvHFT1M6vCfus1gUtVZXyDSvRpZWj9UClaF0GxVIiF9WmLgwBsKjZanOyuQsrC3Flu2VUdMuFs+s7a9FGUbgQZWVt9AZy3T7C446hrLZpKihlf91EniWm5tc8KCayRGG+cZHqfBxaAnVkQcGq2IBIY6mN0HxYEWKCkgu1nmDKnqJh9RQioxYowcYrfZzHUVVDX2VdfVD8AZASFatGzcalgNYGBdnD0N/JoY/psnYdlxWgFzSJ3SjrrAs7AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAiCAYAAABBY8kOAAAABHNCSVQICAgIfAhkiAAAAiJJREFUSEutloFVwkAMhu0E4gR2A2EC6QY4gTCBMIFlAnUCYQJ1AruBOIE4gTJB/f+a47Xlcjlo772+Fi6X75JLcknOjFGW5RAit3j4TuXhqgLPL55XPG9JkvBbHYk2A8AYc881xdaeHiGw1IAHIAAGAphYmj3ztGoGGK1sjAZI3EQr6KYuIwdsWVewB4kl7z1AnH5atnI/6iAe7nUXMzxrR4Bt+H8FgjU8j5eeIVRXAJTVQVv8uDRAO8zzkCnLwc1dRWyucmEiAfBhLFhjft4OXUkBws8D65ljE4IY/3cBwTUEp9q8bLQwYBcEUUgLgm/MDa2sh44ccveBzWYEhc4naI1TDB0pvr8CoBlBZUCAJYW7NYepxxToEcT6pEXNBhaNLHMi8nBhBQMZGWAMGHUYAfWvA0JzfDwE9NBiwqpS0h5Yv8J/vK+0scPaAUG8Fn4M9xDGfGMUbikr7mL+jY21T1gzd7XO2pWhS7cGM8zDrQPRKu40VEpOge3To35NWGd1LKhRVdo3bAFtfd1JjWhtg1KAGF1dXVgFQN0Fvuakqwu9hdjbbkUkYOi89td30CLJkVOjUC3CoQby2D7iE+eitmkqSCyLTWT2E1Viaj61QHQho9BqXBaAsESpIwgSq1jL2Fhqo2o+rGw2QQLL8fb1BHRZavUU1BEFEhhd2O7jbgA5aOh91h0DYkQVeFzViGpcHDQaJFZN8eah07pJjMsc6A+9NepulkTnUAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAiCAYAAABIiGl0AAAABHNCSVQICAgIfAhkiAAAAf1JREFUWEftV8tRAkEQfaOlV8lAiECIQIgAOSjlSc2ADIQIhAjEk4UehAiUCFwjkAzkbsH4eneggNrd2Rk+XugqipLp7jfd05+ngoPoV5ShcUOTovmI9Qd/CzBFR11jlNWdyqKon5HHIR6pW07V12jjGC1Vw9jm1wqsX8Lo3vnJ2ZyZ8wBHqNjAU4H1G8F+8e0AGmFr9FUdtbSLpgP30IUK39RH7tQV7RMkEdhE++ODOEs5gUvuwC+4pZEUlL9MUEiq9OSIe2gyzff+qLRULLJLtluM7IHnSWH//tMbRz3sX9UaX+xlGT6xsr0+1qgRuO8HHEUd0PjUsboH7OEL78klhmZWS0ucZAJnirkoymvN6hmQ2U5d/n1uAe9wQTRtoOLDup0WgcJ9PA2rvUjLM3M25HeACdob38eZUuyo5BSxo+9U9VjgsKAUqtyrZWMtlEdao8/CGay+oamBKs/lGfJh6jVZiOKcnlA/hhItAZtV+GAc2AIU5zk6F6A0kQu0uSxai0pzYA+KY7vY6vkSJQqBvSmOKzQZKQdLZd5OjFbI3Ow93d25WGiy0Dp73XBlAd6VjDlkCkqvR+j8LisLhGn+pHXi+vLzbLXqCLC2qm1eYbgH3nxS4z2GqR7xzJVhrHdBjSfp4wbLS+bzLqUUjcwIvLH1yIUWHaAh/138AbuKrNd4C56UAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAiCAYAAABIiGl0AAAABHNCSVQICAgIfAhkiAAAAb5JREFUWEftluFRwzAMheMJYAPaCaATkE4AmQBG6AakE9BMQNigTEA6AXQCsgFsEN7rKb20l1h2TEJ/1He+tGdZnyXLkkzkMaqqiiH+gMnvRLYW+H5iZsaY0lWdcREEkJAXAdq2rLC4xAF+NL0qGNAbKHnHvNSUyTqtn2twKxhQwj4abnVkR2uAE5uwBs7lTl2BTbkE8HXXxk6wWPvdh1i7HOBZH/CjBFQAO5p2RbrN4hTEpxCqBFnRpuMM3nsFwfVvd8w3HBLVWwQWk0/rOL13zGPKW2YKvPKM7jdYe987cwmc7uKTuHCEbyEXB+XqGiTVKcf/WwWeYT3VoNShVqcmSOoxo51euJa1Db68jtWf12NHF3uJeVnspVkRbgVL8b9jkMh+flniOBmxBx2GxADleQ0TcT1lCpEvj89xAJbn8ywKNAN5r0wyBNkGD8D7XzaF9uAeLY52sOP1g5ZoBxZLv8QCX4U+8gUsn3NDDWYzF/toCJBlF5oaeZsEjzV451OCc/xgkz7mSAhm+9pZvgY6TUZwNZBym9rNGTyW13euLkHz7TBCD/hK8AJamJ/HHLM6cxHOObTlbIsWyFzFL69cssgyuNhGAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAABHNCSVQICAgIfAhkiAAAAsZJREFUWEfFmD1oFEEYht/xL+IPiFgIEURBEBQEjYWioJDCJqgk5pQQ0EqxjAYNIoj4hyCInYUoVtk1YoiVWBwYAgEloCCkjdpdMAohFho/39lcLrt3O7u3czvewLB3O3PfPPvO+83MnkLORQaxHwpdrNsYegvrLARTrE/UaYwnDafyYhEPZwhwifH2xcYUjKsCDjiFkcdYiQ14RJALCQPNU5kCYV46gxEfqxj8DeuRRBCgR3XDS5uFhqaJU3OHigzkAaJjWMNQFT3/o6zLDTDzvF+XIou/t4fxMMJH6cgLxFoZeY61aME0YVYbYEbokeNpHqG6rTT2FfbzaO4xK2XolU6CDBkHEwwz+MkkmAAEKLLuINAY+x+yg3lB0wrNayopMBGQhRhfqORWOxgP96iMlje+JMDEgOgYs4RZbwfj4y4DXM0KYwDRYT4RZo8djIduKpO0iE2yfbAGVtATeKS6CHx6pmAHM4Q2/MX7tGzJ0H6OyjzLDEOpN5ezYGeGwcxdBTNUsZUwvzLB5A6iEQUPOEWX9ce6YRyBfMQaHFQdmKsbxhHINFagTXXy4FUuqco4AQE+YBl6VRcmw2ZKhHEA8oPGeIhNuK2O4k+1q40wViALmdFPU27ndS8H04cv7Yev/D6M7yiq8/htSq1YGGsQQTsP3RO2KV8D0yyQmmxqJkgEptkgFRgpMuNLwQtW/DtPnAm0WRv0SGw2UZV+NtyvNApe0/16MTrLui5ml80dZEkZH+/45XAwqGCCe0WgEI+X1wl1MwLjQJHICkxlvvGGPpPq8pk76O4AxsctXq6FFHOiSBTGw1sq0B5SYDR4WVc4xXstZcWcgoSnSXvjaY03Fm84nJrwmJVFj/54RSVOxACVeKo71sjKanzIqoYlmBvcR3fxxC+4yD76f5Wf/Kyzqo8eKtUbsJF+pr1pI90yoxRx/mP5BwNX+SOpgXy1AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAiCAYAAADVhWD8AAAABHNCSVQICAgIfAhkiAAAAnZJREFUWEfF2E1oE0EUwHHX+lFQL54KFcRCoQdB0HhQKnjw4KWotDWUIOhNPFalingp/ZBCQbxLe2ykxZCexEPAEghYAgqFXv24KaRC0IOW9f/CJmw2O7PZ2R2y8MjHbN77debNJlvnQMqH67oXSTlBnCFOEXXiC/HacZyKrpyTlgXEFLkeEhcUOStgLlnFgDhMgVfEfU2hfcayYDasYYAcIfk74moEJAckH7UKiZYJzAIFnqYBkRzGGCCy/ltEnwIjS9PVjDQ/nwRTJMlYWhDjmWFWjvHhn0S/AlOkR25E9Qh5BjlnhshzftloZkgyToJ1TbECyW/pMB6kxDnDRJnzR00x0rTSvKpDiwlAJMdXMKdNMS+86Y2NCYFIjjqYE6aYRRI8iTszCoik+QzmnCnmtjSdBrPL2FrIeM7rkeDQGzBZU0yGbB+jdkuM8XtgVmNjmOoBisguGIlRTHdqjcFBMH9iYSxABLkM5JE86RpjCfIJw2Uwv7vGWILIFTwDRH54NY7ImbEE2ab2HSCy61qHFmMBskfll8Q8kH/BrlZiDCGyMx4TQ8R5Qn58ST98IwpECcRf1dYKxSSAXKNYVbePdWMdmF5BOhq4l5A2TK8hLQyQQ7yQGyzVPU/YUkuzJuqR0N0ERnbAkm9wk+dyMbpLHA+RpA7xz8wHXlzxilbZEY0ZAvmch9kAxgrEj/nOC/lxLMcOmLMeZo7HZz6MNYgf817W31dU7odkmSaJo977ViF+jPTGSkhvNN+yDmlhvCV5y+PNENAP3rue5Mqq+SPbhlpXYJr1ICNyQ/WAkP+r/CJkV00DEZD1Q/XddJLKNRCudYGvwH/zj/Ij1Vs/rAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/logo-black.fe02c8c5.png\";","const Colors = {\n\ttransparent: \"rgba(0,0,0,0)\",\n\tsemiTransparent: \"#000000B3\",\n\toverlayBackground: \"#0000008C\",\n\twhite: \"#ffffff\",\n\tblack: \"#1A1818\",\n\tdarkGrey: \"#1C2B39\",\n\tmediumGrey: \"#838181\",\n\tgrey: \"#CCCCCC\",\n\tbackgroundGrey: \"#F4F5F6\",\n\tlightGrey: \"#F6F6F6\",\n\ttitleGrey: \"#656565\",\n\tyellow: \"#FDB913\",\n\tprimaryBlue: \"#55C6E8\",\n\tprimaryGreen: \"#87CB9F\",\n\tred: \"#FF4136\",\n}\n\nexport default Colors\n","import { Platform } from 'react-native';\nconst getBaseUrl = () => {\n if (Platform.OS === 'web') {\n \n const protocol = window.location.protocol;\n const host = window.location.hostname;\n // Use window.location to construct the base URL dynamically\n \n return `${protocol}//${host}`;\n } else {\n // Return a fixed URL for non-web platforms\n return 'https://parkerfittingfinder.com';\n }\n};\n//Local\n//EXPO_PUBLIC_API_URL=http://localhost:5000/api\n//const API_URL = 'http://localhost:5000';\n\n//AccellaTest\n//const API_URL = 'http://ec2-34-230-76-113.compute-1.amazonaws.com';\n//const WEB_URL = 'http://ec2-34-230-76-113.compute-1.amazonaws.com';\n//const WEB_URL = 'https://test.parkerfittingfinder.com';\n//const IMGSRV_URL = `https://test.parkerfittingfinder.com/backend`;//'http://ec2-34-230-76-113.compute-1.amazonaws.com/api'\n\n//const WEB_URL = getBaseUrl();// 'https://test.parkerfittingfinder.com/';\n//const IMGSRV_URL = `${getBaseUrl()}/backend`;//'http://ec2-34-230-76-113.compute-1.amazonaws.com/api'\n\n//Parker Test\nconst API_BASE_URL = \"https://api.parker.com/prod\"\n//const API_URL = 'https://apidev.parker.com/fitting-finder-api-dev';\n//const GATEWAY_KEY='1965d46f36d34f25b5b2ad154dd7d99d'\n//const WEB_URL = 'https://test.parkerfittingfinder.com';\n//const IMGSRV_URL = `https://test.parkerfittingfinder.com/backend`;//'http://ec2-34-230-76-113.compute-1.amazonaws.com/api'\n\n\n//Parker Prod\n////const API_BASE_URL = \"https://api.parker.com/prod\"\nconst API_URL = 'https://api.parker.com/fitting-finder-api';\nconst GATEWAY_KEY='51f0e9ba9d9343ea991aebd58302bc34'\nconst WEB_URL = 'https://parkerfittingfinder.com';\nconst IMGSRV_URL = `https://parkerfittingfinder.com/backend`;//'http://ec2-34-230-76-113.compute-1.amazonaws.com/api'\nexport {API_URL, WEB_URL,IMGSRV_URL, GATEWAY_KEY,API_BASE_URL};","import apisauce from \"apisauce\"\nimport {API_URL, WEB_URL,GATEWAY_KEY,API_BASE_URL,IMGSRV_URL} from '../utils/Configuration';\nimport { refreshTokens } from '@okta/okta-react-native';\nimport { authStore } from \"../utils/AuthStore\"\n//const baseURL = `http://127.0.0.1:5000/`\nconst baseURL = API_URL\nconst apiURL = baseURL // + \"api/\"\nconsole.log(apiURL)\nconst RestAPI = () => {\n\tconst api = apisauce.create({\n\t\t//baseURL: `https://cors-anywhere.herokuapp.com/${apiURL}`,\n\t\tbaseURL: apiURL,\n\t\theaders: {\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"Ocp-Apim-Subscription-Key\":GATEWAY_KEY\n\t\t},\n\t\ttimeout: 30000,\n\t})\n\t// Create a response transformer to handle token expiration\n\tconst tokenRefreshResponseTransformer = async (response) => {\n\t\tif (response.status === 401) {\n\t\t// Token expired or invalid; refresh it\n\t\tconst newToken = await refreshTokens();\n\t\tif (newToken) {\n\t\t\tsetToken(newToken.access_token)\n\t\t\tauthStore.signInSuccess(-1, '', newToken)\n\t\t\t// Update the headers with the new token\n\t\t\t//api.setHeader('Authorization', `Bearer ${newToken}`);\n\t\t\t// Reattempt the original request\n\t\t\treturn api.axiosInstance(response.config);\n\t\t}\n\t\t}\n\t\treturn response;\n\t};\n \t// Add the response transformer to the `apisauce` instance\n\tapi.addResponseTransform(tokenRefreshResponseTransformer);\t\n\t\n\tconst setToken = (token) => {\n\t\tconsole.log(`Bearer ${token}`)\n\t\tapi.setHeader(\"Authorization\", `Bearer ${token}`)\n\t}\n\n\tconst login = (data) => api.post(`api/auth/token`, data)\n\tconst forgotPassword = (data) => api.post(`api/account/forgotPassword`, data)\n\tconst createAccount = (data) => api.post(`api/account`, data)\n\tconst updateAccount = (data) => api.put(`api/account`, data)\n\tconst getAccount = () => api.get(`api/account`)\n\tconst deleteAccount = (data) => api.delete(`api/account`, {}, { data })\n\n\tconst createFavoritePart = (id, data) => api.post(`api/account/${id}/favorite/part`, data)\n\tconst updateFavoritePart = (id, data) => api.put(`api/account/${id}/favorite/part`, data)\n\tconst deleteFavoritePart = (id, data) => api.delete(`api/account/${id}/favorite/part`, {}, { data })\n\tconst getFavoriteParts = (id) => api.get(`api/account/${id}/favorite/parts`)\n\n\tconst createFavoriteDistributor = (id, data) => api.post(`api/account/${id}/favorite/distributor`, data)\n\tconst updateFavoriteDistributor = (id, data) => api.put(`api/account/${id}/favorite/distributor`, data)\n\tconst deleteFavoriteDistributor = (id, data) => api.delete(`api/account/${id}/favorite/distributor`, {}, { data })\n\tconst getFavoriteDistributors = (id) => api.get(`api/account/${id}/favorite/distributors`)\n\n\tconst refreshToken = (data) => api.post(`api/auth/refreshToken`, data)\n\tconst getProductTypes = () => api.get(`api/fitting/productTypes`)\n\tconst getShapes = (id) => api.get(`api/fitting/productType/${id}/shapes`)\n\tconst getEndGenders = (data) =>\n\t\tapi.get(\n\t\t\t`api/fitting/productType/${data.productId}/shape/${data.shapeId}/end/${data.endNumber}/genders${data.params}`\n\t\t)\n\tconst getEndTypes = (data) =>\n\t\tapi.get(\n\t\t\t`api/fitting/productType/${data.productId}/shape/${data.shapeId}/end/${data.endNumber}/gender/${data.genderId}/subGender/${data.subGenderId}/endTypes${data.params}`\n\t\t)\n\tconst getEndTypeSizes = (data) =>\n\t\tapi.get(\n\t\t\t`api/fitting/productType/${data.productId}/shape/${data.shapeId}/end/${data.endNumber}/gender/${data.genderId}/subGender/${data.subGenderId}/endTypeSizes${data.params}`\n\t\t)\n\tconst getThreadIdentification = (data) =>\n\t\tapi.get(\n\t\t\t`productType/${data.productId}/shape/${data.shapeId}/end/${data.endNumber}/gender/${data.genderId}/subGender/${data.subGenderId}/threadIdentification${data.params}`\n\t\t)\n\tconst getMaterials = (data) =>\n\t\tapi.get(`api/fitting/productType/${data.productId}/shape/${data.shapeId}/materials${data.params}`)\n\tconst getProducts = (data) =>\n\t\tapi.get(\n\t\t\t`api/fitting/productType/${data.productId}/shape/${data.shapeId}/material/${data.materialId}/products${data.params}`\n\t\t)\n\tconst getSpecifications = (data) => api.post(`api/fitting/productSpecifications`, data)\n\tconst searchPart = (endpoint, str, competitorId) => api.get(`api/search/${endpoint}?part=${str}${competitorId}`)\n\tconst loadPartById = (id, isTFD) => api.get(`api/search/part?id=${id}&isTFD=${isTFD}`)\n\tconst getCompetitors = () => api.get(\"/api/dashboard/competitors\")\n\tconst getImageURL = (img) => `${baseURL}static/img/config/${img}`\n\n\treturn {\n\t\tsetToken,\n\t\tlogin,\n\t\tforgotPassword,\n\t\tcreateAccount,\n\t\tupdateAccount,\n\t\tgetAccount,\n\t\tdeleteAccount,\n\t\tcreateFavoritePart,\n\t\tupdateFavoritePart,\n\t\tdeleteFavoritePart,\n\t\tgetFavoriteParts,\n\t\tcreateFavoriteDistributor,\n\t\tupdateFavoriteDistributor,\n\t\tdeleteFavoriteDistributor,\n\t\tgetFavoriteDistributors,\n\t\trefreshToken,\n\t\tgetProductTypes,\n\t\tgetShapes,\n\t\tgetEndGenders,\n\t\tgetEndTypes,\n\t\tgetEndTypeSizes,\n\t\tgetThreadIdentification,\n\t\tgetMaterials,\n\t\tgetProducts,\n\t\tgetSpecifications,\n\t\tsearchPart,\n\t\tloadPartById,\n\t\tgetCompetitors,\n\t\tgetImageURL,\n\t}\n}\n\nexport const API = RestAPI()\n\nconst parkerURL = `http://corpapps.parker.com/`\nconst GoogleGeoAPI = () =>{\n\tconst api = apisauce.create({\n\t\tbaseURL: IMGSRV_URL,\n\t\theaders: {\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\n\t\t},\n\t\ttimeout: 30000,\n\t})\n\tconst naviMonitor = (response) => console.log(\"========== API Response ==========\", response)\n\tapi.addMonitor(naviMonitor)\n\tconst getGeoCodePoint = (zip) =>\n\t\t\n\t\tapi.get(\n\t\t\t`api/geocode/${zip}`\n\t\t\t\n\t\t)\n\n\treturn {\n\t\tgetGeoCodePoint,\n\t}\n}\nexport const GoogleAPI = GoogleGeoAPI()\nconst ParkerRestAPI = () => {\n\tconst api = apisauce.create({\n\t\tbaseURL: API_BASE_URL,\n\t\theaders: {\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\"Ocp-Apim-Subscription-Key\":GATEWAY_KEY\n\t\t},\n\t\ttimeout: 30000,\n\t})\n\tconst naviMonitor = (response) => console.log(\"========== API Response ==========\", response)\n\tapi.addMonitor(naviMonitor)\n\n\tconst searchForDistributor = (point, zip) =>\n\t\t\n\t\tapi.get(\n\t\t\t`wheretobuy/getDistributor?countryCode=USA&countryId=687PDC&point=${point}&searchType=D&postalCode=${zip}&productId=1428283&distance=50&uom=m`\n\t\t\t//`/wheretobuy/getDistributor?countryCode=USA&countryId=687PDC&point=${point}&searchType=D&postalCode=${zip}&productId=3501263&distance=60&uom=m`\n\t\t)\n\n\treturn {\n\t\tsearchForDistributor,\n\t}\n}\n\nexport const ParkerAPI = ParkerRestAPI()\n\nconst CADRestAPI = () => {\n\tconst api = apisauce.create({\n\t\tbaseURL:`${API_BASE_URL}/cad/cad/list/`,// \"https://api.parker.com/prod/cad/cad/list/\",\n\t\theaders: {\n\t\t\t\"Cache-Control\": \"no-cache\",\n\t\t\t//\"Ocp-Apim-Subscription-Key\": GATEWAY_KEY,//\"a3556221bf5f453cad470ce8d57f552b\",\n\t\t},\n\t\ttimeout: 30000,\n\t})\n\tconst naviMonitor = (response) => console.log(\"========== API Response ==========\", response)\n\tapi.addMonitor(naviMonitor)\n\t\n\tconst setAPIKey = (apiKey) => api.setHeader(\"Ocp-Apim-Subscription-Key\", apiKey)\n\t//const setAPIKey = (apiKey) => api.setHeader(\"Ocp-Apim-Subscription-Key\", \"22368906ea8b40aa8c36c74957ad7a30\")\n\n\tconst getCadLinks = (partNumber) => api.get(`byPartNumber/${partNumber}`)\n\treturn {\n\t\tsetAPIKey,\n\t\tgetCadLinks,\n\t}\n}\n\nexport const CADAPI = CADRestAPI()\n","import { observable, action, computed, makeAutoObservable } from \"mobx\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport jwt_decode from \"jwt-decode\"\nimport * as SecureStore from \"expo-secure-store\"\nimport { Platform } from \"react-native\"\nimport {WEB_URL} from '../utils/Configuration';\nclass AnalyticsStore {\n \n\tconstructor() {\n\t\tmakeAutoObservable(this)\n\t}\n\n eventUrl =`${WEB_URL}/backend/api/gtm/event/part_details_email`\n // Register the handle function from App.js\n // registerHandleLogEvent(handleLogEvent) {\n // this.handleLogEvent = handleLogEvent;\n // }\n logEvent(eventName, params){\n if (Platform.OS === 'web' && window.dataLayer) {\n window.dataLayer.push({\n event: eventName, // The event name you configured in GTM\n customData: params, // Any additional data you want to pass\n });\n console.log('GTM event triggered');\n }else{\n this.eventUrl =`${WEB_URL}/backend/api/gtm/event/${eventName}`\n }\n //this.eventUrl =`${WEB_URL}/backend/api/gtm/event/part_select_shape`\n //this.eventUrl =`${WEB_URL}/backend/api/gtm/event/${eventName}`\n //console.log(`log event:${eventName}`)\n //call handleShowWebView\n // if (this.handleLogEvent) {\n // this.handleLogEvent(eventName, params); // Call the handle function in App.js\n // }\n }\n\n}\n\nexport const analyticsStore = new AnalyticsStore()","import { observable, action, computed, makeAutoObservable } from \"mobx\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport jwt_decode from \"jwt-decode\"\nimport { API } from \"./API\"\nimport * as SecureStore from \"expo-secure-store\"\nimport { analyticsStore } from \"../utils/AnalyticsStore\"\nimport { Platform } from \"react-native\"\n\nclass AuthStore {\n\tconstructor() {\n\t\tmakeAutoObservable(this)\n\t}\n\n\tloading = false\n\terror = undefined\n\tauthenticated = false\n\tshowHomeStack = false\n\taccountInfo = {}\n\tisCreateAccount = false;\n\tallowEmailUpdates = null\n\tallowAppNotifications = null\n\tfaceId = null\n\tnoAccount = false\n\tnavLink = null\n\tasync save(key, value) {\n\t\tconsole.log(`setting key ${key}: ${value}`)\n\t\tawait SecureStore.setItemAsync(key, value)\n\t}\n\tasync getSecureKey(key) {\n\t\treturn await SecureStore.getItemAsync(key)\n\t}\n\tasync signInSuccess(id, email, token) {\n\t\tconsole.log('signInSuccess')\n\t\tAPI.setToken(token.access_token)\n\t\t\n\n\t\tAsyncStorage.setItem(\"tokenObject\", JSON.stringify(token))\n\t\tanalyticsStore.logEvent(\"login\", {})\n\t\tthis.authenticated = true\n\t\tthis.showHomeStack = true\n\n\t\tAPI.getAccount().then((res) => {\n\t\t\tif (!res.ok) {\n\t\t\t\tthis.noAccount = true;\n\t\t\t\tthis.logout()\n\t\t\t} else {\n\t\t\t\tthis.accountInfo = res.data.model\n\t\t\t\tthis.syncLocalData(res.data.model.id)\n\t\t\t}\n\n\t\t})\n\t\t//this.createAccount({ email:'', password:'', allowEmailUpdates:true, allowAppNotifications:true })\n\t\t//this.syncLocalData(id)\n\t\tconsole.log('authstore_signInSuccess')\n\t}\n\tasync signInSuccessCreateAccount(id, email, token, data) {\n\t\tconsole.log('signInSuccessCreateAccount')\n\n\t\tAPI.setToken(token.access_token)\n\t\tlet values = { allowAppNotifications: true, allowEmailUpdates: true }\n\t\t//let values = { allowAppNotifications: this.allowAppNotifications, allowEmailUpdates: this.allowEmailUpdates }\n\t\treturn API.createAccount(values).then((res) => {\n\t\t\tif (res.ok) {\n\t\t\t\t//console.log('account created')\n\t\t\t\t//AsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID: true }))\n\t\t\t\tAPI.getAccount().then(async (res) => {\n\t\t\t\t\tconsole.log('loaded account')\n\t\t\t\t\tthis.accountInfo = res.data.model\n\t\t\t\t\tvar faceID = this.faceId;\n\t\t\t\t\tawait AsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n\t\t\t\t\tawait AsyncStorage.setItem(\"tokenObject\", JSON.stringify(token))\n\t\t\t\t\tanalyticsStore.logEvent(\"login\", {})\n\t\t\t\t\tthis.authenticated = true\n\t\t\t\t\tthis.showHomeStack = true\n\t\t\t\t\tthis.syncLocalData(res.data.model.id)\n\t\t\t\t\t// API.getAccount().then((res) => {\n\t\t\t\t\t// \tthis.accountInfo = res.data.model\n\t\t\t\t\t// })\n\t\t\t\t})\n\t\t\t\t//this.authenticated = true\n\t\t\t\t//this.showHomeStack = true\n\t\t\t\t//if there are any save distrubutors send them to the server\n\n\n\t\t\t} else {\n\t\t\t\tif (res.data?.errorMessage?.includes('is already taken'))\n\t\t\t\t\tAPI.getAccount().then(async (res) => {\n\t\t\t\t\t\tconsole.log('loaded account')\n\t\t\t\t\t\tthis.accountInfo = res.data.model\n\t\t\t\t\t\tvar faceID = this.faceId;\n\t\t\t\t\t\tawait AsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n\t\t\t\t\t\tawait AsyncStorage.setItem(\"tokenObject\", JSON.stringify(token))\n\t\t\t\t\t\tanalyticsStore.logEvent(\"login\", {})\n\t\t\t\t\t\tthis.authenticated = true\n\t\t\t\t\t\tthis.showHomeStack = true\n\t\t\t\t\t\tthis.syncLocalData(res.data.model.id)\n\t\t\t\t\t\t// API.getAccount().then((res) => {\n\t\t\t\t\t\t// \tthis.accountInfo = res.data.model\n\t\t\t\t\t\t// })\n\t\t\t\t\t})\n\t\t\t\tconsole.log(res.data)\n\t\t\t}\n\t\t\treturn res\n\t\t})\n\n\t}\n\tlogin(email, password) {\n\t\tthis.loading = true\n\t\tthis.error = undefined\n\n\t\treturn API.login({ username: email, password }).then((res) => {\n\t\t\tif (!res.ok) {\n\t\t\t\t//Alert.alert(\"Error\", res.data.error.message)\n\t\t\t\talert('no account')\n\t\t\t\tthis.logout()\n\t\t\t\treturn res\n\t\t\t} else {\n\t\t\t\tAPI.setToken(res.data.token)\n\t\t\t\tconst id = jwt_decode(res.data.token)[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\"]\n\t\t\t\tAPI.getAccount(id).then((res) => {\n\t\t\t\t\tif (res.data) {\n\t\t\t\t\t\t//alert('no account')\n\t\t\t\t\t}\n\n\t\t\t\t}).error((err) => {\n\t\t\t\t\tthis.noAccount = true;\n\n\t\t\t\t})\n\t\t\t\tthis.accountInfo = res.data.model\n\t\t\t\tAsyncStorage.setItem(\"tokenObject\", JSON.stringify(res.data))\n\t\t\t\t// Analytics.logEvent(\"login\")\n\t\t\t\tthis.authenticated = true\n\t\t\t\tthis.showHomeStack = true\n\t\t\t\tthis.syncLocalData(id)\n\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t\treturn res\n\t\t})\n\t}\n\n\tsyncLocalData(userId) {\n\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t\t\tif (favoritesData) {\n\t\t\t\tconst data = JSON.parse(favoritesData)\n\t\t\t\tPromise.all(data.filter(a => a.synced === false).map((item) => {\n\t\t\t\t\tAPI.createFavoriteDistributor(userId, item).then((res) => {\n\n\t\t\t\t\t})\n\t\t\t\t\treturn { ...item, synced: true };\n\t\t\t\t}))\n\n\t\t\t}\n\t\t})\n\t\tAsyncStorage.getItem(\"deletedFavorites\").then((deletedFavorites) => {\n\t\t\tconst data = JSON.parse(deletedFavorites)\n\t\t\tdata.forEach((item) => {\n\t\t\t\tAPI.deleteFavoriteDistributor(userId, { id: item[0].id })\n\t\t\t})\n\n\n\n\t\t\tAsyncStorage.setItem(\"deletedFavorites\", \"\")\n\t\t})\n\t}\n\trefreshToken(token) {\n\t\tthis.loading = true\n\t\tthis.error = undefined\n\n\t\treturn API.refreshToken({ token }).then((res) => {\n\t\t\tif (res.status !== 200) {\n\t\t\t\t//this.logout()\n\t\t\t} else {\n\t\t\t\tAsyncStorage.setItem(\"tokenObject\", JSON.stringify(res.data))\n\t\t\t\tthis.authenticated = true\n\t\t\t\tthis.showHomeStack = true\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t\treturn res\n\t\t})\n\t}\n\n\tsetToken(token) {\n\t\tAPI.setToken(token)\n\t\tconst id = jwt_decode(token)[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\"]\n\t\tAPI.getAccount(id).then((res) => {\n\t\t\tthis.accountInfo = res.data.model\n\t\t})\n\t\tthis.authenticated = true\n\t}\n\n\tasync logout() {\n\t\tthis.authenticated = false\n\t\tthis.accountInfo = {}\n\t\tif(Platform.OS!==\"web\"){\n\t\t\tlet faceIDObj = JSON.parse(await AsyncStorage.getItem(\"faceID\"))\n\n\t\t\tif (faceIDObj?.faceID) {\n\t\t\t\tconsole.log('true')\n\t\t\t\tlet tokenStore = await AsyncStorage.getItem(\"tokenObject\")\n\t\t\t\tconsole.log(`logout:${tokenStore}`)\n\t\t\t\tawait this.save('savedToken', JSON.stringify(tokenStore))\n\t\t\t} else {\n\t\t\t\tconsole.log('false')\n\t\t\t\tAsyncStorage.removeItem(\"tokenObject\")\n\t\t\t\tthis.authenticated = false\n\t\t\t}\n\t\n\t\t\t\n\t\t}\n\t\tAsyncStorage.removeItem(\"tokenObject\")\n\n\t\t\n\t}\n\n\tcreateAccount(data) {\n\t\treturn API.createAccount(data).then((res) => {\n\t\t\tif (res.ok) {\n\t\t\t\t//AsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID: true }))\n\t\t\t\tthis.login(data.email, data.password)\n\n\t\t\t\t//if there are any save distrubutors send them to the server\n\n\n\t\t\t}\n\t\t\treturn res\n\t\t})\n\t}\n}\n\nexport const authStore = new AuthStore()\n","import React from \"react\"\nimport { StyleSheet, Text, Pressable } from \"react-native\"\nimport Colors from \"../utils/Colors\"\n\nconst Button = (props) => {\n\tlet theme = props.theme ? props.theme : \"black\"\n\tlet buttonStyle = theme === \"black\" ? styles.button : styles.yellowButton\n\tlet textStyle = styles.buttonText\n\tswitch (props.buttonType) {\n\t\tcase \"outline\":\n\t\t\tbuttonStyle = styles.outlineButton\n\t\t\ttextStyle = styles.outlineButtonText\n\t\t\tbreak\n\t\tcase \"clear\":\n\t\t\tbuttonStyle = styles.clearButton\n\t\t\ttextStyle = theme === \"black\" ? styles.clearButtonText : styles.clearButtonTextWhite\n\t\t\tbreak\n\t}\n\n\treturn (\n\t\t !props.disabled && props.onPress()}\n\t\t>\n\t\t\t\n\t\t\t\t{props.title}\n\t\t\t\n\t\t\n\t)\n}\n\nexport default Button\n\nconst styles = StyleSheet.create({\n\tbutton: {\n\t\tbackgroundColor: Colors.black,\n\t\tpadding: 14,\n\t\tpaddingHorizontal: 30,\n\t},\n\tyellowButton: {\n\t\tbackgroundColor: Colors.yellow,\n\t\tpadding: 14,\n\t\tpaddingHorizontal: 30,\n\t},\n\toutlineButton: {\n\t\tbackgroundColor: Colors.white,\n\t\tpadding: 13,\n\t\tpaddingHorizontal: 30,\n\t\tborderColor: Colors.black,\n\t\tborderWidth: 4,\n\t},\n\tclearButton: {\n\t\tbackgroundColor: Colors.transparent,\n\t\tpadding: 13,\n\t\talignItems: \"center\",\n\t},\n\tbuttonText: {\n\t\tcolor: Colors.white,\n\t\tfontSize: 17,\n\t\tfontWeight: \"bold\",\n\t\ttextAlign: \"center\",\n\t},\n\toutlineButtonText: {\n\t\tcolor: Colors.black,\n\t\tfontSize: 17,\n\t\tfontWeight: \"bold\",\n\t\ttextAlign: \"center\",\n\t},\n\tclearButtonText: {\n\t\tcolor: Colors.black,\n\t\tfontSize: 17,\n\t\tfontWeight: \"bold\",\n\t\ttextAlign: \"center\",\n\t},\n\tclearButtonTextWhite: {\n\t\tcolor: Colors.white,\n\t\tfontSize: 17,\n\t\tfontWeight: \"bold\",\n\t\ttextAlign: \"center\",\n\t},\n\tdisabled: {\n\t\topacity: 0.7,\n\t},\n})\n","import React, { useRef } from \"react\"\nimport { Text, StyleSheet, View, Dimensions, Platform } from \"react-native\"\nimport * as Animatable from \"react-native-animatable\"\nimport Colors from \"../utils/Colors\"\nimport Button from \"./Button\"\n\nconst screenWidth = Dimensions.get(\"window\").width\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst Popup = (props) => {\n\tconst refBackground = useRef(null)\n\tconst refContainer = useRef(null)\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{props.title}\n\t\t\t\t\t{props.body}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default Popup\n\nconst styles = StyleSheet.create({\n\tbackground: {\n\t\tbackgroundColor: Colors.semiTransparent,\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\t\n\t},\n\twrapper: {\n\t\tflex: 1,\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t},wrapper2: {\n\t\t//flex: 2,\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t},\n\tcontainer: {\n\t\tbackgroundColor: Colors.white,\n\t\tborderRadius: 10,\n\t\tmargin: 20,\n\t\tpadding: 30,\n\t\twidth: screenWidth - 40,\n\t\tmaxWidth,\n\t},\n\ttitle: {\n\t\tfontSize: 22,\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 28,\n\t\ttextAlign: \"center\",\n\t},\n\tbody: {\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\ttextAlign: \"center\",\n\t\tmarginVertical: 20,\n\t},\n})\n","import { observable, action, computed, makeAutoObservable, toJS } from \"mobx\"\nimport { API } from \"./API\"\n\nclass PartStore {\n\tconstructor() {\n\t\tmakeAutoObservable(this)\n\t\tthis.getProductTypes()\n\t\t//this.productType.id = 1\n\t\tthis.getShapes(1)\n\t}\n\n\tproductTypes = []\n\tshapes = []\n\tendGenders = []\n\tsubGenders = []\n\tendTypes = []\n\tendSizes = []\n\tmaterials = []\n\tproducts = []\n\tthreadIdentification = []\n\n\tshowThreadIDTool = false\n\n\tsearchResults = []\n\n\tselectedEndNumber = -1\n\tallEndsMatch = false\n \n\tpart = {}\n\n\tnextScreen = {\n\t\tproductType: \"shape\",\n\t\tshape: \"overview\",\n\t\toverview: \"endGender\",\n\t\tendGender: \"subGender\",\n\t\tsubGender: \"endType\",\n\t\tendType: \"endSize\",\n\t\tendSize: \"overview\",\n\t\tmaterial: \"details\",\n\t}\n setPartConfiguration(config, product){\n\t\tthis.clearPart();\n\t\tthis.part.productType = config.productType\n\t\tthis.part.shape = config.shape\n\t\tthis.part.gender = config.gender\n\t\tthis.part.subGender = config.subGender\n\t\tthis.part.material = config.material\n\t\tconfig.ends.forEach((end)=>{\n\t\t\tthis.part[`end${end.endNumber}`] = {}\n\t\t\tthis.part[`end${end.endNumber}`].endType = end.endType\n\t\t\tthis.part[`end${end.endNumber}`].endSize = end.endTypeSize\n\t\t\t\n\t\t})\n\t\tthis.products = [product]\n\t}\n\tsetCompetitorPartNumber(partNumber){\n\t\tthis.part.competitorNumber=partNumber\n\t}\n\tsetSavedPart(product, config){\n\t\tthis.clearPart();\n\t\tthis.part.productType = config.productType\n\t\tthis.part.shape = config.shape\n\t\tthis.part.gender = config.gender\n\t\tthis.part.subGender = config.subGender\n\t\tthis.part.material = config.material\n\t\tconfig.ends.forEach((end)=>{\n\t\t\tthis.part[`end${end.endNumber}`] = {}\n\t\t\tthis.part[`end${end.endNumber}`].endType = end.endType\n\t\t\tthis.part[`end${end.endNumber}`].endSize = end.endTypeSize\n\t\t\t\n\t\t})\n\t\tproduct.source = 'savedParts'\n\t\tthis.products = [product]\n\t}\n\tclearPart() {\n\t\tthis.part = {}\n\t\tthis.selectedEndNumber = -1\n\t\tthis.allEndsMatch = false\n\t}\n\n\tclearEnds() {\n\t\tthis.selectedEndNumber = -1\n\t\tthis.allEndsMatch = false\n\t\tdelete this.part.end0\n\t\tdelete this.part.end1\n\t\tdelete this.part.end2\n\t\tdelete this.part.end3\n\t\tdelete this.part.end4\n\t}\n\n\tcallAPI(method, data = {}) {\n\t\tthis.inProgress = true\n\t\tthis.error = undefined\n\n\t\treturn method(data)\n\t\t\t.then((response) => {\n\t\t\t\tif (response.ok) {\n\t\t\t\t\tconsole.log(response.data)\n\t\t\t\t\treturn response.data\n\t\t\t\t} else {\n\t\t\t\t\tthis.error = response.data.error\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(\n\t\t\t\taction(() => {\n\t\t\t\t\tthis.inProgress = false\n\t\t\t\t})\n\t\t\t)\n\t}\n\n\tgetProductTypes() {\n\t\tthis.callAPI(API.getProductTypes).then((res) => (this.productTypes = res.models))\n\t}\n\n\tgetShapes(id) {\n\t\tthis.callAPI(API.getShapes, id).then((res) => (this.shapes = res.models))\n\t}\n\n\tgetEndGenders(productId, shapeId, endNumber) {\n\t\tthis.callAPI(API.getEndGenders, { productId, shapeId, endNumber, params: this.getEndParameters() }).then(\n\t\t\t(res) => (this.endGenders = res.models)\n\t\t)\n\t}\n\n\tgetEndTypes(productId, shapeId, endNumber, genderId, subGenderId) {\n\t\tthis.callAPI(API.getEndTypes, {\n\t\t\tproductId,\n\t\t\tshapeId,\n\t\t\tendNumber,\n\t\t\tgenderId,\n\t\t\tsubGenderId,\n\t\t\tparams: this.getEndParameters(true, false),\n\t\t}).then((res) => (this.endTypes = res.models))\n\t}\n\n\tgetEndTypeSizes(productId, shapeId, endNumber, genderId, subGenderId, endTypeId) {\n\t\tlet id = genderId ? genderId : 0\n\t\tthis.callAPI(API.getEndTypeSizes, {\n\t\t\tproductId,\n\t\t\tshapeId,\n\t\t\tendNumber,\n\t\t\tgenderId: id,\n\t\t\tsubGenderId,\n\t\t\tendTypeId,\n\t\t\tparams: this.getEndParameters(false),\n\t\t}).then((res) => (this.endSizes = res.models))\n\t}\n\n\tgetThreadIdentification() {\n\t\tlet end = this.selectedEndNumber === 0 ? 1 : this.selectedEndNumber\n\t\tlet subGenderId = this.part[`end${end}`]?.subGender?.id\n\n\t\tlet productId = this.part.productType.id\n\t\tlet shapeId = this.part.shape.id\n\t\tlet endNumber = this.selectedEndNumber\n\t\tlet genderId = this.part[`end${end}`]?.endType.genderId\n\n\t\tif (!subGenderId) subGenderId = 0\n\n\t\tthis.callAPI(API.getThreadIdentification, {\n\t\t\tproductId,\n\t\t\tshapeId,\n\t\t\tendNumber,\n\t\t\tgenderId,\n\t\t\tsubGenderId,\n\t\t\tparams: this.getEndParameters(),\n\t\t}).then((res) => (this.threadIdentification = res.pitchSet))\n\t}\n\n\tgetMaterials() {\n\t\tconst productId = this.part.productType.id\n\t\tconst shapeId = this.part.shape.id\n\n\t\treturn this.callAPI(API.getMaterials, {\n\t\t\tproductId,\n\t\t\tshapeId,\n\t\t\tparams: this.getEndParameters(),\n\t\t}).then((res) => {\n\t\t\tthis.materials = res.models\n\t\t})\n\t}\n\n\tgetProducts() {\n\t\tconst productId = this.part.productType.id\n\t\tconst shapeId = this.part.shape.id\n\t\tconst materialId = this.part.material?.id ? this.part.material?.id : 0\n\n\t\treturn this.callAPI(API.getProducts, {\n\t\t\tproductId,\n\t\t\tshapeId,\n\t\t\tmaterialId,\n\t\t\tparams: this.getEndParameters(),\n\t\t}).then((res) => {\n\t\t\tif (res.product.material) this.part.material = res.product.material\n\t\t\tthis.products = res.models\n\t\t})\n\t}\n\tclearEndParams(end, currentKey){\n\t\tswitch(currentKey){\n\t\t\tcase \"endGender\":\n\t\t\t\tthis.part[end][\"subGender\"]=null;\n\t\t\t\tthis.part[end][\"endType\"]=null;\n\t\t\t\tthis.part[end][\"endSize\"]=null;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tsetPartObj(key, val) {\n\t\tconsole.log(`setpartobj: ${key}`)\n\t\tif (key === \"productType\") this.clearPart()\n\t\tif (this.selectedEndNumber >= 0 && key !== \"material\" && key !== \"shape\") {\n\t\t\tif (this.allEndsMatch) {\n\t\t\t\tArray(this.part.shape?.endCount)\n\t\t\t\t\t.fill()\n\t\t\t\t\t.forEach((d, i) => {\n\t\t\t\t\t\tconsole.log(`partConfig:${this.part[`end${i + 1}`]}`)\n\t\t\t\t\t\tthis.part[`end${i + 1}`][key] = val\n\t\t\t\t\t\tthis.clearEndParams(`end${i + 1}`,key)\n\t\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconsole.log(`partConfig:${this.part[`end${this.selectedEndNumber}`]}`)\n\t\t\t\tthis.part[`end${this.selectedEndNumber}`][key] = val\n\t\t\t}\n\t\t}else if(key==='shape'){\n\t\t\tconsole.log(val.productType)\n\t\t\tthis.clearPart()\n\t\t\tthis.part['productType'] = val.productType\n\t\t\tthis.part['shape'] = val\n\t\t} else {\n\t\t\tconsole.log(`partConfig:${this.part}`)\n\t\t\tthis.part[key] = val\n\t\t}\n\n\t\t// Special Cases for screens\n\t\tswitch (key) {\n\t\t\tcase \"productType\":\n\t\t\t\tthis.getShapes(val.id)\n\t\t\t\tbreak\n\t\t\tcase \"shape\":\n\t\t\t\t// nextScreen = \"FittingOverview\"\n\t\t\t\tthis.clearEnds()\n\t\t\t\tbreak\n\t\t\tcase \"endGender\":\n\t\t\t\tthis.getEndTypes(this.part.productType.id, this.part.shape.id, this.selectedEndNumber, val.id, 0)\n\t\t\t\tbreak\n\t\t\tcase \"subGender\":\n\t\t\t\tthis.setSubGender(val)\n\t\t\t\tbreak\n\t\t\tcase \"endType\":\n\t\t\t\tthis.showThreadIDTool = val.gender?.name !== \"Other\" && val.gender?.division?.abbreviation !== \"FSC\"\n\t\t\t\tthis.setEndType(val)\n\t\t\t\tbreak\n\t\t}\n\t\tif (this.part.shape?.endCount === 1 && key === \"shape\")\n\t\t\tthis.getEndTypes(this.part.productType.id, this.part.shape.id, 1, 0, 0)\n\t}\n\n\tsetEnd(endNumber, allEndsSame) {\n\t\tthis.endGenders = []\n\t\tthis.subGenders = []\n\t\tthis.endTypes = []\n\t\tthis.endSizes = []\n\t\tthis.materials = []\n\t\tthis.threadIdentification = []\n\n\t\tthis.selectedEndNumber = endNumber\n\t\tthis.part[`end${endNumber}`] = {}\n\n\t\tif (allEndsSame) this.selectedEndNumber = 0\n\t\tthis.getEndGenders(this.part.productType.id, this.part.shape.id, this.selectedEndNumber)\n\t}\n\n\tsetSubGender(subGender) {\n\t\tthis.getEndTypes(\n\t\t\tthis.part.productType.id,\n\t\t\tthis.part.shape.id,\n\t\t\tthis.selectedEndNumber,\n\t\t\tsubGender.genderId,\n\t\t\tsubGender.id\n\t\t)\n\t}\n\n\tsetEndType(endType) {\n\t\tlet endNumber = this.selectedEndNumber === 0 ? 1 : this.selectedEndNumber\n\t\tlet subGenderID = this.part[`end${endNumber}`].subGender?.id\n\t\tconsole.log(toJS(this.part))\n\t\tlet id = endType.genderId ? endType.genderId : 0\n\t\tthis.getEndTypeSizes(\n\t\t\tthis.part.productType.id,\n\t\t\tthis.part.shape.id,\n\t\t\tthis.selectedEndNumber,\n\t\t\tid,\n\t\t\tsubGenderID ? subGenderID : 0,\n\t\t\tendType.id\n\t\t)\n\t}\n\n\tallEndsFilledOut() {\n\t\tlet filled = true\n\t\tArray(this.part.shape?.endCount)\n\t\t\t.fill()\n\t\t\t.forEach((d, i) => {\n\t\t\t\tif (!this.part[`end${i + 1}`]?.endSize) filled = false\n\t\t\t})\n\t\treturn filled\n\t}\n\n\tsearchForPart(str) {\n\t\tthis.callAPI(API.searchPart, encodeURIComponent(str)).then((res) => (this.searchResults = res.results))\n\t}\n\n\tgetEndParameters(includeSize = true, includeAll = true) {\n\t\tlet params = \"\"\n\t\tif (this.part.end1?.endType && (includeAll || this.selectedEndNumber > 1)) {\n\t\t\tparams += `?end1=1-${this.part.end1.endType.id}`\n\t\t}\n\t\tif (this.part.end1?.endType && this.part.end1?.endSize && (includeSize || this.selectedEndNumber > 1)) {\n\t\t\tparams += `-${this.part.end1.endSize.id}`\n\t\t}\n\t\tconsole.log(`end type 2: ${includeAll}`)\n\t\tif (this.part.end2?.endType && (includeAll || this.selectedEndNumber > 2)) {\n\t\t\tparams += `${params ===\"\"?\"?\":\"&\"}end2=2-${this.part.end2.endType.id}`\n\t\t}\n\t\tif (this.part.end2?.endSize && ((includeAll && includeSize) || this.selectedEndNumber > 2)) {\n\t\t\tparams += `-${this.part.end2.endSize.id}`\n\t\t}\n\t\tif (this.part.end3?.endType && (includeAll || this.selectedEndNumber > 3)) {\n\t\t\tparams += `&end3=3-${this.part.end3.endType.id}`\n\t\t}\n\t\tif (this.part.end3?.endSize && (includeSize || this.selectedEndNumber > 3)) {\n\t\t\tparams += `-${this.part.end3.endSize.id}`\n\t\t}\n\t\tif (this.part.end4?.endType && (includeAll || this.selectedEndNumber > 4)) {\n\t\t\tparams += `&end4=4-${this.part.end4.endType.id}`\n\t\t}\n\t\tif (this.part.end4?.endSize && (includeSize || this.selectedEndNumber > 4)) {\n\t\t\tparams += `-${this.part.end4.endSize.id}`\n\t\t}\n\t\treturn params\n\t}\n\n\tgetParametersForEnd(endNumber) {\n\t\tlet params = \"\"\n\t\tif (endNumber === 1) {\n\t\t\tif (this.part.end1?.endType) {\n\t\t\t\tparams += `0-${this.part.end1.endType.id}`\n\t\t\t}\n\t\t\tif (this.part.end1?.endSize) {\n\t\t\t\tparams += `-${this.part.end1.endSize.id}`\n\t\t\t}\n\t\t}\n\t\tif (endNumber === 2) {\n\t\t\tif (this.part.end2?.endType) {\n\t\t\t\tparams += `1-${this.part.end2.endType.id}`\n\t\t\t}\n\t\t\tif (this.part.end2?.endSize) {\n\t\t\t\tparams += `-${this.part.end2.endSize.id}`\n\t\t\t}\n\t\t}\n\t\tif (endNumber === 3) {\n\t\t\tif (this.part.end3?.endType) {\n\t\t\t\tparams += `2-${this.part.end3.endType.id}`\n\t\t\t}\n\t\t\tif (this.part.end3?.endSize) {\n\t\t\t\tparams += `-${this.part.end3.endSize.id}`\n\t\t\t}\n\t\t}\n\t\tif (endNumber === 4) {\n\t\t\tif (this.part.end4?.endType) {\n\t\t\t\tparams += `3-${this.part.end4.endType.id}`\n\t\t\t}\n\t\t\tif (this.part.end4?.endSize) {\n\t\t\t\tparams += `-${this.part.end4.endSize.id}`\n\t\t\t}\n\t\t}\n\t\treturn params\n\t}\n}\n\nexport const partStore = new PartStore()\n","import React, { useState } from \"react\"\nimport { StyleSheet, Text, View, Platform, Dimensions, Image } from \"react-native\"\nimport Colors from \"../utils/Colors\"\nimport { partStore } from \"../utils/PartStore\"\nimport {API_URL, WEB_URL} from '../utils/Configuration';\nconst maxWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 558) : Dimensions.get(\"window\").width - 40\n\nconst FittingImage = (props) => {\n\tlet end1Path = partStore.part[`end1`]?.endType?.image?.path\n\tlet end2Path = partStore.part[`end2`]?.endType?.image?.path\n\tlet end3Path = partStore.part[`end3`]?.endType?.image?.path\n\tlet end4Path = partStore.part[`end4`]?.endType?.image?.path\n\n\tconst [end1AspectRatio, setEnd1AspectRatio] = useState(1)\n\tconst [end2AspectRatio, setEnd2AspectRatio] = useState(1)\n\tconst [end3AspectRatio, setEnd3AspectRatio] = useState(1)\n\tconst [end4AspectRatio, setEnd4AspectRatio] = useState(1)\n\n\tlet end1Position = { left: 0, top: 0, rotate: \"0deg\", scale: 1 }\n\tlet end2Position = { left: 0, top: 0, rotate: \"0deg\", scale: 1 }\n\tlet end3Position = { left: 0, top: 0, rotate: \"0deg\", scale: 1 }\n\tlet end4Position = { left: 0, top: 0, rotate: \"0deg\", scale: 1 }\n\n\tlet end1Label = { left: 0, top: 0 }\n\tlet end2Label = { left: 0, top: 0 }\n\tlet end3Label = { left: 0, top: 0 }\n\tlet end4Label = { left: 0, top: 0 }\n\n\tlet topPadding = 60\n\n\tif (partStore.part?.shape?.name === \"Straight\" || partStore.part?.shape?.name === \"Check Valve\") {\n\t\t//console.log(end1AspectRatio < 1 ? maxWidth / 2 - 120 + (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 - 120)\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 - 120 + (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 - 120,\n\t\t\ttop: 50 + topPadding,\n\t\t\trotate: \"90deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 - 100,\n\t\t\tbgTop: 60 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: end2AspectRatio < 1 ? maxWidth / 2 + 20 - (100 - 100 * end2AspectRatio) / 2 : maxWidth / 2 + 20,\n\t\t\ttop: 50 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 + 20,\n\t\t\tbgTop: 60 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 - 140,\n\t\t\ttop: 25 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 85,\n\t\t\ttop: 25 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"90°\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 + 15 - (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 + 15,\n\t\t\ttop: 10 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 + 15,\n\t\t\tbgTop: 15 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 90,\n\t\t\ttop: end2AspectRatio < 1 ? 120 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 120 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 - 90,\n\t\t\tbgTop: 120 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 85,\n\t\t\ttop: 115 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 10,\n\t\t\ttop: 190 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"45°\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 - (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 + -10,\n\t\t\ttop: end1AspectRatio < 1 ? (100 - 100 * end1AspectRatio) / 2 - 25 + topPadding : topPadding - 20,\n\t\t\trotate: \"225deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2,\n\t\t\tbgTop: topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 70,\n\t\t\ttop: end2AspectRatio < 1 ? 133 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 130 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 - 60,\n\t\t\tbgTop: 130 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 80,\n\t\t\ttop: 65 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 30,\n\t\t\ttop: 190 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Tee\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 - 137 + (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 - 137,\n\t\t\ttop: 20 + topPadding,\n\t\t\trotate: \"90deg\",\n\t\t\tscale: 0.9,\n\t\t\tbgLeft: maxWidth / 2 - 125,\n\t\t\tbgTop: 20 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: end2AspectRatio < 1 ? maxWidth / 2 + 40 - (100 - 100 * end2AspectRatio) / 2 : maxWidth / 2 + 40,\n\t\t\ttop: 20 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 0.9,\n\t\t\tbgLeft: maxWidth / 2 + 40,\n\t\t\tbgTop: 20 + topPadding,\n\t\t}\n\t\tend3Position = {\n\t\t\tleft: maxWidth / 2 - 45,\n\t\t\ttop: end3AspectRatio < 1 ? 110 + topPadding - (100 - 100 * end3AspectRatio) / 2 : 110 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.9,\n\t\t\tbgLeft: maxWidth / 2 - 45,\n\t\t\tbgTop: 110 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 - 130,\n\t\t\ttop: topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 80,\n\t\t\ttop: 120 + topPadding,\n\t\t}\n\t\tend3Label = {\n\t\t\tleft: maxWidth / 2 - 100,\n\t\t\ttop: 170 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Cross\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 - 140 + (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 - 140,\n\t\t\ttop: 50 + topPadding,\n\t\t\trotate: \"90deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 - 125,\n\t\t\tbgTop: 50 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: end2AspectRatio < 1 ? maxWidth / 2 + 43 - (100 - 100 * end2AspectRatio) / 2 : maxWidth / 2 + 43,\n\t\t\ttop: 50 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 + 40,\n\t\t\tbgTop: 50 + topPadding,\n\t\t}\n\t\tend3Position = {\n\t\t\tleft: maxWidth / 2 - 50,\n\t\t\ttop: end3AspectRatio < 1 ? topPadding - 40 + (100 - 100 * end3AspectRatio) / 2 : topPadding - 40,\n\t\t\trotate: \"180deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 - 50,\n\t\t\tbgTop: topPadding - 25,\n\t\t}\n\t\tend4Position = {\n\t\t\tleft: maxWidth / 2 - 50,\n\t\t\ttop: end4AspectRatio < 1 ? 140 + topPadding - (100 - 100 * end4AspectRatio) / 2 : 140 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 1,\n\t\t\tbgLeft: maxWidth / 2 - 50,\n\t\t\tbgTop: 140 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 - 130,\n\t\t\ttop: 25 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 80,\n\t\t\ttop: 155 + topPadding,\n\t\t}\n\t\tend3Label = {\n\t\t\tleft: maxWidth / 2 + 55,\n\t\t\ttop: 0 + topPadding,\n\t\t}\n\t\tend4Label = {\n\t\t\tleft: maxWidth / 2 - 110,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Y\") {\n\t\tend1Position = {\n\t\t\tleft: maxWidth / 2 - 80,\n\t\t\ttop: end1AspectRatio < 1 ? 150 + topPadding - (100 - 100 * end1AspectRatio) / 2 : 150 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 - 80,\n\t\t\tbgTop: 175 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 20,\n\t\t\ttop: end2AspectRatio < 1 ? 150 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 150 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2,\n\t\t\tbgTop: 175 + topPadding,\n\t\t}\n\t\tend3Position = {\n\t\t\tleft: maxWidth / 2 - 50,\n\t\t\ttop: end3AspectRatio < 1 ? topPadding - 50 + (100 - 100 * end3AspectRatio) / 2 : topPadding - 50,\n\t\t\trotate: \"180deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 - 50,\n\t\t\tbgTop: topPadding - 50,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 - 110,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 60,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t\tend3Label = {\n\t\t\tleft: maxWidth / 2 - 90,\n\t\t\ttop: 0 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Compact\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 + 40 - (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 + 40,\n\t\t\ttop: 45 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 0.7,\n\t\t\tbgLeft: maxWidth / 2 + 55,\n\t\t\tbgTop: 45 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 105,\n\t\t\ttop: end2AspectRatio < 1 ? 150 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 150 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.7,\n\t\t\tbgLeft: maxWidth / 2 - 105,\n\t\t\tbgTop: 170 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 85,\n\t\t\ttop: 40 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 - 15,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"In-Line\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 - 145 + (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 - 145,\n\t\t\ttop: 80 + topPadding,\n\t\t\trotate: \"90deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 - 155,\n\t\t\tbgTop: 80 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: end2AspectRatio < 1 ? maxWidth / 2 + 45 - (100 - 100 * end2AspectRatio) / 2 : maxWidth / 2 + 45,\n\t\t\ttop: 80 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 + 70,\n\t\t\tbgTop: 80 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 - 140,\n\t\t\ttop: 80 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 85,\n\t\t\ttop: 80 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Knobless\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 + 45 - (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 + 45,\n\t\t\ttop: 42 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 0.7,\n\t\t\tbgLeft: maxWidth / 2 + 62,\n\t\t\tbgTop: 45 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 115,\n\t\t\ttop: end2AspectRatio < 1 ? 135 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 135 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.7,\n\t\t\tbgLeft: maxWidth / 2 - 115,\n\t\t\tbgTop: 150 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 85,\n\t\t\ttop: 35 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 - 25,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Plug-In\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 + 20 - (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 + 20,\n\t\t\ttop: 37 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 + 45,\n\t\t\tbgTop: 40 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 95,\n\t\t\ttop: end2AspectRatio < 1 ? 125 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 125 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 - 95,\n\t\t\tbgTop: 145 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 45,\n\t\t\ttop: 40 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 - 5,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Swivel Outlet\") {\n\t\tend1Position = {\n\t\t\tleft: maxWidth / 2 - 5,\n\t\t\ttop: end1AspectRatio < 1 ? topPadding - 55 + (100 - 100 * end1AspectRatio) / 2 : topPadding - 55,\n\t\t\trotate: \"180deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 - 5,\n\t\t\tbgTop: topPadding - 63,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 85,\n\t\t\ttop: end2AspectRatio < 1 ? 140 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 140 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.5,\n\t\t\tbgLeft: maxWidth / 2 - 85,\n\t\t\tbgTop: 165 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 70,\n\t\t\ttop: 0 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Miniature\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 + 47 - (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 + 45,\n\t\t\ttop: 65 + topPadding,\n\t\t\trotate: \"-90deg\",\n\t\t\tscale: 0.7,\n\t\t\tbgLeft: maxWidth / 2 + 63,\n\t\t\tbgTop: 65 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 - 105,\n\t\t\ttop: end2AspectRatio < 1 ? 150 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 150 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.7,\n\t\t\tbgLeft: maxWidth / 2 - 105,\n\t\t\tbgTop: 165 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 + 60,\n\t\t\ttop: 50 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 - 20,\n\t\t\ttop: 180 + topPadding,\n\t\t}\n\t} else if (partStore.part?.shape?.name === \"Single Banjo\") {\n\t\tend1Position = {\n\t\t\tleft: end1AspectRatio < 1 ? maxWidth / 2 - 135 + (100 - 100 * end1AspectRatio) / 2 : maxWidth / 2 - 135,\n\t\t\ttop: 37 + topPadding,\n\t\t\trotate: \"90deg\",\n\t\t\tscale: 0.6,\n\t\t\tbgLeft: maxWidth / 2 - 140,\n\t\t\tbgTop: 37 + topPadding,\n\t\t}\n\t\tend2Position = {\n\t\t\tleft: maxWidth / 2 + 10,\n\t\t\ttop: end2AspectRatio < 1 ? 100 + topPadding - (100 - 100 * end2AspectRatio) / 2 : 100 + topPadding,\n\t\t\trotate: \"0deg\",\n\t\t\tscale: 0.6,\n\t\t\tbgLeft: maxWidth / 2 + 10,\n\t\t\tbgTop: 120 + topPadding,\n\t\t}\n\t\tend1Label = {\n\t\t\tleft: maxWidth / 2 - 120,\n\t\t\ttop: 30 + topPadding,\n\t\t}\n\t\tend2Label = {\n\t\t\tleft: maxWidth / 2 + 100,\n\t\t\ttop: 150 + topPadding,\n\t\t}\n\t}\n\n\tlet end1URI = `${WEB_URL}/backend/static/img/config/${end1Path}`\n\tlet end2URI = `${WEB_URL}/backend/static/img/config/${end2Path}`\n\tlet end3URI = `${WEB_URL}/backend/static/img/config/${end3Path}`\n\tlet end4URI = `${WEB_URL}/backend/static/img/config/${end4Path}`\n\n\tif (end1Path)\n\t\tImage.getSize(end1URI, (width, height) => {\n\t\t\tif (height > 0) setEnd1AspectRatio(height / width)\n\t\t})\n\tif (end2Path)\n\t\tImage.getSize(end2URI, (width, height) => {\n\t\t\tif (height > 0) setEnd2AspectRatio(height / width)\n\t\t})\n\tif (end3Path)\n\t\tImage.getSize(end3URI, (width, height) => {\n\t\t\tif (height > 0) setEnd3AspectRatio(height / width)\n\t\t})\n\tif (end4Path)\n\t\tImage.getSize(end4URI, (width, height) => {\n\t\t\tif (height > 0) setEnd4AspectRatio(height / width)\n\t\t})\n\n\tconst xOffset = props.correctOffset ? 5 : 0\n\n\tif (partStore.part?.productType?.name === \"Component\" && end1Path)\n\t\treturn (\n\t\t\t\n\t\t)\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t{end1Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end2Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end3Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end4Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end1Label.left > 0 && (\n\t\t\t\t\n\t\t\t\t\tEnd 1\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end2Label.left > 0 && (\n\t\t\t\t\n\t\t\t\t\tEnd 2\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end3Label.left > 0 && (\n\t\t\t\t\n\t\t\t\t\tEnd 3\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end4Label.left > 0 && (\n\t\t\t\t\n\t\t\t\t\tEnd 4\n\t\t\t\t\n\t\t\t)}\n\t\t\t{end1Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end2Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end3Path && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{end4Path && (\n\t\t\t\t\n\t\t\t)}\n\t\t>\n\t)\n}\n\nexport default FittingImage\n","import { observable, action, computed, makeAutoObservable } from \"mobx\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport jwt_decode from \"jwt-decode\"\nimport { API } from \"./API\"\nimport * as SecureStore from \"expo-secure-store\"\nimport { Platform } from \"react-native\"\n\nclass NavStore {\n \n\tconstructor() {\n\t\tmakeAutoObservable(this)\n\t}\n\n navigation = null;\n navigate(stack,screen){\n if(this.navigation!==null){\n \n this.navigation.navigate('TabStack', {\n screen: stack,\n params: { screen: screen },\n });\n }\n }\n\n}\n\nexport const navStore = new NavStore()","import React, { useEffect, useState } from \"react\"\nimport { View, StyleSheet, Text, ActivityIndicator, Image, Platform } from \"react-native\"\nimport Colors from \"../utils/Colors\"\nimport { observer } from \"mobx-react-lite\"\nimport { Button } from \"../components/Index\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport moment from \"moment\"\nimport { API } from \"../utils/API\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { navStore } from \"../utils/NavStore\"\nimport { refreshTokens } from '@okta/okta-react-native';\nimport jwtDecode from 'jwt-decode';\n\nconst Launch = (props) => {\n\tnavStore.navigation = props.navigation\n\tconst [loading, setLoading] = useState(true)\n\tuseEffect(() => {\n\t\tasync function checkAuth() {\n\t\t\t\n\t\t\tlet tokenStore = await AsyncStorage.getItem(\"tokenObject\")\n\t\t\tlet onboarded = await AsyncStorage.getItem(\"onboarded\")\n\t\t\tconsole.log(\"onboarded\", onboarded)\n\t\t\tif (!onboarded && Platform.OS !== 'web') props.navigation.replace(\"Onboarding\")\n\t\t\telse {\n\t\t\t\tif (tokenStore) {\n\t\t\t\t\tconsole.log('hello tokenstore')\n\t\t\t\t\tlet tokenObject = JSON.parse(tokenStore)\n\n\t\t\t\t\tconst decodedToken = jwtDecode(tokenObject.access_token);\n\t\t\t\t\tconst expirationTimeInSeconds = decodedToken.exp;\n\n\t\t\t\t\t// Convert expiration time to milliseconds\n\t\t\t\t\tconst expirationTimeInMilliseconds = expirationTimeInSeconds * 1000;\n\n\t\t\t\t\t// Create a Date object\n\t\t\t\t\tconst expirationDate = new Date(expirationTimeInMilliseconds);\n\t\t\t\t\tif (moment().isAfter(moment(expirationDate))) {\n\t\t\t\t\t\tlet _token = await refreshTokens();\n\n\t\t\t\t\t\tauthStore.signInSuccess(-1, '', _token)\n\t\t\t\t\t\tprops.navigation.replace(\"TabStack\")\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\tauthStore.setToken(tokenObject.access_token)\n\t\t\t\t\t\tprops.navigation.replace(\"TabStack\")\n\t\t\t\t\t}\n\t\t\t\t} else {\n\n\t\t\t\t\tprops.navigation.replace(\"TabStack\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcheckAuth()\n\t}, [])\n\n\treturn (\n\t\t\n\t\t\t{loading && }\n\n\t\t\t{!loading && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{\"Save Your\\nConfigurations!\"}\n\t\t\t\t\t\n\t\t\t\t\t\tCreate an account to save multiple part configurations so you can go back to them later to view or edit.\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tprops.navigation.replace(\"TabStack\", {\n\t\t\t\t\t\t\t\t\tscreen: \"AccountStack\",\n\t\t\t\t\t\t\t\t\tparams: { screen: \"CreateAccount\", params: { showCancel: true } },\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t props.navigation.replace(\"TabStack\")} />\n\t\t\t\t\t\n\t\t\t\t>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default observer(Launch)\n\nconst styles = StyleSheet.create({\n\tlaunchContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t\tpadding: 30,\n\t},\n\tspinner: {\n\t\tmarginTop: 40,\n\t\tmarginBottom: 60,\n\t},\n\tlogo: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 10,\n\t},\n\timage: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 50,\n\t\tmarginLeft: 25,\n\t\tmarginBottom: 20,\n\t},\n\ttitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 28,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 32,\n\t},\n\tsubtitle: {\n\t\tfontWeight: \"500\",\n\t\tfontSize: 18,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 28,\n\t\tmarginTop: 20,\n\t\tpaddingHorizontal: 20,\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport {\n\tView,\n\tStyleSheet,\n\tText,\n\tTextInput,\n\tImage,\n\tPressable,\n\tActivityIndicator,\n\tFlatList,\n\tKeyboard,\n\tTouchableWithoutFeedback,\n\tPlatform,\n\tDimensions,\n} from \"react-native\"\nimport Colors from \"../utils/Colors\"\nimport { Surface } from \"react-native-paper\"\nimport { observer } from \"mobx-react-lite\"\nimport { Button, Popup } from \"../components/Index\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport moment from \"moment\"\nimport { API, ParkerAPI, GoogleAPI } from \"../utils/API\"\nimport { authStore } from \"../utils/AuthStore\"\nimport Icon from \"react-native-vector-icons/Ionicons\"\nimport {analyticsStore} from \"../utils/AnalyticsStore\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width - 40\n\nconst Onboarding = (props) => {\n\tnavStore.navigation = props.navigation\n\tconst [skipWarning, setSkipWarning] = useState(false)\n\tconst [zipCode, setZipCode] = useState(\"\")\n\tconst [favorites, setFavorites] = useState([])\n\tconst [data, setData] = useState([])\n\tconst [loading, setLoading] = useState(false)\n\n\tconst toggleFavorite = (item) => {\n\t\tlet data = {\n\t\t\tdistributorNumber: item.DistributorNo,\n\t\t\tname: item.Name,\n\t\t\taddress: item.Address1,\n\t\t\tcity: item.City,\n\t\t\tstate: item.State,\n\t\t\tzip: item.Zip,\n\t\t\tphone: item.Phone,\n\t\t\tfax: item.Fax,\n\t\t\temail: item.Email,\n\t\t\tnotes: \"\",\n\t\t\tsynced: false\n\t\t}\n\n\t\tconst isFavorite = favorites.find((d) => d.distributorNumber === data.distributorNumber)\n\t\tconsole.log()\n\t\tconsole.log(isFavorite)\n\t\tif (isFavorite) {\n\t\t\tsetFavorites(favorites.filter((d) => d.distributorNumber !== data.distributorNumber))\n\t\t} else {\n\t\t\tsetFavorites([...favorites, data])\n\t\t}\n\t}\n\n\tconst saveFavorites = () => {\n\t\tanalyticsStore.logEvent(\"tutorial_selectlocation_save\",{})\n\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(favorites))\n\t\t//switchToTabStack()\n\t\tprops.navigation.push(\"Onboarding\", { activeSlide: activeSlide + 1 })\n\t}\n\n\tconst switchToTabStack = () => {\n\t\tsetSkipWarning(false)\n\t\tAsyncStorage.setItem(\"onboarded\", \"true\")\n\t\tprops.navigation.popToTop()\n\t\tprops.navigation.replace(\"TabStack\")\n\t}\n\n\tconst switchToAccountTabStack = () => {\n\t\tsetSkipWarning(false)\n\t\tAsyncStorage.setItem(\"onboarded\", \"true\")\n\t\tprops.navigation.popToTop()\n\t\tprops.navigation.replace(\"TabStack\")\n\t\tprops.navigation.navigate('TabStack', {\n\t\t\tscreen: 'AccountStack',\n\t\t\tparams: { screen: 'CreateAccount' },\n\t\t });\n\t\t \n\t\t\n\t}\n\n\tuseEffect(() => {\n\t\tif (zipCode.length === 5) {\n\t\t\tsetLoading(true)\n\t\t\tvar parseString = require(\"xml2js\").parseString\n\t\t\tGoogleAPI.getGeoCodePoint(zipCode).then((response)=>{\n\t\t\t\tlet point = `${response.data?.results[0]?.geometry?.location?.lat},${response.data?.results[0]?.geometry?.location?.lng}`\n\t\t\t\tParkerAPI.searchForDistributor(point,zipCode).then((res) => {\n\t\t\t\t\tlet results = res.data.response.premier;\n\t\t\t\t\tif(res.data.response.resultType_s !== \"NotFoundDistributor\" && res.data.response.standard){\n\t\t\t\t\t\tresults = [...results, ...res.data.response.standard];\n\t\t\t\t\t}\n\t\t\t\t\tlet uniqueResults = [];\n\t\t\t\t\tlet uniqueSet = new Set();\n\n\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\tconst uniqueKey = `${result.Name}-${result.Address}`; // Adjust according to the actual structure\n\t\t\t\t\t\tif (!uniqueSet.has(uniqueKey)) {\n\t\t\t\t\t\t\tuniqueSet.add(uniqueKey);\n\t\t\t\t\t\t\tuniqueResults.push(result);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tsetData(uniqueResults)\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t\t\n\t\t\t\t})\n\t\t\t})\n\t\t} else if (zipCode.length === 0) setData([])\n\t}, [zipCode])\n\n\tconst slides = [\n\t\t{\n\t\t\timage: require(\"../assets/onboarding-1.png\"),\n\t\t\ttitle: \"Create Configurations!\",\n\t\t\tbody: \"Use FittingFinder to configure a hydraulic or general fluid/gas system fitting used in mobile, energy, transportation and industrial applications\",\n\t\t\tstep: 1\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/onboarding-1.png\"),\n\t\t\ttitle: \"\",\n\t\t\tbody: \"Select from these shapes to configure thousands of standard fitting options in steel, stainless steel, and brass. \\n\\nThe powerful FittingFinder configurator can also generate custom fittings with part number.\",\n\t\t\tstep: 2\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/onboarding-3.png\"),\n\t\t\ttitle: \"\",\n\t\t\tbody: \"Or Directly Enter Parker Part, Parker Series, or Competitor Part Number.\",\n\t\t\tstep: 3\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/onboarding-4.png\"),\n\t\t\ttitle: \"\",\n\t\t\tbody: \"Use the auto-generated specification for dimensional and performance attributes\",\n\t\t\tstep: 4\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/onboarding-5.png\"),\n\t\t\ttitle: \"CAD Model Links\",\n\t\t\tbody: \"Get links to CAD models, providing instant access to the most common 2D/3D CAD model formats.\",\n\t\t\tstep: 5\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/img-ob-3.png\"),\n\t\t\ttitle: \"Find Locations to Buy\",\n\t\t\tbody: \"Use Where to Buy to find local Parker distributors.\",\n\t\t\tstep: 6\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/img-ob-3.png\"),\n\t\t\ttitle: \"Find and Save Locations\",\n\t\t\tbody: \"\",\n\t\t\tstep: 7\n\t\t},\n\t\t{\n\t\t\timage: require(\"../assets/img-ob-2.png\"),\n\t\t\ttitle: \"Create an Account\",\n\t\t\tbody: \"Account creation enables Face ID log-in, in-app notifications, and saving parts with notes for future retrieval.\",\n\t\t\tstep: 8\n\t\t},\n\n\n\n\t]\n\n\tconst activeSlide = props.route.params?.activeSlide ? props.route.params?.activeSlide : 0\n\n\tuseEffect(() => {\n\t\tif (activeSlide === 0) {\n\t\t\tanalyticsStore.logEvent(\"tutorial_begin\",{})\n\t\t} else if (activeSlide === 4) {\n\t\t\tanalyticsStore.logEvent(\"tutorial_end\",{})\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t\n\t\t\t{activeSlide === 0 && }\n\n\t\t\t{activeSlide > 0 && (\n\t\t\t\t\n\t\t\t\t\t props.navigation.goBack()}>\n\t\t\t\t\t\t{Platform.OS===\"web\" ? (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t):()}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{Platform.OS===\"web\" ? (
):()}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{slides[activeSlide].step !== 7 && (\n\t\t\t\t<>\n\t\t\t\t\t{slides[activeSlide].step !== 3 &&\n\t\t\t\t\t\t(Platform.OS===\"web\" ?(
):())\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t{slides[activeSlide].title.length !== 0 &&\n\t\t\t\t\t\t{slides[activeSlide].title}}\n\t\t\t\t\t{slides[activeSlide].step === 2 || slides[activeSlide].step === 4 && \n\t\t\t\t\t}\n\t\t\t\t\t{slides[activeSlide].body}\n\t\t\t\t\t{slides[activeSlide].step === 3 &&\n\t\t\t\t\t\t(Platform.OS===\"web\" ?(
):())\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (slides[activeSlide].step === 8)\n\t\t\t\t\t\t\t\t\t\tswitchToAccountTabStack()\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tprops.navigation.push(\"Onboarding\", { activeSlide: activeSlide + 1 })\n\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{slides[activeSlide].step === 8 &&\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tanalyticsStore.logEvent(\"tutorial_selectlocation_skip\",{})\n\t\t\t\t\t\t\t\t\tsetSkipWarning(true)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{slides.map((d, i) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t>\n\t\t\t)}\n\t\t\t{slides[activeSlide].step === 7 && (\n\t\t\t\t {\n\t\t\t\t\t\tif (Platform.OS != \"web\") Keyboard.dismiss()\n\t\t\t\t\t}}\n\t\t\t\t\taccessible={false}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\tSearch for Distributors and Save Favorites!\n\t\t\t\t\t\t{zipCode.length < 5 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tUse the postal code search tool to find distributors. Save distributors as favorites for future reference.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{loading && }\n\n\t\t\t\t\t\t{data.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t item.id}\n\t\t\t\t\t\t\t\t\trenderItem={({ item }) => {\n\t\t\t\t\t\t\t\t\t\tconst isFavorite = favorites.find((d) => d.distributorNumber === item.DistributorNo)\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t toggleFavorite(item)} style={styles.resultRow}>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.id ? item.name : item.Name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.id ? `${item.city}, ${item.state}` : `${item.City}, ${item.State}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t saveFavorites()} />\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tanalyticsStore.logEvent(\"tutorial_selectlocation_skip\",{})\n\t\t\t\t\t\t\t\t\tsetSkipWarning(true)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{skipWarning && (\n\t\t\t\t { \n\t\t\t\t\t\tsetSkipWarning(false); \n\t\t\t\t\t\tif(slides[activeSlide].step === 8)\n\t\t\t\t\t\t\tswitchToTabStack()\n\t\t\t\t\t\telse\n\t\t\t\t\t\t props.navigation.push(\"Onboarding\", { activeSlide: activeSlide + 1 }) \n\t\t\t\t\t}}\n\t\t\t\t\tcancelAction={() => setSkipWarning(false)}\n\t\t\t\t\tcloseButtonTitle=\"Yes, Skip\"\n\t\t\t\t\tcancelButtonTitle=\"Go Back\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default observer(Onboarding)\n\nconst styles = StyleSheet.create({\n\tlaunchContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t\tpadding: 30,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tspinner: {\n\t\tmarginTop: 40,\n\t\tmarginBottom: 60,\n\t},\n\theader: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t},\n\theaderSpacer: {\n\t\twidth: 21,\n\t},\n\tlogo: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 10,\n\t},\n\timage: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 50,\n\t\tmarginLeft: 25,\n\t},\n\timage6: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 0,\n\t\tmarginLeft: 25,\n\t},\n\ttitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 28,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 32,\n\t\tmarginVertical: 20,\n\t},\n\tsubtitle: {\n\t\tfontWeight: \"500\",\n\t\tfontSize: 18,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 28,\n\t\tmarginBottom: 20,\n\t\tpaddingHorizontal: 20,\n\t}, subtitle6: {\n\t\tfontWeight: \"500\",\n\t\tfontSize: 18,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 28,\n\t\tmarginTop: 50,\n\t\tpaddingHorizontal: 20,\n\t},\n\tresults: {\n\t\tflex: 2,\n\t\tmarginTop: 25,\n\t\tpaddingLeft: 10,\n\t},\n\tresultRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tpaddingVertical: 20,\n\t\tpaddingRight: 10,\n\t\tborderBottomColor: Colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t},\n\titemTitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 18,\n\t},\n\titemSubtitle: {\n\t\tfontSize: 12,\n\t\tfontWeight: \"500\",\n\t\tcolor: Colors.mediumGrey,\n\t},\n\tsearchBar: {\n\t\tbackgroundColor: Colors.white,\n\t\tflexDirection: \"row\",\n\t\tborderRadius: 30,\n\t\tpadding: 10,\n\t\tcolor: Colors.black,\n\t},\n\tinput: {\n\t\tflex: 1,\n\t\tpaddingLeft: 15,\n\t},\n\tdots: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tmarginTop: 20,\n\t},\n\tdot: {\n\t\twidth: 12,\n\t\theight: 12,\n\t\tborderRadius: 6,\n\t\tbackgroundColor: Colors.black,\n\t\tmarginHorizontal: 5,\n\t},\n\tactiveDot: {\n\t\tbackgroundColor: Colors.yellow,\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport { StyleSheet, FlatList, Dimensions, View, Pressable, Image, Platform } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { Surface, Text } from \"react-native-paper\"\nimport { partStore } from \"../utils/PartStore\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { observer } from \"mobx-react-lite\"\nimport Icon from \"react-native-vector-icons/Ionicons\"\nimport { analyticsStore } from \"../utils/AnalyticsStore\"\nimport colors from \"../utils/Colors\"\nimport { toJS } from \"mobx\"\nimport { FittingImage, Button } from \"../components/Index\"\nimport { NavigationContainer, useNavigation } from '@react-navigation/native';\nimport { navStore } from \"../utils/NavStore\"\nimport { API_URL, WEB_URL,IMGSRV_URL } from '../utils/Configuration';\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst gridWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 900) : Dimensions.get(\"window\").width\nconst FittingSelection = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\n\tlet data = []\n\tlet gridFormat = false\n\tlet screen = route.params?.fittingScreen || \"shape\"\n\tlet title = \"\"\n\tlet col = Platform.OS === \"web\" && gridWidth > 600 ? 3 : 2\n\tlet mainContainerStyle = styles.mainContainer\n\tlet isComponentScreen = false\n\tconst { addListener } = useNavigation();\n\tReact.useLayoutEffect(() => {\n\t\t\n\t\tlet screen = route.params?.fittingScreen || \"shape\"\n\t\tconsole.log(screen)\n\t\tconsole.log(`screen:${screen}`)\n\t\tif (screen === \"shape\") {\n\t\t\tif (Platform.OS !== \"web\" || gridWidth < 600)\n\t\t\t\t\n\t\t\t\tnavigation.setOptions({\n\n\t\t\t\t\theaderRight: () => (\n\t\t\t\t\t\t navigation.navigate(\"FittingSearch\")}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t})\n\t\t\t\n\t\t}else if(screen===\"component\"){\n\t\t\tconsole.log('hello component')\n\t\t}\n\t\tconst handleBackButton = (e) => {\n\t\t\t\n\t\t\tif (route.params?.fittingScreen === 'component') {\n\t\t\t\tpartStore.getShapes(1)\n\t\t\t// e.preventDefault();\n\t\t\t// e.returnValue = ''; // This triggers the confirmation dialog\n\t\t\t// handleBeforeRemove(e);\n\t\t\t}\n\t\t };\n\t \n\t\t if (Platform.OS === 'web' && route.params?.fittingScreen === 'component') {\n\t\t\twindow.addEventListener('beforeunload', handleBackButton);\n\t\t\twindow.history.pushState(null, null, window.location.href); // Ensure state is pushed to handle back\n\t\t\twindow.addEventListener('popstate', handleBackButton); // Listen for back navigation\n\t\t }\n\t\n\t\t \n\t\tconst unsubscribe = addListener('beforeRemove', (e) => {\n\t\t\t// Prevent going back to Screen1 if a condition is met\n\t\t\tconsole.log('before')\n\t\t\tif (route.params?.fittingScreen === 'component') {\n\t\t\t\tpartStore.getShapes(1)\n\t\t\t}\n\t\t});\n\t\treturn () => {\n\t\t\t// Clean up the subscription when the component unmounts\n\t\t\tunsubscribe();\n\t\t\tif (Platform.OS === 'web') {\n\t\t\t\twindow.removeEventListener('beforeunload', handleBackButton);\n\t\t\t\twindow.removeEventListener('popstate', handleBackButton);\n\t\t\t }\n\t\t};\n\n\t}, [navigation,route])\n\t\n\tconst selectItem = (item) => {\n\t\tisComponentScreen = false\n\t\tlet nextScreen = \"FittingSelection\"\n\t\tconsole.log(`selectItem: ${item}`)\n\t\tswitch (screen) {\n\t\t\tcase \"productType\":\n\t\t\t\tpartStore.getShapes(1)\n\t\t\t\tanalyticsStore.logEvent(\"part_select_type\", {})\n\t\t\t\tbreak\n\t\t\tcase \"shape\":\n\t\t\t\tnextScreen = \"FittingOverview\"\n\t\t\t\tanalyticsStore.logEvent(\"part_select_shape\", {})\n\t\t\t\tbreak\n\t\t\t// case \"component\":\n\t\t\t// \tnextScreen = \"FittingOverview\"\n\t\t\t// \tanalyticsStore.logEvent(\"part_select_component\", {})\n\t\t\t// \tbreak\n\t\t\tcase \"endSize\":\n\t\t\t\tanalyticsStore.logEvent(\"part_select_final\", {})\n\t\t\t\tbreak\n\t\t\tcase \"material\":\n\t\t\t\tnextScreen = \"FittingDetails\"\n\t\t\t\tbreak\n\t\t}\n\t\tpartStore.setPartObj(screen === 'component' ? 'shape' : screen, item)\n\n\t\tif (screen === \"shape\" && item.endCount === 1) {\n\t\t\tconsole.log('shape default')\n\t\t\t// skip overview screen, goto select end\n\t\t\tpartStore.setEnd(1, false)\n\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: \"endType\" })\n\t\t} else if (screen === \"component\" && item.endCount === 1) {\n\t\t\tconsole.log('component default')\n\t\t\t// skip overview screen, goto select end\n\t\t\tpartStore.setEnd(1, false)\n\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: \"endType\" })\n\t\t} else if (screen === \"shape\" && item.id === -5) {\n\t\t\t//we will need to go to shape screen again for components\n\t\t\tpartStore.getShapes(item.productType.id)\n\t\t\t//partStore.setEnd(1, false)\n\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: \"component\", isComponentScreen: true })\n\t\t} else if (screen === \"endGender\" && item.subGenders?.length === 0) {\n\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: \"endType\" })\n\t\t} else if (screen === \"endSize\" && partStore.part.productType.name === \"Component\") {\n\t\t\tpartStore.getMaterials().then(() => {\n\t\t\t\tlet data = partStore.materials.slice()\n\t\t\t\tif (data.length === 0) {\n\t\t\t\t\tpartStore\n\t\t\t\t\t\t.getProducts()\n\t\t\t\t\t\t.then(() => navigation.push(\"FittingDetails\", { fittingScreen: partStore.nextScreen[screen] }))\n\t\t\t\t} else if (data.length === 1) {\n\t\t\t\t\tpartStore.setPartObj(\"material\", data[0])\n\t\t\t\t\tpartStore\n\t\t\t\t\t\t.getProducts()\n\t\t\t\t\t\t.then(() => navigation.push(\"FittingDetails\", { fittingScreen: partStore.nextScreen[screen] }))\n\t\t\t\t} else navigation.push(\"FittingSelection\", { fittingScreen: \"material\" })\n\t\t\t})\n\t\t} else if (screen === \"endSize\" && partStore.allEndsFilledOut()) {\n\t\t\tpartStore.getMaterials().then(() => {\n\t\t\t\tlet data = partStore.materials.slice()\n\t\t\t\tif (data.length === 1) {\n\t\t\t\t\tpartStore.setPartObj(\"material\", data[0])\n\t\t\t\t\tpartStore\n\t\t\t\t\t\t.getProducts()\n\t\t\t\t\t\t.then(() => navigation.push(\"FittingDetails\", { fittingScreen: partStore.nextScreen[screen] }))\n\t\t\t\t} else navigation.push(\"FittingSelection\", { fittingScreen: \"material\" })\n\t\t\t})\n\t\t} else if (screen === \"endSize\") {\n\t\t\tnavigation.navigate(\"FittingOverview\", { fittingScreen: partStore.nextScreen[screen], key: `endselection-${partStore.selectedEndNumber}` })//, \n\t\t} else if (screen === \"material\") {\n\t\t\tpartStore.getProducts().then(() =>\n\t\t\t\tnavigation.push(nextScreen, { fittingScreen: partStore.nextScreen[screen] }))\n\t\t} else {\n\t\t\tconsole.log('screen:' + screen)\n\t\t\tnavigation.push(nextScreen, { fittingScreen: partStore.nextScreen[screen] })\n\t\t}\n\t}\n\n\tswitch (screen) {\n\t\tcase \"productType\":\n\t\t\tdata = partStore.productTypes.slice()\n\t\t\tgridFormat = true\n\t\t\ttitle = \"Select Part Type\"\n\t\t\tbreak\n\t\tcase \"shape\":\n\t\t\tdata = partStore.shapes.slice()\n\t\t\tgridFormat = true\n\t\t\ttitle = \"Select Fitting Shape\"\n\n\t\t\tmainContainerStyle = styles.mainContainer2\n\t\t\tbreak\n\t\tcase \"component\":\n\t\t\tdata = partStore.shapes.slice()\n\t\t\tgridFormat = true\n\t\t\ttitle = \"Select Component Type\"\n\n\t\t\tmainContainerStyle = styles.mainContainer2\n\t\t\tbreak\n\t\tcase \"endGender\":\n\t\t\tdata = partStore.endGenders?.slice()\n\t\t\tmainContainerStyle = styles.mainContainer\n\t\t\ttitle = \"Select End Type\"\n\t\t\tbreak\n\t\tcase \"subGender\":\n\t\t\tmainContainerStyle = styles.mainContainer\n\t\t\t{\n\t\t\t\tlet endNumber = partStore.selectedEndNumber === 0 ? 1 : partStore.selectedEndNumber\n\t\t\t\tdata = partStore.part[`end${endNumber}`]?.endGender?.subGenders?.slice()\n\t\t\t\ttitle = \"Select End Type\"\n\t\t\t}\n\t\t\tbreak\n\t\tcase \"endType\":\n\t\t\tdata = partStore.endTypes.slice().sort((a, b) => a.priority - b.priority)\n\t\t\tmainContainerStyle = data.length >= 3 ? styles.mainContainer2 : styles.mainContainer\n\t\t\ttitle = \"Select End Type\"\n\t\t\tgridFormat = true\n\t\t\tbreak\n\t\tcase \"endSize\":\n\t\t\tmainContainerStyle = styles.mainContainer\n\t\t\tdata = partStore.endSizes.slice().sort((a, b) => {\n\t\t\t\tlet aDash = parseInt(a.dash.replace(/[MLSU]/gi, \"\"))\n\t\t\t\tlet bDash = parseInt(b.dash.replace(/[MLSU]/gi, \"\"))\n\t\t\t\treturn aDash - bDash\n\t\t\t})\n\t\t\ttitle = \"Select End Size\"\n\t\t\tbreak\n\t\tcase \"material\":\n\t\t\tmainContainerStyle = styles.mainContainer\n\t\t\tdata = partStore.materials.slice()\n\t\t\ttitle = \"Select Material\"\n\t\t\tbreak\n\t}\n\n\tnavigation.setOptions({ title })\n\n\tconst getEndId = (end) => {\n\t\tlet id = partStore.part[end]?.endType?.id\n\t\tif (!id)\n\t\t\tid = 0;\n\n\t\treturn id;\n\t}\n\n\treturn (\n\t\t\n\t\t\t{gridFormat && (\n\t\t\t\t item.id}\n\t\t\t\t\tnumColumns={col}\n\t\t\t\t\trenderItem={({ item }) => (\n\t\t\t\t\t\t selectItem(item)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{screen === \"material\" && (\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tpartStore.part?.productType?.id === 5 ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{!gridFormat && (\n\t\t\t\t\n\t\t\t\t\t{/* {screen === \"endSize\" && partStore.showThreadIDTool && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNeed Help Sizing?\n\t\t\t\t\t\t\t navigation.navigate(\"ThreadIDStack\")} style={styles.actionButton}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTHREAD ID TOOL\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)} */}\n\t\t\t\t\t\n\t\t\t\t\t\t{screen === \"endSize\" && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tFITTING SIZE\n\t\t\t\t\t\t\t\t\tTUBE SIZE\n\t\t\t\t\t\t\t\t\tTHREAD SIZE\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t item.id}\n\t\t\t\t\t\t\trenderItem={({ item }) => {\n\t\t\t\t\t\t\t\treturn screen === \"endSize\" ? (\n\t\t\t\t\t\t\t\t\t selectItem(item)} style={styles.sizeRow}>\n\t\t\t\t\t\t\t\t\t\t{item.dash}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{item.outsideDiameterInches ? item.outsideDiameterInches : item.outsideDiameterMillimeters}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item.thread}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t selectItem(item)} style={styles.row}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default observer(FittingSelection)\n\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflex: 1,\n\t\tpadding: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tmainContainer2: {\n\t\tflex: 1,\n\t\tpadding: 20,\n\t\twidth: gridWidth,\n\t\talignSelf: \"center\",\n\t},\n\tgridContainer: {\n\t\tpaddingTop: 20,\n\t},\n\n\tlistContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: colors.white,\n\t\tpaddingBottom: 40,\n\t},\n\tthreadIDRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tmarginBottom: 35,\n\t},\n\tthreadIDTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"bold\",\n\t\talignSelf: \"center\",\n\t\tflex: 1,\n\t},\n\tgridItemTitle: {\n\t\tfontSize: 16,\n\t\tfontWeight: \"bold\",\n\t\tmargin: 10,\n\t\tmarginTop: 5,\n\t\tmarginBottom: 25,\n\t\twidth: maxWidth / 2 - 60,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n\titemSize: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\twidth: 100,\n\t},\n\titemSizeHeader: {\n\t\tfontSize: 12,\n\t\tfontWeight: \"600\",\n\t\tcolor: colors.titleGrey,\n\t\twidth: 100,\n\t},\n\tsurface: {\n\t\tpadding: 8,\n\t\theight: Platform.OS === \"web\" ? maxWidth / 2 - 40 : Dimensions.get(\"window\").width / 2 - 40,\n\t\twidth: maxWidth / 2 - 40,\n\t\tmarginHorizontal: 10,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\televation: 4,\n\t},\n\tpartImage: {\n\t\theight: Platform.OS === \"web\" ? maxWidth / 2 - 40 : Dimensions.get(\"window\").width / 2 - 60,\n\t\twidth: maxWidth / 2 - 60,\n\t},\n\tsizeRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tbackgroundColor: colors.white,\n\t\tborderBottomColor: colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tpaddingLeft: 10,\n\t\tpaddingVertical: 17,\n\t},\n\tsizeRowHeader: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tbackgroundColor: colors.white,\n\t\tborderBottomColor: colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tpaddingLeft: 10,\n\t\tpaddingVertical: 17,\n\t},\n\trow: {\n\t\tflexDirection: \"row\",\n\t\tborderBottomColor: colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tmarginLeft: 20,\n\t\tpaddingVertical: 17,\n\t\tpaddingRight: 10,\n\t},\n\tactionButton: {\n\t\tbackgroundColor: colors.darkGrey,\n\t\tflex: 1,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t},\n\tactionText: {\n\t\tcolor: colors.white,\n\t\tfontSize: 14,\n\t\tfontWeight: \"500\",\n\t\tmarginLeft: 10,\n\t},\n})\n","import React, { useState } from \"react\"\nimport { Pressable, StyleSheet, View, Image, Platform, Dimensions, ScrollView } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { Colors, Surface, Text } from \"react-native-paper\"\nimport { FittingImage } from \"../components/Index\"\nimport { partStore } from \"../utils/PartStore\"\nimport { observer } from \"mobx-react-lite\"\nimport { toJS } from \"mobx\"\nimport { useFocusEffect } from '@react-navigation/native';\nimport {API_URL,IMGSRV_URL} from '../utils/Configuration';\n\nimport colors from \"../utils/Colors\"\nimport { PropTypes } from \"mobx-react\"\n\nimport Icon from \"react-native-vector-icons/Ionicons\"\nimport { HeaderBackButton } from '@react-navigation/elements'\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width - 40\nconst flexDirection = 'column'//Platform.OS === \"web\" && maxWidth>600?'row':'column'\nconsole.log(maxWidth)\nconst FittingOverview = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst shape = partStore.part?.shape;\n const endCount = shape ? shape.endCount : null;\n\tlet colContainerStyle = Platform.OS === \"web\" && maxWidth > 600 ? styles.columnContainer : null\n\n\tuseFocusEffect(\n\t\tReact.useCallback(() => {\n\t\t\tconsole.log(route.params)\n\t\t\tif (route.params?.key?.startsWith('endselection')) {\n\n\t\t\t\tvar keys = route.params.key.split('-')\n\n\t\t\t\tnavigation.setOptions({\n\t\t\t\t\theaderLeft: ({ canGoBack, props }) =>\n\t\t\t\t\t\tcanGoBack && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tpartStore.setEnd(keys[1], false)\n\t\t\t\t\t\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: \"endGender\" })\n\t\t\t\t\t\t\t\t//navigation.push(\"FittingSelection\", { fittingScreen: partStore.nextScreen[\"overview\"] })\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t}, [route])\n\t);\n\tconst getEndId = (end) => {\n\t\tlet id = partStore.part[end]?.endType?.id\n\t\tif (!id)\n\t\t\tid = 0;\n\n\t\treturn id;\n\t}\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{/* */}\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{Array(endCount + 1)\n\t\t\t\t\t\t.fill()\n\t\t\t\t\t\t.map((d, i) => {\n\t\t\t\t\t\t\tlet prevEnd = partStore.part[`end${i}`]\n\t\t\t\t\t\t\tlet end = partStore.part[`end${i + 1}`]\n\n\t\t\t\t\t\t\tif (i >= endCount) {\n\t\t\t\t\t\t\t\tif (partStore.part.productType?.id === 1 || partStore.part.productType?.id === 3)\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tpartStore.allEndsMatch = true\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tfor (var j = 0; j < endCount; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpartStore.setEnd(j + 1, true)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: partStore.nextScreen[\"overview\"] })\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tAll Ends the Same\n\t\t\t\t\t\t\t\t\t\t\t{Platform.OS === \"web\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{Platform.OS !== \"web\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t} else if (JSON.stringify(end) === JSON.stringify({}) || end === undefined) {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (prevEnd === undefined && i > 0) return\n\t\t\t\t\t\t\t\t\t\t\t//console.log('hello:' + i )\n\t\t\t\t\t\t\t\t\t\t\tpartStore.allEndsMatch = false\n\t\t\t\t\t\t\t\t\t\t\tpartStore.setEnd(i + 1, false)\n\n\t\t\t\t\t\t\t\t\t\t\t//navigation.push(\"FittingSelection\", { fittingScreen: \"endGender\", key:`end-${i+1}` })\n\t\t\t\t\t\t\t\t\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: partStore.nextScreen[\"overview\"], key: `end-${i + 1}` })\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t 0 && { color: colors.grey }]}>\n\t\t\t\t\t\t\t\t\t\t\tSelect End {i + 1}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{Platform.OS === \"web\" && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{Platform.OS !== \"web\" && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t} else\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tpartStore.setEnd(i + 1, false)\n\t\t\t\t\t\t\t\t\t\t\t//console.log('hallo:' + i )\n\t\t\t\t\t\t\t\t\t\t\t//navigation.push(\"FittingSelection\", { fittingScreen: partStore.nextScreen[\"overview\"], key: `end-${i + 1}` })\n\t\t\t\t\t\t\t\t\t\t\tnavigation.push(\"FittingSelection\", { fittingScreen: partStore.nextScreen[\"overview\"] })\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{end.endType?.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tDASH SIZE\n\t\t\t\t\t\t\t\t\t\t\t\t\t{end.endSize?.dash}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tTUBE OD\n\t\t\t\t\t\t\t\t\t\t\t\t\t{end.endSize?.outsideDiameterInches}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD SIZE\n\t\t\t\t\t\t\t\t\t\t\t\t\t{end.endSize?.thread}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tDescription\n\t\t\t\t\n\n\t\t\t\t{partStore.part.shape && (\n\t\t\t\t\t\n\t\t\t\t\t\tShape:\n\t\t\t\t\t\t{` ${partStore.part.shape.name}`}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{partStore.part.end1?.endSize && (\n\t\t\t\t\t\n\t\t\t\t\t\tEnd Type 1:\n\t\t\t\t\t\t{` ${partStore.part.end1.endType.name} (${partStore.part.end1.endSize.dash})`}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{partStore.part.end2?.endSize && (\n\t\t\t\t\t\n\t\t\t\t\t\tEnd Type 2:\n\t\t\t\t\t\t{` ${partStore.part.end2.endType.name} (${partStore.part.end2.endSize.dash})`}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{partStore.part.end3?.endSize && (\n\t\t\t\t\t\n\t\t\t\t\t\tEnd Type 3:\n\t\t\t\t\t\t{` ${partStore.part.end3.endType.name} (${partStore.part.end3.endSize.dash})`}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{partStore.part.end4?.endSize && (\n\t\t\t\t\t\n\t\t\t\t\t\tEnd Type 4:\n\t\t\t\t\t\t{` ${partStore.part.end4.endType.name} (${partStore.part.end4.endSize.dash})`}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\n\t\t\n\t)\n}\n\nexport default observer(FittingOverview)\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\t// flex: 1,\n\t\t// flexDirection: flexDirection, // Arrange children horizontally\n\t\t// flexGrow: 1,\n\t\tmarginHorizontal: 20,\n\t\tmarginTop: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t\tpaddingLeft: Platform.OS === \"web\" && maxWidth < 600 ? 20 : 0,\n\t\tpaddingRight: Platform.OS === \"web\" && maxWidth < 600 ? 20 : 0,\n\t\tpaddingBottom: 20\n\t},\n\tcolumnContainer: {\n\t\tmaxWidth: maxWidth / 2,\n\t\tflex: 1, // Equal width for both columns\n\t\t//height:'auto'\n\t\t//alignItems: 'flex-start',\n\t},\n\tcolumnContainerRight: {\n\t\tmaxWidth: maxWidth / 2,\n\t\tflex: 1, // Equal width for both columns\n\t\t//height:'auto'\n\t\t//alignItems: 'flex-start',\n\t\tmarginLeft: 50\n\t},\n\tendRow: {\n\t\tmarginLeft: 10,\n\t\tpaddingRight: 10,\n\t\tpaddingVertical: 20,\n\t\tflexDirection: \"row\",\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: colors.grey,\n\t\tjustifyContent: \"space-between\",\n\t},\n\tsizeRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t},\n\tendName: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 18,\n\t\tmarginBottom: 12,\n\t},\n\tendLabel: {\n\t\tfontSize: 12,\n\t\tfontWeight: \"500\",\n\t\tcolor: colors.mediumGrey,\n\t\tmarginBottom: 5,\n\t},\n\tendSize: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n\tdescTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"bold\",\n\t},\n\tdescTitleContainer: {\n\t\tborderBottomColor: colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t\tmarginTop: 20,\n\t\tmarginBottom: 10,\n\t\tpaddingBottom: 10,\n\t},\n\tdescLabel: {\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 26,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n\tpartImage: {\n\t\theight: 200,\n\t\twidth: 200,\n\t\talignSelf: \"center\",\n\t\tmarginVertical: 60,\n\t},\n})\n","import { toJS } from \"mobx\"\nimport React, { useEffect, useState, useRef } from \"react\"\nimport {\n\tStyleSheet,\n\tView,\n\tPressable,\n\tTextInput,\n\tImage,\n\tScrollView,\n\tAlert,\n\tFlatList,\n\tPlatform,\n\tDimensions, TouchableOpacity, Linking\n} from \"react-native\"\nimport { Surface, Text } from \"react-native-paper\"\n\nimport { API, CADAPI } from \"../utils/API\"\nimport { partStore } from \"../utils/PartStore\"\nimport Colors from \"../utils/Colors\"\nimport Octicons from \"react-native-vector-icons/Octicons\"\nimport * as Animatable from \"react-native-animatable\"\nimport { analyticsStore } from \"../utils/AnalyticsStore\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { Button, Popup, FittingImage } from \"../components/Index\"\nimport * as MailComposer from \"expo-mail-composer\"\nimport { navStore } from \"../utils/NavStore\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport * as SecureStore from \"expo-secure-store\"\nimport { signIn, signOut } from '@okta/okta-react-native';\nimport oktaAuth from '../auth.config';\nimport { API_URL, WEB_URL, IMGSRV_URL } from '../utils/Configuration';\n//import Share from \"react-native-share\"\n//import { SafeAreaView } from \"react-native-safe-area-context\"\n//import Icon from \"react-native-vector-icons/Feather\"\n//import { useFocusEffect } from '@react-navigation/native';\n//import renderHTML from 'react-native-render-html';\n//import * as LocalAuthentication from \"expo-local-authentication\"\nlet Share;\nif (Platform.OS === 'web') {\n\t// Share is not available on the web, so you can define a fallback behavior here.\n\tShare = {\n\t\tshare: () => {\n\t\t\tconsole.warn('Sharing is not supported on the web.');\n\t\t},\n\t};\n} else {\n\t// Import Share from \"react-native-share\" for mobile platforms.\n\tShare = require('react-native-share').default;\n}\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst FittingDetails = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst [parts, setParts] = useState([])\n\tconst [selectedPart, setSelectedPart] = useState(partStore.products[0])\n\tconst [selectedPartTab, setSelectedPartTab] = useState(0)\n\tconst [promptCreateAccount, setPromptCreateAccount] = useState(false)\n\tconst [cadLinks, setCadLinks] = useState([])\n\tconst [favoriteParts, setFavoriteParts] = useState([])\n\tconst [savedPart, setSavedPart] = useState(null)\n\tconst [savedVisible, setSavedVisible] = useState(false)\n\tconst [savedTitle, setSavedTitle] = useState()\n\tconst [savedNotes, setSavedNotes] = useState()\n\tconst refContainer = useRef(null)\n\tconst onShare = async (msg, url) => {\n\t\ttry {\n\t\t\tconst result = await Share.open({\n\t\t\t\tsubject: `Part Specifications - ${selectedPart?.name}`,\n\t\t\t\tmessage: msg,\n\t\t\t\t//url: selectedPart?.isStandard ? `${WEB_URL}/static/img/config/${selectedPart?.image?.path}` : '',\n\t\t\t\ttitle: `Part Specifications - ${selectedPart?.name}`,\n\t\t\t});\n\t\t\tif (result.action === Share.sharedAction) {\n\t\t\t\tconsole.log('Content shared successfully');\n\t\t\t} else if (result.action === Share.dismissedAction) {\n\t\t\t\tconsole.log('Content sharing dismissed');\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.log(error.message);\n\t\t}\n\t};\n\tconst onCADShare = async (msg, url) => {\n\t\ttry {\n\t\t\tconst result = await Share.open({\n\t\t\t\tsubject: `${selectedPart?.name} - CAD MODEL`,\n\t\t\t\tmessage: msg,\n\t\t\t\turl: url,\n\t\t\t\ttitle: `${selectedPart?.name} - CAD MODEL`,\n\t\t\t});\n\t\t\tif (result.action === Share.sharedAction) {\n\t\t\t\tconsole.log('Content shared successfully');\n\t\t\t} else if (result.action === Share.dismissedAction) {\n\t\t\t\tconsole.log('Content sharing dismissed');\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.log(error.message);\n\t\t}\n\t};\n\tconst checkFavoritePart = (part) => {\n\t\tAPI.getFavoriteParts(authStore.accountInfo.id).then((res) => {\n\t\t\tif (res.ok) {\n\t\t\t\tconst favoritePart = res.data.collection.find((d) => d.name === selectedPart?.name)\n\t\t\t\tif (favoritePart) {\n\t\t\t\t\tsetSavedVisible(true)\n\t\t\t\t\tsetSavedPart(favoritePart)\n\t\t\t\t}else{\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tsetFavoriteParts(res.data.collection)\n\t\t\t}\n\t\t})\n\n\t}\n\tuseEffect(() => {\n\t\tconst selectedPart = partStore.products[selectedPartTab]\n\t\tconst favoritePart = favoriteParts.find((d) => d.name === selectedPart?.name)\n\n\t\tif (favoritePart) {\n\n\t\t\tsetSavedTitle(favoritePart.name)\n\t\t\tsetSavedNotes(favoritePart.description)\n\t\t\tsetSavedVisible(true)\n\t\t\tsetSavedPart(favoritePart)\n\t\t}\n\t\tsetSelectedPart(partStore.products[selectedPartTab])\n\t}, [selectedPartTab])\n\n\tuseEffect(() => {\n\t\tif (savedPart) {\n\t\t\tsetSavedTitle(savedPart.nickName)\n\t\t\tsetSavedNotes(savedPart.description)\n\t\t}\n\t}, [savedPart])\n\n\tuseEffect(() => {\n\t\tif (selectedPart?.cadKey) {\n\t\t\tCADAPI.setAPIKey(selectedPart?.cadKey)\n\t\t\tconsole.log(selectedPart?.cadKey)\n\t\t\tCADAPI.getCadLinks(encodeURIComponent(selectedPart?.name)).then((res) => {\n\t\t\t\tif (res.ok) setCadLinks(res.data)\n\t\t\t})\n\t\t}\n\t\tsetSavedVisible(false)\n\t\tsetSavedPart(null)\n\t\tcheckFavoritePart(selectedPart)\n\t}, [selectedPart])\n\tuseEffect(() => {\n\t\tif (partStore.products?.length === 1) {\n\t\t\tif (partStore.products[0].source === \"savedParts\") {\n\t\t\t\t//alert(partStore.products[0].source)\n\t\t\t\tsetSelectedPart(partStore.products[0])\n\t\t\t\t//checkFavoritePart(partStore.products[0])\n\t\t\t}\n\n\t\t}\n\n\t}, [partStore.products])\n\tuseEffect(() => {\n\t\tconsole.log('Screen B mounted');\n\t\t\n\t\treturn () => {\n\t\t console.log('Screen B unmounted');\n\t\t};\n\t }, []);\n\tuseEffect(() => {\n\t\t//alert('4')\n\t\tAPI.getFavoriteParts(authStore.accountInfo.id).then((res) => {\n\t\t\tif (res.ok) {\n\t\t\t\tconst favoritePart = res.data.collection.find((d) => d.name === selectedPart?.name)\n\t\t\t\tif (favoritePart) {\n\t\t\t\t\tsetSavedVisible(true)\n\t\t\t\t\tsetSavedPart(favoritePart)\n\t\t\t\t}\n\t\t\t\tsetFavoriteParts(res.data.collection)\n\t\t\t}\n\t\t})\n\t\tanalyticsStore.logEvent(\"part_details_view\", {})\n\t\tif (route.params?.partName && !selectedPart) {\n\t\t\tconsole.log('got part name')\n\t\t\tAPI.searchPart(\"parts\", route.params.partName, \"\").then((res) => {\n\t\t\t\tif (res.data.results.length > 0) {\n\t\t\t\t\tvar part = res.data.results.find((item) => { return item.name === decodeURIComponent(route.params.partName) });\n\t\t\t\t\t//partStore.products = [res.data.results[0]]\n\t\t\t\t\tAPI.loadPartById(part.partId, true).then((result) => {\n\n\t\t\t\t\t\tlet product = result.data.result?.product;\n\t\t\t\t\t\tif (!product) {\n\n\t\t\t\t\t\t\tproduct = { name: item.name, competitorNumber: item.competitorName }\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tpartStore.setSavedPart(product, result.data.result.productConfig)\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tpartStore.products = [product]\n\n\t\t\t\t\t\tsetSelectedPart(partStore.products[0])\n\t\t\t\t\t\t// //partStore.clearPart()\n\n\t\t\t\t\t})\n\t\t\t\t\t// setSelectedPart(res.data.results[0])\n\t\t\t\t\t// partStore.setSavedPart(res.data.results[0],res.data.result[0].productConfig)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}, [])\n\n\tconst switchToCreateAccount = () => {\n\t\tnavigation.replace(\"CreateAccount\", { goBack: true })\n\t}\n\tconst switchToLogin = () => {\n\t\tsetPromptCreateAccount(false)\n\t\tif (Platform.OS === \"web\") {\n\n\t\t\toktaAuth.oktaAuth.signInWithRedirect();\n\t\t} else {\n\t\t\tAsyncStorage.getItem(\"faceID\").then(async (faceIDStr) => {\n\t\t\t\tconst token = await getSecureValueFor(\"savedToken\")\n\t\t\t\tconsole.log(faceIDStr)\n\t\t\t\tlet faceIDObj = JSON.parse(faceIDStr)\n\t\t\t\tlet tokenObj = JSON.parse(token)\n\t\t\t\tif (faceIDObj?.faceID) {\n\t\t\t\t\tcheckFaceID(tokenObj)\n\t\t\t\t} else {\n\t\t\t\t\tawait signIn();\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\tconst getSecureValueFor = async (key) => {\n\t\treturn await SecureStore.getItemAsync(key)\n\t}\n\tconst toggleSave = () => {\n\t\tconsole.log('clicked')\n\t\tif (!authStore.authenticated) {\n\t\t\tsetPromptCreateAccount(true)\n\t\t\tconsole.log('not auth')\n\t\t\treturn\n\t\t}\n\t\tif (savedVisible) {\n\t\t\tconsole.log('visible')\n\t\t\trefContainer.current.fadeOut().then(() => {\n\t\t\t\tAPI.deleteFavoritePart(authStore.accountInfo.id, { id: savedPart.id })\n\t\t\t\tsetSavedPart(null)\n\t\t\t\tsetSavedVisible(false)\n\t\t\t})\n\t\t}\n\n\t\telse {\n\t\t\tconsole.log('call api')\n\t\t\tlet data = {\n\t\t\t\tname: selectedPart?.name,\n\t\t\t\tnickName: \"\",\n\t\t\t\tdescription: \"\",\n\t\t\t}\n\n\t\t\tif (partStore.part.material) {\n\t\t\t\tdata = {\n\t\t\t\t\t...data,\n\t\t\t\t\tproductTypeId: partStore.part.productType.id,\n\t\t\t\t\tshapeId: partStore.part.shape.id,\n\t\t\t\t\tmaterialId: partStore.part.material.id,\n\t\t\t\t\tend1: partStore.getParametersForEnd(1),\n\t\t\t\t\tend2: partStore.getParametersForEnd(2),\n\t\t\t\t\tend3: partStore.getParametersForEnd(3),\n\t\t\t\t\tend4: partStore.getParametersForEnd(4),\n\t\t\t\t}\n\t\t\t}\n\t\t\tAPI.createFavoritePart(authStore.accountInfo.id, data).then((res) => {\n\t\t\t\tif (res.ok) setSavedPart(res.data.model)\n\t\t\t})\n\t\t\tsetSavedVisible(true)\n\n\t\t\tanalyticsStore.logEvent(\"part_details_save\", {})\n\t\t}\n\t}\n\n\tconst endEditing = () => {\n\n\t\tAPI.updateFavoritePart(authStore.accountInfo.id, {\n\t\t\tid: savedPart.id,\n\t\t\tnickName: savedTitle,\n\t\t\tdescription: savedNotes,\n\t\t})\n\t}\n\tconst onBlur = () => {\n\t\tif (Platform.OS !== \"web\")\n\t\t\treturn\n\t\tAPI.updateFavoritePart(authStore.accountInfo.id, {\n\t\t\tid: savedPart.id,\n\t\t\tnickName: savedTitle,\n\t\t\tdescription: savedNotes,\n\t\t})\n\t}\n\tconst showInchHex = (products) => {\n\t\tif (products.length === 1) {\n\t\t\treturn false;\n\t\t} else if (products.some(x => x.isMetric === true) && products.some(x => x.isMetric === false)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst showDivision = (products) => {\n\t\tif (products.length === 1) {\n\t\t\treturn false;\n\t\t} else if (products.some(x => x.isFsc === true) && products.some(x => x.isFsc === false)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst getEndId = (end) => {\n\t\tlet id = partStore.part[end]?.endType?.id\n\t\tif (!id)\n\t\t\tid = 0;\n\n\t\treturn id;\n\t}\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{selectedPart?.image?.path && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!selectedPart?.image?.path && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\tPart Number: \n\t\t\t\t\t\t{partStore.products.map((part, i) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t setSelectedPartTab(i)}\n\t\t\t\t\t\t\t\t\tstyle={[styles.partNameTab, selectedPartTab === i && styles.tabSelected]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{part.name}\n\t\t\t\t\t\t\t\t\t{showInchHex(partStore.products) && (\n\t\t\t\t\t\t\t\t\t\t{part.isMetric ? \"Metric Hex\" : \"Inch Hex\"}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{showDivision(partStore.products) && (\n\t\t\t\t\t\t\t\t\t\t{part.isFsc ? \"FSC\" : \"TFD\"}\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\t{selectedPart?.competitorNumber && (\n\t\t\t\t\t\t{`Competitor Part Number: ${selectedPart?.competitorNumber}`}\n\t\t\t\t\t)}\n\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tanalyticsStore.logEvent(\"part_details_find\", {})\n\t\t\t\t\t\t\t\tnavigation.navigate(\"WhereToBuyStack\")\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={styles.actionButton}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tFIND\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\n\t\t\t\t\t\t\t\tvar isWeb = true// (Platform.OS === \"web\" ? true : false)\n\t\t\t\t\t\t\t\tlet body = '';\n\t\t\t\t\t\t\t\tif (isWeb) {\n\t\t\t\t\t\t\t\t\tbody += `FittingFinder™ Product Specification: ${selectedPart?.name} \\n\\r`\n\t\t\t\t\t\t\t\t\tif (selectedPart?.isStandard || selectedPart?.isMadeToOrder) {\n\t\t\t\t\t\t\t\t\t\tbody += `${WEB_URL}/part/${encodeURIComponent(selectedPart?.name)} \\r\\n\\r`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (selectedPart?.image?.path || selectedPart?.isMadeToOrder) {\n\t\t\t\t\t\t\t\t\t\tbody += `Product Specification Image: \\n${WEB_URL}/backend/static/img/config/${selectedPart?.image?.path}\\n\\r`\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tbody += `Where to Buy: \\nhttps://www.parker.com/FittingFinderWTB \\r\\n`\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbody = `${selectedPart?.name}\n\t\t\t\t\t\t\t\t\t\t\t
Where to Buy
`\n\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbody += `\\nFitting Attributes:\\r\\n`\n\t\t\t\t\t\t\t\tbody += selectedPart?.isMadeToOrder ? `Made to Order${isWeb ? '\\r\\n' : '
'}` :\n\t\t\t\t\t\t\t\t\tselectedPart?.isStandard ? `Standard Part${isWeb ? '\\r\\n' : '
'}` : `Non-Standard Part Made to Order${isWeb ? '\\r\\n' : '
'}`\n\t\t\t\t\t\t\t\t//body += selectedPart?.isStandard ? `Standard Part${isWeb ? '\\r\\n' : '
'}` : `Non-Standard Part${isWeb ? '\\r\\n' : '
'}`\n\n\t\t\t\t\t\t\t\tif (partStore.part.shape) {\n\t\t\t\t\t\t\t\t\tbody += `Shape: ${partStore.part.shape.name}${isWeb ? '\\r\\n' : '
'}`\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpartStore.part.end1?.endSize &&\n\t\t\t\t\t\t\t\t\t\t\t(body += `End Type 1: ${partStore.part.end1.endType.name} (${partStore.part.end1.endSize.dash})${isWeb ? '\\n' : '
'}`)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpartStore.part.end2?.endSize &&\n\t\t\t\t\t\t\t\t\t\t\t(body += `End Type 2: ${partStore.part.end2.endType.name} (${partStore.part.end2.endSize.dash})${isWeb ? '\\n' : '
'}`)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpartStore.part.end3?.endSize &&\n\t\t\t\t\t\t\t\t\t\t\t(body += `End Type 3: ${partStore.part.end3.endType.name} (${partStore.part.end3.endSize.dash})${isWeb ? '\\n' : '
'}`)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tpartStore.part.end4?.endSize &&\n\t\t\t\t\t\t\t\t\t\t\t(body += `End Type 4: ${partStore.part.end4.endType.name} (${partStore.part.end4.endSize.dash})${isWeb ? '\\n' : '
'}`)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbody += selectedPart?.material ? `Material: ${selectedPart.material}${isWeb ? '\\n' : '
'}` :\n\t\t\t\t\t\t\t\t\tpartStore.part.material ? `Material: ${partStore.part.material.name}${isWeb ? '\\n' : '
'}` : ''\n\t\t\t\t\t\t\t\tbody += selectedPart?.productSpecification?.productSpecificationLabels.length > 0 &&\n\t\t\t\t\t\t\t\t\tselectedPart?.productSpecification?.productSpecificationLabels[0].sae.length > 0 ?\n\t\t\t\t\t\t\t\t\t`SAE: ${selectedPart?.productSpecification?.productSpecificationLabels[0].sae}${isWeb ? '\\n' : '
'}` :\n\t\t\t\t\t\t\t\t\t''\n\n\t\t\t\t\t\t\t\tbody += selectedPart?.productSpecification?.productSpecificationLabels\n\t\t\t\t\t\t\t\t\t?.map((d) => `${d.label}: ${d.value}${isWeb ? '\\n' : '
'}`)\n\t\t\t\t\t\t\t\t\t.join(\"\")\n\n\t\t\t\t\t\t\t\tif (cadLinks.length > 1) {\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tconst filteredCadLinks = cadLinks.filter(item => item.cadType === \"STP\");\n\t\t\t\t\t\t\t\t\tconsole.log(\"Filtered CAD Links:\", filteredCadLinks); // Debug log\n\t\t\t\t\t\t\t\t\tbody += `\\rLinks to Download CAD Models:\\n`\n\t\t\t\t\t\t\t\t\t// Map the filtered array to the desired format\n\t\t\t\t\t\t\t\t\tbody += filteredCadLinks\n\t\t\t\t\t\t\t\t\t\t.map(d => isWeb ? `${d.fileLoc}\\n` : `CAD Models${d.cadtype !== 'Part Solutions' ? ' - ' + d.cadtype : ''}
`)\n\t\t\t\t\t\t\t\t\t\t.join(\"\");\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}else if (cadLinks.length > 0) {\n\t\t\t\t\t\t\t\t\tbody += `\\rLinks to Download CAD Models:\\n`\n\t\t\t\t\t\t\t\t\tbody += cadLinks.map((d) => isWeb ? `${d.fileLoc}\\n` : `CAD Models ${d.cadType !== 'Part Solutions' ? '-' + d.cadType : ''}
`)\n\t\t\t\t\t\t\t\t\t\t.join(\"\");\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (Platform.OS === \"web\") {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tMailComposer.composeAsync({\n\t\t\t\t\t\t\t\t\t\tsubject: `Part Specifications - ${selectedPart?.name}`,\n\t\t\t\t\t\t\t\t\t\tbody: body,\n\t\t\t\t\t\t\t\t\t\tisHtml: true,\n\t\t\t\t\t\t\t\t\t}).catch((err) => {\n\t\t\t\t\t\t\t\t\t\t//alert(err)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tonShare(body, `${WEB_URL}/fittingfinder/part/${encodeURIComponent(selectedPart?.name)} `)\n\t\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\t\tanalyticsStore.logEvent(\"part_details_email\", {})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{Platform.OS === \"ios\" && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{Platform.OS === \"android\" && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{Platform.OS === \"web\" && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\tSPECS & CAD\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t toggleSave()}>\n\t\t\t\t\t\t\t{Platform.OS === \"web\" ? (
) : ()}\n\n\t\t\t\t\t\t\t{savedPart ? 'SAVED' : 'SAVE'}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{savedVisible && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\tDescription\n\n\t\t\t\t\t{!selectedPart?.image?.path && Note: Detailed drawing not available}\n\t\t\t\t\t{selectedPart?.isMadeToOrder ? \"Made to Order \" : selectedPart?.isStandard ? \"Standard Part\" : \"Non-Standard Part Made to Order\"}\n\t\t\t\t\t{(!selectedPart?.productSpecification?.productSpecificationLabels && selectedPart?.competitorNumber) && (\n\t\t\t\t\t\tIf addition information is required for this part, please contact us by selecting contact us on the account menu\n\t\t\t\t\t)}\n\t\t\t\t\t{partStore.part.shape && {`Shape: ${partStore.part.shape.name}`}}\n\n\t\t\t\t\t{partStore.part.end1?.endSize && (\n\t\t\t\t\t\t{`End Type 1: ${partStore.part.end1.endType.name} (${partStore.part.end1.endSize.dash})`}\n\t\t\t\t\t)}\n\t\t\t\t\t{partStore.part.end2?.endSize && (\n\t\t\t\t\t\t{`End Type 2: ${partStore.part.end2.endType.name} (${partStore.part.end2.endSize.dash})`}\n\t\t\t\t\t)}\n\t\t\t\t\t{partStore.part.end3?.endSize && (\n\t\t\t\t\t\t{`End Type 3: ${partStore.part.end3.endType.name} (${partStore.part.end3.endSize.dash})`}\n\t\t\t\t\t)}\n\t\t\t\t\t{partStore.part.end4?.endSize && (\n\t\t\t\t\t\t{`End Type 4: ${partStore.part.end4.endType.name} (${partStore.part.end4.endSize.dash})`}\n\t\t\t\t\t)}\n\t\t\t\t\t{selectedPart?.material ? ({`Material: ${selectedPart.material}`}) :\n\t\t\t\t\t\tpartStore.part.material ? ({`Material: ${partStore.part.material.name}`}) : ('')}\n\t\t\t\t\t{/* {partStore.part.material && (\n\t\t\t\t\t\t{`Material: ${partStore.part.material.name}`}\n\t\t\t\t\t)} */}\n\t\t\t\t\t{selectedPart?.productSpecification?.productSpecificationLabels.length > 0 &&\n\t\t\t\t\t\tselectedPart?.productSpecification?.productSpecificationLabels[0].sae.length > 0 && (\n\t\t\t\t\t\t\t{`SAE: ${selectedPart?.productSpecification?.productSpecificationLabels[0].sae}`}\n\t\t\t\t\t\t)}\n\t\t\t\t\t{selectedPart &&\n\t\t\t\t\t\tselectedPart?.productSpecification?.productSpecificationLabels?.map((d) => (\n\t\t\t\t\t\t\t{`${d.label}: ${d.value}`}\n\t\t\t\t\t\t))}\n\t\t\t\t\t{cadLinks.length > 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t item.fileLoc}\n\t\t\t\t\t\t\t\trenderItem={({ item }) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{`CAD Models ${item.cadType !== 'Part Solutions' ? '-' + item.cadType : ''}`}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (Platform.OS === \"web\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\tanalyticsStore.logEvent(\"cad_download\", {})\n\t\t\t\t\t\t\t\t\t\t\t\t\tLinking.openURL(item.fileLoc)\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tanalyticsStore.logEvent(\"cad_email\", {})\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet body = `FittingFinder™ CAD Model: ${selectedPart?.name}`\n\t\t\t\t\t\t\t\t\t\t\t\t\tonCADShare(body, item.fileLoc)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} >\n\t\t\t\t\t\t\t\t\t\t\t\t{Platform.OS === \"ios\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSHARE\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{Platform.OS === \"android\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSHARE\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{Platform.OS === \"web\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tDOWNLOAD\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\t\t\t\t\t\t\tMailComposer.isAvailableAsync().then((res) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (res)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMailComposer.composeAsync({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubject: `${selectedPart?.name} - CAD MODEL`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbody: `${item.fileLoc}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisHtml: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAlert.alert(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Error\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Mail services are not available. Make sure you're signed into the Mail app\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/> */}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{promptCreateAccount && (\n\t\t\t\t\t switchToCreateAccount()}\n\t\t\t\t\t\tcancelAction={() => setPromptCreateAccount(false)}\n\t\t\t\t\t\tsecondAction={() => switchToLogin()}\n\t\t\t\t\t\tcloseButtonTitle=\"Create an Account\"\n\t\t\t\t\t\tsecondButtonTitle=\"Log in\"\n\t\t\t\t\t\tcancelButtonTitle=\"Cancel\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\n\n\t\t\n\t)\n}\n\nexport default FittingDetails\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t},\n\tpartTabContainer: {\n\t\tmarginTop: 20,\n\t\tmarginLeft: 0,\n\t\tmarginHorizontal: 30,\n\t},\n\tpartNameTab: {\n\t\tpaddingBottom: 10,\n\t\tborderBottomColor: Colors.backgroundGrey,\n\t\tborderBottomWidth: 2,\n\t\tmarginRight: 20,\n\t},\n\ttabSelected: {\n\t\tborderBottomColor: Colors.yellow,\n\t},\n\tpartNameText: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 17,\n\t},\n\tpartNameSubtext: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 14,\n\t},\n\tcompetitorName: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 14,\n\t\tpaddingLeft: 30,\n\t\tpaddingBottom: 20,\n\t},\n\tpartImageContainer: {\n\t\theight: 300,\n\t\tbackgroundColor: Colors.white,\n\t\tpadding: 20,\n\t},\n\tpartImage: {\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t},\n\tactionRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tmarginVertical: 20,\n\n\t},\n\tactionButton: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tflex: 1,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\n\n\t},\n\tactionButtonLarge: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tflex: 2,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t\tmarginLeft: 2.5,\n\t\tmarginRight: 2.5\n\t},\n\tactionText: {\n\t\tcolor: Colors.white,\n\t\tmarginLeft: 10,\n\t\tfontWeight: \"500\",\n\t},\n\tinput: {\n\t\tcolor: Colors.darkGrey,\n\t\tbackgroundColor: \"#E1E2E3\",\n\t\tpadding: 15,\n\t\tborderRadius: 5,\n\t\tmarginBottom: 20,\n\t},\n\tdescTitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 20,\n\t\tmarginBottom: 10,\n\t},\n\tdescLabel: {\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 26,\n\t},\n\n\tresults: {\n\t\tmarginTop: 25,\n\t\tpaddingLeft: 10,\n\t},\n\tresultRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tpaddingVertical: 5,\n\t\tpaddingRight: 10,\n\t\tborderBottomColor: Colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t},\n\tcadShareButton: {\n\t\tflexDirection: 'row',\n\t\talignItems: 'center',\n\t\tbackgroundColor: Colors.darkGrey, // Button background color\n\t\tpadding: 10,\n\t\tborderRadius: 5,\n\t},\n\tcadShareButtonText: {\n\t\tcolor: 'white', // Text color\n\t\tmarginLeft: 10, // Add spacing between the icon and text\n\t},\n})\n","import { Linking, Platform } from 'react-native';\nimport { OktaAuth } from '@okta/okta-auth-js';\n\n \n //Local/QA testing\n // export default {\n // oidc: {\n // clientId: '0oa1rvtgadlBcZOB30h8', //'0oagg54yknhmZgRnS5d7',//\n // redirectUri: 'com.parker.fittingfinder:/callback',\n // endSessionRedirectUri: 'com.parker.fittingfinder:/logout',\n // discoveryUri: 'https://loginqa.parker.com/oauth2/default',//'https://dev-58483008.okta.com',\n // scopes: ['openid', 'profile', 'offline_access'],\n // requireHardwareBackedKeyStore: false,\n // },\n // oktaAuth: new OktaAuth({\n // issuer: 'https://loginqa.parker.com/oauth2/default',\n // clientId: '0oa1tmpzxbewqoOjS0h8',\n // redirectUri: '/login/callback',\n // })\n // };\n\n////QA\n// export default {\n// oidc: {\n// clientId: '0oa1rvtgadlBcZOB30h8', //'0oagg54yknhmZgRnS5d7',//\n// redirectUri: 'com.parker.fittingfinder:/callback',\n// endSessionRedirectUri: 'com.parker.fittingfinder:/logout',\n// discoveryUri: 'https://loginqa.parker.com/oauth2/default',//'https://dev-58483008.okta.com',\n// scopes: ['openid', 'profile', 'offline_access'],\n// requireHardwareBackedKeyStore: false,\n// },\n// oktaAuth: new OktaAuth({\n// issuer: 'https://loginqa.parker.com/oauth2/default',\n// clientId: '0oa1tmpzxbewqoOjS0h8',\n// redirectUri: '/login/callback',\n// })\n// };\n\n\n////Production\n export default {\n oidc: {\n clientId: '0oaw0j1ahtqWcjGxq2p7', //'0oagg54yknhmZgRnS5d7',//\n redirectUri: 'com.parker.fittingfinder:/callback',\n endSessionRedirectUri: 'com.parker.fittingfinder:/logout',\n discoveryUri: 'https://login.parker.com/oauth2/default',//'https://dev-58483008.okta.com',\n scopes: ['openid', 'profile', 'offline_access'],\n requireHardwareBackedKeyStore: false,\n },\n oktaAuth: new OktaAuth({\n issuer: 'https://login.parker.com/oauth2/default',\n clientId: '0oau8snzbdU6y93wD2p7',\n redirectUri: '/login/callback',\n })\n };\n\n \n ","import React, { useEffect, useState } from \"react\"\nimport {\n\tStyleSheet,\n\tText,\n\tView,\n\tTextInput,\n\tFlatList,\n\tPressable,\n\tActivityIndicator,\n\tImage,\n\tPlatform,\n\tDimensions, ScrollView\n} from \"react-native\"\nimport Icon from \"react-native-vector-icons/Ionicons\"\nimport { API } from \"../utils/API\"\nimport Colors from \"../utils/Colors\"\nimport { Surface } from \"react-native-paper\"\nimport { partStore } from \"../utils/PartStore\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { Button, Popup } from \"../components/Index\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst FittingSearch = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst [searchText, setSearchText] = useState(\"\")\n\tconst [results, setResults] = useState([])\n\tconst [selectedToggle, setSelectedToggle] = useState(0)\n\tconst [selectedManufacturer, setSelectedManufacturer] = useState({ id: 0, name: \"All\" })\n\tconst [loading, setLoading] = useState(false)\n\tconst [searchFocused, setSearchFocused] = useState(false)\n\tconst [otherManufacturerMatchFound, setOtherManufacturerMatchFound] = useState(false)\n\n\tuseEffect(() => {\n\t\tif (searchText?.length < 1) {\n\t\t\tsetResults([])\n\t\t\treturn\n\t\t}\n\t\tperformSearch()\n\t}, [selectedToggle, selectedManufacturer])\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = navigation.addListener(\"focus\", () => {\n\t\t\tif (searchText?.length >= 1) performSearch()\n\t\t})\n\t\treturn unsubscribe\n\t}, [navigation])\n\n\tuseEffect(() => partStore.clearPart(), [])\n\n\tconst performSearch = () => {\n\t\tif (searchText === \"\" || searchText === null) {\n\n\n\t\t\treturn\n\t\t}\n\t\tsetLoading(true)\n\t\tsetOtherManufacturerMatchFound(false)\n\t\tlet endpoint = selectedToggle === 0 ? \"parts\" : \"competitorParts\"\n\t\tlet competitorId =\n\t\t\tselectedManufacturer.id > 0 && selectedToggle === 1 ? `&competitorId=${selectedManufacturer.id}` : \"\"\n\t\tAPI.searchPart(endpoint, encodeURIComponent(searchText), competitorId).then((res) => {\n\t\t\tif (competitorId && res.data.results.length === 0) {\n\t\t\t\tAPI.searchPart(endpoint, encodeURIComponent(searchText), \"\").then((res) => {\n\t\t\t\t\tif (res.data.results.length > 0) setOtherManufacturerMatchFound(true)\n\t\t\t\t\tsetResults(res.data.results)\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t})\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsetResults(res.data.results)\n\t\t\t\tsetLoading(false)\n\t\t\t}\n\t\t})\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t setSelectedToggle(0)}\n\t\t\t\t\tstyle={[styles.toggle, selectedToggle === 0 && styles.selected]}\n\t\t\t\t>\n\t\t\t\t\tParker\n\t\t\t\t\n\t\t\t\t setSelectedToggle(1)}\n\t\t\t\t\tstyle={[styles.toggle, selectedToggle === 1 && styles.selected]}\n\t\t\t\t>\n\t\t\t\t\tCompetitive Interchange\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t setSearchFocused(true)}\n\t\t\t\t\tonBlur={() => {\n\t\t\t\t\t\tif (Platform.OS === \"web\") performSearch()\n\t\t\t\t\t\tsetSearchFocused(false)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\n\n\t\t\t{selectedToggle === 1 && (\n\t\t\t\t<>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tnavigation.navigate(\"SelectCompetitor\", {\n\t\t\t\t\t\t\t\tselectedManufacturer,\n\t\t\t\t\t\t\t\tonManufacturerSelected: (manufacturer) => setSelectedManufacturer(manufacturer),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{`Manufacturer: ${selectedManufacturer.name}`}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t{searchText?.length < 3 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSearch the Competitor Interchange above by entering a part number or by selecting a manufacturer.\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t)}\n\t\t\t{Platform.OS === \"web\" &&(\n\t\t\t\t performSearch()} />\n\t\t\t)}\n\t\t\t\n\t\t\t{(!searchFocused && searchText !== \"\") && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t{loading && }\n\t\t\t\t\t\t{(!loading) && {`${results?.length} RESULTS FOR \"${searchText}\"`}}\n\t\t\t\t\t\n\n\t\t\t\t\t{otherManufacturerMatchFound && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tYour search did not return results for the chosen manufacturer. The following results are matches from\n\t\t\t\t\t\t\t\tother manufacturers.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{results.length === 0 && selectedToggle === 1 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tThis manufacturer part number does not convert to a Parker part number. Please contact us by using the\n\t\t\t\t\t\t\t\tContact Us options available under the My Account section.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\t item.competitorPartId + item.name}\n\t\t\t\t\t\t\trenderItem={({ item }) => (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tlet isTFD = (item.partId ? true : false);\n\t\t\t\t\t\t\t\t\t\tAPI.loadPartById(isTFD ? item.partId : item.fluidSystemConnectorPartId, isTFD).then((res) => {\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlet product = res.data.result?.product;\n\t\t\t\t\t\t\t\t\t\t\tif(!product){\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tproduct = {name:item.name,competitorNumber:item.competitorName}\n\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t\tif(item.competitorName){\n\t\t\t\t\t\t\t\t\t\t\t\t\tproduct.competitorNumber =item.competitorName;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tpartStore.setSavedPart(product,res.data.result.productConfig)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tpartStore.products = [product]\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t// //partStore.clearPart()\n\t\t\t\t\t\t\t\t\t\t\tnavigation.navigate(\"FittingDetails\", { product })\n\t\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={styles.row}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{selectedToggle === 0 ? item.name : item.competitorName}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default FittingSearch\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tflex: 1,\n\t\tpaddingTop: 20,\n\t\tbackgroundColor: Platform.OS !== \"web\" ? Colors.backgroundGrey : Colors.transparent,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tsearchBar: {\n\t\tbackgroundColor: Colors.white,\n\t\tflexDirection: \"row\",\n\t\tborderRadius: 30,\n\t\tpadding: 10,\n\t\tmarginBottom: 20,\n\t\tcolor: Colors.black,\n\t\tmarginHorizontal: 20,\n\t},\n\tinput: {\n\t\tflex: 1,\n\t\tpaddingLeft: 15,\n\t},\n\ttoggleContainer: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tmarginBottom: 20,\n\t\tmarginHorizontal: 20,\n\t},\n\ttoggle: {\n\t\tpaddingBottom: 10,\n\t\tpaddingHorizontal: 20,\n\t\talignItems: \"center\",\n\t},\n\ttoggleText: {\n\t\tcolor: Colors.darkGrey,\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 16,\n\t},\n\tselected: {\n\t\tcolor: Colors.black,\n\t\tborderBottomColor: Colors.yellow,\n\t\tborderBottomWidth: 3,\n\t},\n\tselectedText: {\n\t\tcolor: Colors.black,\n\t},\n\tinstructionsText: {\n\t\tmarginHorizontal: 20,\n\t\tfontSize: 16,\n\t\tfontWeight: \"500\",\n\t\ttextAlign: \"center\",\n\t},\n\tmanufacturerContainer: {\n\t\tmarginHorizontal: 20,\n\t\tmarginBottom: 20,\n\t\tpadding: 15,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t},\n\tmanufacturerText: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"bold\",\n\t},\n\tlistContainer: {\n\t\tbackgroundColor: Colors.white,\n\t\tflex: 1,\n\t},\n\tresultsRow: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tpaddingLeft: 20,\n\t\tpaddingVertical: 10,\n\t},\n\tnoResultsRow: {\n\t\tbackgroundColor: Colors.mediumGrey,\n\t\tpaddingLeft: 20,\n\t\tpaddingVertical: 10,\n\t},\n\tresultsText: {\n\t\tcolor: Colors.white,\n\t\tfontSize: 14,\n\t\tfontWeight: \"600\",\n\t},\n\trow: {\n\t\tborderBottomColor: Colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tjustifyContent: \"center\",\n\t\tmarginLeft: 20,\n\t\tpaddingVertical: 12,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport { StyleSheet, Text, View, FlatList, Image, Pressable, Platform, Dimensions, ScrollView } from \"react-native\"\nimport { Surface } from \"react-native-paper\"\nimport { API } from \"../utils/API\"\nimport Colors from \"../utils/Colors\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst SelectCompetitor = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst [competitors, setCompetitors] = useState([])\n\tconst [selectedManufacturer] = useState(route.params.selectedManufacturer)\n\n\tuseEffect(() => {\n\t\tAPI.getCompetitors().then((res) => {\n\t\t\tlet data = res.data.collection.sort((a, b) => (a.name > b.name ? 1 : -1))\n\t\t\tdata.unshift({ id: 0, name: \"All\" })\n\t\t\tsetCompetitors(data)\n\t\t})\n\t}, [])\n\n\treturn (\n\t\t// \n\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t item.id}\n\t\t\t\t\t\t\trenderItem={({ item }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\troute.params.onManufacturerSelected(item)\n\t\t\t\t\t\t\t\t\t\t\tnavigation.goBack()\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={styles.row}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t{selectedManufacturer.name === item.name && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\n\t\t// \n\t)\n}\n\nexport default SelectCompetitor\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tflex: 1,\n\t\tpadding: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tscrollViewContainer: {\n\t\tflexGrow: 1,\n\t},\n\tlistContainer: {\n\t\tflexGrow: 1,\n\t\tbackgroundColor: Colors.white,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n\trow: {\n\t\tflexDirection: \"row\",\n\t\tborderBottomColor: Colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tmarginLeft: 20,\n\t\tpaddingVertical: 17,\n\t\tpaddingRight: 10,\n\t},\n})\n","import React from \"react\"\nimport { Image, Pressable, StyleSheet, Text, View, ScrollView, Platform, Dimensions } from \"react-native\"\nimport Colors from \"../../utils/Colors\"\nimport { Button } from \"../../components/Index\"\nimport { partStore } from \"../../utils/PartStore\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst ToolIntro = ({ navigation }) => {\n\tReact.useLayoutEffect(() => {\n\t\tnavigation.setOptions({\n\t\t\theaderRight: () => (\n\t\t\t\t navigation.navigate(\"TabStack\")} style={{ marginRight: 10 }}>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t})\n\t}, [navigation])\n\n\tReact.useEffect(() => partStore.getThreadIdentification(), [])\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tParker MIK-1 kit is a simple and excellent tool for identification of fitting threads.\n\t\t\t\n\t\t\t\n\t\t\t\tAt minimum, the caliper and thread gauges are required to successfully identify threads.\n\t\t\t\n\t\t\tThe following thread identification process pertains to male ends only.\n\t\t\t\n\t\t\t\tIf a female end requires thread identification, it is recommended that the mating male, if available, be\n\t\t\t\tidentified using this process.\n\t\t\t\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t {\n\t\t\t\t\t\tnavigation.navigate(\"WhereToBuyStack\")\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tPURCHASE\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\tMIK-1 kit includes\n\t\t\t\t- Caliper\n\t\t\t\t- Thread gauges\n\t\t\t\t- Thread profiles\n\t\t\t\t- Instruction booklet\n\t\t\t\t- Nose angle indicator\n\t\t\t\n\t\t\t navigation.navigate(\"Tool1\")} />\n\t\t\n\t)\n}\n\nexport default ToolIntro\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpadding: 20,\n\t\tmarginBottom: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\ttitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 24,\n\t},\n\tbody: {\n\t\tfontSize: 18,\n\t\tlineHeight: 24,\n\t\tmarginVertical: 20,\n\t},\n\tlistTitle: {\n\t\tfontSize: 16,\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 7,\n\t},\n\tlistItem: {\n\t\tfontSize: 16,\n\t\tmarginBottom: 7,\n\t},\n\tactionButton: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t\tmarginVertical: 20,\n\t},\n\tactionText: {\n\t\tcolor: Colors.white,\n\t\tmarginLeft: 10,\n\t\tfontWeight: \"500\",\n\t},\n})\n","import React from \"react\"\nimport { Image, Pressable, StyleSheet, Text, View, Platform, Dimensions } from \"react-native\"\nimport Colors from \"../../utils/Colors\"\nimport { Button } from \"../../components/Index\"\nimport { toJS } from \"mobx\"\nimport { partStore } from \"../../utils/PartStore\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst Tool1 = ({ navigation }) => {\n\tReact.useLayoutEffect(() => {\n\t\tnavigation.setOptions({\n\t\t\theaderRight: () => (\n\t\t\t\t navigation.navigate(\"TabStack\")} style={{ marginRight: 10 }}>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t})\n\t}, [navigation])\n\n\tconst endType = partStore.part[`end${partStore.selectedEndNumber}`]?.endType\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tStep 1 of 3 \n\t\t\t\tVerify if parallel or tapered\n\t\t\t\t\n\t\t\t\t\tVisual Inspection\n\t\t\t\t\t{\"Compare with\\nknown parallel\"}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tParallel\n\t\t\t\t\tTapered\n\n\t\t\t\t\tParallel\n\t\t\t\t\tTapered\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tThe end type you have selected is {endType?.isTapererd ? \"tapered\" : \"parallel\"}.\n\t\t\t\t\n\t\t\t\tIf this is not correct, close this window to select a different type.\n\t\t\t\n\t\t\t navigation.navigate(\"Tool2\")} />\n\t\t\n\t)\n}\n\nexport default Tool1\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpadding: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tvisual: {\n\t\tfontSize: 12,\n\t\ttextAlignVertical: \"bottom\",\n\t},\n\ttitle: {\n\t\tfontSize: 22,\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 24,\n\t\tmarginBottom: 20,\n\t},\n\tsubtitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tlineHeight: 24,\n\t},\n\tbody: {\n\t\tfontSize: 18,\n\t\tlineHeight: 24,\n\t\tmarginVertical: 20,\n\t},\n\tstep: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tmarginBottom: 7,\n\t},\n\trow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tmarginBottom: 20,\n\t},\n})\n","import React, { useState } from \"react\"\nimport { Image, Pressable, StyleSheet, View, FlatList, Platform, Dimensions } from \"react-native\"\nimport Colors from \"../../utils/Colors\"\nimport { Surface, Text } from \"react-native-paper\"\nimport { Button, Popup } from \"../../components/Index\"\nimport { toJS } from \"mobx\"\nimport { partStore } from \"../../utils/PartStore\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst Tool2 = ({ navigation }) => {\n\tconst [selectedItem, setSelectedItem] = useState()\n\tconst [showConfirmNoMatch, setShowConfirmNoMatch] = useState(false)\n\n\tReact.useLayoutEffect(() => {\n\t\tnavigation.setOptions({\n\t\t\theaderRight: () => (\n\t\t\t\t navigation.navigate(\"TabStack\")} style={{ marginRight: 10 }}>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t})\n\t}, [navigation])\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tStep 2 of 3 \n\t\t\t\tDetermine Thread Pitch\n\t\t\t\tThread pitch stamped on gauge.\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t item.pitch}\n\t\t\t\t\trenderItem={({ item }) => (\n\t\t\t\t\t\t setSelectedItem(item)} style={styles.row}>\n\t\t\t\t\t\t\t{item.pitch ? item.pitch : item}\n\n\t\t\t\t\t\t\t{selectedItem?.pitch === item.pitch && }\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\n\t\t\t {\n\t\t\t\t\tif (selectedItem === \"No Match\") {\n\t\t\t\t\t\tsetShowConfirmNoMatch(true)\n\t\t\t\t\t} else navigation.navigate(\"Tool3\", { selectedItem })\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{showConfirmNoMatch && (\n\t\t\t\t navigation.navigate(\"TabStack\")}\n\t\t\t\t\tcancelAction={() => setShowConfirmNoMatch(false)}\n\t\t\t\t\tcloseButtonTitle=\"Ok\"\n\t\t\t\t\tcancelButtonTitle=\"Cancel\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default Tool2\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpadding: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\ttitle: {\n\t\tfontSize: 22,\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 24,\n\t},\n\tsubtitle: {\n\t\tfontSize: 16,\n\t\tlineHeight: 24,\n\t\tmarginBottom: 20,\n\t},\n\tbody: {\n\t\tfontSize: 18,\n\t\tlineHeight: 24,\n\t\tmarginVertical: 20,\n\t},\n\tstep: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tmarginBottom: 7,\n\t},\n\trow: {\n\t\tborderBottomColor: Colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tmarginLeft: 20,\n\t\tpaddingVertical: 17,\n\t\tflexDirection: \"row\",\n\t\tpaddingRight: 15,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n\tlistContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: Colors.white,\n\t\tmarginBottom: 20,\n\t\tmarginTop: 20,\n\t},\n})\n","import React, { useState } from \"react\"\nimport { Image, Pressable, StyleSheet, View, FlatList, Platform, Dimensions } from \"react-native\"\nimport Colors from \"../../utils/Colors\"\nimport { Surface, Text } from \"react-native-paper\"\nimport { Button, Popup } from \"../../components/Index\"\nimport { toJS } from \"mobx\"\nimport { partStore } from \"../../utils/PartStore\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst Tool3 = ({ navigation, route }) => {\n\t//const step2Selection = route.params.selectedItem\n\tconst [selectedItem, setSelectedItem] = useState()\n\tconst [showConfirmNoMatch, setShowConfirmNoMatch] = useState(false)\n\n\tReact.useLayoutEffect(() => {\n\t\tnavigation.setOptions({\n\t\t\theaderRight: () => (\n\t\t\t\t navigation.navigate(\"TabStack\")} style={{ marginRight: 10 }}>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t})\n\t}, [navigation])\n\n\tconsole.log(toJS(partStore.threadIdentification))\n\tconsole.log(toJS(route.params.selectedItem))\n\n\tconst endType = route.params.selectedItem?.endTypeSizes[0]?.endType\n\tlet column1 = endType.isPipe ? \"PROFILE\" : \"TUBE SIZE\"\n\tlet column2 = endType.isPipe || endType.isTube ? \"THREAD OD\" : \"\"\n\tif (!endType.isPipe && !endType.isTube) {\n\t\tcolumn1 = \"THREAD OD\"\n\t\tcolumn2 = \"\"\n\t}\n\n\tlet selectedThreadSize = \"Select a Size\"\n\tif (selectedItem) {\n\t\tconsole.log(toJS(selectedItem))\n\t\tselectedThreadSize = selectedItem.thread ? `${selectedItem.thread} Profile ` : \"\"\n\t\tselectedThreadSize += selectedItem.outsideDiameterInches ? `${selectedItem.outsideDiameterInches} OD ` : \"\"\n\t\tselectedThreadSize += selectedItem.outsideDiameterMillimeters\n\t\t\t? `${selectedItem.outsideDiameterMillimeters} OD `\n\t\t\t: \"\"\n\t\tselectedThreadSize += selectedItem.dash ? `-${selectedItem.dash} Dash` : \"\"\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tStep 3 of 3 \n\t\t\t\tDetermine Thread Size\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{column1}\n\t\t\t\t\t{column2}\n\t\t\t\t\n\t\t\t\t item.outsideDiameterInches}\n\t\t\t\t\trenderItem={({ item }) => {\n\t\t\t\t\t\tlet label1 = \"No Match\"\n\t\t\t\t\t\tlet label2 = \"\"\n\t\t\t\t\t\tif (item !== \"No Match\") {\n\t\t\t\t\t\t\tlet threadComponents = item.thread.includes(\"X\") ? item.thread.split(\"X\") : item.thread.split(\"-\")\n\t\t\t\t\t\t\tif (item.endType.isPipe) {\n\t\t\t\t\t\t\t\tlabel1 = threadComponents[0]\n\t\t\t\t\t\t\t\tlabel2 = item.threadOutsideDiameter\n\t\t\t\t\t\t\t} else if (item.endType.isTube) {\n\t\t\t\t\t\t\t\tlabel1 = item.outsideDiameterInches ? item.outsideDiameterInches : item.outsideDiameterMillimeters\n\t\t\t\t\t\t\t\tlabel2 = threadComponents[0]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlabel1 = threadComponents[0]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t setSelectedItem(item)} style={styles.row}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{label1}\n\t\t\t\t\t\t\t\t\t{label2}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{selectedItem?.id === item?.id && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t{`Thread Size: ${selectedThreadSize}`}\n\t\t\t\n\t\t\t {\n\t\t\t\t\tif (selectedItem === \"No Match\") {\n\t\t\t\t\t\tsetShowConfirmNoMatch(true)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpartStore.setPartObj(\"endSize\", selectedItem)\n\t\t\t\t\t\tif (partStore.allEndsFilledOut()) {\n\t\t\t\t\t\t\tpartStore.getMaterials().then(() => {\n\t\t\t\t\t\t\t\tlet data = partStore.materials.slice()\n\t\t\t\t\t\t\t\tnavigation.navigate(\"TabStack\")\n\t\t\t\t\t\t\t\tif (data.length === 1) {\n\t\t\t\t\t\t\t\t\tpartStore.setPartObj(\"material\", data[0])\n\t\t\t\t\t\t\t\t\tpartStore\n\t\t\t\t\t\t\t\t\t\t.getProducts()\n\t\t\t\t\t\t\t\t\t\t.then(() => navigation.push(\"FittingDetails\", { fittingScreen: partStore.nextScreen[screen] }))\n\t\t\t\t\t\t\t\t} else navigation.push(\"FittingSelection\", { fittingScreen: \"material\" })\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnavigation.navigate(\"TabStack\")\n\t\t\t\t\t\t\tnavigation.navigate(\"FittingOverview\", { fittingScreen: partStore.nextScreen[\"endSize\"] })\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{showConfirmNoMatch && (\n\t\t\t\t navigation.navigate(\"TabStack\")}\n\t\t\t\t\tcancelAction={() => setShowConfirmNoMatch(false)}\n\t\t\t\t\tcloseButtonTitle=\"Ok\"\n\t\t\t\t\tcancelButtonTitle=\"Cancel\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default Tool3\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpadding: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\ttitle: {\n\t\tfontSize: 22,\n\t\tfontWeight: \"bold\",\n\t\tlineHeight: 24,\n\t\tmarginBottom: 20,\n\t},\n\tsubtitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tlineHeight: 24,\n\t},\n\tbody: {\n\t\tfontSize: 18,\n\t\tlineHeight: 24,\n\t\tmarginVertical: 20,\n\t},\n\tstep: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tmarginBottom: 7,\n\t},\n\trow: {\n\t\tborderBottomColor: Colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tmarginLeft: 20,\n\t\tpaddingVertical: 17,\n\t\tflexDirection: \"row\",\n\t\tpaddingRight: 15,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n\tlistContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: Colors.white,\n\t\tmarginBottom: 20,\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport {\n\tStyleSheet,\n\tTextInput,\n\tView,\n\tFlatList,\n\tPressable,\n\tActivityIndicator,\n\tScrollView,\n\tImage,\n\tPlatform,\n\tDimensions, Keyboard\n} from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { Surface, Text } from \"react-native-paper\"\nimport Icon from \"react-native-vector-icons/Ionicons\"\nimport { authStore } from \"../utils/AuthStore\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport Colors from \"../utils/Colors\"\nimport { API, ParkerAPI,GoogleAPI } from \"../utils/API\"\nimport { Button, Popup } from \"../components/Index\"\nimport { navStore } from \"../utils/NavStore\"\nimport icnFavorite from '../assets/icn_more.png'; // Importing the image\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst WhereToBuy = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst [zipCode, setZipCode] = useState(\"\")\n\tconst [data, setData] = useState([])\n\tconst [favorites, setFavorites] = useState([])\n\tconst [loading, setLoading] = useState(false)\n\n\tuseEffect(() => {\n\t\tif (zipCode.length === 5) {\n\t\t\tKeyboard.dismiss(); // Force the text input to lose focus and hide the keyboard\n\t\t\tsetLoading(true)\n\t\t\tvar parseString = require(\"xml2js\").parseString\n\t\t\tGoogleAPI.getGeoCodePoint(zipCode).then((response)=>{\n\t\t\t\tlet point = `${response.data?.results[0]?.geometry?.location?.lat},${response.data?.results[0]?.geometry?.location?.lng}`\n\t\t\t\tParkerAPI.searchForDistributor(point,zipCode).then((res) => {\n\t\t\t\t\tlet results = res.data.response.premier;\n\t\t\t\t\tif(res.data.response.resultType_s !== \"NotFoundDistributor\" && res.data.response.standard){\n\t\t\t\t\t\tresults = [...results, ...res.data.response.standard];\n\t\t\t\t\t}\n\t\t\t\t\tlet uniqueResults = [];\n\t\t\t\t\tlet uniqueSet = new Set();\n\n\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\tconst uniqueKey = `${result.Name}-${result.Address}`; // Adjust according to the actual structure\n\t\t\t\t\t\tif (!uniqueSet.has(uniqueKey)) {\n\t\t\t\t\t\t\tuniqueSet.add(uniqueKey);\n\t\t\t\t\t\t\tuniqueResults.push(result);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tsetData(uniqueResults)\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t\t// (res.data.response.premier, function (err, result) {\n\t\t\t\t\t// \tif (result) {\n\t\t\t\t\t// \t\tconst distributorData = result.DistributorsList.Distributor.filter((d) => {\n\t\t\t\t\t// \t\t\tconst favObj = favorites.find((fav) => fav.distributorNumber === d.DistributorNo[0])\n\t\t\t\t\t// \t\t\treturn !favObj\n\t\t\t\t\t// \t\t})\n\t\t\t\t\t// \t\tsetData(distributorData)\n\t\t\t\t\t// \t}\n\t\t\t\t\t// \tsetLoading(false)\n\t\t\t\t\t// })\n\t\t\t\t})\n\t\t\t})\n\t\t\t// ParkerAPI.searchForDistributor(zipCode).then((res) => {\n\t\t\t// \tparseString(res.data, function (err, result) {\n\t\t\t// \t\tif (result) {\n\t\t\t// \t\t\tconst distributorData = result.DistributorsList.Distributor.filter((d) => {\n\t\t\t// \t\t\t\tconst favObj = favorites.find((fav) => fav.distributorNumber === d.DistributorNo[0])\n\t\t\t// \t\t\t\treturn !favObj\n\t\t\t// \t\t\t})\n\t\t\t// \t\t\tsetData(distributorData)\n\t\t\t// \t\t}\n\t\t\t// \t\tsetLoading(false)\n\t\t\t// \t})\n\t\t\t// })\n\t\t} else if (zipCode.length === 0) setData([])\n\t}, [zipCode, favorites])\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = navigation.addListener(\"focus\", () => {\n\t\t\tif (authStore.authenticated)\n\t\t\t\tAPI.getFavoriteDistributors(authStore.accountInfo.id).then((res) => {\n\t\t\t\t\tif (res.ok) {\n\t\t\t\t\t\tsetFavorites(res.data.collection)\n\t\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(res.data.collection))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\telse \n\t\t\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t\t\t\t\tif (favoritesData) {\n\t\t\t\t\t\tconst data = JSON.parse(favoritesData)\n\t\t\t\t\t\tsetFavorites(data)\n\t\t\t\t\t\t// if (authStore.authenticated) \n\t\t\t\t\t\t// \t{API.getFavoriteParts(authStore.accountInfo.id).then((res) => {\n\t\t\t\t\t\t// \tif (res.ok) {\n\t\t\t\t\t\t// \t\tconst favoritePart = res.data.collection.find((d) => d.name === selectedPart?.name)\n\t\t\t\t\t\t// \t\tif (favoritePart) {\n\t\t\t\t\t\t// \t\t\tsetSavedVisible(true)\n\t\t\t\t\t\t// \t\t\tsetSavedPart(favoritePart)\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// \t\tsetFavoriteParts(res.data.collection)\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// })\n\t\t\t\t\t\t\t// data.forEach((distributor) => {\n\t\t\t\t\t\t\t// \tlet data = {\n\t\t\t\t\t\t\t// \t\tdistributorNumber: distributor.DistributorNo[0],\n\t\t\t\t\t\t\t// \t\tname: distributor.Name[0],\n\t\t\t\t\t\t\t// \t\taddress: distributor.Address1[0],\n\t\t\t\t\t\t\t// \t\tcity: distributor.City[0],\n\t\t\t\t\t\t\t// \t\tstate: distributor.State[0],\n\t\t\t\t\t\t\t// \t\tzip: distributor.Zip[0],\n\t\t\t\t\t\t\t// \t\tphone: distributor.Phone[0],\n\t\t\t\t\t\t\t// \t\tfax: distributor.Fax[0],\n\t\t\t\t\t\t\t// \t\temail: distributor.Email[0],\n\t\t\t\t\t\t\t// \t\tnotes: \"\",\n\t\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t\t// \tAPI.createFavoriteDistributor(authStore.accountInfo.id, data)\n\t\t\t\t\t\t\t// })\n\t\t\t\t\t\t\t// AsyncStorage.setItem(\"favorites\", \"\")\n\t\t\t\t\t\t//}\n\t\t\t\t\t}else{\n\t\t\t\t\t\t\n\t\t\t\t\t\tsetFavorites([])\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t\treturn unsubscribe\n\t}, [navigation])\n\tconst handleScroll = () => {\n\t\tKeyboard.dismiss(); // Force the text input to lose focus and hide the keyboard\n\t };\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{Platform.OS === \"web\" &&(\n\t\t\t\t performSearch()} />\n\t\t\t)}\n\t\t\t{loading && }\n\n\t\t\t\n\t\t\t\t item.id}\n\t\t\t\t\trenderItem={({ item }) => {\n\t\t\t\t\t\tconst isFavorite = favorites.find((d) => d.distributorNumber === item.distributorNumber)\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t navigation.navigate(\"DistributorDetails\", { item })} style={styles.resultRow}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{(item.id || isFavorite) && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.id || isFavorite ? item.name : item.Name}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{item.id || isFavorite ? `${item.city}, ${item.state}` : `${item.City}, ${item.State}`}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t)\n}\n\nexport default WhereToBuy\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpaddingHorizontal: 30,\n\t\tpaddingVertical: 20,\n\t\tbackgroundColor: Platform.OS !== \"web\" ? Colors.backgroundGrey : Colors.transparent,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tsearchBar: {\n\t\tbackgroundColor: Colors.white,\n\t\tflexDirection: \"row\",\n\t\tborderRadius: 30,\n\t\tpadding: 10,\n\t\tcolor: Colors.black,\n\t},\n\tinput: {\n\t\tflex: 1,\n\t\tpaddingLeft: 15,\n\t},\n\tresults: {\n\t\tmarginTop: 25,\n\t\tpaddingLeft: 10,\n\t},\n\tresultRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tpaddingVertical: 20,\n\t\tpaddingRight: 10,\n\t\tborderBottomColor: Colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t},\n\titemTitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 18,\n\t},\n\titemSubtitle: {\n\t\tfontSize: 12,\n\t\tfontWeight: \"500\",\n\t\tcolor: Colors.mediumGrey,\n\t},\n})\n","import React, { useEffect, useState, useRef } from \"react\"\nimport { StyleSheet, Text, Pressable, View, Linking, Dimensions, Image, TextInput,Platform } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport Icon from \"react-native-vector-icons/Feather\"\nimport SimpleIcon from \"react-native-vector-icons/SimpleLineIcons\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport {analyticsStore} from \"../utils/AnalyticsStore\"\nimport * as Animatable from \"react-native-animatable\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { API } from \"../utils/API\"\nimport Colors from \"../utils/Colors\"\nimport { KeyboardAwareScrollView } from \"react-native-keyboard-aware-scroll-view\"\nimport { TouchableOpacity } from \"react-native-gesture-handler\"\nimport { Clipboard } from \"react-native\"\nimport PhoneNumber from 'libphonenumber-js';\nimport { Button, Popup } from \"../components/Index\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst DistributorDetails = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst [isFavorite, setIsFavorite] = useState(route.params?.item.id ? true : false)\n\tconst [distributor, setDistributor] = useState(route.params?.item)\n\tconst [notes, setNotes] = useState(\"\")\n\tconst refContainer = useRef(null)\n\tconst [changesSaved, setChangesSaved] = useState(false)\n\t//alert(number.formatNational())\n\tconst location_name = distributor.name ? distributor.name : distributor.Name\n\tconsole.log(JSON.stringify(distributor))\n\t// React.useEffect(\n\t// \t() =>\n\t// \t navigation.addListener('beforeRemove', (e) => {\n\t// \t\tif(isFavorite){\n\t// \t\t\te.preventDefault();\n\t// \t\t\tlet data = {\n\t// \t\t\t\t...distributor,\n\t// \t\t\t\tnotes,\n\t// \t\t\t}\n\t// \t\t\tif (authStore.authenticated) {\n\t// \t\t\t\tAPI.updateFavoriteDistributor(authStore.accountInfo.id, data).then((res) => {\n\t// \t\t\t\t\t//if (res.ok) setDistributor(res.data.model)\n\t// \t\t\t\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t// \t\t\t\t\t\tif (favoritesData) {\n\t// \t\t\t\t\t\t\tconst distributorNumber = distributor.distributorNumber\n\t// \t\t\t\t\t\t\t\t? distributor.distributorNumber\n\t// \t\t\t\t\t\t\t\t: distributor.DistributorNo[0]\n\t// \t\t\t\t\t\t\tconst favorites = JSON.parse(favoritesData)\n\t// \t\t\t\t\t\t\tconst favObj = favorites.find((d) => d.distributorNumber === distributorNumber)\n\t// \t\t\t\t\t\t\tif (favObj) {\n\t// \t\t\t\t\t\t\t\tfavObj.notes = notes\n\t// \t\t\t\t\t\t\t\tfavObj.synced = true\n\t// \t\t\t\t\t\t\t}\n\t// \t\t\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(favorites))\n\t// \t\t\t\t\t\t\tnavigation.dispatch(e.data.action)\n\t// \t\t\t\t\t\t} else {\n\t// \t\t\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify([data]))\n\t// \t\t\t\t\t\t\tnavigation.dispatch(e.data.action)\n\t// \t\t\t\t\t\t}\n\t// \t\t\t\t\t})\n\t// \t\t\t\t})\n\t// \t\t\t} else {\n\t// \t\t\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t// \t\t\t\t\tif (favoritesData) {\n\t// \t\t\t\t\t\tconst distributorNumber = distributor.distributorNumber\n\t// \t\t\t\t\t\t\t? distributor.distributorNumber\n\t// \t\t\t\t\t\t\t: distributor.DistributorNo[0]\n\t// \t\t\t\t\t\tconst favorites = JSON.parse(favoritesData)\n\t// \t\t\t\t\t\tconst favObj = favorites.find((d) => d.distributorNumber === distributorNumber)\n\t// \t\t\t\t\t\tif (favObj) {\n\t// \t\t\t\t\t\t\tfavObj.notes = notes\n\t// \t\t\t\t\t\t\tfavObj.synced = true\n\t// \t\t\t\t\t\t}\n\t// \t\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(favorites))\n\t// \t\t\t\t\t\tnavigation.dispatch(e.data.action)\n\t// \t\t\t\t\t} else {\n\t// \t\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify([data]))\n\t// \t\t\t\t\t\tnavigation.dispatch(e.data.action)\n\t// \t\t\t\t\t}\n\t// \t\t\t\t})\n\t// \t\t\t}\n\t// \t\t}\n\t// \t }),\n\t// \t[navigation]\n\t// );\n\tconst toggleSave = () => {\n\t\tif (isFavorite) refContainer.current.fadeOut()\n\n\t\tif (!isFavorite) {\n\t\t\tconsole.log(\"Saving\")\n\t\t\t// save\n\t\t\tlet data = {\n\t\t\t\tdistributorNumber: distributor.distributorNumber ? distributor.distributorNumber : distributor.DistributorNo[0],\n\t\t\t\tname: distributor.name ? distributor.name : distributor.Name,\n\t\t\t\taddress: distributor.address ? distributor.address : distributor.Address1,\n\t\t\t\tcity: distributor.city ? distributor.city : distributor.City,\n\t\t\t\tstate: distributor.state ? distributor.state : distributor.State,\n\t\t\t\tzip: distributor.zip ? distributor.zip : distributor.Zip,\n\t\t\t\tphone: distributor.phone ? distributor.phone : distributor.Phone,\n\t\t\t\tfax: distributor.fax ? distributor.fax : distributor.Fax,\n\t\t\t\temail: distributor.email ? distributor.email : distributor.Email,\n\t\t\t\tdistance:distributor.distance?distributor.distance:distributor.Distance,\n\t\t\t\tdistanceMarker:distributor.distanceUOM?distributor.distanceUOM:distributor.DistanceUOM,\n\t\t\t\tnotes,\n\t\t\t}\n\t\t\tif (authStore.authenticated)\n\t\t\t\tAPI.createFavoriteDistributor(authStore.accountInfo.id, data).then((res) => {\n\t\t\t\t\t//if (res.ok) setDistributor(res.data.model)\n\t\t\t\t})\n\t\t\telse {\n\t\t\t\tdata.synced = false\n\t\t\t}\n\t\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t\t\t\tif (favoritesData) {\n\t\t\t\t\tconst favorites = JSON.parse(favoritesData)\n\n\t\t\t\t\tfavorites.push(data)\n\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(favorites))\n\t\t\t\t} else {\n\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify([data]))\n\t\t\t\t}\n\t\t\t})\n\n\n\t\t\tanalyticsStore.logEvent(\"location_favorite\",{location_name:location_name})\n\t\t} else {\n\t\t\tif (authStore.authenticated) API.deleteFavoriteDistributor(authStore.accountInfo.id, { id: distributor.id })\n\n\t\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t\t\t\tif (favoritesData) {\n\t\t\t\t\tlet distNo = (!distributor.DistributorNo?distributor.distributorNumber:distributor.DistributorNo[0]);\n\t\t\t\t\tlet deleted = JSON.parse(favoritesData).filter(\n\t\t\t\t\t\t(d) => d.distributorNumber === distNo\n\t\t\t\t\t)\n\t\t\t\t\tlet favorites = JSON.parse(favoritesData).filter(\n\t\t\t\t\t\t(d) => d.distributorNumber !== distNo\n\t\t\t\t\t)\n\t\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(favorites))\n\t\t\t\t\tif(!authStore.authenticated){\n\t\t\t\t\t\tAsyncStorage.getItem(\"deletedFavorites\").then((deletedFavorites) => {\n\t\t\t\t\t\t\tlet data = (deletedFavorites===null || deletedFavorites===''?[]:JSON.parse(deletedFavorites))\n\t\t\t\t\t\t\tdata.push(deleted);\n\t\t\t\t\t\t\tAsyncStorage.setItem(\"deletedFavorites\", JSON.stringify(data))\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t}\n\n\t\tsetIsFavorite(!isFavorite)\n\t}\n\n\tuseEffect(() => {\n\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t\t\tif (favoritesData) {\n\t\t\t\tconst data = JSON.parse(favoritesData)\n\t\t\t\tconst favObj = data.find((d) => d.distributorNumber === distributor.distributorNumber)\n\t\t\t\tsetIsFavorite(favObj)\n\t\t\t\tsetNotes(favObj.notes)\n\t\t\t}\n\n\t\t\tconst location_name = distributor.name ? distributor.name : distributor.Name\n\t\t\tanalyticsStore.logEvent(\"location_viewdetails\",{location_name:location_name})\n\t\t})\n\t\tif (distributor.notes) setNotes(distributor.notes)\n\t}, [distributor])\n\n\tuseEffect(() => {\n\t\tif(notes.length > 3){\n\t\t\tendEditing();\n\t\t}\n\t}, [notes])\n\n\tconst endEditing = () => {\n\t\tlet data = {\n\t\t\t...distributor,\n\t\t\tnotes,\n\t\t}\n\t\tif (authStore.authenticated) {\n\t\t\tAPI.updateFavoriteDistributor(authStore.accountInfo.id, data).then((res) => {\n\t\t\t\t//if (res.ok) setDistributor(res.data.model)\n\t\t\t})\n\t\t} \n\t\tAsyncStorage.getItem(\"favorites\").then((favoritesData) => {\n\t\t\tif (favoritesData) {\n\t\t\t\tconst distributorNumber = distributor.distributorNumber\n\t\t\t\t\t? distributor.distributorNumber\n\t\t\t\t\t: distributor.DistributorNo[0]\n\t\t\t\tconst favorites = JSON.parse(favoritesData)\n\t\t\t\tconst favObj = favorites.find((d) => d.distributorNumber === distributorNumber)\n\t\t\t\tif (favObj) {\n\t\t\t\t\tfavObj.notes = notes\n\t\t\t\t\tfavObj.synced = true\n\t\t\t\t}\n\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify(favorites))\n\t\t\t} else {\n\t\t\t\tAsyncStorage.setItem(\"favorites\", JSON.stringify([data]))\n\t\t\t}\n\t\t})\n\t}\n\tconst formatPhoneNumber = (number) => {\n\t\tconsole.log(number)\n\t\ttry {\n\t\t\tif (typeof number === \"string\") {\n\t\t\t\treturn PhoneNumber(number, 'US').formatNational()\n\t\t\t}\n\t\t\treturn PhoneNumber(number[0], 'US').formatNational()\n\t\t} catch (err) {\n\t\t\treturn ''\n\t\t}\n\n\n\n\n\t}\n\treturn (\n\t\t\n\n\t\t\t{distributor.name ? distributor.name : distributor.Name}\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tconsole.log('map press event')\n\t\t\t\t\t\tconst scheme = Platform.select({ ios: \"maps:0,0?q=\", android: \"geo:0,0?q=\" })\n\t\t\t\t\t\tconst addr = distributor.address\n\t\t\t\t\t\t\t? `${distributor.address},${distributor.city},${distributor.state} ${distributor.zip}`\n\t\t\t\t\t\t\t: `${distributor.Address1},${distributor.City},${distributor.State} ${distributor.Zip}`\n\n\t\t\t\t\t\t//await Linking.openURL(`${scheme}${addr}`)\n\t\t\t\t\t\tconst destination = encodeURIComponent(`${addr}`); \n\t\t\t\t\t\tconst provider = Platform.OS === 'ios' ? 'apple' : 'google'\n\t\t\t\t\t\tconst link = `http://maps.${provider}.com/?daddr=${destination}`;\n\t\t\t\t\t\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst supported = await Linking.canOpenURL(link);\n\t\t\t\t\t\n\t\t\t\t\t\t\tif (supported) Linking.openURL(link);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.log(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanalyticsStore.logEvent(\"location_mapit\",{location_name:location_name})\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\tMAP IT\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{(Platform.OS===\"ios\" || Platform.OS === \"android\") &&(\n\t\t\t\t\t {\n\t\t\t\t\t\tconst phone = distributor.phone ? distributor.phone : distributor.Phone\n\t\t\t\t\t\tLinking.openURL(`tel:${phone}`)\n\t\t\t\t\t\tanalyticsStore.logEvent(\"location_call\",{location_name:location_name})\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\tCALL\n\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t{changesSaved && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{distributor.name ? distributor.name : distributor.Name} address copied\n\t\t\t\t\n\t\t\t)}\n\t\t\t {\n\t\t\t\tconst addr = distributor.address\n\t\t\t\t\t? `${distributor.address},${distributor.city},${distributor.state} ${distributor.zip}`\n\t\t\t\t\t: `${distributor.Address1},${distributor.City},${distributor.State} ${distributor.Zip}`\n\t\t\t\tClipboard.setString(addr)\n\t\t\t\tsetChangesSaved(true)\n\t\t\t}}>\n\t\t\t\t{distributor.address ? distributor.address : distributor.Address1}\n\t\t\t\t{distributor.address2?.trim() ||\n\t\t\t\t\t((distributor.Address2) && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{distributor.address2 ? distributor.address2 : distributor.Address2}\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t\t\t{distributor.city\n\t\t\t\t\t\t? `${distributor.city}, ${distributor.state} ${distributor.zip}`\n\t\t\t\t\t\t: `${distributor.City}, ${distributor.State} ${distributor.Zip}`}\n\t\t\t\t\n\t\t\t\n\t\t\t{(distributor.phone || (distributor.Phone)) && (\n\t\t\t\t{`Phone: ${distributor.phone ? formatPhoneNumber(distributor.phone) : formatPhoneNumber(distributor.Phone)\n\t\t\t\t\t}`}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{(distributor.distance || (distributor.Distance)) && (\n\t\t\t{`Distance: ${distributor.distance ? Math.ceil(distributor.distance) : Math.ceil(distributor.Distance) \n\t\t\t\t\t} miles`}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* {(distributor.distance?.trim().length > 1 || (distributor.Distance && distributor.Distance.every(item => item.trim().length > 1))) && (\n\t\t\t\t{`Distance: ${distributor.distance ?distributor.distance: distributor.Distance} ${distributor.distanceMarker ?distributor.distanceMarker: distributor.DistanceUOM}`}\n\t\t\t)} */}\n\t\t\t toggleSave()} style={styles.favoriteButton}>\n\t\t\t\t{!isFavorite && }\n\t\t\t\t{isFavorite && }\n\t\t\t\t{isFavorite ? \"REMOVE FAVORITE\" : \"FAVORITE\"}\n\t\t\t\n\n\t\t\t{isFavorite && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\n\t)\n}\n\nexport default DistributorDetails\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpaddingHorizontal: 30,\n\t\tpaddingTop: 20,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tactionRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tmarginVertical: 20,\n\t},\n\tactionButton: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tflex: 1,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t},\n\tactionText: {\n\t\tcolor: Colors.white,\n\t\tmarginLeft: 10,\n\t\tfontWeight: \"500\",\n\t},\n\talertContainer: {\n\t\tbackgroundColor: \"#E6EEDD\",\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderColor: \"#92CB51\",\n\t\tborderWidth: 1,\n\t},\n\talertText: {\n\t\tcolor: \"#729E3E\",\n\t\tfontWeight: \"bold\",\n\t\tmarginLeft: 10,\n\t},\n\tdistributorTitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 28,\n\t},\n\tdistributorBody: {\n\t\tfontSize: 20,\n\t\tlineHeight: 30,\n\t\tfontWeight: \"500\",\n\t},\n\tfavoriteButton: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t\twidth: 220,\n\t\tmarginTop: 20,\n\t},\n\tfavoriteIcon: {\n\t\tbackgroundColor: \"#E0E1E2\",\n\t\twidth: 44,\n\t\theight: 44,\n\t\tborderRadius: 22,\n\t},\n\tfavoriteText: {\n\t\tcolor: Colors.white,\n\t\tmarginLeft: 10,\n\t\tfontWeight: \"500\",\n\t},\n\tinput: {\n\t\tmarginTop: 20,\n\t\tcolor: Colors.darkGrey,\n\t\tbackgroundColor: \"#E1E2E3\",\n\t\tpadding: 15,\n\t\tborderRadius: 5,\n\t\tmarginBottom: 20,\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport { Pressable, StyleSheet, Text, View, Image, Platform, Dimensions, Linking } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { observer } from \"mobx-react-lite\"\nimport { Button, Popup } from \"../components/Index\"\nimport Colors from \"../utils/Colors\"\nimport Constants from \"expo-constants\"\nimport { signIn, signOut,getAccessToken, refreshTokens } from '@okta/okta-react-native';\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport * as LocalAuthentication from \"expo-local-authentication\"\nimport * as SecureStore from \"expo-secure-store\"\nimport { navStore } from \"../utils/NavStore\"\nimport oktaAuth from '../auth.config';\nimport jwtDecode from 'jwt-decode';\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst Account = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst [accountCreated, setAccountCreated] = useState(route.params?.accountCreated)\n\tconst [accountDeleted, setAccountDeleted] = useState(route.params?.accountDeleted)\n\tconst [showNoAccount, setShowNoAccount] = useState(false)\n\tconst [faceID, setFaceID] = useState(true)\n\tconst [faceIDSuccess, setFaceIDSuccess] = useState(false)\n const [loginAttempts, setLoginAttempts] = useState(0)\n\tauthStore.isCreateAccount = false;\n\tconst navigate = (screen) => {\n\t\tnavigation.navigate(screen)\n\t\tnavigation.setParams({ accountCreated: false, accountDeleted: false })\n\t\tsetAccountCreated(false)\n\t\tsetAccountDeleted(false)\n\t}\n\tuseEffect(() => {\n\t\tif (authStore.noAccount === true) {\n\t\t\tsetShowNoAccount(true)\n\n\t\t}\n\t}, [authStore.noAccount])\n\tuseEffect(() => {\n\t\t//if (faceIDSuccess)\n\t}, [faceIDSuccess])\n\n\tuseEffect(() => {\n\n\t\tasync function fetchData() {\n\t\t\ttry {\n\t\t\t\tconst token = await getSecureValueFor(\"savedToken\")\n\t\t\t\tAsyncStorage.getItem(\"faceID\").then((faceIDStr) => {\n\t\t\t\t\tconsole.log(faceIDStr)\n\t\t\t\t\tlet faceIDObj = JSON.parse(faceIDStr)\n\t\t\t\t\tlet tokenObj = JSON.parse(token)\n\t\t\t\t\tif (faceIDObj?.faceID) {\n\t\t\t\t\t\tcheckFaceID(tokenObj)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\t// Handle any errors that occur during the getItemAsync call\n\t\t\t\tconsole.log('Error retrieving data from SecureStore:', error);\n\t\t\t}\n\n\t\t}\n\t\tif (Platform.OS !== \"web\" && !authStore.authenticated) fetchData()\n\t}, [])\n\tconst getSecureValueFor = async (key) => {\n\t\treturn await SecureStore.getItemAsync(key)\n\t}\n\tconst checkFaceID = async (token) => {\n\t\ttry {\n\t\t\t// Checking if device is compatible\n\t\t\tconst isCompatible = await LocalAuthentication.hasHardwareAsync()\n\n\t\t\tif (!isCompatible) {\n\t\t\t\tthrow new Error(\"Your device isn't compatible.\")\n\t\t\t}\n\n\t\t\t// Checking if device has biometrics records\n\t\t\tconst isEnrolled = await LocalAuthentication.isEnrolledAsync()\n\n\t\t\tif (!isEnrolled) {\n\t\t\t\tthrow new Error(\"No Faces / Fingers found.\")\n\t\t\t}\n\n\t\t\t// Authenticate user\n\t\t\tconst result = await LocalAuthentication.authenticateAsync({ disableDeviceFallback: false })\n\n\t\t\t//console.log(result.success)\n\t\t\tif (result.success) {\n\t\t\t\tlet _token = JSON.parse(token);\n\t\t\t\t//var refreshToken = await refreshTokens();\n\t\t\t\tconst decodedToken = jwtDecode(_token.access_token);\n\t\t\t\tconst expirationTimeInSeconds = decodedToken.exp;\n\n\t\t\t\t// Convert expiration time to milliseconds\n\t\t\t\tconst expirationTimeInMilliseconds = expirationTimeInSeconds * 1000;\n\n\t\t\t\t// Create a Date object\n\t\t\t\tconst expirationDate = new Date(expirationTimeInMilliseconds);\n\t\t\t\tif(expirationDate< new Date()){\n\t\t\t\t\t_token = await refreshTokens();\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tauthStore.signInSuccess(-1, '', _token)\n\t\t\t\tsetFaceIDSuccess(true)\n\t\t\t\tauthStore.syncLocalData(authStore.accountInfo.id)\n\n\n\n\t\t\t}\n\n\t\t} catch (error) {\n\t\t\t// Error\n\t\t\tconsole.log(\"error\", error)\n\t\t}\n\t}\n\tconst submitSignin = async () => {\n\t\t\n\t\tif(Platform.OS === \"web\"){\n\t\t\t\n\t\t\toktaAuth.oktaAuth.signInWithRedirect();\n\t\t}else{\n\t\t\tAsyncStorage.getItem(\"faceID\").then(async (faceIDStr) => {\n\t\t\t\tconst token = await getSecureValueFor(\"savedToken\")\n\t\t\t\tconsole.log(faceIDStr)\n\t\t\t\tlet faceIDObj = JSON.parse(faceIDStr)\n\t\t\t\tlet tokenObj = JSON.parse(token)\n\t\t\t\tif (faceIDObj?.faceID) {\n\t\t\t\t\tcheckFaceID(tokenObj)\n\t\t\t\t} else {\n\t\t\t\t\tawait signIn();\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\t\n\t}\n\treturn (\n\t\t\n\t\t\t{accountCreated && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tYour account has been created!\n\t\t\t\t\n\t\t\t)}\n\t\t\t{accountDeleted && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tYour account has been deleted\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t{authStore.authenticated && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t navigate(\"Settings\")}>\n\t\t\t\t\t\t\tSettings\n\t\t\t\t\t\t\n\t\t\t\t\t\t navigate(\"SavedProducts\")}>\n\t\t\t\t\t\t\tSaved Products\n\t\t\t\t\t\t\n\t\t\t\t\t>\n\t\t\t\t)}\n\t\t\t\t{/* navigate(\"Contact\")}>\n\t\t\t\t\tContact Us\n\t\t\t\t */}\n\t\t\t\t {\n\t\t\t\t\t\tif (Platform.OS === \"web\")\n\t\t\t\t\t\t\tLinking.openURL(\n\t\t\t\t\t\t\t\t\"https://www.parker.com/us/en/privacy-policies.html\"\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tnavigate(\"Privacy\")\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tPrivacy\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (Platform.OS === \"web\")\n\t\t\t\t\t\t\tLinking.openURL(\n\t\t\t\t\t\t\t\t\"https://www.parker.com/us/en/terms-and-conditions.html\"\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tnavigate(\"Terms\")\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tTerms & Conditions\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\tif (Platform.OS === \"web\")\n\t\t\t\t\t\tLinking.openURL(\n\t\t\t\t\t\t\t\"https://www.parker.com/us/en/safety.html\"\n\t\t\t\t\t\t)\n\t\t\t\t\telse\n\t\t\t\t\t\tnavigate(\"Safety\")\n\n\t\t\t\t}}>\n\n\t\t\t\t\tSafety Guide\n\t\t\t\t\n\t\t\t\t{/* navigate(\"About\")}>\n\t\t\t\t\tAbout\n\t\t\t\t */}\n\t\t\t\n\t\t\t{/* */}\n\t\t\t{!authStore.authenticated && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tYou are currently using the app as a guest. If you would like to save parts, you will need to log in or create an\n\t\t\t\t\t\taccount.\n\t\t\t\t\t\n\t\t\t\t\t navigate(\"CreateAccount\")} />\n\t\t\t\t\t await submitSignin()} />\n\t\t\t\t\n\t\t\t)}\n\t\t\t{authStore.authenticated && (\n\t\t\t\t {\n\t\t\t\t\t\tauthStore.logout()\n\t\t\t\t\t\tsetAccountCreated(false)\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\tVersion: {Constants.manifest.version} ({(Platform.OS == \"ios\" ? Constants.manifest.ios.buildNumber : Platform.OS == \"android\" ? Constants.manifest.android.versionCode : Constants.manifest.buildNumber)})\n\t\t\t{showNoAccount && (\n\t\t\t\t { setShowNoAccount(false); authStore.noAccount = false; navigate(\"CreateAccount\") }}\n\t\t\t\t\tcancelAction={() => { setShowNoAccount(false); authStore.noAccount = false }}\n\t\t\t\t\tcloseButtonTitle=\"Yes, Create Account\"\n\t\t\t\t\tcancelButtonTitle=\"Cancel\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default observer(Account)\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: Platform.OS === \"web\"?0:1,\n\t\tpaddingHorizontal: 30,\n\t\tpaddingBottom: 20,\n\t\tbackgroundColor: Platform.OS !== \"web\" ? Colors.backgroundGrey : Colors.transparent,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tmenuItem: {\n\t\tfontWeight: \"600\",\n\t\tfontSize: 22,\n\t\tmarginVertical: 15,\n\t},\n\tcreatedContainer: {\n\t\tbackgroundColor: \"#E6EEDD\",\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderColor: \"#92CB51\",\n\t\tborderWidth: 1,\n\t},\n\tcreatedText: {\n\t\tcolor: \"#729E3E\",\n\t\tfontWeight: \"bold\",\n\t\tmarginLeft: 10,\n\t},\n\tinfo: {\n\t\ttextAlign: \"center\",\n\t\tmarginBottom: 10,\n\t},\n})\n","import React, { useState, useEffect } from \"react\"\nimport { StyleSheet, Text, View, ScrollView, Pressable, Image, Platform, Dimensions, Linking } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { TextInput, Switch } from \"react-native-paper\"\nimport { Button, Popup } from \"../components/Index\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { observer } from \"mobx-react-lite\"\nimport Colors from \"../utils/Colors\"\nimport { API } from \"../utils/API\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport { navStore } from \"../utils/NavStore\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst Settings = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\t//const [email, setEmail] = useState(authStore.accountInfo.email)\n\tconst [password, setPassword] = useState()\n\tconst [confirmPassword, setConfirmPassword] = useState()\n\tconst [disabled, setDisabled] = useState(false)\n\tconst [changesSaved, setChangesSaved] = useState(false)\n\tconst [showConfirmDelete, setShowConfirmDelete] = useState(false)\n\n\tconst [faceID, setFaceID] = useState(false)\n\n\tconst [allowEmailUpdates, setEmailUpdates] = useState(authStore.accountInfo.allowEmailUpdates)\n\tconst [allowAppNotifications, setNotifications] = useState(authStore.accountInfo.allowAppNotifications)\n\n\tconst [error, setError] = useState(null)\n\n\tReact.useLayoutEffect(() => {\n\t\tnavigation.setOptions({\n\t\t\theaderRight: () => (\n\t\t\t\t submit()} title=\"Save\" style={{ paddingBottom: 10 }} />\n\t\t\t),\n\t\t})\n\t}, [navigation, allowEmailUpdates, allowAppNotifications, faceID, confirmPassword])\n\n\t// useEffect(() => {\n\t// \tsetDisabled(!email || !password)\n\t// }, [email, password])\n\n\tuseEffect(() => {\n\t\tAsyncStorage.getItem(\"faceID\").then((faceIDStr) => {\n\t\t\tlet faceIDObj = JSON.parse(faceIDStr)\n\t\t\tif (faceIDObj.faceID) setFaceID(true)\n\t\t})\n\t}, [])\n\n\tconst deleteAccount = () => {\n\t\tsetShowConfirmDelete(false)\n\t\tAPI.deleteAccount({ accountId: authStore.accountInfo.id }).then((res) => {\n\t\t\t\n\t\t\tAsyncStorage.removeItem(\"tokenObject\")\n\t\t\tAsyncStorage.removeItem(\"faceID\")\n\t\t\t\n\t\t\tauthStore.logout()\n\t\t\tnavigation.popToTop()\n\t\t\tnavigation.replace(\"Account\", { accountDeleted: true })\n\t\t})\n\t}\n\n\tconst submit = () => {\n\t\tsetChangesSaved(false)\n\t\tlet data = { allowEmailUpdates, allowAppNotifications, id: authStore.accountInfo.id }\n\t\t// let re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n\t\t// if (!re.test(email)) {\n\t\t// \tsetError({ title: \"Sorry,\", body: \"The email address you entered is not a valid email address\" })\n\t\t// \treturn;\n\t\t// }\n\t\t\n\t\t//setConfirmPassword(confirmPassword)\n\t\t// if (password && password !== confirmPassword) {\n\t\t// \tsetError({ title: \"Sorry,\", body: \"The passwords you entered do not match.\" })\n\t\t// \treturn;\n\t\t// } else if (password && password === confirmPassword) {\n\t\t// \tdata.password = password\n\t\t// }\n\n\t\tAPI.updateAccount(data).then((res) => {\n\t\t\tif (res.ok) {\n\t\t\t\tsetChangesSaved(true)\n\t\t\t\tauthStore.accountInfo = res.data.model\n\t\t\t}else{\n\t\t\t\tsetError({ title: \"Sorry,\", body:\"There was a issue updating your account settings\" })\n\t\t\t\t//setError({ title: \"Sorry,\", body: res.data?.errorMessage })\n\t\t\t}\n\t\t})\n\n\t\tAsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n\t}\n\tconst onConfirmPasswordChange = (text) => {\n\t\tconsole.log(text)\n\t\tsetConfirmPassword(text)\n\t};\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{changesSaved && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tYour changes have been saved\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{/* setEmail(text.toLowerCase().trim())}\n\t\t\t\t\ttextContentType=\"emailAddress\"\n\t\t\t\t\tautoCompleteType=\"email\"\n\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\tstyle={styles.textField}\n\t\t\t\t/>\n\t\t\t\t { {setPassword(text); }}}\n\t\t\t\t secureTextEntry\n\t\t\t\t\ttextContentType=\"password\"\n\t\t\t\t\tautoCompleteType=\"password\"\n\t\t\t\t\tclearTextOnFocus\n\t\t\t\t\tstyle={styles.textField}\n\t\t\t\t/>\n\t\t\t\t { setConfirmPassword(text);}}\n\t\t\t\t\tsecureTextEntry\n\t\t\t\t\ttextContentType=\"password\"\n\t\t\t\t\tautoCompleteType=\"password\"\n\t\t\t\t\tclearTextOnFocus\n\t\t\t\t\tstyle={[styles.textField]}\n\t\t\t\t/> */}\n\t\t\t\t{Platform.OS !== \"web\" && (\n\t\t\t\t\t\n\t\t\t\t\t{Platform.OS === \"iOs\"?\"Use Face ID\":\"Use Face Unlock or Fingerprint\"}\n\t\t\t\t\t setFaceID(!faceID)} />\n\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\tWould you like to receive new product updates from Parker?\n\t\t\t\t\t\n\t\t\t\t\t\tEmail Updates\n\t\t\t\t\t\t setEmailUpdates(!allowEmailUpdates)} />\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tApp Notifications\n\t\t\t\t\t\t setNotifications(!allowAppNotifications)} />\n\t\t\t\t\t\n\t\t\t\t\t Linking.openURL(\n\t\t\t\t\t\t\"https://parker.com/us/en/sign-in-help.html\"\n\t\t\t\t\t)}>\n\t\t\t\t\t\tManage Account\n\t\t\t\t\t\n\t\t\t\t\t setShowConfirmDelete(true)}>\n\t\t\t\t\t\tDelete Account\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{error && {setError(null);setError(null)} } />}\n\t\t\t\n\t\t\t{showConfirmDelete && (\n\t\t\t\t deleteAccount()}\n\t\t\t\t\tcancelAction={() => setShowConfirmDelete(false)}\n\t\t\t\t\tcloseButtonTitle=\"Yes, Delete Account\"\n\t\t\t\t\tcancelButtonTitle=\"Cancel\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default observer(Settings)\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpaddingHorizontal: 30,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t},\n\talertContainer: {\n\t\tbackgroundColor: \"#E6EEDD\",\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderColor: \"#92CB51\",\n\t\tborderWidth: 1,\n\t\t\n\t},\n\talertText: {\n\t\tcolor: \"#729E3E\",\n\t\tfontWeight: \"bold\",\n\t\tmarginLeft: 10,\n\t},\n\ttextField: {\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 20,\n\t},\n\tpreferencesText: {\n\t\tfontWeight: \"bold\",\n\t},\n\tpreferencesRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tborderBottomColor: Colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t\tpaddingVertical: 10,\n\t},\n\tdelete: {\n\t\tcolor: \"#1D59F5\",\n\t\tmarginTop: 30,\n\t\tfontWeight: \"bold\",\n\t},\n})\n","import React from \"react\"\nimport { StyleSheet, Text, View, Pressable, Linking, Dimensions, Platform } from \"react-native\"\nimport Icon from \"react-native-vector-icons/Feather\"\nimport Icon2 from \"react-native-vector-icons/Foundation\"\nimport SimpleIcon from \"react-native-vector-icons/SimpleLineIcons\"\nimport Colors from \"../utils/Colors\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n\nconst Contact = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\treturn (\n\t\t\n\t\t\tTube Fitting Division\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tLinking.openURL(`https://parker.com/tfd`)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\tDIVISION WEBSITE\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tLinking.openURL(`mailto:tfd.support@support.parker.com?subject=${encodeURIComponent(\"Inquiry from Parker Fitting Finder App\")}`)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\tEMAIL\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t {if(Platform.OS===\"ios\" || Platform.OS === \"android\") Linking.openURL(\"tel:6142797070\")}}>\n\t\t\t\t\t\n\t\t\t\t\t{Platform.OS===\"web\"?\"(614) 279-7070\":\"CALL\"}\n\t\t\t\t\n\t\t\t\n\n\t\t\tCorporate\n\n\t\t\t\n\t\t\t\n\t\t\t\t\t\tLinking.openURL(`https://parker.com`)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\tParker.com\n\t\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default Contact\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpadding: 30,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tactionRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tmarginVertical: 20,\n\t\tmarginBottom: 60,\n\t},\n\tactionButton: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tflex: 1,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t},actionButtonCenter: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tflex: 1,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 5,\n\t\tmarginLeft:5,marginRight:5\n\t},\n\tactionText: {\n\t\tcolor: Colors.white,\n\t\tmarginLeft: 10,\n\t\tfontWeight: \"500\",\n\t},\n\ttitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 26,\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport { StyleSheet, Text, View, FlatList, Pressable, Platform,ScrollView,Dimensions } from \"react-native\"\nimport { API } from \"../utils/API\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { partStore } from \"../utils/PartStore\"\nimport { Surface } from \"react-native-paper\"\nimport Colors from \"../utils/Colors\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst SavedProducts = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst [favoriteParts, setFavoriteParts] = useState([])\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = navigation.addListener(\"focus\", () => {\n\t\t\tAPI.getFavoriteParts(authStore.accountInfo.id).then((res) => {\n\t\t\t\tif (res.ok) setFavoriteParts(res.data.collection)\n\t\t\t})\n\t\t})\n\t\treturn unsubscribe\n\t}, [navigation])\n\n\treturn (\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t item.id}\n\t\t\t\t\trenderItem={({ item }) => (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t//navigation.navigate(\"FinderStack\")\n\t\t\t\t\t\t\t\t//navigation.popToTop()\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t// partStore.clearPart()\n\t\t\t\t\t\t\t\t\t// partStore.products = [item.product]\n\t\t\t\t\t\t\t\t\tpartStore.setSavedPart(item.product,item.configuration)\n\t\t\t\t\t\t\t\t\tnavigation.navigate(\"FittingDetails\", { item })\n\t\t\t\t\t\t\t\t}, 500)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={styles.row}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t{/* {item.nickName ? item.nickName : item.name} */}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t\t\n\t)\n}\n\nexport default SavedProducts\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tmargin: 20,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tlistContainer: {\n\t\tbackgroundColor: Colors.white,\n\t},\n\trow: {\n\t\tborderBottomColor: Colors.grey,\n\t\tborderBottomWidth: 1,\n\t\tjustifyContent: \"center\",\n\t\tmarginLeft: 20,\n\t\tpaddingVertical: 12,\n\t},\n\titemTitle: {\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t},\n})\n","import React from \"react\"\nimport { StyleSheet } from \"react-native\"\nimport { useWindowDimensions } from \"react-native\"\nimport { WebView } from \"react-native-webview\"\nimport { navStore } from \"../utils/NavStore\"\nconst Privacy = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst { width } = useWindowDimensions()\n\treturn (\n\t\t\n\t)\n}\n\nexport default Privacy\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflex: 1,\n\t},\n})\n//\"https://www.parker.com/us/en/privacy-policies.html\"","import React from \"react\"\nimport { StyleSheet, Text, ScrollView } from \"react-native\"\nimport { useWindowDimensions } from \"react-native\"\nimport RenderHtml from \"react-native-render-html\"\nimport { WebView } from \"react-native-webview\"\nimport { navStore } from \"../utils/NavStore\"\nconst Terms = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst { width } = useWindowDimensions()\n\t// const file = require(\"../assets/terms.pdf\")\n\treturn (\n\t\t\n\t)\n}\n\nexport default Terms\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflex: 1,\n\t},\n})\n","import React from \"react\"\nimport { StyleSheet, Text, ScrollView } from \"react-native\"\nimport { useWindowDimensions } from \"react-native\"\nimport RenderHtml from \"react-native-render-html\"\nimport { WebView } from \"react-native-webview\"\nimport { navStore } from \"../utils/NavStore\"\nconst Safety = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst { width } = useWindowDimensions()\n\treturn (\n\t\t\n\t)\n}\n\nexport default Safety\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflex: 1,\n\t},\n})\n","import React, { useState, useEffect } from \"react\"\nimport { StyleSheet, Alert, View, Text, Pressable, Image, Platform, Dimensions } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { TextInput } from \"react-native-paper\"\nimport { Button,Popup } from \"../components/Index\"\nimport { authStore } from \"../utils/AuthStore\"\nimport colors from \"../utils/Colors\"\nimport * as LocalAuthentication from \"expo-local-authentication\"\nimport * as SecureStore from \"expo-secure-store\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport { navStore } from \"../utils/NavStore\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst Login = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst [email, setEmail] = useState(\"\") //admin@parker.com\n\tconst [password, setPassword] = useState(\"\") //acc3lla\n\tconst [disabled, setDisabled] = useState(false)\n\tconst [faceID, setFaceID] = useState(true)\n\tconst [faceIDSuccess, setFaceIDSuccess] = useState(false)\n\tconst [modalVisible, setModalVisible] = useState(false);\n\tconst [alertMessage, setAlertMessage] = useState('');\n\tuseEffect(() => {\n\t\tsetDisabled(!email || !password)\n\t}, [email, password])\n\n\tuseEffect(() => {\n\t\tif (faceIDSuccess) submit()\n\t}, [faceIDSuccess])\n\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\tconst savedEmail = await getSecureValueFor(\"email\")\n\t\t\tconst savedPassword = await getSecureValueFor(\"password\")\n\n\t\t\tAsyncStorage.getItem(\"faceID\").then((faceIDStr) => {\n\t\t\t\tconsole.log(faceIDStr)\n\t\t\t\tlet faceIDObj = JSON.parse(faceIDStr)\n\t\t\t\tif (faceIDObj.faceID && savedEmail && savedPassword) {\n\t\t\t\t\tcheckFaceID(savedEmail, savedPassword)\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tif (Platform.OS !== \"web\") fetchData()\n\t}, [])\n\n\tconst submit = () => {\n\t\tAsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n\n\t\tauthStore.login(email, password).then((res) => {\n\t\t\tif (res.ok) navigation.navigate(\"Account\")\n\t\t\telse {\n\t\t\t\tif (Platform.OS === \"web\") {\n\t\t\t\t\tsetAlertMessage(\"Username or password incorrect\");\n\t\t\t\t\tsetModalVisible(true);\n\t\t\t\t} else\n\t\t\t\t\tAlert.alert(\"Error\", \"Username or password incorrect\")\n\t\t\t}\n\t\t})\n\t}\n\n\tconst getSecureValueFor = async (key) => {\n\t\treturn await SecureStore.getItemAsync(key)\n\t}\n\n\tconst checkFaceID = async (savedEmail, savedPassword) => {\n\t\ttry {\n\t\t\t// Checking if device is compatible\n\t\t\tconst isCompatible = await LocalAuthentication.hasHardwareAsync()\n\n\t\t\tif (!isCompatible) {\n\t\t\t\tthrow new Error(\"Your device isn't compatible.\")\n\t\t\t}\n\n\t\t\t// Checking if device has biometrics records\n\t\t\tconst isEnrolled = await LocalAuthentication.isEnrolledAsync()\n\n\t\t\tif (!isEnrolled) {\n\t\t\t\tthrow new Error(\"No Faces / Fingers found.\")\n\t\t\t}\n\n\t\t\t// Authenticate user\n\t\t\tconst result = await LocalAuthentication.authenticateAsync({ disableDeviceFallback: false })\n\n\t\t\tconsole.log(result)\n\t\t\tif (result.success) {\n\t\t\t\tsetEmail(savedEmail)\n\t\t\t\tsetPassword(savedPassword)\n\t\t\t\tsetFaceIDSuccess(true)\n\t\t\t\tauthStore.syncLocalData(authStore.accountInfo.id)\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Error\n\t\t\tconsole.log(\"error\", error)\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t setEmail(text.toLowerCase().trim())}\n\t\t\t\ttextContentType=\"email\"\n\t\t\t\tautoCompleteType=\"email\"\n\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\tstyle={styles.textField}\n\t\t\t/>\n\t\t\t setPassword(text.trim())}\n\t\t\t\tsecureTextEntry\n\t\t\t\ttextContentType=\"password\"\n\t\t\t\tautoCompleteType=\"password\"\n\t\t\t\tonSubmitEditing={submit}\n\t\t\t\tclearTextOnFocus\n\t\t\t\tblurOnSubmit\n\t\t\t\tstyle={styles.textField}\n\t\t\t/>\n\t\t\t{Platform.OS !== \"web\" && (\n\t\t\t\t setFaceID(!faceID)}>\n\t\t\t\t\t\n\t\t\t\t\tSetup Face ID\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t submit()}\n\t\t\t/>\n\t\t\t navigation.navigate(\"ForgotPassword\")} />\n\t\t\t\n\t\t\t\t\n\t\t\t\tOR\n\t\t\t\t\n\t\t\t\n\t\t\t {\n\t\t\t\t\tnavigation.goBack()\n\t\t\t\t\tnavigation.navigate(\"FinderStack\")\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{modalVisible && (\n\t\t\t\t setModalVisible(false)}\n\t\t\t\t\t// cancelAction={() => setShowConfirmDelete(false)}\n\t\t\t\t\tcloseButtonTitle=\"Ok\"\n\t\t\t\t\t// cancelButtonTitle=\"Cancel\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t\n\t\t\n\n\t)\n}\n\nexport default Login\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpaddingHorizontal: 30,\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\ttextField: {\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 20,\n\t},\n\ttoggleContainer: {\n\t\tflexDirection: \"row\",\n\t\tmarginBottom: 50,\n\t\talignItems: \"center\",\n\t},\n\timage: {\n\t\tmarginRight: 10,\n\t},\n\torContainer: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tmarginVertical: 20,\n\t},\n\tor: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 18,\n\t},\n\tline: {\n\t\tbackgroundColor: colors.black,\n\t\theight: 1,\n\t\twidth: 75,\n\t\tmarginHorizontal: 10,\n\t},\n})\n","import React, { useState, useEffect, useRef } from \"react\"\nimport { StyleSheet, Text, View, Platform, Dimensions, Keyboard, Pressable, Linking } from \"react-native\"\nimport { Switch } from \"react-native-paper\"\nimport { Button } from \"../components/Index\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { signIn, signOut, isAuthenticated } from '@okta/okta-react-native';\nimport { observer } from \"mobx-react-lite\"\nimport colors from \"../utils/Colors\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport { analyticsStore } from \"../utils/AnalyticsStore\"\nimport { navStore } from \"../utils/NavStore\"\nimport { partStore } from \"../utils/PartStore\"\nimport oktaAuth from '../auth.config';\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst CreateAccount = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst [email, setEmail] = useState(\"\")\n\tconst [password, setPassword] = useState(\"\")\n\tconst [alertMsg, setAlertMsg] = useState(null)\n\n\tconst [allowEmailUpdates, setEmailUpdates] = useState(false)\n\tconst [allowAppNotifications, setNotifications] = useState(false)\n\n\tconst [agreeToTerms, setAgreeToTerms] = useState(false)\n\tconst [faceID, setFaceID] = useState(false)\n\tReact.useLayoutEffect(() => {\n\t\tif (route.params?.showCancel)\n\t\t\tnavigation.setOptions({\n\t\t\t\theaderRight: () => navigation.replace(\"Account\")} title=\"Cancel\" />,\n\t\t\t})\n\t}, [navigation])\n\n\tuseEffect(() => {\n\t\tanalyticsStore.logEvent(\"sign-up_form\", {})\n\t\t// Analytics.logEvent(\"sign-up_form\")\n\t}, [])\n\tuseEffect(() => {\n\n\t\tif (authStore.authenticated === true) {\n\t\t\tif (route.params?.goBack) {\n\t\t\t\tnavigation.replace(\"FittingDetails\", { fittingScreen: partStore.nextScreen['material'] })\n\t\t\t} else {\n\t\t\t\tnavigation.popToTop()\n\t\t\t\tnavigation.replace(\"Account\", { accountCreated: true })\n\t\t\t}\n\t\t\tanalyticsStore.logEvent(\"sign_up\", {})\n\t\t}\n\n\t\t// Analytics.logEvent(\"sign-up_form\")\n\t}, [authStore.authenticated])\n\tconst submit = async () => {\n\t\t\n\t\tif (!agreeToTerms) {\n\t\t\tsetAlertMsg(\"Agreement to the Terms and Conditions is required.\")\n\t\t\treturn\n\t\t} else setAlertMsg(null)\n\n\n\t\t//AsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n\t\tsetAlertMsg(null)\n\t\tauthStore.isCreateAccount = true\n\t\tauthStore.allowAppNotifications = allowAppNotifications\n\t\tauthStore.allowEmailUpdates = allowEmailUpdates\n\t\tif(Platform.OS === \"web\"){\n\t\t\tawait AsyncStorage.setItem(\"createAccount\", true)\n\t\t\toktaAuth.oktaAuth.signInWithRedirect();\n\t\t}else{\n\t\t\tauthStore.faceId = faceID\n\t\t\tawait signIn()\n\t\t}\n\t\t\n\t\t// authStore.createAccount({ email, password, allowEmailUpdates, allowAppNotifications }).then((res) => {\n\t\t// \tif (!res.ok) {\n\t\t// \t\tsetAlertMsg(res.data.errorMessage)\n\n\t\t// \t} else {\n\t\t// \t\tAsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n\n\t\t// \t\tif (route.params?.goBack) {\n\t\t// \t\t\tnavigation.goBack()\n\t\t// \t\t\treturn\n\t\t// \t\t} else {\n\n\t\t// \t\t\tnavigation.popToTop()\n\t\t// \t\t\tnavigation.replace(\"Account\", { accountCreated: true })\n\t\t// \t\t}\n\t\t// \t\t// Analytics.logEvent(\"sign_up\")\n\t\t// \t}\n\t\t// })\n\t}\n\tconst handlePress = () => {\n\t\tif (Platform.OS !== 'web') {\n\t\t\tKeyboard.dismiss();\n\t\t}\n\t}\n\tconst onPressProp = Platform.OS !== 'web' ? handlePress : undefined;\n\treturn (\n\t\t\n\t\t\t{alertMsg && {alertMsg}}\n\t\t\t{/* setEmail(text.toLowerCase().trim())}\n\t\t\t\ttextContentType=\"email\"\n\t\t\t\tautoCompleteType=\"email\"\n\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\tstyle={styles.textField}\n\t\t\t/>\n\t\t\t setPassword(text.trim())}\n\t\t\t\tsecureTextEntry\n\t\t\t\ttextContentType=\"password\"\n\t\t\t\tautoCompleteType=\"password\"\n\t\t\t\tonSubmitEditing={submit}\n\t\t\t\tclearTextOnFocus\n\t\t\t\tblurOnSubmit\n\t\t\t\tstyle={[styles.textField, { marginBottom: 30 }]}\n\t\t\t/> */}\n\n\t\t\t\n\t\t\t\t{Platform.OS !== \"web\" && (\n\t\t\t\t\t\n\t\t\t\t\t\t{Platform.OS === \"iOs\"?\"Use Face ID\":\"Use Face Unlock or Fingerprint\"}\n\t\t\t\t\t\t setFaceID(!faceID)} />\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\tWould you like to receive new product updates from Parker?\n\t\t\t\t\n\t\t\t\t\tEmail Updates\n\t\t\t\t\t setEmailUpdates(!allowEmailUpdates)} />\n\t\t\t\t\n\t\t\t\t{Platform.OS !== \"web\" &&(\n\t\t\t\t\t\n\t\t\t\t\tMobile Notifications\n\t\t\t\t\t setNotifications(!allowAppNotifications)} />\n\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tI agree to Parker’s{\" \"}\n\t\t\t\t\t\t (Platform.OS === \"web\" ? Linking.openURL(\n\t\t\t\t\t\t\t\"https://www.parker.com/us/en/terms-and-conditions.html\"\n\t\t\t\t\t\t) : navigation.navigate(\"Terms\"))} style={{ textDecorationLine: \"underline\" }}>\n\t\t\t\t\t\t\tTerms and {\"\\n\"}Conditions\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\tand{\" \"}\n\t\t\t\t\t\t (Platform.OS === \"web\" ? Linking.openURL(\n\t\t\t\t\t\t\t\"https://www.parker.com/us/en/privacy-policies.html\"\n\t\t\t\t\t\t) : navigation.navigate(\"Privacy\"))} style={{ textDecorationLine: \"underline\" }}>\n\t\t\t\t\t\t\tPrivacy Policy\n\t\t\t\t\t\t\n\t\t\t\t\t\t.\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconsole.log(\"Setting \", !agreeToTerms)\n\t\t\t\t\t\t\t//setAgreeToTermsChanged(true)\n\t\t\t\t\t\t\t//setDisabled(!email || !password || val === false)\n\t\t\t\t\t\t\tsetAgreeToTerms(!agreeToTerms)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\n\n\t\t\t{/* */}\n\t\t\t submit()}\n\t\t\t/>\n\t\t\n\t)\n}\n\nexport default observer(CreateAccount)\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: Platform.OS === \"web\" ? 0 : 1,\n\t\tpaddingHorizontal: 30,\n\t\tmarginTop: 20,\n\t\tmarginBottom: 5,\n\t\tmarginVertical: 20,\n\t\tbackgroundColor: Platform.OS !== \"web\" ? colors.backgroundGrey : colors.transparent,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\talertMsg: {\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 10,\n\t\tcolor: colors.red,\n\t},\n\ttextField: {\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 20,\n\t},\n\tpreferencesText: {\n\t\tfontWeight: \"bold\",\n\t},\n\tpreferencesRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tborderBottomColor: colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t\tpaddingVertical: 10,\n\t},\n\tpreferencesRow1: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tborderBottomColor: colors.mediumGrey,\n\t\tborderBottomWidth: 1,\n\t\tpaddingVertical: 10,\n\t\tmarginBottom: 20\n\t},\n})\n","import React, { useState, useEffect } from \"react\"\nimport { StyleSheet, Text, Platform, Dimensions } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { TextInput } from \"react-native-paper\"\nimport { Button } from \"../components/Index\"\nimport { authStore } from \"../utils/AuthStore\"\nimport colors from \"../utils/Colors\"\nimport { API } from \"../utils/API\"\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst ForgotPassword = ({ navigation }) => {\n\tconst [email, setEmail] = useState(\"\")\n\tconst [requestSent, setRequestSent] = useState(false)\n\tconst [loading, setLoading] = useState(false)\n\n\tconst submit = () => {\n\t\tif (!loading) {\n\t\t\tsetLoading(true)\n\t\t\tAPI.forgotPassword({ host:'', email }).then((res) => {\n\t\t\t\tif (res.ok) setRequestSent(true)\n\t\t\t})\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t{!requestSent && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\tPlease enter the email associated to the account you're trying to access.\n\t\t\t\t\t\n\t\t\t\t\t setEmail(text.toLowerCase().trim())}\n\t\t\t\t\t\ttextContentType=\"emailAddress\"\n\t\t\t\t\t\tautoCompleteType=\"email\"\n\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\tonSubmitEditing={submit}\n\t\t\t\t\t\tclearTextOnFocus\n\t\t\t\t\t\tblurOnSubmit\n\t\t\t\t\t\tstyle={styles.textField}\n\t\t\t\t\t/>\n\t\t\t\t\t submit()} />\n\t\t\t\t>\n\t\t\t)}\n\t\t\t{requestSent && (\n\t\t\t\t<>\n\t\t\t\t\tAn email has been sent with instructions on resetting your password.\n\n\t\t\t\t\t navigation.goBack()} />\n\t\t\t\t>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default ForgotPassword\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpaddingHorizontal: 30,\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\ttextField: {\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 30,\n\t},\n\tinstructions: {\n\t\ttextAlign: \"center\",\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tmarginHorizontal: 20,\n\t\tmarginBottom: 40,\n\t},\n})\n","import React, { useState, useEffect } from \"react\"\nimport { StyleSheet, Text, Platform, Dimensions } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { TextInput } from \"react-native-paper\"\nimport { Button } from \"../components/Index\"\nimport { authStore } from \"../utils/AuthStore\"\nimport colors from \"../utils/Colors\"\nimport { API } from \"../utils/API\"\nimport { navStore } from \"../utils/NavStore\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst ResetPassword = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst [email, setEmail] = useState(\"\")\n\tconst [requestSent, setRequestSent] = useState(false)\n\tconst [loading, setLoading] = useState(false)\n\n\tconst submit = () => {\n\t\tif (!loading) {\n\t\t\tsetLoading(true)\n\t\t\tAPI.forgotPassword({ email }).then((res) => {\n\t\t\t\tif (res.ok) setRequestSent(true)\n\t\t\t})\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t{!requestSent && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\tPlease enter the email associated to the account you're trying to access.\n\t\t\t\t\t\n\t\t\t\t\t setEmail(text.toLowerCase().trim())}\n\t\t\t\t\t\ttextContentType=\"emailAddress\"\n\t\t\t\t\t\tautoCompleteType=\"email\"\n\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\tonSubmitEditing={submit}\n\t\t\t\t\t\tclearTextOnFocus\n\t\t\t\t\t\tblurOnSubmit\n\t\t\t\t\t\tstyle={styles.textField}\n\t\t\t\t\t/>\n\t\t\t\t\t { { setPassword(text); } }}\n\t\t\t\t\t\tsecureTextEntry\n\t\t\t\t\t\ttextContentType=\"password\"\n\t\t\t\t\t\tautoCompleteType=\"password\"\n\t\t\t\t\t\tclearTextOnFocus\n\t\t\t\t\t\tstyle={styles.textField}\n\t\t\t\t\t/>\n\t\t\t\t\t { setConfirmPassword(text); }}\n\t\t\t\t\t\tsecureTextEntry\n\t\t\t\t\t\ttextContentType=\"password\"\n\t\t\t\t\t\tautoCompleteType=\"password\"\n\t\t\t\t\t\tclearTextOnFocus\n\t\t\t\t\t\tstyle={[styles.textField]}\n\t\t\t\t\t/>\n\t\t\t\t\t submit()} />\n\t\t\t\t>\n\t\t\t)}\n\t\t\t{requestSent && (\n\t\t\t\t<>\n\t\t\t\t\tAn email has been sent with instructions on resetting your password.\n\n\t\t\t\t\t navigation.goBack()} />\n\t\t\t\t>\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default ResetPassword\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: 1,\n\t\tpaddingHorizontal: 30,\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\ttextField: {\n\t\tbackgroundColor: colors.backgroundGrey,\n\t\tfontWeight: \"bold\",\n\t\tmarginBottom: 30,\n\t},\n\tinstructions: {\n\t\ttextAlign: \"center\",\n\t\tfontSize: 18,\n\t\tfontWeight: \"600\",\n\t\tmarginHorizontal: 20,\n\t\tmarginBottom: 40,\n\t},\n})\n","import React from \"react\"\nimport { StyleSheet, Text, Dimensions, View, Image, Platform,ScrollView } from \"react-native\"\nimport { useWindowDimensions } from \"react-native\"\nimport Constants from \"expo-constants\"\nimport Colors from \"../utils/Colors\"\nimport { navStore } from \"../utils/NavStore\"\n//import { Pressable, StyleSheet, Text, , Image, Platform, Dimensions, Linking } from \"react-native\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\n// const maxButtonWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\nconst About = ({ navigation }) => {\n\tnavStore.navigation = navigation\n\tconst { width } = useWindowDimensions()\n\treturn (\n\t\t\n\t\t\t \n\t\t\t\n\t\t\t\tParker FittingFinder™ App\n\t\t\t\tV{Constants.manifest.version} ({(Platform.OS == \"ios\" ? Constants.manifest.ios.buildNumber : Platform.OS == \"android\" ? Constants.manifest.android.versionCode : Constants.manifest.buildNumber)})\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\tParker’s FittingFinder™ enables users to identify and configure a\n\t\t\t\ttube fitting or adapter for use in hydraulic and general industrial fluid systems. These\n\t\t\t\tProducts are manufactured by Parker’s Tube Fittings Division, the world's leader in industrial tube fittings and adapters.{\"\\n\"}{\"\\n\"}\n\t\t\t\tThe Build Fitting tool uses a sequence of visually aided steps to configure and/or identify a fitting. By selecting key attributes of fitting \n\t\t\t\tsuch as shape, end type(s), thread size, sealing method, and material – a part number with detailed specification attributes and drawing is provided{\"\\n\"}{\"\\n\"}\n\t\t\t\tOnce configured, email or download links to part specification and common 2D/3D CAD Model formats.{\"\\n\"}{\"\\n\"}\n\t\t\t\tUse the Search feature to look up a known Parker or competitor part number or series. {\"\\n\"}{\"\\n\"}\n\t\t\t\tUse the Where to Buy tool to locate and contact authorized Parker distributors for product availability \n\t\t\t\tand pricing. Use Map It to instantly navigate to distributor location. Save Favorite distributors locations \n\t\t\t\twith user added contact details.{\"\\n\"}{\"\\n\"}\n\t\t\t\tFinally, Creating an Account enables users to take full advantage of the FittingFinder™ app, including: Face ID enabled mobile log-in, \n\t\t\t\tin-app notifications, and saving parts for future requirements. Add user generated notes to saved parts future use. \n\n\n\n\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default About\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflex: 1,\n\t\tflexGrow: 1,\n\t\t// paddingHorizontal: 30,\n\t\tpadding: 30,\n\t\t// paddingBottom: 20,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\"\n\t},\n\tboldText: {\n\t\tfontWeight: 'bold',\n\t},\n\tlogo: {\n\t\t// alignSelf: \"center\",\n\t\ttextAlign: \"right\",\n\t\twidth: 60,\n\t\theight: 60,\n\n\t},\n})\n","import React, { Component, Fragment } from 'react';\nimport { SafeAreaView,StyleSheet,Text,View, Platform,Dimensions} from 'react-native';\nimport { Button } from \"./Index\"\nimport {createConfig,signIn,signOut,isAuthenticated,getUser,getUserFromIdToken, getAccessToken,EventEmitter, refreshTokens} from '@okta/okta-react-native';\nimport { API } from \"../utils/API\"\nimport configFile from '../auth.config';\nimport { authStore } from '../utils/AuthStore';\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\nexport default class OktaAuth extends Component {\n constructor() {\n super();\n this.state = {\n authenticated: false,\n context: null,\n newAccount: null\n };\n this.checkAuthentication = this.checkAuthentication.bind(this);\n }\n async componentDidDisappear(){\n console.log('disappeared')\n }\n async componentDidMount() {\n console.log('okta1 mount')\n await createConfig({\n clientId: configFile.oidc.clientId,\n redirectUri: configFile.oidc.redirectUri,\n endSessionRedirectUri: configFile.oidc.endSessionRedirectUri,\n discoveryUri: configFile.oidc.discoveryUri,\n scopes: configFile.oidc.scopes,\n requireHardwareBackedKeyStore:\n configFile.oidc.requireHardwareBackedKeyStore,\n });\n\n let that = this;\n EventEmitter.addListener('signInSuccess', async function (e: Event) {\n console.log('signinSuccess:' + authStore.isCreateAccount)\n let user = await getUserFromIdToken();\n let token = await getAccessToken();\n console.log(token)\n if(authStore.isCreateAccount === true){\n console.log('signinSuccess:' + authStore.isCreateAccount)\n await authStore.signInSuccessCreateAccount('', '', token,{ email:'', password:'', allowEmailUpdates:authStore.allowEmailUpdates, allowAppNotifications:authStore.allowAppNotifications })\n .then(async (res) => {\n if (!res.ok) {\n console.log(`auth error: ${res.originalError}`)\n //setAlertMsg(res.data.errorMessage)\n \n } else {\n \n // let faceID = authStore.faceId\n // console.log(`success:${faceID}`)\n // await AsyncStorage.setItem(\"faceID\", JSON.stringify({ faceID }))\n \n // if (route.params?.goBack) {\n // navigation.goBack()\n // return\n // } else {\n \n //navigation.popToTop()\n //navigation.replace(\"Account\", { accountCreated: true })\n // }\n // Analytics.logEvent(\"sign_up\")\n }\n })\n }else{\n var t = await refreshTokens();\n authStore.signInSuccess(user.sub, user.preferred_username, token)\n }\n \n //console.log(user.sub)\n that.setState({ authenticated: true });\n that.setContext('Logged in!');\n });\n EventEmitter.addListener('signOutSuccess', function (e: Event) {\n \n authStore.logout();\n console.log('signout success')\n that.setState({ authenticated: false });\n that.setContext('Logged out!');\n });\n EventEmitter.addListener('onError', function (e: Event) {\n console.log('logout error')\n if(e.resolve_type !== 'cancelled')\n authStore.logout()\n console.warn(e);\n that.setContext(e.error_message);\n });\n EventEmitter.addListener('onCancelled', function (e: Event) {\n console.warn(e);\n });\n\n this.checkAuthentication();\n }\n \n \n componentWillUnmount() {\n console.log('unmount')\n EventEmitter.removeAllListeners('signInSuccess');\n EventEmitter.removeAllListeners('signOutSuccess');\n EventEmitter.removeAllListeners('onError');\n EventEmitter.removeAllListeners('onCancelled');\n }\n\n async componentDidUpdate() {\n await this.checkAuthentication();\n }\n\n async checkAuthentication() {\n const result = await isAuthenticated();\n if (result.authenticated !== this.state.authenticated) {\n API.setToken(await this.getAccessToken())\n console.log('authed')\n this.setState({ authenticated: result.authenticated });\n }\n }\n\n async login() {\n await signIn();\n }\n async createAccount() {\n if (this.props.agreeToTerms === true) {\n await signIn();\n }\n else {\n this.props.setAlertMsg('Agreement to the Terms and Conditions are required.')\n }\n }\n async logout() {\n await signOut();\n }\n\n async getUserIdToken() {\n let user = await getUserFromIdToken();\n this.setContext(JSON.stringify(user, null, 2));\n }\n\n async getMyUser() {\n let user = await getUser();\n this.setContext(JSON.stringify(user, null, 2));\n }\n\n setContext = message => {\n this.setState({\n context: message,\n });\n };\n navigateToCreateAccount(){\n let nav = this.props.navigation;\n nav.replace(\"CreateAccount\")\n }\n // renderButtons() {\n // if (this.state.authenticated) {\n // return (\n // \n // \n // {\n // await this.getUserIdToken();\n // }}\n // title=\"Get User From Id Token\"\n // />\n // \n // \n // {\n // await this.getMyUser();\n // }}\n // title=\"Get User From Request\"\n // />\n // \n // \n // );\n // }\n // }\n\n render() {\n return (\n\n \n {/* \n {this.props.isCreateAccount === true && (\n\n { this.createAccount() }} />\n\n\n\n )}\n {!authStore.authenticated && this.props.isCreateAccount === false && (\n \n \n You are currently using the app as a guest. If you would like to save parts, you will need to create an\n account.\n \n this.navigateToCreateAccount()} />\n this.login()} />\n\n \n\n )}\n {authStore.authenticated && (\n {\n this.logout()\n }}\n />\n )}\n\n */}\n \n );\n }\n}\n","import React, { useState, useRef, useEffect } from 'react';\nimport { Platform, View, StyleSheet } from 'react-native';\nimport { WebView } from 'react-native-webview';\nimport { analyticsStore } from '../utils/AnalyticsStore';\nimport { observer, autorun } from 'mobx';\n\nconst styles = StyleSheet.create({\n container: {\n ...StyleSheet.absoluteFillObject,\n opacity: 1, // Set opacity to 1 to make the WebView visible\n },\n});\n\nexport function useMobxObserver(getter) {\n const [value, setValue] = useState(getter());\n\n useEffect(() => {\n const disposer = autorun(() => {\n setValue(getter());\n });\n return () => disposer();\n }, [getter]);\n\n return value;\n}\n\nconst GTMView = ({ eventName, eventValue }) => {\n const webViewRef = useRef(null);\n const eventUrl = useMobxObserver(() => analyticsStore.eventUrl);\n const [webViewSource, setWebViewSource] = useState({ uri: eventUrl });\n const [htmlContent, setHtmlContent] = useState('');\n const reloadWebViewWithEvent = () => {\n if (webViewRef?.current) {\n console.log('Reloading WebView');\n webViewRef.current.reload();\n } else {\n console.log('WebView ref is null');\n }\n };\n\n useEffect(() => {\n console.log(`Event URL changed: ${eventUrl}`);\n if (Platform.OS === 'web') {\n fetch(eventUrl)\n .then(response => response.text())\n .then(html => setHtmlContent(html))\n .catch(error => console.error('Error fetching HTML:', error));\n }\n setWebViewSource({ uri: eventUrl });\n //reloadWebViewWithEvent();\n }, [eventUrl]);\n\n useEffect(() => {\n // Log when the WebView is mounted\n if (webViewRef?.current) {\n console.log('WebView is mounted');\n } else {\n console.log('WebView is not mounted yet');\n }\n }, [webViewRef.current]);\n\n return (\n \n {Platform.OS === 'web' ? (\n htmlContent ? (\n \n ) : (\n Loading...
// Display a loading message or spinner while content is being fetched\n ) ): (\n ) }\n \n );\n};\n\nexport default GTMView;\n","import React from 'react';\nimport { BottomTabBar } from '@react-navigation/bottom-tabs';\n\nconst CustomTabBar = ({ state, descriptors, navigation }) => {\n const currentRoute = state.routes[state.index];\n const hideTabBar = false;// currentRoute?.params?.hideTabBar; // Check if the current route should hide the tab bar\n\n if (hideTabBar) {\n return null; // Hide the tab bar\n }\n\n return null;\n};\n\nexport default CustomTabBar;\n","import React, { useState, useEffect, useRef } from \"react\"\nimport { StyleSheet, Text, View, Image, Pressable, Platform, Linking, TouchableOpacity } from \"react-native\"\nimport Colors from \"../utils/Colors\"\nimport Icon from \"react-native-vector-icons/Ionicons\"\nimport { partStore } from \"../utils/PartStore\"\nimport { navStore } from '../utils/NavStore';\nconst WebNavBar = () => {\n const [currentScreen, setCurrentScreen] = useState(\"FittingSelection\")\n \n const navigate = (stack,screen) =>{\n if(screen===\"FittingSelection\"){\n partStore.getShapes(1)\n } \n navStore.navigate(stack,screen)\n setCurrentScreen(screen)\n }\n\n return (\n \n \n \n \n \n \n \n {/* Flexible spacer */}\n navigate('FinderStack','FittingSelection')}>\n Build Fitting\n \n navigate('FinderStack','FittingSearch')} style={styles.searchItemContainer}>\n {/* */}\n Search Part\n \n \n navigate('WhereToBuyStack','Where to Buy')}>\n Where to Buy\n \n \n navigate('ResourceStack','Resources')} style={styles.searchItemContainer}>\n {/* */}\n Resources\n \n navigate('AccountStack','Account')}>\n Account\n \n \n \n \n \n );\n};\n\n\nexport default WebNavBar;\nconst styles = StyleSheet.create({\n navigationBar: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 75,\n backgroundColor: 'white',\n width: '100%',\n\n justifyContent: 'center', // Horizontally center its children\n alignItems: 'center',\n },\n menuBar: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 75,\n backgroundColor: 'white',\n width: 1000,\n //alignSelf: 'center', // Horizontally center the menuBar within its parent\n\n },\n logoContainer: {\n flex: 1, // Take up 1/3 of the available space\n\n },\n logo: {\n width: 282,\n height: 46,\n\n },\n searchItemContainer: {\n flexDirection: 'row', // Arrange children in a row\n alignItems: 'center', // Vertically center the children\n },\n navItemsContainer: {\n flex: 5, // Take up 2/3 of the available space\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-around',\n position: 'relative', // Use absolute positioning\n paddingTop:8,\n },\n navItem: {\n color: 'black',\n fontSize: 16,\n fontWeight: 600,\n marginRight: 50,\n paddingBottom: 4, // Add padding between text and underline\n\n },\n navSelectedItem: {\n color: 'black', /* Set the text color to black */\n borderBottomWidth: 2, // Adjust the value to make the underline thicker\n borderBottomColor: Colors.yellow, // Set the underline color to yellow\n \n },\n navSearchItem: {\n color: 'black',\n fontSize: 24,\n fontWeight: 600,\n \n\n },\n absoluteRight: {\n position: 'absolute',\n right: 0,\n },\n spacer: {\n flex: 1, // Create a flexible spacer to push items to the right\n },\n});","import React from 'react';\nimport { View, Text, StyleSheet, TouchableOpacity, Platform, Dimensions } from 'react-native';\nimport { useNavigation } from '@react-navigation/native';\n\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 950) : Dimensions.get(\"window\").width\n\nconst WebHeader = ({ navigation,previous, route }) => {\n //const navigation = useNavigation();\n console.log('web header')\n const handleGoBack = () => {\n navigation.goBack();\n };\n\n // Check if there is a previous route in the navigation stack\n const showBackButton=true;\n //const showBackButton = navigation?.canGoBack();\n console.log(route?.params)\n return (\n \n \n {showBackButton && (\n \n < Back\n \n )}\n H {previous} {route?.params?.title}\n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n header: {\n width: '100%',\n \n \n alignItems: 'center',\n justifyContent: 'center',\n height: 60,\n \n },\n headerCenter: {\n width:'100%',\n maxWidth:maxWidth,height:60,\n backgroundColor: 'lightblue',\n flexDirection: 'row',\n alignItems: 'center',\n },\n backButton: {\n marginLeft: 100,\n },\n backButtonText: {\n fontSize: 16,\n fontWeight: 'bold',\n color: 'black',\n },\n headerTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n color: 'white',\n },\n});\n\nexport default WebHeader;\n","// CallbackScreen.js\n\nimport React, { useEffect,useState } from 'react';\nimport configFile from '../auth.config';\nimport { View, StyleSheet, Text, ActivityIndicator, Image, Platform,Dimensions, Pressable,Linking } from \"react-native\"\nimport { authStore } from \"../utils/AuthStore\"\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport Colors from \"../utils/Colors\"\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst CallbackScreen = ({ navigation,route }) => {\n const [loading, setLoading] = useState(true)\n const [errorMsg, setErrorMsg] = useState(false)\n useEffect(async () => {\n const { redirectUri } = configFile.oktaAuth;\n \n // Parse the id_token from the route params or any other suitable method in your Expo environment\n const code = route.params.code;\n\n if (code) {\n configFile.oktaAuth.token.parseFromUrl()\n .then(async (tokenResponse) => {\n let createAccount = await AsyncStorage.getItem(\"createAccount\")\n // Access token and other token details\n const accessToken = tokenResponse.tokens.accessToken;\n // You can also get the ID token and refresh token if needed\n const token = {access_token:accessToken.accessToken}\n console.log('Access Token:', accessToken);\n if(createAccount === \"true\"){\n console.log('signinSuccess:' + authStore.isCreateAccount)\n await authStore.signInSuccessCreateAccount('', '', token,{ email:'', password:'', allowEmailUpdates:authStore.allowEmailUpdates, allowAppNotifications:authStore.allowAppNotifications })\n .then(async (res) => {\n if (!res.ok && !res.data?.errorMessage?.includes(\"is already taken\")) {\n console.log('error')\n setLoading(false)\n setErrorMsg(true)\n \n } else {\n await AsyncStorage.removeItem(\"createAccount\")\n navigation.navigate('TabStack', {\n screen: 'AccountStack',\n params: { screen: 'Account' },\n });\n }\n })\n }else{\n \n authStore.signInSuccess('', '', token)\n setLoading(false)\n navigation.navigate('TabStack', {\n screen: 'AccountStack',\n params: { screen: 'Account' },\n });\n }\n })\n .catch((error) => {\n console.error('Error parsing tokens:', error);\n });\n } else {\n // Handle authentication failure\n console.error('Authentication failed');\n }\n }, [route]);\n\n return (\n \n {loading && }\n {errorMsg && <>There was an error authenticating your account. For assistance, please email {\n\n\t\t\t\t\t\tLinking.openURL(\n\t\t\t\t\t\t\t\"mailto:TFD.Support@support.parker.com?subject=FittingFinder Login Error\"\n\t\t\t\t\t\t)\n\n\t\t\t\t\t}}\n\t\t\t\t>TFD.Support@support.parker.com. >}\n \n );\n};\n\nexport default CallbackScreen;\nconst styles = StyleSheet.create({\n\tlaunchContainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: Colors.backgroundGrey,\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t\tpadding: 30,\n width: maxWidth,\n\t\talignSelf: \"center\",\n\t},\n\tspinner: {\n\t\tmarginTop: 40,\n\t\tmarginBottom: 60,\n\t},\n\tlogo: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 10,\n\t},\n\timage: {\n\t\talignSelf: \"center\",\n\t\tmarginTop: 50,\n\t\tmarginLeft: 25,\n\t\tmarginBottom: 20,\n\t},\n\ttitle: {\n\t\tfontWeight: \"bold\",\n\t\tfontSize: 18,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 22,\n\t},\n\tsubtitle: {\n\t\tfontWeight: \"500\",\n\t\tfontSize: 18,\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 28,\n\t\tmarginTop: 20,\n\t\tpaddingHorizontal: 20,\n\t},\n})\n","import React, { useEffect, useState } from \"react\"\nimport { Pressable, StyleSheet, Text, View, Image, Platform, Dimensions, Linking } from \"react-native\"\nimport { SafeAreaView } from \"react-native-safe-area-context\"\nimport { authStore } from \"../utils/AuthStore\"\nimport { observer } from \"mobx-react-lite\"\nimport { Button, Popup } from \"../components/Index\"\nimport Colors from \"../utils/Colors\"\nimport Constants from \"expo-constants\"\nimport { signIn, signOut } from '@okta/okta-react-native';\nimport AsyncStorage from \"@react-native-async-storage/async-storage\"\nimport * as LocalAuthentication from \"expo-local-authentication\"\nimport * as SecureStore from \"expo-secure-store\"\nimport { navStore } from \"../utils/NavStore\"\nimport oktaAuth from '../auth.config';\nimport wrenchIcon from '../assets/icn-assembly.png'\nimport catalogIcon from '../assets/icn-catalog.png'\nimport contactIcon from '../assets/icn-contact.png'\nimport aboutIcon from '../assets/icn-about.png'\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 600) : Dimensions.get(\"window\").width\nconst maxButtonWidth =\n\tPlatform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 400) : Dimensions.get(\"window\").width\n\nconst Resources = ({ navigation, route }) => {\n\tnavStore.navigation = navigation\n\tconst navigate = (screen) => {\n\t\tnavigation.navigate(screen)\n\t\tnavigation.setParams({ accountCreated: false, accountDeleted: false })\n\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tLinking.openURL(\n\t\t\t\t\t\t\t\"https://www.parker.com/us/en/divisions/tube-fittings-division/resources/assembly-and-installation-faqs.html#reassembly\"\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t>\n\n\t\t\t\t\t\n\n\t\t\t\t\tAssembly & Installation\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\n\t\t\t\t\t\tLinking.openURL(\n\t\t\t\t\t\t\t\"https://www.parker.com/content/dam/Parker-com/Literature/Tube-Fittings-Division/4300_Catalog_Cover.pdf\"\n\t\t\t\t\t\t)\n\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\tTube Fittings Division Catalog 4300\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t navigate(\"Contact\")}>\n\t\t\t\t\t\n\t\t\t\t\tContact Us\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t navigate(\"About\")}>\n\t\t\t\t\t\n\t\t\t\t\tAbout FittingFinder\n\t\t\t\t\n\t\t\t\n\n\n\t\t\n\t)\n}\n\nexport default observer(Resources)\n\nconst styles = StyleSheet.create({\n\tmainContainer: {\n\t\tflexGrow: Platform.OS === \"web\" ? 0 : 1,\n\t\tpaddingHorizontal: 30,\n\t\tpaddingBottom: 20,\n\t\tbackgroundColor: Platform.OS !== \"web\" ? Colors.backgroundGrey : Colors.transparent,\n\t\twidth: maxWidth,\n\t\talignSelf: \"center\",\n\t}, actionButton: {\n\t\tbackgroundColor: Colors.darkGrey,\n\t\tflex: 1,\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\t\n\t\talignItems: \"center\", // Center vertically\n\t\tborderRadius: 5,\n\t}, actionRow: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tmarginVertical: 20,\n\t\tmarginBottom: 20,\n\t}, actionText: {\n\t\tcolor: Colors.white,\n\t\tmarginLeft: 10,\n\t\tfontWeight: \"500\",\n\t\ttextAlign: \"center\", // Center text horizontally\n\t\tflex:1\n\t},\n\tmenuItem: {\n\t\tfontWeight: \"600\",\n\t\tfontSize: 22,\n\t\tmarginVertical: 15,\n\t},\n\tcreatedContainer: {\n\t\tbackgroundColor: \"#E6EEDD\",\n\t\tpadding: 10,\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderColor: \"#92CB51\",\n\t\tborderWidth: 1,\n\t},\n\tcreatedText: {\n\t\tcolor: \"#729E3E\",\n\t\tfontWeight: \"bold\",\n\t\tmarginLeft: 10,\n\t},\n\tinfo: {\n\t\ttextAlign: \"center\",\n\t\tmarginBottom: 10,\n\t},\n})\n","import React from 'react';\nimport { View, Text, StyleSheet, Linking, TouchableOpacity } from 'react-native';\n\n\nexport default function WebFooter() {\n const currentYear = new Date().getFullYear();\n return (\n \n \n Copyright © {currentYear} Parker Hannifin Corporation\n \n Linking.openURL(\n \"https://www.parker.com/us/en/safety.html\"\n )}>\n Safety\n \n | \n Linking.openURL(\n \"https://www.parker.com/us/en/terms-and-conditions.html\"\n )}>\n Terms & Conditions\n \n | \n Linking.openURL(\n \"https://www.parker.com/us/en/privacy-policies.html\"\n )}>\n Privacy\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n footer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 10,\n borderTopWidth: 1,\n borderTopColor: '#ccc',\n justifyContent: 'center', // Horizontally center its children\n alignItems: 'center',\n\n },\n menuBar: {\n flexDirection: 'row',\n alignItems: 'center',\n\n backgroundColor: 'white',\n width: 1000,\n //alignSelf: 'center', // Horizontally center the menuBar within its parent\n\n },\n leftText: {\n flex: 1,\n textAlign: 'left',\n color: '#7a7a7a'\n },\n rightTextContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n link: {\n\n textDecorationLine: 'underline',\n },\n});","// import { initializeApp } from \"firebase/app\"\n\n// // Optionally import the services that you want to use\n// //import {...} from \"firebase/auth\";\n// //import {...} from \"firebase/database\";\n// //import {...} from \"firebase/firestore\";\n// //import {...} from \"firebase/functions\";\n// //import {...} from \"firebase/storage\";\n\n// // Initialize Firebase\n// const firebaseConfig = {\n// \tapiKey: \"AIzaSyB09L6a7vQTVmHEQRo3v03iTLQ-NzkPK_0\",\n// \tauthDomain: \"parker-fitting-finder.firebaseapp.com\",\n// \tprojectId: \"parker-fitting-finder\",\n// \tstorageBucket: \"parker-fitting-finder.appspot.com\",\n// \tmessagingSenderId: \"303019755217\",\n// \tappId: \"1:303019755217:web:6ac215ab9d348c2a15e7f0\",\n// \tmeasurementId: \"G-K5JD0X9L00\",\n// }\n\n// initializeApp(firebaseConfig)\n\n// Sentry.init({\n// \tdsn: \"https://ab9351a8acfe40ce8c85961beb1b572c@o197293.ingest.sentry.io/6368851\",\n// \tenableInExpoDevelopment: true,\n// \tdebug: true, // If `true`, Sentry will try to print out useful debugging information if something goes wrong with sending the event. Set it to `false` in production\n// })\n// import * as Analytics from \"expo-firebase-analytics\"\n//import * as Sentry from \"sentry-expo\"\n\n//import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';\n\nimport { StatusBar } from \"expo-status-bar\"\nimport React, { useRef } from \"react\"\nimport { StyleSheet, Text, View, Image, Pressable, Platform, Linking, Dimensions } from \"react-native\"\nimport Colors from \"./utils/Colors\"\nimport { NavigationContainer } from \"@react-navigation/native\"\n\nimport { createStackNavigator } from \"@react-navigation/stack\"\nimport { createBottomTabNavigator } from \"@react-navigation/bottom-tabs\"\n\n\n\nimport { DefaultTheme, Provider as PaperProvider } from \"react-native-paper\"\nimport { authStore } from \"./utils/AuthStore\"\nimport { observer } from \"mobx-react-lite\"\n\n\nimport Launch from \"./screens/Launch\"\nimport Onboarding from \"./screens/Onboarding\"\nimport FittingSelection from \"./screens/FittingSelection\"\nimport FittingOverview from \"./screens/FittingOverview\"\nimport FittingDetails from \"./screens/FittingDetails\"\nimport FittingSearch from \"./screens/FittingSearch\"\nimport SelectCompetitor from \"./screens/SelectCompetitor\"\nimport ToolIntro from \"./screens/ThreadID/ToolIntro\"\nimport Tool1 from \"./screens/ThreadID/Tool1\"\nimport Tool2 from \"./screens/ThreadID/Tool2\"\nimport Tool3 from \"./screens/ThreadID/Tool3\"\nimport WhereToBuy from \"./screens/WhereToBuy\"\nimport DistributorDetails from \"./screens/DistributorDetails\"\nimport Account from \"./screens/Account\"\nimport Settings from \"./screens/Settings\"\nimport Contact from \"./screens/Contact\"\nimport SavedProducts from \"./screens/SavedProducts\"\nimport Privacy from \"./screens/Privacy\"\nimport Terms from \"./screens/Terms\"\nimport Safety from \"./screens/Safety\"\nimport Login from \"./screens/Login\"\nimport CreateAccount from \"./screens/CreateAccount\"\nimport ForgotPassword from \"./screens/ForgotPassword\"\nimport ResetPassword from \"./screens/ResetPassword\"\nimport About from \"./screens/About\"\nimport OktaAuth from \"./components/OktaAuth\"\nimport { analyticsStore } from \"./utils/AnalyticsStore\"\nimport GTMView from \"./components/GTMView\"\nimport CustomTabBar from \"./components/CustomTabBar\"\nimport WebNavBar from \"./components/WebNavBar\"\nimport WebHeader from \"./components/WebHeader\"\nimport CallbackScreen from './screens/OktaCallbackScreen'\nimport Resources from './screens/Resources'\nimport WebFooter from \"./components/WebFooter\"\nimport { LogBox } from \"react-native\"\nLogBox?.ignoreAllLogs() //Ignore all log notifications\nconst maxWidth = Platform.OS === \"web\" ? Math.min(Dimensions.get(\"window\").width, 850) : Dimensions.get(\"window\").width\nconsole.log('maxWidth')\nconst shouldRenderCustomTabBar = (Platform.OS === 'web' && maxWidth > 600);\nexport const navigationRef = React.createRef()\n\nconst theme = {\n\t...DefaultTheme,\n\tcolors: {\n\t\t...DefaultTheme.colors,\n\t\tprimary: Colors.darkGrey,\n\t\taccent: Colors.black,\n\t},\n}\n\nfunction App() {\n// React.useLayoutEffect(() => {\n// \tnavigation.setOptions({\n// \t\theaderRight: () => (\n// \t\t navigation.goBack()}>\n// \t\t\t\n// \t\t \n// \t\t),\n// \t });\n// }, [navigation]);\n\tconst routeNameRef = useRef()\n\tconst Stack = createStackNavigator()\n\tlet Tab;\n\t// if(Platform.OS === \"web\")\n\t// \tTab = createMaterialTopTabNavigator();\n\t// else\n\tTab = createBottomTabNavigator()\n\tanalyticsStore.logEvent('app_opened', {});\n\n\tconst screenOptions = {\n\t\theaderStyle: {\n\t\t\tbackgroundColor: Colors.backgroundGrey,\n\t\t\televation: 0, // remove shadow on Android\n\t\t\tshadowOpacity: 0, // remove shadow on iOS\n\n\t\t},\n\t\theaderLeftContainerStyle:{marginLeft:200},\n\t\theaderTintColor: Colors.black,\n\t\theaderTitleStyle: {\n\t\t\tfontWeight: \"bold\",\n\t\t\tfontSize: 22,\n\t\t},\n\t\t//headerBackVisible:Platform.OS===\"web\"?false:true,\n\t\t...(Platform.OS === \"web\" ? { headerLeft: () => null } : {}),\n\t\theaderBackTitleVisible: false,\n\t\theaderTitleAlign: \"center\",\n\n\t\t//header: (props) => ,\n\t\t//headerShown:Platform.OS===\"web\"?false:true\n\n\t}\n\n\tconst tabOptions = ({ route }) => ({\n\t\ttabBarIcon: ({ focused, color, size }) => {\n\t\t\tlet iconName\n\n\t\t\tif (route.name === \"FinderStack\") {\n\t\t\t\ticonName = focused ? require(\"./assets/icn_part_on.png\") : require(\"./assets/icn_part.png\")\n\t\t\t\treturn \n\t\t\t} else if (route.name === \"SearchStack\") {\n\t\t\t\ticonName = focused ? require(\"./assets/icn_search_nav_on.png\") : require(\"./assets/icn_search_nav.png\")\n\t\t\t\treturn \n\t\t\t} else if (route.name === \"WhereToBuyStack\") {\n\t\t\t\ticonName = focused ? require(\"./assets/icn_pin_on.png\") : require(\"./assets/icn_pin.png\")\n\t\t\t\treturn \n\t\t\t} else if (route.name === \"AccountStack\") {\n\t\t\t\ticonName = focused ? require(\"./assets/icn_user_on.png\") : require(\"./assets/icn_user.png\")\n\t\t\t\treturn \n\t\t\t} else if (route.name === \"ResourceStack\") {\n\t\t\t\ticonName = focused ? require(\"./assets/icn_wrench_on.png\") : require(\"./assets/icn_wrench.png\")\n\t\t\t\treturn \n\t\t\t}\n\n\t\t\t// You can return any component that you like here!\n\t\t\treturn \n\t\t},\n\t\theaderBackVisible:Platform.OS===\"web\"?false:true,\n\t\theaderShown: false,\n\t\ttabBarActiveTintColor: Colors.yellow,\n\t\ttabBarInactiveTintColor: Colors.white,\n\t\ttabBarStyle: { backgroundColor: Colors.black, height: 90 },\n\t})\n\n\tconst SearchStack = () => (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n\tconst FinderStack = () => (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n\n\tconst WhereToBuyStack = () => (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n\n\tconst AccountStack = () => (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{/* */}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\n\t\t\n\t)\n\tconst ResourceStack = () => (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n\n\tconst TabStack = () => (\n\t\t : undefined}\n\n\t\t\ttabBarOptions={{\n\t\t\t\tkeyboardHidesTabBar: true,\n\n\t\t\t\tstyle: {\n\t\t\t\t\t// Use CSS to move the tab bar to the top\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t\tright: 0,\n\t\t\t\t\t// Add additional styling as needed\n\t\t\t\t\tbackgroundColor: 'lightgray', // Example background color\n\t\t\t\t\tborderBottom: '1px solid gray', // Example border\n\t\t\t\t}\n\t\t\t}}\n\n\t\t>\n\n\t\t\t ({ \n title: \"Build Fitting\", \n })} />\n\t\t\t{/* */}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n\tconst CustomHeader = () => (\n\t\t\n\t\t\t\n\t\t\n\t);\n\n\n\tconst ThreadIDStack = () => (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n\n\tconst OnboardingStack = () => (\n\t\t\n\t\t\t\n\t\t\n\t)\n\n\tconst linking = {\n\t\tconfig: {\n\t\t\tscreens: {\n\t\t\t\tTabStack: {\n\t\t\t\t\tscreens: {\n\t\t\t\t\t\tFinderStack: {\n\t\t\t\t\t\t\tscreens: {\n\t\t\t\t\t\t\t\tFittingSelection: \"FittingSelection\",\n\t\t\t\t\t\t\t\tFittingDetails: \"part/:partName\",\n\t\t\t\t\t\t\t\tCallback: \"login/callback\",\n\t\t\t\t\t\t\t\tFittingSearch: \"FittingSearch\",\n\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tWhereToBuyStack: {\n\t\t\t\t\t\t\tscreens: {\n\t\t\t\t\t\t\t\tWhereToBuyStack: 'Where%20to%20Buy',\n\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tAccountStack: {\n\t\t\t\t\t\t\tscreens: {\n\t\t\t\t\t\t\t\tAccount: \"Account\",\n\t\t\t\t\t\t\t\tCreateAccount: \"CreateAccount\",\n\t\t\t\t\t\t\t\tSettings: \"Settings\",\n\t\t\t\t\t\t\t\tSavedProducts: \"SavedProducts\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tResourceStack: {\n\t\t\t\t\t\t\tscreens: {\n\t\t\t\t\t\t\t\tResources: 'Resources',\n\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{shouldRenderCustomTabBar && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t {/* */}\n\t\t\t\t>\n\t\t\t)}\n\t\t\t{(!shouldRenderCustomTabBar && Platform.OS === \"web\") && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t {\n\t\t\t\t\trouteNameRef.current = navigationRef.current?.getCurrentRoute().name\n\t\t\t\t}}\n\t\t\t\tonStateChange={async () => {\n\t\t\t\t\tconst previousRouteName = routeNameRef.current\n\t\t\t\t\tconst currentRouteName = navigationRef.current?.getCurrentRoute().name\n\t\t\t\t\tif (previousRouteName !== currentRouteName) {\n\t\t\t\t\t\t//Analytics.setCurrentScreen(currentRouteName)\n\t\t\t\t\t}\n\t\t\t\t\trouteNameRef.current = currentRouteName\n\t\t\t\t}}>\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t navigation.goBack()}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t}} />\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{Platform.OS !== \"web\" && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{Platform.OS === \"web\" && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\n\n\t)\n}\n\nexport default observer(App)\n\nconst styles = StyleSheet.create({\n\tcontainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#fff\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\"\n\t},\n\tlogoContainer: {\n\t\tflexDirection: 'row',\n\t\talignItems: 'center',\n\t\theight: 75,\n\t\tbackgroundColor: 'black',\n\t\twidth: '100%',\n\n\t\tjustifyContent: 'center', // Horizontally center its children\n\t\talignItems: 'center',\n\t},\n\tlogo: {\n\t\talignSelf: \"center\",\n\t\twidth: 100,\n\t\theight: 43,\n\t}, navItem: {\n\t\tcolor: 'white',\n\t\tfontSize: 16,\n\t},\n})\n","import { registerRootComponent } from 'expo';\n// import dotenv from 'dotenv'\nimport App from './App';\n\n// registerRootComponent calls AppRegistry.registerComponent('main', () => App);\n// It also ensures that whether you load the app in Expo Go or in a native build,\n// the environment is set up appropriately\nregisterRootComponent(App);\n"],"sourceRoot":""}