{"version":3,"sources":["components/constants/APIConstants.js","buy.gif","page_preload.gif","components/ViewHOC.js","components/GoToTop.js","FE_User.png","components/Form.js","go .gif","SBOM_NEW.png","Shopping_cart.png","Show_fun_eq.png","components/Loading.js","components/Util.js","Cart.png","Actions/index.js","CartUtils.js","components/CartModal.js","components/navbar.js","components/ContactUS.js","components/Faq.js","components/Image.js","components/FunctionalEquivalent.js","components/Details.js","components/ProductList.js","components/PartImages.js","components/PartList.js","components/DescProductList.js","components/DescProductListPrint.js","components/ProductResults.js","components/SpareBOM.js","components/ComponentBOM.js","components/SerialNumberBOM.js","components/PartSurfer.js","components/UserGuide.js","components/Hierarchy.js","components/NewRequest.js","components/GenerateMetrics.js","components/Sbom.js","components/UIDLoader.js","components/CallBack.js","App.js","serviceWorker.js","components/footer.js","components/Header.js","Reducers/cartReducer.js","Reducers/index.js","index.js","components/login.js","components/constants/constants.js"],"names":["BASE_URL","concat","process","GET_COUNTRIES","usertype","GENERIC_SEARCH","searchtext","country","GET_PARTLIST","partNumber","PARTLIST","PRODUCTLIST","productNumber","SERIALNUMBER","serialNumber","FUNCTIONAL","countryCode","FUNCTIONAL_LIST","SERIALWITHPRODUCT","ProductNumber","GET_HIERARCHY","GETHIERARCHYPRODUCT","OID","INSERTFEEDBACK","INSERTPHOTOMETRIC","PartNumber","Flag","CARTMETRIC","Qty","BUYMETRIC","GETSBOM","GETUIDRESPONSE","code","GENERATEREPORT","username","RESPONSEURLUID","tokencallurl","UIDClientID","tokenurlforOAuth","clientvaluesforOAuth","GETGLBURL","REDIRECTUIDURL","GET_DIAGRAMS","module","exports","ViewHOC","WrappedComponent","_Class","WrappedComponentDisplayName","displayName","name","_React$Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","state","resize","setState","isMobile","window","innerWidth","WIDTH_THRESHOULD","_inherits","_createClass","key","value","addEventListener","this","callback","React","createElement","Object","assign","mobileView","props","Component","GoToTop","listenToScroll","document","body","scrollTop","documentElement","getElementById","style","display","goToBtn","scroll","top","left","behavior","Fragment","type","class","id","position","bottom","right","zIndex","border","outline","backgroundcolor","color","cursor","padding","borderradius","fontsize","onClick","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","REACT_API_TOKEN_EXP","Form","FieldName","loading","searchBy","searchyByText","arraySearchBy","topmenuValue","User","getUID","input","urlprod","countryLoading","axios","get","headers","_objectSpread","getAuthHeaderUID","res","data","Body","console","log","error","setusertype","secureLocalStorage","getItem","localStorage","setItem","removeCookie","preventDefault","removeItem","alert","location","href","addNotification","text","notificationSystem","current","message","level","loadData","_this$state","url","dataLoading","onSubmit","SEARCH_MODES","PART","PRODUCT","SEARIAL_NUMBER","SERIAL_WP","FUNCTIONAL_EQUIVALENT","getAuthHeader","response","handleSubmit","_ref","_asyncToGenerator","_callee","event","_context","history","pathname","search","SEARCH_TEXT","SEARCH_BY","_x","getSearchMode","WILD_CHAR","setSearchModeLink","_this$state2","getSearchResult","getSearchResultText","_this2","getURLQueryString","generateToken","setCookie","Cookies","getQueryParam","createRef","dat","map","con","index","CountryCode","CountryName","nextProps","_this3","prevMode","nextMode","prevText","_this4","from","getElementsByClassName","element","innerText","classList","add","remove","_this5","_this$state3","Loading","Login","className","float","Select","options","label","defaultValue","find","onChange","data-toggle","data-width","width","role","Link","to","getLocationObject","placeholder","target","required","NotificationSystem","ref","withRouter","_ref$loading","children","boxSizing","height","textAlign","src","loader","alt","opacity","set","query","qs","parse","searchText","params","encodeURIComponent","join","getURLQueryStringBySearch","queryString","undefined","require","stringify","encodedval","Buffer","toString","config","maxBodyLength","Infinity","request","JSON","expTime","Date","getTime","token","expires","access_token","token1","setCarItems","payload","getStoredCart","getJSON","setStoredCart","cartDetails","sessionStorage","getItemIndex","cartList","_toConsumableArray","item","withStyles","theme","head","backgroundColor","palette","common","black","white","fontSize","TableCell","root","action","hover","TableRow","CartModal","handleModalShowHide","showHide","_this$props","cart","setCartItems","ind","newCart","splice","updateQuantity","qty","Number","_this$props2","truncate","source","size","getRedirectURL","cartQty","URL","entries","_ref2","_slicedToArray","open","columns","dataField","headerStyle","formatter","col","dangerouslySetInnerHTML","__html","prod","row","currentTarget","Container","alignItems","maxWidth","paddingBottom","minWidth","paddingLeft","aria-hidden","Modal","show","dialogClassName","Header","closeButton","onHide","cartItem","idx","Row","Col","marginLeft","borderTop","borderTopStyle","borderTopColor","EnhancedDescription","xs","Footer","BootstrapTable","keyField","striped","connect","cartItems","dispatch","pageRefresh","replace","data-target","aria-controls","aria-expanded","aria-label","aria-haspopup","aria-labelledby","Navbar","marginRight","Accordion","defaultActiveKey","Card","Toggle","as","eventKey","Collapse","rel","Alert","fontfamily","justifyContent","Image","origin","onError","FunctionalEquivalent","_Component","hidden","CsrFlag","TechCourier","RohsCompliant","pagination","paginationFactory","getDesc","mode","wwsnrsinput","serial_no","product_no","user_name","roHS_unit_status","rohs_status_code","ProductName","Details","expandIconRequired","triggered","triggerAll","noGutters","sm","md","lg","xl","FontAwesomeIcon","icon","ProductList","filterData","list","filter","part","indexOf","isDescDisabled","headerAttrs","PartImages","partnumber","handleLoader","useEffect","src2","innerHTML","x","option","_loop","imageexists","exists","PartList","_isMounted","buylink","loadWhereUsed","showModal","imagePath","CheckImageavailability","AddPhotoMetric","part_number","closeModal","path","PrintPhoto","elem","domClone","cloneNode","$printSection","appendChild","print","fetchDetails","prodNumber","partNumbers","post","originalData","newData","modifiedData","showModalFE","partFEData","closeModalFE","handleCartChange","updatedCart","getImage","imageLocation","collapsed","bind","formatExtraData","extra","presentInCart","PartPhotoFlag","CSR","ROHS","FE_MATERIAL","OverlayTrigger","placement","overlay","Tooltip","ExitToAppIcon","BuyLink","buy","OrderFlag","letEnabled","checked","cell","scrollable","Title","for","Button","in","DescProductList","imageName","isLoad","FELoading","Ishide","DescProductListPrint","BackToPreviousPage","parts","isBack","visible","myRef","ProductResults","getDaigramData","diagramItems","showDiaSection","diagramName","diagramPath","PrintFriendlyView","isPrint","generateMetdata","filters","products","category","keyword","techCourier","rohsFilter","rohs","photoFilters","photoFlag","feFilters","FE","temp","count","categoryFilters","_ref3","_ref4","categories","keywordFilters","_ref5","_ref6","catKey","_ref7","_ref8","catValue","keyWords","techCouriers","CSRFlag","product","PART_FE","NOT_APPLICABLE","PRESENT","NOT_PRESENT","PART_PHOTO","fePresent","photoPresent","metadata","itemsCount","_ref9","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","CategoryName","KeywordName","keyw","filteredData","getPhotoFrame","getCategoryProducts","shouldExpand","status","main","_defineProperty","changeFilters","isMulti","isFlag","selection","isObject","getDiagram","val","GoToLast","scrollHeight","posToScroll","loadComplete","printDiagram","isSbom","SbomText","PipeBomFlag","_this$state$metadata","_this$state$metadata2","_this$state$metadata3","_this$state$metadata4","_this$state$metadata5","_this$state$metadata6","_this$state$metadata7","_this$state$metadata8","_this$state$metadata9","_this$state$metadata10","_this$state$metadata11","_this$state$metadata12","_this$state$metadata13","_this$state$metadata14","_this$state$metadata15","_this$state$metadata16","onLoad","Group","controlId","Label","column","menuPortalTarget","closeMenuOnSelect","onMenuClose","isSearchable","ele","_ref17","_ref18","activeKey","overflow","_ref19","_ref20","variant","isClearable","visibility","_ref21","_ref22","_ref23","_ref24","SpareBOM","isValid","spare_part_no","spare_part_description","spare_enhance_desc","sp_category","sp_techcourier","sp_csrflag","sp_rohs_status_code","ComponentBOM","parent_part_number","part_description","part_serialno","part_quantity","rec","SerialNumberBOM","techCourierFilters","rohsFilters","CSRFilters","spare_part","enableSearchResult","sett","COMPONENT_collapsed","SPARE_collapsed","_this$props$data","unit_configuration","PartSurfer","selectValue","includes","ProdListError","textval","loadDetails","partResults","dataLoaded","productResults","SNResults","FEResults","rest","ProductBOM","SNRProductListsResults","SNRProductLists","Part","wildCharResults","ProductNameList","handleDropdownChange","tabgen1","tabadv1","noData","product_Id","product_Desc","Tabs","TabList","Tab","TabPanel","defaultIndex","Nav","Item","Content","Pane","ListGroup","data-parent","go","Show_fun_eq","FE_User","SBOM_NEW","Shopping_cart","Hierarchy","dataprod","showModalPopup","prodparents","Level1","Level2","Level3","Level4","Level5","Level6","isShowPopup","isShowModal","handleClose","proddatasplit","dt","array","parentItems","split","hierarchyProds","arraycount","hasNodes","textContent","substring","contains","querySelector","click","product_number","product_name","TreeMenu","debounceTime","disableKeyboard","hasSearch","onClickItem","_objectWithoutProperties","_excluded","resetOpenNodesOnDataUpdate","onPopupClose","centered","fontWeight","NewRequest","modalnumber","problemdesc","troubleshootingsteps","installation","nameofcust","email","phonenumber","SelectValue","countryerror","handleChange","evt","RegExp","test","emailvalidation","content","rows","cols","GenerateMetrics","Sbom","ProdNum","productNum","match","PartName","CallBack","urltkn","Code","URLSearchParams","obj","access_token_data","finally","App","tokenexptime","setInterval","Helmet","title","Switch","Route","component","Faq","UserGuide","exact","ContactUS","Boolean","hostname","combineReducers","store","createStore","rootReducer","__REDUX_DEVTOOLS_EXTENSION__","ReactDOM","render","Provider","BrowserRouter","navigator","serviceWorker","ready","registration","unregister","login"],"mappings":"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","file":"static/js/main.eb724a99.chunk.js","sourcesContent":["export const BASE_URL = `${process.env.REACT_APP_API}`\r\nexport const GET_COUNTRIES = (usertype) => `${BASE_URL}/Country/GetCountry/${usertype}`\r\nexport const GENERIC_SEARCH = (searchtext, country, usertype) => `${BASE_URL}/Search/GenericSearch/${searchtext}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const GET_PARTLIST = (partNumber, usertype) => `${BASE_URL}/Part/GetWhereUsedProductList/${partNumber}/usertype/${usertype}`\r\nexport const PARTLIST = (partNumber,country, usertype) => `${BASE_URL}/Part/GetPart/${partNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const PRODUCTLIST = (productNumber, country, usertype) => `${BASE_URL}/Product/GetProduct/${productNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const SERIALNUMBER = (serialNumber, country, usertype) => `${BASE_URL}/SerialNumber/GetSerialNumber/${serialNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const FUNCTIONAL =(partNumber, countryCode, usertype) => `${BASE_URL}/Part/GetFunctionalEquivalent/${partNumber}/countryCode/${countryCode || 'US'}/usertype/${usertype}`\r\nexport const FUNCTIONAL_LIST =(productNumber, usertype) => `${BASE_URL}/FunctionalEqivalent/GetFunctionalEqivalent/${productNumber}/usertype/${usertype}`\r\nexport const FUNCTIONAL_PART =(partNumber, usertype) => `${BASE_URL}/FunctionalEqivalent/GetFunctionalEqivalentPart/${partNumber}/usertype/${usertype}`\r\nexport const SERIALWITHPRODUCT = (serialNumber,ProductNumber, country, usertype) => `${BASE_URL}/SerialNumber/GetSerialNumber/${serialNumber}/ProductNumber/${ProductNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const GET_HIERARCHY = (usertype) => `${BASE_URL}/Hierarchy/GetHierarchyInfo/usertype/${usertype}`\r\nexport const GETHIERARCHYPRODUCT = (OID, usertype) => `${BASE_URL}/Hierarchy/GetHierarchyProducts/${OID}/usertype/${usertype}`\r\nexport const SERIALWITHPRODUCTGENERAL = (serialNumber,ProductNumber, country, usertype) => `${BASE_URL}/SerialNumber/GetSerialNumberGeneral/${serialNumber}/ProductNumber/${ProductNumber}/country/${country || 'US'}/usertype/${usertype}`\r\nexport const INSERTFEEDBACK = () => `${BASE_URL}/Search/SendEmail`\r\nexport const INSERTPHOTOMETRIC = (PartNumber,Flag) => `${BASE_URL}/Search/InsertPhotoMetric/${PartNumber}/Flag/${Flag}`\r\nexport const CARTMETRIC = (PartNumber, Qty, Flag) => `${BASE_URL}/Search/CartMetric/${PartNumber}/Qty/${Qty}/Flag/${Flag}`\r\nexport const BUYMETRIC = (PartNumber) => `${BASE_URL}/Search/BuyMetric/${PartNumber}`\r\nexport const GETSBOM = (productNumber, countryCode, usertype) => `${BASE_URL}/Product/GetSBOM/${productNumber}/country/${countryCode || 'US'}/usertype/${usertype}`\r\nexport const GETUIDRESPONSE = (code) => `${BASE_URL}/Country/GetUIDResponse`\r\nexport const GENERATEREPORT = (username) => `${BASE_URL}/Search/GenerateMetricReport/${username}`\r\n//Uncomment if format is not correct - Start\r\n// // export const GETUIDTOKEN = (code) => `https://login-itg.external.hp.com/as/token.oauth2?redirect_uri=http://localhost:3000/PartSurfer/CallBack&grant_type=authorization_code&code=${code}`\r\n// export const GETUIDTOKEN = (code) => `https://login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}&grant_type=authorization_code&code=${code}`\r\n// //export const GETGLBURL = `https://partsurfer.hp.com/Search.aspx?code=hppinguid`\r\n// //export const GETGLBURL = `https://itg-psurf-web.glbinc.hp.com/Search.aspx?code=hppinguid`\r\n\r\n// // export const REDIRECTUIDURL = `https://login-itg.external.hp.com/as/authorization.oauth2?`\r\n// export const REDIRECTUIDURL = `https://login.external.hp.com/as/authorization.oauth2?`\r\n// // export const CLIENTID =`partsurfer-itg-uid-client`\r\n// export const CLIENTID =`partsurferpro`\r\n// //export const RESPONSEURLUID=`http://localhost:3000/PartSurfer/CallBack` //RedirectUrlUID\r\n// // export const RESPONSEURLUID=`https://itg-psurf-web.glbinc.hp.com/PartSurfer/CallBack`\r\n// //export const RESPONSEURLUID=`https://partsurfer.hp.com/PartSurfer/CallBack`\r\n// export const RESPONSEURLUID=`https://pro-psurf-dr-web.inc.hp.com/PartSurfer/CallBack`\r\n// export const GETGLBURL= REDIRECTUIDURL + \"client_id=\" + CLIENTID + \"&response_type=code&scope=email&redirect_uri=\" +RESPONSEURLUID\r\n// // export const TOKENURL=`https://login-itg.external.hp.com`\r\n// export const TOKENURL=`https://login.external.hp.com`\r\n// // export const tokencallurl = `login-itg.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\n// export const tokencallurl = `login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\n// // export const UIDClientID=`partsurfer-itg-uid-client:RNotGHVuEujpS5wnnr5UKjqluWT3l1RK9UGibiHVRhhHDhhrJ8Bl8IUZP3TxNZpQ`\r\n// export const UIDClientID=`partsurferpro:GFITxrswToMsAPvXrDV1TBVEMsLo5RhtibpidPHKvWuxnqeeKKsHC4980pNbH9qp`\r\n//Uncomment if format is not correct - End\r\n//Uncomment below lines for ITG - Execution - Start\r\n//export const RESPONSEURLUID=`http://localhost:3000/PartSurfer/CallBack` //RedirectUrlUID\r\n// export const RESPONSEURLUID=`https://itg-psurf-web.glbinc.hp.com/PartSurfer/CallBack`\r\n// export const GETUIDTOKEN = (code) => `https://login-itg.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}&grant_type=authorization_code&code=${code}`\r\n// export const REDIRECTUIDURL = `https://login-itg.external.hp.com/as/authorization.oauth2?`\r\n// export const CLIENTID =`partsurfer-itg-uid-client`\r\n// export const TOKENURL=`https://login-itg.external.hp.com`\r\n// export const tokencallurl = `login-itg.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\n// export const UIDClientID=`partsurfer-itg-uid-client:RNotGHVuEujpS5wnnr5UKjqluWT3l1RK9UGibiHVRhhHDhhrJ8Bl8IUZP3TxNZpQ`\r\n// export const tokenurlforOAuth = `https://login-itg.external.hp.com/as/token.oauth2`\r\n// export const clientvaluesforOAuth = `7c2Rz7BHZGdZNNGNJp6OKAvoIj7:vhTmC30uIbv8fPdXWdLUXKuwVohdhTtLGITkihIP75gyedWrfQVdBvYp5q4SfihY`\r\n//Uncomment below lines for ITG - Execution - End\r\n//Uncomment below lines for PROD - Execution - Start\r\nexport const RESPONSEURLUID=`https://partsurfer.hp.com/PartSurfer/CallBack`\r\nexport const GETUIDTOKEN = (code) => `https://login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}&grant_type=authorization_code&code=${code}`\r\nexport const REDIRECTUIDURL = `https://login.external.hp.com/as/authorization.oauth2?`\r\nexport const CLIENTID =`partsurferpro`\r\nexport const TOKENURL=`https://login.external.hp.com`\r\nexport const tokencallurl = `login.external.hp.com/as/token.oauth2?redirect_uri=${RESPONSEURLUID}`\r\nexport const UIDClientID=`partsurferpro:GFITxrswToMsAPvXrDV1TBVEMsLo5RhtibpidPHKvWuxnqeeKKsHC4980pNbH9qp`\r\nexport const tokenurlforOAuth = `https://login.external.hp.com/as/token.oauth2`\r\nexport const clientvaluesforOAuth = `DBXDR8NP6NILHCJRYQUB2L4FOME5SBM:fiXDWQCVyqfmTN1jI6GXjt8CB8raICrSYl8DjvZiQitUCCS0hSp1sa9PU4Jqwrze`\r\n//Uncomment below lines for PROD - Execution - End\r\n//export const GETGLBURL = `https://partsurfer.hp.com/Search.aspx?code=hppinguid`\r\n//export const GETGLBURL = `https://itg-psurf-web.glbinc.hp.com/Search.aspx?code=hppinguid`\r\nexport const GETGLBURL= REDIRECTUIDURL + \"client_id=\" + CLIENTID + \"&response_type=code&scope=email&redirect_uri=\" +RESPONSEURLUID\r\nexport const GET_DIAGRAMS=(productNumber)=>`${BASE_URL}/Search/GetDiagramPath/${productNumber}`","module.exports = \"data:image/gif;base64,R0lGODlhKAAUAMQAAMwAAOmKfNgzLf8AAPvw8P+4wutMW8sIJPeomf8EIP302d1VSdIREf9YWP86L+OEk//eyc0dMPq+sv////8aLd9ga/9TSv9SZ+1COfzOy/+Edf+GlOUHI//+4+QBAf9lbiH5BAAHAP8ALAAAAAAoABQAAAW64CCOZGmeaKqubOu+ZtI0DmyPCTFNEHXDOcRlovm9ghSChtIYUC6fmqw2sDgSRaBuonA0Ot5JBjIYWkSbrlIrKfAu4MZkM7EUyKKc5ANOef6AHAQIHhUdAR0YBhMGBBITAYEFBYsYgJd/AJqbB4MCCB0VEwuGAg8dHQKbhguOm6+wr507EwizPAARExKvDwEREgyxw5wVFQuquQ8VwgujxNDR0QUKwtLX17oI2NzSEd3g4eLj5OXm59EhADs=\"","module.exports = \"data:image/gif;base64,R0lGODlhPAA8AMQfAPHx8dvb2zCq3u/v77y8vPz8/PT09ODg4NDs96DY8FC340Cw4MHBwfn5+erq6sDl9fv7+97e3uHh4fr6+sbGxvD5/ff39/Pz8xCd2bGxsdbW1gCW1u7u7tLS0qysrP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJHgAfACwAAAAAPAA8AAAF/yAnjmRpnl/6dWzrvnAnGep33jhZx3wfFamcEKXqGWEB4HA52h2frIiNuXRCnwZqtXh9SrRDa9cIForHvHLujIapcey2632Ly1l0Yuqezpfsd35/XHwvgjqEhS2HTYmKHYwigHKRHJNtlZdomY6KnHuPi5GaY58roXijnYWmqKmMpF2trrOoNbe4ubq7vL2+v8DBwsPExcbHwRvKy8zNzs81HtLT1NXW18/Z2szR197f09vi0Crg5tjj6crd5+0e6urs7ubw6fLz3/Xj9/jo+tr8+lX7ty2gwHAEsxk8+C4huRQMvTl8+CGiv4nLFh7E2EyjQI7cylkcCHKdyJEISzx67FfSJESUKUGuxNdyw8x5NW+6y3kSpoCWOtslANoT5YefMouO/IAAQ9KXMD2kQIB0YtBzNRJUJXjVXAgAIfkEBR4AHwAsAAAAADwAPAAABf/gJo5kaZ5f+nFs674wZ0Dqd944Wcd8f6m5IErVK8IAKaFytDM6Wb/lsvl0QqRKarVowAq12543CA7Hxrmy+YXGqdet9u0N58iHqTrvbqLD+SV+a4A6RHowhEyGhy6JIoJmjhuQYZKUW5aLjCyZeZtxjpdVnSufnKGam6Smp4miT6ussaY1tba3uLm6u7y9vr/AwcLDxMW/HsjJysvMzTUd0NHS09TVzdfYys/V3N3R2eDOKt7k1uHnyNvl6x3o6Ors5O7n8PHd8+H19ub42Pr70/pl+wfwm8BrBAu2OyguhUJuDBt+eMgvYrKEBS0uwwhQo7ZxFAN6TAcypMGRHPc6jSTp0ORJjyntrfQQM97MmuxulnRJYCXOdQd87jT5oSfMoSE/DMhwtKXLDikGGI34s1yNA1MFViUXAgAh+QQFHgAfACwAAAAAPAA8AAAF/6AnjmRpnl/6bWzrvvCmPOp33jhZx3y/VKmcEKXqGWEC4HA52h2frIWNuXRCnw9qtXh9KrRDa9cIForHvHLujIapcey2632Ly1l0Yuqezpfsd35/XHwvgjqEhS2HTYmKG4wigHKRHpNtlZdomY6KnHuPi5GaY58roXijnYWmqKmMpF2trrOoNbe4ubq7vL2+v8DBwsPExcbHwR3Ky8zNzs81HNLT1NXW18/Z2szR197f09vi0Crg5tjj6crd5+0c6urs7ubw6fLz3/Xj9/jo+tr8+lX7ty2gwHAEsxk8+C4huRQMvTl8+CGiv4nLFh7E2EyjQI7cylkcCHKdyJEISzx67FfSJESUKUGuxNeyw8x5NW+6y3kSZoCWOtsNANoT5YefMouO/GBBQ9KXMDmksIB0YtBzNQZUJXjVXAgAIfkEBR4AHwAsAAAAADwAPAAABf9gJ45kaZ5f+nls676wRznqd944Wcd8z0ypnBCl6hlhBOBwOdodnyyGjbl0Qp8OarV4fVK0Q2vXCBaKx7xy7oyGqXHstut9i8tZdGLqns6X7Hd+f1x8L4I6hIUth02Jih6MIoBykR2TbZWXaJmOipx7j4uRmmOfK6F4o52FpqipjKRdra6zqDW3uLm6u7y9vr/AwcLDxMXGx8EcysvMzc7PNRvS09TV1tfP2drM0dfe39Pb4tAq4ObY4+nK3eftG+rq7O7m8Ony89/14/f46Pra/PpV+7ctoMBwBLMZPPguIbkUDL05fPghor+JyxYexNhMo0CO3MpZHAhynciRCEs8euxX0iRElClBrsTXksPMeTVvust5EiaAljrbNQDaE+WHnzKLjvxQYEDSlzA3pCiAdGLQczUaVCV41VwIADs=\"","import React from 'react';\r\nimport { WIDTH_THRESHOULD } from './constants/constants';\r\n\r\nexport const ViewHOC = WrappedComponent => {\r\n // ...and returns another component...\r\n const WrappedComponentDisplayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n return class extends React.Component {\r\n static displayName = `WithView(${WrappedComponentDisplayName})`;\r\n\r\n state= {}\r\n\r\n componentDidMount() {\r\n \r\n window.addEventListener(\"resize\", this.resize);\r\n this.resize()\r\n }\r\n \r\n componentWillUnmount() {\r\n // fix Warning: Can't perform a React state update on an unmounted component\r\n this.setState = (state,callback)=>{\r\n return;\r\n };\r\n }\r\n \r\n\r\n resize = () => {\r\n this.setState({ isMobile: window.innerWidth < WIDTH_THRESHOULD })\r\n }\r\n\r\n render() {\r\n return (\r\n <WrappedComponent \r\n mobileView={this.state.isMobile}\r\n {...this.props} />\r\n );\r\n }\r\n }\r\n}","import zIndex from \"@material-ui/core/styles/zIndex\";\r\nimport React,{useEffect} from \"react\";\r\n\r\nclass GoToTop extends React.Component{\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"scroll\",this.listenToScroll)\r\n }\r\n\r\n listenToScroll=()=>{\r\n if(document.body.scrollTop>1000 || document.documentElement.scrollTop >1000){\r\n document.getElementById(\"my-btn\").style.display='block';\r\n }\r\n else\r\n {\r\n document.getElementById(\"my-btn\").style.display='none'; \r\n }\r\n }\r\n\r\n goToBtn=()=>{\r\n window.scroll({top:0 ,left:0,behavior:\"smooth\"})\r\n }\r\n\r\n render(){\r\n const mystyle= {\r\n display: \"none\", \r\n position: \"fixed\", \r\n bottom: \"20px\", \r\n right: \"30px\", \r\n zIndex: \"99\", \r\n border: \"none\", \r\n outline: \"none\", \r\n backgroundcolor: \"red\", \r\n color: \"white\", \r\n cursor: \"pointer\", \r\n padding: \"15px\", \r\n borderradius: \"10px\", \r\n fontsize: \"18px\" \r\n }\r\n\r\nreturn(\r\n <>\r\n<input type=\"button\" class=\"btn-primary rounded-pill \" id =\"my-btn\" style={mystyle} onClick={this.goToBtn} value=\"Go to top\">\r\n </input> \r\n </>\r\n);\r\n }\r\n}\r\n export default GoToTop;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD+SURBVEhL7ZY/DoIwFIe5gJ5GD6C30cVNb+LgbqJx1cTNgcEDIHALWRgYTJ79PVvlTxVi6DMxvOQjIa/w0fa1xaMfhOctI2qT/iqi4Tqk6SGk3TmgIKjSujQPPmBxvMhKDeNtKC8F81yPxaQYajPHYlIw2T96KyodqKoWl2KIa6QJxXoxlyOOVd5PKdH3xbjRyS+/60UzaZbSzJY30mtSzX2gk2oaSsvxrr3mu0IyL+3mtIY/KiQVvHnYnlGwtKe2JlvSFSzFJmxLuoKlOG5sSVewFAer5BCzFBf8StgauOApBaONjLggBeix66GuSAHmGMWFqnbxASzV61kwiO7QtaajDGxU2QAAAABJRU5ErkJggg==\"","// npm install react-cookie\r\nimport React from 'react';\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport './design.css';\r\nimport NotificationSystem from 'react-notification-system';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport Loading from './Loading';\r\nimport Cookies from 'js-cookie'\r\nimport { setCookie, getQueryParam, getURLQueryString, getAuthHeader, getAuthHeaderUID, bodyParametersUID } from './Util';\r\nimport { GETGLBURL, GET_COUNTRIES, GENERIC_SEARCH, PARTLIST, PRODUCTLIST, SERIALNUMBER, FUNCTIONAL, GETUIDRESPONSE, GETUIDTOKEN } from './constants/APIConstants';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { SEARCH_TEXT, SEARCH_BY, SEARCH_MODES, Code_Url } from './constants/constants';\r\nimport \"./nav.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getLocationObject, generateToken } from \"./Util\";\r\nimport Login from \"./login\";\r\nimport { isMobile } from 'react-device-detect';\r\nimport GoToTop from './GoToTop';\r\nimport Select from \"react-select\";\r\nimport qs from 'query-string';\r\nimport {tokenurlforOAuth, clientvaluesforOAuth} from './constants/APIConstants';\r\nexport function toBase64(input) { return Buffer.from(input, 'utf-8').toString('base64')}\r\nexport const TOKEN_EXP = `${process.env.REACT_API_TOKEN_EXP}`\r\n\r\n//import { useCookies, Cookies } from \"react-cookie\";\r\n\r\nclass Form extends React.Component\r\n{\r\n state = {\r\n FieldName: '',\r\n country: '',\r\n loading: false,\r\n searchBy: '',\r\n searchyByText: '',\r\n arraySearchBy: '',\r\n topmenuValue: '',\r\n code : '',\r\n User : '',\r\n };\r\n\r\n componentDidMount() {\r\n getURLQueryString();\r\n generateToken();\r\n //setCookie('HP_Country', \"US\");Commented for adding Home page Changes\r\n //setCookie(\"Search_Text\",\"Generic Search\");\r\n if(localStorage.getItem(\"Temp_Country\")!='' && localStorage.getItem(\"Temp_Country\")!=null)// Added By Shreyas For Home Page Country Drop down--Start Here\r\n {\r\n setCookie('HP_Country',localStorage.getItem(\"Temp_Country\"));\r\n //localStorage.setItem(\"Temp_Country\",'');\r\n }\r\n else\r\n {\r\n setCookie('HP_Country', \"US\");\r\n localStorage.setItem(\"Temp_Country\",'US');\r\n }// Added By Shreyas For Home Page Country Drop down--End Here\r\n\r\n\r\n // let values = this.props.location.search;\r\n\r\n // let username = localStorage.getItem(\"loggeduser\");\r\n\r\n // if(username == null)\r\n // {\r\n // if(values.includes(\"code\"))\r\n // {\r\n // var array = values.split(\"=\");\r\n // //localStorage.setItem(\"loggeduser\",array[1]);\r\n // //this.setState({ User: localStorage.getItem(\"loggeduser\") });\r\n // console.log(localStorage.getItem(\"loggeduser\"));\r\n // }\r\n // }\r\n // else{\r\n // localStorage.setItem(\"loggeduser\",username);\r\n // this.setState({ User: username });\r\n // }\r\n let username = secureLocalStorage.getItem(\"loggeduser\"); \r\n if(username == \"UID_Failed\")\r\n {\r\n alert(\"We are facing problem on HP UID authentication. Please try again\");\r\n secureLocalStorage.removeItem(\"loggeduser\")\r\n }\r\n\r\n this.setState({\r\n countryLoading: true,\r\n country: Cookies.get('HP_Country') || 'US',\r\n FieldName: getQueryParam(this.props, SEARCH_TEXT),\r\n searchBy: getQueryParam(this.props, SEARCH_BY),//Added\r\n //topmenuValue :Cookies.get(\"Search_Text\")\r\n },\r\n () => {\r\n this.state.FieldName && this.loadData()\r\n });\r\n this.notificationSystem = React.createRef();\r\n this.setusertype();\r\n //alert(getAuthHeader());\r\n axios.get(GET_COUNTRIES(localStorage.getItem(\"usertype\")), {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n const data = res.data.Body;\r\n let dat = data.map((con, index) => {\r\n return { key: con.CountryCode, value: con.CountryName }\r\n })\r\n this.setState({ data: dat, countryLoading: false })\r\n }, (error) => {\r\n // console.log(error);\r\n this.setState({ countryLoading: false })\r\n })\r\n \r\n document.getElementById(\"\")\r\n}\r\n\r\n getUID = (input) => {\r\n this.setState({ countryLoading: true })\r\n let urlprod;\r\n urlprod = GETUIDRESPONSE(input);\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeaderUID()\r\n },\r\n\r\n })\r\n .then((res) => {\r\n this.setState({ data: res.data.Body, countryLoading: false })\r\n console.log(res.data.Body);\r\n }, (error) => {\r\n this.setState({ data: null, countryLoading: false })\r\n })\r\n }\r\n\r\n setusertype = () => {\r\n let username = secureLocalStorage.getItem(\"loggeduser\");\r\n if(isMobile)\r\n {\r\n if(username == null)\r\n {\r\n localStorage.setItem(\"usertype\",\"MEX\");\r\n }\r\n else\r\n {\r\n localStorage.setItem(\"usertype\",\"MIN\");\r\n }\r\n }\r\n else\r\n {\r\n if(username == null)\r\n {\r\n localStorage.setItem(\"usertype\",\"EXT\");\r\n }\r\n else\r\n {\r\n localStorage.setItem(\"usertype\",\"INT\");\r\n }\r\n }\r\n }\r\n\r\n removeCookie = (e) => {\r\n e.preventDefault();\r\n secureLocalStorage.removeItem(\"loggeduser\");\r\n this.setState({ User: null });\r\n alert(\"LogOut Success!\");\r\n window.location.href = \"/\";\r\n }\r\n\r\n addNotification = text => {\r\n const notification = this.notificationSystem.current;\r\n // console.log('noti', notification)\r\n notification.addNotification({\r\n message: text,\r\n level: 'error',\r\n position: 'tc',\r\n });\r\n };\r\n\r\n loadData = () => {\r\n const { FieldName, country, searchBy } = this.state;\r\n if (country) {\r\n this.setState({ dataLoading: true }, () => this.props.onSubmit(null))\r\n let url;\r\n switch (searchBy) {\r\n case SEARCH_MODES.PART: url = PARTLIST(FieldName, country, localStorage.getItem(\"usertype\"))\r\n break;\r\n case SEARCH_MODES.PRODUCT: url = PRODUCTLIST(FieldName, country,localStorage.getItem(\"usertype\"))\r\n break;\r\n case SEARCH_MODES.SEARIAL_NUMBER: url = SERIALNUMBER(FieldName, country,localStorage.getItem(\"usertype\"))\r\n break;\r\n case SEARCH_MODES.SERIAL_WP: url = SERIALNUMBER(FieldName, country, localStorage.getItem(\"usertype\"))\r\n break;\r\n case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: url = FUNCTIONAL(FieldName, country,localStorage.getItem(\"usertype\"))\r\n break;\r\n default:\r\n url = GENERIC_SEARCH(FieldName, country, localStorage.getItem(\"usertype\"))\r\n }\r\n // console.log('url', url, searchBy)\r\n axios.get(url, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n // console.log('call succes data:', response)\r\n this.props.onSubmit(response.data.Body ? response.data.Body : !searchBy ? {} : null, searchBy)\r\n this.setState({ dataLoading: false })\r\n }, (error) => {\r\n // console.log(error);\r\n this.setState({ dataLoading: false })\r\n })\r\n }\r\n else {\r\n this.addNotification('Please select the country')\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n // console.log(\"getitem\", getStoredCart())\r\n // component\r\n // console.log('update')\r\n // const prevText = getQueryParam(this.props, SEARCH_TEXT);\r\n // const text = getQueryParam(nextProps, SEARCH_TEXT)\r\n const prevMode = this.state.searchBy;\r\n const nextMode = getQueryParam(nextProps, SEARCH_BY)\r\n const prevText = this.state.FieldName;\r\n //Modified by Shreyas - Keep the text value even after changing Search Type Dropdown - Start\r\n //const text = getQueryParam(nextProps, SEARCH_TEXT)\r\n const text = this.state.FieldName;\r\n //Modified by Shreyas - Keep the text value even after changing Search Type Dropdown - End.\r\n // console.log('prevtext', prevText, 'text=', text, 'prevMode=', prevMode, 'nextMode=', nextMode)\r\n if ((prevText !== text) || prevMode !== nextMode) {\r\n this.setState({ searchBy: nextMode, FieldName: text }, () => {\r\n this.props.onSubmit(null)\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(){\r\n const withclasses=Array.from(\r\n document.getElementsByClassName(\"dropdown-item\")\r\n );\r\n withclasses.forEach(element=>{\r\n if(element.innerText==this.state.topmenuValue){\r\n element.classList.add(\"active\");\r\n }\r\n else{\r\n element.classList.remove(\"active\");\r\n }\r\n });\r\n }\r\n\r\n handleSubmit = async (event) => {\r\n const { searchBy } = this.state;\r\n event.preventDefault();\r\n this.loadData()\r\n this.props.history.push({\r\n pathname: `${process.env.REACT_APP_HOME_DIRECTORY}`,\r\n search: `?${SEARCH_TEXT}=${this.state.FieldName}${searchBy ? `&${SEARCH_BY}=${searchBy}` : ''}`\r\n\r\n })\r\n };\r\n\r\n getSearchMode = () => {\r\n const { searchBy } = this.state;\r\n switch (searchBy) {\r\n case SEARCH_MODES.PART: return 'Enter Part Number';\r\n case SEARCH_MODES.PRODUCT: return 'Enter Product Number';\r\n case SEARCH_MODES.SERIAL_WP: return 'Enter Serial Number';\r\n case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: return 'Enter Part Number';\r\n case SEARCH_MODES.WILD_CHAR: return 'Wild Character Search';\r\n default: return 'Enter Part/Product/Serial Number';\r\n }\r\n }\r\n\r\n setSearchModeLink = () => {\r\n\r\n\r\n const { searchBy, arraySearchBy, topmenuValue } = this.state;\r\n if(searchBy != arraySearchBy)\r\n {\r\n this.setState({ searchyByText: this.getSearchResult(searchBy), arraySearchBy: searchBy });\r\n this.setState({topmenuValue : this.getSearchResultText(searchBy)});\r\n }\r\n // var list=document.getElementsByClassName(\"dropdown-item\");\r\n // for (var i = 0; i < list.length; ++i) {\r\n // if(topmenuValue==list[i].innerText){\r\n // list[i].classList.add('active');\r\n // }\r\n // else{\r\n // list[i].classList.remove('active');\r\n // }\r\n // }\r\n //Added by Shreyas to highlight the selected text--End\r\n\r\n\r\n }\r\n\r\n getSearchResult = (searchBy) => {\r\n switch (searchBy) {\r\n case SEARCH_MODES.PART: return 'Search By - Part Number';\r\n case SEARCH_MODES.PRODUCT: return 'Search By - Product Number';\r\n case SEARCH_MODES.SERIAL_WP: return 'Search By - Serial Number';\r\n case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: return 'Search By - Part Number';\r\n case SEARCH_MODES.WILD_CHAR: return 'Search By - Wild Char';\r\n default: return 'Search By - Part/Product/Serial Number';\r\n }\r\n }\r\n\r\n getSearchResultText = (searchBy) => {\r\n switch (searchBy) {\r\n case SEARCH_MODES.PART: return 'Part';\r\n case SEARCH_MODES.PRODUCT: return 'Product';\r\n case SEARCH_MODES.SERIAL_WP: return 'Serial Number';\r\n case SEARCH_MODES.FUNCTIONAL_EQUIVALENT: return 'Functional Equivalent';\r\n case SEARCH_MODES.WILD_CHAR: return 'Wild Character';\r\n default: return 'Generic Search';\r\n }\r\n }\r\n\r\n render() {\r\n\r\n const { countryLoading, dataLoading, country, data, topmenuValue, User } = this.state;\r\n\r\n return (\r\n\r\n <React.Fragment>\r\n <Loading loading={countryLoading || dataLoading} >\r\n <div>\r\n <br />\r\n <Login />\r\n <div className=\"row\">\r\n <div className=\"col-sm-6\">\r\n </div>\r\n <div className=\"col-sm-6\">\r\n <div style={{ float: 'right' }} className=\"country-container\">\r\n {/* <Dropdown onSelect={(a, b) => {\r\n this.setState({ country: a })\r\n setCookie('HP_Country', a)\r\n }}>\r\n <label><b>Select Country: </b></label>\r\n <Dropdown.Toggle id=\"dropdown-basic\" className={\"country-selector\"} >\r\n {((data || []).find(c => c.key === country) || {}).value || 'Please select your country'}\r\n </Dropdown.Toggle>\r\n\r\n <Dropdown.Menu onSelect={(a, b) => {\r\n // console.log(\"dropdownselect\", a, b.currentTarget)\r\n }}>\r\n {\r\n (data || []).map((country, index) =>\r\n <Dropdown.Item eventKey={country.key} key={index}>{country.value}</Dropdown.Item>\r\n )\r\n }\r\n </Dropdown.Menu>\r\n </Dropdown> */}\r\n\r\n <label><b>Select Country: </b></label>\r\n\r\n <Select id=\"dropdown-basic\" className={\"country-selector\"}\r\n options={(data || []).map((country, index) => ({\r\n value: country.key,\r\n label: country.value,\r\n }))}\r\n defaultValue={{ label: ((data || []).find(c => c.key === country) || {}).value || 'Please select your country' }}\r\n onChange={(country, index) => {\r\n this.setState({ country: country.value})\r\n setCookie('HP_Country', country.value)\r\n localStorage.setItem(\"Temp_Country\",country.value)\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <h1>\r\n <span id=\"ctl00_PageTitle\">HP PartSurfer</span>\r\n </h1>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-9\">\r\n <span id=\"ctl00_SubTitle\">HP PartSurfer provides fast, easy access to service parts information for a wide range of HP Products.</span>\r\n </div>\r\n <br/>\r\n </div>\r\n\r\n <form onSubmit={this.handleSubmit}>\r\n <div >\r\n <div className=\"input-group\">\r\n <div className=\"input-group-prepend\">\r\n {isMobile?(<button type=\"button\" class=\"search btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" data-width=\"\">\r\n <span class=\"caret\"></span>\r\n\r\n </button>):\r\n <button type=\"button\" style={{width:\"177px\"}} class=\"search btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\" data-width=\"\">\r\n <span class=\"caret\"></span>\r\n <span >{topmenuValue}</span>\r\n </button>}\r\n <ul class=\"dropdown-menu pull-right\" role=\"menu\" id=\"searchList\">\r\n <li class=\"list\" >\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.PART)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Part\r\n </Link>\r\n </li>\r\n <li class=\"list\">\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.PRODUCT)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Product\r\n </Link>\r\n </li>\r\n <li class=\"list\">\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.SERIAL_WP)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Serial Number\r\n </Link>\r\n </li>\r\n <li class=\"list\">\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.FUNCTIONAL_EQUIVALENT)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Functional Equivalent\r\n </Link>\r\n </li>\r\n <li class=\"list\">\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.WILD_CHAR)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Wild Character\r\n </Link>\r\n </li>\r\n <li class=\"list\">\r\n <Link className=\"dropdown-item\" to={getLocationObject()} onClick={this.setSearchModeLink()}>\r\n Generic Search\r\n </Link>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n {/* <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" placeholder={this.getSearchMode()} value={this.state.FieldName || ''}\r\n onChange={event => this.setState({ FieldName: event.target.value })} required /> */}\r\n\r\n <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" placeholder={this.getSearchMode()} value={this.state.FieldName } onChange={event => this.setState({ FieldName: event.target.value })} required />\r\n <div className=\"input-group-append\">\r\n <button type=\"submit\" className=\"search btn btn-primary\" >\r\n <i className=\"fa fa-search\"></i>\r\n </button>\r\n\r\n\r\n {/* <button type=\"button\" class=\"search btn btn-primary dropdown-toggle\" data-toggle=\"dropdown\">\r\n <span class=\"caret\"></span>\r\n </button>\r\n <ul class=\"dropdown-menu pull-right\" role=\"menu\">\r\n <li >\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.PART)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Part\r\n </Link>\r\n </li>\r\n <li>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.PRODUCT)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Product\r\n </Link>\r\n </li>\r\n <li>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.SERIAL_WP)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Serial Number\r\n </Link>\r\n </li>\r\n <li>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.FUNCTIONAL_EQUIVALENT)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Functional Equivalent\r\n </Link>\r\n </li>\r\n <li>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.WILD_CHAR)}\r\n onClick={this.setSearchModeLink()}\r\n >\r\n Wild Character\r\n </Link>\r\n </li>\r\n <li>\r\n <Link className=\"dropdown-item\" to={getLocationObject()} onClick={this.setSearchModeLink()}>\r\n Generic Search\r\n </Link>\r\n </li>\r\n\r\n </ul> */}\r\n\r\n {/* */}\r\n {/* id=\"navbarSupportedContent\" */}\r\n {/* Santhosh - Searchby Menu */}\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n {/* <br/> */}\r\n\r\n {/* <span style={{color: \"#007bff\"}}>Selected Search Type : {topmenuValue} </span> */}\r\n {/* <div className=\"row\">\r\n\r\n <div className=\"col-md-9\">\r\n {this.state.searchyByText && <div style={{color: \"#007bff\"}}>{this.state.searchyByText}</div>\r\n }\r\n </div>\r\n </div> */}\r\n <div className=\"row\">\r\n <p></p>\r\n </div>\r\n <NotificationSystem ref={this.notificationSystem} />\r\n </form>\r\n </div>\r\n </Loading>\r\n\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Form)\r\n","module.exports = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAYAAADk3wSdAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE3SURBVEhLtVQxDsIwDOwP4EfwA/gJT4AfwNQJqV9ggpGBDQbE0jIiQKoEol2Q6IBk4iRO2iSVoA2WTgiffXbsNAH8wYIgjOFXdOdH6C9OMNndYX9/SSltjUTLwAKzw0PKCWstShiuLlLSoyhiKjv2KoqjwBl7FUWMtzdbdHR98yMIKyBivigTvyouKSSvLUkE12O3oiIaZSIgv6bSl0PCPVpUFc1ylUc+zMMRaNHNE3JOGV2FKawL6auNoeJvWG/YfyJcHZhQMcUTRhUOCwuKn5IIOnozUSPfSlCiurowdmRa0Led6o2W50XB5LMXJ1AzU4S9fVPUPXsrjwgF8w465qdvgTa6pxyVYF9wOtuig1+Ai2gDfK6cRBvgkAfLs5tsCr46Ztixt1FITW74wOJ7iM9X8wIxfADP1Vx3Opx5EgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAbCAYAAAAQ2f3dAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAH3SURBVFhHzZa9b8IwFMT7VzMhRlYaloSNFakFoYqFEUaGCsEIYyQWslRiYHH1e+Qi56MiVaXGJ50S+57ty/Nzkpder+f+m/1+30XjsXtfLNznfu/Sy6VE0Ikxn5j8WK3CMyYmk0mYxqAyF5wxtpWaC84YfJvPwzT2GkU/GxsOhy6O41o/HI1GbjAYNGr0M47xTXobsp01Yyx6vV5NEKbTqWm32y3veYA44jV2s9nkygOn06l4AOYQlsul9W2327zHleaBoGTsfD5bZ5Zldg9ns1kRDHa7nTsej3afpqlp/sJoeggWR1+v19YGzEkfY4UkSaxPBCVjQjWwqkEBDbOAK22yAmTcNwbIJJC5p8YUyBMzmV9LAosfDofiHk2ZZgztqnEZU5y2UVeNE0Gtxvxa4l77X4WvtTWmKyAJfj9xIigZg2SJQBmkZhQM2CbVFDFoz4ypJtH9rP3KmKhBTERbUD0IZO1ZjfnGOUy0mae1MZ6CYw6VMS0m0EYHyhiLqU39aaxOZTWjYmtjSrnAE+tlqcUENL3joApZwIwOj7+VioetjUEmI83+iWxLjf3Lmx+aMT4BTWKXNGN8NJvELmnG+M1oErukGePHLLTtNGP8yvJL2xTQFQtjMM5fnCGwZEyZC2Fba8YgNceB4LR2ZdKMZV93Fx7v7ht4iykx6Qf/1gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAACJElEQVQ4T52UvWsTYRzHv8/1Lrnkei82RgxWsbaV1kIl2sGlikXQP8BBcbAVHLLo4OTQSUHBVcSxoDjUQbsIXQTbTnWoDrUgGrXUl1hpTUrS5JLL4+85bki5J6TxAz/unpf7Pr+355j+eJmXtz1AUQDGEVUZypkh/A/KtaMO0k4EY/t1OLqKyrqLxVwxWG4TTuSKrnjwWws/Oe6/49dff/fH7UKxAfvimi98qc8mXxkWvmz543ZhQjF499EevEfU0PDwbAqWxlCtBwtNYGSlqoczB4yw2InpLJbWSoBLRanvWGoBD4tNfdjExMwqsCci1lsjXKODzx0y4eeskfFBB9iuicoEMy0Q24o1ZI7ZYTEwOsqkgni7FBOeVTyMUs7CYsTVdAIoU852AwkdH7BhUY9Kxa70WbSJyihCLVPIJTIRusz+urjcYyLawcIFEHwtuOh5tAI7EcFEv4M4HdnMzw3K182RvRhKxuSemZqCwe448hRqTO9AZ1yFQSaejaZEFZzuNTGQ0P3vpJ4JJud+4O6bHMh/6jfRuSLTDYghdXSSvJ+92It0Um8utrJZwdOPeXF3pbeAUgROloqpuDHcRbdQTEhYy1f4+edZPv5qldeqXjAb5t7b33z02Sf+ZHnDH0tzNvO5gNmlP5ia+4UX5J2MArXE7ZffMJ/dwp3FderburwAF45Y6DrYicP9Nk52G8HsTizKZWYsRX8GBZOnkjBUBf8ABVY4WM/0nH4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAAAbCAYAAADoFcRvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAWASURBVHhe7Zq/blxFFMZ5AuAReASeAHgC4A2gokwoqQBRAgIKKNI4NEhIFOA0IIEITapICVCFhkAkS5EcAQpCQjQX/yb+rT4f5i6768VeovmkT753zpnzZ86ZmevEj/zy+1/Twd27g4M7R9AatD28dGlw8Ez52IW96em39qfXrlyfbvx82PqwYjTo4E6QZn33y+9aLyZGgw7uFJ/74IvWj2I06ODO8Z04SUeDDu4cue79Jh0NOriTfHX/+oO+HA06uIt86s39B325rEGfeOWj9s8AOcZ7HXvY+OQbn7SP9Z5sG8Q+a8j69uTb5OMX91oup/FlH5xFvJJrvvVlr0FZwNuH99u4eP64YCL1t81n3r5y7OUkerqnJb74d7hcfIEsdbfFb344aPZfP/Kb43N5n6Yx8AHw2ZOvQm3UeNdlb62XEXQb1AX86d799gxfvHx1MQmk/raZhdI/7Omelr3Ff/nja+2d0yd1t0VyqT7hXN4cGKm3DpmLHw+YTdhbo024rh3QbVDRO0HExaMi3rxzOH1648dFIVkM3n/9488mY7c4fvXWwXT52q0TtiDjMMeyUDkO3/vq+6aPzWpXGZsJ/zBz4B+CGeN2YJHQ86bgJ7GjZ0zudHLlnbz4iV/Gma8/5mIDH8iY65i2tbdKg+a4fGHv60VskjnGwcZCTxn+lOHL9TLPjJ/3Gq959hqL2jIXXdbfHtAX66AdZPhg/YDj2uEdMDfrBboN+u2de20MgxjIk6QHA9cR8387DobASFRoA920p32YhcI/9ASwuOjUgipL0JDIXGSA3mc3bzebFeiK6iPXpdpM0BjkjB/oWuAz48yCw17eNk/GahwAG8aBXXQF9lJGHQV6bGhgHMbLzQmskTbUIyaAnrpujh6QwYrsC31rR1uz36AuKqAg7iZBsibIwmfyPJuURREZFIUE+Er/WShB8Mj4CWrzpAzfy2T6mRsXtcDryLRFvpzAgrG5WDJmoe0Pj04pwJrX3NaJ0YZCZhx5/RMvvxCJtG+8zsOGsVTf2R91nu/OZSP0fvEG3QaFNlnd/YJnA8exzkCV8e6uZ4fkrgPqyLTlIrhBTNJxkTJ8z8kY10+d45hA1zyUp52ao0BGvF5piTmfMGPmWTt1TuohWxZHlVFHQFN641FrDgvfE2nfeI0lsaw/6jzf8Zu3AeuVmwXMNqjUSU2+yjwNQW+eJwAB8cy4wbHT0JG1AEmTJJGqpwzfc7K8Quocx0QW2BhFr/giZVyHy+LUJ6x6SRuLOVVvlTiUeT1nPRj3sKh5pn3jNX7m4ANS/1Xn+S6ppfkZJwTdBiVIPlihpwAJOQnwbAAa9WTko5lvP2BDuDCAZ+eC3DVwWaFMkt2eOz5l2K42LAhz8tvOceLlKmZMYMO4nScoSM1fME8ZvwxAgZ7FwKeFhRmz6w85RW0g6sH6CubpCxn6IuMwRk6thPXRPjHlXxWlfWTE4tXNu9/K+EJX5Dx+8p55s9bYcr5rZJza6jaohgS7bNkO0SiNlt+ujLMgyPKEJTB0BfIkclFlOY/m0h8y/AHiqjbwn9cJOTKOXsbMmO8uuk0sbG6Lav45D39uWHz5jF7moA+YMSfQyeuwxosvx9BxHZhXY4SZj3VN++hqAxl2tM/aoqtc2OiC59qgaQdk3IDnPKzA0m9QF6bK/o0s9Cbz1uGm9plHfHW8N5acm3cepC4ix896zWkwYsmxVVjXETu9tW352aCPXvhvkxvcHimm6MkfFrb8bFD+c76nNLib5OTa5PT6PxEsGpQ/b+opDQ6eF8GiQfkD0XHND+4SwaJBAX9q31McHDwPghMNCp59//Ou8uDgWRP8o0EBJ+m47gfPm6DboIBvUn5x4rf70ayD58Fpmqa/AX0jw76UPzV9AAAAAElFTkSuQmCC\"","import React from 'react'\r\nimport loader from '../page_preload.gif'\r\n\r\nexport default function Loading({ loading = false, children }) {\r\n return (\r\n // <div>\r\n // {loading && <div className=\"nested-loading\" style={{\r\n // position: 'fixed', left: '50%', top: '50%', zIndex: 999, opacity: 1\r\n // }}>\r\n // <img src={loader} alt=\"loading...\" /></div>}\r\n // <div className={loading ? 'loader' : undefined} style={{ pointerEvents: loading ? 'none' : 'all' }}>\r\n // {children}\r\n // </div >\r\n // </div>\r\n <div style={{ position: 'relative', boxSizing: 'border-box' }}>\r\n {loading && <div>\r\n <div style={{\r\n position: 'absolute',\r\n height: '100%',\r\n zIndex: 999,\r\n display: 'block', width: '100%', textAlign: 'center'\r\n , top: '50%'\r\n }}>\r\n <img src={loader} alt=\"loading...\" />\r\n </div>\r\n </div>}\r\n {loading ? <div style={{ opacity: '0.2' }}>\r\n {children}\r\n </div> : children}\r\n </div>\r\n )\r\n}\r\n","import Cookies from 'js-cookie';\r\nimport qs from 'query-string';\r\nimport { get } from 'lodash';\r\nimport { SEARCH_TEXT, SEARCH_BY } from './constants/constants';\r\nimport { Sync } from '@material-ui/icons';\r\nimport secureLocalStorage from 'react-secure-storage';\r\nimport {tokenurlforOAuth , clientvaluesforOAuth} from './constants/APIConstants';\r\nexport function toBase64(input) { return Buffer.from(input, 'utf-8').toString('base64')}\r\n\r\nconst token ='';\r\n\r\nexport const getCookie = () => {\r\n Cookies.get('HP_Country');\r\n}\r\n\r\nexport const setCookie = (key, value) => {\r\n Cookies.set(key, value)\r\n}\r\n\r\n\r\nexport const getQueryParam = (props, key) => {\r\n const search = get(props, 'history.location.search', '');\r\n const query = qs.parse(search);\r\n if (key) {\r\n return query[key];\r\n } else {\r\n return query;\r\n }\r\n};\r\n\r\nexport const getURLQueryString = (searchText, searchBy) => {\r\n if (!searchText && !searchBy) {\r\n return null;\r\n }\r\n searchText=encodeURIComponent(searchText);//Added By Shreyas to encode for Part/Product with Special characters.\r\n let params = [];\r\n searchText && params.push(`${SEARCH_TEXT}=${encodeURIComponent(searchText)}`)\r\n searchBy && params.push(`${SEARCH_BY}=${searchBy}`)\r\n // console.log('23', `?${params.join('&')}`)\r\n return `?${params.join('&')}`\r\n}\r\nexport const getURLQueryStringBySearch = (searchText) => {\r\n if (!searchText) {\r\n return null;\r\n }\r\n let params = [];\r\n searchText=encodeURIComponent(searchText);//Added By Shreyas to encode for Part/Product with Special characters.\r\n searchText && params.push(`${SEARCH_TEXT}=${searchText}`)\r\n //searchBy && params.push(`${SEARCH_BY}=${searchBy}`)\r\n // console.log('23', `?${params.join('&')}`)\r\n return `?${params.join('&')}`\r\n}\r\nexport const getLocationObject = (searchText, searchBy) => {\r\n let queryString = '';\r\n if (!searchText && !searchBy) {\r\n queryString = '';\r\n }\r\n if(searchText)//Added this condition to perform encoding only if some value is passed for search text\r\n {\r\n searchText=encodeURIComponent(searchText);//Added By Shreyas to encode for Part/Product with Special characters(Hierarchy Pop Up Data)\r\n }\r\n let params = [];\r\n searchText && params.push(`${SEARCH_TEXT}=${searchText}`)\r\n searchBy && params.push(`${SEARCH_BY}=${searchBy}`)\r\n queryString = `?${params.join('&')}`\r\n return {\r\n pathname: `${process.env.REACT_APP_HOME_DIRECTORY}`,\r\n search: queryString || undefined\r\n }\r\n}\r\n\r\nexport const generateToken= () => {//Added to Generate Token after Specific Interval--Start\r\n //alert(\"Generate Token Called.!\");\r\n const axios = require('axios');\r\n //const qs = require('qs');\r\n let data = qs.stringify({\r\n 'grant_type': 'client_credentials' \r\n });\r\n const encodedval = toBase64(clientvaluesforOAuth);\r\n let tokenurl = tokenurlforOAuth;\r\n let config = {\r\n method: 'post',\r\n maxBodyLength: Infinity,\r\n url: tokenurl,\r\n headers: { \r\n 'Content-Type': 'application/x-www-form-urlencoded', \r\n 'Authorization': 'Basic ' + encodedval\r\n },\r\n data : data\r\n };\r\n\r\n axios.request(config)\r\n .then((response) => {\r\n localStorage.setItem(\"TestTokenobject\",JSON.stringify(response.data));\r\n var expTime = new Date(new Date().getTime() + 1 * process.env.REACT_APP_TOKEN_EXP * 1000);\r\n const token=JSON.stringify(response.data);\r\n const value=JSON.parse(token);\r\n Cookies.set(\"TokenFlag\",\"TOKEN\", {\r\n expires: expTime // Will expire after(value is in number of sec.)\r\n })\r\n secureLocalStorage.setItem(\"TokenValue\",value.access_token);\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n }); \r\n}//Added to Generate Token after Specific Interval--End\r\n\r\nexport const getAuthHeader = () => {\r\n // console.log('aa', process.env.REACT_APP_API_USERNAME, process.env.REACT_APP_API_PASSWORD)\r\n //const token = Buffer.from(`${process.env.REACT_APP_API_USERNAME}:${process.env.REACT_APP_API_PASSWORD}`).toString('base64')\r\n if(Cookies.get(\"TokenFlag\")){\r\n const token=secureLocalStorage.getItem(\"TokenValue\");\r\n //alert(\"valid cookie msg :from auth function\");\r\n return {\r\n 'Authorization': `Bearer ${token}`,\r\n }\r\n }\r\n else{\r\n generateToken();\r\n //alert(\"Cookie is Undefined\");\r\n const token1=secureLocalStorage.getItem(\"TokenValue\");\r\n //alert(\"valid cookie msg :from auth function\");\r\n return {\r\n 'Authorization': `Bearer ${token1}`,\r\n }\r\n }\r\n}\r\n\r\nexport const getAuthHeaderUID = () => {\r\n const token = Buffer.from(`${process.env.REACT_APP_API_USERNAME}:${process.env.REACT_APP_API_PASSWORD}`).toString('base64')\r\n return {\r\n 'Authorization': `Basic ${token}`,\r\n 'content-type': 'application/x-www-form-urlencoded',\r\n }\r\n }\r\n\r\n export const bodyParametersUID = (code) => {\r\n return {\r\n 'grant_type': 'authorization_code',\r\n 'code': `${code}`,\r\n }\r\n };","module.exports = __webpack_public_path__ + \"static/media/Cart.f5c3ec32.png\";","export const setCarItems = (payload) => ({\r\n type: \"SET_CART_ITEMS\",\r\n payload,\r\n});\r\n\r\n\r\n","import Cookies from \"js-cookie\";\r\n\r\nexport const CART_KEY = \"PS_CART\";\r\n\r\nexport const getStoredCart = () => {\r\n return Cookies.getJSON(CART_KEY) || [];\r\n};\r\n\r\nexport const setStoredCart = (cartDetails) => {\r\n Cookies.set(CART_KEY, JSON.stringify(cartDetails));\r\n //Cookies.set(CART_KEY, cartDetails);\r\n sessionStorage.setItem(CART_KEY, cartDetails);\r\n};\r\n\r\nexport const getItemIndex = (partNumber, cartList) => {\r\n // console.log(\"inex\", partNumber, cartList);\r\n if (partNumber) {\r\n let items = [...(cartList || [])];\r\n let index;\r\n items.forEach((item, i) => {\r\n if (item.PartNumber === partNumber) index = i;\r\n });\r\n return index;\r\n }\r\n};\r\n","import Cookies from \"js-cookie\";\r\nimport React from \"react\";\r\nimport { Col, Container, Modal, Row } from \"react-bootstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { setCarItems } from \"../Actions\";\r\nimport Cart from \"../Cart.png\";\r\nimport { getItemIndex } from \"../CartUtils\";\r\nimport \"./cartModal.css\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { size } from \"lodash\";\r\nimport { CARTMETRIC } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport { getAuthHeader } from './Util';\r\n\r\nconst StyledTableCell = withStyles((theme) => ({\r\n head: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n },\r\n body: {\r\n fontSize: 14,\r\n },\r\n}))(TableCell);\r\n\r\nconst StyledTableRow = withStyles((theme) => ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n },\r\n}))(TableRow);\r\n\r\nclass CartModal extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n showHide: false,\r\n cart: [],\r\n };\r\n }\r\n\r\n handleModalShowHide = () => {\r\n this.setState({ showHide: !this.state.showHide });\r\n };\r\n\r\n removeItem = (partNumber) => {\r\n const { cart, setCartItems } = this.props;\r\n const ind = getItemIndex(partNumber, cart);\r\n if (ind > -1) {\r\n let newCart = cart || [];\r\n newCart.splice(ind, 1);\r\n console.log(\"remove\", newCart);\r\n setCartItems(newCart);\r\n }\r\n console.log(\"partnum\", partNumber);\r\n };\r\n\r\n updateQuantity = (partNumber, qty) => {\r\n console.log(\r\n \"quant\",\r\n partNumber,\r\n typeof qty,\r\n typeof Number(qty),\r\n Number(\"0001\"),\r\n Number(qty)\r\n );\r\n qty = Number(qty);\r\n const { cart, setCartItems } = this.props;\r\n const ind = getItemIndex(partNumber, cart);\r\n if (ind > -1) {\r\n if (qty > 0 && qty < 100) {\r\n cart[ind].qty = qty;\r\n } else {\r\n alert(\"Quantity between 1 to 99 Only\");\r\n cart[ind].qty = 1;\r\n }\r\n setCartItems(cart);\r\n }\r\n let urlprod;\r\n urlprod = CARTMETRIC(partNumber, qty, 2);\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n }, (error) => {\r\n })\r\n };\r\n\r\n truncate = (source, size) => {\r\n return source.length > size ? source.slice(0, size - 1) + \"…\" : source;\r\n };\r\n\r\n getRedirectURL = () => {\r\n const { cartQty } = this.props;\r\n console.log(\"cq\", cartQty);\r\n let URL=`${process.env.REACT_APP_HPPS_PATH}`\r\n URL = `${URL}&cc=${Cookies.get(\"HP_Country\") || \"US\"}`;\r\n Object.entries(cartQty).forEach(\r\n ([partNumber, qty], index) =>\r\n (URL = `${URL}&partnumber${index}=${partNumber}&.qty${index}=${qty}`)\r\n );\r\n return window.open(URL, \"_blank\");\r\n };\r\n\r\n render() {\r\n const { mobileView} = this.props;\r\n console.log(\"props value\",this.props.cart)\r\n const columns = [\r\n {\r\n dataField: \"PartNumber\",\r\n text: \"Part Number\", \r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n },\r\n {\r\n dataField: \"EnhancedDescription\",\r\n text: \"Part Description\", \r\n formatter: (col) => (\r\n <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n ), \r\n headerStyle: () => {\r\n return { width: \"10%\" };\r\n },\r\n },\r\n {\r\n dataField: \"qty\",\r\n text: \"Quantity\",\r\n formatter: (col, prod, row, index) =>\r\n col ? (\r\n <div className=\"input-group\">\r\n <span className=\"input-group-btn\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-default btn-number\"\r\n onClick={() => {\r\n prod.qty - 1 > 0 &&\r\n this.updateQuantity(\r\n prod.PartNumber,\r\n prod.qty - 1\r\n );\r\n }}\r\n >\r\n <i className=\"fas fa-minus\" />\r\n </button>\r\n </span>\r\n <div onChange={(e) => {\r\n this.updateQuantity(\r\n prod.PartNumber,\r\n e.currentTarget.value\r\n );\r\n }}>\r\n <Container style={{alignItems:'center',border:'inset',maxWidth:'100%',paddingBottom:'10%',minWidth:'50%',paddingLeft:'10%'}}>\r\n {prod.qty}</Container>\r\n </div>\r\n <span className=\"input-group-btn\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-default btn-number\"\r\n onClick={() => {\r\n prod.qty + 1 < 100 &&\r\n this.updateQuantity(\r\n prod.PartNumber,\r\n prod.qty + 1\r\n );\r\n }}\r\n >\r\n <i className=\"fas fa-plus\" />\r\n </button>\r\n </span>\r\n </div>\r\n ) : null,\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"\",\r\n text: \"Action\",\r\n formatter : (col, prod, row, index) =>\r\n (\r\n <span\r\n onClick={() =>\r\n this.removeItem(prod.PartNumber)\r\n }\r\n >\r\n <i\r\n className=\"fa fa-trash\"\r\n aria-hidden=\"true\"\r\n />\r\n </span>\r\n ),\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n }, \r\n ];\r\n return (\r\n <div>\r\n <React.Fragment>\r\n {mobileView ? (\r\n <React.Fragment>\r\n <img\r\n alt=\"cart\"\r\n src=\"https://itg-psurf-web.glbinc.hp.com/PartSurfer/img/Cart.png\"\r\n width=\"28\"\r\n height=\"22\"\r\n onClick={() => this.handleModalShowHide()} style={{cursor:'pointer'}}\r\n />\r\n\r\n <span className=\"badge badge-warning\" id=\"lblCartCount\">\r\n {(this.props.cart || []).length}\r\n </span>\r\n\r\n <Modal\r\n show={this.state.showHide}\r\n size=\"lg\"\r\n dialogClassName={\"my-modal\"}\r\n >\r\n <Modal.Header closeButton onHide={this.handleModalShowHide}>\r\n <b>Cart Items</b>\r\n </Modal.Header>\r\n <Modal.Body>\r\n {(this.props.cart || []).length > 0 ? (\r\n <>\r\n {this.props.cart.map((cartItem, idx) => {\r\n return ( \r\n <Row key={idx}>\r\n <Row style={{width: \"100%\"}}>\r\n <Col>\r\n <div style={{ marginLeft: \"10px\", width: \"100%\"}}>\r\n <hr style={{ borderTop: \"3px\", borderTopStyle: \"solid\", borderTopColor:\"#bbb\"}}/> \r\n <div style={{ fontSize: \"14px\"}}><b>Part Number:</b> \r\n {/* <div style={{ fontSize: \"12px\"}}> */}\r\n {cartItem.PartNumber}\r\n {/* </div> */}\r\n </div> \r\n </div> \r\n \r\n </Col>\r\n </Row>\r\n <Row style={{width: \"100%\"}}>\r\n <Col> \r\n <div style={{ marginLeft: \"10px\", width: \"100%\"}}>\r\n {/* <hr style={{ borderTop: \"3px\", borderTopStyle: \"solid\", borderTopColor:\"#bbb\"}}/> */}\r\n <div style={{ fontSize: \"14px\"}}><b>Part Description:</b> <br/></div> \r\n <div style={{ fontSize: \"12px\"}}>\r\n <div dangerouslySetInnerHTML={{ __html: cartItem.EnhancedDescription }}></div>\r\n </div>\r\n </div> \r\n <br/>\r\n </Col>\r\n </Row> \r\n {/* </Col> */}\r\n <Col xs={6}>\r\n <div className=\"input-group\">\r\n <span className=\"input-group-btn\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-default btn-number\"\r\n onClick={() => {\r\n cartItem.qty - 1 > 0 &&\r\n this.updateQuantity(\r\n cartItem.PartNumber,\r\n cartItem.qty - 1\r\n );\r\n }}\r\n >\r\n <i className=\"fas fa-minus\" />\r\n </button>\r\n </span>\r\n <div onChange={(e) => {\r\n this.updateQuantity(\r\n cartItem.PartNumber,\r\n e.currentTarget.value\r\n );\r\n }}>\r\n <Container style={{alignItems:'center',border:'inset',maxWidth:'100%',paddingBottom:'10%',minWidth:'50%',paddingLeft:'10%'}}>\r\n {cartItem.qty}</Container>\r\n </div>\r\n <span className=\"input-group-btn\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-default btn-number\"\r\n onClick={() => {\r\n cartItem.qty + 1 < 100 &&\r\n this.updateQuantity(\r\n cartItem.PartNumber,\r\n cartItem.qty + 1\r\n );\r\n }}\r\n >\r\n <i className=\"fas fa-plus\" />\r\n </button>\r\n </span>\r\n </div>\r\n </Col>\r\n <Col >\r\n <span\r\n onClick={() =>\r\n this.removeItem(cartItem.PartNumber)\r\n }\r\n >\r\n <i\r\n className=\"fa fa-trash\"\r\n aria-hidden=\"true\"\r\n />\r\n </span>\r\n </Col>\r\n </Row>\r\n \r\n \r\n );\r\n })}\r\n <Modal.Footer>\r\n <input\r\n type=\"button\"\r\n className=\"btnStylePrimary\"\r\n value=\"Check Out\"\r\n onClick={() => this.getRedirectURL()}\r\n />\r\n </Modal.Footer>\r\n </>\r\n ) : (\r\n <> You have no items in your shopping cart.</>\r\n )}\r\n </Modal.Body>\r\n </Modal>\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <img\r\n alt=\"cart\"\r\n src=\"https://itg-psurf-web.glbinc.hp.com/PartSurfer/img/Cart.png\"\r\n width=\"28\"\r\n height=\"22\"\r\n onClick={() => \r\n this.handleModalShowHide()\r\n } style={{cursor:'pointer'}}\r\n />\r\n\r\n <span className=\"badge badge-warning\" id=\"lblCartCount\">\r\n {(this.props.cart || []).length}\r\n </span>\r\n\r\n <Modal\r\n show={this.state.showHide}\r\n size=\"lg\"\r\n dialogClassName={\"my-modal\"}\r\n >\r\n <Modal.Header closeButton onHide={this.handleModalShowHide} >\r\n <b>Cart Items</b>\r\n </Modal.Header>\r\n <Modal.Body >\r\n {(this.props.cart || []).length > 0 ? (\r\n <>\r\n <Container>\r\n <Modal.Body>\r\n <BootstrapTable\r\n keyField=\"PartNumber\"\r\n //data={data}\r\n data={this.props.cart}\r\n columns={columns}\r\n striped \r\n /> \r\n </Modal.Body>\r\n </Container>\r\n <Modal.Footer>\r\n <input\r\n type=\"button\"\r\n className=\"btnStylePrimary\"\r\n value=\"Check Out\"\r\n onClick={() => this.getRedirectURL()}\r\n />\r\n </Modal.Footer>\r\n </>\r\n ) : (\r\n <> You have no items in your shopping cart.</>\r\n )}\r\n </Modal.Body>\r\n \r\n </Modal>\r\n </React.Fragment>\r\n )}\r\n </React.Fragment>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n let cartQty = {};\r\n state.cart.cartItems.forEach((item) => (cartQty[item.PartNumber] = item.qty));\r\n return {\r\n ...state,\r\n cart: state.cart.cartItems,\r\n cartQty,\r\n };\r\n};\r\n\r\nconst mapDispatchProps = (dispatch) => ({\r\n setCartItems: (cart) => dispatch(setCarItems(cart)),\r\n});\r\n\r\nexport default connect(mapStateToProps, mapDispatchProps)(ViewHOC(CartModal));\r\n","import React from \"react\";\r\nimport \"./nav.css\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getLocationObject } from \"./Util\";\r\nimport { MailIDS } from \"./constants/constants\";\r\nimport CartModal from \"./CartModal\";\r\nimport Loading from './Loading';\r\nimport Cookies from 'js-cookie'\r\n// import { USER_GUIDE } from \"./constants/RouteConstants\";\r\n\r\n// Added By Shreyas to Redirect Page to Home URL--Start Changed on 24 Feb 2023\r\nfunction pageRefresh(event){\r\n event.preventDefault();\r\n localStorage.setItem(\"Temp_Country\",Cookies.get('HP_Country'));// Added on:-09 March 2023\r\n //window.location.replace(`${process.env.REACT_APP_HOME_DIRECTORY}`);\r\n window.location.replace(\"/\");\r\n };\r\n// Added By Shreyas to Redirect Page to Home URL--End Changed on 24 Feb 2022\r\n const bannerMessage = process.env.REACT_APP_BANNER_MESSAGE || \"\";\r\nfunction Navbar(props) {\r\n // console.log('mobile', x.mobileView)\r\n// console.log(\"navprop\", props);\r\n return (\r\n <div>\r\n \r\n <nav\r\n className=\"navbar navbar-expand-sm navbar-light\"\r\n style={\r\n props.mobileView\r\n ? {}\r\n : {\r\n paddingLeft: \"4rem\",\r\n }\r\n \r\n }\r\n >\r\n <button\r\n className=\"navbar-toggler\"\r\n type=\"button\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#navbarSupportedContent\"\r\n aria-controls=\"navbarSupportedContent\"\r\n aria-expanded=\"false\"\r\n aria-label=\"Toggle navigation\"\r\n >\r\n <span className=\"navbar-toggler-icon\"></span>\r\n </button> \r\n <div className=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\r\n <ul className=\"navbar-nav mr-auto\">\r\n <li className=\"nav-item active\">\r\n {/* <a className=\"nav-link\" href=\"#\">Home <span className=\"sr-only\">(current)</span></a> */}\r\n {/* Commented by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- Start Here */}\r\n {/* <Link className=\"nav-link\" to={getLocationObject()}> */}\r\n {/* Commented by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- End Here */}\r\n {/* Added by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- Start Here */} \r\n\t\t\t<Link className=\"nav-link\" onClick={pageRefresh}>\r\n {/* Added by Shreyas on 24 Feb 2023: To Add onclick event to the Home Link--- End Here */}\r\n Home\r\n </Link>\r\n </li> \r\n\r\n {/* <li className=\"nav-item dropdown\">\r\n <a\r\n className=\"nav-link dropdown-toggle\"\r\n href=\"/#\"\r\n id=\"navbarDropdown\"\r\n role=\"button\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n Search By\r\n </a>\r\n <div\r\n className=\"dropdown-menu dropdown-menu-right\"\r\n aria-labelledby=\"navbarDropdown\"\r\n >\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.PART)}\r\n >\r\n Part\r\n </Link>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.PRODUCT)}\r\n >\r\n Product\r\n </Link>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.SERIAL_WP)}\r\n >\r\n Serial Number\r\n </Link>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.FUNCTIONAL_EQUIVALENT)}\r\n >\r\n Functional Equivalent\r\n </Link>\r\n <Link\r\n className=\"dropdown-item\"\r\n to={getLocationObject(null, SEARCH_MODES.WILD_CHAR)}\r\n >\r\n Wild Character\r\n </Link>\r\n </div>\r\n </li> */}\r\n <li className=\"nav-item active\">\r\n {/* <a className=\"nav-link\" href=\"#\">Home <span className=\"sr-only\">(current)</span></a> */}\r\n <Link className=\"nav-link\" to='/PartSurfer/Hierarchy'>\r\n Hierarchy\r\n </Link>\r\n </li>\r\n <li className=\"nav-item dropdown\">\r\n <a\r\n className=\"nav-link dropdown-toggle\"\r\n href=\"/#\"\r\n id=\"navbarDropdown\"\r\n role=\"button\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n Self Help\r\n </a>\r\n <div className=\"dropdown-menu\" aria-labelledby=\"navbarDropdown\">\r\n <Link className=\"dropdown-item\" to=\"/PartSurfer/UserGuide\">\r\n User Guide\r\n </Link>\r\n <Link className=\"dropdown-item\" to=\"/PartSurfer/Faq\">\r\n Frequently Asked Questions\r\n </Link>\r\n <Link className=\"dropdown-item\" to=\"/PartSurfer/ContactUS\">\r\n Contact Us\r\n </Link>\r\n {/* {!MailIDS.includes(localStorage.getItem(\"loggeduser\")) ? \"\": \r\n <Link className=\"dropdown-item\" to=\"/PartSurfer/GenerateMetrics\">\r\n Generate Metrics\r\n </Link> } */}\r\n </div>\r\n </li>\r\n </ul>\r\n {!props.mobileView && <CartModal />}\r\n </div>\r\n \r\n {props.mobileView && <CartModal />}\r\n </nav>\r\n {/* Conditionally render the banner if the bannerMessage is not empty */}\r\n {bannerMessage && (\r\n <div id=\"banner\"> \r\n <marquee direction=\"left\">{bannerMessage}</marquee>\r\n </div>\r\n )}\r\n\r\n </div>\r\n );\r\n}\r\n\r\nexport default ViewHOC(Navbar);\r\n","import React from \"react\";\r\nimport { Accordion, Card, Container } from \"react-bootstrap\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getLocationObject } from \"./Util\";\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\n\r\nfunction ContactUS() {\r\n return (\r\n <React.Fragment>\r\n <div> \r\n <Navbar /> \r\n <div style={{ marginRight: \"10px\"}}>\r\n <br/>\r\n <Login />\r\n <br/>\r\n </div>\r\n </div>\r\n <Container>\r\n <Accordion defaultActiveKey=\"0\">\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n I have a question/comment about ...\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <b>More parts assistance ..</b>\r\n <br />\r\n For further assistance with ordering or identifying HP parts,\r\n please visit the \r\n <a\r\n target=\"_blank\"\r\n className=\"underline\"\r\n href=\"https://parts.hp.com/hpparts/CountryChoice.aspx\"\r\n rel=\"noopener noreferrer\"\r\n style={{ color: \"black\" }}\r\n >\r\n HP Parts Store\r\n </a>\r\n <br />\r\n <br />\r\n <a href=\"https://support.hp.com/\" target=\"_blank\">\r\n <b style={{ color: \"#003366\" }}>\r\n <span>>></span> Support for my product\r\n </b>\r\n </a>\r\n <br />\r\n <br />\r\n <a href=\"https://www.hp.com/us-en/hp-information.html\" target=\"_blank\">\r\n <b style={{ color: \"#003366\" }}>\r\n <span>>></span>General HP information\r\n </b>\r\n </a>\r\n <br />\r\n <br />\r\n <b>I would like to send email to HP regarding ..</b><br/>\r\n <br />\r\n <a\r\n href=\"https://www.hp.com/us-en/shop/cv/customerservice#TechSupport\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n style={{ color: \"#003366\" }}\r\n >\r\n <span>>></span>\r\n <b>Technical support for my HP product</b>\r\n </a><br/>\r\n <br />\r\n {/* <a\r\n href=\"NewRequest\"\r\n rel=\"noopener noreferrer\"\r\n target=\"_blank\"\r\n style={{ color: \"#003366\" }}\r\n >\r\n <span>>></span>\r\n <b>Missing or incorrect data in PartSurfer</b>\r\n </a> */}\r\n <Link style={{ color: \"#003366\" }} rel=\"noopener noreferrer\" to=\"/PartSurfer/NewRequest\">\r\n <span>>></span>\r\n <b>Missing or incorrect data in PartSurfer</b>\r\n </Link>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n <br /> \r\n <div>\r\n <div>\r\n <Link className=\"apply btn btn-primary\" to={getLocationObject()}>\r\n Back to home\r\n </Link>\r\n <br />\r\n </div>\r\n <br />\r\n </div>\r\n </Container>\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nexport default ViewHOC(ContactUS);\r\n","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { Alert, Card, Container, Accordion } from \"react-bootstrap\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Login from \"./login\";\r\nimport { getLocationObject } from \"./Util\";\r\nimport Navbar from \"./navbar\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\n\r\nfunction Faq() {\r\n return (\r\n <React.Fragment> \r\n <div> \r\n <Navbar /> \r\n <div style={{ marginRight: \"10px\"}}>\r\n <br/>\r\n <Login />\r\n <br/>\r\n </div>\r\n </div>\r\n <Container>\r\n <Alert className=\"theme\">\r\n <p>\r\n This document answers some of the common questions regarding HP\r\n PartSurfer and Service Parts Information (SPI) data. If you have a\r\n question or concern that is not addressed here, please refer to our{\" \"}\r\n <Link to=\"/PartSurfer/ContactUS\">contact page</Link> for more\r\n detailed help or to contact us via email.\r\n </p>\r\n </Alert>\r\n\r\n <Accordion defaultActiveKey=\"0\">\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Questions and Answers ...\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <b>Access to HP PartSurfer</b>\r\n <br />\r\n <b>\r\n Q.Do I have to register in order to use HP PartSurfer?\r\n </b>{\" \"}\r\n <br />\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b> A.</b>HP PartSurfer does NOT require registration. Before\r\n you can access data in PartSurfer, you will be asked to select\r\n from the list of over 40 countries and regions for which we\r\n provide part information. Your selection will be saved in a\r\n cookie on your computer, and you will automatically be\r\n provided with the correct part information on future visits.{\" \"}\r\n </p>\r\n <b>Q.Is there a cost for using HP PartSurfer?</b>\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b style={{ fontsize: \"14px\" }}>A.</b>We are happy to provide\r\n PartSurfer at no cost to assist customers in identifying and\r\n purchasing genuine HP parts.\r\n </p>\r\n <b>Q.Why won't HP PartSurfer run on my computer?</b>\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b style={{ fontsize: \"14px\" }}>A.</b>You must be running\r\n version 4 or greater of either Netscape Navigator or Internet\r\n Explorer to use PartSurfer. Cookies must be allowed, and\r\n JavaScript must be enabled.\r\n If this does not address your problem, please refer to our{\" \"}\r\n <Link to=\"/PartSurfer/ContactUS\">contact page</Link> for more\r\n detailed help or to contact us via email.\r\n </p>\r\n <br />\r\n <b>General Application Questions</b>\r\n <br />\r\n <b>Q.How often is HP PartSurfer updated?</b>{\" \"}\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b style={{ fontsize: \"14px\" }}>A.</b>HP PartSurfer is updated\r\n from the main SPI database every Monday through Friday at\r\n approximately 6 PM Pacific time.\r\n </p>\r\n <b>\r\n Q.I thought HP PartSurfer displayed part pricing information.\r\n Why do I not see any part prices?\r\n </b>\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b style={{ fontsize: \"14px\" }}>A.</b>Part prices are no\r\n longer displayed in PartSurfer for some countries. Web-based\r\n applications and other resources for ordering HP parts on-line\r\n are now available in most geographies. These interfaces\r\n provide access to 'real-time' part prices, as well as dealer\r\n and volume discounts, and information on parts unique to your\r\n country or region.\r\n <a\r\n href=\"https://parts.hp.com/Hpparts/CountryChoice.aspx\"\r\n target=\"buyparts\"\r\n className=\"udrline\"\r\n >\r\n Click here\r\n </a>{\" \"}\r\n for information on accessing HP part prices and buying HP\r\n parts in your area.\r\n </p>\r\n <br/>\r\n <b>Part/Product and Ordering Questions</b>\r\n <br />\r\n <b>\r\n Q.I have found the part that I need. Now how do I order it?\r\n </b>\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b style={{ fontsize: \"14px\" }}>A.</b>Based on the country\r\n selection chosen when you first use the site, we will detect\r\n whether a parts is orderable from the HP Parts Store or not.\r\n If a box appears next to the part then click on it to{\" \"}\r\n <b>[Add to Cart]</b>. If there is NO box then it may not be\r\n orderable. You can also at any time go directly to the HP\r\n Parts Store (under the <b>Services</b> menu above) and double\r\n check at any time. When your selections are completed, click\r\n on the <b>Shopping Cart</b> icon and follow the steps to check\r\n availability, part price, and other ordering options available\r\n to you in your country.\r\n </p>\r\n <b>\r\n Q.Why can't I find the part or product that I need on HP\r\n PartSurfer? What do I do now?\r\n </b>{\" \"}\r\n <p\r\n style={{\r\n fontfamily: \"HPSimplified\",\r\n fontsize: \"12px\",\r\n }}\r\n >\r\n <b style={{ fontsize: \"14px\" }}>A.</b>HP PartSurfer is\r\n intended to identify products and associated parts with the\r\n highest volume of parts information requests and provide\r\n high-quality data for them, not to provide a 100% solution for\r\n all HP products and parts. Some HP products are set up on our\r\n centralized repair program, and have few user-replaceable\r\n parts. This could be the reason that the part you are looking\r\n for is not on HP PartSurfer. For further assistance with\r\n service parts information, or to determine the best repair\r\n strategy for your HP product, please refer to the resources\r\n listed on our{\" \"}\r\n <Link to=\"/PartSurfer/ContactUS\">contact page.</Link>\r\n </p>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n <br />\r\n <br />\r\n </Container>\r\n <div style={{display: 'flex', justifyContent: 'center'}}>\r\n <div>\r\n <Link className=\"apply btn btn-primary\" to={getLocationObject()}>\r\n Back to home\r\n </Link>\r\n </div>\r\n <br/>\r\n <br/>\r\n <br/>\r\n </div>\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nexport default ViewHOC(Faq);\r\n","import React from 'react'\r\n\r\nexport default function Image({src}) {\r\n return (\r\n \r\n <img className=\"responsive\"\r\n src={`${window.location.origin}/img/${src}`}\r\n alt=\"img\"\r\n onError={(e) => {\r\n e.target.src = `${window.location.origin}/PartSurfer/img/${src}`; //replacement image imported above\r\n }}\r\n />\r\n \r\n )\r\n}\r\n","import React, { Component } from 'react'\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport paginationFactory from 'react-bootstrap-table2-paginator';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\n\r\n\r\nclass FunctionalEquivalent extends Component {\r\n\r\n render() {\r\n\r\n const { data, mobileView } = this.props;\r\n \r\n const columns = [\r\n {\r\n dataField: 'PartNumber',\r\n text: 'Part Number',\r\n headerStyle: () => {\r\n return { width: \"15%\" };\r\n }\r\n },\r\n /* {\r\n dataField: 'Keyword',\r\n text: 'Keyword ',\r\n headerStyle: () => {\r\n return { width: \"auto\" };\r\n }\r\n }, */\r\n {\r\n dataField: 'EnhancedDescription',\r\n text: 'Part Description ',\r\n formatter: (col) => <div dangerouslySetInnerHTML={{ __html: col }}></div>,\r\n headerStyle: () => {\r\n return { width: \"auto\" };\r\n }\r\n },\r\n {\r\n dataField: 'CSRFlag',\r\n text: 'CSR ',\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n }\r\n },\r\n localStorage.getItem(\"loggeduser\") == null ? {\r\n dataField: 'TechCourier',\r\n text: 'Tech Courier',\r\n headerStyle: () => {\r\n return { width: \"10%\" };\r\n },\r\n hidden: true,\r\n }: {\r\n dataField: 'TechCourier',\r\n text: 'Tech Courier',\r\n headerStyle: () => {\r\n return { width: \"10%\" };\r\n }\r\n },\r\n {\r\n dataField: 'ROHSCompliant',\r\n text: 'ROHS ',\r\n headerStyle: () => {\r\n return { width: \"20%\" };\r\n }\r\n }];\r\n\r\n return (\r\n <React.Fragment>\r\n {mobileView\r\n ? <React.Fragment>\r\n \r\n {/* <hr /> */}\r\n {\r\n (data || []).map(prod => <React.Fragment>\r\n <b>Part Number : </b>{prod.PartNumber}\r\n <br />\r\n {/* <b>Keyword : </b>{prod.Keyword}\r\n <br /> */}\r\n <b>Part Description : </b>\r\n {/* {prod.EnhancedDescription} */}\r\n <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n <br />\r\n <b>CSR : </b>{prod.CsrFlag?prod.CsrFlag:\"-N/A-\"}\r\n <br />\r\n <b>Tech Courier : </b>{prod.TechCourier?prod.TechCourier:\"-N/A-\"}\r\n <br />\r\n <b>ROHS : </b>{prod.RohsCompliant?prod.RohsCompliant:\"-N/A-\"}\r\n <br />\r\n {/* <hr /> */}\r\n {/* <hr /> */}\r\n </React.Fragment>)\r\n }\r\n </React.Fragment>\r\n : <BootstrapTable keyField='PartNumber' data={data} columns={columns} striped pagination={data.length > 10 ? paginationFactory() : undefined} />\r\n }\r\n </React.Fragment>\r\n )\r\n }\r\n}\r\n\r\nexport default (ViewHOC(FunctionalEquivalent));\r\n\r\n\r\n\r\n","import React from 'react'\r\nimport { Row, Col } from 'react-bootstrap'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nconst getDesc = (mode, payload) => {\r\n switch (mode) {\r\n //commented by shridhar for wild card search-blue section need to remove\r\n // case 'GenericSearch':\r\n // return (<div>\r\n // <div style={{ color: \"white\" }}> Product Number : {payload[0].ProductNumber === '-N/A-' ? 'Not Found' : payload[0].ProductNumber} <br /></div>\r\n // <div style={{ color: \"white\" }}> Product Name : {payload[0].ProductNumber === '-N/A-' ? 'Not Found' : payload[0].ProductName} <br /></div>\r\n // </div>)\r\n case 'SERIAL':\r\n return (<div>\r\n {payload &&\r\n <div> \r\n <div style={{ color: \"white\" }}>Serial Number : {payload.wwsnrsinput.serial_no === '-N/A-' ? 'Not Found' : payload.wwsnrsinput.serial_no}<br /></div>\r\n <div style={{ color: \"white\" }}>Product Number : {payload.wwsnrsinput.product_no === '-N/A-' ? 'Not Found' : payload.wwsnrsinput.product_no}<br /></div>\r\n <div style={{ color: \"white\" }}>Description : {payload.wwsnrsinput.user_name === '-N/A-' ? 'Not Found' : payload.wwsnrsinput.user_name}<br /></div>\r\n <div style={{ color: \"white\" }}>ROHS Status : {payload.roHS_unit_status.rohs_status_code === '-N/A-' ? 'Not Found' : payload.roHS_unit_status.rohs_status_code}<br /></div>\r\n </div>\r\n }\r\n </div>)\r\n case 'PRODUCT':\r\n return (<div> \r\n {(payload || []).length > 0 && (\r\n <div>\r\n <div style={{ color: \"white\" }}>Product Number : {payload[0].ProductNumber? payload[0].ProductNumber: \"Not Found\"} <br /></div>\r\n <div style={{ color: \"white\" }}>Description : {payload[0].ProductName? payload[0].ProductName: \"Not Found\"} <br /></div>\r\n </div>\r\n )} \r\n \r\n </div>)\r\n default:\r\n }\r\n}\r\n\r\nexport default function Details({ mode, payload, expandIconRequired, triggered, triggerAll }) {\r\n return (\r\n <div style={{ backgroundColor: \"#0096D6\", padding: \"20px 10px\" }}>\r\n {expandIconRequired && triggerAll ?\r\n <Row noGutters={true}>\r\n <Col xs={'11'} sm={'11'} md={'11'} lg={'11'} xl={'11'}>\r\n {getDesc(mode, payload)}\r\n </Col>\r\n <Col xs={'1'} sm={'1'} md={'1'} lg={'1'} xl={'1'}>\r\n \r\n <div style={{ float: 'right', color: 'white' }} onClick={() => { triggerAll(!triggered) }}>\r\n {triggered ? <FontAwesomeIcon icon=\"minus-square\" /> : <FontAwesomeIcon icon=\"plus-square\" />}\r\n </div>\r\n </Col>\r\n </Row> : getDesc(mode, payload)}\r\n </div>\r\n )\r\n}\r\n","import React from \"react\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport Details from \"./Details\";\r\nimport { getURLQueryString, getURLQueryStringBySearch } from \"./Util\";\r\nimport { SEARCH_MODES } from \"./constants/constants\";\r\n\r\nclass ProductList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n list: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.filterData();\r\n }\r\n\r\n filterData = (text) => {\r\n this.setState({\r\n list: this.props.data.filter((part) =>\r\n text\r\n ? part.ProductNumber.indexOf(text) > -1 ||\r\n part.ProductName.indexOf(text) > -1\r\n : true\r\n ),\r\n });\r\n };\r\n\r\n render() {\r\n const { data, mobileView, isDescDisabled } = this.props;\r\n\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n dataField:'',\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatter: (col, prod, index) => {\r\n return (\r\n <React.Fragment key={prod.ProductNumber}>\r\n <b>Product/Part : </b>\r\n <a\r\n href={getURLQueryString(\r\n prod.ProductNumber,\r\n SEARCH_MODES.PRODUCT\r\n )}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {prod.ProductNumber}\r\n </a>\r\n <br />\r\n <b>Description : </b>\r\n {prod.ProductName}\r\n <br />\r\n <br/>\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [\r\n {\r\n dataField: \"ProductNumber\",\r\n text: \"Product/Part\",\r\n formatter: (col, row, index) => (\r\n <a href={getURLQueryStringBySearch(col)} target=\"_Blank\">{col}</a>\r\n ),\r\n },\r\n {\r\n dataField: \"ProductName\",\r\n text: \"Description\",\r\n },\r\n ];\r\n\r\n return (\r\n <React.Fragment>\r\n {/*\r\n commented by shridhar to remove details blue section for wild card search\r\n {!isDescDisabled && <Details mode=\"GenericSearch\" payload={data} />}\r\n <br /> */}\r\n {this.state.list.length > 0 ? \r\n <div>\r\n <div className=\"row\">\r\n <div className=\"col-sm-6\">\r\n <div className=\"input-group searchbox\">\r\n <input\r\n type=\"text\"\r\n id=\"search\"\r\n name=\"searchtext\"\r\n className=\"form-control\"\r\n placeholder=\"Enter Text To Filter\"\r\n value={this.state.searchText}\r\n onChange={(event) =>\r\n this.setState({ searchText: event.target.value })\r\n }\r\n required\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col searchbox\">\r\n <button\r\n name=\"btn-addtext\"\r\n className=\"apply btn btn-primary\"\r\n onClick={() => {\r\n this.filterData(this.state.searchText);\r\n }}\r\n >\r\n Apply\r\n </button>\r\n \r\n <button\r\n name=\"btn-upload\"\r\n className=\"reset btn btn-primary\"\r\n onClick={() => {\r\n this.filterData();\r\n this.setState({ searchText: \"\" });\r\n }}\r\n >\r\n Reset\r\n </button>\r\n </div> \r\n </div> \r\n <br/>\r\n <br/>\r\n <div>\r\n <BootstrapTable\r\n keyField=\"ProductNumber\"\r\n data={this.state.list}\r\n columns={columns}\r\n striped\r\n pagination={data.length > 10 ? paginationFactory() : undefined}\r\n />\r\n </div>\r\n </div>\r\n : \"There is no Where Used Products!\" } \r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default ViewHOC(ProductList);\r\n","import React from 'react'\r\nimport { useEffect } from \"react\";\r\nimport imageexists from 'image-exists';\r\nimport { text } from '@fortawesome/fontawesome-svg-core';\r\n\r\nexport default function PartImages({ src, partnumber, handleLoader }) {\r\n\r\n const getImage = (event) => {\r\n const value = event.target.value;\r\n text = '';\r\n text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + partnumber + '</span></h5>';\r\n text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + src + value + \".jpg\" + ' alt=\\\"img\"\\/>';\r\n document.getElementById('mydiv').innerHTML = text;\r\n }\r\n\r\n const loadComplete = () => {\r\n //handleLoader(false);\r\n }\r\n\r\n let content = []; var text = '';\r\n\r\n\r\n useEffect(() => {\r\n\r\n var src2;\r\n var src1 = src;\r\n var text = '';\r\n\r\n\r\n src1 = src + partnumber + \".jpg\";\r\n text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + partnumber + '</span></h5>';\r\n text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + src1 + ' alt=\\\"img\"\\/>';\r\n document.getElementById('mydiv').innerHTML = text;\r\n document.getElementById('imgDiv').style.display = 'none';\r\n var x = document.getElementById(\"MyImages\");\r\n var option = document.createElement(\"option\");\r\n option.text = partnumber;\r\n x.add(option);\r\n for (let i = 1; i < 20; i++) {\r\n src2 = src + partnumber + \"-\" + i + \".jpg\";\r\n imageexists(src2, function (exists) {\r\n if (exists) {\r\n var x = document.getElementById(\"MyImages\");\r\n var option = document.createElement(\"option\");\r\n option.text = partnumber + \"-\" + i;\r\n x.add(option);\r\n document.getElementById('imgDiv').style.display = 'block';\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n\r\n\r\n }, []);\r\n\r\n return (\r\n\r\n <div id=\"mydiv\" className='responsive'>\r\n Loading Image Please Wait....\r\n </div>\r\n\r\n )\r\n}\r\n","import React from \"react\";\r\nimport axios from \"axios\";\r\nimport { connect } from \"react-redux\";\r\nimport { setCarItems } from \"../Actions\";\r\nimport { getItemIndex } from \"../CartUtils\";\r\nimport { Alert, Collapse } from \"react-bootstrap\";\r\nimport ProductList from \"./ProductList\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport \"./design.css\";\r\nimport Loading from \"./Loading\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport { GET_PARTLIST, FUNCTIONAL, FUNCTIONAL_LIST, INSERTPHOTOMETRIC, BUYMETRIC } from \"./constants/APIConstants\";\r\nimport { getAuthHeader } from \"./Util\";\r\nimport buy from \"../buy.gif\";\r\nimport Cookies from \"js-cookie\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport PartImages from \"./PartImages\";\r\nimport { Button, Tooltip, OverlayTrigger } from \"react-bootstrap\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport FunctionalEquivalent from './FunctionalEquivalent';\r\nimport imageexists from \"image-exists\"\r\n\r\nclass PartList extends React.Component {\r\n _isMounted = false;\r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n cart: [],\r\n showModal: false,\r\n showModalFE: false,\r\n part: [],\r\n loading: false,\r\n collapsed: false,\r\n modifiedData: [],\r\n part_number: \"\",\r\n };\r\n this.PrintPhoto = this.PrintPhoto.bind(this);\r\n this.closeModalFE = this.closeModalFE.bind(this);\r\n this.buylink = this.buylink.bind(this);\r\n this.AddPhotoMetric = this.AddPhotoMetric.bind(this);\r\n }\r\n componentDidMount() {\r\n this.fetchDetails();\r\n this._isMounted = true;\r\n const { data } = this.props;\r\n console.log(\"part body\", data);\r\n if (data) {\r\n //this.loadWhereUsed(data[0].PartNumber);\r\n this.loadWhereUsed(encodeURIComponent(data[0].PartNumber));//Added for Encoding Special Characters\r\n }\r\n }\r\n // componentWillUnmount() {\r\n // this._isMounted = false;\r\n // }\r\n componentWillReceiveProps() {\r\n\r\n }\r\n\r\n buylink = (url, PartNumber) => {\r\n console.log(url);\r\n let urlprod;\r\n urlprod = BUYMETRIC(PartNumber);\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n }, (error) => {\r\n })\r\n window.open(url, \"_blank\");\r\n }\r\n\r\n loadWhereUsed = (partNumber) => {\r\n this.setState({ loading: false });\r\n axios\r\n .get(GET_PARTLIST(partNumber, localStorage.getItem(\"usertype\")), {\r\n headers: {\r\n ...getAuthHeader(),\r\n },\r\n })\r\n .then(\r\n (res) => {\r\n const data = res.data.Body;\r\n this.setState({ data, loading: false });\r\n },\r\n (error) => { }\r\n );\r\n };\r\n //added by Mousumi\r\n showModal = (partnumber) => {\r\n var photo_type = \".jpg\";\r\n const imageName = partnumber + photo_type;\r\n const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n //const imagePath= imageLocation+imageName;\r\n const imagePath = imageLocation;\r\n this.CheckImageavailability(imagePath);\r\n this.AddPhotoMetric(partnumber);\r\n this.setState({ part_number: partnumber, showModal: true, imagePath });\r\n };\r\n closeModal = () => {\r\n this.setState({ showModal: false });\r\n };\r\n\r\n CheckImageavailability = (path) => {\r\n imageexists(path, function (exists) {\r\n if (exists) {\r\n localStorage.setItem(\"photoAvailable\", \"Yes\");\r\n }\r\n else {\r\n localStorage.setItem(\"photoAvailable\", \"No\");\r\n }\r\n });\r\n\r\n }\r\n AddPhotoMetric = (partnumber) => {\r\n let input = partnumber;\r\n let urlprod;\r\n urlprod = INSERTPHOTOMETRIC(input, localStorage.getItem(\"photoAvailable\"));\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n console.log(response);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n //added my Mousumi\r\n PrintPhoto = () => {\r\n //let elem = document.getElementById(\"PopupId\");\r\n let elem = document.getElementById(\"photoImg\");\r\n //Changed to get the image id\r\n var domClone = elem.cloneNode(true);\r\n var $printSection = document.getElementById(\"printSection\");\r\n if (!$printSection) {\r\n $printSection = document.createElement(\"div\");\r\n $printSection.id = \"printSection\";\r\n document.body.appendChild($printSection);\r\n }\r\n $printSection.innerHTML = domClone.innerHTML;\r\n $printSection.innerHTML = elem.innerHTML;\r\n $printSection.appendChild(domClone);\r\n window.print();\r\n document.getElementById(\"printSection\").remove();\r\n };\r\n //Added by Mousumi\r\n fetchDetails = () => {\r\n ;\r\n //let prodNumber = this.props.data[0].PartNumber;\r\n let prodNumber = encodeURIComponent(this.props.data[0].PartNumber); //Added for encoding special characters\r\n let partNumbers = this.props.data.map(item => {\r\n //return item.PartNumber\r\n return encodeURIComponent(item.PartNumber)//Added for encoding special characters\r\n })\r\n const url = FUNCTIONAL_LIST(prodNumber, localStorage.getItem(\"usertype\"))\r\n axios.post(url, partNumbers, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n let originalData = res.data.Body;\r\n //console.log(\"ori\",originalData)\r\n let newData = this.props.data.map((item, i) => Object.assign({}, item, originalData[i]));\r\n //console.log(\"newdata\",newData);\r\n this.setState({ modifiedData: newData })\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n //Added by Mousumi\r\n showModalFE = (partnumber) => {\r\n const url = FUNCTIONAL(partnumber, 'US', localStorage.getItem(\"usertype\"))\r\n axios.get(url, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n this.setState({\r\n showModalFE: true,\r\n partFEData: res.data.Body\r\n });\r\n }, (error) => {\r\n })\r\n };\r\n closeModalFE = () => {\r\n this.setState({ showModalFE: false });\r\n };\r\n //Added by Mousumi \r\n handleCartChange = (event, item) => {\r\n //console.log(\"Cart ==> from props\", this.props);\r\n const { cart } = this.props;\r\n //console.log(\"hnadle change request\", event, item, [...(cart || [])]);\r\n if (event) {\r\n alert(\r\n `One Item with PartNumber ${item.PartNumber} has been added to the Cart`\r\n );\r\n item.qty = 1;\r\n const updatedCart = [...(cart || []), item];\r\n //console.log(\"add\", updatedCart);\r\n this.props.setCarItems(updatedCart);\r\n } else {\r\n alert(\r\n `One Item with PartNumber ${item.PartNumber} has been removed from Cart`\r\n );\r\n const ind = getItemIndex(item.PartNumber, cart);\r\n if (ind > -1) {\r\n let newCart = cart || [];\r\n newCart.splice(ind, 1);\r\n // console.log(\"remove\", newCart);\r\n this.props.setCarItems(newCart);\r\n }\r\n }\r\n };\r\n\r\n\r\n handleLoader = (value) => {\r\n console.log(\"load value\", value)\r\n // this.setState({isLoad : value})\r\n }\r\n getImage = (event) => {\r\n const value = event.target.value;\r\n const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n var text = '';\r\n text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + this.state.part_number + '</span></h5>';\r\n text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + imageLocation + value + \".jpg\" + ' alt=\\\"img\"\\/>';\r\n document.getElementById('mydiv').innerHTML = text;\r\n }\r\n\r\n\r\n render() {\r\n const { data, mobileView, cartQty } = this.props;\r\n const { collapsed, loading, showModal, imagePath, modifiedData, showModalFE, partFEData } = this.state;\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n dataField: '',\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatExtraData: (partNumber) => {\r\n // console.log(\"formatter data\", a, b, c);\r\n return cartQty[partNumber] ? true : false;\r\n },\r\n formatter: (col, prod, index, extra) => {\r\n const presentInCart = extra(prod.PartNumber);\r\n return (\r\n <React.Fragment key={prod.PartNumber}>\r\n <b>Photo : </b>\r\n {prod.PartPhotoFlag ? (\r\n <FontAwesomeIcon\r\n icon=\"camera\"\r\n onClick={() => this.showModal(prod.PartNumber)}\r\n />) : \"-N/A-\"}\r\n <br />\r\n <b>Part Number : </b>\r\n {prod.PartNumber}\r\n <br />\r\n <b>Description : </b>\r\n {/* {prod.EnhancedDescription} */}\r\n <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n <br />\r\n <b>CSR : </b>\r\n {prod.CSR ? prod.CSR : \"-N/A-\"}\r\n <br />\r\n <b>ROHS : </b>\r\n {prod.ROHS}\r\n <br />\r\n <b>FE : </b>\r\n {prod.FE_MATERIAL ? (\r\n <OverlayTrigger\r\n placement=\"left\"\r\n overlay={<Tooltip>Functional Equivalent</Tooltip>}>\r\n <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} />\r\n </OverlayTrigger>\r\n ) : \"-N/A-\"}\r\n <br />\r\n {Cookies.get(\"HP_Country\") === \"US\" ? (\r\n <div>\r\n {prod.BuyLink != null ? (\r\n <a\r\n href=\"#\"\r\n rel=\"noopener noreferrer\"\r\n onClick={() => this.buylink(prod.BuyLink, prod.PartNumber)}\r\n >\r\n <img src={buy} alt=\"BuyLink\" />\r\n </a>\r\n ) : \"\"}\r\n </div>\r\n ) : null}\r\n {prod.OrderFlag === \"1\" ? (\r\n <input type=\"button\"\r\n value={!presentInCart ? \"Add to Cart\" : \"Remove from Cart\"}\r\n className=\"cart-button\"\r\n onClick={() =>\r\n this.handleCartChange(!presentInCart, prod)\r\n }\r\n >\r\n\r\n </input>\r\n ) : null}\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [\r\n\r\n {\r\n dataField: \"PartPhotoFlag\",\r\n text: \"Photo\",\r\n formatter: (col, row, index) =>\r\n col ? (\r\n <FontAwesomeIcon\r\n icon=\"camera\"\r\n onClick={() => this.showModal(row.PartNumber)}\r\n />\r\n ) : null,\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n },\r\n {\r\n dataField: \"OrderFlag\",\r\n text: \"Add to Cart\",\r\n formatExtraData: (partNumber) => {\r\n // console.log(\"formatter data\", a, b, c);\r\n return cartQty[partNumber] ? true : false;\r\n },\r\n formatter: (col, row, index, extra) => {\r\n // console.log(\"inside formatter\", row);\r\n console.log(\"inside formatter\", extra)\r\n const letEnabled = extra(row.PartNumber);\r\n console.log(\"letEnabled\", letEnabled);\r\n return col === \"1\" ? (\r\n <input\r\n type=\"checkbox\"\r\n checked={letEnabled}\r\n onChange={(e) => this.handleCartChange(e.target.checked, row)}\r\n ></input>\r\n ) : (\r\n \"-N/A-\"\r\n );\r\n },\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n },\r\n {\r\n dataField: \"PartNumber\",\r\n text: \"Part Number\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"EnhancedDescription\",\r\n text: \"Description\",\r\n formatter: (col) => (\r\n <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n ),\r\n headerStyle: () => {\r\n return { width: \"15%\" };\r\n },\r\n },\r\n {\r\n dataField: \"CSR\",\r\n text: \"CSR\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"ROHS\",\r\n text: \"ROHS\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"FE_MATERIAL\",\r\n text: \"FE\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n formatter: (cell, prod, row, index) => {\r\n return cell ?\r\n <OverlayTrigger\r\n placement=\"left\"\r\n overlay={<Tooltip>Functional Equivalent</Tooltip>}\r\n >\r\n <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} />\r\n </OverlayTrigger>\r\n : \"-N/A-\"\r\n }\r\n },\r\n ];\r\n\r\n if (!mobileView && Cookies.get(\"HP_Country\") === \"US\") {\r\n columns.push({\r\n dataField: \"BuyLink\",\r\n text: \"Buy Link\",\r\n formatter: (col, row) =>\r\n col ? (\r\n <a href=\"#\" rel=\"noopener noreferrer\" onClick={() => this.buylink(row.BuyLink, row.PartNumber)}>\r\n <img src={buy} alt=\"BuyLink\" />\r\n </a>\r\n ) : \"NA\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n });\r\n }\r\n\r\n return (\r\n <Loading loading={loading}>\r\n <React.Fragment>\r\n <BootstrapTable\r\n keyField=\"PartNumber\"\r\n //data={data}\r\n data={modifiedData}\r\n columns={columns}\r\n striped\r\n pagination={data.length > 10 ? paginationFactory() : undefined}\r\n />\r\n </React.Fragment>\r\n <React.Fragment>\r\n <Modal\r\n size=\"lg\"\r\n scrollable\r\n show={showModal}\r\n onHide={this.closeModal}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>Photo</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body id=\"PopupId\">\r\n <PartImages src={imagePath} partnumber={this.state.part_number} handleLoader={this.handleLoader.bind(this)} />\r\n </Modal.Body>\r\n <Modal.Footer style={{ alignItems: \"baseline\", justifyContent: \"flex-end\" }}>\r\n <div id=\"imgDiv\">\r\n <div class=\"input-group mb-3\">\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\" for=\"MyImages\">Select To View Additional Images</span>\r\n </div>\r\n <select class=\"custom-select\" id=\"MyImages\" onChange={this.getImage} >\r\n\r\n </select>\r\n </div>\r\n </div>\r\n <Button id=\"Print\" onClick={this.PrintPhoto}>\r\n Print\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n </React.Fragment>\r\n <React.Fragment>\r\n <Modal\r\n size=\"lg\"\r\n // top\r\n scrollable\r\n show={showModalFE}\r\n onHide={this.closeModalFE}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>Functional Equivalent</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body id=\"PopupId\">\r\n <FunctionalEquivalent data={partFEData} />\r\n </Modal.Body>\r\n <Modal.Footer>\r\n\r\n </Modal.Footer>\r\n </Modal>\r\n </React.Fragment>\r\n <div>\r\n <Alert\r\n key={0}\r\n onClick={() => {\r\n this.setState({ collapsed: !collapsed },\r\n () => {\r\n if (this.state.collapsed && !this.state.data) {\r\n this.setState({ loading: true })\r\n }\r\n }\r\n // new change\r\n // () => {\r\n // if (this.state.collapsed && !this.state.data) {\r\n // this.loadWhereUsed(this.props.data[0].PartNumber);\r\n // }\r\n // }\r\n );\r\n }}\r\n >\r\n <div className=\"sty\">\r\n {this.state.collapsed ? (\r\n <FontAwesomeIcon icon=\"minus\" />\r\n ) : (\r\n <FontAwesomeIcon icon=\"plus\" />\r\n )}\r\n Click Here To See The List Of HP Products That Part\r\n Number Is Used In.\r\n </div>\r\n </Alert>\r\n {this.state.data ? (\r\n <React.Fragment>\r\n <div className=\"tran\">\r\n <Collapse in={this.state.collapsed}>\r\n <div className=\"strip table table-striped\">\r\n <ProductList\r\n isDescDisabled={true}\r\n data={this.state.data || []}\r\n />\r\n </div>\r\n </Collapse>\r\n </div>\r\n </React.Fragment>\r\n ) : null}\r\n </div>\r\n </Loading>\r\n );\r\n }\r\n}\r\nconst mapStateToProps = (state) => {\r\n let cartQty = {};\r\n state.cart.cartItems.forEach((item) => (cartQty[item.PartNumber] = item.qty));\r\n return {\r\n ...state,\r\n cart: state.cart.cartItems,\r\n cartQty,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setCarItems: (newCart) => {\r\n dispatch(setCarItems(newCart));\r\n },\r\n };\r\n};\r\n//export default ViewHOC(PartList);\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ViewHOC(PartList));\r\n","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport Cookies from \"js-cookie\";\r\nimport React, { Fragment } from \"react\";\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\n// import ScrollUpButton from \"react-scroll-up-button\";\r\nimport FunctionalEquivalent from './FunctionalEquivalent';\r\nimport { setCookie, getQueryParam, getURLQueryString, getAuthHeader } from './Util';\r\nimport { FUNCTIONAL_LIST, FUNCTIONAL, INSERTPHOTOMETRIC, CARTMETRIC, BUYMETRIC } from './constants/APIConstants';\r\nimport { Button, Tooltip, OverlayTrigger } from \"react-bootstrap\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { setCarItems } from \"../Actions\";\r\nimport buy from \"../buy.gif\";\r\n// import {FaArrowCircleUp} from 'react-icons/fa';\r\nimport { getItemIndex } from \"../CartUtils\";\r\nimport PartImages from \"./PartImages\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport Loading from \"./Loading\";\r\nimport imageexists from \"image-exists\";\r\nimport { Tabs, Tab } from 'react-bootstrap';\r\n\r\nclass DescProductList extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n cart: [],\r\n showModal: false,\r\n showModalFE: false,\r\n part_number: \"\",\r\n modifiedData: [],\r\n partFEData: [],\r\n Ishide: false,\r\n isLoad: false,\r\n FELoading: false,\r\n // visible:false, \r\n //loading: false,\r\n };\r\n this.state = { FELoading: false }\r\n this.closeModal = this.closeModal.bind(this);\r\n this.PrintPhoto = this.PrintPhoto.bind(this);\r\n this.closeModalFE = this.closeModalFE.bind(this);\r\n this.AddPhotoMetric = this.AddPhotoMetric.bind(this);\r\n // this.myRef=React.createRef();\r\n }\r\n\r\n /* componentDidUpdate(prevProps, prevState){\r\n // console.log(\"inside will\")\r\n this.fetchDetails()\r\n // check if dataSource state is still empty\r\n if (!prevState.modifiedData) {\r\n // Your networking code\r\n this.fetchDetails();\r\n }\r\n } */\r\n\r\n fetchDetails = () => {\r\n let prodNumber = this.props.data[0].ProductNumber\r\n let partNumbers = this.props.data.map(item => {\r\n return item.PartNumber\r\n })\r\n const url = FUNCTIONAL_LIST(prodNumber, localStorage.getItem(\"usertype\"))\r\n axios.post(url, partNumbers, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n let newData = [];\r\n let originalData = res.data.Body;\r\n // console.log(\"oridata\",originalData); \r\n newData = this.props.data.map((item, i) => Object.assign({}, item, originalData[i]));\r\n //console.log(\"newData\",newData);\r\n this.setState({ modifiedData: newData })\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n showModal = (partnumber) => {\r\n var photo_type = \".jpg\";\r\n const imageName = partnumber + photo_type;\r\n const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n const imagePath = imageLocation;\r\n //const imagePath= imageLocation+imageName;\r\n this.CheckImageavailability(imageLocation + imageName);\r\n this.AddPhotoMetric(partnumber);\r\n this.setState({ showModal: true, imagePath, isLoad: true, part_number: partnumber, });\r\n };\r\n\r\n CheckImageavailability = (path) => {\r\n imageexists(path, function (exists) {\r\n if (exists) {\r\n localStorage.setItem(\"photoAvailable\", \"Yes\");\r\n }\r\n else {\r\n localStorage.setItem(\"photoAvailable\", \"No\");\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n closeModal = () => {\r\n this.setState({ showModal: false });\r\n };\r\n\r\n showModalFE = (partnumber) => {\r\n //this.setState({loading:true})\r\n this.setState({ FELoading: true });\r\n const url = FUNCTIONAL(partnumber, 'US', localStorage.getItem(\"usertype\"))\r\n axios.get(url, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n // let partFEData = res.data.Body;\r\n this.setState({\r\n // loading:false,\r\n showModalFE: true,\r\n partFEData: res.data.Body\r\n });\r\n this.setState({ FELoading: false })\r\n }, (error) => {\r\n this.setState({ FELoading: false })\r\n })\r\n //<FunctionalEquivalent data = {partFEData}/> \r\n };\r\n\r\n buylink = (url, PartNumber) => {\r\n console.log(url);\r\n let urlprod;\r\n urlprod = BUYMETRIC(PartNumber);\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n }, (error) => {\r\n })\r\n return window.open(url, \"_blank\");\r\n }\r\n\r\n closeModalFE = () => {\r\n this.setState({ showModalFE: false });\r\n };\r\n\r\n AddPhotoMetric = (partnumber) => {\r\n let input = partnumber;\r\n let urlprod;\r\n urlprod = INSERTPHOTOMETRIC(input, localStorage.getItem(\"photoAvailable\"));\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n console.log(response);\r\n }, (error) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n PrintPhoto = () => {\r\n let elem = document.getElementById(\"photoImg\");\r\n var domClone = elem.cloneNode(true);\r\n var $printSection = document.getElementById(\"printSection\");\r\n if (!$printSection) {\r\n $printSection = document.createElement(\"div\");\r\n $printSection.id = \"printSection\";\r\n document.body.appendChild($printSection);\r\n }\r\n\r\n $printSection.innerHTML = \"\";\r\n $printSection.appendChild(domClone);\r\n window.print();\r\n document.getElementById(\"printSection\").remove();\r\n // Added by shreyas to remove the image after print\r\n // so that it takes new image selected from dropdown.\r\n\r\n };\r\n\r\n handleCartChange = (event, item) => {\r\n console.log(\"Cart ==> from props\", this.props);\r\n const { cart } = this.props;\r\n console.log(\"hnadle change request\", event, item, [...(cart || [])]);\r\n if (event) {\r\n alert(\r\n `One Item with PartNumber ${item.PartNumber} has been added to the Cart`\r\n );\r\n item.qty = 1;\r\n const updatedCart = [...(cart || []), item];\r\n console.log(\"add\", updatedCart);\r\n this.props.setCarItems(updatedCart);\r\n let urlprod;\r\n urlprod = CARTMETRIC(item.PartNumber, 1, 1);\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n }, (error) => {\r\n })\r\n }\r\n else {\r\n alert(\r\n `One Item with PartNumber ${item.PartNumber} has been removed from Cart`\r\n );\r\n const ind = getItemIndex(item.PartNumber, cart);\r\n if (ind > -1) {\r\n let newCart = cart || [];\r\n newCart.splice(ind, 1);\r\n console.log(\"remove\", newCart);\r\n this.props.setCarItems(newCart);\r\n }\r\n }\r\n };\r\n\r\n handleLoader = (value) => {\r\n console.log(\"load value\", value)\r\n this.setState({ isLoad: value })\r\n }\r\n // handleLoader (value){\r\n // console.log(\"load value\", value)\r\n // this.setState({isLoad : value})\r\n // }\r\n\r\n getImage = (event) => {\r\n const value = event.target.value;\r\n const imageLocation = `${process.env.REACT_APP_IMAGE_PATH}`;\r\n var text = '';\r\n text = text + '<h5><span class=\\\"badge badge-secondary\"\\>' + this.state.part_number + '</span></h5>';\r\n text = text + '<img id=\"photoImg\" class=\\\"responsive\"\\ src=' + imageLocation + value + \".jpg\" + ' alt=\\\"img\"\\/>';\r\n document.getElementById('mydiv').innerHTML = text;\r\n }\r\n\r\n\r\n render() {\r\n\r\n const { data, mobileView, cartQty } = this.props;\r\n const { imagePath, modifiedData, showModal, showModalFE, partFEData, Ishide, isLoad, FELoading } = this.state;\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n dataField: '',\r\n headerAttrs: {\r\n hidden: true\r\n },\r\n formatExtraData: (partNumber) => {\r\n // console.log(\"formatter data\", a, b, c);\r\n return cartQty[partNumber] ? true : false;\r\n },\r\n formatter: (col, prod, index, extra) => {\r\n const presentInCart = extra(prod.PartNumber);\r\n return (\r\n\r\n <React.Fragment key={prod.PartNumber}>\r\n <b>Photo : </b>\r\n {prod.PartPhotoFlag ? (\r\n <FontAwesomeIcon\r\n icon=\"camera\"\r\n onClick={() => this.showModal(prod.PartNumber)} style={{ cursor: 'pointer' }}\r\n />) : \"-N/A-\"}\r\n <br />\r\n <b>Part Number : </b>\r\n {prod.PartNumber}\r\n <br />\r\n <b>Part Description : </b>\r\n <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n {/* {prod.EnhancedDescription} */}\r\n {/* <br /> */}\r\n <b>CSR : </b>\r\n {prod.CsrFlag ? prod.CsrFlag : \"-N/A-\"}\r\n <br />\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\" : <b>Tech Courier : </b>}\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\" : prod.TechCourier ? prod.TechCourier : \"-N/A-\"}\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\" : <br />}\r\n <b>ROHS : </b>\r\n {prod.RohsCompliant ? prod.RohsCompliant : \"-N/A-\"}\r\n <br />\r\n <b>FE : </b>\r\n {prod.FE_MATERIAL ? (\r\n <OverlayTrigger\r\n placement=\"left\"\r\n overlay={<Tooltip>Functional Equivalent</Tooltip>}>\r\n <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} style={{ cursor: 'pointer' }} />\r\n </OverlayTrigger>\r\n ) : \"-N/A-\"}\r\n <br />\r\n {Cookies.get(\"HP_Country\") === \"US\" ? (\r\n <div>\r\n {/* <b>Click to Buy : </b> */}\r\n {/* \r\n // href={`${prod.BuyLink}`}\r\n // target=\"_blank\"\r\n // rel=\"noopener noreferrer\"*/}\r\n {prod.BuyLink != null ? (\r\n <a href=\"#\" rel=\"noopener noreferrer\" onClick={() => this.buylink(prod.BuyLink, prod.PartNumber)}>\r\n <img src={buy} alt=\"BuyLink\" />\r\n </a>\r\n ) : \"\"}\r\n </div>\r\n ) : null}\r\n {prod.OrderFlag === \"1\" ? (\r\n <input type=\"button\"\r\n value={!presentInCart ? \"Add to Cart\" : \"Remove from Cart\"}\r\n className=\"cart-button\"\r\n onClick={() =>\r\n this.handleCartChange(!presentInCart, prod)\r\n }\r\n >\r\n\r\n </input>\r\n ) : null}\r\n\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n\r\n ]\r\n : [\r\n {\r\n dataField: \"PartPhotoFlag\",\r\n text: \"Photo\",\r\n formatter: (col, row, index) =>\r\n col ? (\r\n <FontAwesomeIcon\r\n icon=\"camera\"\r\n onClick={() => this.showModal(row.PartNumber)} style={{ cursor: 'pointer' }}\r\n />\r\n ) : null,\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n },\r\n {\r\n dataField: \"OrderFlag\",\r\n text: \"Add to Cart\",\r\n formatExtraData: (partNumber) => {\r\n // console.log(\"formatter data\", a, b, c);\r\n return cartQty[partNumber] ? true : false;\r\n },\r\n formatter: (col, row, index, extra) => {\r\n const letEnabled = extra(row.PartNumber);\r\n return col === \"1\" ? (\r\n <input\r\n type=\"checkbox\"\r\n checked={letEnabled}\r\n onChange={(e) => this.handleCartChange(e.target.checked, row)} style={{ cursor: 'pointer' }}\r\n ></input>\r\n ) : (\r\n \"-N/A-\"\r\n );\r\n },\r\n headerStyle: () => {\r\n return { width: \"4%\" };\r\n },\r\n },\r\n {\r\n dataField: \"PartNumber\",\r\n text: \"Part Number\",\r\n headerStyle: () => {\r\n return { width: \"6%\" };\r\n },\r\n },\r\n {\r\n dataField: \"EnhancedDescription\",\r\n text: \"Part Description \",\r\n formatter: (col) => (\r\n <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n ),\r\n headerStyle: () => {\r\n return { width: \"35%\" };\r\n },\r\n },\r\n {\r\n dataField: \"CsrFlag\",\r\n text: \"CSR \",\r\n headerStyle: () => {\r\n return { width: \"1%\" };\r\n },\r\n },\r\n secureLocalStorage.getItem(\"loggeduser\") == null ? {\r\n dataField: \"TechCourier\",\r\n text: \"Tech Courier\",\r\n hidden: true,\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n } : {\r\n dataField: \"TechCourier\",\r\n text: \"Tech Courier\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"RohsCompliant\",\r\n text: \"ROHS\",\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n },\r\n {\r\n dataField: \"FE_MATERIAL\",\r\n text: \"FE \",\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n //formatter: (cell, prod, row, index) => {\r\n formatter: (col, prod, row, index) => {\r\n return col ?\r\n <OverlayTrigger\r\n placement=\"left\"\r\n overlay={<Tooltip>Functional Equivalent</Tooltip>}\r\n >\r\n <ExitToAppIcon onClick={() => this.showModalFE(prod.PartNumber)} style={{ cursor: 'pointer' }} />\r\n </OverlayTrigger>\r\n : \"-N/A-\"\r\n }\r\n },\r\n ];\r\n // {`${row.BuyLink}`}\r\n // onClick={this.buylink(prod.BuyLink)}\r\n if (!mobileView && Cookies.get(\"HP_Country\") === \"US\") {\r\n columns.splice(2, 0, {\r\n dataField: \"BuyLink\",\r\n text: \"Click to Buy\",\r\n formatter: (col, row, index) =>\r\n col ? (\r\n <a\r\n href=\"#\"\r\n rel=\"noopener noreferrer\"\r\n onClick={() => this.buylink(row.BuyLink, row.PartNumber)}\r\n >\r\n <img src={buy} alt=\"BuyLink\" />\r\n </a>\r\n ) :\r\n \"-N/A-\",\r\n headerStyle: () => {\r\n return { width: \"4%\" };\r\n },\r\n });\r\n }\r\n\r\n return (\r\n <div >\r\n <React.Fragment>\r\n {/* <div > \r\n <OverlayTrigger\r\n placement = \"left\"\r\n overlay = {<Tooltip>Go To Top</Tooltip>}> \r\n <FaArrowCircleUp className='go-to-top-button' onClick={this.scrollToTop.bind(this)} \r\n style={{display: visible ? 'inline' : 'none'}} \r\n />\r\n </OverlayTrigger>\r\n </div> */}\r\n {/* <ScrollUpButton></ScrollUpButton> */}\r\n\r\n <BootstrapTable\r\n keyField=\"PartNumber\"\r\n data={data}\r\n //data={modifiedData}\r\n columns={columns}\r\n striped\r\n // pagination={data.length > 10 ? paginationFactory() : undefined}\r\n //pagination={modifiedData.length > 10 ? paginationFactory() : undefined}\r\n />\r\n\r\n <React.Fragment>\r\n <Modal\r\n size=\"lg\"\r\n /* dialogClassName={\"my-modal\"}\r\n top */\r\n scrollable\r\n show={showModal}\r\n onHide={this.closeModal}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>Photo</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body id=\"PopupId\">\r\n {/* <img className=\"img-fluid\" src={imagePath} alt=\"img\" /> */}\r\n {/* {isLoad && (\r\n <div>Loading...... </div>\r\n )} */}\r\n\r\n <PartImages src={imagePath} partnumber={this.state.part_number} handleLoader={this.handleLoader.bind(this)} />\r\n </Modal.Body>\r\n <Modal.Footer style={{ alignItems: \"baseline\", justifyContent: \"flex-end\" }}>\r\n <div id=\"imgDiv\">\r\n <div class=\"input-group mb-3\">\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\" for=\"MyImages\">Select To View Additional Images</span>\r\n </div>\r\n <select class=\"custom-select\" id=\"MyImages\" onChange={this.getImage} >\r\n\r\n </select>\r\n </div>\r\n </div>\r\n <Button id=\"Print\" onClick={this.PrintPhoto}>\r\n Print\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n </React.Fragment>\r\n\r\n <React.Fragment>\r\n <Loading loading={FELoading} >\r\n <Modal\r\n size=\"lg\"\r\n // top\r\n scrollable\r\n show={showModalFE}\r\n onHide={this.closeModalFE}\r\n >\r\n <Modal.Header closeButton>\r\n <Modal.Title>Functional Equivalent</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body id=\"PopupId\">\r\n <FunctionalEquivalent data={partFEData} />\r\n </Modal.Body>\r\n <Modal.Footer>\r\n\r\n </Modal.Footer>\r\n </Modal>\r\n </Loading>\r\n </React.Fragment>\r\n {/* </Loading> */}\r\n\r\n </React.Fragment>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\n\r\nconst mapStateToProps = (state) => {\r\n let cartQty = {};\r\n state.cart.cartItems.forEach((item) => (cartQty[item.PartNumber] = item.qty));\r\n return {\r\n ...state,\r\n cart: state.cart.cartItems,\r\n cartQty,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setCarItems: (newCart) => {\r\n dispatch(setCarItems(newCart));\r\n },\r\n };\r\n};\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ViewHOC(DescProductList));\r\n","import React from 'react';\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport { Button,Tooltip, OverlayTrigger} from 'react-bootstrap';\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\n// import {FaArrowCircleUp} from 'react-icons/fa';\r\nimport \"./design.css\";\r\nimport { getAuthHeader } from './Util';\r\nimport { PRODUCTLIST } from './constants/APIConstants';\r\nimport ProductResults from \"./ProductResults\";\r\nimport { ViewHOC } from './ViewHOC';\r\nimport Loading from \"./Loading\";\r\n\r\n\r\nclass DescProductListPrint extends React.Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n isBack: false,\r\n parts: [],\r\n loading: false,\r\n visible:false, \r\n }\r\n this.myRef=React.createRef();\r\n }\r\n // componentWillUnmount()\r\n // {\r\n // window.addEventListener('scroll', this.toggleVisible.bind(this),true);\r\n // }\r\n // componentDidMount()\r\n // {\r\n // window.addEventListener('scroll', this.toggleVisible.bind(this),true);\r\n // }\r\n // toggleVisible() {\r\n // // console.log(\"inside toggle\");\r\n // const scrolled = document.documentElement.scrollTop;\r\n // if (scrolled > 300){\r\n // // console.log(\"page scrolled\");\r\n // this.setState({visible:true}) \r\n // } \r\n // else if (scrolled <= 300){\r\n // this.setState({visible:false}) \r\n // }\r\n // };\r\n // scrollToTop = () =>{\r\n // // console.log(\"inside scrollToTop\");\r\n // window.scrollTo({\r\n // top: 0, \r\n // behavior: 'smooth'\r\n // });\r\n // // this.myRef.current.scrollIntoView({\r\n // // behavior:\"smooth\"\r\n // // })\r\n // }; \r\n BackToPreviousPage = ()=>{ \r\n this.setState({loading:true}) \r\n let prodNumber = this.props.data[0].ProductNumber \r\n const url = PRODUCTLIST(prodNumber,localStorage.getItem(\"usertype\"))\r\n axios.get(url, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n //console.log('call success data:', response.data.Body ); \r\n this.setState({parts: response.data.Body }) \r\n this.setState({isBack:true,\r\n loading:false,\r\n }); \r\n }, (error) => {\r\n })\r\n }\r\n\r\n render()\r\n {\r\n const { data,mobileView } = this.props; \r\n const { isBack,loading,visible } = this.state; \r\n // console.log(\"state value\", data) \r\n // console.log(\"state value\", this.state.parts) \r\n const columns = mobileView \r\n ? [\r\n {\r\n text: \"#\",\r\n dataField: '',\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatter: (col, prod, index) => {\r\n return (\r\n <React.Fragment key={prod.PartNumber}>\r\n <b>Part Number : </b>\r\n {prod.PartNumber}\r\n <br />\r\n <b>Description : </b>\r\n <div dangerouslySetInnerHTML={{ __html: prod.EnhancedDescription }}></div>\r\n <b>CSR : </b>\r\n {prod.CsrFlag}\r\n <br />\r\n <b>ROHS : </b>\r\n {prod.RohsCompliant}\r\n <br />\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [ {\r\n dataField: \"PartNumber\",\r\n text: \"Part Number\",\r\n headerStyle: () => {\r\n return { width: \"6%\" };\r\n },\r\n },\r\n {\r\n dataField: \"EnhancedDescription\",\r\n text: \"Part Description \",\r\n formatter: (col) => (\r\n <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n ),\r\n headerStyle: () => {\r\n return { width: \"35%\" };\r\n },\r\n },\r\n {\r\n dataField: \"CsrFlag\",\r\n text: \"CSR \",\r\n headerStyle: () => {\r\n return { width: \"1%\" };\r\n },\r\n },\r\n secureLocalStorage.getItem(\"loggeduser\") == null ? {\r\n dataField: \"TechCourier\",\r\n text: \"Tech Courier\",\r\n hidden: true,\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n } : {\r\n dataField: \"TechCourier\",\r\n text: \"Tech Courier\",\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"RohsCompliant\",\r\n text: \"ROHS\",\r\n headerStyle: () => {\r\n return { width: \"2%\" };\r\n },\r\n },\r\n ]\r\n // window.addEventListener('scroll', this.toggleVisible.bind(this),true);\r\n return ( \r\n isBack?(\r\n <ProductResults data={this.state.parts}/>\r\n )\r\n :\r\n <div >\r\n {/* ref={this.myRef} */}\r\n <Loading loading={loading}>\r\n </Loading>\r\n <React.Fragment >\r\n <div className=\"btn-print-friendly\">\r\n <Button className=\"apply btn btn-primary\" onClick={() => this.BackToPreviousPage()} >Normal View</Button> \r\n </div>\r\n <br/>\r\n <BootstrapTable\r\n keyField=\"PartNumber\"\r\n data={data}\r\n columns={columns}\r\n striped\r\n />\r\n \r\n {/* <div > \r\n <OverlayTrigger\r\n placement = \"left\"\r\n overlay = {<Tooltip>Go To Top</Tooltip>}> \r\n <FaArrowCircleUp className='go-to-top-button' onClick={this.scrollToTop.bind(this)} \r\n style={{display: visible ? 'inline' : 'none'}} \r\n />\r\n </OverlayTrigger>\r\n </div> */}\r\n </React.Fragment>\r\n </div>\r\n ) \r\n }\r\n}\r\nexport default (ViewHOC(DescProductListPrint));","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Button } from 'react-bootstrap';\r\n//import Button from '@mui/material/Button';\r\nimport { isObject } from 'lodash';\r\nimport React from 'react';\r\nimport { Accordion, Alert, Card, Col, Collapse, Form, Row } from 'react-bootstrap';\r\nimport Select from 'react-select';\r\nimport { PART_PHOTO } from './constants/constants';\r\nimport { PART_FE } from './constants/constants';\r\nimport DescProductList from './DescProductList';\r\nimport DescProductListPrint from './DescProductListPrint';\r\nimport \"./design.css\";\r\nimport { ViewHOC } from './ViewHOC';\r\nimport { Link } from \"react-router-dom\";\r\nimport { SEARCH_MODES, SEARCH_TEXT } from \"./constants/constants\";\r\nimport { getQueryParam } from \"./Util\";\r\nimport secureLocalStorage from 'react-secure-storage';\r\nimport { GET_DIAGRAMS } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport { getAuthHeader } from './Util';\r\nimport { Modal } from \"react-bootstrap\";\r\n\r\nconst initialFilters = () => ({\r\n category: [],\r\n keyword: [],\r\n techCourier: [],\r\n rohs: [],\r\n CSR: [],\r\n photoFlag: '',\r\n FE: ''\r\n})\r\n\r\nclass ProductResults extends React.Component {\r\n constructor() {\r\n super()\r\n this.state = {\r\n isPrint: false,\r\n isSbom: false,\r\n SbomText: null,\r\n products: null,\r\n filters: initialFilters(),\r\n metadata: {\r\n category: [],\r\n keyword: [],\r\n techCourier: [],\r\n rohs: [],\r\n CSR: [],\r\n photoFlag: [],\r\n FE: []\r\n },\r\n Ishide: false,\r\n diagramItems: 0,\r\n isLoad: false,\r\n showDiaSection: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // this.props.data[0].ProductNumber \r\n console.log(\"pipebom\", this.props.data[0].PipeBomFlag);\r\n if (this.props.data[0].PipeBomFlag == 1) {\r\n this.setState({ isSbom: true });\r\n this.setState({ SbomText: \"Updated SBOM available\" });\r\n }\r\n else if (this.props.data[0].PipeBomFlag == 0) {\r\n this.setState({ isSbom: true });\r\n this.setState({ SbomText: \"SBOM\" });\r\n }\r\n if (this.props.data && !this.state.products) {\r\n this.getCategoryProducts(() => {\r\n this.triggerAll(true)\r\n this.generateMetdata()\r\n });\r\n }\r\n this.getDaigramData();\r\n }\r\n\r\n\r\n getDaigramData = () => {\r\n let prodNumber = this.props.data[0].ProductNumber;\r\n let url = GET_DIAGRAMS(prodNumber);\r\n let count = 0;\r\n axios.get(url, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n this.setState({ diagramItems: res.data.length });\r\n if (res.data.length > 0) {\r\n this.setState({ showDiaSection: true });\r\n res.data.map((con, index) => {\r\n var x = document.getElementById(\"myDia\");\r\n var option = document.createElement(\"option\");\r\n option.text = con.diagramName;\r\n option.value = con.diagramPath;\r\n x.add(option);\r\n count++;\r\n })\r\n\r\n }\r\n }, (error) => {\r\n console.log(error);\r\n\r\n })\r\n\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n // fix Warning: Can't perform a React state update on an unmounted component\r\n this.setState = (state, callback) => {\r\n return;\r\n };\r\n }\r\n PrintFriendlyView = () => {\r\n this.setState({ isPrint: true, mobileView: false });\r\n // console.log(\"inside printfriendly\")\r\n }\r\n\r\n\r\n generateMetdata = () => {\r\n const { filters, products } = this.state\r\n const { category, keyword, techCourier, rohs: rohsFilter, CSR, photoFlag: photoFilters, FE: feFilters } = filters;\r\n // console.log('check', category, metadata,filters, products)\r\n\r\n let temp = {}\r\n let count = 0\r\n\r\n let categoryFilters = category || [];\r\n Object.entries(products || {}).filter(([key, value]) => categoryFilters.length === 0 || (categoryFilters.indexOf(key) !== -1)).forEach(([key, value], index) => {\r\n let categories = temp.category || []\r\n let keywordFilters = keyword || [];\r\n\r\n Object.entries(value).filter(([catKey, catValue]) => keywordFilters.length === 0 || (keywordFilters.indexOf(catKey) !== -1)).forEach(([catKey, catValue], index) => {\r\n let keyWords = temp.keyword || [];\r\n // console.log('aa')\r\n let rohs = temp.rohs || [];\r\n let techCouriers = temp.techCourier || [];\r\n let CSRFlag = temp.CSR || [];\r\n let photoFlag = temp.photoFlag || [];\r\n let FE = temp.FE || [];\r\n catValue.filter(product => {\r\n // console.log('check check',product.PartPhotoFlag, product.PartPhotoFlag ? 'ON' : 'OFF', photoFilters,photoFilters === '-1' || photoFilters === (product.PartPhotoFlag ? 'ON' : 'OFF'))\r\n return (techCourier.length === 0 || (techCourier.indexOf(product.TechCourier) !== -1))\r\n && (rohsFilter.length === 0 || (rohsFilter.indexOf(product.RohsCompliant) !== -1))\r\n && (CSR.length === 0 || (CSR.indexOf(product.CsrFlag) !== -1))\r\n //&& (photoFlag === undefined || (product.PartPhotoFlag ? true : false) === photoFlag)\r\n && (!feFilters || feFilters === PART_FE.NOT_APPLICABLE\r\n || feFilters === (product.FE_MATERIAL ? PART_FE.PRESENT : PART_FE.NOT_PRESENT)) && (!photoFilters || photoFilters === PART_PHOTO.NOT_APPLICABLE\r\n || photoFilters === (product.PartPhotoFlag ? PART_PHOTO.PRESENT : PART_PHOTO.NOT_PRESENT))\r\n }).forEach(product => {\r\n count++;\r\n categories = categories.indexOf(key) !== -1 ? categories : [...categories, key]\r\n keyWords = keyWords.indexOf(catKey) !== -1 ? keyWords : [...keyWords, catKey]\r\n if (product.RohsCompliant) {\r\n rohs = rohs.indexOf(product.RohsCompliant) !== -1 ? rohs : [...rohs, product.RohsCompliant]\r\n }\r\n if (product.TechCourier) {\r\n techCouriers = techCouriers.indexOf(product.TechCourier) !== -1 ? techCouriers : [...techCouriers, product.TechCourier]\r\n }\r\n if (product.CsrFlag) {\r\n CSRFlag = CSRFlag.indexOf(product.CsrFlag) !== -1 ? CSRFlag : [...CSRFlag, product.CsrFlag]\r\n }\r\n if (product.FE_MATERIAL || product.FE_MATERIAL === false) {\r\n const fePresent = product.FE_MATERIAL ? PART_FE.PRESENT : PART_FE.NOT_PRESENT;\r\n FE = FE.indexOf(fePresent) !== -1 ? FE : [...FE, fePresent]\r\n } if (product.PartPhotoFlag || product.PartPhotoFlag === 0) {\r\n const photoPresent = product.PartPhotoFlag ? PART_PHOTO.PRESENT : PART_PHOTO.NOT_PRESENT;\r\n photoFlag = photoFlag.indexOf(photoPresent) !== -1 ? photoFlag : [...photoFlag, photoPresent]\r\n }\r\n // console.log('here', product.PartPhotoFlag, photoFlag)\r\n })\r\n temp.keyword = keyWords\r\n temp.rohs = rohs;\r\n temp.techCourier = techCouriers\r\n temp.CSR = CSRFlag\r\n // console.log('cons', photoFlag)\r\n temp.photoFlag = photoFlag\r\n temp.FE = FE\r\n })\r\n temp.category = categories\r\n // console.log('here',temp)\r\n })\r\n this.setState({ metadata: temp, itemsCount: count })\r\n }\r\n\r\n filterData = () => {\r\n const { filters, products } = this.state\r\n const { category, keyword, techCourier, rohs: rohsFilter, photoFlag, CSR, FE } = filters;\r\n // console.log('check', category, filters, metadata, products)\r\n let temp = {}\r\n let categoryFilters = category || [];\r\n Object.entries(products || {}).filter(([key, value]) => categoryFilters.length === 0 || (categoryFilters.indexOf(key) !== -1)).forEach(([key, value], index) => {\r\n let keywordFilters = keyword || [];\r\n Object.entries(value).filter(([catKey, catValue]) => keywordFilters.length === 0 || (keywordFilters.indexOf(catKey) !== -1)).forEach(([catKey, catValue], index) => {\r\n catValue.filter(product => {\r\n // console.log('check beck',product.PartPhotoFlag, product.PartPhotoFlag ? 'ON' : 'OFF', photoFlag)\r\n return (techCourier.length === 0 || (techCourier.indexOf(product.TechCourier) !== -1))\r\n && (rohsFilter.length === 0 || (rohsFilter.indexOf(product.RohsCompliant) !== -1))\r\n && (CSR.length === 0 || (CSR.indexOf(product.CsrFlag) !== -1))\r\n // && (FE.length === 0 || (FE.indexOf(product.FE_MATERIAL) !== -1))\r\n && (!FE || FE === PART_FE.NOT_APPLICABLE\r\n || FE === (product.FE_MATERIAL ? PART_FE.PRESENT : PART_FE.NOT_PRESENT)) && (!photoFlag || photoFlag === PART_PHOTO.NOT_APPLICABLE\r\n || photoFlag === (product.PartPhotoFlag ? PART_PHOTO.PRESENT : PART_PHOTO.NOT_PRESENT))\r\n ///&& (CSR === undefined || (product.CsrFlag ? true : false) === photoFlag)\r\n }).forEach(element => {\r\n const category = element.CategoryName\r\n const keyword = element.KeywordName\r\n\r\n let cat = temp[category] || {}\r\n let keyw = cat[keyword] || []\r\n keyw.push(element)\r\n\r\n temp[category] = temp[category] || {}\r\n temp[category][keyword] = keyw\r\n })\r\n })\r\n console.log('here filter', temp)\r\n })\r\n // if(applyField)\r\n // {\r\n // temp = {...temp, [applyField]: metadata[applyField]}\r\n // }\r\n this.setState({ filteredData: temp })\r\n\r\n }\r\n\r\n getPhotoFrame = (partNumber) => `<iframe src=\"http://partsurfer.hp.com/ShowPhoto.aspx?partnumber=${partNumber}\" width=\"540\" height=\"450\"></iframe>`;\r\n\r\n\r\n getCategoryProducts = (callback) => {\r\n let temp = {}\r\n const { data } = this.props;\r\n data.forEach(element => {\r\n const category = element.CategoryName\r\n const keyword = element.KeywordName\r\n\r\n let cat = temp[category] || {}\r\n let keyw = cat[keyword] || []\r\n keyw.push(element)\r\n\r\n temp[category] = temp[category] || {}\r\n temp[category][keyword] = keyw\r\n\r\n })\r\n\r\n this.setState({ products: temp }, () => {\r\n this.generateMetdata()\r\n this.filterData()\r\n callback && callback()\r\n })\r\n }\r\n\r\n triggerAll = (shouldExpand, key) => {\r\n const { products } = this.state;\r\n // console.log('key', key, shouldExpand)\r\n let status = {};\r\n if (key) {\r\n const main = products[key] || {}\r\n Object.keys(main).forEach(catKey => {\r\n status[`${key}-${catKey}-collapsed`] = shouldExpand\r\n })\r\n shouldExpand && !this.state[`${key}-collapsed`]\r\n ? this.setState({ ...this.state, ...status, [`${key}-triggered`]: shouldExpand, [`${key}-collapsed`]: shouldExpand })\r\n : this.setState({ ...this.state, ...status, [`${key}-triggered`]: shouldExpand })\r\n }\r\n else {\r\n Object.keys(products).forEach(key => {\r\n status[`${key}-collapsed`] = shouldExpand\r\n })\r\n this.setState({ ...this.state, ...status, triggered: shouldExpand })\r\n }\r\n }\r\n\r\n changeFilters = (key, value, isMulti = false, isFlag = false) => {\r\n // console.log('changefilter', key, value, isMulti)\r\n const { filters } = this.state;\r\n if (isFlag) {\r\n this.setState({ filters: { ...filters, [key]: value } }, () => this.generateMetdata())\r\n }\r\n else if (isMulti) {\r\n this.setState({ filters: { ...filters, [key]: (value || []).map(selection => selection.value) } })//, () => this.generateMetdata())\r\n }\r\n else {\r\n this.setState({ filters: { ...filters, [key]: value ? isObject(value) ? value.value : value : '' } }, () => this.generateMetdata())\r\n }\r\n }\r\n\r\n handleModalShowHide = () => {\r\n this.setState({ showHide: !this.state.showHide });\r\n };\r\n\r\n getDiagram = () => {\r\n let val = document.getElementById('myDia').value;\r\n const path = `${process.env.REACT_APP_DIAGRAM_PATH}`;\r\n this.setState({ showHide: true, imagePath: path + val, isLoad: true });\r\n }\r\n\r\n closeModal = () => {\r\n this.setState({ showHide: false });\r\n };\r\n\r\n\r\n GoToLast = () => {\r\n var scrollHeight = document.body.scrollHeight;\r\n var posToScroll = scrollHeight - (scrollHeight * 13) / 100;\r\n window.scroll({ top: posToScroll, behavior: \"smooth\" })\r\n };\r\n\r\n loadComplete = () => {\r\n this.setState({ isLoad: false });\r\n }\r\n\r\n printDiagram = () => {\r\n let elem = document.getElementById(\"diaImg\");\r\n var domClone = elem.cloneNode(true);\r\n var $printSection = document.getElementById(\"printSection\");\r\n if (!$printSection) {\r\n $printSection = document.createElement(\"div\");\r\n $printSection.id = \"printSection\";\r\n document.body.appendChild($printSection);\r\n }\r\n\r\n $printSection.innerHTML = \"\";\r\n $printSection.appendChild(domClone);\r\n window.print();\r\n document.getElementById(\"printSection\").remove();\r\n }\r\n\r\n render() {\r\n const { data, mobileView } = this.props;\r\n const { filters, itemsCount, isPrint, Ishide, isSbom, SbomText, diagramItems, showHide, imagePath, isLoad, showDiaSection } = this.state;\r\n const searchText = getQueryParam(this.props, SEARCH_TEXT);\r\n return (\r\n\r\n <React.Fragment>\r\n <Modal size=\"lg\" scrollable show={showHide} onHide={this.closeModal}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>Diagram</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body id=\"PopupId\">\r\n {isLoad && (\r\n <div>Please wait Loading Image...... </div>\r\n )}\r\n <img id=\"diaImg\" className=\"responsive\" src={imagePath} onLoad={this.loadComplete} alt=\"Image Cannot Be Displayed\" />\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button id=\"Print\" onClick={this.printDiagram}>\r\n Print\r\n </Button>\r\n </Modal.Footer>\r\n </Modal>\r\n\r\n {/* <Details mode='PRODUCT' payload={data} expandIconRequired={true} triggered={this.state.triggered} triggerAll={this.triggerAll} /> */}\r\n {isPrint ? (\r\n <DescProductListPrint data={this.props.data} />\r\n )\r\n : mobileView\r\n ?\r\n <React.Fragment>\r\n <div className=\"btn-print-friendly\" >\r\n {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n <Link rel=\"noopener noreferrer\" className=\"apply btn btn-primary\" to={`/PartSurfer/Sbom/${data[0].ProductNumber}`}>\r\n {SbomText}\r\n </Link>\r\n : ''}\r\n \r\n <Button className=\"apply btn btn-primary\" onClick={() => this.PrintFriendlyView()} >Print View</Button>\r\n </div>\r\n <br />\r\n <Accordion defaultActiveKey=\"1\" >\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Click here to customize your search results\r\n <div >\r\n {itemsCount ? <div>{itemsCount} Records found</div> : 'no'}\r\n </div>\r\n\r\n\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\" >\r\n <Card.Body >\r\n <Form >\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalCat\">\r\n <Form.Label column md={'5'} lg={'4'} xl={'3'} >\r\n Category:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n\r\n // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n isMulti\r\n value={(filters?.category || []).map(ele => ({ value: ele, label: ele }))}\r\n onChange={(option) => this.changeFilters('category', option, true)}\r\n options={(this.state.metadata?.category || []).map(key => ({ value: key, label: key }))} /></Col>\r\n </Form.Group>\r\n </Col>\r\n {/* </Row>\r\n <Row> */}\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalRohs\">\r\n <Form.Label column sm={'3'} lg={'4'} xl={'4'} md={'4'}>\r\n ROHS:\r\n </Form.Label>\r\n <Col sm={'12'} lg={'8'} md={'8'} xs={'12'} xl={'8'} >\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n onChange={(option) => this.changeFilters('rohs', option, true)}\r\n isMulti={true}\r\n value={(filters?.rohs || []).map(ele => ({ value: ele, label: ele }))}\r\n options={(this.state.metadata?.rohs || []).map(key => ({ value: key, label: key }))}\r\n />\r\n\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n {/* </Row>\r\n <Row> */}\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalKey\">\r\n <Form.Label column sm={'3'} lg={'4'} xl={'3'}>\r\n Keyword:\r\n </Form.Label>\r\n <Col sm={'12'} lg={'8'} md={'6'} xs={'12'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n value={(filters?.keyword || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti\r\n onChange={(option) => this.changeFilters('keyword', option, true)}\r\n options={(this.state.metadata?.keyword || []).map(key => ({ value: key, label: key }))} />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col>\r\n {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n <Form.Group as={Row} controlId=\"formHorizontalTech\">\r\n <Form.Label column sm={'3'} lg={'4'} xl={'4'} md={'4'} >\r\n Tech Courier:\r\n </Form.Label>\r\n <Col sm={'12'} lg={'8'} md={'8'} xs={'12'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(filters?.techCourier || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti={true}\r\n onChange={(option) => this.changeFilters('techCourier', option, true)}\r\n options={(this.state.metadata?.techCourier || []).map(key => ({ value: key, label: key })) || []} />\r\n </Col></Form.Group>\r\n : \"\"}\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalCSR\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'2'} >\r\n CSR:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(filters?.CSR || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti={true}\r\n onChange={(option) => this.changeFilters('CSR', option, true)}\r\n options={(this.state.metadata?.CSR || []).map(key => ({ value: key, label: key })) || []} />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n\r\n </Row>\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalFE\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'2'} >\r\n FE:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n value={filters?.FE && { value: filters?.FE, label: filters?.FE }}\r\n onChange={(option) => this.changeFilters('FE', option)}\r\n options={(this.state.metadata?.FE || []).map(key => ({ value: key, label: key })) || []} />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n\r\n </Row>\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalPhoto\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'2'} >\r\n Photo:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n //closeMenuOnSelect={false}\r\n //onMenuClose={this.generateMetdata}\r\n //isSearchable\r\n // Value={['-N/A-']}\r\n value={filters?.photoFlag && { value: filters?.photoFlag, label: filters?.photoFlag }}\r\n onChange={(option) => this.changeFilters('photoFlag', option)}\r\n options={(this.state.metadata?.photoFlag || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n <Col sm={'10'}>\r\n <div className=\"searchbox\" style={{ float: 'right' }}>\r\n <button type=\"button\" className=\"apply btn btn-primary\" onClick={() => {\r\n this.filterData()\r\n }} >\r\n Apply\r\n </button>\r\n \r\n <button type=\"button\" className=\"reset btn btn-primary\" onClick={() => {\r\n this.setState({ filters: initialFilters() }, () => { this.filterData() });\r\n }} >Reset</button>\r\n <br />\r\n </div>\r\n </Col>\r\n </Row>\r\n </Form>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n\r\n\r\n {showDiaSection && (\r\n <Accordion defaultActiveKey=\"1\" >\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Click here to view Diagrams\r\n <div style={{ float: 'right' }} >\r\n {diagramItems ? <div>{diagramItems} Records found</div> : 'No Records'}\r\n </div>\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\" >\r\n <Card.Body >\r\n <div id=\"diaDiv\">\r\n <div class=\"input-group mb-3\">\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\" for=\"myDia\">Available Diagrams</span>\r\n </div>\r\n <select class=\"custom-select\" id=\"myDia\" >\r\n\r\n </select>\r\n <button type=\"button\" className=\"apply btn btn-primary\" onClick={this.getDiagram}>View</button>\r\n </div>\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n )}\r\n\r\n <br />\r\n {\r\n Object.entries(this.state.filteredData || {}).map(([key, value], index) => (\r\n <div key={key}>\r\n <Accordion activeKey={this.state[`${key}-collapsed`] ? key : undefined}>\r\n <Card >\r\n <Row noGutters={true}>\r\n <Col xs={'11'} sm={'11'} md={'11'} lg={'11'} xl={'11'}>\r\n <Accordion.Toggle\r\n as={Card.Header}\r\n eventKey={key}\r\n onClick={() => {\r\n this.setState({ [`${key}-collapsed`]: !this.state[`${key}-collapsed`] });\r\n }}>\r\n <span>{!this.state[`${key}-collapsed`] ?\r\n <FontAwesomeIcon icon=\"chevron-up\" /> :\r\n <FontAwesomeIcon icon=\"chevron-down\" />}</span> {key}\r\n\r\n </Accordion.Toggle>\r\n </Col>\r\n\r\n <Col className=\"card-header\" xs={'1'} sm={'1'} md={'1'} lg={'1'} xl={'1'}>\r\n <div style={{ float: 'right', marginRight: '10px' }} onClick={() => this.triggerAll(this.state[`${key}-triggered`] ? false : true, key)}>\r\n {!this.state[`${key}-triggered`] ? <FontAwesomeIcon icon=\"minus-square\" /> : <FontAwesomeIcon icon=\"plus-square\" />}\r\n {/* <span onClick={() => this.triggerAll(false, key)}><i class=\"fas fa-minus-square\"></i></span> */}\r\n </div>\r\n\r\n </Col>\r\n </Row>\r\n\r\n <Accordion.Collapse eventKey={key}>\r\n <Card.Body key={key} style={{ overflow: \"auto\" }}>\r\n <div>\r\n {Object.entries(value || {}).map(([catKey, catValue], index) => (\r\n <React.Fragment key={catKey}>\r\n <Alert key={`${key}-${catKey}`}\r\n\r\n variant=\"dark\"\r\n\r\n onClick={() => {\r\n this.setState({ [`${key}-${catKey}-collapsed`]: !this.state[`${key}-${catKey}-collapsed`] });\r\n }}\r\n >\r\n {!this.state[`${key}-${catKey}-collapsed`] ? <FontAwesomeIcon icon=\"minus\" /> : <FontAwesomeIcon icon=\"plus\" />} {catKey}\r\n </Alert>\r\n <Collapse in={!this.state[`${key}-${catKey}-collapsed`]}>\r\n <div>\r\n <DescProductList data={catValue} />\r\n </div>\r\n </Collapse>\r\n </React.Fragment>))}\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n\r\n </Card>\r\n </Accordion>\r\n\r\n </div>))\r\n }\r\n </React.Fragment>\r\n\r\n :\r\n <React.Fragment>\r\n <div className=\"btn-print-friendly\" >\r\n {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n <Link rel=\"noopener noreferrer\" className=\"apply btn btn-primary\" to={`/PartSurfer/Sbom/${data[0].ProductNumber}`}>\r\n {SbomText}\r\n </Link>\r\n : ''}\r\n \r\n <Button className=\"apply btn btn-primary\" onClick={() => this.PrintFriendlyView()} >Print View</Button>\r\n </div>\r\n <br />\r\n\r\n\r\n\r\n\r\n <Accordion defaultActiveKey=\"1\" >\r\n <Card >\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Click here to customize your search results\r\n <div style={{ float: 'right' }}>\r\n {itemsCount ? <div>{itemsCount} Records found</div> : 'no'}\r\n\r\n </div>\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\" >\r\n <Card.Body >\r\n <Form >\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalCat\">\r\n <Form.Label column md={'5'} lg={'4'} xl={'3'} >\r\n Category:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n isMulti\r\n value={(filters?.category || []).map(ele => ({ value: ele, label: ele }))}\r\n onChange={(option) => this.changeFilters('category', option, true)}\r\n options={(this.state.metadata?.category || []).map(key => ({ value: key, label: key }))} /></Col>\r\n </Form.Group>\r\n </Col>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalRohs\">\r\n <Form.Label column md={'7'} lg={'4'} xl={'4'}>\r\n ROHS:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'} >\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n onChange={(option) => this.changeFilters('rohs', option, true)}\r\n isMulti={true}\r\n value={(filters?.rohs || []).map(ele => ({ value: ele, label: ele }))}\r\n options={(this.state.metadata?.rohs || []).map(key => ({ value: key, label: key }))}\r\n />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalCSR\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n CSR:\r\n </Form.Label>\r\n {filters?.CSR && <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(filters?.CSR || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti={true}\r\n onChange={(option) => this.changeFilters('CSR', option, true)}\r\n options={(this.state.metadata?.CSR || []).map(key => ({ value: key, label: key })) || []} />\r\n </Col>}\r\n </Form.Group>\r\n </Col>\r\n </Row>\r\n\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalKey\">\r\n <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n Keyword:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n value={(filters?.keyword || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti\r\n onChange={(option) => this.changeFilters('keyword', option, true)}\r\n options={(this.state.metadata?.keyword || []).map(key => ({ value: key, label: key }))} />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n <Col>\r\n {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n <Form.Group as={Row} controlId=\"formHorizontalTech\">\r\n <Form.Label column md={'7'} lg={'5'} xl={'4'} >\r\n Tech Courier:\r\n </Form.Label>\r\n <Col md={'12'} lg={'7'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(filters?.techCourier || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti={true}\r\n onChange={(option) => this.changeFilters('techCourier', option, true)}\r\n options={(this.state.metadata?.techCourier || []).map(key => ({ value: key, label: key })) || []} />\r\n </Col></Form.Group>\r\n : \"\"}\r\n </Col>\r\n <Col>\r\n <Form.Group as={Row} controlId=\"formHorizontalPhoto\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n Photo:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n //closeMenuOnSelect={false}\r\n //onMenuClose={this.generateMetdata}\r\n //isSearchable\r\n // Value={['-N/A-']}\r\n isClearable={true}\r\n value={filters?.photoFlag && { value: filters?.photoFlag, label: filters?.photoFlag }}\r\n onChange={(option) => this.changeFilters('photoFlag', option)}\r\n options={(this.state.metadata?.photoFlag || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n </Row>\r\n\r\n {/* New Row added for Functional Equivalent filter Start Here*/}\r\n <Row>\r\n <Col >\r\n <Form.Group as={Row} controlId=\"formHorizontalFe\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n FE:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n value={filters?.FE && { value: filters?.FE, label: filters?.FE }}\r\n onChange={(option) => this.changeFilters('FE', option)}\r\n options={(this.state.metadata?.FE || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n\r\n <Col style={{ visibility: \"hidden\" }}>\r\n\r\n <Form.Group as={Row} controlId=\"drgdf\">\r\n <Form.Label column md={'7'} lg={'5'} xl={'4'} >\r\n Tech Courier:\r\n </Form.Label>\r\n <Col md={'12'} lg={'7'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(filters?.techCourier || []).map(ele => ({ value: ele, label: ele }))}\r\n isMulti={true}\r\n onChange={(option) => this.changeFilters('techCourier', option, true)}\r\n options={(this.state.metadata?.techCourier || []).map(key => ({ value: key, label: key })) || []} />\r\n </Col></Form.Group>\r\n </Col>\r\n <Col style={{ visibility: \"hidden\" }}>\r\n <Form.Group as={Row} controlId=\"abv\">\r\n <Form.Label column md={'5'} lg={'3'} xl={'3'} >\r\n Photo:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n //closeMenuOnSelect={false}\r\n //onMenuClose={this.generateMetdata}\r\n //isSearchable\r\n // Value={['-N/A-']}\r\n isClearable={true}\r\n value={filters?.photoFlag && { value: filters?.photoFlag, label: filters?.photoFlag }}\r\n onChange={(option) => this.changeFilters('photoFlag', option)}\r\n options={(this.state.metadata?.photoFlag || []).map(key => ({ value: key, label: key })) || []} />\r\n\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n </Row>\r\n {/* New Row added for Functional Equivalent filter End Here*/}\r\n <Row>\r\n <Col>\r\n <div className=\"searchbox\" style={{ float: 'right' }}>\r\n <button type=\"button\" className=\"apply btn btn-primary\" onClick={() => {\r\n this.filterData()\r\n }} >\r\n Apply\r\n </button>\r\n \r\n <button type=\"button\" className=\"reset btn btn-primary\" onClick={() => {\r\n this.setState({ filters: initialFilters() }, () => {\r\n this.generateMetdata();\r\n this.filterData()\r\n });\r\n }} >Reset</button>\r\n </div>\r\n </Col>\r\n </Row>\r\n\r\n </Form>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n {showDiaSection && (\r\n <Accordion defaultActiveKey=\"1\" >\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Click here to view Diagrams\r\n <div style={{ float: 'right' }} >\r\n {diagramItems ? <div>{diagramItems} Records found</div> : 'No Records'}\r\n </div>\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\" >\r\n <Card.Body >\r\n <div id=\"diaDiv\">\r\n <div class=\"input-group mb-3\">\r\n <div class=\"input-group-prepend\">\r\n <span class=\"input-group-text\" for=\"myDia\">Available Diagrams</span>\r\n </div>\r\n <select class=\"custom-select\" id=\"myDia\" >\r\n\r\n </select>\r\n <button type=\"button\" className=\"apply btn btn-primary\" onClick={this.getDiagram}>View</button>\r\n </div>\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n )}\r\n\r\n\r\n\r\n\r\n\r\n <br />\r\n {\r\n Object.entries(this.state.filteredData || {}).map(([key, value]) => {\r\n // console.log('aaa', `${key}-collapsed`, this.state[`${key}-collapsed`],value)\r\n return (\r\n <div key={key}>\r\n <Accordion activeKey={this.state[`${key}-collapsed`] ? key : undefined} >\r\n {/* /this.state[`${key}-collapsed`] ? index : undefined}> */}\r\n <Card >\r\n <Row noGutters={true}>\r\n <Col xs={'11'} sm={'11'} md={'11'} lg={'11'} xl={'11'}>\r\n <Accordion.Toggle\r\n as={Card.Header}\r\n eventKey={key}\r\n onClick={() => {\r\n this.setState({ [`${key}-collapsed`]: !this.state[`${key}-collapsed`] });\r\n }}>\r\n <span>{!this.state[`${key}-collapsed`] ?\r\n <FontAwesomeIcon icon=\"chevron-up\" /> :\r\n <FontAwesomeIcon icon=\"chevron-down\" />}</span> {key}\r\n\r\n </Accordion.Toggle>\r\n </Col>\r\n\r\n <Col className=\"card-header\" xs={'1'} sm={'1'} md={'1'} lg={'1'} xl={'1'}>\r\n <div style={{ float: 'right', marginRight: '10px' }} onClick={() => this.triggerAll(this.state[`${key}-triggered`] ? false : true, key)}>\r\n {!this.state[`${key}-triggered`] ? <FontAwesomeIcon icon=\"minus-square\" /> : <FontAwesomeIcon icon=\"plus-square\" />}\r\n {/* <span onClick={() => this.triggerAll(false, key)}><i class=\"fas fa-minus-square\"></i></span> */}\r\n </div>\r\n\r\n </Col>\r\n </Row>\r\n <Accordion.Collapse eventKey={key} >\r\n <Card.Body key={key} style={{ overflow: \"auto\" }}>\r\n <div >\r\n {Object.entries(value || {}).map(([catKey, catValue], index) => (\r\n <React.Fragment key={catKey} >\r\n <Alert key={`${key}-${catKey}`}\r\n\r\n variant=\"dark\"\r\n\r\n onClick={() => {\r\n this.setState({ [`${key}-${catKey}-collapsed`]: !this.state[`${key}-${catKey}-collapsed`] });\r\n }}\r\n >\r\n {!this.state[`${key}-${catKey}-collapsed`] ? <FontAwesomeIcon icon=\"minus\" /> : <FontAwesomeIcon icon=\"plus\" />} {catKey}\r\n </Alert>\r\n <Collapse in={!this.state[`${key}-${catKey}-collapsed`]}>\r\n <div>\r\n <DescProductList data={catValue} />\r\n </div>\r\n </Collapse>\r\n </React.Fragment>))}\r\n </div>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n\r\n </Card>\r\n </Accordion>\r\n </div>\r\n )\r\n })\r\n }\r\n\r\n </React.Fragment>\r\n\r\n }\r\n </React.Fragment>\r\n\r\n\r\n\r\n\r\n\r\n\r\n )\r\n\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n\r\nexport default ViewHOC(ProductResults)\r\n","import React, { Component } from \"react\";\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\n\r\nclass SpareBOM extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n Ishide: false,\r\n };\r\n }\r\n\r\n\r\n\r\n isValid = () => {\r\n const { data } = this.props;\r\n return (\r\n data.length !== 1 &&\r\n data.filter((row) => row.PartNumber !== \"-N/A-\").length > 0\r\n );\r\n };\r\n\r\n render() {\r\n const { data, mobileView } = this.props;\r\n const {Ishide} = this.state;\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatter: (col, prod, index) => {\r\n return (\r\n <React.Fragment key={prod.spare_part_no}>\r\n {this.isValid() ? (\r\n <React.Fragment>\r\n <b>Parent Part Number : </b>\r\n {prod.part_number}\r\n <br />\r\n <b>Part Number : </b>\r\n {prod.spare_part_no}\r\n <br />\r\n <b>Spare Part Description : </b>\r\n <div dangerouslySetInnerHTML={{ __html: prod.spare_part_description }}></div>\r\n {/* {prod.spare_part_description} */}\r\n <br />\r\n <b>Enhanced Part Description : </b>\r\n {prod.spare_enhance_desc}\r\n <br />\r\n <b>Category : </b>\r\n {prod.sp_category}\r\n <br />\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\": <b>Tech Courier : </b>}\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\": prod.sp_techcourier}\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\":<br />}\r\n <b>CSR : </b>\r\n {prod.sp_csrflag}\r\n <br />\r\n <b>ROHS : </b>\r\n {prod.sp_rohs_status_code}\r\n <br />\r\n </React.Fragment>\r\n ) : (\r\n <p> No additional information found in PartSurfer.</p>\r\n )}\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [\r\n {\r\n dataField: \"part_number\",\r\n text: \"Parent Part Number\",\r\n headerStyle: () => {\r\n return { width: \"10%\" };\r\n },\r\n },\r\n {\r\n dataField: \"spare_part_no\",\r\n text: \"Part Number\",\r\n headerStyle: () => {\r\n return { width: \"15%\" };\r\n },\r\n },\r\n {\r\n dataField: \"spare_part_description\",\r\n text: \"Basic Spare Part Description\",\r\n formatter: (col) => (\r\n <div dangerouslySetInnerHTML={{ __html: col }}></div>\r\n ),\r\n headerStyle: () => {\r\n return { width: \"20%\" };\r\n },\r\n },\r\n {\r\n dataField: \"spare_enhance_desc\",\r\n text: \"Enhanced Spare Part Description\",\r\n headerStyle: () => {\r\n return { width: \"20%\" };\r\n },\r\n },\r\n {\r\n dataField: \"sp_category\",\r\n text: \"Category\",\r\n headerStyle: () => {\r\n return { width: \"10%\" };\r\n },\r\n },\r\n {\r\n dataField: \"sp_csrflag\",\r\n text: \"CSR\",\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n },\r\n },\r\n {\r\n dataField: \"sp_rohs_status_code\",\r\n text: \"ROHS\",\r\n headerStyle: () => {\r\n return { width: \"10%\" };\r\n },\r\n },\r\n secureLocalStorage.getItem(\"loggeduser\") == null ? {\r\n dataField: \"sp_techcourier\",\r\n text: \"Tech Courier\",\r\n hidden: true,\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n },\r\n } : {\r\n dataField: \"sp_techcourier\",\r\n text: \"Tech Courier\",\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <React.Fragment>\r\n {this.isValid() ? (\r\n <BootstrapTable\r\n keyField=\"spare_part_no\"\r\n striped\r\n data={data}\r\n columns={columns}\r\n \r\n />\r\n ) : (\r\n <div> No additional information found in PartSurfer.</div>\r\n )}\r\n {/* pagination={data.length > 10 ? paginationFactory() : undefined} */}\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default ViewHOC(SpareBOM);\r\n","import React from \"react\";\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\n\r\nclass ComponentBOM extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n Ishide: false,\r\n };\r\n }\r\n\r\n isValid = () => {\r\n const { data } = this.props;\r\n return (\r\n data.length !== 1 &&\r\n data.filter((row) => row.parent_part_number !== \"-N/A-\").length > 0\r\n );\r\n };\r\n\r\n render() {\r\n const { data, mobileView } = this.props;\r\n const {Ishide} = this.state;\r\n\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n dataField:'',\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatter: (col, prod, index) => {\r\n return (\r\n <React.Fragment key={prod.part_number}>\r\n {this.isValid() ? (\r\n <React.Fragment>\r\n <b>Parent Part Number : </b>\r\n {prod.parent_part_number}\r\n <br />\r\n <b>Assembly Part Number : </b>\r\n {prod.part_number}\r\n <br />\r\n <b>Part Description : </b>\r\n {prod.part_description}\r\n <br />\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\": <b>Part Serial Number : </b> }\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\": prod.part_serialno}\r\n {secureLocalStorage.getItem(\"loggeduser\") == null ? \"\":<br />}\r\n <b>QTY : </b>\r\n {prod.part_quantity}\r\n <br />\r\n </React.Fragment>\r\n ) : (\r\n <div> No additional information found in PartSurfer.</div>\r\n )}\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [\r\n {\r\n dataField: \"parent_part_number\",\r\n text: \"Parent Part Number\",\r\n },\r\n {\r\n dataField: \"part_number\",\r\n text: \"Assembly Part Number\",\r\n },\r\n {\r\n dataField: \"part_description\",\r\n text: \"Part Description\",\r\n },\r\n secureLocalStorage.getItem(\"loggeduser\") == null ?{\r\n dataField: \"part_serialno\",\r\n text: \"Part Serial Number\",\r\n hidden: true,\r\n }: {\r\n dataField: \"part_serialno\",\r\n text: \"Part Serial Number\",\r\n },\r\n {\r\n dataField: \"part_quantity\",\r\n text: \"QTY\",\r\n },\r\n ];\r\n\r\n return (\r\n <React.Fragment>\r\n {this.isValid() ? (\r\n <BootstrapTable\r\n keyField=\"part_number\"\r\n striped\r\n data={(data || []).map((rec, ind) => ({ ...rec, key: ind }))}\r\n columns={columns}\r\n \r\n />\r\n ) : (\r\n <div> No additional information found in PartSurfer.</div>\r\n )}\r\n {/* pagination={data.length > 10 ? paginationFactory() : undefined} */}\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default ViewHOC(ComponentBOM);\r\n","import React, { Component } from \"react\";\r\nimport SpareBOM from \"./SpareBOM\";\r\nimport { Accordion, Card } from \"react-bootstrap\";\r\nimport ComponentBOM from \"./ComponentBOM\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Row, Col, Form } from \"react-bootstrap\";\r\nimport Select from \"react-select\";\r\nimport Details from \"./Details\";\r\nimport { isObject } from \"lodash\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\n\r\nconst initialFilters = () => ({\r\n category: [],\r\n techCourier: [],\r\n rohs: [],\r\n CSR: [],\r\n});\r\n\r\nclass SerialNumberBOM extends Component {\r\n \r\n constructor(props) {\r\n super(props);\r\n \r\n // console.log('consruct', props)\r\n this.state = {\r\n COMPONENT_collapsed: false,\r\n SPARE_collapsed: false,\r\n filters: initialFilters(),\r\n filteredData: [],\r\n metadata: {\r\n category: [],\r\n techCourier: [],\r\n rohs: [],\r\n CSR: [],\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.filterData(); //TODO: no option will be there\r\n this.generateMetdata();\r\n }\r\n // componentDidMount() {\r\n // console.log(\"as\", this.props);\r\n // }\r\n\r\n generateMetdata = () => {\r\n const { filters } = this.state;\r\n const { data } = this.props;\r\n\r\n let category = [];\r\n let techCourier = [];\r\n let rohs = [];\r\n let CSR = [];\r\n let count = 0;\r\n\r\n let categoryFilters = filters.category || [];\r\n let techCourierFilters = filters.techCourier || [];\r\n let rohsFilters = filters.rohs || [];\r\n let CSRFilters = filters.CSR || [];\r\n\r\n (data.spare_part || [])\r\n .filter(\r\n (product) =>\r\n (techCourierFilters.length === 0 ||\r\n techCourierFilters.indexOf(product.sp_techcourier) !== -1) &&\r\n (categoryFilters.length === 0 ||\r\n categoryFilters.indexOf(product.sp_category) !== -1) &&\r\n (rohsFilters.length === 0 ||\r\n rohsFilters.indexOf(product.sp_rohs_status_code) !== -1) &&\r\n (CSRFilters.length === 0 ||\r\n CSRFilters.indexOf(product.sp_csrflag) !== -1)\r\n )\r\n .forEach((part) => {\r\n const {\r\n sp_category,\r\n sp_techcourier,\r\n sp_rohs_status_code,\r\n sp_csrflag,\r\n } = part;\r\n count++;\r\n category =\r\n category.indexOf(sp_category) !== -1\r\n ? category\r\n : [...category, sp_category];\r\n techCourier =\r\n techCourier.indexOf(sp_techcourier) !== -1\r\n ? techCourier\r\n : [...techCourier, sp_techcourier];\r\n rohs =\r\n rohs.indexOf(sp_rohs_status_code) !== -1\r\n ? rohs\r\n : [...rohs, sp_rohs_status_code];\r\n CSR = CSR.indexOf(sp_csrflag) !== -1 ? CSR : [...CSR, sp_csrflag];\r\n // console.log(\"spare\", category, techCourier, rohs, CSR);\r\n });\r\n this.setState({\r\n metadata: { category, techCourier, rohs, CSR },\r\n itemsCount: count,\r\n });\r\n };\r\n\r\n filterData = () => {\r\n const { filters } = this.state;\r\n const { data } = this.props;\r\n const { category, techCourier, rohs, CSR } = filters;\r\n let categoryFilters = category || [];\r\n let techCourierFilters = techCourier || [];\r\n let rohsFilters = rohs || [];\r\n let CSRFilters = CSR || [];\r\n const res = (data.spare_part || []).filter(\r\n (product) =>\r\n (techCourierFilters.length === 0 ||\r\n techCourierFilters.indexOf(product.sp_techcourier) !== -1) &&\r\n (categoryFilters.length === 0 ||\r\n categoryFilters.indexOf(product.sp_category) !== -1) &&\r\n (rohsFilters.length === 0 ||\r\n rohsFilters.indexOf(product.sp_rohs_status_code) !== -1) &&\r\n (CSRFilters.length === 0 ||\r\n CSRFilters.indexOf(product.sp_csrflag) !== -1)\r\n );\r\n console.log(\"res\", res);\r\n this.setState({ filteredData: res });\r\n };\r\n\r\n enableSearchResult=()=>{\r\n const { data } = this.props;\r\n return(\r\n (data.spare_part || []).filter((product)=>product.part_number==='-N/A-').length>0)\r\n }\r\n\r\n changeFilters = (key, value, isMulti = false, isFlag = false) => {\r\n const { filters } = this.state;\r\n if (isFlag) {\r\n this.setState({ filters: { ...filters, [key]: value } }, () =>\r\n this.generateMetdata()\r\n );\r\n } else if (isMulti) {\r\n this.setState({\r\n filters: {\r\n ...filters,\r\n [key]: (value || []).map((selection) => selection.value),\r\n },\r\n }); //, () => this.generateMetdata())\r\n } else {\r\n this.setState(\r\n {\r\n filters: {\r\n ...filters,\r\n [key]: value ? (isObject(value) ? value.value : value) : \"\",\r\n },\r\n },\r\n () => this.generateMetdata()\r\n );\r\n }\r\n };\r\n\r\n componentWillUnmount() {\r\n // fix Warning: Can't perform a React state update on an unmounted component\r\n this.setState = (state, callback) => {\r\n return;\r\n };\r\n }\r\n\r\n sett = () => {\r\n this.setState({ COMPONENT_collapsed: !this.state.COMPONENT_collapsed });\r\n };\r\n\r\n \r\n render() {\r\n const { data,mobileView } = this.props;\r\n const { filters, itemsCount, filteredData } = this.state;\r\n const { unit_configuration, spare_part } = this.props.data;\r\n const { COMPONENT_collapsed, SPARE_collapsed } = this.state;\r\n\r\n\r\n return (\r\n \r\n <div>\r\n {/* <Details mode=\"SERIAL\" payload={data} /> */}\r\n <br />\r\n\r\n {unit_configuration && (\r\n <Accordion defaultActiveKey={\"COMPONENT\"}>\r\n <Card>\r\n <Accordion.Toggle\r\n as={Card.Header}\r\n eventKey={\"COMPONENT\"}\r\n onClick={() => {\r\n this.setState({ COMPONENT_collapsed: !COMPONENT_collapsed });\r\n }}\r\n >\r\n <span>\r\n {COMPONENT_collapsed ? (\r\n <FontAwesomeIcon icon=\"chevron-up\" />\r\n ) : (\r\n <FontAwesomeIcon icon=\"chevron-down\" />\r\n )}\r\n </span>\r\n Component BOM (OEM S/N BOM)\r\n </Accordion.Toggle>\r\n\r\n <Accordion.Collapse eventKey={\"COMPONENT\"}>\r\n <Card.Body style={{ overflow: \"auto\" }}>\r\n <ComponentBOM data={unit_configuration} />\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n )}\r\n <br />\r\n <br />\r\n {spare_part && (\r\n <Accordion defaultActiveKey={\"SPARE\"}>\r\n <Card>\r\n <Accordion.Toggle\r\n as={Card.Header}\r\n eventKey={\"SPARE\"}\r\n onClick={() => {\r\n this.setState({ SPARE_collapsed: !SPARE_collapsed });\r\n }}\r\n >\r\n <span>\r\n {SPARE_collapsed ? (\r\n <FontAwesomeIcon icon=\"chevron-up\" />\r\n ) : (\r\n <FontAwesomeIcon icon=\"chevron-down\" />\r\n )}\r\n </span>\r\n Spare BOM (HP Orderable Product BOM)\r\n </Accordion.Toggle>\r\n\r\n <Accordion.Collapse eventKey={\"SPARE\"}>\r\n <Card.Body style={{ overflow: \"auto\" }}>\r\n { mobileView ? (\r\n <React.Fragment>\r\n <Accordion defaultActiveKey=\"1\">\r\n {this.enableSearchResult()? (\r\n null\r\n ) : (\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Click here to customize your search results\r\n <div>\r\n {itemsCount ? (\r\n <div>{itemsCount} Records found</div>\r\n ) : (\r\n \"no\"\r\n )}\r\n </div>\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <Form>\r\n <Row>\r\n <Col>\r\n <Form.Group as={Row}\r\n controlId=\"formHorizontalCat\"\r\n > \r\n <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n Category:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n isMulti\r\n value={(filters?.category || []).map(\r\n (ele) => ({\r\n value: ele,\r\n label: ele,\r\n })\r\n )}\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"category\",\r\n option,\r\n true\r\n )\r\n }\r\n options={(\r\n this.state.metadata?.category || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n }))}\r\n />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n </Row>\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalCSR\"\r\n >\r\n <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n CSR:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n value={(filters?.CSR || []).map(\r\n (ele) => ({\r\n value: ele,\r\n label: ele,\r\n })\r\n )}\r\n isMulti={true}\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"CSR\",\r\n option,\r\n true\r\n )\r\n }\r\n options={\r\n (\r\n this.state.metadata?.CSR || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n })) || []\r\n }\r\n />\r\n </Col>\r\n </Form.Group>\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalRohs\"\r\n >\r\n <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n ROHS:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"rohs\",\r\n option,\r\n true\r\n )\r\n }\r\n isMulti={true}\r\n value={(filters?.rohs || []).map(\r\n (ele) => ({\r\n value: ele,\r\n label: ele,\r\n })\r\n )}\r\n options={(\r\n this.state.metadata?.rohs || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n }))}\r\n />\r\n </Col>\r\n </Form.Group>\r\n {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalTech\"\r\n >\r\n \r\n <Form.Label column md={'5'} lg={'4'} xl={'3'}>\r\n Tech Courier:\r\n </Form.Label>\r\n <Col md={'12'} lg={'8'} xl={'8'}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(\r\n filters?.techCourier || []\r\n ).map((ele) => ({\r\n value: ele,\r\n label: ele,\r\n }))}\r\n isMulti={true}\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"techCourier\",\r\n option,\r\n true\r\n )\r\n }\r\n options={\r\n (\r\n this.state.metadata\r\n ?.techCourier || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n })) || []\r\n }\r\n />\r\n </Col> \r\n </Form.Group>: \"\" }\r\n <div\r\n className=\"searchbox\"\r\n style={{ float: \"right\" }}\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"apply btn btn-primary\"\r\n onClick={() => {\r\n this.filterData();\r\n }}\r\n >\r\n Apply\r\n </button>\r\n \r\n <button\r\n type=\"button\"\r\n className=\"reset btn btn-primary\"\r\n onClick={() => {\r\n this.setState(\r\n { filters: initialFilters() },\r\n () => {\r\n this.generateMetdata();\r\n this.filterData();\r\n }\r\n );\r\n }}\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n </Form>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>)}\r\n </Accordion> \r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <Accordion defaultActiveKey=\"1\">\r\n {this.enableSearchResult()? (\r\n null\r\n ) : (\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Click here to customize your search results\r\n <div style={{ float: \"right\" }}>\r\n {itemsCount ? (\r\n <div>{itemsCount} Records found</div>\r\n ) : (\r\n \"no\"\r\n )}\r\n </div>\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <Form>\r\n <Row>\r\n <Col>\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalCat\"\r\n >\r\n <Form.Label\r\n column\r\n md={\"2\"}\r\n lg={\"3\"}\r\n xl={\"3\"}\r\n >\r\n Category:\r\n </Form.Label>\r\n <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n // styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n isMulti\r\n value={(filters?.category || []).map(\r\n (ele) => ({\r\n value: ele,\r\n label: ele,\r\n })\r\n )}\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"category\",\r\n option,\r\n true\r\n )\r\n }\r\n options={(\r\n this.state.metadata?.category || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n }))}\r\n />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n <Col>\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalCSR\"\r\n >\r\n <Form.Label\r\n column\r\n md={\"2\"}\r\n lg={\"3\"}\r\n xl={\"3\"}\r\n >\r\n CSR:\r\n </Form.Label>\r\n <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(filters?.CSR || []).map(\r\n (ele) => ({\r\n value: ele,\r\n label: ele,\r\n })\r\n )}\r\n isMulti={true}\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"CSR\",\r\n option,\r\n true\r\n )\r\n }\r\n options={\r\n (\r\n this.state.metadata?.CSR || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n })) || []\r\n }\r\n />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col>\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalRohs\"\r\n >\r\n <Form.Label\r\n column\r\n md={\"2\"}\r\n lg={\"3\"}\r\n xl={\"3\"}\r\n >\r\n ROHS:\r\n </Form.Label>\r\n <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"rohs\",\r\n option,\r\n true\r\n )\r\n }\r\n isMulti={true}\r\n value={(filters?.rohs || []).map(\r\n (ele) => ({\r\n value: ele,\r\n label: ele,\r\n })\r\n )}\r\n options={(\r\n this.state.metadata?.rohs || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n }))}\r\n />\r\n </Col>\r\n </Form.Group>\r\n </Col>\r\n <Col>\r\n {secureLocalStorage.getItem(\"loggeduser\") != null ?\r\n <Form.Group\r\n as={Row}\r\n controlId=\"formHorizontalTech\"\r\n >\r\n <Form.Label\r\n column\r\n md={\"2\"}\r\n lg={\"3\"}\r\n xl={\"3\"}\r\n >\r\n Tech Courier:\r\n </Form.Label>\r\n <Col md={\"6\"} lg={\"6\"} xl={\"6\"}>\r\n <Select\r\n menuPortalTarget={document.body}\r\n closeMenuOnSelect={false}\r\n onMenuClose={this.generateMetdata}\r\n isSearchable\r\n // Value={['-N/A-']}\r\n value={(\r\n filters?.techCourier || []\r\n ).map((ele) => ({\r\n value: ele,\r\n label: ele,\r\n }))}\r\n isMulti={true}\r\n onChange={(option) =>\r\n this.changeFilters(\r\n \"techCourier\",\r\n option,\r\n true\r\n )\r\n }\r\n options={\r\n (\r\n this.state.metadata\r\n ?.techCourier || []\r\n ).map((key) => ({\r\n value: key,\r\n label: key,\r\n })) || []\r\n }\r\n />\r\n </Col>\r\n </Form.Group> : \"\" }\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col>\r\n <div\r\n className=\"searchbox\"\r\n style={{ float: \"right\" }}\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"apply btn btn-primary\"\r\n onClick={() => {\r\n this.filterData();\r\n }}\r\n >\r\n Apply\r\n </button>\r\n \r\n <button\r\n type=\"button\"\r\n className=\"reset btn btn-primary\"\r\n onClick={() => {\r\n this.setState(\r\n { filters: initialFilters() },\r\n () => {\r\n this.generateMetdata();\r\n this.filterData();\r\n }\r\n );\r\n }}\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n </Col>\r\n </Row>\r\n </Form>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n \r\n )}\r\n </Accordion>\r\n </React.Fragment>\r\n )}\r\n <br />\r\n <SpareBOM data={filteredData || []} />\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\nexport default ViewHOC(SerialNumberBOM);","// reference for Mobile Device Detection - npm install react-device-detect --save\r\n//https://github.com/duskload/react-device-detect#readme \r\n// reference for tabs - https://www.npmjs.com/package/react-tabs\r\n// import \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport React from \"react\";\r\nimport Image from \"./Image\";\r\n// import {barcode} from '../imagesbase'\r\n// import barcodeimg from './barcode.jpg'\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport { Link, withRouter } from \"react-router-dom\";\r\nimport { SEARCH_MODES, SEARCH_TEXT } from \"./constants/constants\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport Form from \"./Form\";\r\nimport FunctionalEquivalent from \"./FunctionalEquivalent\";\r\nimport Navbar from \"./navbar\";\r\nimport PartList from \"./PartList\";\r\nimport ProductList from \"./ProductList\";\r\nimport ProductResults from \"./ProductResults\";\r\nimport SerialNumberBOM from \"./SerialNumberBOM\";\r\nimport { getQueryParam } from \"./Util\";\r\nimport { isMobile } from 'react-device-detect';\r\n// Tab Components - Start\r\n// import { Tabs, Tab } from \"react-bootstrap\";\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport 'react-tabs/style/react-tabs.css';\r\n// Tab Components - End\r\nimport { SERIALWITHPRODUCT } from './constants/APIConstants';\r\nimport { getAuthHeader } from './Util';\r\nimport axios from 'axios';\r\nimport Loading from './Loading';\r\nimport Details from './Details';\r\n//import { green } from \"@material-ui/core/colors\";\r\n// Root PartSurfer Component.\r\n\r\n \r\nclass PartSurfer extends React.Component {\r\n \r\n state = {\r\n dataLoading: false,\r\n loading: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectValue: \"Please Select a Product Number\",\r\n ProdListError: \"\",\r\n dataLoading: false\r\n };\r\n\r\n this.handleDropdownChange = this.handleDropdownChange.bind(this);\r\n }\r\n handleDropdownChange(e) {\r\n this.setState({ selectValue: e.target.value });\r\n }\r\n \r\n onSubmit = () => {\r\n this.setState({ dataLoading: true })\r\n const searchText = getQueryParam(this.props, SEARCH_TEXT);\r\n const { selectValue } = this.state;\r\n if(!selectValue.includes(\"Select\"))\r\n {\r\n let url;\r\n if(selectValue.includes(\"#\"))\r\n {\r\n let textval;\r\n textval = selectValue.slice(0, selectValue.indexOf(\"#\"));\r\n url = SERIALWITHPRODUCT(searchText,textval,'US',localStorage.getItem(\"usertype\"))\r\n }\r\n else\r\n {\r\n url = SERIALWITHPRODUCT(searchText,selectValue,'US',localStorage.getItem(\"usertype\"))\r\n }\r\n axios.get(url, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n this.loadDetails(response.data.Body ? response.data.Body : null, \"swp\")\r\n this.setState({ dataLoading: false, selectValue: \"Please Select a Product Number\" })\r\n }, (error) => {\r\n this.setState({ dataLoading: false, selectValue: \"Please Select a Product Number\" })\r\n })\r\n }\r\n else\r\n {\r\n this.setState({dataLoading: false, ProdListError: \"Please select any product number!\" })\r\n }\r\n }\r\n \r\n\r\n loadDetails = (data, mode) => {\r\n if (!data && !mode) {\r\n this.setState({\r\n partResults: undefined,\r\n productResults: undefined,\r\n SNResults: undefined,\r\n wildCharResults: undefined,\r\n FEResults: undefined,\r\n SNRProductListsResults: undefined,\r\n dataLoaded: false,\r\n });\r\n return;\r\n }\r\n // console.log('loading data', data);\r\n switch (mode) {\r\n case SEARCH_MODES.PART:\r\n this.setState({ partResults: data, dataLoaded: true });\r\n break;\r\n case SEARCH_MODES.PRODUCT:\r\n this.setState({ productResults: data, dataLoaded: true });\r\n break;\r\n case SEARCH_MODES.SEARIAL_NUMBER:\r\n this.setState({ SNResults: data, dataLoaded: true });\r\n break;\r\n case SEARCH_MODES.FUNCTIONAL_EQUIVALENT:\r\n this.setState({ FEResults: data, dataLoaded: true });\r\n break;\r\n case SEARCH_MODES.SERIAL_WP:\r\n let rest = data || {};\r\n this.setState({\r\n productResults: rest.ProductBOM,\r\n SNResults: rest.SerialNumberBOM,\r\n SNRProductListsResults: rest.SNRProductLists,\r\n dataLoaded: true,\r\n });\r\n break;\r\n default:\r\n let res = data || {};\r\n this.setState({\r\n partResults: res.Part,\r\n productResults: res.ProductBOM,\r\n SNResults: res.SerialNumberBOM,\r\n wildCharResults: res.ProductNameList,\r\n SNRProductListsResults: res.SNRProductLists,\r\n dataLoaded: true,\r\n });\r\n }\r\n // this.setState({ data })\r\n };\r\n\r\n render() {\r\n const {\r\n productResults,\r\n partResults,\r\n SNResults,\r\n wildCharResults,\r\n SNRProductListsResults,\r\n FEResults,\r\n dataLoaded,\r\n } = this.state;\r\n\r\n const searchText = getQueryParam(this.props, SEARCH_TEXT);\r\n let tab1 = \"General\";\r\n let tab2 = \"Advanced\";\r\n let tab1gen = \"General(Product Family)\";\r\n let tab2adv = \"Advanced(Unique Product S/N)\";\r\n let tabgen1;\r\n if(isMobile)\r\n {\r\n tabgen1 = tab1;\r\n } \r\n else{ tabgen1 = tab1gen;}\r\n let tabadv1;\r\n if(isMobile)\r\n {\r\n tabadv1 = tab2;\r\n } \r\n else{ tabadv1 = tab2adv;}\r\n let noData =\r\n dataLoaded &&\r\n (productResults || []).length === 0 &&\r\n !partResults &&\r\n (SNResults || []).length === 0 &&\r\n (wildCharResults || []).length === 0 &&\r\n (FEResults || []).length === 0 &&\r\n (SNRProductListsResults || []).length === 0;\r\n const { dataLoading } = this.state;\r\n return (\r\n <React.Fragment>\r\n <Navbar />\r\n <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n <div className=\"container\">\r\n <Form onSubmit={this.loadDetails} />\r\n <br />\r\n {!searchText && (\r\n <React.Fragment>\r\n <p>\r\n Do not know your part number? You can find it by entering one\r\n of the following values from your product's service tag.\r\n </p>\r\n <Row>\r\n <Col xs={\"12\"} sm={\"8\"} md={\"5\"} lg={\"5\"} xl={\"4\"}>\r\n <Image src='barcode.jpg'/>\r\n </Col>\r\n <Col xs={\"12\"} sm={\"12\"} md={\"12\"} lg={\"7\"} xl={\"8\"}>\r\n <b>Details</b>: <br />\r\n 1. Product name: This is the product name affixed to\r\n the front of the device.\r\n <br />\r\n 2. Serial number (s/n): This is an alphanumeric\r\n identifier that is unique to each product.\r\n <br />\r\n 3. Part number/Product number (p/n): This number\r\n provides specific information about the product’s hardware\r\n components. The part number helps a service technician to\r\n determine what components and parts are needed.\r\n <br />\r\n 4. Warranty period: The number describes the duration\r\n of warranty period for the device.\r\n <br />\r\n 5. Model description (selected models only): This\r\n Alphanumeric identifier used to locate documents, drivers\r\n and support for the device.\r\n <br />\r\n </Col>\r\n </Row>\r\n <br />\r\n <br />\r\n <div>\r\n More information on how to find your HP Part / Product /\r\n Serial Number{\" \"}\r\n <a href=\"https://support.hp.com/us-en\">\r\n click here\r\n </a>\r\n </div>\r\n </React.Fragment>\r\n )}\r\n\r\n {\r\n <React.Fragment>\r\n <Loading loading={dataLoading} >\r\n <div>\r\n \r\n {(SNRProductListsResults || []).length > 0 && (\r\n <div>\r\n <div>\r\n <div>\r\n <b> Serial Number : {searchText} </b>\r\n <br /> \r\n </div>\r\n <div style={{color: \"#3FE827\"}}>\r\n Multiple Products associated for above Serial Number.\r\n <br />\r\n <br />\r\n </div>\r\n </div>\r\n <select name=\"productsnrlists\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" onChange={this.handleDropdownChange} > \r\n <option>Please Select a Product Number</option> \r\n {(this.state.SNRProductListsResults || []).map((e, key) => { \r\n return <option key={key} value={e.product_Id}>{e.product_Id} - {e.product_Desc}</option>; \r\n })} \r\n </select>\r\n <br />\r\n <div>\r\n <button type=\"button\" onClick={this.onSubmit} className=\"apply btn btn-primary\">Submit</button>\r\n </div>\r\n <br />\r\n {this.state.ProdListError && <div style={{color: \"#E9573F\"}}>{this.state.ProdListError}</div>\r\n }\r\n </div>\r\n )}\r\n </div>\r\n </Loading>\r\n <div>\r\n {(wildCharResults || []).length > 0 && (\r\n <ProductList data={wildCharResults} />\r\n )}\r\n </div>\r\n {!SNResults && dataLoaded && !noData && !SNRProductListsResults && !wildCharResults &&\r\n <div>\r\n {(productResults || []).length > 0 && (\r\n <div><Details mode='PRODUCT' payload={productResults} /> <br/></div>\r\n )} \r\n {/* <Tabs defaultActiveKey=\"General\" id=\"uncontrolled-tab-example\" className=\"mb-3\">\r\n <Tab eventKey=\"General\" title=\"General(Product Family)\">\r\n {partResults && <PartList data={[partResults]} />}\r\n {(FEResults || []).length > 0 && (\r\n <FunctionalEquivalent data={FEResults} />\r\n )}\r\n {(productResults || []).length > 0 && (\r\n <ProductResults data={productResults} />\r\n )}\r\n </Tab>\r\n </Tabs> */}\r\n <Tabs>\r\n <TabList>\r\n <Tab>{tabgen1}</Tab>\r\n {/* <Tab>Advanced(Unique Product S/N)</Tab> */}\r\n </TabList>\r\n <TabPanel>\r\n {partResults && <PartList data={[partResults]} />}\r\n {(FEResults || []).length > 0 && (\r\n <FunctionalEquivalent data={FEResults} />\r\n )}\r\n {(productResults || []).length > 0 && (\r\n <ProductResults data={productResults} />\r\n )}\r\n </TabPanel>\r\n {/* <TabPanel>\r\n <h2>Any content 2</h2>\r\n </TabPanel> */}\r\n </Tabs>\r\n </div>\r\n } \r\n {SNResults &&\r\n <div>\r\n <Details mode='SERIAL' payload={SNResults} />\r\n <br /> \r\n <Tabs defaultIndex={1}>\r\n <TabList>\r\n {(productResults || []).length > 0 && (\r\n <Tab>{tabgen1}</Tab>\r\n )} \r\n <Tab>{tabadv1}</Tab>\r\n </TabList>\r\n {(productResults || []).length > 0 && (\r\n <TabPanel>\r\n <ProductResults data={productResults} />\r\n </TabPanel>\r\n )} \r\n <TabPanel>\r\n <SerialNumberBOM data={SNResults} />\r\n </TabPanel>\r\n </Tabs>\r\n </div> \r\n } \r\n \r\n {noData && (\r\n <div>\r\n <div className=\"alert alert-primary \" role=\"alert\">\r\n No additional information found in PartSurfer. Please read\r\n the hints below, and try again.{\" \"}\r\n </div>\r\n <div className=\"alert alert-success\" role=\"alert\">\r\n <h4 className=\"alert-heading\">\r\n Hints For Using PartSurfer:-\r\n </h4>\r\n <p>\r\n The most reliable and fastest way to identify your\r\n product is to enter the serial number or product number\r\n from the service tag (such as CNU123456789 or RU477EA )\r\n in the search box above, but a more general description\r\n of the product (such as LaserJet 8100 or Pavilion 6532)\r\n is also acceptable. Also, if you know the HP part number\r\n you are looking for (such as 8120-6260 or CB394-40014M),\r\n you may enter that directly.\r\n </p>\r\n <hr />\r\n <p className=\"mb-0\">\r\n Searching for an HP part by entering a general\r\n description (such as Power Cord, Fusing Assembly,\r\n Motherboard, or Cartridge) will not be successful. After\r\n first identifying your HP product (as described above),\r\n you will be given several options for finding the part\r\n that you need.\r\n </p>\r\n <p>\r\n You may also{\" \"}\r\n <a\r\n href=\"https://partsurfer.hp.com/Search.aspx\"\r\n target=\"_PartSurfer\"\r\n >\r\n click here\r\n </a>{\" \"}\r\n to return to the main PartSurfer screen and select from\r\n the list of HP product families. Additional information\r\n can be found in the HP PartSurfer User Guide .\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n </React.Fragment>\r\n }\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n <div className=\"col-md-12 text-md-center\">\r\n <Link style={{ color: \"#003366\" }} to=\"/PartSurfer/ContactUS\">\r\n <u>Feedback to HP PartSurfer</u>\r\n </Link>\r\n </div>\r\n <br />\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(PartSurfer);","import React from \"react\";\r\nimport {\r\n Accordion, Alert,\r\n Card,\r\n Col,\r\n Container,\r\n ListGroup,\r\n Nav,\r\n Row,\r\n Tab\r\n} from \"react-bootstrap\";\r\nimport FE_User from \"../FE_User.png\";\r\nimport go from \"../go .gif\";\r\nimport SBOM_NEW from \"../SBOM_NEW.png\";\r\nimport Shopping_cart from \"../Shopping_cart.png\";\r\nimport Show_fun_eq from \"../Show_fun_eq.png\";\r\nimport \"./design.css\";\r\nimport \"./UserGuide.css\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nfunction UserGuide() {\r\n return (\r\n \r\n <React.Fragment>\r\n <div>\r\n <Navbar />\r\n <div style={{ marginRight: \"10px\"}}>\r\n <br/>\r\n <Login />\r\n <br/>\r\n </div>\r\n </div>\r\n <Container>\r\n <Alert className=\"theme\">\r\n <p>\r\n <b>Before you continue reading this document</b>, we hope that you\r\n will try using HP PartSurfer first. PartSurfer is designed to be\r\n very user friendly, and most users find it easy to locate the parts\r\n information they need without detailed instructions. Simply move\r\n your mouse over any field heading in italics for help on getting\r\n started. This user guide is provided for those who prefer more\r\n detailed step-by-step instructions.\r\n </p>\r\n </Alert>\r\n <Tab.Container id=\"left-tabs-example\" defaultActiveKey=\"first\">\r\n <Row>\r\n <Col sm={3}>\r\n <Nav variant=\"pills\" className=\"flex-column\">\r\n <Nav.Item>\r\n <Nav.Link eventKey=\"first\">Purpose and Scope</Nav.Link>\r\n </Nav.Item>\r\n <Nav.Item>\r\n <Nav.Link eventKey=\"second\">Basic Tasks</Nav.Link>\r\n </Nav.Item>\r\n <Nav.Item>\r\n <Nav.Link eventKey=\"third\">System Requirements</Nav.Link>\r\n </Nav.Item>\r\n <Nav.Item>\r\n <Nav.Link eventKey=\"fourth\">\r\n Font Conventions Used in This Document\r\n </Nav.Link>\r\n </Nav.Item>\r\n </Nav>\r\n </Col>\r\n <Col sm={9}>\r\n <Tab.Content>\r\n <Tab.Pane eventKey=\"first\">\r\n <Card>\r\n <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n <ListGroup.Item>\r\n HP PartSurfer is designed to help HP product owners\r\n and HP product repair technicians identify part\r\n numbers and other part information, primarily for the\r\n purpose of servicing and repairing HP products.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n We also provide a direct link to the HP Parts Store\r\n (for U.S. customers only) to allow you to order parts\r\n online.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n PartSurfer does NOT include instructions for repair,\r\n maintenance, or installation of products and parts.{\" \"}\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n If you are not trained in repairing your product, or\r\n are not certain that you know what the exact problem\r\n is with your product, we strongly encourage you to\r\n first contact HP technical support to determine the\r\n best repair strategy for your HP product.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n (\r\n <b>\r\n <Link to=\"/PartSurfer/ContactUS\">Contact Us</Link>\r\n </b>{\" \"}\r\n for information on product support options.)\r\n </ListGroup.Item>\r\n </ListGroup>\r\n </Card>\r\n </Tab.Pane>\r\n <Tab.Pane eventKey=\"second\">\r\n <Card>\r\n <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n <ListGroup.Item>\r\n PartSurfer assists with two basic types of part lookup\r\n tasks, with a variety of options for getting to the\r\n information that you need:\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n You may need to find or verify a part number and other\r\n part information for an HP part, based primarily on\r\n the part's physical description or its function within\r\n your product.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n You may have the part in front of you, may have a\r\n description of the part from someone else, or may know\r\n from your repair experience what part you need.{\" \"}\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n For whatever reason, you need to find the HP part\r\n number and its associated information, and possibly\r\n order the part\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n You may know the part number for the HP part that you\r\n need, and simply need to look up part information\r\n and/or order the part.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n This feature of PartSurfer also provides a list of all\r\n HP products that use a specific part.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n <b>Please note:</b> the part number of the part\r\n currently recommended by HP for replacement may not be\r\n the same as the number that you see on the old part,\r\n or even in your product documentation, as part numbers\r\n are sometimes changed as different versions of a part\r\n become available.{\" \"}\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n You should only use this direct part lookup feature if\r\n you are very sure that you know the part number that\r\n you need.\r\n </ListGroup.Item>\r\n </ListGroup>\r\n </Card>\r\n </Tab.Pane>\r\n <Tab.Pane eventKey=\"third\">\r\n <Card>\r\n <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n <ListGroup.Item>\r\n Microsoft Edge 90.x or greater, Chrome 20.x\r\n or greater, and Firefox version 6.x or greater.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n Cookies must be allowed (see browser’s help file).\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n JavaScript must be enabled (see browser’s help file).{\" \"}\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n Browser pop-up blocker must be off for some functions\r\n to work (see browser’s help file)\r\n </ListGroup.Item>\r\n </ListGroup>\r\n </Card>\r\n </Tab.Pane>\r\n <Tab.Pane eventKey=\"fourth\">\r\n <Card>\r\n <ListGroup variant=\"flush\" style={{ fontSize: \"16px\" }}>\r\n <ListGroup.Item>\r\n Specific actions that you can take within PartSurfer,\r\n such as <b>Enter a Model Number</b> or\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n <b>Select a Keyword</b> are displayed in a <b>bold</b>{\" \"}\r\n font for quick reference.\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n Screen field headings, such as Part Number or product\r\n search: are displayed in italics.{\" \"}\r\n </ListGroup.Item>\r\n <ListGroup.Item>\r\n {\" \"}\r\n Examples of information to be entered by the user,\r\n such as 33440-69001 or laserjet 5 are displayed in a\r\n typewriter font.\r\n </ListGroup.Item>\r\n </ListGroup>\r\n </Card>\r\n </Tab.Pane>\r\n </Tab.Content>\r\n </Col>\r\n </Row>\r\n </Tab.Container>\r\n <Accordion defaultActiveKey=\"0\">\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Finding an HP Part Number\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <Accordion defaultActiveKey=\"0\">\r\n <Card>\r\n <Accordion.Toggle as={Card.Header} eventKey=\"0\">\r\n Follow these step-by-step instructions to find an HP\r\n part number and associated information:\r\n </Accordion.Toggle>\r\n <Accordion.Collapse eventKey=\"0\">\r\n <Card.Body>\r\n <div id=\"accordion\" className=\"panel-group\">\r\n <div className=\"panel\">\r\n <div className=\"panel-heading\">\r\n <h6 className=\"panel-title\">\r\n <a\r\n href=\"#panelBodyOne\"\r\n className=\"accordion-toggle\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#accordion\"\r\n >\r\n <p> Select your country or region . . .</p>\r\n </a>\r\n </h6>\r\n </div>\r\n <div\r\n id=\"panelBodyOne\"\r\n className=\"panel-collapse collapse in\"\r\n >\r\n <div className=\"panel-body\">\r\n <p>\r\n Before using HP PartSurfer, you first need to\r\n let us know what country or region you are in.\r\n You will only need to do this once, and it\r\n will be remembered in a cookie on your\r\n computer for all your future accesses. Some of\r\n our information is tailored to specific\r\n geographic areas. Just{\" \"}\r\n <b>\r\n select a country or region from the\r\n drop-down menu at the upper right of the\r\n main screen\r\n </b>\r\n . If your country isn't listed, select a\r\n nearby country, as information will probably\r\n be similar.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"panel\">\r\n <div className=\"panel-heading\">\r\n <h4 className=\"panel-title\">\r\n <a\r\n href=\"#panelBodyTwo\"\r\n className=\"accordion-toggle collapsed\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#accordion\"\r\n >\r\n <p> Identify your HP product . . .</p>\r\n </a>\r\n </h4>\r\n </div>\r\n <div\r\n id=\"panelBodyTwo\"\r\n className=\"panel-collapse collapse\"\r\n >\r\n <div className=\"panel-body\">\r\n <p>\r\n We next need to know what HP product you have\r\n in order to help you find the part(s) that you\r\n need. After FIRST locating your HP product, as\r\n described below, you will be given several\r\n options for finding your part(s). There are\r\n five different ways to find your product:\r\n </p>\r\n <b>\r\n Enter the serial number from your product in\r\n the text box located in the Quick Search tab.\r\n </b>{\" \"}\r\n The serial number is found on the back or bottom\r\n of your HP product, and will be in a format such\r\n as USE646N6FJ, 2UA73310K5 or CNU6080B8C.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n <b>\r\n Enter the product number from your product in\r\n the text box located in the Quick Search tab.\r\n </b>{\" \"}\r\n The product number is found on the back or\r\n bottom of your HP product, and will be in a\r\n format such as C2010A, 33440A or D7399A. If you\r\n can take a moment to find the product number on\r\n your product, this will be the most accurate way\r\n to locate the information you need.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n <b>\r\n Enter the part number from your product in the\r\n text box located in the Quick Search tab.\r\n </b>{\" \"}\r\n The part number is found on the back or bottom\r\n of your HP product, and will be in a format such\r\n as C2801-40001, 384705-051 or 5063-1256.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n <b>\r\n Enter the name or description of your product\r\n in the text box located in the Quick Search\r\n tab.\r\n </b>{\" \"}\r\n For example, laserjet 5, pavilion 6532 or\r\n omnibook. Searching for an HP part by entering a\r\n general description (such as Power Cord, Fusing\r\n Assembly, Motherboard, or Cartridge) in the\r\n search field on this screen will probably NOT be\r\n successful.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n <b>\r\n Select the general family that your product\r\n belongs to from the list on the Hierarchy tab.\r\n </b>{\" \"}\r\n Locate your product by 'drilling down' through\r\n the HP product families.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n <b>\r\n Enter the part/product number in the text box\r\n located in the Quick Search tab with wildcard\r\n [asterisk(*)] search for single character\r\n replacement.\r\n </b>{\" \"}\r\n For example, search for av*33u* which returns\r\n matching results.\r\n <p>\r\n <b>\r\n Select the Lookup similar items check box if\r\n you want to match similar part numbers or\r\n product numbers.\r\n </b>{\" \"}\r\n For example, if you enter the search string\r\n 33440A and check the box, the following\r\n results will be returned: 33440A, 33440A-T,\r\n 33440AB, etc. <b>Please note:</b> the Lookup\r\n similar items check box only works when\r\n searching for product numbers and part\r\n numbers.\r\n </p>\r\n <p>\r\n If your product search finds a single matching\r\n HP product, a screen will be displayed that\r\n will allow you to look up parts information.\r\n If your search finds multiple matches (or if\r\n you searched through product families), you\r\n will need to{\" \"}\r\n <b>select from a list of products</b> for that\r\n family or search result.\r\n </p>\r\n <p>\r\n The General Tab is the default view for most\r\n search results. This provides the user with a\r\n generic list of parts that are used within a\r\n family of similar products (multiple hard\r\n drives, memory modules, etc.) If a serial\r\n number search is performed, or a product SKU\r\n (Stock Keeping Number) search and you then\r\n click on the Advanced Tab, a more specific\r\n spares list called a BOM (Bill Of Materials)\r\n will be displayed when available. Also a\r\n Component BOM, which is a list of parts as\r\n used in the manufacturing process, may be\r\n available.{\" \"}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"panel\">\r\n <div className=\"panel-heading\">\r\n <h4 className=\"panel-title\">\r\n <a\r\n href=\"#panelBodyThree\"\r\n className=\"accordion-toggle collapsed\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#accordion\"\r\n >\r\n <p> Customize your search results . . .</p> \r\n </a>\r\n </h4>\r\n </div>\r\n <div\r\n id=\"panelBodyThree\"\r\n className=\"panel-collapse collapse\"\r\n >\r\n <div className=\"panel-body\">\r\n <p>\r\n Once you have specified your product, you will\r\n see a list of all replacement parts for the\r\n product, grouped by keyword and part number.\r\n If you want to filter the parts list, you can{\" \"}\r\n <b>\r\n click on the Customize your results link\r\n </b>\r\n . This will display a form that will allow you\r\n to filter the parts listing based on the\r\n following criteria:\r\n </p>\r\n <ul>\r\n <li>\r\n <b className=\"headings\">Select RoHS.</b>{\" \"}\r\n This will display a list of all replacement\r\n parts that are RoHS compliant.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n </li>\r\n <li>\r\n <b className=\"headings\">\r\n Select Part photo.\r\n </b>{\" \"}\r\n This will display a list of all replacement\r\n parts for the product that have a part photo\r\n available.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n </li>\r\n <li>\r\n <b className=\"headings\">\r\n Select a Keyword.\r\n </b>{\" \"}\r\n This will display a list of parts for the\r\n keyword. Keywords are very specific\r\n groupings of parts, such as Button, PC\r\n Board, Roller, Power Cord.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n </li>\r\n <li>\r\n <b className=\"headings\">\r\n Select a Category.\r\n </b>{\" \"}\r\n This will display a list of parts for the\r\n category, grouped by keyword and part\r\n number. Categories are more general\r\n groupings of parts, based on location within\r\n the product or functionality, such as Fusing\r\n Assembly Parts, External Case Parts, Drives\r\n and Controllers, Electronic Accessories.\r\n <center>\r\n <b>OR</b>\r\n </center>\r\n </li>\r\n <li>\r\n <b className=\"headings\">\r\n Enter a search value in the String Search\r\n field.\r\n </b>{\" \"}\r\n This will search through all part numbers\r\n and part descriptions for the product, and\r\n display a list of all matching parts,\r\n grouped by keyword and part number.\r\n </li>\r\n </ul>\r\n <p>\r\n After you have selected your filter criteria,{\" \"}\r\n <b>click the Apply button</b>. This will\r\n display an updated parts list based on your\r\n filter criteria.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"panel\">\r\n <div className=\"panel-heading\">\r\n <h4 className=\"panel-title\">\r\n <a\r\n href=\"#panelBodyFive\"\r\n className=\"accordion-toggle collapsed\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#accordion\"\r\n >\r\n <p> Find your part(s) using a parts diagram . . .</p>\r\n </a>\r\n </h4>\r\n </div>\r\n <div\r\n id=\"panelBodyFive\"\r\n className=\"panel-collapse collapse\"\r\n >\r\n <div className=\"panel-body\">\r\n <p>\r\n If an interactive parts diagram is available\r\n for your product, a selection field labeled\r\n View a parts diagram will be shown on the\r\n General tab. Parts diagrams allow you to\r\n visually confirm that you have found the\r\n correct part. You may move your mouse over\r\n objects on the interactive diagram for quick\r\n part information, or click on the object for\r\n more detail. Please note that parts that are\r\n shown in pale gray on some diagrams are not\r\n orderable parts, but are included on the\r\n diagram for reference only.\r\n </p>\r\n <p>\r\n To view the parts diagram,{\" \"}\r\n <b>select Interactive mode</b> for an\r\n interactive parts diagram,{\" \"}\r\n <b>or select Printable mode</b> if you want to\r\n print the diagram. <b>Select the component</b>{\" \"}\r\n of the part you want to view from the\r\n drop-down menu. <b>Click the search icon</b>\r\n <img\r\n src={go}\r\n width=\"20\"\r\n height=\"15\"\r\n alt=\"Search icon\"\r\n />\r\n to view the parts diagram.\r\n </p>\r\n <b className=\"headings\">\r\n Move your mouse over an object\r\n </b>{\" \"}\r\n to see a pop-up box displaying the keyword and\r\n part number(s) corresponding to the part.\r\n <br />\r\n <b className=\"headings\">\r\n Click on an object or keyword\r\n </b>{\" \"}\r\n for more detailed part information. Information\r\n for the part(s) (in the same format as in a\r\n parts listing) will be displayed, followed by a\r\n redisplay of the diagram with a red arrow\r\n pointing to the selected part.\r\n <br />\r\n The pop-up box displayed for some diagram\r\n objects contains a link labeled ‘View More\r\n Detail’. <br />\r\n <b className=\"headings\">\r\n Click the View More Detail link\r\n </b>{\" \"}\r\n to display a more detailed view of the part or\r\n assembly.\r\n <p>\r\n If a parts diagram for your part is not\r\n available within PartSurfer, one may be\r\n available at the HP Service Media Library.{\" \"}\r\n <b>Click the HP Service Media Library link</b>{\" \"}\r\n in the left menu to be taken to the HP Service\r\n Media Library search page.\r\n </p>\r\n <b className=\"headings\">\r\n Find your part(s) or part information on a\r\n parts listing . . .\r\n </b>\r\n <p>\r\n Parts listings contain the following fields\r\n and features to allow you to verify part\r\n numbers, access part prices (in some\r\n countries), and order parts on-line (currently\r\n only for U.S. customers):\r\n </p>\r\n Parts diagram/photo indicator: A camera icon in\r\n the left column of a parts listing entry\r\n indicates that there is a diagram or photo\r\n displaying that part.{\" \"}\r\n <b>Click on the camera icon</b> to display\r\n either a photograph of the part or a diagram\r\n with a red arrow pointing to the part. (See the\r\n previous section for details on using parts\r\n diagrams.)\r\n <br />\r\n Add to Cart: (U.S. only) used to select parts\r\n you want to order from the HP Parts Store web\r\n site. (See details on ordering parts below.)\r\n <br />\r\n Click to Buy: A Buy button that takes you\r\n directly to the HP Home and Home Office Store.\r\n <br />\r\n Part number: The HP part number.\r\n <br />\r\n Description: A detailed description for the\r\n part, including information, where relevant, on\r\n where and/or how the part is used within the\r\n specific product. Although PartSurfer does not\r\n show real-time part availability information,\r\n there are notes in some descriptions to indicate\r\n parts that are no longer available, or that have\r\n special ordering requirements.\r\n <br />\r\n Show Functional Equivalent: Once a products\r\n spares list is displayed, click the\r\n <img\r\n src={Show_fun_eq}\r\n width=\"120\"\r\n height=\"20\"\r\n alt=\"Search icon\"\r\n />\r\n button. If an equivalent part is available, a\r\n <img\r\n src={FE_User}\r\n width=\"20\"\r\n height=\"20\"\r\n alt=\"Search icon\"\r\n />\r\n button will be displayed next to a part number.\r\n Click the\r\n <img\r\n src={FE_User}\r\n width=\"20\"\r\n height=\"20\"\r\n alt=\"Search icon\"\r\n />\r\n button to display a popup window with that\r\n information. Otherwise there will be a NO\r\n Functional Equivalent message displayed.\r\n <br />\r\n <br />\r\n SBOM button (May also appear as Updated SBOM\r\n Available ): Clicking on the\r\n <img\r\n src={SBOM_NEW}\r\n width=\"40\"\r\n height=\"17\"\r\n alt=\"Search icon\"\r\n />\r\n <br />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"panel\">\r\n <div className=\"panel-heading\">\r\n <h4 className=\"panel-title\">\r\n <a\r\n href=\"#panelBodySix\"\r\n className=\"accordion-toggle collapsed\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#accordion\"\r\n >\r\n <p> Order parts through the HP Parts Store\r\n (available in select countries only) . . .</p>\r\n </a>\r\n </h4>\r\n </div>\r\n <div\r\n id=\"panelBodySix\"\r\n className=\"panel-collapse collapse in\"\r\n >\r\n <div className=\"panel-body\">\r\n <p>\r\n From any PartSurfer parts listing,{\" \"}\r\n <b>\r\n select the check box in the Add to Cart\r\n column, and click the Add Parts to Cart\r\n button\r\n </b>\r\n . When you have filled your cart with all of\r\n the parts you want to order,{\" \"}\r\n <b>\r\n click the Shopping Cart icon\r\n <img\r\n src={Shopping_cart}\r\n width=\"19\"\r\n height=\"19\"\r\n alt=\"Shopping cart icon\"\r\n />\r\n at the top of the page\r\n </b>\r\n . We hope to have linkages soon to online HP\r\n parts ordering tools that are being developed\r\n for other countries.\r\n </p>\r\n <p>\r\n The following actions are available on the\r\n Shopping Cart page:\r\n </p>\r\n <b>Update the number in the Qty text box</b> to\r\n change the number of parts you want to order.\r\n <br />\r\n <b>\r\n Select the Remove check box and then click the\r\n Update cart <span>>></span> button\r\n </b>{\" \"}\r\n to remove parts from your shopping cart.\r\n <br />\r\n <b>Click the Update cart <span>>></span> button</b> to\r\n complete any changes you have made to the parts\r\n in your shopping cart.\r\n <br />\r\n <b>Click the Place order <span>>></span> button</b> to be\r\n taken to the HP Home and Home Office Store where\r\n you can order the parts in your cart.\r\n <br />\r\n <b>Click the Order more parts <span>>></span> button</b> to\r\n return to the PartSurfer homepage to search for\r\n additional parts.\r\n <br />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"panel\">\r\n <div className=\"panel-heading\">\r\n <h4 className=\"panel-title\">\r\n <a\r\n href=\"#panelBodySeven\"\r\n className=\"accordion-toggle collapsed\"\r\n data-toggle=\"collapse\"\r\n data-parent=\"#accordion\"\r\n >\r\n <p> abbreviation . . .</p> \r\n </a>\r\n </h4>\r\n </div>\r\n <div\r\n id=\"panelBodySeven\"\r\n className=\"panel-collapse collapse\"\r\n >\r\n <div className=\"panel-body\">\r\n <p>\r\n Below are some of abbreviation in PartSurfer\r\n </p>\r\n <ul>\r\n <li>\r\n <b className=\"headings\">RoHS.</b>{\" \"}\r\n Restriction of Hazardous Substances\r\n </li>\r\n <li>\r\n <b className=\"headings\">FE.</b>{\" \"}\r\n Funcational Equivalent\r\n </li>\r\n <li>\r\n <b className=\"headings\">CSR.</b>{\" \"}\r\n Customer Self Repair\r\n </li>\r\n </ul>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n </Card.Body>\r\n </Accordion.Collapse>\r\n </Card>\r\n </Accordion>\r\n </Container>\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nexport default ViewHOC(UserGuide);\r\n","//https://github.com/iannbing/react-simple-tree-menu - Reference for TreeView\r\nimport React from 'react';\r\nimport axios from 'axios';\r\nimport secureLocalStorage from 'react-secure-storage';// Added By Shreyas for local storage security.\r\nimport Loading from './Loading';\r\nimport { GET_HIERARCHY,GETHIERARCHYPRODUCT, GETGLBURL } from './constants/APIConstants';\r\nimport { getAuthHeader } from './Util';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport TreeMenu from 'react-simple-tree-menu'\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\n//import ModalPopup from './ModalPopup';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Modal } from 'react-bootstrap'; \r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\"; \r\n//import { SEARCH_MODES } from \"./constants/constants\";\r\nimport { getLocationObject } from \"./Util\";\r\n\r\nclass Hierarchy extends React.Component {\r\n state = {\r\n countryLoading: true,\r\n dataprod: null,\r\n showModalPopup: false,\r\n prodparents: null,\r\n Level1: null,\r\n Level2: null,\r\n Level3: null,\r\n Level4: null,\r\n Level5: null,\r\n Level6: null,\r\n User : '',\r\n };\r\n \r\n componentDidMount() {\r\n const {countryLoading} = true;\r\n axios.get(GET_HIERARCHY(localStorage.getItem(\"usertype\")), {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n const dt = res.data.Body;\r\n this.setState({ data: res.data.Body, countryLoading: false })\r\n }, (error) => {\r\n this.setState({ data: null, countryLoading: false })\r\n })\r\n\r\n }\r\n \r\n removeCookie = (e) => {\r\n e.preventDefault();\r\n secureLocalStorage.removeItem(\"loggeduser\");\r\n this.setState({ User: null });\r\n alert(\"LogOut Success!\");\r\n window.location.href = \"/\";\r\n }\r\n\r\n isShowPopup = (status) => { \r\n this.setState({ showModalPopup: status }); \r\n }; \r\n isShowModal = (status) => { \r\n this.handleClose(); \r\n this.setState({ showModal: status }); \r\n } \r\n\r\n handleClose = () => { \r\n this.isShowPopup(false); \r\n //window.location.href = '/PartSurfer/Hierarchy';\r\n }\r\n \r\n proddatasplit = (dt) => { \r\n let res = dt || {};\r\n var array = res.parentItems.split(\"->\");\r\n if(array != null)\r\n {\r\n if(array.length == 6)\r\n {\r\n this.setState({Level1: array[0], Level2: array[1], Level3: array[2], Level4: array[3], Level5: array[4], Level6: array[5]});\r\n }\r\n else\r\n {\r\n this.setState({Level1: array[0], Level2: array[1], Level3: array[2], Level4: array[3], Level5: array[4], Level6: null});\r\n } \r\n }\r\n this.setState({\r\n dataprod: res.hierarchyProds,\r\n prodparents: res.parentItems,\r\n }); \r\n } \r\n\r\n loadData = (key,label, props) => {\r\n this.setState({ countryLoading: true })\r\n var array = key.split(\"/\");\r\n const { hasNodes } = props;\r\n let urlprod;\r\n let arraycount;\r\n arraycount = array.length - 1;\r\n //Added for Text Click by Shreyas Nene to get value of level.\r\n //---Start Here\r\n const {level}=props;\r\n //Added for Text Click by Shreyas Nene to get value of level---End Here\r\n urlprod = GETHIERARCHYPRODUCT(array[arraycount], localStorage.getItem(\"usertype\"));\r\n var dt1 = this.state.data;\r\n if (!hasNodes) {\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n this.proddatasplit(response.data.Body);\r\n this.setState({ countryLoading: false })\r\n this.isShowPopup(true);\r\n }, (error) => {\r\n this.setState({ countryLoading: false })\r\n })\r\n }\r\n else{\r\n this.setState({ countryLoading: false })\r\n // Added by Shreyas Nene to enable click event on TreeMenu Text Click-------Start here \r\n var list=document.getElementsByClassName(\"rstm-tree-item\");\r\n for (let i = 0; i < list.length; i++){\r\n if(list[i].textContent.substring(1)==label){\r\n if(list[i].classList.contains('rstm-tree-item-level'+level))\r\n list[i].querySelector(\".rstm-toggle-icon-symbol\").click();\r\n }\r\n }; \r\n //Added by Shreyas Nene to enable click event on TreeMenu Text Click-------End here\r\n\r\n }\r\n }\r\n\r\n\r\n render() {\r\n const { countryLoading, data, dataprod } = this.state;\r\n const {mobileView } = this.props;\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n dataField: '',\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatter: (col, prod, index) => {\r\n return (\r\n <React.Fragment key={prod.product_number}>\r\n <b>HP Model Number : </b>\r\n <Link style={{color: \"#007bff\"}} to={getLocationObject(prod.product_number)} >\r\n {prod.product_number}\r\n </Link>\r\n <br />\r\n <b>Product Name : </b>\r\n {prod.product_name}\r\n <br />\r\n \r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [\r\n {\r\n dataField: \"product_number\",\r\n text: \"HP Model Number\",\r\n formatter: (col) => (\r\n <div>\r\n <Link style={{color: \"#007bff\"}} to={getLocationObject(col)} >\r\n {col}\r\n </Link>\r\n </div>\r\n ),\r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"product_name\",\r\n text: \"Product Name\",\r\n headerStyle: () => {\r\n return { width: \"15%\" };\r\n },\r\n },\r\n ];\r\n const{Level1,Level2, Level3,Level4,Level5,Level6,User} = this.state;\r\n const styleObject = {\r\n \"float\" : \"right\",\r\n \"color\" : \"#003366\",\r\n \"width\" : \"100%\"\r\n }\r\n return ( \r\n <React.Fragment>\r\n <Navbar />\r\n <div style={{ marginRight: \"10px\"}}>\r\n <br/>\r\n <Login />\r\n <br/>\r\n </div>\r\n <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n <Loading loading={countryLoading } > \r\n <div className=\"row\">\r\n <div className=\"col-md-9\">\r\n <span id=\"ctl00_SubTitle\">Hierarchy Menu:</span>\r\n </div>\r\n </div>\r\n <div><br/></div>\r\n \r\n <div className=\"container\">\r\n \r\n <TreeMenu data={data} debounceTime={500}\r\n disableKeyboard={false}\r\n hasSearch={false}\r\n onClickItem={({ key, label, ...props }) => {\r\n this.loadData(key,label,props);\r\n }}\r\n resetOpenNodesOnDataUpdate={true}/>\r\n \r\n </div>\r\n { dataprod &&\r\n <Modal show={this.state.showModalPopup} onHide={this.handleClose} onPopupClose={this.isShowPopup} \r\n size=\"lg\" \r\n aria-labelledby=\"contained-modal-title-vcenter\" \r\n centered > \r\n <Modal.Header closeButton> \r\n <Modal.Title id=\"sign-in-title\"> \r\n PartSurfer Hierarchy Products \r\n </Modal.Title> \r\n </Modal.Header> \r\n <Modal.Body> \r\n <React.Fragment>\r\n <div style={{fontWeight: \"bold\"}}>\r\n {/* {this.state.prodparents} */}\r\n {Level1} <i class=\"fas fa-arrow-right\"></i> {Level2} <i class=\"fas fa-arrow-right\"></i> {Level3} <i class=\"fas fa-arrow-right\"></i> {Level4} <i class=\"fas fa-arrow-right\"></i> {Level5} <i class=\"fas fa-arrow-right\"></i> {Level6}\r\n <br/>\r\n <br/>\r\n </div>\r\n </React.Fragment>\r\n <React.Fragment>\r\n <BootstrapTable\r\n keyField=\"PartNumber\"\r\n data={dataprod}\r\n columns={columns}\r\n striped\r\n pagination={dataprod.length > 10 ? paginationFactory() : undefined}\r\n />\r\n </React.Fragment>\r\n <hr /> \r\n <div className=\"signUp\"> \r\n <p>Go back to Hierarchy Menu? <button type=\"button\" className=\"apply btn btn-primary\" onClick={() => this.isShowModal(true)}> Close</button></p> \r\n </div> \r\n </Modal.Body> \r\n </Modal > \r\n }\r\n </Loading>\r\n </div>\r\n \r\n <div>\r\n <br />\r\n <br />\r\n <br />\r\n <div className=\"col-md-12 text-md-center\">\r\n <Link style={{ color: \"#003366\" }} to=\"/PartSurfer/ContactUS\">\r\n <u>Feedback to HP PartSurfer</u>\r\n </Link>\r\n </div>\r\n <br />\r\n </div>\r\n \r\n </React.Fragment>\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ViewHOC(Hierarchy)\r\n","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport Loading from './Loading';\r\nimport { getURLQueryString, getAuthHeader } from './Util';\r\nimport { GET_COUNTRIES,INSERTFEEDBACK } from './constants/APIConstants';\r\nimport axios from 'axios';\r\n\r\nclass NewRequest extends React.Component {\r\n constructor(props) {\r\n super(props); this.state = {\r\n modalnumber: '', \r\n problemdesc: '', \r\n troubleshootingsteps: '', \r\n installation: '', \r\n nameofcust: '', \r\n email: '', \r\n phonenumber: '', \r\n country : '',\r\n SelectValue: \"Please Select a Country\"\r\n };\r\n this.state = {countryLoading: true, countryerror: ''}\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleDropdownChange = this.handleDropdownChange.bind(this);\r\n this.setState({SelectValue : \"Please Select a Country\"})\r\n }\r\n handleDropdownChange(e) {\r\n this.setState({ SelectValue: e.target.value });\r\n }\r\n componentDidMount() {\r\n getURLQueryString()\r\n axios.get(GET_COUNTRIES(localStorage.getItem(\"usertype\")), {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n const data = res.data.Body;\r\n let dat = data.map((con, index) => {\r\n return { key: con.CountryCode, value: con.CountryName }\r\n })\r\n this.setState({ data: dat, countryLoading: false })\r\n this.setState({SelectValue : \"Please Select a Country\"})\r\n }, (error) => {\r\n // console.log(error);\r\n this.setState({ countryLoading: false })\r\n this.setState({SelectValue : \"Please Select a Country\"})\r\n })\r\n\r\n }\r\n\r\n handleChange(evt) {\r\n this.setState({\r\n [evt.target.name]: evt.target.value\r\n });\r\n }\r\n\r\n emailvalidation(value) {\r\n var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n if (!pattern.test(value)) {\r\n return false; \r\n }\r\n else\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n phonevalidation(value) {\r\n var pattern = new RegExp(/^[0-9\\b]+$/);\r\n if (!pattern.test(value)) {\r\n return false; \r\n }\r\n else\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n handleSubmit(event) {\r\n this.setState({ countryLoading: true })\r\n const { modalnumber, problemdesc, troubleshootingsteps, installation, nameofcust, email, phonenumber, SelectValue } = this.state;\r\n\r\n if(!SelectValue.includes(\"Select\") )\r\n {\r\n if(this.emailvalidation(email))\r\n {\r\n let input = modalnumber + \"$$\" + problemdesc + \"$$\" + troubleshootingsteps + \"$$\" + installation + \"$$\" + nameofcust + \"$$\" + email + \"$$\" + phonenumber + \"$$\" + SelectValue;\r\n // let request = input.replaceAll(\"/\", \"@@\");\r\n // request = request.replaceAll(\"#\",\"&&&\");\r\n // request = request.replaceAll(\"?\",\"%%\");\r\n console.log(input);\r\n const content = { text: input };\r\n let urlprod;\r\n urlprod = INSERTFEEDBACK();\r\n axios.post(urlprod, content, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((response) => {\r\n if(response.data == true)\r\n {\r\n alert(\"Confirmation of your submission has also been mailed to the email address provided by you\");\r\n }\r\n else\r\n {\r\n alert(\"Some Error Occured on submitting Request!\");\r\n }\r\n this.setState({ countryLoading: false, SelectValue : \"Please Select a Country\", countryerror: \"\" })\r\n }, (error) => {\r\n this.setState({ countryLoading: false, SelectValue : \"Please Select a Country\", countryerror: \"\" })\r\n })\r\n }\r\n else{\r\n this.setState({countryLoading: false, countryerror: \"Please enter valid email or phone number!\" })\r\n }\r\n }\r\n else\r\n {\r\n this.setState({countryLoading: false, SelectValue : \"Please Select a Country\", countryerror: \"Please select country!\" })\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n render() {\r\n const { countryLoading } = this.state;\r\n return (\r\n \r\n <React.Fragment>\r\n \r\n <Loading loading={countryLoading } >\r\n <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n <Navbar />\r\n <div><br/>\r\n <div>\r\n <div className=\"alert alert-success\" role=\"alert\">\r\n <h4 className=\"alert-heading\">\r\n E-mail form:-\r\n </h4>\r\n <p>\r\n The information we are requesting will be used solely to fulfill your e-mail support request and does not register you as an HP customer.\r\n <br/>\r\n Most e-mail responses can be expected within 1 business day.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n {/* <div className=\"row\">\r\n <div className=\"col-md-9\">\r\n <span id=\"ctl00_SubTitle\">Submit Request:</span>\r\n </div>\r\n </div> */}\r\n <div><br/></div>\r\n \r\n <div className=\"container\">\r\n <form onSubmit={this.handleSubmit}>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Name or model number of your HP product:\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.modalnumber} name=\"modalnumber\" onChange={this.handleChange} required />\r\n </div>\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Please provide a detailed description of the exact problem:\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <textarea className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.problemdesc} name=\"problemdesc\" onChange={this.handleChange} rows={5} cols={5} required />\r\n </div>\r\n {/* <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Please list previous troubleshooting steps, or information that can help HP assist you:\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <textarea className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.troubleshootingsteps} name=\"troubleshootingsteps\" onChange={this.handleChange} />\r\n </div> */}\r\n {/* <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Has anything changed since the unit functioned properly (installation of SW, settings, cabling, etc.).\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <textarea className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.installation} name=\"installation\" onChange={this.handleChange} />\r\n </div> */}\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Name (Firstname & Lastname):\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.nameofcust} name=\"nameofcust\" onChange={this.handleChange} required />\r\n </div>\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Email Address:\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.email} name=\"email\" onChange={this.handleChange} required />\r\n </div>\r\n {/* <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Phone Number:\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <input type=\"text\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" value={this.state.phonenumber} name=\"phonenumber\" onChange={this.handleChange} required />\r\n </div> */}\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n Country/Region:\r\n </div>\r\n </div>\r\n <div className=\"input-group\">\r\n <select name=\"productsnrlists\" className=\"form-control col-xs-12 col-sm-9 col-md-9 col-lg-9 col-xl-8\" onChange={this.handleDropdownChange} > \r\n <option>Please Select a Country</option> \r\n {(this.state.data || []).map((country, index) => { \r\n return <option key={index} value={country.key}>{country.value}</option>; \r\n })} \r\n </select> \r\n </div>\r\n <div>\r\n <br/>\r\n <p>\r\n <b>\r\n Important Note: You should receive an automated acknowledgment from HP within 1 hour. If you do not receive one, it is possible that the security settings (SPAM filtering) are preventing HP messages from being delivered to your inbox. Please check for these messages in another folder such as junk, bulk, unknown, or trash\r\n </b>\r\n </p>\r\n </div>\r\n <div>\r\n <div>\r\n {this.state.countryerror && <div style={{color: \"#E9573F\"}}>{this.state.countryerror}</div>\r\n }\r\n </div>\r\n <div>\r\n <input type=\"submit\" value=\"Submit\" className=\"apply btn btn-primary\" />\r\n </div>\r\n <br/>\r\n <br/>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </Loading>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n \r\n export default ViewHOC(NewRequest);","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { getURLQueryString, getAuthHeader } from './Util';\r\nimport { GENERATEREPORT } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport { getLocationObject } from \"./Util\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\n\r\nclass GenerateMetrics extends React.Component {\r\n constructor(props) {\r\n super(props); this.state = {\r\n modalnumber: '', \r\n data: '',\r\n };\r\n }\r\n componentDidMount() {\r\n axios.post(GENERATEREPORT(secureLocalStorage.getItem(\"loggeduser\")), {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n const dt = res.data.Body;\r\n this.setState({ data: res.data.Body })\r\n }, (error) => {\r\n this.setState({ data: null })\r\n })\r\n\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n <Navbar />\r\n <div><br/>\r\n <div>\r\n <div className=\"alert alert-success\" role=\"alert\">\r\n <p>\r\n Monthly Metrics Process initiated in Backend. You will receive monthly metrics report on your Mail.\r\n <br/>\r\n Please write the Email to PartSurfer@hp.com if you not received within 2 Hours.\r\n </p>\r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n <br />\r\n <div style={{display: 'flex', justifyContent: 'left'}}>\r\n <div> \r\n <Link className=\"apply btn btn-primary\" to={getLocationObject()}>\r\n Back to home\r\n </Link>\r\n </div>\r\n <br/>\r\n <br/>\r\n <br/>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n \r\n export default ViewHOC(GenerateMetrics);","import React from \"react\";\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport \"./bootstrap.min.css\";\r\nimport \"./design.css\";\r\nimport './main.css';\r\nimport Navbar from \"./navbar\";\r\nimport Login from \"./login\";\r\nimport Loading from './Loading';\r\nimport { getURLQueryString, getAuthHeader } from './Util';\r\nimport { GETSBOM } from './constants/APIConstants';\r\nimport axios from 'axios';\r\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\r\nimport BootstrapTable from \"react-bootstrap-table-next\"; \r\nimport { useLocation } from 'react-router-dom'\r\nimport { Link } from \"react-router-dom\";\r\nimport \"./design.css\";\r\nimport secureLocalStorage from \"react-secure-storage\";\r\nclass Sbom extends React.Component {\r\n constructor(props) {\r\n super(props); \r\n this.state = {\r\n modalnumber: '', \r\n problemdesc: '', \r\n };\r\n this.state = {countryLoading: true, countryerror: '', ProdNum: ''}\r\n }\r\n \r\n componentDidMount() {\r\n let productNum = this.props.match.params.value;\r\n let urlprod;\r\n urlprod = GETSBOM(productNum,'US',localStorage.getItem(\"usertype\"));\r\n axios.get(urlprod, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n this.setState({ data: res.data.Body, countryLoading: false, ProdNum: productNum })\r\n }, (error) => {\r\n this.setState({ data: null, countryLoading: false, ProdNum: productNum })\r\n })\r\n \r\n }\r\n \r\n render() {\r\n const { countryLoading, data, ProdNum } = this.state;\r\n const {mobileView } = this.props;\r\n const columns = mobileView\r\n ? [\r\n {\r\n text: \"#\",\r\n dataField: '',\r\n headerAttrs: {\r\n hidden: true,\r\n },\r\n formatter: (col, prod, index) => {\r\n return (\r\n <React.Fragment key={prod.PartNumber}>\r\n <b>Part Number : </b>\r\n {prod.PartNumber}\r\n <br />\r\n <b>Description : </b>\r\n {prod.PartName}\r\n <br />\r\n <b>CSR : </b>\r\n {prod.CsrFlag}\r\n <br />\r\n <b>Tech Courier : </b>\r\n {prod.TechCourier}\r\n <br />\r\n <b>ROHS : </b>\r\n {prod.RohsCompliant}\r\n <br />\r\n </React.Fragment>\r\n );\r\n },\r\n },\r\n ]\r\n : [\r\n {\r\n dataField: \"PartNumber\",\r\n text: \"Part Number\", \r\n headerStyle: () => {\r\n return { width: \"3%\" };\r\n },\r\n },\r\n {\r\n dataField: \"PartName\",\r\n text: \"Description\",\r\n headerStyle: () => {\r\n return { width: \"15%\" };\r\n },\r\n },\r\n {\r\n dataField: \"CsrFlag\",\r\n text: \"CSR\",\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n },\r\n },\r\n secureLocalStorage.getItem(\"loggeduser\") == null ?{\r\n dataField: \"TechCourier\",\r\n text: \"Tech Courier\",\r\n hidden: true,\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n },\r\n }: {\r\n dataField: \"TechCourier\",\r\n text: \"Tech Courier\",\r\n headerStyle: () => {\r\n return { width: \"5%\" };\r\n },\r\n },\r\n {\r\n dataField: \"RohsCompliant\",\r\n text: \"ROHS\",\r\n headerStyle: () => {\r\n return { width: \"8%\" };\r\n },\r\n },\r\n ];\r\n return (\r\n \r\n <React.Fragment> \r\n <Loading loading={countryLoading } >\r\n <div style={{ backgroundColor: \"white\" }} className=\"container-fluid\">\r\n <Navbar /> \r\n <div style={{ marginRight: \"10px\"}}>\r\n <br/>\r\n <Login />\r\n <br/>\r\n </div> \r\n <div className=\"container\">\r\n {data &&\r\n <React.Fragment>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <span id=\"ctl00_SubTitle\">SBOM for Products: {ProdNum}</span>\r\n \r\n \r\n </div>\r\n </div>\r\n <div className=\"btn-back-to-previous\" >\r\n <Link rel=\"noopener noreferrer\" className=\"apply btn btn-primary\" to={`../../?searchtext=${ProdNum}`}>\r\n Back\r\n </Link>\r\n \r\n </div>\r\n <div><br/></div>\r\n <BootstrapTable\r\n keyField=\"PartNumber\"\r\n data={data}\r\n columns={columns}\r\n striped\r\n />\r\n </React.Fragment>\r\n }\r\n { !data && \r\n <div> There is no SBOM for Product: {ProdNum}</div>\r\n }\r\n </div>\r\n </div>\r\n </Loading>\r\n </React.Fragment>\r\n );\r\n }\r\n }\r\n \r\n export default ViewHOC(Sbom);","import React from 'react'\r\nimport loader from '../page_preload.gif'\r\n\r\nexport default function Loading({ loading = false, children }) {\r\n return (\r\n // <div>\r\n // {loading && <div className=\"nested-loading\" style={{\r\n // position: 'fixed', left: '50%', top: '50%', zIndex: 999, opacity: 1\r\n // }}>\r\n // <img src={loader} alt=\"loading...\" /></div>}\r\n // <div className={loading ? 'loader' : undefined} style={{ pointerEvents: loading ? 'none' : 'all' }}>\r\n // {children}\r\n // </div >\r\n // </div>\r\n <div style={{ position: 'relative', boxSizing: 'border-box' }}>\r\n {loading && <div>\r\n <div style={{\r\n position: 'fixed',\r\n height: '100%',\r\n \r\n zIndex: 999,\r\n display: 'block', width: '100%', textAlign: 'center'\r\n , top: '40%'\r\n }}>\r\n <img src={loader} alt=\"loading...\" />\r\n <br/>\r\n Please wait for the moment\r\n </div>\r\n </div>}\r\n {loading ? <div style={{ opacity: '0.2' }}>\r\n {children}\r\n </div> : children}\r\n </div>\r\n )\r\n}\r\n","import zIndex from \"@material-ui/core/styles/zIndex\";\r\nimport React,{useEffect} from \"react\";\r\nimport secureLocalStorage from \"react-secure-storage\";//Added By Shreyas for Local Storage Security.\r\nimport {RESPONSEURLUID,tokencallurl,UIDClientID} from './constants/APIConstants';\r\nimport { setCookie, getQueryParam, getURLQueryString, getAuthHeader, getAuthHeaderUID, bodyParametersUID } from './Util';\r\nimport axios from 'axios';\r\nimport { Buffer } from 'buffer'\r\nimport { Code } from \"@material-ui/icons\";\r\nimport { GETUIDRESPONSE,GET_COUNTRIES } from './constants/APIConstants';\r\nimport Loading from './UIDLoader';\r\nexport function toBase64(input) { return Buffer.from(input, 'utf-8').toString('base64')}\r\nexport function fromBase64(encoded) { return Buffer.from(encoded, 'base64').toString('utf8')}\r\n\r\n\r\nclass CallBack extends React.Component{\r\n\r\n componentDidMount()\r\n {\r\n let urltkn;\r\n urltkn = tokencallurl;\r\n this.setState({loading: true})\r\n const queryParameters = new URLSearchParams(window.location.search)\r\n const Code = queryParameters.get(\"code\")\r\n const encodedval = toBase64(UIDClientID);\r\n var access_token=\"\";\r\n var axios = require('axios');\r\n var config = {\r\n method: 'post',\r\n //url: 'https://login-itg.external.hp.com/as/token.oauth2?redirect_uri=http://localhost:3000/PartSurfer/CallBack&code='+Code+'&grant_type=authorization_code',\r\n url: 'https://'+urltkn+'&code='+Code+'&grant_type=authorization_code',\r\n headers: { \r\n 'Authorization': 'Basic '+ encodedval, \r\n 'Content-Type': 'application/x-www-form-urlencoded', \r\n 'Cookie': 'HPIUID=jyzwhPBEf53HrNc0Zi8mGS'\r\n }\r\n };\r\n\r\n axios(config)\r\n .then(function (response) { \r\n //debugger; \r\n var obj=JSON.stringify(response.data);\r\n console.log(obj);\r\n let access_token_data = JSON.parse(obj);\r\n console.log(access_token_data);\r\n access_token=access_token_data.access_token; \r\n })\r\n .catch(function (error) { \r\n //debugger; \r\n console.log(error);\r\n }).finally(() => { \r\n debugger; \r\n const content = { text: access_token };\r\n let url;\r\n url = GETUIDRESPONSE();\r\n axios.post(url,content, {\r\n headers: {\r\n ...getAuthHeader()\r\n }\r\n })\r\n .then((res) => {\r\n var email = res;\r\n this.setState({ data: res.data.Body })\r\n if(res.data==\"UID_Failed\")\r\n { \r\n secureLocalStorage.setItem(\"loggeduser\",res.data); \r\n window.location.href = \"/\";\r\n }\r\n else\r\n {\r\n secureLocalStorage.setItem(\"loggeduser\",res.data);\r\n this.setState({ User: res.data }); \r\n window.location.href = \"/?Code=\"+res.data;\r\n\r\n }\r\n this.setState({ loading: false });\r\n }\r\n , (error) =>\r\n {\r\n console.log(error); \r\n }) \r\n });\r\n\r\n }\r\n\r\n\r\n\r\n render(){\r\n\r\nreturn(\r\n <React.Fragment>\r\n <Loading loading={Loading} ></Loading>\r\n <div>\r\n <br />\r\n \r\n <div className=\"row vh-100\">\r\n <div className=\"col-sm-6\">\r\n </div>\r\n <div className=\"col-sm-6\">\r\n \r\n </div></div></div>\r\n \r\n \r\n </React.Fragment>\r\n);\r\n }\r\n}\r\nexport default CallBack;","import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport './App.css';\r\nimport ContactUS from './components/ContactUS';\r\nimport Faq from './components/Faq';\r\nimport PartSurfer from './components/PartSurfer';\r\nimport UserGuide from './components/UserGuide';\r\nimport Hierarchy from './components/Hierarchy';\r\nimport NewRequest from './components/NewRequest';\r\nimport GenerateMetrics from './components/GenerateMetrics';\r\nimport Sbom from './components/Sbom';\r\nimport GoToTop from './components/GoToTop';\r\nimport CallBack from './components/CallBack';\r\nimport cors from \"cors\";\r\nimport { generateToken } from './components/Util';\r\n\r\n\r\n\r\nclass App extends React.Component {\r\n \r\n componentDidMount() {\r\n let tokenexptime = `${process.env.REACT_APP_TOKEN_REG}`\r\n generateToken();\r\n setInterval(generateToken, tokenexptime*1000);\r\n }\r\n\r\n render() {\r\n // setInterval(() => {//This function is called as per set interval to regenerate Token \r\n // generateToken(); //just before it expires\r\n // }, process.env.REACT_APP_TOKEN_REG*1000);//Time in MS\r\n return (\r\n <React.Fragment>\r\n <Helmet\r\n title=\"HP PartSurfer\">\r\n {\r\n process.env.REACT_APP_HEADER_LINK ? <script\r\n src={process.env.REACT_APP_HEADER_LINK}\r\n type=\"text/javascript\"\r\n /> : undefined\r\n }\r\n\r\n </Helmet>\r\n <Switch>\r\n <Route path=\"/PartSurfer/Faq\" component={Faq}/>\r\n <Route path=\"/PartSurfer/UserGuide\" component={UserGuide}/>\r\n <Route exact path=\"/\" component={PartSurfer} />\r\n <Route path=\"/PartSurfer/ContactUS\" component={ContactUS}/>\r\n <Route path=\"/PartSurfer/Hierarchy\" component={Hierarchy}/>\r\n <Route path=\"/PartSurfer/NewRequest\" component={NewRequest}/>\r\n <Route path=\"/PartSurfer/GenerateMetrics\" component={GenerateMetrics}/>\r\n <Route path=\"/PartSurfer/Sbom/:value\" component={Sbom}/>\r\n <Route exact path=\"/PartSurfer/CallBack/\" component={CallBack} />\r\n </Switch>\r\n\r\n <GoToTop/>{/* Added by Shreyas N for GO To Top functionality. */}\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react'\r\n\r\nexport default function Footer() {\r\n return (\r\n <div>\r\n {process.env.REACT_APP_FOOTER_ENABLED===\"true\" && <div style={{ width: '100%' }}><div id=\"footer\" className=\"footer\" ></div></div>}\r\n </div>\r\n )\r\n}\r\n","import React from 'react'\r\n\r\nexport default function Header() {\r\n return (\r\n <div>\r\n { \r\n // console.log(\"header\", new String( process.env.REACT_APP_HEADER_ENABLED)===\"0\"),\r\n process.env.REACT_APP_HEADER_ENABLED===\"true\" && <div style={{ width: '100%' }}>\r\n <div id=\"header\" className=\"header\"></div>\r\n </div>}\r\n </div>\r\n )\r\n}\r\n","import { getStoredCart, setStoredCart } from '../CartUtils';\r\n\r\nconst cart = (state = { cartItems: getStoredCart() }, action ) => {\r\n switch (action.type) {\r\n case \"SET_CART_ITEMS\":\r\n console.log(\"cart-item\",action.payload)\r\n setStoredCart(action.payload)\r\n return {\r\n ...state,\r\n cartItems: action.payload,\r\n };\r\n default:\r\n return state;\r\n}\r\n}\r\nexport default cart;\r\n","import { combineReducers } from 'redux'\r\nimport cart from './cartReducer'\r\n\r\nexport default combineReducers({\r\n cart,\r\n})","import 'react-app-polyfill/ie11';\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport Footer from \"./components/footer\";\r\nimport Header from \"./components/Header\";\r\nimport { createStore } from \"redux\";\r\nimport { Provider } from \"react-redux\";\r\nimport rootReducer from \"./Reducers\";\r\n\r\n\r\nrequire(\"dotenv\").config();\r\nconst store = createStore(\r\n rootReducer,\r\n {},\r\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\r\n);\r\n\r\n\r\nReactDOM.render(<Header />, document.getElementById(\"header-container\"));\r\n\r\nReactDOM.render(\r\n <Provider store={store}>\r\n <BrowserRouter>\r\n {/* <React.StrictMode> */}\r\n\r\n <App />\r\n\r\n {/* </React.StrictMode> */}\r\n </BrowserRouter>\r\n </Provider>,\r\n document.getElementById(\"root\")\r\n);\r\n\r\nReactDOM.render(<Footer />, document.getElementById(\"footer-container\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React from 'react';\r\nimport { GETGLBURL } from './constants/APIConstants';\r\nimport { ViewHOC } from \"./ViewHOC\";\r\nimport {getURLQueryString } from './Util';\r\nimport secureLocalStorage from 'react-secure-storage';\r\n\r\n\r\nclass login extends React.Component {\r\n state = {\r\n countryLoading: true,\r\n User :'',\r\n };\r\n \r\n componentDidMount() {\r\n let username = secureLocalStorage.getItem(\"loggeduser\");\r\n if(username!=null)\r\n {\r\n if(username!=\"UID_Failed\")\r\n {\r\n secureLocalStorage.setItem(\"loggeduser\",username);\r\n this.setState({ User: secureLocalStorage.getItem(\"loggeduser\") });\r\n }\r\n }\r\n }\r\n \r\n removeCookie = (e) => {\r\n e.preventDefault();\r\n secureLocalStorage.removeItem(\"loggeduser\");\r\n this.setState({ User: null });\r\n alert(\"LogOut Success!\");\r\n window.location.href = \"/\";\r\n }\r\n \r\n \r\n render() {\r\n const { User } = this.state; \r\n return ( \r\n <React.Fragment>\r\n <div style={{ float: 'right', color: \"#003366\", width:\"auto\" }} >\r\n {User} {User ?\r\n <a\r\n href=\"/\"\r\n rel=\"noopener noreferrer\"\r\n style={{ color: \"#003366\" }}\r\n onClick={this.removeCookie}\r\n >\r\n <b>LogOut</b>\r\n </a> : \r\n <a\r\n href={GETGLBURL}\r\n style={{ color: \"#003366\" }}\r\n title=\"HP Internal Users purpose Only.\"\r\n >\r\n <b>Login</b>\r\n </a> \r\n } \r\n </div>\r\n <div><br/><br/></div>\r\n </React.Fragment> \r\n );\r\n }\r\n }\r\n \r\n export default ViewHOC(login)\r\n ","export const WIDTH_THRESHOULD = 590;\r\n\r\nexport const SEARCH_TEXT = 'searchtext';\r\nexport const SEARCH_BY = 'searchby';\r\nexport const Code_Url = 'code';\r\n\r\nexport const SEARCH_MODES = {\r\n PART: 'part',\r\n PRODUCT: 'product',\r\n FUNCTIONAL_EQUIVALENT: 'fe',\r\n SEARIAL_NUMBER: 'sn',\r\n WILD_CHAR: 'wc',\r\n SERIAL_WP: 'swp'\r\n}\r\n\r\nexport const PART_PHOTO = {\r\n PRESENT: 'Yes',\r\n NOT_PRESENT: 'No',\r\n NOT_APPLICABLE: 'ALL'\r\n}\r\n\r\nexport const PART_FE = {\r\n PRESENT: 'Yes',\r\n NOT_PRESENT: 'No',\r\n NOT_APPLICABLE: 'ALL'\r\n}\r\nexport const DocHeight=document.body.scrollHeight;\r\n\r\nexport const URLHeader = 'PartSurfer';\r\n\r\nexport const MailIDS = 'shreyas.shrikant.nene@hp.com;santhosh.shanmugam@hp.com;rajeev.sharma@hp.com;purnima.kandukuri@hp.com;andrew.cutlip@hp.com;athar.mumtaz1@hp.com';"],"sourceRoot":""}