{"version":3,"sources":["images/icon_save_heart_m.png","images/arrow.png","images/1_Create.png","images/2_PackageSend.png","images/3_Receive.png","images/loading_mobile.gif","images/icon_startover_m.png","images/icon-zoom-out.png","images/arrow_left.png","images/arrow_right.png","images/spinner-32.gif","polyfill.js","util/config.js","ducks/persistance.js","ducks/modules/app.js","Services.js","state/findputter.js","util/convert.js","state/customize/selectors/getImageUrl.js","state/customize/selectors/getPrice.js","state/customize/selectors/isValid.js","state/customize/selectors/index.js","models/Instance.js","state/viewModels/index.js","state/viewModels/validation.js","state/viewModels/helpers.js","state/customize.js","models/Putter.js","util/analytics.js","ducks/modules/customize.js","ducks/modules/findputter.js","ErrorHandler.js","components/Highlighter.js","components/Buttons.js","components/ControlledTextInput.js","components/SuggestedSearchTerms.js","components/FilterPutterCategory.js","containers/FindPutter.js","containers/AppNav.js","components/CustomizeNav.js","components/ImageWithLoader.js","components/InstanceView.js","components/PaintSwatch.js","components/PaintSummary.js","components/PaintFillGrid.js","components/PaintColorSwapModal.js","containers/NavWarning.js","components/Price.js","containers/forms/FinishForm.js","containers/forms/PackageForm.js","components/PaintFillChooser.js","components/InitialsChooser.js","components/StampSwatch.js","components/StampGrid.js","components/StampChooser.js","components/CustomModal.js","containers/forms/FaceForm.js","containers/forms/BackForm.js","components/LineChooser.js","containers/forms/TopForm.js","components/ControlledSelect.js","components/WeightChooser.js","components/ControlledRadioGroup.js","containers/forms/SpecsForm.js","components/AccessorySelection.js","components/AccessoriesGrid.js","components/AccessoriesView.js","containers/forms/AccessoriesForm.js","containers/forms/AuthenticationForm.js","components/AuthenticationView.js","containers/forms/ConfirmForm.js","components/PaintFillSummary.js","components/InitialsSummary.js","components/StampSummary.js","components/ConfirmView.js","containers/Customize.js","containers/DeepLink.js","App.js","ducks/create.js","index.js","images/icon-zoom-in.png"],"names":["module","exports","__webpack_require__","p","Array","prototype","includes","Object","defineProperty","value","searchElement","fromIndex","this","TypeError","o","len","length","x","y","n","k","Math","max","abs","isNaN","String","search","start","indexOf","window","hasLocalStorage","storage","result","uid","Date","localStorage","setItem","getItem","removeItem","exception","BLOCK_NAV","initialState","blockedNavigation","reducer","state","arguments","undefined","action","type","objectSpread","payload","blockNavigation","createAction","unblockNavigation","getCustomInstance","id","axios","get","process","concat","then","response","data","setPutterFilterText","filter","assign","setPutterFilterCategory","category","setPutters","putters","getMatches","keywords","label","_","map","q","m","a","re","RegExp","replace","exec","push","index","flatten","doesLabelMatch","reduce","v","find","getFilteredPutters","filteredPutters","returnPutters","query","trim","split","putter","template_id","matches","buy_a_putter","objectCaseFactory","caseFunction","objectFunction","isArray","keys","prev","current","ccKey","el","objectKeysToCamelCase","camelCase","objectKeysToPascalCase","upperFirst","getImageUrl","view","url","faceSoleImage","backCavityImage","playerProfileImage","getParamsForState","partial","getParametersForProperty","params","instance","identity","join","sep","objToParams","obj","toPairs","_ref","_ref2","slicedToArray","key","finish","getSelected","colorCode","textTypeKeys","InitialsFace","char","period","archChar","archPeriod","color","InitialsBumperHeel","InitialsBumperToe","initials","isEmpty","_ref3","_ref4","initialsField","initialsSelections","characters","initialsLoc","initialsLocation","maxLen","maxCharacters","keyDict","styleType","personalizationStyle","parameterKey","charKey","periodKey","roundFunc","ceil","floor","offset","chars","c","i","encodeURIComponent","separateWithPeriods","apply","toConsumableArray","allLocs","paintFillLocation","selected","paintfill","unselected","l","s","location","_ref7","_ref8","paintFillKey","toLowerCase","isRaw","topWeight","weight","getTranslucentPaintRules","useBlackFinishColorCodes","colorCodeBlackFinish","getColorCode","makeOpaqueKeyName","isTranslucent","_ref9","paintFillLocations","fieldKey","lines","paramKeys","parameterKeys","putterDesignation","getPutterDesignation","paramsKey","existingParams","paints","lineType","snakeCase","lineOverrides","getLineImage","paintLoc","suffix","_ref10","stamp","stampImage","image","faceToeImage","_ref11","img","isStampOnPaintFill","getAdditionalEngravingParams","stamps","_params","isTop","weightEngraving","weightEngravingHeel","weightEngravingToe","weightRearColor","weightFrontColor","$weightFrontNumRim","$weightRearNumRim","$weightRearStamp","$weightFrontStamp","$weightRimColor","$weightFrontStampImageParams","$weightFrontStampDecalParams","$weightFrontOpaque","$weightRearStampImageParams","$weightRearStampDecalParams","$weightRearOpaque","weightSelection","hasWeightEngraving","heelWeightEngraving","toeWeightEngraving","rearPaintLoc","rearPaintFill","frontPaintLoc","frontPaintFill","weightColor","weights","paintKey","2014_futurax5","BC","top_line","sight_dot","PP","2015_Golo_5","2012_Circa_62_No3","pre","config","getDiscountHints","grip","headCover","buyAPutter","restoration","reshaft","hasPremium","isPremium","keepShaft","getPartPrice","part","discountHints","overrideSelection","selection","price","discountPrice","validObj","valid","errors","getErrors","vm","combineValidation","_len","args","_key","ret","finishVM","line","lineVM","otherLineVM","isConfirm","otherVMActive","options","paintable","paintVM","paint","stampVM","enabled","stampId","initialsVM","personalizationStyleId","engraving","engravingVM","weightFront","weightVM","e","frontEngraving","frontPaint","weightRear","rearEngraving","rearPaint","selectedEngraving","specsVM","reshaftRequired","loft","lie","userSelection","desiredLength","reshaftLength","desiredLengthRequired","accessoriesVM","gripRequired","sku","shaftBand","authentication","authenticationVM","translucentPaintRules","black","putterModels","2012_Studio_Select_Fastback","dotHeelColor","allowTranslucent","allowDefaultColor","dotCenterColor","dotToeColor","2011_Studio_Select_Fastback","2011_Studio_Select_Fastback_15","2011_Studio_Select_Squareback_2","2018_Squareback","scLogoSoleColor","familyLogoSoleColor","modelLogoSoleColor","lineSoleColor","dotsSoleColor","dot1Color","dot2Color","dot3Color","2018_Fastback","2018_Squareback_1.5","modelLogoSoleNumColor","2018_Fastback_2","2018_Newport","2018_Select_Newport_2","2018_Select_Newport_2.5","2018_Select_Laguna","Concept_X_Nuckle","crownLogoSoleColor","Concept_X_Low_Slant","2019_PhantomX5","topSightDotCenterColor","2019_PhantomX5_5","2019_PhantomX6","2019_PhantomX6_STR","2019_PhantomX7","2019_PhantomX7_5","2019_PhantomX8","2019_PhantomX8_5","2019_PhantomX12","2020_Phantom_X_12_5","2022_JetSet_Newport_2","flangeLineToeColor","flangeLineCenterColor","flangeLineHeelColor","topLineToeColor","topLineHeelColor","topLineCenterColor","toeStampColor","faceTextColor","scLogoFaceColor","familyLogo2SoleColor","modelShaftLogoColor","limitedLogoBumperColor","2020_Special_Newport","cameronShaftLogo","heelTextColor","toeTextColor","2020_Special_Newport_2","2020_Special_Newport_2.5","2020_Special_Squareback_2","2020_Special_Fastback_1.5","2020_Special_Flowback_5","2020_Special_Flowback_5.5","2020_Special_Del_Mar","2020_SpecialSelect_Newport2_LH","paintKeys","topWeightFrontColor","topWeightRearColor","default","2017_Futura_55M","titleistLogoFaceColor","2016_Futura_5CB","2016_Futura_5MB","2016_Futura_5S","2016_Futura_5W","2016_Futura_6M","archTextColor","2016_Futura_6M_DualBalance","dualBalanceSoleColor","2016_Futura_7M","2016_Futura_X7","titleistLogoSoleColor","2016_Futura_X7M","2016_Futura_X7M_Dualbalance","modelLogoFaceColor","modelLogoSoleNum2Color","T22_Fastback_1_5","2021_PhantomX5","2021_PhantomX5_5","2021_PhantomX11","2021_PhantomX11_5","2022_PhantomX5","2022_PhantomX5_5","2022_PhantomX5S","2022_PhantomX7","2022_PhantomX7_5","2022_PhantomX9","2022_PhantomX9_5","2022_PhantomX11","2022_PhantomX11_5","2022_PhantomX12","2022_JetSet_Newport_2_Plus","2022_JetSet_Newport","2022_JetSet_Newport_Plus","2024_Phantom_5","arrowsLogoSoleColor","dotTop1Color","dotTop2Color","dotTop3Color","2024_Phantom_55","2024_Phantom_5s","2024_Phantom_7","wingLinesColor","2024_Phantom_75","2024_Phantom_9","topLinesColor","2024_Phantom_95","2024_Phantom_11","2024_Phantom_11_Long","2024_Phantom_115","2024_B3_Newport2","limitedLogoSoleColor","blackToeBumperColor","tripleHeelBumperColor","2024_B3_Newport2LN","2024_B3_SantaFe","2024_B3_Catalina","2025_Phantom_52","2025_Phantom_72","2014_Fastback","stripeSoleFourColor","stripeSoleOneColor","stripeSoleThreeColor","stripeSoleTwoColor","2014_Squareback","putterModel","useBlackFinishColorCodesForDefault","hasOwnProperty","getValidPaintColors","locationId","translucentPaintRule","getPaintFillLocationById","getAllPaintColors","onWeightsOnly","getAllSolidPaintColors","defaultInstance","defaultColor","getDefaultColorByLocation","colorId","solidPaintFillColor","translucentPaintFillColor","getMaxPaintFillColors","maxPaintfillColors","getPaintFillLocationByParameterKey","field","getOption","locs","colors","newObjs","model","toString","stampLocation","weightEngravingStamp","accessories","defaultInitialsLocation","getInitialsFromInstanceInitials","personalizationStyleLabel","getSightDotFromPutter","sightDotDefault","sightDot","numberOfLines","getFlangeLineFromPutter","flangeLineDefault","flangeLine","getReshaftFromPutter","reshaftDefault","fromPutter","isExactMatch","insuranceValue","authorizeSurcharge","restorationType","loc","getInitialsFromPutter","stampSelections","topLine","paintFill","topWeightEngraving","weightEngravingTopToe","weightEngravingTopHeel","gripWrap","fromAPIInstance","savedInstance","chain","customInstanceId","orderLineItemId","initialsBumperHeel","initialsBumperToe","initialsFace","paintFillSelections","locations","weightSelections","desiredValueId","headcover","userCanUpdate","userCanUpdateOrder","notes","Id","formatForAPI","customizeState","instanceModel","instanceIntent","idToSend","orderIdtoSend","CustomInstanceId","OrderLineItemId","Model","FormType","Label","IsExactMatch","InsuranceValue","AuthorizeSurcharge","Restoration","Finish","Initials","omit","StampSelections","TopLine","FlangeLine","SightDot","PaintFillSelections","PaintFill","Locations","WeightSelections","Loft","Lie","Length","DesiredValue","lengthId","Reshaft","Grip","GripWrap","ShaftBand","HeadCover","BuyAPutter","Accessories","Authentication","Notes","getFinishVM","helpers","paintFillOptions","restorationOptions","restorationOption","paintFillOption","validation","parts","isValid","combinedValidation","getSpecsVM","hasWeights","hasTopWeights","console","log","filteredOptions","opt","reshaftOption","getBackFaceVM","paramsList","sort","b","rank","stampsLocations","paintFillPrice","isConfirmation","getFaceVM","faceStampOrInitialsOnly","faceSoleImageParameters","getBackVM","backCavityImageParameters","getTopVM","existingTopLineParameters","playerProfileImageParameters","colorKeyLookup","flangeLinePaintFillLocations","existingFlangeLineParameters","flangeLines","topLines","sightDots","getAccessoriesVM","colorFilters","gripOption","getAuthenticationVM","getConfirmVM","face","back","top","specs","auth","getPriceVM","insurance","getInsuranceVM","getPaintSummaryVM","minPrice","total","forEach","locationInfo","parseFloat","usedFreeStamp","numLines","getPrice","isMinPrice","buyLink","_getSelected","alterPartPrice","option","getPaintSummaryProps","paintSummary","allPaintColors","paintSwapValid","isPaintfillArea","locationParam","getPaintVM","noWarn","hasPerpendicularLines","isCavityDot","onCavityDotsOnly","selections","warn","getInitialsVM","styleOptions","archPaint","mergePaintVMs","getStampVM","stampLoc","faceToeOnly","ids","mergeLinePaintVMs","unMergedPaints","mergedPaint","getLineVM","optionType","getEngravingVM","words","capitalize","getWeightVM","engravingOption","getOptionVM","usePriceFromData","opts","alterPartPrices","getPaletteColors","getCookieVal","cname","name","ca","decodeURIComponent","document","cookie","charAt","substring","setPutterDisclaimerCookie","ms","path","domain","d","cpath","cdomain","expires","setTime","getTime","toUTCString","setCookieVal","freeze","production","deepFreeze","loading","isOldSchool","restorationRequiredForStamping","frontWeightDefaultImage","rearWeightDefaultImage","paintFillColor","replacementPaintFill","variableOptions","flangeLineToe","flangeLineHeel","flangeLineCenter","topLineToe","topLineHeel","topLineCenter","frontCavityStamp","rearCavityStamp","toeStamp","InitialsArch","topSightDotCenter","dotToe","dotHeel","dotCenter","topLinePerpendicular","topWeightEngravingHeel","topWeightEngravingToe","setInstance","setDefaultPaintFills","clearPaletteColors","paintFillsToIgnore","paintFillLocationParam","findKey","colorKeyItem","selectPaint","clearSelectionForPaintKey","clearSelectionPaintFill","sel","clearPaintFills","paintFillsToKeep","forOwn","stampSelection","paintFillKeys","perpendicularLine","clearAllPaintFills","paletteColors","clearIdSelection","isNumber","Error","selectInitials","locationName","defaultStyle","flow","partialRight","toUpperCase","rawColors","newColors","uniqBy","rawColor","existing","findIndex","slice","selectPaletteColor","replacePaint","oldColorId","newColorId","additionalLocationId","newState","locId","checkPaintsValid","every","clearInvalidPaints","colorIsRaw","allColors","foundColors","replaceColor","foundOldColors","oldColorIndex","GoogleAnalytics","initialize","gaTrackingId","defaults","trackEvent","isObject","event","trackedClickEvent","analyticsData","onClickFcn","createTrackedAction","eventTracking","debouncedTracking","EventAnalyticsMiddleware","store","next","meta","trackData","actionData","isFunction","analyticsDataFcn","getState","customize","isString","startCase","debounce","debounced","cancel","isProduction","AnalyticsPageTracker","WrappedComponent","props","page","set","pageview","trackPage","pathname","react_default","createElement","CLEAR","LOAD_PUTTER","START_LOAD","SELECT","SET_FIELD","PAINT","INITIALS","STAMP","CANCEL_REPLACE_PAINT","REPLACE_PAINT","SELECT_VIEW","TOGGLE_VIEW_ZOOM","SELECT_ACCESSORY_TYPE","PERFORM_ADD_TO_CART_CALL","PERFORM_ADD_TO_SAVED_CALL","SET_INSTANCE_INTENT","LOAD_INSTANCE","LOAD_ORDER_INSTANCE","LOAD_DEFAULT_INSTANCE","RESET_PAINTFILLS","CLEAR_PAINTFILLS","CHECK_PAINT_SWAP_VALID","APPLY_FINISH","cs","hydrated","selectedView","isViewZoomIn","selectedAccessoryType","error","newData","fromPairs","top_weight_engraving","weight_engraving","top_weight","convert","Putter","Instance","disabledWeightIds","r","f","ss","t","w","g","h","currentInstance","has","otherField","otherFieldSelected","selectedPaintFill","changingFinish","disableRestoration","selLength","JSON","stringify","reshaftKeepShaft","paintsValid","restorationDefault","defaultWeight","selectedLength","selectedRestoration","_selection10","newReshaft","oldColor","newColor","cartResponse","saveResponse","paintFillLocationsForOldColor","clearPutter","startLoad","performLoadPutter","performLoadDefaultInstance","Services","loadPutter","buy","dispatch","defaultInstanceId","setBuy","bp","selectField","setInstanceIntent","performLoadInstance","performLoadOrderInstance","lineItemId","loadInstance","parseInt","last","href","setFieldValue","selectPaintFill","changeInitials","val","selectStamp","cancelReplacementPaintFill","selectView","toggleViewZoom","selectAccessoryType","resetPaintFills","performAddToCartCall","APIInstance","post","performAddToSavedCall","addToSaved","checkPaintSwapValid","applyFinish","LOAD","FILTER_TEXT","FILTER_CATEGORY","findputter","performLoadPutters","RenderFallback","style","textAlign","DefaultErrorBoundary","Component","fallbackComponent","onError","_React$Component","ErrorBoundary","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","inherits","createClass","setState","Comp","React","ErrorBoundaryConstructor","Highlighter","_ref$activeClassName","activeClassName","_ref$activeIndex","activeIndex","autoEscape","className","_ref$highlightClassNa","highlightClassName","_ref$highlightStyle","highlightStyle","_ref$highlightTag","highlightTag","sanitize","searchWords","textToHighlight","_ref$unhighlightClass","unhighlightClassName","unhighlightStyle","chunks","findAll","HighlightTag","highlightCount","highlightClassNames","chunk","text","substr","end","highlight","Button","children","rest","objectWithoutProperties","classNames","ButtonLink","Link","Tracked","trackingData","onClick","target","to","handleClick","callback","sameTarget","normalClick","ctrlKey","shiftKey","metaKey","button","outbound","preventDefault","outboundLink","evt","TrackedButton","TrackedSimpleButton","Buttons_Button","TrackedButtonLink","TrackedNavLink","Buttons_ButtonLink","NavLink","TrackedLink","ControlledTextInput","onChange","onBlur","maxLength","terms","SuggestedSearchField","SuggestedSearchTerms","onViewAll","renderSearchField","FilterPutterCategory","FindPutter","_Component","ready","viewAll","warningShow","warningLinkId","warningLinkClassic","doViewAll","bind","assertThisInitialized","doReset","doShowWarning","body","classList","add","loadPutters","scrollTo","nextProps","remove","filterPutters","filterPuttersByCategory","show","customizeUrl","_this2","src","LoadingMobileImg","alt","Loading01Img","Loading02Img","Loading03Img","isDefaultView","take","react_modal_lib_default","overlayClassName","isOpen","contentLabel","showBuyTab","src_components_FilterPutterCategory","filterPutterCategory","components_ControlledTextInput","autoFocus","placeholder","src_components_SuggestedSearchTerms","onReset","selectSearchField","group","is_exact_match","image_url","putter_price","dangerouslySetInnerHTML","__html","description","buy_a_putter_id","defaultProps","mapDispatchToProps","actions","connect","ownProps","getFindPutterVM","AppNav","render","is-min-price","startOverHandler","StartOverImg","_SC_IS_LOGGED_IN","addToSavedHandler","SaveImg","loginUrl","openPriceModal","minPriceModalIsOpen","onRequestClose","closePriceModal","savedModalIsOpen","closeSavedModal","addToSavedResult","Success","performedAutoAdd","openSavedModal","autoAddToSaved","putterId","CustomizeNav","confirmLink","ImageWithLoader","status","handleLoad","handleError","onLoad","InstanceView","_this$props","views","onSelectView","mainImg","prevImg","nextImg","ZoomOutImg","ZoomInImg","LeftArrowImg","src_components_ImageWithLoader","RightArrowImg","PaintSwatch","_ref$onClick","paint-swatch","translucent","background","title","no-selection","PaintSummary","emptyPaints","emptyColor","src_components_PaintSwatch","PaintFillGrid","selectedPaint","onSelectPaintFill","PaintColorSwapModal","currentPaintFill","warning","newPaintFill","headerTitle","headerText","colorSelectedText","colorToSelectText","eventLabel","onAfterOpen","setNewPaintFill","setCurrentPaintFill","src_components_PaintSummary","components_PaintFillGrid","paintColor","class","setWarning","createConfirmNavigation","prompt","NavWarning","when","allowInvalidNav","message","unblock","context","router","history","block","contextTypes","PropTypes","shape","func","isRequired","app","Price","FinishForm","_getPrototypeOf2","display","onSelectField","checked","src_components_Price","option-selected","showValidationWarnings","containers_NavWarning","PackageForm","packages","pack","onSelectInstance","getPackageVM","PaintFillChooser","hidden","labelOverride","isError","toggle","InitialsChooser","handleCharacterInput","initialsValid","initialsTimer","onFieldChange","inputVal","clearTimeout","initVal","allowSpaces","trimStart","setTimeout","isValidInitials","headers","Content-Type","element2","getElementById","evt2","Event","bubbles","simulated","dispatchEvent","_this3","personalizationStyles","onFieldChangeAdditionalOptions","onTextEntry","isPaintError","labelAlternate1","onKeyPress","test","allowPeriods","components_PaintFillChooser","StampSwatch","disabled","menuImageUrl","stamp-swatch","StampGrid","selectedStamp","selectedWeight","onSelectStamp","src_components_StampSwatch","StampChooser","onCheck","noCheck","components_StampGrid","CustomModal","divStyle","displayModal","closeButtonStyle","showDefaultCloseButton","closeModal","stopPropagation","FaceForm","selectModal","info","modal","toggleLargeStampModal","largeStampModal","components_CustomModal","closeButton","modalContent","handleLargeStampChange","tempStampId","handleLargeStampChangeCancel","handleChange","handleChangeCancel","onEnablePaintFill","components_InitialsChooser","onInitialsFieldChange","value1","value2","setInitialCheckOptions","locid","paintid","components_StampChooser","setStampCheckOptions","setStampOptions","src_components_PaintColorSwapModal","initialsChecked","stampsChecked","colorObj","fieldName","hasFaceToeInitials","allStamps","curStamp","disableInitials","stampSelected","initialsSelected","largeStampSelected","BackForm","LineChooser","radioGroup","isSelected","TopForm","components_LineChooser","ControlledSelect","showPrice","WeightChooser","checkbox","hasEngraving","allowKeepAsIs","isStampError","components_ControlledSelect","ControlledRadioGroup","_ref$showPrice","SpecsForm","components_WeightChooser","toggleLengthInfo","lengthInfoIsOpen","closeLengthInfo","components_ControlledRadioGroup","Accessory","accessoryType","onSelectAccessoryType","onRemoveAccessory","cursor","imageUrl","ArrowImg","AccessorySelection","AccessorySelection_Accessory","AccessoriesGrid","onSelectAccessory","onZoomAccessory","closeZoomModal","accessory","colorFilter","accessory-label","AccessoriesView","setColorFilters","some","tagName","shaftBandOption","headCoverOption","components_AccessoriesGrid","openZoomModal","accessoriesZoomModalIsOpen","accessoryImg","accessoryLabel","accessoryPrice","accessoryId","newColorFilters","splice","AccessoriesForm","components_AccessorySelection","setAccessoryType","openModal","accessoriesModalIsOpen","src_components_AccessoriesView","AuthenticationForm","checkValid","AuthenticationView","certModalIsOpen","certModalHeader","certModalContent","certModalImg","width","height","frameBorder","colSpan","ConfirmForm","buttonLabel","showAuth","showInsurance","onInsuranceChange","customize-form-space-above","hasPaintfillErrors","addToCartClicked","setAddToCartClicked","addToCart","addToCartResult","SpinnerGif","showSpinner","addToCartResultModalIsOpen","cartUrl","react_redirect_default","Errors","item","Message","isClicked","setShowSpinner","isShowSpinner","tempProps","allInitials","topDotLines","PaintFillSummary","header","InitialsSummary","StampSummary","ConfirmView","_len2","_key2","putterLabel","components_PaintFillSummary","components_InitialsSummary","components_StampSummary","Customize","prevProps","containers_AppNav","src_components_CustomizeNav","lastIndexOf","Switch","Route","exact","Redirect","component","forms_AccessoriesForm","src_components_AuthenticationView","src_components_ConfirmView","src_components_InstanceView","putterValid","match","getReplacementPaintfillVM","DeepLink","instanceId","loadInspirationInstance","savedInstanceId","loadSavedInstance","orderItemId","loadOrderInstance","authorized","combineReducers","middleware","promiseMiddleware","thunk","createLogger","persistedState","parse","_createStore","applyMiddleware","subscribe","storeState","createStore","TrackedCustomize","TrackedDeepLink","ErrorHandler","App","confirmNavigation","es","BrowserRouter","basename","getUserConfirmation","ReactDOM","src_App_0"],"mappings":"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","file":"static/js/main.ce9cdb98.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAgCAYAAACVU7GwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEFGOTFFOTQzNDFCMTFFN0JCMTJEMDNENjMzNTNDMDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEFGOTFFOTUzNDFCMTFFN0JCMTJEMDNENjMzNTNDMDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4QUY5MUU5MjM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4QUY5MUU5MzM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkcXDSQAAAN2SURBVHjavJfPaxNREMc320il2ouCIv4BoqIpQhFR8aCgeKj0JoIV2kNJaqw/CpZoPUhJ1dpfWJJbKD0I1h9gpNiiaYX0EGIFtVr05MHqRUGo2mou8TtxNrwOb5PNj2bg27d5O/Pm08nb2RdXOp027CwQCBzDcBiqgzZCy9AH6AU0AX0z7G0DdBQ6CO2EqqHv0Bz0DJqyC3TpoADTjsELbdPdd7lc1mUYCsJnQbm3CcNVyE+fc8TPcXw4JxRgPAzTmquCmgR++A/jupXjPU7iOZaghqF5a96tAB2gBbHYKZuqZE1NSNfwuQNtoWUkTK54Hr3wWcdwiSwUgNZIIF7sNTQGJaEvUC3tD9xrwNioLo65FUAc/wSKQu+hn9BWqB73TtI6SnwT+yfUSg1BEigMZ5+m6i+hEfichugf2Serh/kk/+cjIvYdNAl1QyGOt+41Qb+gtqpUKkVPyX3rJgMNBYNBfywWy7Ul3sL3I7QW17sUoHsYerDeY91Xp9g4PdHw2avE1lNuqlSLcJ4E0HknmxyJZ7DQHxI+NkOjXOGE4czOQduhI8pcs4k/J0SVwkYBhthZqIX3yJkCgLJtxaooczQS1G7h9MoowrDgvFGcJcVnj8lPlGqLRmVN5qs1ecertr7CUDXi82+CeiMm91QYqk4+1QQVFRvNW2Eor3jQogQVEU7H0eFvVQjoBtQg5iJV8Xh8CU1yMzcui3g/5kw+ohRteZpnF0nTjsZMdrhAXV28MK/BsWeVKkSvmevi5U3vyE66yEChg//lJjYuwDox11dmoF7oinhXPucqLWahGGzaBuwiHU3KBDQIddgATVhzphoBMAIagONDAXYWc6ESgSi+XQDR0aYfeqQ6mjISYHQ0GETAXQHmLQEspD76DER7eAB6Kp1N3QoAm+GKRcoApgMa5QpN6wJMu5UANouhDwuESwDTAdF6t61TZkFQypu/txgwvq8D6udfMrbmdnAk+YTFurm5ZZLwmZzADN2RWQIpjZH63ud8OU2HZ6Wv1Fs0B7JMxaBqTl6TA6jLCZCjSilgP5DgEidaUTGeu4zhpg1QB7TkNJe7kMcIyZaRqM0GbAd0SAPkK7R/uAsNSP/P6qOkKhgBaX75+oppamax7Zk3eFieBPL8ZlxdKB1YOYDyfn15zkOWEcAU7yv6yh44jLO1fwIMAFy1rxeGpHYMAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzY5QUM3NEE0ODg0MTFFNzlFQTlGMEJFNTNDNDg2MjEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzY5QUM3NEI0ODg0MTFFNzlFQTlGMEJFNTNDNDg2MjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDNjlBQzc0ODQ4ODQxMUU3OUVBOUYwQkU1M0M0ODYyMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDNjlBQzc0OTQ4ODQxMUU3OUVBOUYwQkU1M0M0ODYyMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pl1ZCTQAAAN3SURBVHja1FhPKKVRFD9uWJEk0itZeIosLB87hd5Qk0fNQsnen43VFIsxC8rKZrCYnZQdT1PMi1eW3tJCFBZSEkliIRbm/O6cz9y+nvfu97lvmvnVb/E+n3N+3znn3nvOLXp5eSETvb29lAdtzBizldnErGdWyd9umGfMI+Y+M8PcowAotnyvmplgfmR+YJa88V5E2C6/n5k/mT+YSea1C0FDzGFmt/cgHo9Tc3Mz1dXVUU1NDZWXl+vn9/f3dHV1Refn53R4eEipVKpEPgL8xFxmruRyVpQjZQ3MceYYIhKJRGhwcJBisRiVlZVZhfXh4YEymQytrq7SxcWFF7EF5jfmaRBBqJHPzH4vIiMjI1RaWkph8PT0REtLS4iY92idOSc1llcQxHyFjsrKSpqenqbGxkZygePjY23v9vYWP6Hui1+U8olpkMjEa2traXFx0ZkYALZgE7bhQ3w1vClIaqYfkZmfn6eKigpyDdiEbfiQkhjPKoijMyQFrMNaCDGmKPgQjMlK/iOIxVTL0i5BAdukaWNjw6uF0OmDL9nThmWve40QNr1uLG2sJhscHBzQwMAAnZychBYFX/Ape1zCFISNS+8zQZb27u6u/lJEKwzgCz5NDYrT1SbHgd70wiCRSNDs7GyoFBo+oaFNySaoa8d2B86GqampUCmET6OWYkpObX02vRdeCtPpdKD/M3y3Kmkh9EHpCl1dXTqFj4+PVu8bvpuU9DP61HYJpLCnp8cqhYbveuU1V14L4RK2KTR8Vyn6C0AbYgslbadurlyjo6NDn/B9fX053zN83yjpgXWn5xIzMzO0tbVF0Wg077uG77Niacjb0Xa6WPrAzs4OdXZ2Wr8P34IjJdOB7oFdpSiIGJ/vfSUd2zPayyDFly1Fa2trVinyF7y0tui3M2pzc3NPRhXdkIdBMpmkyclJr+kKBMMnNOx5yx5zk54O0JC7XkW5mn/4NDV4gjDEbWNUwXRgg5aWllApMgFfMh5ti4bfgjht1zLE6VrCV+cDohImReYEYtTOsjfVvu7ULGpFhjjd797d3RVs54Zto6deMKdZ/9GBiXIdjdbExERBRMEmbEszty4+s49BHKVTmShTl5eXNDo6apW+IGmCTdiWQXHOP1L/F6P0P3nZ4Oo6xrSz/d7rmDAXVn4U5MKKxNB3YUGv9H4JMAA0UqTuV3dXswAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/1_Create.18b8b6b5.png\";","module.exports = __webpack_public_path__ + \"static/media/2_PackageSend.6a8d70e9.png\";","module.exports = __webpack_public_path__ + \"static/media/3_Receive.25842eab.png\";","module.exports = __webpack_public_path__ + \"static/media/loading_mobile.08644281.gif\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAkCAYAAAAHKVPcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjQ2RjZBODgzNDFDMTFFN0JCMTJEMDNENjMzNTNDMDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ2RjZBODkzNDFDMTFFN0JCMTJEMDNENjMzNTNDMDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMzZCNEVGQjM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMzZCNEVGQzM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsC6DR8AAAMMSURBVHjavJhLaBNRFIaTWEUR8blQrNBVWtTU1vdjp1jFVfFBqrgQF2l1JbpoEFsVq9SFoqvSghQXtiIVFBFEUMFFKdWWWKtiFbU+QMVHBR9gMfE7eJQ43JkkM5Mc+DiXO2fO/Lnvm2A8Hg+4tAXBYPAYviqVSpXjH7lNFHLxzhQ4hYAEfgMUwYSAByvKMT7GxxvwxZb6kUKIWMfHm/EVNs+n5lNEuf7yzU5BxFzDvWZsPMP3w3W443VMTIITJL+XSYDaDGkl4jdCE/TCA+rqYIwbEePgNkn2BrzZXHK0qJiaXEX8gqOQCPhjpQjphA7KE3MR0UX/VsJOyi+z+NDPLGK2IqQHPy3XdaJdFiI47RDD49R6KIMdcMEhdj5CunXM5bRYfYE90jL4y6bJATIrHsNZiBJbCm0O3XPL7YqZIHE1bKM8aFhF020IaoldpgKttgjqvSzbnSSPwD7Ko1pnNw17iVuBf2pYW5p5VuJWxF87SZIKkJn0wiHuPTFVNovcEa8ixB7CAfiUIe45QuIGEdtx00OBwtlxeGOo31RIETKXzxmq1xRUhG5s1i4pKbSIIV2R061YtvJDlspXcCZPIj7Cd8uKObmI5jho6LtL+oLfNh7GWupG7bpjZp5aYpYKSbd3diKW50mEKe+wiEgaRmw0HwpMeen6QRFx0xC/FsI+awhrXqtdDKGk3UZ1p8+tYMo3DN3SEh02y+lCaPRJQ6Pm+8+SyeR+GuHPBkZhl436w+n7vkur1zxWG5BzJ/zbRa8gpMNGSDOcdzFGwvKeXppM+0i16VATc7jURkkmx7dWWJrh4/K8VeOjNgJqZXs33cC+8XCVHkTLbFolpmLvEzugY+mHXohn81xu55EMO6mcyNqcroGf5ThGsquUVzrkihATcbGV78a1ZHPkH5EWgQYfZ+hd8i02Cch0vGviRTkVd3n4+BNy1MESyn1ub+X9JNiiR/QaumA1vlLvGnb2AW7wnhxgZCFM+fX/hPyKPhKHdfTPgzl6G5fj/ld4q0d7+WugRwdsVvZbgAEAaS8WawxT5l0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAABFCAYAAAAcjSspAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzQ0MzUzQ0E1RjAwMTFFN0I3MTc5QzA2NkJENDQxRTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzQ0MzUzQ0I1RjAwMTFFN0I3MTc5QzA2NkJENDQxRTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENUVBNjlDNTVFRUExMUU3QjcxNzlDMDY2QkQ0NDFFMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENUVBNjlDNjVFRUExMUU3QjcxNzlDMDY2QkQ0NDFFMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqjFxwAAAZlSURBVHja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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAvCAYAAAAWymHTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTM2QjRFRjUzNDFCMTFFN0JCMTJEMDNENjMzNTNDMDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTM2QjRFRjYzNDFCMTFFN0JCMTJEMDNENjMzNTNDMDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMzZCNEVGMzM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMzZCNEVGNDM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtLCaVwAAAJJSURBVHjatJjdSxRRGIdnt0X8goTKQESy7YNCN2yhC2+88EJR8A8IEq8WIigoI/oX8sYLEaK6EASDrqIuu5CILlIQBA3XiXZJ+243uii32PT3wm/gMMzuzsw554WHmX2HnWfOnPecMzOJXC7nWIqzYEt2kpYEk+Ca9yNlSbAAfoAKeJCyJJA4AqbBqaQlgRqPkpYFV8DzpGXBoonqaijQlYQS6EhCC+JKIgniSCILokpiCaJIYgvCSrQEYSTagkYSI4J6EmOCWhKjgiCJcYFfYkWgSqwJPMnVGoLLJgSeZD4g/wQsmVqXRTIDqr78X3kAMCU5lM1mt7E9DvqVfAYMgq+gEHARkSU/sX3Bq+8DrTzWBS6AV+CTrsThQ9gbcBJcVI53MPcefNCVSPwDG9w/A1rkOPtmFGwC18SIfwdugIe+vNy6m3GLQW2JGgU+ZqrFkAYjYJcX819XUgJPeaIB0Mz8UXAavATfdCUS++yjE6wyL46B8+AzKIZpUT2JxG+wwvKWl5o29mMvGAKrFGmv8TvgLnjsy3eDO5RrSyQSYI4TaUX57xgH8oQJifRPHkyBe7x9aotu1yvvRn0SFC5P3KfkesAl8IV9VNWV/ALLbM05FoPXIjnZa/BRVyLxhydL++a6wyz5vCqKK3F4S96CJg7QZmWuG+cx18Sblsvl+37AXHeLM7hWS9SQpaDTVwwiGJYZwZSkLG+5nGIyXCYciksm3+NlkM6CZ0puHVw31RIv9sAai6Kdt6ts49tKkZ87ZFn4LokDAQYAbeSRmpwJrJkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAvCAYAAAAWymHTAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTM2QjRFRjkzNDFCMTFFN0JCMTJEMDNENjMzNTNDMDciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTM2QjRFRkEzNDFCMTFFN0JCMTJEMDNENjMzNTNDMDciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMzZCNEVGNzM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMzZCNEVGODM0MUIxMUU3QkIxMkQwM0Q2MzM1M0MwNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ppxui0QAAAIRSURBVHjatJjPK0RRFMff3EYW/gPJQiKRFRvsJholsVXsjIVYEFJYSER+hVHjx8KP/EgpP3byT9j5G9A0FsrUxPfUeXW7vZl57537bn1q5tyZPveed+55byaWSqUcHo3g3YlgKO31OBiJQhIHDWAUDIEJjp/blqyDAS12ZltE6Tr1iJ/ZTB1JnsFwlCL3wl9GKdKrKzKRMt5HIlIeMesiVSRuVaRKzFkTqTLzVkTKx2fEIuVzMSKRCpDa0CIVsFBCiVSIsg8sUiEPcSCRErQk3yKJxLdIKvElilu6+ZGoAK48RFXKsTeuwZ1H/DBuUVIP8kaMdrdtQ1IJkmABtBlzt7Z20gzWQJMW+wRp2gX4lko6wSKnSh8PYAP8SKsryc9s1VosCy7AniuQSGjlU4aAxgmYlbaVCjDID4TdxhydkeNiz8JBRgNXUaMWy4EdsMIlG7oL02J6ONetxtwjV1Kh1Jf9jA5ORa0W++ALn+aSdSQSSs0cqDHiN2DebxpKjX5eqS74ZcEBiIE/iYTKdMYQ5PmQLUkf7qgX9fGh6jLm7ouVadCdUPVsGmVKFzkDdsGXVNIOlkGdRy9a4evhSCS93BaqjYNGN6OtsAJdQiuf9uhFGS5f8c+5MU5HwuMcHNn6HU+nucVo1/tgVZIicyeT4E2LPXEVWRG4O8lxql7BC+8ia/tvD/eenCjX6MKOfwEGAMPTdzi20aKsAAAAAElFTkSuQmCC\"","module.exports = \"data:image/gif;base64,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\"","/* eslint-disable */\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\r\nif (!Array.prototype.includes) {\r\n Object.defineProperty(Array.prototype, 'includes', {\r\n value: function(searchElement, fromIndex) {\r\n\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If len is 0, return false.\r\n if (len === 0) {\r\n return false;\r\n }\r\n\r\n // 4. Let n be ? ToInteger(fromIndex).\r\n // (If fromIndex is undefined, this step produces the value 0.)\r\n var n = fromIndex | 0;\r\n\r\n // 5. If n ≥ 0, then\r\n // a. Let k be n.\r\n // 6. Else n < 0,\r\n // a. Let k be len + n.\r\n // b. If k < 0, let k be 0.\r\n var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\r\n\r\n function sameValueZero(x, y) {\r\n return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));\r\n }\r\n\r\n // 7. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let elementK be the result of ? Get(O, ! ToString(k)).\r\n // b. If SameValueZero(searchElement, elementK) is true, return true.\r\n // c. Increase k by 1. \r\n if (sameValueZero(o[k], searchElement)) {\r\n return true;\r\n }\r\n k++;\r\n }\r\n\r\n // 8. Return false\r\n return false;\r\n }\r\n });\r\n}\r\n\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function(search, start) {\r\n 'use strict';\r\n if (typeof start !== 'number') {\r\n start = 0;\r\n }\r\n \r\n if (start + search.length > this.length) {\r\n return false;\r\n } else {\r\n return this.indexOf(search, start) !== -1;\r\n }\r\n };\r\n}","export default window._OI_CONFIG_;","/* global localStorage */\r\n\r\nconst hasLocalStorage = (function() {\r\n\tlet storage, result, uid = new Date();\r\n\ttry {\r\n\t\t(storage = localStorage).setItem(uid, uid);\r\n\t\tresult = storage.getItem(uid) == uid; //eslint-disable-line eqeqeq\r\n\t\tstorage.removeItem(uid);\r\n\t\treturn result && storage;\r\n\t} catch (exception) {}\r\n}());\r\n\r\n\r\nexport function readState() {\r\n return (hasLocalStorage && localStorage.getItem('reduxState')) ?\r\n { customize: JSON.parse(localStorage.getItem('reduxState')) } :\r\n {}\r\n}\r\n\r\nexport function storeState(state) {\r\n if (!hasLocalStorage) return;\r\n let s = {...state.customize};\r\n delete s.selectedView;\r\n delete s.hydrated;\r\n // TODO: It would be nice to store only the instance here, but initial render fails without a putter\r\n localStorage.setItem('reduxState', JSON.stringify(s))\r\n}","import { createAction } from 'redux-actions'\r\n\r\nconst BLOCK_NAV = 'sc/app/BLOCK_NAV';\r\n\r\nconst initialState = {\r\n blockedNavigation: false\r\n}\r\n\r\nexport default function reducer(state = initialState, action = {}) {\r\n switch (action.type) {\r\n case BLOCK_NAV:\r\n return {\r\n ...state,\r\n blockedNavigation: action.payload\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const blockNavigation = createAction(BLOCK_NAV, () => true);\r\nexport const unblockNavigation = createAction(BLOCK_NAV, () => false);","import axios from 'axios'\r\n\r\nexport function getPutterModels() {\r\n return axios\r\n .get(process.env.PUBLIC_URL + '/api/legacy/allproducts')\r\n .then((response) => response.data)\r\n ;\r\n}\r\n\r\nexport function getOptions(id) {\r\n return axios\r\n .get(process.env.PUBLIC_URL + `/api/legacy/product/${id}`)\r\n .then((response) => response.data)\r\n ;\r\n}\r\n\r\nexport function getCustomInstance(id) {\r\n return axios\r\n // .get(`/custom-shop/handlers/options.ashx?type=putter_template&modelId=${id}`)\r\n .get(process.env.PUBLIC_URL + `/api/legacy/instance/${id}`)\r\n .then((response) => response.data)\r\n ;\r\n}\r\nexport function getOrderInstance(lineItemId) {\r\n return axios\r\n .get(process.env.PUBLIC_URL + `/api/legacy/orderinstance/${lineItemId}`)\r\n .then((response) => response.data)\r\n ;\r\n}\r\n\r\nexport function addToCart(APIInstance){\r\n\treturn axios\r\n\t.get('/store/user/getcookiemappingid/')\r\n\t.then((response) => axios\r\n .post(process.env.PUBLIC_URL + '/api/legacy/submit', APIInstance)\r\n .then((response) => response.data))\r\n ; \r\n}\r\n\r\nexport function addToSaved(APIInstance){\r\n return axios\r\n .post(process.env.PUBLIC_URL + '/api/legacy/addtosaved', APIInstance)\r\n .then((response) => response.data)\r\n ; \r\n}\r\n\r\nexport function checkInitialsValid(initials, vm, callback){\r\n return axios\r\n .post(process.env.PUBLIC_URL + '/api/legacy/ValidateText', initials, \r\n {\r\n headers: { \r\n 'Content-Type' : 'application/json' \r\n }\r\n })\r\n .then(function(response) { \r\n\tlet test1 = response.data;\r\n\tlet test2 = test1;\r\n\tcallback(vm, response.data);\r\n\t})\r\n ; \r\n}","import _ from 'lodash'\r\n\r\nexport const initialState = {\r\n filter: '',\r\n category: 'all',\r\n putters: [],\r\n loading: true,\r\n}\r\n\r\nexport const setPutterFilterText = (state, filter) =>{\r\n return Object.assign({}, state, {filter});\r\n}\r\n\r\nexport const setPutterFilterCategory = (state, category) =>{\r\n return Object.assign({}, state, {category});\r\n}\r\n\r\nexport const setPutters = (state, putters) => {\r\n return Object.assign({}, state, { putters, filter: '', category: 'all' });\r\n}\r\n\r\nfunction getMatches(keywords, label) {\r\n return _(keywords)\r\n .map((q) => {\r\n let m, a = [], re = new RegExp(q.replace(/\\./g, '\\\\.'), 'gi');\r\n while (m = re.exec(label)) { // eslint-disable-line no-cond-assign\r\n a.push({ start: m.index, length: q.length, q });\r\n }\r\n return a;\r\n })\r\n .flatten()\r\n .filter()\r\n .value();\r\n}\r\n\r\n// Label only matches if every word in the query produces at least one match\r\n// Can't just check matches.length, because one word might match multiple times\r\nfunction doesLabelMatch(keywords, label) {\r\n const m = getMatches(keywords, label);\r\n return _.reduce(keywords, (v, q) => v && _.find(m, { q }), true)\r\n}\r\n\r\nexport const getFilteredPutters = (state) => {\r\n const query = (state.filter || '').trim()\r\n let filteredPutters, returnPutters;\r\n if (!query) {\r\n filteredPutters = _(state.putters)\r\n .map((putter) => {\r\n return {\r\n ...putter,\r\n matches: [],\r\n keywords: [],\r\n }\r\n })\r\n .value();\r\n } else {\r\n let keywords = query.split(' ');\r\n _(state.putters).filter((putter) => (putter.template_id && putter.template_id < 1));\r\n filteredPutters = _(state.putters)\r\n .filter((putter) => (\r\n doesLabelMatch(keywords, putter.label)))\r\n .map((putter) => {\r\n return {\r\n ...putter,\r\n matches: getMatches(keywords, putter.label),\r\n keywords: keywords\r\n }\r\n })\r\n .value();\r\n }\r\n\r\n // TODO: This may be better to pull out into a new action, instead of this.\r\n // Since this buy category no longer uses the text filter.\r\n\r\n // Check category for filtering\r\n // This is the \"buy_a_putter\" option\r\n switch (state.category) { \r\n case 'buy':\r\n // 1 = Buy, , buy_a_putter:true\r\n // Don't use the search filter here, so filter from all putters\r\n filteredPutters = _(state.putters)\r\n .map((putter) => {\r\n return {\r\n ...putter,\r\n matches: [],\r\n keywords: [],\r\n }\r\n })\r\n .value();\r\n returnPutters = _.filter(filteredPutters, { 'buy_a_putter': true });\r\n break;\r\n case 'all': \r\n default:\r\n // 0 is View All\r\n // Do nothing and break\r\n returnPutters = _.filter(filteredPutters, { 'buy_a_putter': false });\r\n break;\r\n }\r\n\r\n return returnPutters;\r\n}\r\n\r\n\r\nexport const test = {\r\n getMatches,\r\n doesLabelMatch \r\n}","import { isArray, camelCase, upperFirst } from 'lodash'\r\n\r\nfunction objectCaseFactory(caseFunction){ \r\n var objectFunction = (o) =>{ \r\n return (typeof o !== 'object' || o === null) ? o :\r\n (isArray(o)) ? o.map(objectFunction) :\r\n Object.keys(o).reduce((prev, current) => {\r\n const ccKey = caseFunction(current);\r\n if (Array.isArray(o[current])) {\r\n prev[ccKey] = o[current].map(el => objectFunction(el));\r\n } else if (typeof o[current] === 'object') {\r\n prev[ccKey] = objectFunction(o[current]);\r\n } else {\r\n prev[ccKey] = o[current];\r\n }\r\n return prev;\r\n }, {});\r\n }\r\n return objectFunction;\r\n}\r\n\r\nexport function objectKeysToCamelCase(o) {\r\n return objectCaseFactory(camelCase)(o);\r\n}\r\nexport function objectKeysToPascalCase(o) {\r\n return objectCaseFactory(upperFirst)(\r\n objectCaseFactory(camelCase)(o)\r\n );\r\n}","import _ from 'lodash'\r\nimport config from 'util/config.js'\r\nimport { getSelected, getPutterDesignation, getTranslucentPaintRules } from 'state/customize/selectors'\r\n\r\nexport default function getImageUrl(state, view) {\r\n if (!state || !state.putter) {return '';}\r\n\r\n let url = '';\r\n switch (view) {\r\n case 'FS':\r\n url = state.putter.faceSoleImage;\r\n break;\r\n case 'BC':\r\n url = state.putter.backCavityImage;\r\n break;\r\n case 'PP':\r\n url = state.putter.playerProfileImage;\r\n break;\r\n default:\r\n return '';\r\n }\r\n if (!url) { return ''; }\r\n\r\n const getParamsForState = _.partial(getParametersForProperty, state, view);\r\n const params = Object.keys(state.instance).map(getParamsForState).filter(_.identity).join('&');\r\n\r\n var sep = (url.indexOf(\"?\") < 0) ? '?' : '&';\r\n return url + sep + params;\r\n}\r\n\r\nfunction objToParams(obj) {\r\n return _.toPairs(obj)\r\n .map(([k, v]) => k + '=' + v)\r\n .join('&');\r\n}\r\n\r\nfunction getParametersForProperty(state, view, key) {\r\n switch (key) {\r\n case 'finish':\r\n return finish(state);\r\n\r\n case 'initials':\r\n return initials(state);\r\n\r\n case 'paintFillLocations':\r\n return paintFillLocations(state)\r\n\r\n case 'flangeLine':\r\n case 'sightDot':\r\n case 'topLine':\r\n return lines(state, view, key);\r\n\r\n case 'stampSelections':\r\n return stamps(state, view);\r\n\r\n case 'topWeight':\r\n case 'weight':\r\n return weights(state, key)\r\n\r\n case 'topWeightEngraving':\r\n case 'weightEngraving':\r\n case 'weightEngravingHeel':\r\n case 'weightEngravingToe':\r\n case 'weightEngravingTopHeel':\r\n case 'weightEngravingTopToe':\r\n return ''; //handled by weights\r\n\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nfunction finish(state) { \r\n const finish = getSelected(state, 'finish');\r\n if (!finish) { return ''; }\r\n return '$bodyColor=' + finish.colorCode; \r\n}\r\n\r\nfunction initials(state) {\r\n const textTypeKeys = {\r\n InitialsFace: {\r\n type: '$faceTextType',\r\n char: '$faceText',\r\n period: '$faceTextP',\r\n archChar: '$archText',\r\n archPeriod: '$archTextP',\r\n color: '$faceTextColor',\r\n },\r\n InitialsBumperHeel: {\r\n type: '$heelTextType',\r\n char: '$heelText',\r\n period: '$heelTextP',\r\n archChar: '$heelArchText',\r\n archPeriod: '$heelArchTextP',\r\n color: '$heelTextColor',\r\n },\r\n InitialsBumperToe: {\r\n type: '$toeTextType',\r\n char: '$toeText',\r\n period: '$toeTextP',\r\n archChar: '$toeArchText',\r\n archPeriod: '$toeArchTextP',\r\n color: '$toeTextColor',\r\n }\r\n };\r\n\r\n const initials = getSelected(state, 'initials');\r\n\r\n if(_.isEmpty(initials))\r\n return '';\r\n\r\n // Build an array of objects, one object for each initials field Face/Heel/Toe with characters.\r\n const params = _.toPairs(initials).map(([initialsField, initialsSelections]) => {\r\n if (!initialsSelections.characters.length) return {};\r\n const initialsLoc = _.find(state.putter.initialsLocation, { label: initialsField });\r\n const maxLen = initialsLoc.maxCharacters || 0;\r\n\r\n const keyDict = textTypeKeys[initialsField];\r\n const styleType = (initialsSelections.personalizationStyle && initialsSelections.personalizationStyle.parameterKey) || 'straight';\r\n\r\n // Key names are unique on arched text selections\r\n const charKey = styleType !== 'arched' ? keyDict.char : keyDict.archChar;\r\n const periodKey = styleType !== 'arched' ? keyDict.period : keyDict.archPeriod;\r\n\r\n // \"center\" text within textfield character placeholders (#18399)\r\n // most textfields tend 'left' if input parity doesn't match field parity.\r\n // heels tend right to offset bumper text toward center \r\n const roundFunc = (keyDict.type.indexOf(\"heel\") > -1 ? Math.ceil : Math.floor);\r\n const offset = maxLen === 0 ? 0 : roundFunc((maxLen - initialsSelections.characters.length)/2);\r\n\r\n // array of individual characters and optional periods' param objects\r\n const chars = initialsSelections.characters.split('').map((c, i) => {\r\n return Object.assign(\r\n { [charKey + (offset + i + 1)]: encodeURIComponent(c) },\r\n (initialsSelections.separateWithPeriods) ? { [periodKey + (offset + i + 1)]: '.' } : {}\r\n );\r\n });\r\n\r\n return Object.assign(\r\n { [keyDict.type]: styleType }, //fieldName : straight|dancing|arched\r\n ...chars\r\n );\r\n })\r\n\r\n return objToParams(Object.assign(...params));\r\n}\r\n\r\nfunction makeOpaqueKeyName(paintKey){\r\n return (paintKey.indexOf('Color') > -1) ?\r\n paintKey.replace('Color', 'Opaque'):\r\n paintKey + 'Opaque'; \r\n}\r\n\r\nfunction getColorCode(state, finish, location, color){\r\n //for weights with the 'raw' color, use the weight colorCode\r\n if(location && location.paintFillKey.toLowerCase().indexOf('weight') > -1 && color.isRaw)\r\n {\r\n if(location.paintFillKey.toLowerCase().indexOf('top') > -1)\r\n {\r\n const topWeight = getSelected(state, 'topWeight');\r\n if(topWeight)\r\n return topWeight.colorCode;\r\n }\r\n else\r\n {\r\n const weight = getSelected(state, 'weight');\r\n if(weight)\r\n return weight.colorCode;\r\n }\r\n }\r\n\r\n const translucentPaintRules = getTranslucentPaintRules(state, finish, location.parameterKey)\r\n\r\n return (translucentPaintRules.useBlackFinishColorCodes) ? //(finish && finish.useBlackFinishColorCodes \r\n //&& location && location.paintFillKey.indexOf('weight') == -1\r\n //&& translucentPaintRules.allowTranslucent) ? //&& color && color.isTranslucent) ?\r\n color.colorCodeBlackFinish :\r\n color.colorCode; \r\n}\r\n\r\nfunction paintFillLocations(state) {\r\n const allLocs = state.putter.paintFillLocation;\r\n const selected = getSelected(state, 'paintFillLocations');\r\n\r\n const paintfill = getSelected(state, 'paintFill')\r\n const unselected = (!paintfill || paintfill.id === 6) ? \r\n allLocs.filter(l => !_.find(selected, s => s.location.parameterKey === l.parameterKey)) :\r\n [];\r\n\r\n const finish = getSelected(state, 'finish'); \r\n const params = selected.map(({color, location}) => (\r\n { \r\n ['$' + location.parameterKey]: getColorCode(state, finish, location, color) ,\r\n ['$' + makeOpaqueKeyName(location.parameterKey)]: (color.isTranslucent) ? 0 : 1\r\n }\r\n )).concat(\r\n unselected.map(s =>({\r\n ['$' + s.parameterKey]: \"D6D6D6\",\r\n ['$' + makeOpaqueKeyName(s.parameterKey)]: 1 \r\n }\r\n )) \r\n )\r\n\r\n return params.length ? objToParams(Object.assign(...params)) : '';\r\n}\r\n\r\nfunction stamps(state, view) {\r\n const selected = getSelected(state, 'stampSelections');\r\n if (!selected.length) { return '' };\r\n\r\n const paints = getSelected(state, 'paintFillLocations');\r\n const params = selected.map(({ stamp, location }) =>{\r\n if (stamp){ \r\n const paintLoc = _.find(paints, (p) => p.location.parameterKey === location.paintFillKey);\r\n const isTranslucent = (paintLoc && paintLoc.color) ? paintLoc.color.isTranslucent : null;\r\n\t let stampImage = stamp.image;\r\n\t \r\n\t //use face image for toeStamp if it's set\r\n\t if(location.parameterKey == \"toeStamp\" && stamp.faceToeImage !== undefined && stamp.faceToeImage.length > 0) {\r\n\t\tstampImage = stamp.faceToeImage;\r\n\t }\r\n\t \r\n const img = (isTranslucent) ? stampImage + '_tr' : stampImage;\r\n if(paintLoc && paintLoc.color && location.isStampOnPaintFill)\r\n {\r\n return { \r\n ['$' + location.parameterKey]: img, \r\n ['$' + location.parameterKey + 'StampImageParams'] : getAdditionalEngravingParams(paintLoc.color, 'img'),\r\n ['$' + location.parameterKey + 'StampDecalParams'] : getAdditionalEngravingParams(paintLoc.color, 'decal').replace('__COLOR__', location.paintFillKey),\r\n }\r\n }\r\n else\r\n {\r\n return { ['$' + location.parameterKey]: img }\r\n }\r\n }\r\n return {}\r\n });\r\n return objToParams(Object.assign(...params));\r\n}\r\n\r\n\r\n// These are the old hardcoded exceptions for putters that don't meet the naming convention \r\nlet lineOverrides = {\r\n '2014_futurax5': {\r\n 'BC': {\r\n 'top_line': '2014_futurax5_BC3_top_line',\r\n 'sight_dot': '2014_futurax5_BC3_sight_dot',\r\n },\r\n 'PP':{\r\n 'top_line': '2014_futurax5_pp_2_top_line',\r\n 'sight_dot': '2014_futurax5_pp_2_sight_dot',\r\n },\r\n },\r\n '2015_Golo_5': {\r\n 'BC': {\r\n 'top_line': '2015_Golo_5_BP_top_line',\r\n 'sight_dot': '2015_Golo_5_BP_sight_dot',\r\n },\r\n 'PP':{\r\n 'top_line': '2015_Golo_5_PP_top_line',\r\n 'sight_dot': '2015_Golo_5_PP_sight_dot',\r\n } \r\n },\r\n '2012_Circa_62_No3': {\r\n 'BC': {\r\n 'top_line': '2012_Circa_62_No3_BC_sight_dot',\r\n },\r\n 'PP':{\r\n 'top_line': '2012_Circa_62_No3_PP_sight_dot',\r\n } \r\n } \r\n}\r\nfunction getLineImage(putterDesignation, view, lineType){\r\n return _.get(lineOverrides,`${putterDesignation}.${view}.${lineType}`) || `${putterDesignation}_${view}_${lineType}`;\r\n}\r\n\r\n\r\nfunction lines(state, view, fieldKey){ \r\n // selected params\r\n const lines = getSelected(state, fieldKey); \r\n let paramKeys = (lines && lines.parameterKeys.split(',')) || [];\r\n const putterDesignation = getPutterDesignation(state);\r\n\r\n // existing params on stock putter\r\n if (fieldKey !== 'sightDot' &&\r\n //exceptions with baked-in perpendicular lines that don't want new line images overlaid\r\n ['2014_futurax5','2015_Golo_5','2016_Futura_X7','2016_Futura_X7M',\r\n '2016_Futura_X7M_Dualbalance','2016_Futura_5CB','2016_Futura_5MB',\r\n '2016_Futura_5S','2016_Futura_5W','2016_Futura_6M','2016_Futura_6M_DualBalance',\r\n '2016_Futura_7M'].indexOf(putterDesignation) === -1\r\n ){\r\n const paramsKey = ((fieldKey === 'topLine') ? 'existingTopLineParameters' : 'existingFlangeLineParameters');\r\n const existingParams = state.putter[paramsKey];\r\n if (existingParams.length > 0) {\r\n paramKeys = [...paramKeys, ...existingParams];\r\n }\r\n }\r\n if (paramKeys.length === 0){return;}\r\n\r\n const paints = getSelected(state, 'paintFillLocations');\r\n\r\n const lineType = _.snakeCase(fieldKey);\r\n const value = getLineImage(putterDesignation, view, lineType);\r\n\r\n const params = paramKeys.map((k) =>{ \r\n const paintFillKey = k + 'Color'\r\n const paintLoc = _.find(paints, (p) => p.location.parameterKey === paintFillKey);\r\n const isTranslucent = (paintLoc && paintLoc.color && paintLoc.color.isTranslucent) \r\n const suffix = isTranslucent ? '_tr' : '';\r\n\r\n return { ['$' + k] : value + suffix } \r\n })\r\n\r\n return objToParams(Object.assign(...params));\r\n}\r\n\r\n\r\n\r\n // if(sandbox.putterOptions.get('putterModel') === 5) {\r\n // faceSoleOptions.$weightFrontDefault = '2012_Studio_Select_Fastback_FS_front_weight';\r\n // faceSoleOptions.$weightRearDefault = '2012_Studio_Select_Fastback_FS_rear_weight'; \r\n // } \r\n\r\nfunction getAdditionalEngravingParams(paintfill, type){\r\n const pre = (paintfill.isTranslucent) ? 'translucent' : 'opaque';\r\n const key = (type === 'img') ? 'PaintEngravingImgParams' : 'PaintEngravingDecalParams';\r\n return encodeURIComponent(config[pre + key]); \r\n}\r\n\r\nfunction weights(state, fieldKey) { \r\n const isTop = (fieldKey === 'topWeight');\r\n const keys = {\r\n weight: isTop ? 'topWeight' : 'weight',\r\n weightEngraving: isTop ? 'topWeightEngraving' : 'weightEngraving',\r\n weightEngravingHeel: isTop ? 'weightEngravingTopHeel' : 'weightEngravingHeel',\r\n weightEngravingToe: isTop ? 'weightEngravingTopToe' : 'weightEngravingToe',\r\n weightRearColor : isTop ? 'topWeightRearColor' : 'weightRearColor',\r\n weightFrontColor : isTop ? 'topWeightFrontColor' : 'weightFrontColor',\r\n\r\n $weightFrontNumRim: isTop ? '$topWeightFrontNumRim' : '$weightFrontNumRim',\r\n $weightRearNumRim: isTop ? '$topWeightRearNumRim' : '$weightRearNumRim',\r\n $weightRearStamp: isTop ? '$topWeightRearStamp' : '$weightRearStamp',\r\n $weightFrontStamp: isTop ? '$topWeightFrontStamp' : '$weightFrontStamp',\r\n $weightRimColor: isTop ? '$topWeightRimColor' : '$weightRimColor', \r\n\r\n $weightFrontStampImageParams : isTop ? '$topWeightFrontStampImageParams' : '$weightFrontStampImageParams',\r\n $weightFrontStampDecalParams : isTop ? '$topWeightFrontStampDecalParams' : '$weightFrontStampDecalParams', \r\n $weightFrontOpaque: isTop ? '$topWeightFrontOpaque' : '$weightFrontOpaque', \r\n $weightRearStampImageParams : isTop ? '$topWeightRearStampImageParams' : '$weightRearStampImageParams',\r\n $weightRearStampDecalParams : isTop ? '$topWeightRearStampDecalParams' : '$weightRearStampDecalParams',\r\n $weightRearOpaque: isTop ? '$topWeightRearOpaque' : '$weightRearOpaque', \r\n }\r\n\r\n const weightSelection = getSelected(state, keys.weight); \r\n const hasWeightEngraving = getSelected(state, keys.weightEngraving);\r\n const heelWeightEngraving = getSelected(state, keys.weightEngravingHeel)\r\n const toeWeightEngraving = getSelected(state, keys.weightEngravingToe)\r\n\r\n let params = {\r\n [keys.$weightFrontNumRim]: hasWeightEngraving && weightSelection ? weightSelection.image : 'transparent',\r\n [keys.$weightRearNumRim]: hasWeightEngraving && weightSelection ? weightSelection.image : 'transparent',\r\n };\r\n\r\n if (hasWeightEngraving) { \r\n params[keys.$weightRearStamp] = (heelWeightEngraving && heelWeightEngraving.image) || 'transparent';\r\n params[keys.$weightFrontStamp] = (toeWeightEngraving && toeWeightEngraving.image) || 'transparent'; \r\n } else if (weightSelection){ \r\n params[keys.$weightRearStamp] = weightSelection.image;\r\n params[keys.$weightFrontStamp] = weightSelection.image;\r\n }\r\n\r\n const paints = getSelected(state, 'paintFillLocations');\r\n const rearPaintLoc = _.find(paints, (p) => p.location.parameterKey === keys.weightRearColor);\r\n const rearPaintFill = (rearPaintLoc && rearPaintLoc.color) || null;\r\n if (rearPaintFill){ \r\n params[keys.$weightRearStampImageParams] = getAdditionalEngravingParams(rearPaintFill, 'img');\r\n params[keys.$weightRearStampDecalParams] = getAdditionalEngravingParams(rearPaintFill, 'decal').replace('__COLOR__', keys.weightRearColor);\r\n params[keys.$weightRearOpaque] = rearPaintFill.isTranslucent ? '0' : '1';\r\n }\r\n\r\n const frontPaintLoc = _.find(paints, (p) => p.location.parameterKey === keys.weightFrontColor);\r\n const frontPaintFill = (frontPaintLoc && frontPaintLoc.color) || null;\r\n if (frontPaintFill){ \r\n params[keys.$weightFrontStampImageParams] = getAdditionalEngravingParams(frontPaintFill, 'img');\r\n params[keys.$weightFrontStampDecalParams] = getAdditionalEngravingParams(frontPaintFill, 'decal').replace('__COLOR__', keys.weightFrontColor);\r\n params[keys.$weightFrontOpaque] = frontPaintFill.isTranslucent ? '0' : '1';\r\n }\r\n\r\n\r\n // This is the copper rim color; not the paintfill color. Those are painted as paintfillLocations.\r\n const weightColor = (weightSelection && weightSelection.colorCode) || null; \r\n if (weightColor) { \r\n params[keys.$weightRimColor] = weightColor;\r\n }\r\n return objToParams(params);\r\n}\r\n","import { find } from 'lodash'\r\nimport { getSelected } from 'state/customize/selectors'\r\n\r\nfunction getDiscountHints(state){\r\n const grip = getSelected(state, 'grip');\r\n const headCover = getSelected(state, 'headCover');\r\n const buyAPutter = getSelected(state, 'buyAPutter');\r\n const restoration = getSelected(state, 'restorationType');\r\n const reshaft = getSelected(state, 'reshaft'); \r\n\r\n return {\r\n hasPremium : grip && grip.isPremium && headCover && headCover.isPremium,\r\n restoration: !!restoration,\r\n reshaft: reshaft && !reshaft.keepShaft,\r\n buyAPutter: !!buyAPutter\r\n } \r\n}\r\n\r\nexport function getPartPrice(state, part, discountHints, overrideSelection){ \r\n const selection = overrideSelection || getSelected(state, part); \r\n if (!discountHints) { \r\n discountHints = getDiscountHints(state) \r\n }\r\n\r\n switch(part){ \r\n case 'paintFill': \r\n return (selection && !discountHints.restoration && !discountHints.buyAPutter) ?\r\n selection.price || 0 :\r\n 0;\r\n case 'reshaft':\r\n case 'headCover':\r\n return (discountHints.restoration) ?\r\n (selection && selection.discountPrice) || 0 :\r\n (selection && selection.price) || 0;\r\n case 'authentication':\r\n return (discountHints.restoration) ?\r\n (selection && selection.discountPrice) || 0 :\r\n (selection && selection.price) || 0;\r\n case 'grip':\r\n return (discountHints.reshaft || discountHints.restoration) ?\r\n (selection && selection.discountPrice) || 0 :\r\n (selection && selection.price) || 0;\r\n default: \r\n return (selection && selection.price) || 0;\r\n }\r\n}\r\n\r\nexport default function getPrice(state) {\r\n let total = 0;\r\n\r\n const discountHints = getDiscountHints(state) \r\n\r\n // Add restoration and finish prices\r\n total += getPartPrice(state, 'restorationType', discountHints);\r\n total += getPartPrice(state, 'finish', discountHints);\r\n\r\n // Add initials prices - $$ for each location used\r\n const initials = getSelected(state, 'initials');\r\n Object.keys(initials).forEach(initialsField => {\r\n const selected = initials[initialsField];\r\n const locationInfo = find(state.putter.initialsLocation, { label: initialsField });\r\n\r\n if (selected.characters && selected.characters.length > 0) {\r\n total += ((parseFloat(locationInfo.price) || 0) + (selected.personalizationStyle.price || 0));\r\n }\r\n });\r\n\r\n // Add stamps prices - if Pro Platinum and customshop stamp, 1 freebie\r\n let usedFreeStamp = false;\r\n const isCustomShopStamp = function (stamp) { return stamp && stamp.id === 4; }\r\n const isProPlatinumFinish = function (finish) { return finish && !(finish.id === 2 || finish.id === 6); }\r\n\r\n const stamps = getSelected(state, 'stampSelections');\r\n stamps.filter(selection => selection.stamp).forEach(selection => {\r\n if (!usedFreeStamp && \r\n isCustomShopStamp(selection.stamp) && \r\n discountHints.restoration && isProPlatinumFinish(getSelected(state, 'finish'))) {\r\n usedFreeStamp = true;\r\n } else {\r\n total += parseFloat(selection.stamp.price) || 0;\r\n }\r\n });\r\n\r\n // Calculate top and flange line prices. If more than one line, use discount price. \r\n if (!discountHints.buyAPutter){ \r\n const topLine = getSelected(state, 'topLine');\r\n const sightDot = getSelected(state, 'sightDot');\r\n const flangeLine = getSelected(state, 'flangeLine');\r\n const numTopLines = (topLine && topLine.numberOfLines) || 0;\r\n const numSightDot = (sightDot && sightDot.numberOfLines) || 0;\r\n const numFlangeLines = (flangeLine && flangeLine.numberOfLines) || 0;\r\n const numLines = numTopLines + numSightDot + numFlangeLines;\r\n if (numLines > 0) {\r\n total += 30 + (20 * (numLines - 1));\r\n }\r\n }\r\n\r\n // If there isn't restoration or a premium accessory, charge for paintfill\r\n total += getPartPrice(state, 'paintFill', discountHints);\r\n\r\n // Add loft, lie, length prices. These are all currently zero. Logic is here in case that changes.\r\n total += getPartPrice(state, 'loft', discountHints);\r\n total += getPartPrice(state, 'lie', discountHints);\r\n total += getPartPrice(state, 'length', discountHints); \r\n\r\n // If there's restoration, discount the reshaft and authentication\r\n // Otherwise, charge full price\r\n total += getPartPrice(state, 'reshaft', discountHints);\r\n total += getPartPrice(state, 'authentication', discountHints); \r\n\r\n // Accessories\r\n total += getPartPrice(state, 'grip', discountHints);\r\n total += getPartPrice(state, 'shaftBand', discountHints); \r\n total += getPartPrice(state, 'headCover', discountHints); \r\n total += getPartPrice(state, 'buyAPutter', discountHints); \r\n\r\n // Add prices for weight options\r\n total += getPartPrice(state, 'weight', discountHints); \r\n total += getPartPrice(state, 'weightEngraving', discountHints); \r\n total += getPartPrice(state, 'topWeight', discountHints); \r\n total += getPartPrice(state, 'topWeightEngraving', discountHints); \r\n\r\n // Add prices for the gotta-have-it accessories (possibly more than 1)\r\n getSelected(state, 'accessories').forEach(a => {\r\n total += a.price || 0;\r\n });\r\n\r\n return total;\r\n}\r\n","\r\nexport const validObj = { valid:true, errors:[] };\r\n\r\nfunction getErrors(valid, vm){\r\n vm.valid = valid;\r\n return (valid) ? [] : [vm] ;\r\n}\r\n\r\nexport function combineValidation(...args){\r\n return args.reduce(\r\n (ret, obj) => ({\r\n valid: ret.valid && obj.valid,\r\n errors: [...ret.errors, ...obj.errors]\r\n }), validObj);\r\n}\r\n\r\nexport function finish(state, finishVM){\r\n let valid = !!(finishVM.selected && finishVM.selected.id);\r\n const errors = getErrors(valid, finishVM);\r\n return { valid, errors }\r\n}\r\n\r\nexport function line(state, lineVM, otherLineVM, isConfirm){\r\n const otherVMActive = !!otherLineVM && !!otherLineVM.selected;\r\n const valid = !(lineVM.options.length > 0) || !!lineVM.selected || otherVMActive;\r\n const errors = getErrors(valid, lineVM);\r\n const paintable = lineVM.selected && lineVM.selected.parameterKeys;\r\n return combineValidation(\r\n { valid, errors } ,\r\n ...lineVM.paints.map(paintVM => ((paintable && isConfirm && paint(state, paintVM)) || validObj ) )\r\n )\r\n}\r\n\r\nexport function paint(state, paintVM, enabled = true){\r\n let valid = !enabled || !!(paintVM.selected && paintVM.selected.id && \r\n paintVM.paints.filter(paint => paint.id === paintVM.selected.id).length > 0\r\n );\r\n const errors = getErrors(valid, paintVM)\r\n return { valid, errors }\r\n}\r\n\r\nexport function stamp(state, stampVM, isConfirm) {\r\n const enabled = stampVM.selected && stampVM.selected.enabled;\r\n const valid = !enabled || (enabled && !!stampVM.selected.stampId);\r\n const errors = getErrors(valid, stampVM);\r\n return combineValidation(\r\n { valid, errors },\r\n (enabled && isConfirm && paint(state, stampVM.paint)) || validObj\r\n )\r\n}\r\n\r\nexport function initials(state, initialsVM, isConfirm) {\r\n const enabled = initialsVM.selected.enabled;\r\n const valid = !enabled || (\r\n enabled &&\r\n !!initialsVM.selected.characters.length &&\r\n !!initialsVM.selected.personalizationStyleId);\r\n const errors = getErrors(valid, initialsVM);\r\n return combineValidation(\r\n { valid, errors },\r\n (enabled && isConfirm && paint(state, initialsVM.paint)) || validObj\r\n );\r\n}\r\n\r\nexport function engraving(state, engravingVM){\r\n const valid = !engravingVM.selected || !!engravingVM.selected.id \r\n const errors = getErrors(valid, engravingVM);\r\n return { valid, errors }\r\n} \r\nexport function weightFront(state, weightVM){\r\n const e = weightVM.frontEngraving\r\n const p = weightVM.frontPaint\r\n return combineValidation(engraving(state, e), paint(stamp, p))\r\n}\r\nexport function weightRear(state, weightVM){\r\n const e = weightVM.rearEngraving\r\n const p = weightVM.rearPaint\r\n return combineValidation(engraving(state, e), paint(stamp, p))\r\n} \r\nexport function weight(state, weightVM){\r\n const enabled = !!weightVM.selectedEngraving;\r\n const valid = enabled ? !!(weightVM.selected && weightVM.selected.id) : true; \r\n const errors = getErrors(valid, weightVM);\r\n return combineValidation(\r\n { valid, errors },\r\n (enabled && weightFront(state, weightVM)) || validObj,\r\n (enabled && weightRear(state, weightVM)) || validObj\r\n );\r\n}\r\n\r\nexport function reshaft(state, specsVM){\r\n let valid = true;\r\n if( \r\n !buyAPutter &&\r\n ( (specsVM.length.selected && specsVM.length.selected.reshaftRequired) \r\n || (specsVM.loft.selected && specsVM.loft.selected.reshaftRequired) \r\n || (specsVM.lie.selected && specsVM.lie.selected.reshaftRequired)\r\n || !!specsVM.restoration \r\n )\r\n )\r\n {\r\n valid = !!(specsVM.reshaft.selected && !specsVM.reshaft.selected.keepShaft);\r\n }\r\n const errors = getErrors(valid, specsVM.reshaft);\r\n return { valid, errors }\r\n}\r\n\r\nexport function lie(state, specsVM){ \r\n let valid = specsVM.lie.selected;\r\n const errors = getErrors(valid, specsVM.lie);\r\n return { valid, errors }\r\n}\r\n\r\nexport function loft(state, specsVM){ \r\n let valid = specsVM.loft.selected;\r\n const errors = getErrors(valid, specsVM.loft);\r\n return { valid, errors }\r\n}\r\n\r\n\r\nexport function length(state, specsVM){\r\n let valid = specsVM.length.selected;//true;\r\n if(specsVM.length.selected && specsVM.length.selected.userSelection)\r\n {\r\n valid = !!(specsVM.desiredLength.selected);\r\n }\r\n \r\n const errors = getErrors(valid, specsVM.length);\r\n return { valid, errors }\r\n}\r\n\r\n\r\nexport function reshaftLength(state, specsVM){\r\n let valid = true;\r\n \r\n //desiredLength must be selected if reshaft is selected\r\n if(specsVM.desiredLengthRequired && (specsVM.length == null || specsVM.length.selected == null || specsVM.length.selected.label !== 'Desired Length')) \r\n {\r\n\t valid = false;\r\n }\r\n \t\r\n let reshaftLengthObj = {};\t\r\n const errors = getErrors(valid, reshaftLengthObj);\r\n return { valid, errors }\r\n}\r\n\r\nexport function grip(state, accessoriesVM){\r\n let valid = true;\r\n if(accessoriesVM.gripRequired) {\r\n //valid if grip not 'reuse' option\r\n valid = !!(accessoriesVM.grip.selected && accessoriesVM.grip.selected.id > 0 && accessoriesVM.grip.selected.sku !== 'REUSE');\r\n }\r\n const errors = getErrors(valid, accessoriesVM.grip)\r\n return { valid, errors }\r\n}\r\n\r\nexport function shaftBand(state, accessoriesVM){\r\n let valid = true;\r\n if (!!accessoriesVM.restoration || !!accessoriesVM.buyAPutter.selected)\r\n {\r\n valid = !!(accessoriesVM.shaftBand.selected && accessoriesVM.shaftBand.selected.id >0);\r\n }\r\n const errors = getErrors(valid, accessoriesVM.shaftBand);\r\n return { valid, errors }\r\n}\r\n\r\nexport function headCover(state, accessoriesVM){\r\n let valid = true;\r\n if (!!accessoriesVM.restoration || !!accessoriesVM.buyAPutter.selected)\r\n {\r\n valid = !!(accessoriesVM.headCover.selected && accessoriesVM.headCover.selected.id >0);\r\n }\r\n const errors = getErrors(valid, accessoriesVM.headCover);\r\n return { valid, errors }\r\n}\r\n\r\nexport function buyAPutter(state, accessoriesVM){\r\n let valid = true;\r\n if (!!accessoriesVM.restoration)\r\n {\r\n valid = !!(accessoriesVM.buyAPutter.selected && accessoriesVM.buyAPutter.selected.id >0);\r\n }\r\n const errors = getErrors(valid, accessoriesVM.buyAPutter);\r\n return { valid, errors }\r\n}\r\n\r\nexport function authentication(state, authenticationVM){\r\n const valid = (authenticationVM.selected && authenticationVM.selected.id > 0);\r\n const errors = getErrors(valid, authenticationVM)\r\n return { valid, errors }\r\n}","import { find, toPairs } from 'lodash'\r\n\r\n/* Re-export submodule functions */\r\nexport { default as getImageUrl } from './getImageUrl'\r\nexport { default as getPrice } from './getPrice'\r\nexport * from './isValid'\r\n\r\nconst translucentPaintRules = {\r\n\tblack:{\r\n\t\tputterModels:{\r\n \"2012_Studio_Select_Fastback\":{\r\n\t\t\t\t\"dotHeelColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotCenterColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotToeColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t},\r\n \"2011_Studio_Select_Fastback\":{\r\n\t\t\t\t\"dotHeelColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotCenterColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotToeColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t},\r\n \"2011_Studio_Select_Fastback_15\":{\r\n\t\t\t\t\"dotHeelColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotCenterColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotToeColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t},\r\n \"2011_Studio_Select_Squareback_2\":{\r\n\t\t\t\t\"dotHeelColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotCenterColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n\t\t\t\t\"dotToeColor\": {allowTranslucent : true, useBlackFinishColorCodes: true, allowDefaultColor : false},\r\n },\r\n \"2018_Squareback\":{\r\n \"scLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"familyLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"modelLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"lineSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dotsSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot1Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot2Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot3Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Fastback\":{\r\n \"scLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"familyLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"modelLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"lineSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dotsSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Squareback_1.5\":{\r\n \"scLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"familyLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"modelLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"lineSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dotsSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot1Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot2Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot3Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Fastback_2\":{\r\n \"scLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"familyLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"modelLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"lineSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dotsSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Newport\":{\r\n \"dot1Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot2Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot3Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Select_Newport_2\":{\r\n \"dot1Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot2Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot3Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Select_Newport_2.5\":{\r\n \"dot1Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot2Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot3Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"2018_Select_Laguna\":{\r\n \"dot1Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot2Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n \"dot3Color\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n },\r\n \"Concept_X_Nuckle\":{\r\n \"crownLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n \"scLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n \"familyLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n \"modelLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n },\r\n \"Concept_X_Low_Slant\":{\r\n \"crownLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n \"scLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n \"familyLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n \"modelLogoSoleColor\": { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false}, \r\n }, \r\n '2019_PhantomX5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX5_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX6': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX6_STR': {\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX7': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX7_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX8': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX8_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX12': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n }, \r\n '2020_Phantom_X_12_5': {\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n }, \r\n '2022_JetSet_Newport_2': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogo2SoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \r\n '2020_Special_Newport': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Newport_2': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Newport_2.5': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Squareback_2': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Fastback_1.5': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Flowback_5': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Flowback_5.5': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_Special_Del_Mar': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }, \r\n '2020_SpecialSelect_Newport2_LH': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'cameronShaftLogo': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'heelTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'toeTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: false }\r\n }\r\n\r\n\t\t},\r\n\t\tpaintKeys:{\r\n\t\t\t\"weightFrontColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t\t\"weightRearColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t\t\"topWeightFrontColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t\t\"topWeightRearColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t\t\"dotHeelColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t\t\"dotCenterColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t\t\"dotToeColor\": {allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : false},\r\n\t\t},\r\n\t\tdefault:{\r\n\t\t\tallowTranslucent: false, \r\n useBlackFinishColorCodes: true,\r\n allowDefaultColor : false,\r\n\t\t}\r\n\t},\r\n\tdefault: {\r\n\t\tputterModels: {\r\n\t\t\t\"2017_Futura_55M\": {\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t\t\"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t\t\"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_5CB\": {\r\n\t\t\t\t\"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_5MB\": {\r\n\t\t\t\t\"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t\t\"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_5S\": {\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_5W\": {\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_6M\": {\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"archTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_6M_DualBalance\": {\r\n\t\t\t\t\"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"archTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"dualBalanceSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n\t\t\t},\r\n\t\t\t\"2016_Futura_7M\": {\r\n\t\t\t\t\"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"faceTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"archTextColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"topLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"crownLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n },\r\n \"2016_Futura_X7\": {\r\n \"scLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"titleistLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n },\r\n \"2016_Futura_X7M\": {\r\n \"titleistLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n },\r\n \"2016_Futura_X7M_Dualbalance\": {\r\n \"titleistLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"lineSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"dualBalanceSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n },\r\n \"2014_futurax5\": {\r\n \"titleistLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"scLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"scLogoFaceColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleNumColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"modelLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"familyLogoSoleColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"flangeLineHeelColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n \"flangeLineCenterColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n //\"flangeLineToeColor\": { allowTranslucent : false, useBlackFinishColorCodes: false, allowDefaultColor : true},\r\n }, \r\n '2019_PhantomX5':{\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX5_5': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX6': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX6_STR': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX7': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX7_5': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX8': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX8_5': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n '2019_PhantomX12': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n }, \r\n\t '2020_Phantom_X_12_5': {\r\n 'modelLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n\t\t'modelLogoSoleNum2Color': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'titleistLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n }, \t\t \r\n 'T22_Fastback_1_5' : {\r\n 'scLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n 'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: false },\r\n },\r\n\t '2021_PhantomX5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n 'modelLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n },\r\n '2021_PhantomX5_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n 'modelLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'modelLogoSoleNum2Color': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n },\r\n\t '2021_PhantomX11': {\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n 'modelLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'modelLogoSoleNum2Color': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n },\r\n\t '2021_PhantomX11_5': {\r\n 'scLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n 'modelLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'modelLogoSoleNum2Color': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX5_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX5S': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX7': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX7_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX9': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX9_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX11': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX11_5': {\r\n 'topSightDotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n 'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : true, useBlackFinishColorCodes: false, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n\t '2022_PhantomX12': {\r\n 'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true }, \r\n\t\t'modelLogoSoleNumColor': { allowTranslucent : false, useBlackFinishColorCodes: true, allowDefaultColor : true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \r\n '2022_JetSet_Newport_2': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogo2SoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n },\r\n '2022_JetSet_Newport_2_Plus': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogo2SoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \r\n '2022_JetSet_Newport': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogo2SoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \r\n '2022_JetSet_Newport_Plus': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'familyLogo2SoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'lineSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_5': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotTop1Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop2Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop3Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_55': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotTop1Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop2Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop3Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_5s': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_7': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'wingLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\t\r\n\t\t'dotTop1Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop2Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop3Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_75': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'wingLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\t\r\n\t\t'dotTop1Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop2Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotTop3Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_9': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\t\r\n\t\t}, \r\n '2024_Phantom_95': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n '2024_Phantom_11': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \r\n\t '2024_Phantom_11_Long': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \t \r\n '2024_Phantom_115': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }, \t \r\n '2024_B3_Newport2': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'blackToeBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'tripleHeelBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \t \r\n '2024_B3_Newport2LN': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'blackToeBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'tripleHeelBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \t \r\n '2024_B3_SantaFe': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'blackToeBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'tripleHeelBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n }, \t \r\n '2024_B3_Catalina': {\r\n 'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'toeStampColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'limitedLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'blackToeBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t'tripleHeelBumperColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true }\r\n\t\t\t},\r\n\t\t'2025_Phantom_52': {\r\n\t\t\t'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t'dotTop1Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'dotTop2Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'dotTop3Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n\t\t\t}, \r\n\t\t\t'2025_Phantom_72': {\r\n\t\t\t\t'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'flangeLineToeColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'flangeLineCenterColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'flangeLineHeelColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'modelLogoSoleNumColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'crownLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'modelShaftLogoColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'arrowsLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: true, allowDefaultColor: true },\r\n\t\t\t\t'wingLinesColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'dotTop1Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'dotTop2Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'dotTop3Color': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n\t\t\t}, \r\n\t '2014_Fastback': {\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'heelTextColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleFourColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleOneColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleThreeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleTwoColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'titleistLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'toeTextColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\t\t\r\n\t\t'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n },\r\n\t '2014_Squareback': {\r\n\t\t'dotCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'dotToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'faceTextColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'familyLogoSoleColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'heelTextColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'modelLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'scLogoFaceColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleFourColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleOneColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleThreeColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'stripeSoleTwoColor': { allowTranslucent: false, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'titleistLogoSoleColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'toeTextColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineCenterColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineHeelColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'topLineToeColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\t\t\r\n\t\t'weightFrontColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true },\r\n\t\t'weightRearColor': { allowTranslucent: true, useBlackFinishColorCodes: false, allowDefaultColor: true }\r\n }\r\n\t\t},\r\n\t\tpaintKeys:{\r\n\t\t},\r\n\t\tdefault: {\r\n\t\t\tallowTranslucent: true, useBlackFinishColorCodes:false, allowDefaultColor : false\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function getTranslucentPaintRules (state, finish, parameterKey) {\r\n let allowTranslucent = true;\r\n let useBlackFinishColorCodes = false;\r\n let allowDefaultColor = false;\r\n let paintKey = {};\r\n let putterModel = {};\r\n let putterDesignation = getPutterDesignation(state);\r\n\r\n let useBlackForDefault = state.putter.useBlackFinishColorCodesForDefault;\r\n\r\n if((useBlackForDefault && !finish) || (finish && finish.useBlackFinishColorCodes))\r\n {\r\n //Check Putter Model Exceptions\r\n if(translucentPaintRules.black.putterModels.hasOwnProperty(putterDesignation))\r\n {\r\n putterModel = translucentPaintRules.black.putterModels[putterDesignation];\r\n //Putter Model has an Exception\r\n //Check paintKey exists in rules\r\n if(putterModel.hasOwnProperty(parameterKey))\r\n {\r\n paintKey = putterModel[parameterKey];\r\n allowTranslucent = paintKey.allowTranslucent\r\n useBlackFinishColorCodes = paintKey.useBlackFinishColorCodes;\r\n allowDefaultColor = paintKey.allowDefaultColor;\r\n }\r\n else if(translucentPaintRules.black.paintKeys.hasOwnProperty(parameterKey))\r\n {\r\n //putterModel does not have rules for this paintKey, use paintKey rules \r\n paintKey = translucentPaintRules.black.paintKeys[parameterKey];\r\n allowTranslucent = paintKey.allowTranslucent\r\n useBlackFinishColorCodes = paintKey.useBlackFinishColorCodes;\r\n allowDefaultColor = paintKey.allowDefaultColor;\r\n }\r\n else \r\n {\r\n //no putterModel & no paintKey rule matches, use default for black finish\r\n allowTranslucent = translucentPaintRules.black.default.allowTranslucent;\r\n useBlackFinishColorCodes = translucentPaintRules.black.default.useBlackFinishColorCodes;\r\n allowDefaultColor = translucentPaintRules.black.default.allowDefaultColor;\r\n }\r\n }\r\n else if (translucentPaintRules.black.paintKeys.hasOwnProperty(parameterKey))\r\n {\r\n //putterModel doesn't exist but paintFill param exists\r\n paintKey = translucentPaintRules.black.paintKeys[parameterKey];\r\n allowTranslucent = paintKey.allowTranslucent\r\n useBlackFinishColorCodes = paintKey.useBlackFinishColorCodes;\r\n allowDefaultColor = paintKey.allowDefaultColor;\r\n }\r\n else\r\n {\r\n //default for black finish\r\n allowTranslucent = translucentPaintRules.black.default.allowTranslucent;\r\n useBlackFinishColorCodes = translucentPaintRules.black.default.useBlackFinishColorCodes;\r\n allowDefaultColor = translucentPaintRules.black.default.allowDefaultColor;\r\n }\r\n }\r\n else\r\n {\r\n //non-black finish/default rules\r\n //Check Putter Model Exceptions\r\n if(translucentPaintRules.default.putterModels.hasOwnProperty(putterDesignation))\r\n {\r\n putterModel = translucentPaintRules.default.putterModels[putterDesignation];\r\n //Putter Model has an Exception\r\n //Check paintKey exists in rules\r\n if(putterModel.hasOwnProperty(parameterKey))\r\n {\r\n paintKey = putterModel[parameterKey];\r\n allowTranslucent = paintKey.allowTranslucent\r\n useBlackFinishColorCodes = paintKey.useBlackFinishColorCodes;\r\n allowDefaultColor = paintKey.allowDefaultColor;\r\n }\r\n else if (translucentPaintRules.default.paintKeys.hasOwnProperty(parameterKey))\r\n {\r\n //putterModel doesn't have paintKey rule, use paintKey Rules\r\n paintKey = translucentPaintRules.default.paintKeys[parameterKey];\r\n allowTranslucent = paintKey.allowTranslucent\r\n useBlackFinishColorCodes = paintKey.useBlackFinishColorCodes;\r\n allowDefaultColor = paintKey.allowDefaultColor;\r\n }\r\n else\r\n {\r\n //no putterModel rules or paintKey rules, default for non-black/default finish\r\n allowTranslucent = translucentPaintRules.default.default.allowTranslucent;\r\n useBlackFinishColorCodes = translucentPaintRules.default.default.useBlackFinishColorCodes;\r\n allowDefaultColor = translucentPaintRules.default.default.allowDefaultColor;\r\n }\r\n }\r\n else if (translucentPaintRules.default.paintKeys.hasOwnProperty(parameterKey))\r\n {\r\n //putterModel doesn't exist but paintFill param exists\r\n paintKey = translucentPaintRules.default.paintKeys[parameterKey];\r\n allowTranslucent = paintKey.allowTranslucent\r\n useBlackFinishColorCodes = paintKey.useBlackFinishColorCodes;\r\n allowDefaultColor = paintKey.allowDefaultColor;\r\n }\r\n else\r\n {\r\n //default for non-black/default finish\r\n allowTranslucent = translucentPaintRules.default.default.allowTranslucent;\r\n useBlackFinishColorCodes = translucentPaintRules.default.default.useBlackFinishColorCodes;\r\n allowDefaultColor = translucentPaintRules.default.default.allowDefaultColor;\r\n }\r\n }\r\n\r\n return {\r\n allowTranslucent, useBlackFinishColorCodes, allowDefaultColor,\r\n }\r\n}\r\n\r\nexport function getValidPaintColors(state, locationId) {\r\n const translucentPaintRule = getTranslucentPaintRules(state, getSelected(state, 'finish'), getPaintFillLocationById(state, locationId).paintFillKey);\r\n if(translucentPaintRule.allowTranslucent)\r\n {\r\n if(getPaintFillLocationById(state, locationId).paintFillKey.toLowerCase().indexOf('weight') === -1)\r\n return getAllPaintColors(state).filter(paint => paint.onWeightsOnly === 'False');\r\n else\r\n return getAllPaintColors(state);\r\n }\r\n else\r\n {\r\n //For 17972 - if the finish and default finish are both black\r\n //Or if the translucent paint rules indicate to allow the default color, we add the default paint color as an allowed color if the default color is translucent\r\n let finish = getSelected(state, 'finish');\r\n let paints = getAllSolidPaintColors(state);\r\n if((!!finish && finish.useBlackFinishColorCodes && state.defaultInstance && finish.id === state.defaultInstance.finish) || translucentPaintRule.allowDefaultColor)\r\n {\r\n const defaultColor = find(getAllPaintColors(state), (paint) => paint.id === getDefaultColorByLocation(state, locationId).colorId);\r\n if(defaultColor && defaultColor.isTranslucent)\r\n paints.push(defaultColor);\r\n }\r\n return paints;\r\n }\r\n}\r\n\r\nexport function getAllPaintColors(state) {\r\n return [\r\n ...(state.putter.solidPaintFillColor || []),\r\n ...(state.putter.translucentPaintFillColor || [])\r\n ];\r\n};\r\n\r\nexport function getAllSolidPaintColors(state) {\r\n return [\r\n ...(state.putter.solidPaintFillColor || []),\r\n ];\r\n};\r\n\r\nexport function getMaxPaintFillColors(state) {\r\n return state.putter.maxPaintfillColors;\r\n}\r\n\r\nexport function getPutterDesignation(state) {\r\n let putterDesignation = state.putter.faceSoleImage.replace(/(.*\\/)(.*)(_.*)\\?.*/, '$2');\r\n if (putterDesignation === '2014_futura_x5') { putterDesignation = '2014_futurax5'; }\r\n return putterDesignation;\r\n};\r\n\r\nexport function getPaintFillLocationByParameterKey(state, parameterKey){\r\n return find(state.putter.paintFillLocation, {parameterKey}); \r\n}\r\n\r\nexport function getPaintFillLocationById(state, id){\r\n return find(state.putter.paintFillLocation, { id }); \r\n}\r\n\r\nexport function getSelected(state, field) {\r\n const selected = state.instance[field]; \r\n if (!selected) { return null; }\r\n return getOption(state, field, selected);\r\n}\r\nexport function getOption(state, field, value){\r\n let selected = value; \r\n let locs, colors, stamps, newObjs, obj;\r\n switch (field) {\r\n case 'label':\r\n return state.instance.label;\r\n case 'model':\r\n return state.instance.model.toString();\r\n case 'paintFillLocations':\r\n locs = state.putter.paintFillLocation;\r\n colors = getAllPaintColors(state);\r\n return selected\r\n .filter(s => !!find(locs, { id: s.locationId }))\r\n .map(s => {\r\n return Object.assign({}, s, {\r\n color: find(colors, { id: s.colorId }),\r\n location: find(locs, { id: s.locationId })\r\n })\r\n });\r\n case 'stampSelections':\r\n locs = state.putter.stampLocation;\r\n stamps = state.putter.stamp;\r\n return selected.map(s => {\r\n return Object.assign({}, s, {\r\n stamp: find(stamps, { id: s.stampId }),\r\n location: find(locs, { id: s.locationId })\r\n })\r\n });\r\n case 'initials':\r\n newObjs = toPairs(state.instance.initials)\r\n .map(([k, v]) => {\r\n const personalizationStyle = find(state.putter.personalizationStyle, { id: v.personalizationStyleId })\r\n return { [k]: Object.assign({}, v, { personalizationStyle }) };\r\n })\r\n return Object.assign({}, ...newObjs);\r\n\r\n case 'weightEngravingHeel':\r\n case 'weightEngravingToe':\r\n case 'weightEngravingTopToe':\r\n case 'weightEngravingTopHeel':\r\n obj = find(state.putter.weightEngravingStamp, { id: selected });\r\n return obj;\r\n\r\n case 'accessories':\r\n return state.instance.accessories.map(id => find(state.putter.accessories, { id }));\r\n\r\n default:\r\n obj = find(state.putter[field], { id: selected });\r\n return obj;\r\n }\r\n};\r\n\r\n\r\nexport function getSelectedColorByLocation (state, locationId) {\r\n const selectedColor = find(getSelected(state, 'paintFillLocations'), (paintFillLocation) => \r\n paintFillLocation.locationId === locationId );\r\n //no selected color, return 0\r\n return !!selectedColor ? selectedColor : { colorId: 0 } ;\r\n}\r\n\r\nexport function getDefaultColorByLocation (state, locationId) {\r\n if(!!state.defaultInstance && !!state.defaultInstance.paintFillLocations)\r\n {\r\n const defaultColor = find(state.defaultInstance.paintFillLocations, (paintFillLocation) => \r\n paintFillLocation.locationId === locationId );\r\n //no default color, return 0\r\n return !!defaultColor ? defaultColor : { colorId: 0 } ;\r\n }\r\n else \r\n {\r\n //no default color, return 0\r\n return { colorId: 0 } ;\r\n }\r\n}","import { objectKeysToPascalCase, objectKeysToCamelCase } from '../util/convert';\r\nimport { omit } from 'lodash';\r\nimport _ from 'lodash'\r\n\r\nimport { getSelected } from 'state/customize/selectors'\r\n\r\nfunction defaultInitialsLocation(putterModel) {\r\n var defaultStyle = (putterModel.personalizationStyle.length) ? putterModel.personalizationStyle[0].id : 0;\r\n return {\r\n enabled: false,\r\n characters: '',\r\n personalizationStyleId: defaultStyle,\r\n separateWithPeriods: false,\r\n };\r\n}\r\n\r\nfunction getInitialsFromPutter(putterModel){\r\n const locs = putterModel.initialsLocation.map(loc => {\r\n return { [loc.label] : defaultInitialsLocation(putterModel) } \r\n });\r\n return Object.assign({}, ...locs);\r\n}\r\n\r\nfunction getInitialsFromInstanceInitials(initials){\r\n return { \r\n characters: !!initials.characters ? initials.characters : '',\r\n enabled: !!initials.characters ? true : false,\r\n personalizationStyleId: !!initials.personalizationStyleId ? initials.personalizationStyleId : 9,\r\n personalizationStyleLabel: !!initials.personalizationStyleLabel ? initials.personalizationStyleLabel : 'Straight',\r\n separateWithPeriods : initials.separateWithPeriods,\r\n }\r\n };\r\n\r\nfunction getSightDotFromPutter(putterModel){\r\n const sightDotDefault = _.find(putterModel.sightDot, (sightDot) => sightDot.numberOfLines === 0);\r\n return sightDotDefault ? sightDotDefault.id : 0;\r\n}\r\n\r\nfunction getFlangeLineFromPutter(putterModel){\r\n const flangeLineDefault = _.find(putterModel.flangeLine, (flangeLine) => flangeLine.numberOfLines === 0);\r\n return flangeLineDefault ? flangeLineDefault.id : 0;\r\n}\r\n\r\nfunction getReshaftFromPutter(putterModel){\r\n const reshaftDefault = _.find(putterModel.reshaft, (reshaft) => reshaft.keepShaft);\r\n return reshaftDefault ? reshaftDefault.id : 0;\r\n}\r\n\r\nexport function fromPutter(putterModel){\r\n return { \r\n model: putterModel.id, \r\n label: putterModel.label,\r\n isExactMatch: false,\r\n insuranceValue: 0, \r\n authorizeSurcharge: true, \r\n restorationType: 0, \r\n finish: 0, \r\n initials: getInitialsFromPutter(putterModel), \r\n stampSelections: [], \r\n topLine: 0, \r\n flangeLine: getFlangeLineFromPutter(putterModel), //'Keep As Is'\r\n sightDot: getSightDotFromPutter(putterModel), //'Keep As Is'\r\n paintFill: 7, //0,\r\n paintFillLocations: [], \r\n topWeight: 0,\r\n weight: 0,\r\n weightEngraving: 0,\r\n weightEngravingHeel: 0,\r\n weightEngravingToe: 0,\r\n topWeightEngraving: 0,\r\n weightEngravingTopToe: 0,\r\n weightEngravingTopHeel: 0,\r\n loft: 0,//18, \r\n lie: 0,//8, \r\n length: 0,//7,\r\n desiredLength: 0, \r\n reshaft: getReshaftFromPutter(putterModel),//2, \r\n grip: 0,\r\n gripWrap: 0, \r\n shaftBand: 0, \r\n headCover: 0, \r\n buyAPutter: 0,\r\n accessories: [], \r\n authentication: 0,\r\n }\r\n}\r\n\r\n/* 18759: Invalid options rollback\r\nexport function isInstanceOptionsValid(putterModel, savedInstance){\r\n \r\n let isValid = true;\r\n isValid = (savedInstance.restorationType ? putterModel.restorationType.filter(r => r.id === savedInstance.restorationType).length > 0 : true)\r\n && (savedInstance.finish ? putterModel.finish.filter(f => f.id === savedInstance.finish).length > 0 : true)\r\n && (savedInstance.stampSelections.length > 0 ? savedInstance.stampSelections.filter(ss => putterModel.stamp.filter(s => s.id === ss.stampId).length > 0).length === savedInstance.stampSelections.length : true)\r\n && (savedInstance.topLine && putterModel.topLine.length > 0 ? putterModel.topLine.filter(t => t.id === savedInstance.topLine).length > 0 : true)\r\n && (putterModel.flangeLine.length > 0 ? putterModel.flangeLine.filter(f => f.id === savedInstance.flangeLine).length > 0 : true)\r\n && (savedInstance.sightDot && putterModel.sightDot.length > 0 ? putterModel.sightDot.filter(f => f.id === savedInstance.sightDot).length > 0 : true)\r\n && putterModel.paintFill.filter(p => p.id === savedInstance.paintFill).length > 0\r\n && (savedInstance.paintFillLocations.length > 0 ? savedInstance.paintFillLocations.filter(l => putterModel.paintFillColor.filter(p => p.id === l.colorId).length > 0).length === savedInstance.paintFillLocations.length : true)\r\n && (savedInstance.topWeight && putterModel.topWeight.length > 0 ? putterModel.topWeight.filter(t => t.id === savedInstance.topWeight).length > 0 : true)\r\n && (savedInstance.weight && putterModel.weight.length > 0 ? putterModel.weight.filter(w => w.id === savedInstance.weight).length > 0 : true)\r\n && (savedInstance.weightEngraving && putterModel.weightEngraving.length > 0 ? putterModel.weightEngraving.filter(w => w.id === savedInstance.weightEngraving).length > 0 : true)\r\n && (savedInstance.weightEngravingHeel && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingHeel).length > 0 : true)\r\n && (savedInstance.weightEngravingToe && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingToe).length > 0 : true)\r\n && (savedInstance.topWeightEngraving && putterModel.topWeightEngraving.length > 0 ? putterModel.topWeightEngraving.filter(w => w.id === savedInstance.topWeightEngraving).length > 0 : true)\r\n && (savedInstance.weightEngravingTopToe && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingTopToe).length > 0 : true)\r\n && (savedInstance.weightEngravingTopHeel && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingTopHeel).length > 0 : true)\r\n && (savedInstance.loft ? putterModel.loft.filter(l => l.id === savedInstance.loft).length > 0 : true)\r\n && (savedInstance.lie ? putterModel.lie.filter(l => l.id === savedInstance.lie).length > 0 : true)\r\n && (savedInstance.length ? putterModel.length.filter(l => l.id === savedInstance.length).length > 0 : true)\r\n && (savedInstance.desiredLength && putterModel.desiredLength.length > 0 ? putterModel.desiredLength.filter(d => d.id === savedInstance.desiredLength).length > 0 : true)\r\n && (savedInstance.reshaft ? putterModel.reshaft.filter(r => r.id === savedInstance.reshaft).length > 0 : true)\r\n && (savedInstance.grip ? putterModel.grip.filter(g => g.id === savedInstance.grip).length > 0 : true)\r\n && (savedInstance.gripWrap ? putterModel.gripWrap.filter(g => g.id === savedInstance.gripWrap).length > 0 : true)\r\n && (savedInstance.shaftBand ? putterModel.shaftBand.filter(s => s.id === savedInstance.shaftBand).length > 0 : true)\r\n && (savedInstance.headCover ? putterModel.headCover.filter(h => h.id === savedInstance.headCover).length > 0 : true)\r\n && (savedInstance.authentication ? putterModel.authentication.filter(a => a.id === savedInstance.authentication).length > 0 : true)\r\n ;\r\n\r\n console.log('instance options valid:');\r\n console.log( (savedInstance.restorationType ? putterModel.restorationType.filter(r => r.id === savedInstance.restorationType).length > 0 : true) ); \r\n console.log( (savedInstance.finish ? putterModel.finish.filter(f => f.id === savedInstance.finish).length > 0 : true) ); \r\n console.log( (savedInstance.stampSelections.length > 0 ? savedInstance.stampSelections.filter(ss => putterModel.stamp.filter(s => s.id === ss.stampId).length > 0).length === savedInstance.stampSelections.length : true)); \r\n console.log( (savedInstance.topLine && putterModel.topLine.length > 0 ? putterModel.topLine.filter(t => t.id === savedInstance.topLine).length > 0 : true) ); \r\n console.log( (putterModel.flangeLine.length > 0 ? putterModel.flangeLine.filter(f => f.id === savedInstance.flangeLine).length > 0 : true) ); \r\n console.log( (savedInstance.sightDot && putterModel.sightDot.length > 0 ? putterModel.sightDot.filter(f => f.id === savedInstance.sightDot).length > 0 : true) ); \r\n console.log( putterModel.paintFill.filter(p => p.id === savedInstance.paintFill).length > 0); \r\n console.log( (savedInstance.paintFillLocations.length > 0 ? savedInstance.paintFillLocations.filter(l => putterModel.paintFillColor.filter(p => p.id === l.colorId).length > 0).length === savedInstance.paintFillLocations.length : true)); \r\n console.log( (savedInstance.topWeight && putterModel.topWeight.length > 0 ? putterModel.topWeight.filter(t => t.id === savedInstance.topWeight).length > 0 : true) ); \r\n console.log( (savedInstance.weight && putterModel.weight.length > 0 ? putterModel.weight.filter(w => w.id === savedInstance.weight).length > 0 : true) ); \r\n console.log( (savedInstance.weightEngraving && putterModel.weightEngraving.length > 0 ? putterModel.weightEngraving.filter(w => w.id === savedInstance.weightEngraving).length > 0 : true) ); \r\n console.log( (savedInstance.weightEngravingHeel && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingHeel).length > 0 : true) ); \r\n console.log( (savedInstance.weightEngravingToe && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingToe).length > 0 : true) ); \r\n console.log( (savedInstance.topWeightEngraving && putterModel.topWeightEngraving.length > 0 ? putterModel.topWeightEngraving.filter(w => w.id === savedInstance.topWeightEngraving).length > 0 : true) ); \r\n console.log( (savedInstance.weightEngravingTopToe && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingTopToe).length > 0 : true) ); \r\n console.log( (savedInstance.weightEngravingTopHeel && putterModel.weightEngravingStamp.length > 0 ? putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingTopHeel).length > 0 : true) ); \r\n console.log( (savedInstance.loft ? putterModel.loft.filter(l => l.id === savedInstance.loft).length > 0 : true) ); \r\n console.log( (savedInstance.lie ? putterModel.lie.filter(l => l.id === savedInstance.lie).length > 0 : true) ); \r\n console.log( (savedInstance.length ? putterModel.length.filter(l => l.id === savedInstance.length).length > 0 : true) ); \r\n console.log( (savedInstance.desiredLength && putterModel.desiredLength.length > 0 ? putterModel.desiredLength.filter(d => d.id === savedInstance.desiredLength).length > 0 : true)); \r\n console.log( (savedInstance.reshaft ? putterModel.reshaft.filter(r => r.id === savedInstance.reshaft).length > 0 : true) ); \r\n console.log( (savedInstance.grip ? putterModel.grip.filter(g => g.id === savedInstance.grip).length > 0 : true) );\r\n console.log( (savedInstance.gripWrap ? putterModel.gripWrap.filter(g => g.id === savedInstance.gripWrap).length > 0 : true) );\r\n console.log( (savedInstance.shaftBand ? putterModel.shaftBand.filter(s => s.id === savedInstance.shaftBand).length > 0 : true) );\r\n console.log( (savedInstance.headCover ? putterModel.headCover.filter(h => h.id === savedInstance.headCover).length > 0 : true) );\r\n console.log( (savedInstance.authentication ? putterModel.authentication.filter(a => a.id === savedInstance.authentication).length > 0 : true) );\r\n\r\n return isValid;\r\n}\r\n*/\r\nexport function removeInvalidOptions(putterModel, savedInstance){\r\n \r\n //check if a weight engraving is selected\r\n if(savedInstance.weight > 0)\r\n {\r\n if(savedInstance.weightEngravingHeel > 0)\r\n {\r\n let stamp = _.find(putterModel.weightEngravingStamp, { id : savedInstance.weightEngravingHeel });\r\n //check if the selected weight engraving is disabled for this weight id\r\n if(stamp && stamp.disabledWeightIds.split(',').indexOf(savedInstance.weight.toString()) > -1 )\r\n {\r\n //remove the weight engraving selection\r\n savedInstance = Object.assign({}, \r\n savedInstance,\r\n {\r\n weightEngravingHeel: 0,\r\n }\r\n );\r\n }\r\n }\r\n //check if a weight engraving is selected\r\n if(savedInstance.weightEngravingToe > 0)\r\n {\r\n let stamp = _.find(putterModel.weightEngravingStamp, { id : savedInstance.weightEngravingToe });\r\n //check if the selected weight engraving is disabled for this weight id\r\n if(stamp && stamp.disabledWeightIds.split(',').indexOf(savedInstance.weight.toString()) > -1 )\r\n {\r\n //remove the weight engraving selection\r\n savedInstance = Object.assign({}, \r\n savedInstance,\r\n {\r\n weightEngravingToe: 0,\r\n }\r\n );\r\n }\r\n }\r\n }\r\n //check if a weight engraving is selected\r\n //check if a weight engraving is selected\r\n if(savedInstance.topWeight > 0)\r\n {\r\n if(savedInstance.weightEngravingTopHeel > 0)\r\n {\r\n let stamp = _.find(putterModel.weightEngravingStamp, { id : savedInstance.weightEngravingTopHeel });\r\n //check if the selected weight engraving is disabled for this weight id\r\n if(stamp && stamp.disabledWeightIds.split(',').indexOf(savedInstance.topWeight.toString()) > -1 )\r\n {\r\n //remove the weight engraving selection\r\n savedInstance = Object.assign({}, \r\n savedInstance,\r\n {\r\n weightEngravingTopHeel: 0,\r\n }\r\n );\r\n }\r\n }\r\n //check if a weight engraving is selected\r\n if(savedInstance.weightEngravingTopToe > 0)\r\n {\r\n let stamp = _.find(putterModel.weightEngravingStamp, { id : savedInstance.weightEngravingTopToe });\r\n //check if the selected weight engraving is disabled for this weight id\r\n if(stamp && stamp.disabledWeightIds.split(',').indexOf(savedInstance.topWeight.toString()) > -1 )\r\n {\r\n //remove the weight engraving selection\r\n savedInstance = Object.assign({}, \r\n savedInstance,\r\n {\r\n weightEngravingTopToe: 0,\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n return Object.assign({}, \r\n savedInstance,\r\n {\r\n //customInstanceId: savedInstance.customInstanceId,\r\n //orderLineItemId: savedInstance.orderLineItemId,\r\n //model: savedInstance.model, \r\n //label: savedInstance.label,\r\n //isExactMatch: savedInstance.isExactMatch,\r\n //insuranceValue: savedInstance.insuranceValue, \r\n //authorizeSurcharge: savedInstance.authorizeSurcharge, \r\n restorationType: putterModel.restorationType.filter(r => r.id === savedInstance.restorationType).length > 0 ? savedInstance.restorationType : 0, \r\n finish: putterModel.finish.filter(f => f.id === savedInstance.finish).length > 0 ? savedInstance.finish : 0,\r\n //initials: savedInstance.initials,\r\n stampSelections: savedInstance.stampSelections.filter(ss => putterModel.stamp.filter(s => s.id === ss.stampId).length > 0),\r\n topLine: putterModel.topLine.filter(t => t.id === savedInstance.topLine).length > 0 ? savedInstance.topLine : 0, \r\n flangeLine: putterModel.flangeLine.filter(f => f.id === savedInstance.flangeLine).length > 0 ? savedInstance.flangeLine : getFlangeLineFromPutter(putterModel),\r\n sightDot: putterModel.sightDot.filter(f => f.id === savedInstance.sightDot).length > 0 ? savedInstance.sightDot : savedInstance.topLine === 0 ? getSightDotFromPutter(putterModel) : 0,\r\n paintFill: (!!savedInstance.paintFill ? (putterModel.paintFill.filter(p => p.id === savedInstance.paintFill).length > 0 ? savedInstance.paintFill : 7) : 7),\r\n paintFillLocations: savedInstance.paintFillLocations.filter(l => putterModel.paintFillColor.filter(p => p.id === l.colorId).length > 0), \r\n topWeight: putterModel.topWeight.filter(t => t.id === savedInstance.topWeight).length > 0 ? savedInstance.topWeight : 0,\r\n weight: putterModel.weight.filter(w => w.id === savedInstance.weight).length > 0 ? savedInstance.weight : 0,\r\n weightEngraving: putterModel.weightEngraving.filter(w => w.id === savedInstance.weightEngraving).length > 0 ? savedInstance.weightEngraving : 0,\r\n weightEngravingHeel: putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingHeel).length > 0 ? savedInstance.weightEngravingHeel : 0,\r\n weightEngravingToe: putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingToe).length > 0 ? savedInstance.weightEngravingToe : 0,\r\n topWeightEngraving: putterModel.topWeightEngraving.filter(w => w.id === savedInstance.topWeightEngraving).length > 0 ? savedInstance.topWeightEngraving : 0,\r\n weightEngravingTopToe: putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingTopToe).length > 0 ? savedInstance.weightEngravingTopToe : 0,\r\n weightEngravingTopHeel: putterModel.weightEngravingStamp.filter(w => w.id === savedInstance.weightEngravingTopHeel).length > 0 ? savedInstance.weightEngravingTopHeel : 0,\r\n loft: putterModel.loft.filter(l => l.id === savedInstance.loft).length > 0 ? savedInstance.loft : 0,\r\n lie: putterModel.lie.filter(l => l.id === savedInstance.lie).length > 0 ? savedInstance.lie : 0,\r\n length: putterModel.length.filter(l => l.id === savedInstance.length).length > 0 ? savedInstance.length : 0,\r\n desiredLength: putterModel.desiredLength ? (putterModel.desiredLength.filter(d => d.id === savedInstance.desiredLength).length > 0 ? savedInstance.desiredLength : 0) : 0, \r\n reshaft: putterModel.reshaft.filter(r => r.id === savedInstance.reshaft).length > 0 ? savedInstance.reshaft : getReshaftFromPutter(putterModel),\r\n grip: putterModel.grip.filter(g => g.id === savedInstance.grip).length > 0 ? savedInstance.grip : 0,\r\n gripWrap: putterModel.gripWrap.filter(g => g.id === savedInstance.gripWrap).length > 0 ? savedInstance.gripWrap : 0, \r\n shaftBand: putterModel.shaftBand.filter(s => s.id === savedInstance.shaftBand).length > 0 ? savedInstance.shaftBand : 0, \r\n headCover: putterModel.headCover.filter(h => h.id === savedInstance.headCover).length > 0 ? savedInstance.headCover : 0, \r\n buyAPutter: putterModel.buyAPutter.filter(b => b.id === savedInstance.buyAPutter).length > 0 ? savedInstance.buyAPutter : 0, \r\n //accessories: (!!savedInstance.accessories ? savedInstance.accessories : []), \r\n authentication: putterModel.authentication.filter(a => a.id === savedInstance.authentication).length > 0 ? savedInstance.authentication : 0, \r\n //userCanUpdate: savedInstance.userCanUpdate || false,\r\n //userCanUpdateOrder: savedInstance.userCanUpdateOrder || false,\r\n //notes: savedInstance.notes, \r\n }\r\n );\r\n}\r\n\r\nexport function fromAPIInstance(data){\r\n let savedInstance = _.chain(data)\r\n .value();\r\n \r\n savedInstance = objectKeysToCamelCase(savedInstance);\r\n return { \r\n customInstanceId: savedInstance.customInstanceId,\r\n orderLineItemId: savedInstance.orderLineItemId,\r\n model: savedInstance.model.id, \r\n label: savedInstance.model.label,\r\n isExactMatch: true,\r\n insuranceValue: savedInstance.insuranceValue, \r\n authorizeSurcharge: savedInstance.authorizeSurcharge, \r\n restorationType: savedInstance.restoration.id, \r\n finish: savedInstance.finish.id,\r\n initials: {\r\n InitialsBumperHeel : getInitialsFromInstanceInitials(savedInstance.initials.initialsBumperHeel),\r\n InitialsBumperToe : getInitialsFromInstanceInitials(savedInstance.initials.initialsBumperToe),\r\n InitialsFace : getInitialsFromInstanceInitials(savedInstance.initials.initialsFace),\r\n },\r\n stampSelections: savedInstance.stampSelections.map(loc => ({ ...loc, enabled: true })),\r\n topLine: savedInstance.topLine.id, \r\n flangeLine: savedInstance.flangeLine.id,\r\n sightDot: savedInstance.sightDot.id,\r\n paintFill: (!!savedInstance.paintFillSelections.paintFill.id ? savedInstance.paintFillSelections.paintFill.id : 7),\r\n paintFillLocations: savedInstance.paintFillSelections.locations, \r\n topWeight: savedInstance.weightSelections.topWeight.id,\r\n weight: savedInstance.weightSelections.weight.id,\r\n weightEngraving: savedInstance.weightSelections.weightEngraving.id,\r\n weightEngravingHeel: savedInstance.weightSelections.weightEngravingHeel.id,\r\n weightEngravingToe: savedInstance.weightSelections.weightEngravingToe.id,\r\n topWeightEngraving: savedInstance.weightSelections.topWeightEngraving.id,\r\n weightEngravingTopToe: savedInstance.weightSelections.weightEngravingTopToe.id,\r\n weightEngravingTopHeel: savedInstance.weightSelections.weightEngravingTopHeel.id,\r\n loft: savedInstance.loft.id,\r\n lie: savedInstance.lie.id,\r\n length: savedInstance.length.id,\r\n desiredLength: savedInstance.length.desiredValueId, \r\n reshaft: savedInstance.reshaft.id,\r\n grip: savedInstance.grip.id,\r\n gripWrap: savedInstance.gripWrap.id, \r\n shaftBand: savedInstance.shaftBand.id, \r\n headCover: savedInstance.headcover.id, \r\n buyAPutter: savedInstance.buyAPutter.id,\r\n accessories: (!!savedInstance.accessories ? savedInstance.accessories : []), \r\n authentication: savedInstance.authentication.id, //For 17711, we no longer want to set to do not authenticate if auth id is 0\r\n //? savedInstance.authentication.id : 99999, //no auth so set to do not authenticate (id: 99999)\r\n userCanUpdate: savedInstance.userCanUpdate || false,\r\n userCanUpdateOrder: savedInstance.userCanUpdateOrder || false,\r\n notes: savedInstance.notes, \r\n }\r\n}\r\n\r\nexport function fromDefaultInstance(currentInstance, defaultInstance)\r\n{\r\n //only set default if none selected\r\n let instance = currentInstance;\r\n instance.finish = currentInstance.finish || defaultInstance.finish;\r\n instance.loft = currentInstance.loft || defaultInstance.loft;\r\n instance.length = currentInstance.length || defaultInstance.length;\r\n instance.desiredLength = currentInstance.desiredLength || defaultInstance.desiredLength;\r\n instance.lie = currentInstance.lie || defaultInstance.lie;\r\n instance.weight = currentInstance.weight || defaultInstance.weight;\r\n return instance;\r\n}\r\n\r\nfunction id(i) { return (i) ? { Id: i } : {} }; \r\n\r\nfunction lengthId(length, state) {\r\n var o = id(length)\r\n var desiredLength = getSelected(state, 'desiredLength');\r\n if (desiredLength){ \r\n o.DesiredValue = desiredLength.label;\r\n }\r\n return o;\r\n}\r\n\r\nexport function formatForAPI(customizeState, action){ \r\n var instanceModel = customizeState.instance;\r\n var putterModel = customizeState.putter;\r\n var instanceIntent = customizeState.instanceIntent;\r\n\r\n var idToSend = 0;\r\n if ((action === \"save\" && instanceIntent === \"updateSaved\" && instanceModel.userCanUpdate) ||\r\n (action === \"cart\" && instanceIntent === \"updateOrder\" && instanceModel.userCanUpdateOrder)){\r\n idToSend = instanceModel.customInstanceId \r\n }\r\n\r\n var orderIdtoSend= 0;\r\n if (action === \"cart\" && instanceIntent === \"updateOrder\" && instanceModel.userCanUpdateOrder){\r\n orderIdtoSend = instanceModel.orderLineItemId\r\n }\r\n\r\n return {\r\n CustomInstanceId: idToSend,\r\n OrderLineItemId : orderIdtoSend,\r\n Model: id(instanceModel.model),\r\n FormType: \"interactive\",\r\n Label: instanceModel.label,\r\n IsExactMatch: instanceModel.isExactMatch.toString(),\r\n InsuranceValue: instanceModel.insuranceValue, \r\n AuthorizeSurcharge: instanceModel.authorizeSurcharge.toString(),\r\n Restoration: id(instanceModel.restorationType), \r\n Finish: id(instanceModel.finish), \r\n Initials: {\r\n InitialsFace: omit(objectKeysToPascalCase(instanceModel.initials.InitialsFace || defaultInitialsLocation(putterModel)), 'Enabled'),\r\n InitialsBumperHeel: omit(objectKeysToPascalCase(instanceModel.initials.InitialsBumperHeel || defaultInitialsLocation(putterModel)), 'Enabled'),\r\n InitialsBumperToe: omit(objectKeysToPascalCase(instanceModel.initials.InitialsBumperToe || defaultInitialsLocation(putterModel)), 'Enabled'),\r\n },\r\n StampSelections: objectKeysToPascalCase(instanceModel.stampSelections).map(s => omit(s, 'Enabled')),\r\n TopLine: id(instanceModel.topLine), \r\n FlangeLine: id(instanceModel.flangeLine), \r\n SightDot: id(instanceModel.sightDot), \r\n PaintFillSelections: {\r\n PaintFill : id(instanceModel.paintFill),\r\n Locations : objectKeysToPascalCase(instanceModel.paintFillLocations), \r\n },\r\n WeightSelections: {\r\n topWeight: id(instanceModel.topWeight),\r\n weight: id(instanceModel.weight),\r\n weightEngraving: id(instanceModel.weightEngraving),\r\n weightEngravingHeel: id(instanceModel.weightEngravingHeel),\r\n weightEngravingToe: id(instanceModel.weightEngravingToe),\r\n topWeightEngraving: id(instanceModel.topWeightEngraving),\r\n weightEngravingTopToe: id(instanceModel.weightEngravingTopToe),\r\n weightEngravingTopHeel: id(instanceModel.weightEngravingTopHeel), \r\n }, \r\n Loft: id(instanceModel.loft), \r\n Lie: id(instanceModel.lie), \r\n Length: lengthId(instanceModel.length, customizeState),\r\n Reshaft: id(instanceModel.reshaft), \r\n Grip: id(instanceModel.grip), \r\n GripWrap: id(instanceModel.gripWrap), \r\n ShaftBand: id(instanceModel.shaftBand), \r\n HeadCover: id(instanceModel.headCover), \r\n BuyAPutter: id(instanceModel.buyAPutter),\r\n Accessories: instanceModel.accessories.map(id),\r\n Authentication: (instanceModel.authentication === 99999) ? id(0) : id(instanceModel.authentication),\r\n Notes: instanceModel.notes,\r\n }; \r\n} ","import { find, partial, identity, uniqBy } from 'lodash'\r\n\r\nimport { getSelected, getAllPaintColors, getPrice } from 'state/customize/selectors'\r\nimport { colorKeyLookup } from 'state/customize'\r\nimport { getFilteredPutters } from 'state/findputter'\r\nimport * as helpers from './helpers'\r\nimport * as validation from './validation'\r\n\r\n/*\r\n * This file contains top-level methods for building VMs for each view in the app.\r\n * All functions which build component pieces of those VMs should be in ./helpers\r\n */\r\n\r\nexport function getFinishVM(state) {\r\n const paintFill = helpers.getOptionVM(state, 'paintFill', true);\r\n const finish = helpers.getOptionVM(state, 'finish');\r\n const restoration = helpers.getOptionVM(state, 'restorationType');\r\n const buyAPutter = helpers.getOptionVM(state, 'buyAPutter');\r\n\r\n const grip = getSelected(state, 'grip');\r\n const headCover = getSelected(state, 'headCover');\r\n\r\n //modify paintFill options\r\n let options = [];\r\n let paintFillOptions = [];\r\n //TODO: Leave out 'repaint to original' for now, remove from CMS? Also, rename 'Select Colors' label, do in CMS?\r\n paintFillOptions = paintFill.options.filter(paintFill => (paintFill.label !== 'Repaint to Original'))\r\n .map(paintFill => {\r\n let label = paintFill.label;\r\n if(paintFill.label === 'Select Colors')\r\n {\r\n label = 'New Paintfill';\r\n }\r\n return {\r\n label: label,\r\n id: paintFill.id,\r\n price: paintFill.price,\r\n type: 'paintFill',\r\n };\r\n });\r\n options = paintFillOptions;\r\n\r\n let restorationOptions = {};\r\n if(restoration.options.length > 0)\r\n {\r\n restorationOptions = restoration.options.map(restoration => {\r\n return {\r\n label: restoration.label,\r\n id: restoration.id,\r\n price: restoration.price,\r\n type: 'restorationType',\r\n };\r\n });\r\n options = options.concat(restorationOptions);\r\n }\r\n\r\n let selected = {};\r\n if (restoration.selected)\r\n {\r\n selected = restorationOptions.filter(restorationOption => (restorationOption.id === restoration.selected.id))[0];\r\n }\r\n else if (paintFill.selected)\r\n {\r\n selected = paintFillOptions.filter(paintFillOption => (paintFillOption.id === paintFill.selected.id))[0];\r\n }\r\n else\r\n {\r\n selected = null;\r\n }\r\n let vm = {\r\n options,\r\n selected,\r\n finish,\r\n buyAPutter,\r\n }\r\n \r\n vm.validation = validation.validateFinishVM(state, vm);\r\n return vm;\r\n} \r\n\r\nexport function getSpecsVM(state) {\r\n const hasWeightEngraving = state.putter.hasWeightEngraving;\r\n const weight = helpers.getWeightVM(state);\r\n const hasWeights = !!weight.weights.length;\r\n const hasTopWeights = state.putter.hasTopWeights;\r\n const topWeight = (hasTopWeights) ? helpers.getWeightVM(state, true) : {};\r\n const length = helpers.getOptionVM(state, 'length');\r\n const restoration = getSelected(state, 'restorationType');\r\n const reshaft = helpers.getOptionVM(state, 'reshaft');\r\n const buyAPutter = helpers.getOptionVM(state, 'buyAPutter');\r\n \r\n \r\n \r\n let desiredLengthRequired = (reshaft != null && reshaft.selected != null && reshaft.selected.price > 0) || (restoration != null && restoration.price > 0);\r\n \r\n if(desiredLengthRequired) {\r\n\t console.log('Len Options:');\r\n\t console.log(length.options);\r\n\t \r\n\t var filteredOptions = length.options.filter((opt) => opt.label != 'Keep As Is');\r\n\t length.options = filteredOptions;\r\n }\r\n \r\n if((restoration && restoration.price > 0) || (length.selected && length.selected.reshaftRequired))\r\n {\r\n //if 'add restoration' (id: 14) selected or length selected requires a reshaft, then remove 'Reuse shaft' (id: 13) option\r\n reshaft.options = reshaft.options.filter(reshaftOption => reshaftOption.id !== 13);\r\n }\r\n \r\n let vm = {\r\n hasWeightEngraving,\r\n weight,\r\n hasWeights,\r\n hasTopWeights,\r\n topWeight,\r\n desiredLength: helpers.getOptionVM(state, 'desiredLength'),\r\n length,\r\n loft: helpers.getOptionVM(state, 'loft'),\r\n lie: helpers.getOptionVM(state, 'lie'),\r\n reshaft,\r\n restoration,\r\n buyAPutter,\r\n\tdesiredLengthRequired\r\n } \r\n vm.validation = validation.validateSpecsVM(state, vm);\r\n\r\n return vm;\r\n}\r\n\r\nfunction getBackFaceVM(state, paramsList, isConfirm) {\r\n const paintFillLocations = paramsList\r\n .filter(k => helpers.isPaintfillArea(k))\r\n .map(k => helpers.getPaintVM(state, k))\r\n .filter(identity)\r\n .sort((a,b) => a.loc.rank - b.loc.rank)\r\n ;\r\n const initials = state.putter.initialsLocation\r\n .filter(i => paramsList.indexOf(i.paintFillKey) > -1) \r\n .map(partial(helpers.getInitialsVM, state))\r\n ;\r\n const stampsLocations = state.putter.stampLocation\r\n .filter(i =>\r\n paramsList.indexOf(i.parameterKey) > -1 ||\r\n paramsList.indexOf(i.paintFillKey) > -1 \r\n )\r\n .map(partial(helpers.getStampVM, state))\r\n ;\r\n const paintFill = getSelected(state, 'paintFill');\r\n const buyAPutter = helpers.getOptionVM(state, 'buyAPutter');\r\n const paintFillPrice = helpers.getPaintFillPrice();\r\n let vm = {\r\n paintFillLocations, \r\n initials,\r\n stampsLocations,\r\n paintFill,\r\n buyAPutter,\r\n\tpaintFillPrice\r\n }\r\n \r\n vm.validation = validation.validateBackFaceVM(state, vm, isConfirm)\r\n return vm;\r\n}\r\nexport function getFaceVM(state, isConfirm) {\r\n const faceStampOrInitialsOnly = state.putter.faceStampOrInitialsOnly;\r\n let vm = getBackFaceVM(state, state.putter.faceSoleImageParameters, isConfirm);\r\n vm.faceStampOrInitialsOnly = faceStampOrInitialsOnly;\r\n return Object.assign({},\r\n helpers.getPaintSummaryProps(state), \r\n vm\r\n );\r\n}\r\nexport function getBackVM(state, isConfirm) {\r\n return Object.assign({},\r\n helpers.getPaintSummaryProps(state), \r\n getBackFaceVM(state, state.putter.backCavityImageParameters, isConfirm)\r\n );\r\n}\r\nexport function getTopVM(state, isConfirm) {\r\n const paintFillLocations = [\r\n ...state.putter.existingTopLineParameters,\r\n ...state.putter.playerProfileImageParameters\r\n ]\r\n .map(k => helpers.getPaintVM(state, colorKeyLookup[k] || k))\r\n .filter(identity)\r\n ;\r\n const flangeLinePaintFillLocations = [\r\n ...state.putter.existingFlangeLineParameters,\r\n ]\r\n .map(k => helpers.getPaintVM(state, colorKeyLookup[k] || k))\r\n .filter(identity)\r\n ;\r\n const paintFill = getSelected(state, 'paintFill');\r\n const buyAPutter = helpers.getOptionVM(state, 'buyAPutter');\r\n const paintFillPrice = helpers.getPaintFillPrice();\r\n let vm = Object.assign(\r\n {\r\n paintFillLocations: [...paintFillLocations, ...helpers.mergeLinePaintVMs(flangeLinePaintFillLocations)],\r\n flangeLines: helpers.getLineVM(state, 'flangeLine'),\r\n topLines: helpers.getLineVM(state, 'topLine'),\r\n sightDots: helpers.getLineVM(state, 'sightDot'),\r\n paintFill,\r\n buyAPutter,\r\n\t paintFillPrice\r\n }, \r\n helpers.getPaintSummaryProps(state), \r\n );\r\n\r\n vm.validation = validation.validateTopVM(state, vm, isConfirm);\r\n return vm;\r\n}\r\n\r\nexport function getAccessoriesVM(state) {\r\n let grip = helpers.getOptionVM(state, 'grip');\r\n let shaftBand = helpers.getOptionVM(state, 'shaftBand'); \r\n let headCover = helpers.getOptionVM(state, 'headCover');\r\n\r\n const buyAPutter = helpers.getOptionVM(state, 'buyAPutter');\r\n if (!buyAPutter.selected){ \r\n shaftBand.options = [{id:0, label:\"NONE\"}, ...shaftBand.options];\r\n headCover.options = [{id:0, label:\"NONE\"}, ...headCover.options];\r\n }\r\n\r\n const gripWrap = helpers.getOptionVM(state, 'gripWrap');\r\n const length = getSelected(state, 'length');\r\n const loft = getSelected(state, 'loft');\r\n const lie = getSelected(state, 'lie');\r\n const reshaft = getSelected(state, 'reshaft');\r\n const colorFilters = state.putter.colorFilters || [];\r\n let gripRequired = (shaftBand.selected && shaftBand.selected.gripRequired)\r\n || (headCover.selected && headCover.selected.gripRequired)\r\n || (length && length.gripRequired)\r\n || (loft && loft.gripRequired)\r\n || (lie && lie.gripRequired)\r\n || (reshaft && reshaft.gripRequired)\r\n || (buyAPutter && buyAPutter.selected)\r\n ;\r\n if(gripRequired)\r\n {\r\n //remove reuse grip option\r\n grip.options = grip.options.filter(gripOption => gripOption.sku !== 'REUSE');\r\n }\r\n let vm = {\r\n grip,\r\n gripRequired,\r\n shaftBand,\r\n headCover,\r\n buyAPutter,\r\n gripWrap,\r\n colorFilters,\r\n length,\r\n loft,\r\n lie,\r\n }\r\n vm.validation = validation.validateAccessoriesVM(state, vm);\r\n return vm;\r\n} \r\n\r\nexport function getAuthenticationVM(state) {\r\n //const vm = helpers.getOptionVM(state, 'authentication');\r\n let vm = { \r\n ...helpers.getOptionVM(state, 'authentication'),\r\n }\r\n\r\n vm.validation = validation.validateAuthenticationVM(state, vm);\r\n return vm;\r\n} \r\n\r\n//For 17712, which states to allow users to leave auth page even if it is invalid. \r\nexport function getAuthenticationPageVM(state) {\r\n let vm = { \r\n ...helpers.getOptionVM(state, 'authentication'),\r\n }\r\n\r\n vm.validation = { 'valid' : true };\r\n return vm;\r\n} \r\n\r\nexport function getInsuranceVM(state){\r\n let vm = {\r\n ...helpers.getInsuranceVM(state), \r\n }\r\n vm.validation = {'valid' : true};\r\n return vm; \r\n}\r\n\r\nexport function getConfirmVM(state) {\r\n const finish = getFinishVM(state);\r\n const face = getFaceVM(state, true);\r\n const back = getBackVM(state, true);\r\n const top = getTopVM(state, true);\r\n const specs = getSpecsVM(state);\r\n const accessories = getAccessoriesVM(state);\r\n const auth = getAuthenticationVM(state);\r\n const price = getPriceVM(state);\r\n const insurance = getInsuranceVM(state);\r\n let vm = {\r\n finish,\r\n face,\r\n back,\r\n top,\r\n specs,\r\n accessories,\r\n auth,\r\n price,\r\n insurance,\r\n }\r\n vm.valid = (face.validation.valid && back.validation.valid && top.validation.valid\r\n && specs.validation.valid && accessories.validation.valid && auth.validation.valid\r\n && insurance.validation.valid);\r\n return vm;\r\n}\r\n\r\nexport function getReplacementPaintfillVM(state) {\r\n if (state.replacementPaintFill) {\r\n const paints = getAllPaintColors(state);\r\n return { \r\n color:find(paints, { id: state.replacementPaintFill.color }),\r\n location: state.replacementPaintFill.location\r\n }\r\n }\r\n return null; \r\n} \r\n\r\nexport function getPaintSummaryVM(state) {\t\r\n let paints = helpers.getPaletteColors(state);\r\n return paints;\r\n}\r\n\r\nexport function getFindPutterVM(state) {\r\n return {\r\n filter: state.findputter.filter,\r\n category: state.findputter.category,\r\n loading: state.findputter.loading,\r\n putters: getFilteredPutters(state.findputter),\r\n showBuyTab: !!find(state.findputter.putters, { 'buy_a_putter': true })\r\n }\r\n}\r\n\r\nexport function getPriceVM(state) {\r\n const minPrice = helpers.getOptionVM(state, 'minPrice').options;\r\n\r\n let price = getPrice(state);\r\n let isMinPrice = false;\r\n if(price < minPrice)\r\n { \r\n isMinPrice = true; \r\n price = minPrice;\r\n }\r\n\r\n let buyLink = 'confirm';\r\n \r\n return {\r\n total: price,\r\n buyLink,\r\n isMinPrice,\r\n }\r\n}\r\n\r\nexport function getPackageVM(state) {\r\n return {\r\n packages: helpers.getOptionVM(state, 'packages').options,\r\n }\r\n}","import * as isValid from 'state/customize/selectors/isValid' \r\n\r\nexport function validateFinishVM(state, vm){\r\n const parts = {\r\n finish : (vm.selected && vm.selected.type !== 'restorationType') ? \r\n isValid.validObj :\r\n isValid.finish(state, vm.finish),\r\n } \r\n const combinedValidation = isValid.combineValidation(...Object.keys(parts).map(k => parts[k]));\r\n return Object.assign({ parts }, combinedValidation);\r\n}\r\nexport function validateBackFaceVM(state, vm, isConfirmation){\r\n const parts = {\r\n //if paintFill is not set to 7 (keep as is) then pass false for enable validate paintFill locations\r\n paintFillLocations : { valid: true, errors: [] },\r\n initials : isValid.combineValidation(...vm.initials.map((loc) => isValid.initials(state, loc, isConfirmation))),\r\n stampsLocations : isValid.combineValidation(...vm.stampsLocations.map((loc) => isValid.stamp(state, loc, isConfirmation)))\r\n } \r\n \r\n if(isConfirmation) {\r\n\tparts.paintFillLocations = isValid.combineValidation(...vm.paintFillLocations.map((loc) => isValid.paint(state, loc, state.instance.paintFill !== 7)));\r\n }\r\n \r\n const combinedValidation = isValid.combineValidation(...Object.keys(parts).map(k => parts[k]));\r\n return Object.assign({ parts }, combinedValidation);\r\n}\r\n\r\nexport function validateTopVM(state, vm, isConfirmation){\r\n const parts = {\r\n flangeLines : isValid.line(state, vm.flangeLines, null, isConfirmation),\r\n topLines : isValid.line(state, vm.topLines, vm.sightDots, isConfirmation),\r\n sightDots : isValid.line(state, vm.sightDots, vm.topLines, isConfirmation),\r\n paintFillLocations : { valid: true, errors: [] },\r\n\t//if paintFill is not set to 7 (keep as is) then pass false for enable validate paintFill locations\r\n //paintFillLocations : isValid.combineValidation(...vm.paintFillLocations.map((loc) => isValid.paint(state, loc, state.instance.paintFill !== 7))),\r\n } \r\n \r\n if(isConfirmation) {\r\n\tparts.paintFillLocations = isValid.combineValidation(...vm.paintFillLocations.map((loc) => isValid.paint(state, loc, state.instance.paintFill !== 7)));\r\n }\r\n \r\n const combinedValidation = isValid.combineValidation(...Object.keys(parts).map(k => parts[k]));\r\n return Object.assign({ parts }, combinedValidation);\r\n}\r\n\r\nexport function validateSpecsVM(state, vm){\r\n const parts = {\r\n weight : isValid.weight(state, vm.weight),\r\n topWeight : vm.hasTopWeights ? isValid.weight(state, vm.topWeight) : isValid.validObj,\r\n reshaft: isValid.reshaft(state, vm),\r\n length: isValid.length(state, vm),\r\n\treshaftLength: isValid.reshaftLength(state, vm),\r\n lie: isValid.lie(state, vm),\r\n loft: isValid.loft(state, vm)\r\n } \r\n \r\n const combinedValidation = isValid.combineValidation(...Object.keys(parts).map(k => parts[k]));\r\n return Object.assign({ parts }, combinedValidation);\r\n}\r\n\r\nexport function validateAuthenticationVM(state, vm){\r\n const parts = {\r\n authentication : isValid.authentication(state, vm),\r\n } \r\n const combinedValidation = isValid.combineValidation(...Object.keys(parts).map(k => parts[k]));\r\n return Object.assign({ parts }, combinedValidation);\r\n}\r\n\r\nexport function validateAccessoriesVM(state, vm){\r\n const parts = {\r\n grip : isValid.grip(state, vm),\r\n shaftBand : isValid.shaftBand(state, vm),\r\n headCover : isValid.headCover(state, vm),\r\n buyAPutter : isValid.buyAPutter(state, vm)\r\n } \r\n const combinedValidation = isValid.combineValidation(...Object.keys(parts).map(k => parts[k]));\r\n return Object.assign({ parts }, combinedValidation);\r\n}","import { find, partial, identity, words, capitalize, isArray, isEmpty} from 'lodash'\r\nimport * as Services from 'Services'\r\nimport { getSelected as _getSelected, getMaxPaintFillColors, getValidPaintColors, getAllSolidPaintColors, getAllPaintColors, getTranslucentPaintRules } from 'state/customize/selectors'\r\n\r\nimport { getPaintSummaryVM } from 'state/viewModels'\r\nimport { getPartPrice } from 'state/customize/selectors/getPrice'\r\nimport { colorKeyLookup } from 'state/customize'\r\n\r\n\r\nfunction getSelected(state, key){\r\n var o = _getSelected(state,key);\r\n return (o) ? alterPartPrice(state, key, o) : o;\r\n}\r\n\r\nfunction alterPartPrice(state, key, option){\r\n return {\r\n ...option,\r\n price: getPartPrice(state, key, null, option),\r\n }\r\n}\r\n\r\nfunction alterPartPrices(state, key, opts){\r\n if (isArray(opts)) {\r\n if (opts[0] && opts[0].price !== undefined) {\r\n opts = opts.map((o) => (alterPartPrice(state, key, o))) \r\n }\r\n }\r\n return opts; \r\n}\r\n\r\nexport function getPaintSummaryProps(state){\r\n return{ \r\n paintSummary : getPaintSummaryVM(state),\r\n maxPaintfillColors : getMaxPaintFillColors(state),\r\n allPaintColors : getAllPaintColors(state),\r\n paintSwapValid : state.paintSwapValid,\r\n } \r\n}\r\n\r\nexport function isPaintfillArea(locationParam) {\r\n return !(/text/i).exec(locationParam) &&\r\n !(/stamp/i).exec(locationParam) &&\r\n !(/topline/i).exec(locationParam) &&\r\n !(/flangeline/i).exec(locationParam)\r\n ;\r\n}\r\n\r\nexport function getPaintVM(state, parameterKey, noWarn) {\r\n let loc = find(state.putter.paintFillLocation, { 'parameterKey' : 'topLinePerpendicularColor' });\r\n let hasPerpendicularLines = false;\r\n if(loc && (parameterKey.includes('topLine') || parameterKey.includes('sightDot')))\r\n {\r\n //if the putter has top perpendicluar lines then we use the top perpendicular line parameter \r\n //in place of the topLines to colorize them altogether\r\n hasPerpendicularLines = true;\r\n }\r\n else \r\n {\r\n loc = find(state.putter.paintFillLocation, { parameterKey });\r\n }\r\n const finish = getSelected(state, 'finish');\r\n let paints = [];\r\n \r\n const translucentPaintRules = getTranslucentPaintRules(state, finish, parameterKey);\r\n\r\n if(!translucentPaintRules.allowTranslucent)\r\n {\r\n if(!!loc)\r\n {\r\n paints = getValidPaintColors(state, loc.id);\r\n }\r\n else\r\n {\r\n paints = getAllSolidPaintColors(state);\r\n }\r\n }\r\n else\r\n {\r\n paints = getAllPaintColors(state);\r\n }\r\n\r\n if(parameterKey.toLowerCase().indexOf('weight') === -1)\r\n {\r\n //for non-weight locations, show only non 'onWeightsOnly' paint colors\r\n paints = paints.filter(paint => paint.onWeightsOnly === 'False');\r\n }\r\n //For non-cavity dots filter out paint colors that are for cavity dots only\r\n if(loc && !loc.isCavityDot)\r\n {\r\n paints = paints.filter(paint => paint.onCavityDotsOnly === 'False');\r\n }\r\n const selections = getSelected(state, 'paintFillLocations') || [];\r\n let selected = find(selections, { location: { parameterKey } });\r\n if(hasPerpendicularLines && parameterKey.includes('topLine'))\r\n {\r\n selected = find(selections, { location: { 'parameterKey' : 'topLinePerpendicularColor' } });\r\n }\r\n selected = (selected && selected.color) || {};\r\n\r\n if (!loc && !noWarn) {\r\n console.warn(`Couldn't find paintfill location for parameter ${parameterKey}`);\r\n }\r\n\r\n return (loc) ? { loc, paints, selected } : null;\r\n}\r\n\r\nexport function getInitialsVM(state, initialsLoc) {\r\n const loc = initialsLoc;\r\n const styleOptions = state.putter.personalizationStyle || [];\r\n const selections = getSelected(state, 'initials') || [];\r\n const selected = selections[initialsLoc.label] || {};\r\n\r\n //Link real text color and archTextColor paint params\r\n const paintKey = initialsLoc.paintFillKey\r\n let paint = getPaintVM(state, paintKey);\r\n if (paintKey === 'faceTextColor'){\r\n const archPaint = getPaintVM(state, 'archTextColor', true);\r\n if (archPaint){ \r\n paint = mergePaintVMs( [paint, archPaint ]);\r\n }\r\n }\r\n\r\n return { loc, styleOptions, selected, paint };\r\n}\r\n\r\nexport function getStampVM(state, stampLoc) {\r\n const loc = stampLoc;\r\n let stamps = state.putter.stamp || [];\r\n const selections = getSelected(state, 'stampSelections') || [];\r\n let selected = find(selections, { locationId: stampLoc.id });\r\n const paint = getPaintVM(state, stampLoc.paintFillKey);\r\n\r\n let stamps2 = stamps;\r\n if(stampLoc.parameterKey != \"toeStamp\") {\r\n\tstamps = stamps.filter((stamp) => !stamp.faceToeOnly);\r\n }\t \r\n\r\n return { loc, stamps, selected, paint };\r\n}\r\n\r\nexport function mergePaintVMs(paints){\r\n if (!paints.filter(identity).length) return {};\r\n const ids = paints.map(p => p.loc.id); \r\n const label = paints[0].loc.label.replace('Toe','').replace('Heel','');\r\n const loc = Object.assign({}, paints[0].loc, {id:ids, label});\r\n return Object.assign({}, paints[0], {loc}) \r\n}\r\n\r\nexport function mergeLinePaintVMs(paints) {\r\n const unMergedPaints = paints.filter(paint => !paint.loc.label.includes('Toe') && !paint.loc.label.includes('Heel'));\r\n const mergedPaint = mergePaintVMs(paints.filter(paint => paint.loc.label.includes('Toe') || paint.loc.label.includes('Heel')));\r\n if(!isEmpty(mergedPaint))\r\n return [...unMergedPaints, mergedPaint];\r\n return unMergedPaints;\r\n}\r\n\r\nexport function getLineVM(state, optionType) {\r\n const options = state.putter[optionType];\r\n const selected = getSelected(state, optionType);\r\n const paints = ((selected && selected.parameterKeys.split(',')) || [])\r\n .filter(identity)\r\n .map(k => colorKeyLookup[k])\r\n .map(partial(getPaintVM, state))\r\n ;\r\n return { \r\n options, \r\n selected, \r\n paints: mergeLinePaintVMs(paints),\r\n }\r\n}\r\n\r\nexport function getEngravingVM(state, parameterKey) {\r\n const stampLoc = Object.assign({},\r\n state.putter.weightEngraving,\r\n {\r\n label: words(parameterKey).map(capitalize).join(' '),\r\n parameterKey,\r\n });\r\n const loc = stampLoc;\r\n const stamps = state.putter.weightEngravingStamp || [];\r\n const selected = getSelected(state, parameterKey) || {};\r\n\r\n return { loc, stamps, selected };\r\n}\r\n\r\nexport function getInsuranceVM(state){\r\n return {\r\n selected : state.instance.insuranceValue\r\n } \r\n}\r\n\r\nexport function getWeightVM(state, isTop) {\r\n const keys = {\r\n weight: isTop ? 'topWeight' : 'weight',\r\n weightEngraving: isTop ? 'topWeightEngraving' : 'weightEngraving',\r\n weightEngravingHeel: isTop ? 'weightEngravingTopHeel' : 'weightEngravingHeel',\r\n weightEngravingToe: isTop ? 'weightEngravingTopToe' : 'weightEngravingToe',\r\n weightFrontColor: isTop ? 'topWeightFrontColor' : 'weightFrontColor',\r\n weightRearColor: isTop ? 'topWeightRearColor' : 'weightRearColor',\r\n }\r\n const weights = state.putter[keys.weight];\r\n const selected = getSelected(state, keys.weight);\r\n const selectedEngraving = getSelected(state, keys.weightEngraving)\r\n const engravingOption = (state.putter[keys.weightEngraving] && state.putter[keys.weightEngraving][0]) || {} \r\n const frontEngraving = getEngravingVM(state, keys.weightEngravingToe);\r\n const rearEngraving = getEngravingVM(state, keys.weightEngravingHeel); \r\n const frontPaint = getPaintVM(state, keys.weightFrontColor);\r\n const rearPaint = getPaintVM(state, keys.weightRearColor);\r\n\r\n return { keys, weights, selected, engravingOption, selectedEngraving, frontEngraving, rearEngraving, frontPaint, rearPaint };\r\n}\r\n\r\nexport function getOptionVM(state, key, usePriceFromData) {\r\n return {\r\n options: (usePriceFromData) ? state.putter[key] : alterPartPrices(state, key, state.putter[key]),\r\n selected: getSelected(state, key) \r\n }\r\n}\r\n\r\nexport function getDefaultColors(state) {\r\n let defaultPaintFillLocs = state.defaultInstance.paintFillLocations;\r\n let defaultColors = [];\r\n for(let y = 0; y < defaultPaintFillLocs.length; y++) {\r\n\t let loc = defaultPaintFillLocs[y];\r\n\t \r\n\t if(loc.colorLabel != 'Raw' && !defaultColors.includes(loc.colorId)) {\r\n\t\t defaultColors.push(loc.colorId);\r\n\t }\r\n }\r\n \r\n return defaultColors;\r\n}\r\n\r\nexport function getDefaultLocationsForColor(state, colorId) {\r\n let defaultPaintFillLocs = state.defaultInstance.paintFillLocations;\r\n let defaultLocs = [];\r\n for(let y = 0; y < defaultPaintFillLocs.length; y++) {\r\n\t let loc = defaultPaintFillLocs[y];\r\n\t \r\n\t if(loc.colorId == colorId && !defaultLocs.includes(loc.locationId)) {\r\n\t\t defaultLocs.push(loc.locationId);\r\n\t }\r\n }\r\n \r\n return defaultLocs;\r\n}\r\n\r\nexport function getPaletteColors(state) {\r\n let paints = [];\r\n if(typeof state.instance['paletteColors'] !== 'undefined' && state.instance['paletteColors'] ) {\r\n\tpaints = state.instance['paletteColors'];\r\n }\r\n \r\n if(paints.length > 0 && (typeof paints[0] == \"undefined\" || paints[0] == null)) {\r\n\t paints = [];\r\n }\r\n \r\n return paints;\r\n}\r\n\r\n\r\nexport function getPaintFillPrice() {\r\n return '78.00';\r\n}\r\n\r\nexport function getCookieVal(cname) {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for(var i = 0; i { \r\n let loc = getPaintFillLocationById(state, paintFillLocation.locationId)\r\n if (!loc) { paintFillsToIgnore.push(paintFillLocation.locationId); }\r\n return loc && !isPaintfillArea(loc.parameterKey)\r\n }).forEach( (paintFillLocation) => {\r\n let paintFillLocationParam = getPaintFillLocationById(state, paintFillLocation.locationId);\r\n if(!!paintFillLocationParam //&& (!isPaintfillArea(paintFillLocationParam.parameterKey)\r\n &&\r\n (\r\n ( !state.putter.faceSoleImageParameters.includes(paintFillLocationParam.parameterKey)\r\n || !state.putter.backCavityImageParameters.includes(paintFillLocationParam.parameterKey)\r\n || !state.putter.playerProfileImageParameters.includes(paintFillLocationParam.parameterKey) \r\n )\r\n && !state.putter.existingFlangeLineParameters.includes(findKey(colorKeyLookup, colorKeyItem => colorKeyItem === paintFillLocationParam.parameterKey))\r\n && !state.putter.existingTopLineParameters.includes(findKey(colorKeyLookup, colorKeyItem => colorKeyItem === paintFillLocationParam.parameterKey))\r\n && !['topLinePerpendicular'].includes(findKey(colorKeyLookup, colorKeyItem => colorKeyItem === paintFillLocationParam.parameterKey)))\r\n )\r\n {\r\n paintFillsToIgnore.push(paintFillLocationParam.id);\r\n }\r\n });\r\n /*\r\n //Ignore stampSelections?\r\n state.instance.stampSelections.forEach( (stampSelection) => {\r\n console.log(getPaintFillLocationById(state, stampSelection.locationId));\r\n //paintFillsToIgnore.push(stampSelection.locationId);\r\n });\r\n */\r\n state.defaultInstance.paintFillLocations.filter(paintFillLocation => \r\n !paintFillsToIgnore.includes(paintFillLocation.locationId) )\r\n .forEach(paintFillLocation => {\r\n try{ \r\n state = selectPaint(state, paintFillLocation.locationId, paintFillLocation.colorId);\r\n }catch (e){\r\n if (e.name !== 'MaxColorsError') { throw (e); }\r\n }\r\n });\r\n\r\n }\r\n return state;\r\n}\r\n\r\nfunction setDefaultSelectionForPaintKey(state, paintKey){\r\n const colorKey = colorKeyLookup[paintKey];\r\n const loc = getPaintFillLocationByParameterKey(state, colorKey)\r\n const defaultInstancePaintFillColorId = getDefaultColorByLocation(state, loc.id).colorId;\r\n const selectedColorId = getSelectedColorByLocation(state, loc.id).colorId;\r\n if(loc && selectedColorId <= 0)\r\n {\r\n try{ \r\n state = selectPaint(state, loc.id, defaultInstancePaintFillColorId) \r\n }catch (e){\r\n if (e.name !== 'MaxColorsError') { throw (e); }\r\n }\r\n }\r\n return state;\r\n}\r\n\r\nfunction setDefaultSelectionPaintFill(state, field){ //eslint-disable-line no-unused-vars\r\n const sel = getSelected(state, field);\r\n const keys = (sel && sel.parameterKeys && sel.parameterKeys.split(',')) || [];\r\n return keys.reduce(setDefaultSelectionForPaintKey, state)\r\n}\r\n\r\nfunction clearSelectionForPaintKey(state, paintKey){\r\n const colorKey = colorKeyLookup[paintKey] || paintKey;\r\n const loc = getPaintFillLocationByParameterKey(state, colorKey);\r\n return (loc) ? selectPaint(state, loc.id, 0) : state; \r\n}\r\n\r\nfunction clearSelectionPaintFill(state, field){\r\n const sel = getSelected(state, field);\r\n const keys = (sel && sel.parameterKeys && sel.parameterKeys.split(',')) || [];\r\n return keys.reduce(clearSelectionForPaintKey, state)\r\n}\r\n\r\nexport function clearPaintFills(state) {\r\n let paintFillLocations = getSelected(state, 'paintFillLocations');\r\n \r\n //Here we grab the optional paintFills and create an array of their IDs to exclude when we clear paintFills\r\n let paintFillsToKeep = [];\r\n const initials = getSelected(state, 'initials');\r\n forOwn(initials, function(value, key){\r\n if(value.enabled)\r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, colorKeyLookup[key]).id);\r\n });\r\n const stampSelections = getSelected(state, 'stampSelections');\r\n stampSelections.forEach(stampSelection => { \r\n if(stampSelection.enabled)\r\n {\r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, stampSelection.location.paintFillKey).id)\r\n } \r\n });\r\n const sightDot = getSelected(state, 'sightDot');\r\n if(sightDot && sightDot.paintFillKeys)\r\n {\r\n let perpendicularLine = find(state.putter.paintFillLocation, { 'parameterKey' : 'topLinePerpendicularColor' });\r\n if(perpendicularLine)\r\n {\r\n //if putter has perpendicular line paintfill instead of sight dot paintfill, keep that instead\r\n paintFillsToKeep.push(perpendicularLine.id);\r\n }\r\n else\r\n {\r\n sightDot.paintFillKeys.split(',').forEach(paintFillKey => \r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, paintFillKey).id)\r\n );\r\n }\r\n }\r\n const topLines = getSelected(state, 'topLine');\r\n if(topLines && topLines.paintFillKeys)\r\n {\r\n let perpendicularLine = find(state.putter.paintFillLocation, { 'parameterKey' : 'topLinePerpendicularColor' });\r\n if(perpendicularLine)\r\n {\r\n //if putter has perpendicular line paintfill instead of top line paintfill, keep that instead \r\n paintFillsToKeep.push(perpendicularLine.id);\r\n }\r\n else\r\n {\r\n topLines.paintFillKeys.split(',').forEach(paintFillKey => \r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, paintFillKey).id)\r\n );\r\n }\r\n }\r\n const flangeLines = getSelected(state, 'flangeLine');\r\n if(flangeLines && flangeLines.paintFillKeys)\r\n {\r\n flangeLines.paintFillKeys.split(',').forEach(paintFillKey => \r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, paintFillKey).id)\r\n );\r\n }\r\n const weightEngravingHeel = getSelected(state, 'weightEngravingHeel');\r\n if(weightEngravingHeel)\r\n {\r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, 'weightRearColor').id)\r\n }\r\n const weightEngravingToe = getSelected(state, 'weightEngravingToe');\r\n if(weightEngravingToe)\r\n {\r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, 'weightFrontColor').id)\r\n }\r\n const weightEngravingTopHeel = getSelected(state, 'weightEngravingTopHeel');\r\n if(weightEngravingTopHeel)\r\n {\r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, 'topWeightRearColor').id)\r\n }\r\n const weightEngravingTopToe = getSelected(state, 'weightEngravingTopToe');\r\n if(weightEngravingTopToe)\r\n {\r\n paintFillsToKeep.push(getPaintFillLocationByParameterKey(state, 'topWeightFrontColor').id)\r\n }\r\n paintFillLocations = paintFillLocations.filter(paintFillLocation => paintFillsToKeep.includes(paintFillLocation.locationId))\r\n let selection = { paintFillLocations };\r\n \r\n const instance = Object.assign({}, state.instance, selection);\r\n let newstate = freeze(Object.assign({}, state, { instance }));\r\n return clearPaletteColors(newstate);\r\n}\r\n\r\nexport function clearAllPaintFills(state) {\r\n let selection = { 'paintFillLocations': [], 'paletteColors': []};\r\n const instance = Object.assign({}, state.instance, selection);\r\n return freeze(Object.assign({}, state, { instance }));\r\n}\r\n\r\nexport function clearPaletteColors(state) {\r\n let selection = { 'paletteColors': []};\r\n const instance = Object.assign({}, state.instance, selection);\r\n return freeze(Object.assign({}, state, { instance }));\r\n}\r\n\r\nfunction clearIdSelection(state, field) {\r\n if (!isNumber(state.instance[field])) {\r\n throw new Error(`Trying to set non-id field '${field}' to 0 in instance`);\r\n }\r\n let selection = {};\r\n selection = { [field]: 0}\r\n const instance = Object.assign({}, state.instance, selection);\r\n return freeze(Object.assign({}, state, { instance }));\r\n}\r\n\r\nexport function select(state, field, id) {\r\n //ignore dummy 'refinish' option used for Finish & Paintfill \r\n if (!has(state.instance, field) && field !== 'refinish') {\r\n throw new Error(`Trying to set invalid instance field '${field}'`);\r\n }\r\n if (!isNumber(state.instance[field]) && field !== 'refinish') {\r\n throw new Error(`Trying to set non-id field '${field}' in instance`);\r\n }\r\n\r\n let selection = {}\r\n switch (field) { \r\n case 'topWeight' :\r\n case 'weight':\r\n selection = { [field]: id };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n //check if a weight engraving is selected\r\n if(state.instance.weightEngravingHeel > 0)\r\n {\r\n let stamp = find(state.putter.weightEngravingStamp, { id : state.instance.weightEngravingHeel });\r\n //check if the selected weight engraving is disabled for this weight id\r\n if(stamp.disabledWeightIds.split(',').indexOf(id.toString()) > -1 )\r\n {\r\n //remove the weight engraving selection\r\n state = clearIdSelection(state, 'weightEngravingHeel');\r\n }\r\n }\r\n //check if a weight engraving is selected\r\n if(state.instance.weightEngravingToe > 0)\r\n {\r\n let stamp = find(state.putter.weightEngravingStamp, { id : state.instance.weightEngravingToe });\r\n //check if the selected weight engraving is disabled for this weight id\r\n if(stamp.disabledWeightIds.split(',').indexOf(id.toString()) > -1 )\r\n {\r\n //remove the weight engraving selection\r\n state = clearIdSelection(state, 'weightEngravingToe');\r\n }\r\n }\r\n break;\r\n\r\n case 'weightEngravingHeel':\r\n case 'weightEngravingToe':\r\n case 'weightEngravingTopToe':\r\n case 'weightEngravingTopHeel':\r\n if (id !== 0 && !find(state.putter.weightEngravingStamp, { id })) {\r\n throw new Error(`Trying to stamp invalid weight stamp id: ${id}`);\r\n }\r\n if(id === 0 && state.instance.paintFill === 7)\r\n {\r\n //if weight engraving is de-selected and paintfill is not enabled (keep as is), then de-select the paintFill\r\n state = clearSelectionForPaintKey(state, field);\r\n }\r\n selection = { [field]: id };\r\n break;\r\n\r\n case 'topLine':\r\n case 'sightDot': \r\n state = clearSelectionPaintFill(state, field);\r\n selection = { [field]: id } \r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n \r\n const otherField = (field === 'topLine') ? 'sightDot' : 'topLine';\r\n const selected = getSelected(state, field);\r\n const otherFieldSelected = getSelected(state, otherField);\r\n \r\n // topLine and sightDots are mutually exclusive, but tracked separately\r\n if (id !== 0) {\r\n if(!!selected && !!otherFieldSelected && selected.parameterKeys !== otherFieldSelected.parameterKeys)\r\n {\r\n state = clearSelectionPaintFill(state, otherField);\r\n }\r\n selection[otherField] = 0; \r\n }\r\n //Paintfill is keep as is (id 7) && the selected option has no lines aka 'keep as is' && the putter has a perpendicular line then clear the paintfill\r\n const selectedPaintFill = getSelected(state, 'paintFill');\r\n let perpendicularLine = find(state.putter.paintFillLocation, { 'parameterKey' : 'topLinePerpendicularColor' });\r\n if(selectedPaintFill.id === 7 && selected.numberOfLines === 0 && perpendicularLine)\r\n {\r\n state = clearSelectionForPaintKey(state, 'topLinePerpendicularColor');\r\n }\r\n break;\r\n\r\n case 'flangeLine':\r\n state = clearSelectionPaintFill(state, field);\r\n selection = { [field]: id } \r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n \r\n break; \r\n \r\n case 'paintFill':\r\n let changingFinish = false;\r\n\t let disableRestoration = false;\r\n const restorationType = getSelected(state, 'restorationType');\r\n if(restorationType)\r\n {\r\n //if restorationType was selected, clear that selection and clear accessory selections, also reset reshaft to 'keep shaft'\r\n\t\tdisableRestoration = true;\r\n state = clearIdSelection(state, 'restorationType');\r\n state = clearIdSelection(state, 'grip');\r\n state = clearIdSelection(state, 'shaftBand');\r\n state = clearIdSelection(state, 'headCover');\r\n\t\t\r\n\t\tlet selLength = getSelected(state, 'length');\r\n\t\t\r\n\t\t//clear the reshaft unless reshaft is required based on length\r\n\t\tif(selLength == null || !selLength.reshaftRequired) {\r\n\t\t\tconst reshaftKeepShaft = find(state.putter.reshaft, (reshaft) => reshaft.keepShaft);\r\n\t\t\tif(reshaftKeepShaft)\r\n\t\t\t{\r\n\t\t\t selection = { 'reshaft': reshaftKeepShaft.id };\r\n\t\t\t state = setInstance(state, Object.assign({}, state.instance, selection));\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t state = clearIdSelection(state, 'reshaft');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\tconsole.log('selLength=' + selLength.reshaftRequired);\r\n\t\t\r\n\t\tconsole.log('obj=' + JSON.stringify(selLength));\r\n\t\t}\r\n\t\t\r\n \r\n if(state.defaultInstance && state.instance.finish !== state.defaultInstance.finish)\r\n {\r\n changingFinish = true;\r\n }\r\n else\r\n {\r\n state = clearIdSelection(state, 'finish');\r\n }\r\n }\r\n \r\n //if new paintFill, clear paintFills, unless already set to new paintFill\r\n if(id === 6 && (state.instance.paintFill !== 6 || disableRestoration))\r\n {\r\n if(state.defaultInstance && state.instance.finish !== state.defaultInstance.finish)\r\n {\r\n changingFinish = true;\r\n }\r\n //state = clearPaintFills(state);\r\n state = clearPaintFills(state);\r\n }\r\n //if keep as is, reset paintfills to blank and clear finish\r\n else if(id === 7)\r\n {\r\n //state = clearPaintFills(state);\r\n state = clearPaintFills(state);\r\n if(state.defaultInstance && state.defaultInstance.finish)\r\n {\r\n changingFinish = true;\r\n }\r\n else\r\n {\r\n state = clearIdSelection(state, 'finish');\r\n }\r\n }\r\n //Set finish to default instance finish\r\n if(changingFinish) \r\n {\r\n selection = { 'finish': state.defaultInstance.finish };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n }\r\n //if changing the finish then check the current paints are valid\r\n if(changingFinish)\r\n state = freeze(Object.assign({}, state, { 'paintsValid' : checkPaintsValid(state) }));\r\n else\r\n {\r\n //some default paints are not valid for black finish, so clear those\r\n state = clearInvalidPaints(state);\r\n }\r\n selection = { [field]: id };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n \r\n break;\r\n\r\n case 'restorationType':\r\n //if \"restoration\" paintFill option is selected, then set paintFill to \"new paintfill\" (id 6), \r\n // and reshaft to either the appropriately tagged option, or old hardcoded id \"reshaft\" (id:12)\r\n //also grip should default to 'replace to standard grip' \r\n //headCover default to 'replace to standard headCover' \r\n //shaftBand default to 'replace to standard shaftBand' \r\n //if none chosen\r\n //var enablingPaint = (state.instance.paintFill !== 6);\r\n\t var enablingPaint = true;\r\n selection = { 'paintFill': 6, \r\n 'reshaft': find(state.putter.reshaft, (reshaft) => reshaft.restorationDefault === true) ?\r\n find(state.putter.reshaft, (reshaft) => reshaft.restorationDefault === true).id : 12, \r\n 'grip': state.instance.grip ? state.instance.grip : find(state.putter.grip, (grip) => grip.restorationDefault === true) ?\r\n find(state.putter.grip, (grip) => grip.restorationDefault === true).id : 0, \r\n 'headCover': state.instance.headCover ? state.instance.headCover : find(state.putter.headCover, (headCover) => headCover.restorationDefault === true) ?\r\n find(state.putter.headCover, (headCover) => headCover.restorationDefault === true).id : 0,\r\n 'shaftBand': state.instance.shaftBand ? state.instance.shaftBand : find(state.putter.shaftBand, (shaftBand) => shaftBand.restorationDefault === true) ? \r\n find(state.putter.shaftBand, (shaftBand) => shaftBand.restorationDefault === true).id : 0,\r\n }\r\n //only set defaults if restoration picked for the first time, so re-clicking add restoration will not reset defaults\r\n if(state.instance.restorationType !== 14)\r\n {\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n if(enablingPaint)\r\n {\r\n //only set default paintFill if paintFill selection is changed\r\n state = setDefaultPaintFills(state);\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n }\r\n //Set finish to default instance finish\r\n if(state.defaultInstance && state.instance.finish !== state.defaultInstance.finish)\r\n {\r\n selection = { 'finish': state.defaultInstance.finish };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n }\r\n if(!state.defaultInstance)\r\n {\r\n selection = { 'finish': 2 };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n }\r\n //some default paints are not valid for black finish, so clear those\r\n state = clearInvalidPaints(state);\r\n }\r\n \r\n selection = { [field]: id };\r\n break;\r\n\r\n case 'desiredLength': // find and select a default weight if it exists\r\n selection = { [field]: id };\r\n let l = find(state.putter.desiredLength, (o) => o.id === id)\r\n if (l && l.defaultWeight) {\r\n selection['weight'] = l.defaultWeight\r\n if (state.putter.hasTopWeights){ \r\n selection['topWeight'] = l.defaultWeight\r\n }\r\n }\r\n break;\r\n\r\n case 'length':\r\n selection = { [field]: id };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n const selectedLength = getSelected(state, field);\r\n const selectedRestoration = getSelected(state, 'restorationType')\r\n \r\n if((selectedRestoration && selectedRestoration.id) || selectedLength.reshaftRequired) {\r\n //if reshaftRequired, set reshaft to restoration default'reshaft' (or fallback to id: 12) \r\n // and set to default grip and shaftBand if no default grip or shaftBand has been chosen\r\n selection = { \r\n 'reshaft': find(state.putter.reshaft, (reshaft) => reshaft.restorationDefault === true) ?\r\n find(state.putter.reshaft, (reshaft) => reshaft.restorationDefault === true).id : 12, \r\n 'grip': state.instance.grip ? state.instance.grip : find(state.putter.grip, (grip) => grip.restorationDefault === true) ?\r\n find(state.putter.grip, (grip) => grip.restorationDefault === true).id : 0, \r\n 'shaftBand': state.instance.shaftBand ? state.instance.shaftBand : find(state.putter.shaftBand, (shaftBand) => shaftBand.restorationDefault === true) ? \r\n find(state.putter.shaftBand, (shaftBand) => shaftBand.restorationDefault === true).id : 0,\r\n };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n } else {\r\n //otherwise, reset shaft to first option available\r\n selection = { 'reshaft' : state.putter.reshaft[0].id };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n }\r\n //if length option requires a user selected desired length then default to the first option\r\n if(selectedLength.userSelection && state.putter.desiredLength && state.putter.desiredLength.length > 0) {\r\n selection = { 'desiredLength' : state.putter.desiredLength[0].id };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n }\r\n break;\r\n \r\n case 'reshaft': \r\n var newReshaft = find(state.putter['reshaft'], { id });\r\n if (newReshaft && !newReshaft.keepShaft) {\r\n //grip should default to 'replace to standard grip' \r\n //shaftBand default to 'replace to standard shaftBand' \r\n //if none chosen\r\n selection = { [field]: id , \r\n 'grip': state.instance.grip ? state.instance.grip : find(state.putter.grip, (grip) => grip.restorationDefault === true) ?\r\n find(state.putter.grip, (grip) => grip.restorationDefault === true).id : 0, \r\n 'shaftBand': state.instance.shaftBand ? state.instance.shaftBand : find(state.putter.shaftBand, (shaftBand) => shaftBand.restorationDefault === true) ? \r\n find(state.putter.shaftBand, (shaftBand) => shaftBand.restorationDefault === true).id : 0,\r\n }\r\n } else {\r\n selection = { [field] : id };\r\n }\r\n break;\r\n //For checking the paints are valid when you switch finishes which would cause invalid colors selected\r\n case 'finish':\r\n selection = { [field]: id };\r\n state = setInstance(state, Object.assign({}, state.instance, selection));\r\n state = freeze(Object.assign({}, state, { 'paintsValid' : checkPaintsValid(state) }));\r\n //state = clearInvalidPaints(state);\r\n break;\r\n default:\r\n //TODO: Check all selections\r\n selection = { [field]: id };\r\n break;\r\n }\r\n const instance = Object.assign({}, state.instance, selection);\r\n return freeze(Object.assign({}, state, { instance }));\r\n};\r\n\r\nexport function applyFinish(state, apply) {\r\n if(apply)\r\n {\r\n state = clearInvalidPaints(state);\r\n return freeze(Object.assign({}, state, { 'paintsValid': true })); \r\n }\r\n else\r\n {\r\n const selection = { 'finish': 2 };\r\n const instance = Object.assign({}, state.instance, selection);\r\n return freeze(Object.assign({}, state, { instance, 'paintsValid': true }));\r\n }\r\n}\r\n\r\nexport function setValue(state, field, value){\r\n const selection = { [field]: value };\r\n const instance = Object.assign({}, state.instance, selection); \r\n return freeze(Object.assign({}, state, { instance }));\r\n}\r\n\r\n\r\nexport function selectInitials(state, locationName, field, value) {\r\n if (field === 'enabled' && !value){ \r\n var defaultStyle = (state.putter.personalizationStyle.length) ? state.putter.personalizationStyle[0].id : 0;\r\n state = flow(\r\n partialRight(selectInitials, locationName, 'characters', ''),\r\n partialRight(selectInitials, locationName, 'personalizationStyleId', defaultStyle),\r\n partialRight(selectInitials, locationName, 'separateWithPeriods', false),\r\n partialRight(clearSelectionForPaintKey, locationName)\r\n )(state);\r\n }\r\n\r\n if (field === 'characters') { value = value.toUpperCase(); }\r\n\r\n const loc = state.instance.initials[locationName];\r\n const initials = Object.assign({}, state.instance.initials, {\r\n [locationName]: Object.assign({}, loc, { [field]: value })\r\n });\r\n const instance = Object.assign({}, state.instance, { initials })\r\n return freeze(Object.assign({}, state, { instance }));\r\n};\r\n\r\nexport function selectStamp(state, locationId, field, value) {\r\n //disable initials code goes here\r\n const loc = find(state.putter.stampLocation, { id: locationId });\r\n if (!loc) {\r\n throw new Error(`Trying to stamp invalid location id: ${locationId}`);\r\n }\r\n\r\n const enabled = (field === 'enabled') ? value : (field === 'stampId' && !!value);\r\n const stampId = (field === 'stampId') ? value : null;\r\n let stampSelections = state.instance.stampSelections;\r\n const existing = findIndex(stampSelections, { locationId });\r\n\r\n if (stampId && !find(state.putter.stamp, { id: stampId })) {\r\n throw new Error(`Trying to stamp invalid stamp id: ${stampId}`);\r\n }\r\n \r\n if (existing > -1) {\r\n if (enabled) {\r\n stampSelections = [\r\n ...stampSelections.slice(0, existing),\r\n Object.assign({}, stampSelections[existing], { enabled, stampId }),\r\n ...stampSelections.slice(existing + 1)\r\n ];\r\n } else {\r\n stampSelections = [\r\n ...stampSelections.slice(0, existing),\r\n ...stampSelections.slice(existing + 1)\r\n ];\r\n if(!isPaintfillArea(loc.parameterKey) || state.instance.paintFill === 7)\r\n {\r\n state = clearSelectionForPaintKey(state, loc.parameterKey);\r\n }\r\n }\r\n\r\n } else if (enabled || stampId) {\r\n stampSelections = [...stampSelections, { enabled, locationId, stampId }];\r\n }\r\n\r\n const instance = Object.assign({}, state.instance, { stampSelections });\r\n return freeze(Object.assign({}, state, { instance }));\r\n};\r\n\r\nexport function selectPaint(state, locationId, colorId) {\r\n if (!find(state.putter.paintFillLocation, { id: locationId })) {\r\n throw new Error(`Trying to paint invalid location id: ${locationId}`);\r\n }\r\n if (colorId && !find(getAllPaintColors(state), { id: colorId })) {\r\n throw new Error(`Trying to paint invalid color id: ${colorId}`);\r\n }\r\n\r\n let paintFillLocations = state.instance.paintFillLocations; \r\n if (colorId) { \r\n //don't count 'raw' color as a color in the max color limit\r\n const rawColors = getAllPaintColors(state).filter(color => color.isRaw);\r\n let paletteColors = getPaletteColors(state);\r\n\tconst newColors = [{ id: colorId }, ...paletteColors];\r\n\tconst numColors = uniqBy(newColors.filter(color => {\r\n if(rawColors.length > 0) \r\n return rawColors.filter(rawColor => rawColor.id === color.id).length === 0\r\n else\r\n return true;\r\n }), 'id').length;\r\n\t \r\n if (numColors > state.putter.maxPaintfillColors) {\r\n var e = new Error('Maximum color count reached');\r\n e.name = 'MaxColorsError';\r\n //return state;\r\n throw(e)\r\n }\r\n }\r\n\r\n const existing = findIndex(paintFillLocations, { locationId });\r\n if (existing > -1) {\r\n if (colorId) {\r\n paintFillLocations = [\r\n ...paintFillLocations.slice(0, existing),\r\n Object.assign({}, paintFillLocations[existing], { colorId }),\r\n ...paintFillLocations.slice(existing + 1)\r\n ];\r\n } else {\r\n paintFillLocations = [\r\n ...paintFillLocations.slice(0, existing),\r\n ...paintFillLocations.slice(existing + 1)\r\n ];\r\n } \r\n } else if (colorId) {\r\n paintFillLocations = [...paintFillLocations, { locationId, colorId }];\r\n }\r\n \r\n state = selectPaletteColor(state, colorId, -1);\r\n\r\n const instance = Object.assign({}, state.instance, { paintFillLocations });\r\n return freeze(Object.assign({}, state, { instance }));\r\n};\r\n\r\nexport function replacePaint(state, oldColorId, newColorId, additionalLocationId) { \r\n let paletteColors = getPaletteColors(state);\r\n if(oldColorId < 0) {\r\n\t let tempState = selectPaletteColor(state, newColorId, oldColorId);\r\n\t return tempState;\r\n }\r\n\r\n\r\n let paintFillLocations = state.instance.paintFillLocations.filter(l =>\r\n l.colorId !== oldColorId || (l.colorId === oldColorId && !!find(getValidPaintColors(state, l.locationId), \r\n { id: \r\n //if putter has 'raw cavity dot' paint color (onCavityDotsOnly === 'True') \r\n //and paint fill location isCavityDot\r\n //and new color is raw \r\n //replace newColorId with 'raw cavity dot' id\r\n (state.putter.paintFillColor.filter(color => color.onCavityDotsOnly === 'True').length > 0 \r\n && getPaintFillLocationById(state, l.locationId).isCavityDot \r\n && state.putter.paintFillColor.filter(color => color.id === newColorId)[0].isRaw)\r\n ? state.putter.paintFillColor.filter(color => color.onCavityDotsOnly === 'True')[0].id\r\n : newColorId }))\r\n );\r\n paintFillLocations = paintFillLocations.map(l => {\r\n return (l.colorId === oldColorId) ?\r\n { locationId: l.locationId,\r\n colorId: \r\n //if putter has 'raw cavity dot' paint color (onCavityDotsOnly === 'True') \r\n //and paint fill location isCavityDot\r\n //and new color is raw \r\n //replace newColorId with 'raw cavity dot' id\r\n (state.putter.paintFillColor.filter(color => color.onCavityDotsOnly === 'True').length > 0 \r\n && getPaintFillLocationById(state, l.locationId).isCavityDot \r\n && state.putter.paintFillColor.filter(color => color.id === newColorId)[0].isRaw)\r\n ? state.putter.paintFillColor.filter(color => color.onCavityDotsOnly === 'True')[0].id\r\n : newColorId } :\r\n l;\r\n });\r\n const instance = Object.assign({}, state.instance, { paintFillLocations });\r\n let newState = freeze(Object.assign({}, state, { instance })); \r\n\r\n newState = selectPaletteColor(newState, newColorId, oldColorId);\r\n\r\n if (additionalLocationId && additionalLocationId.length > 0)\r\n {\r\n additionalLocationId.forEach((locId) => newState = selectPaint(newState, locId, newColorId));\r\n }\r\n \r\n return newState;\r\n};\r\n\r\n/*\r\nexport function replacePaintByDefaultColorRank(state, colorRank, newColorId) { \r\n let defaultColors = getDefaultColors(state);\r\n \r\n let colorIndex = colorRank + 4;\r\n let oldColorId = 0;\r\n if(defaultColors.length <= colorIndex) {\r\n\t return state;\r\n }\r\n \r\n let newState = state;\r\n oldColorId = defaultColors[colorIndex];\r\n let defaultLocations = getDefaultLocationsForColor(state, oldColorId);\r\n if(defaultLocations.length <= 0) {\r\n\t return state;\r\n }\r\n \r\n defaultLocations.forEach(function(locId) {\r\n\t let found = state.instance.paintFillLocations.some((location) => {\r\n\t\t return (location.locationId == locId);\r\n\t });\r\n\t \r\n\t if(!found) {\r\n\t\tif (find(newState.putter.paintFillLocation, { id: locId })) {\r\n\t\t\tnewState = selectPaint(newState, locId, newColorId); \r\n\t\t} \r\n\t }\r\n });\r\n \r\n return newState;\r\n};*/\r\n\r\nexport function addAccessory(state, id) {\r\n if (!find(state.putter.accessories, { id })) {\r\n throw new Error(`Trying to select invalid accessory: ${id}`);\r\n }\r\n const accessories = [...state.instance.accessories, id];\r\n const existing = state.instance.accessories.indexOf(id);\r\n if (existing >= 0) { return state; }\r\n const instance = Object.assign({}, state.instance, { accessories });\r\n return freeze(Object.assign({}, state, { instance }));\r\n};\r\n\r\nexport function removeAccessory(state, id) {\r\n let accessories = state.instance.accessories;\r\n const existing = findIndex(accessories, id);\r\n if (existing > -1) {\r\n accessories = [\r\n ...accessories.slice(0, existing),\r\n ...accessories.slice(existing + 1)\r\n ];\r\n }\r\n const instance = Object.assign({}, state.instance, { accessories });\r\n return freeze(Object.assign({}, state, { instance }));\r\n};\r\n\r\nexport function selectDefaultPaint(state, locationId) {\r\n if (!find(state.putter.paintFillLocation, { id: locationId })) {\r\n throw new Error(`Trying to paint invalid location id: ${locationId}`);\r\n }\r\n const defaultPaint = getDefaultColorByLocation(state, locationId);\r\n return selectPaint(state, locationId, defaultPaint.colorId);\r\n}\r\n\r\nexport function checkPaintSwapValid(state, oldColor, newColor) {\r\n if(!oldColor || !newColor)\r\n return true;\r\n let paintFillLocationsForOldColor = getSelected(state, 'paintFillLocations').filter(\r\n paintFillLocation => paintFillLocation.colorId === oldColor.id\r\n );\r\n // for swapping to a raw color, skip the check on the cavity dot if raw is allowed on cavity dot since there are 2 raw colors\r\n if(newColor.isRaw && state.putter.paintFillColor.filter(color => color.onCavityDotsOnly === 'True').length > 0)\r\n paintFillLocationsForOldColor = paintFillLocationsForOldColor.filter(paintFillLocation => paintFillLocation.location.isCavityDot === false);\r\n let check = paintFillLocationsForOldColor.every(\r\n paintFillLocation => find(getValidPaintColors(state, paintFillLocation.locationId), { id: newColor.id })\r\n )\r\n return check;\r\n}\r\n\r\n//For checking the paints are valid when you switch finishes which would cause invalid colors selected\r\nexport function checkPaintsValid(state) {\r\n const paintFillLocations = getSelected(state, 'paintFillLocations');\r\n return paintFillLocations.every(\r\n paintFillLocation => find(getValidPaintColors(state, paintFillLocation.locationId), { id: paintFillLocation.colorId })\r\n )\r\n}\r\n\r\nexport function clearInvalidPaints(state) {\r\n let paintFillLocations = getSelected(state, 'paintFillLocations');\r\n paintFillLocations = paintFillLocations.filter( paintFillLocation => \r\n !!find(getValidPaintColors(state, paintFillLocation.locationId), { id: paintFillLocation.colorId })\r\n );\r\n let selection = { paintFillLocations };\r\n \r\n const instance = Object.assign({}, state.instance, selection);\r\n return freeze(Object.assign({}, state, { instance }));\r\n}\r\n\r\nexport function selectPaletteColor(state, colorId, oldColorId) {\r\n\tlet paletteColors = getPaletteColors(state);\r\n\tif(paletteColors == null) {\r\n\t\tpaletteColors = [];\r\n\t}\r\n\t\r\n\tif (paletteColors.length >= state.putter.maxPaintfillColors && oldColorId < 0) {\r\n\t\treturn state;\r\n\t}\r\n\t\r\n\tif(colorIsRaw(state, colorId)) {\r\n\t\treturn state;\r\n\t}\r\n\t\r\n\tfor(let y = 0; y < paletteColors.length; y++) {\r\n\t\tif(paletteColors[y].id == colorId) {\r\n\t\t\treturn state;\r\n\t\t}\r\n\t}\r\n\t\r\n\tlet allColors = getAllPaintColors(state);\r\n\tlet foundColors = allColors.filter(color => color.id === colorId);\r\n\tif(!foundColors && foundColors.length == 0) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tif (typeof foundColors[0] == \"undefined\" || foundColors[0] == null) {\r\n\t\treturn state;\r\n\t}\r\n\r\n\tlet replaceColor = null;\r\n\tif(oldColorId > -1) {\r\n\t\tlet foundOldColors = allColors.filter(color => color.id === oldColorId);\r\n\t\tif(foundOldColors && foundOldColors.length > 0) {\r\n\t\t\treplaceColor = foundOldColors[0];\r\n\t\t}\r\n\t}\r\n\t\r\n\tlet oldColorIndex = -1;\r\n\tif(replaceColor != null) {\r\n\t\toldColorIndex = findIndex(paletteColors, (color) => { return color.id == oldColorId;});\t\r\n\t}\r\n\r\n\tif(oldColorIndex > -1) {\r\n\t\tpaletteColors = [...paletteColors.slice(0, oldColorIndex),\r\n foundColors[0],\r\n ...paletteColors.slice(oldColorIndex + 1)];\r\n\t} else {\r\n\t\tpaletteColors = [...paletteColors, foundColors[0]];\r\n\t}\r\n\r\n\tconst instance = Object.assign({}, state.instance, { paletteColors });\r\n\treturn freeze(Object.assign({}, state, { instance }));\r\n}\r\n\r\nexport function colorIsRaw(state, colorId) {\r\n\tconst rawColors = getAllPaintColors(state).filter(color => color.isRaw);\r\n\tif(rawColors.length > 0) \r\n return rawColors.filter(rawColor => rawColor.id === colorId).length > 0\r\n else\r\n return false;\r\n} \r\n\r\n // This stuff is how the old customizer determined which of the optional parameters are active given the users' choices\r\n\r\n // var dictionary = {\r\n // InitialsFace: 'faceTextColor',\r\n // InitialsBumperHeel: 'heelTextColor',\r\n // InitialsBumperToe: 'toeTextColor',\r\n // InitialsArch: 'archTextColor',\r\n // rearCavityStamp: 'rearCavityStampColor',\r\n // frontCavityStamp: 'frontCavityStampColor',\r\n // toeStamp: 'toeStampColor',\r\n // flangeLineToe: 'flangeLineToeColor',\r\n // flangeLineHeel: 'flangeLineHeelColor',\r\n // flangeLineCenter: 'flangeLineCenterColor',\r\n // topLineCenter: 'topLineCenterColor',\r\n // topLineToe: 'topLineToeColor',\r\n // topLineHeel: 'topLineHeelColor'\r\n // }\r\n\r\n // initialsTest: function(){\r\n // var initialTypes = ['InitialsFace', 'InitialsBumperHeel', 'InitialsBumperToe'];\r\n // for (var i = 0; i < initialTypes.length; i += 1){\r\n // var initialsData = this.get('Initials').get(initialTypes[i]).toJSON();\r\n // // Note !! is just a typecast to a boolean, it'll be true when it's not an empty string.\r\n // this.variableOptionsMap[initialTypes[i]] = !!initialsData.Characters;\r\n // if (i === 0 && initialsData.Characters && initialsData.PersonalizationStyleId === 3){\r\n // this.variableOptionsMap.InitialsFace = false;\r\n // this.variableOptionsMap.InitialsArch = true;\r\n // }\r\n // }\r\n // },\r\n\r\n // stampTest: function(){\r\n // var forbidden = ['toeStamp', 'rearCavityStamp', 'frontCavityStamp'];\r\n // var stamps = this.get('StampSelections').toJSON();\r\n // for(var i = 0; i < stamps.length; i += 1){\r\n // // I'm allowed to just use [0] because the locationid should be a primary key\r\n // var stampLoc = sandbox.stampLocations.where({id: stamps[i].LocationId})[0].toJSON();\r\n // if(_.indexOf(forbidden, stampLoc.parameter_key) > -1){\r\n // this.variableOptionsMap[stampLoc.parameter_key] = true;\r\n // }\r\n // }\r\n // },\r\n\r\n // lineDotTest: function(){\r\n // // I'm 100% sure there are more efficient ways of programming this. I'm sorry.\r\n // var cdata = this;\r\n // var flangeLines = cdata.get('FlangeLine');\r\n // var sightDots = cdata.get('SightDot');\r\n // var topLines = cdata.get('TopLine');\r\n\r\n // var flangeIndex = sandbox.flangeLineOptions.where({id: flangeLines.Id});\r\n // var dotIndex = sandbox.sightDotOptions.where({id: sightDots.Id});\r\n // var lineIndex = sandbox.topLineOptions.where({id: topLines.Id});\r\n\r\n // var existingFlange = sandbox.putterOptions.get('existing_flange_line_parameters');\r\n // var existingLines = sandbox.putterOptions.get('existing_top_line_parameters');\r\n\r\n // var flangeParams, dotParams, lineParams;\r\n\r\n // if(flangeIndex[0]){\r\n // flangeParams = flangeIndex[0].get('parameter_keys').split(','); \r\n // }\r\n // if(dotIndex[0]){\r\n // dotParams = dotIndex[0].get('parameter_keys').split(',');\r\n // }\r\n // if(lineIndex[0]){\r\n // lineParams = lineIndex[0].get('parameter_keys').split(',');\r\n // }\r\n\r\n // _.each(existingFlange, function(line){\r\n // if(!flangeParams){flangeParams = [];}\r\n\r\n // if(_.indexOf(flangeParams, line) === -1){\r\n // flangeParams.push(line);\r\n // }\r\n // });\r\n\r\n // _.each(existingLines, function(line){\r\n // if(!lineParams){lineParams = [];}\r\n // if(_.indexOf(lineParams, line) === -1){\r\n // lineParams.push(line);\r\n // }\r\n // });\r\n\r\n // _.each(flangeParams, function(line){\r\n // this.variableOptionsMap[line] = true;\r\n // }, this);\r\n // _.each(dotParams, function(line){\r\n // this.variableOptionsMap[line] = true;\r\n // }, this);\r\n // _.each(lineParams, function(line){\r\n // this.variableOptionsMap[line] = true;\r\n // }, this);\r\n // },","import _ from 'lodash'\r\nimport * as convert from 'util/convert'\r\n\r\nexport function emptyPutter() {\r\n return {\r\n id: \"\",\r\n label: \"\",\r\n maxPaintfillColors: 0,\r\n isOldSchool: false,\r\n restorationRequiredForStamping: false,\r\n frontWeightDefaultImage: \"\",\r\n rearWeightDefaultImage: \"\",\r\n\r\n faceSoleImage: \"\",\r\n faceSoleImageParameters: [],\r\n backCavityImage: \"\",\r\n backCavityImageParameters: [],\r\n playerProfileImage: \"\",\r\n playerProfileImageParameters: [],\r\n existingFlangeLineParameters: [],\r\n existingTopLineParameters: [],\r\n\r\n restorationType: [],\r\n finish: [],\r\n \r\n reshaft: [],\r\n length: [],\r\n loft: [],\r\n lie: [],\r\n\r\n paintFill: [],\r\n paintFillColor: [],\r\n paintFillLocation: [],\r\n translucentPaintFillColor: [],\r\n solidPaintFillColor: [],\r\n\r\n initialsLocation: [],\r\n stamp: [],\r\n stampLocation: [],\r\n personalizationStyle: [],\r\n\r\n sightDot: [],\r\n topLine: [],\r\n flangeLine: [],\r\n\r\n hasWeightEngraving: false,\r\n weightEngravingStamp: [],\r\n weightEngraving: [],\r\n weight: [],\r\n hasTopWeights: false,\r\n topWeightEngraving: [],\r\n topWeight: [],\r\n\r\n accessories: [],\r\n authentication: [],\r\n grip: [],\r\n gripWrap: [],\r\n shaftBand: [],\r\n headCover: [],\r\n buyAPutter: [],\r\n }\r\n}\r\n\r\n\r\n\r\nexport function fromAPI(data) {\r\n // Do cleanup/manipulation of API data here\r\n let newData = _.chain(data)\r\n .toPairs()\r\n .map(([k, v]) => {\r\n if (k === 'restoration_types') { k = 'restoration_type'; }\r\n if (k === 'weight_engraving') { k = 'has_weight_engraving'; }\r\n if (k === 'weight_engravings') { k = 'weight_engraving'; }\r\n if (k === 'paint_fill_option') { k = 'paint_fill'; }\r\n if (k === 'gotta_have_it') { k = 'accessories'; }\r\n return [k, v];\r\n })\r\n .fromPairs()\r\n .value();\r\n\r\n newData.top_weight_engraving = newData.weight_engraving;\r\n newData.top_weight = newData.weight;\r\n\r\n //TODO: This is a dummy option which should be replaced by DB option\r\n // requires changes to work order form/classic form\r\n const doNotAuthenticate = {\r\n id: 99999,\r\n rank: 0,\r\n price: 0,\r\n discountPrice: 0,\r\n label: 'Do Not Authenticate',\r\n } \r\n newData.authentication.push(doNotAuthenticate);\r\n\r\n //temp minPrice \r\n const minPrice = 45;\r\n newData.minPrice = minPrice;\r\n\r\n return convert.objectKeysToCamelCase(newData);\r\n}\r\n\r\n","import React from 'react';\r\nimport GoogleAnalytics from 'react-ga';\r\nimport config from 'util/config.js';\r\nimport { isString, startCase, isObject, debounce} from 'lodash';\r\nimport { createAction } from 'redux-actions'\r\nimport { isFunction } from 'util';\r\n\r\n//https://github.com/ReactTraining/react-router/issues/4278\r\nGoogleAnalytics.initialize(config.gaTrackingId);\r\n\r\n\r\n// Direct Logging Wrappers\r\nexport const trackPage = (page) => {\r\n GoogleAnalytics.set({ page });\r\n GoogleAnalytics.pageview(page);\r\n};\r\n\r\nconst defaults = {\r\n category:'Custom Shop',\r\n action: 'Interactive'\r\n}\r\nexport const trackEvent = (data) => {\r\n if (!isObject(data)) { data = { label: data };}\r\n data = Object.assign({}, defaults, data);\r\n GoogleAnalytics.event(data);\r\n}\r\n\r\nexport const trackEventOutbound = (data, callback) => {\r\n if (!isObject(data)) { data = { label: data };}\r\n data = Object.assign({}, defaults, data);\r\n GoogleAnalytics.outboundLink(data, callback);\r\n}\r\n\r\n\r\n//--------------------------------\r\n\r\n// Helper to track events on clicks\r\n// usage: onClick = { trackedClickEvent(\"event label\", () => actualClickBehavior)}\r\n// or: onClick = { trackedClickEvent({ analyticsData }, () => actualClickBehavior)}\r\nexport const trackedClickEvent = (analyticsData, onClickFcn) => {\r\n return function(){ \r\n trackEvent(analyticsData);\r\n onClickFcn(arguments) ;\r\n }\r\n}\r\n\r\n// export const trackEventOutbound = (analyticsData, callback) => {\r\n// GoogleAnalytics.event({ category, action, label });\r\n// } \r\n\r\n//--------------------------------\r\n\r\n// Helper to track a Redux action\r\n// analytics data can be a string -- the label of the event (using default category and action)\r\n// or an object with data to pass directly to trackEvent {category, action, label}\r\n// or an object with a function and optional debounce delay {analyticsDataFcn:(action)=>makeLabel(action), debounce:300}\r\n// or null, in which case the action type is cleaned up and logged as the label (using default category and action)\r\nexport const createTrackedAction = (type, payload, analyticsData) =>{\r\n if (!analyticsData) { analyticsData = {}; } //Trigger automatic labeling logic\r\n return createAction(type, payload, () => { return { eventTracking: analyticsData }; });\r\n}\r\n\r\n// Automatically clean up Action Type strings\r\nfunction cleanActionType(type){\r\n return startCase(type.replace(\"sc/customize/\", \"\").toLowerCase()); \r\n}\r\n\r\n// Middleware for automatically tracking redux events created with createTrackedAction\r\n// Injected in App.js. Looks at all Redux Actions and logs all events with eventTracking metadata object\r\nvar debouncedTracking = {}; \r\nexport const EventAnalyticsMiddleware = store => next => action => {\r\n try{ \r\n if (action.meta && action.meta.eventTracking){ \r\n var trackData = null;\r\n var actionData = action.meta.eventTracking;\r\n if (isFunction(actionData.analyticsDataFcn)) {\r\n var state = store.getState();\r\n trackData = actionData.analyticsDataFcn(action, state.customize); \r\n }\r\n else if (!isString(actionData) && !actionData.label) { trackData = cleanActionType(action.type); }\r\n\r\n if (trackData){ \r\n // This is not how debouncing usually works, but our function is in another castle and redux makes this weird.\r\n if (actionData.debounce){\r\n var debounced = debounce(() => trackEvent(trackData), actionData.debounce); \r\n debounced(); \r\n debouncedTracking[action.type] && debouncedTracking[action.type].cancel(); //cancel old debounced fcn\r\n debouncedTracking[action.type] = debounced; //save new one so we can cancel it later\r\n }else{ \r\n trackEvent(trackData); \r\n }\r\n }\r\n }\r\n }catch(e){\r\n if (!config.isProduction){ throw e;} \r\n }\r\n return next(action); //keep processing\r\n}\r\n\r\n//--------------------------------\r\n\r\n// Wraps all Route targets to automatically log page views \r\nexport const AnalyticsPageTracker= (WrappedComponent) => { \r\n const AnalyticsPageTracker = (props) => {\r\n const page = props.location.pathname;\r\n trackPage(page);\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n return AnalyticsPageTracker;\r\n}\r\n","import { createAction } from 'redux-actions'\r\nimport { isArray, last, find} from 'lodash'\r\n\r\nimport * as Services from 'Services'\r\nimport * as cs from 'state/customize'\r\nimport { getOption } from 'state/customize/selectors'\r\nimport * as Instance from 'models/Instance'\r\nimport * as Putter from 'models/Putter'\r\nimport { createTrackedAction } from '../../util/analytics'\r\n\r\nconst CLEAR = 'sc/customize/CLEAR';\r\nconst LOAD_PUTTER = 'sc/customize/LOAD_PUTTER';\r\nconst START_LOAD = 'sc/customize/START_LOAD';\r\nconst SELECT = 'sc/customize/SELECT';\r\nconst SET_FIELD = 'sc/customize/SET_FIELD';\r\nconst PAINT = 'sc/customize/PAINT';\r\nconst INITIALS = 'sc/customize/INITIALS';\r\nconst STAMP = 'sc/customize/STAMP';\r\nconst CANCEL_REPLACE_PAINT = 'sc/customize/CANCEL_REPLACE_PAINT';\r\nconst REPLACE_PAINT = 'sc/customize/REPLACE_PAINT';\r\nconst SELECT_VIEW = 'sc/customize/SELECT_VIEW';\r\nconst TOGGLE_VIEW_ZOOM = 'sc/customize/TOGGLE_VIEW_ZOOM';\r\nconst SELECT_ACCESSORY_TYPE = 'sc/customize/SELECT_ACCESSORY_TYPE';\r\nconst PERFORM_ADD_TO_CART_CALL = 'sc/customize/PERFORM_ADD_TO_CART_CALL';\r\nconst PERFORM_ADD_TO_SAVED_CALL = 'sc/customize/PERFORM_ADD_TO_SAVED_CALL';\r\n\r\nconst SET_INSTANCE_INTENT = 'sc/customize/SET_INSTANCE_INTENT';\r\nconst LOAD_INSTANCE = 'sc/customize/LOAD_INSTANCE';\r\nconst LOAD_ORDER_INSTANCE = 'sc/customize/LOAD_ORDER_INSTANCE';\r\nconst LOAD_DEFAULT_INSTANCE = 'sc/customize/LOAD_DEFAULT_INSTANCE';\r\n\r\nconst RESET_PAINTFILLS = 'sc/customize/RESET_PAINTFILLS';\r\nconst CLEAR_PAINTFILLS = 'sc/customize/CLEAR_PAINTFILLS';\r\nconst CHECK_PAINT_SWAP_VALID = 'sc/customize/CHECK_PAINT_SWAP_VALID';\r\nconst APPLY_FINISH = 'sc/customize/APPLY_FINISH';\r\n\r\n/* 18759: Invalid options rollback\r\nconst TOGGLE_SHOW_INVALID_OPTIONS_REMOVED_WARNING = 'sc/customize/TOGGLE_SHOW_INVALID_OPTIONS_REMOVED_WARNING';\r\n*/\r\n\r\nconst initialState = cs.initialState\r\n\r\nexport default function reducer(state = initialState, action = {}) {\r\n // Only part of the state is stored in localStorage.\r\n // This merges the initial state with the stored state on load \r\n if (!state.hydrated){\r\n state = {\r\n ...initialState,\r\n ...state,\r\n instanceIntent:'',\r\n selectedView:'FS',\r\n isViewZoomIn: false,\r\n selectedAccessoryType: 'grip',\r\n hydrated:true\r\n } \r\n }\r\n\r\n switch (action.type) {\r\n case CLEAR:\r\n return initialState;\r\n case SET_INSTANCE_INTENT:\r\n return Object.assign({}, state, { instanceIntent: action.payload }); \r\n\r\n case START_LOAD:\r\n return {\r\n ...state,\r\n loading:true,\r\n }\r\n\r\n case LOAD_PUTTER:\r\n if(action.error){ return state;}\r\n // If loading from localStorage, we still want to pull the updated putter from API \r\n // but use the instance from localStorage, as long as the instance is an instance of the putter\r\n const putter = Putter.fromAPI(action.payload);\r\n var instance = (state.instance && state.instance.model === putter.id) ? \r\n state.instance: \r\n Instance.fromPutter(putter);\r\n /* 18759: Invalid options rollback\r\n const isInstanceOptionsValid = Instance.isInstanceOptionsValid(putter, instance);\r\n return Object.assign({}, state, { putter, instance, loading: false, showInvalidOptionsRemovedWarning: !isInstanceOptionsValid, });\r\n */\r\n instance = Instance.removeInvalidOptions(putter, instance);\r\n return Object.assign({}, state, { putter, instance, loading: false });\r\n case LOAD_DEFAULT_INSTANCE: \r\n if(action.error){ return state;}\r\n const defaultInstance = Instance.fromAPIInstance(action.payload);\r\n let currentInstance = state.instance;\r\n if(!currentInstance.customInstanceId)\r\n { \r\n currentInstance = Instance.fromDefaultInstance(state.instance, defaultInstance); \r\n }\r\n return Object.assign({}, state, { defaultInstance, instance: currentInstance });\r\n case LOAD_INSTANCE:\r\n case LOAD_ORDER_INSTANCE:\r\n if(action.error){ return Object.assign({}, state, { instance: null, loading: false }); }\r\n const savedInstance = Instance.fromAPIInstance(action.payload);\r\n return Object.assign({}, state, { instance: savedInstance, loading: false });\r\n case SELECT_VIEW:\r\n return Object.assign({}, state, { selectedView: action.payload })\r\n case TOGGLE_VIEW_ZOOM:\r\n return Object.assign({}, state, { isViewZoomIn: !state.isViewZoomIn })\r\n case SELECT:\r\n return cs.select(state, action.payload.field, action.payload.id);\r\n case SET_FIELD:\r\n return cs.setValue(state, action.payload.field, action.payload.value);\r\n case PAINT:\r\n try{ \r\n if (isArray(action.payload.location)){\r\n return action.payload.location.reduce((state, loc) => (cs.selectPaint(state, loc, action.payload.color)), state);\r\n }\r\n return cs.selectPaint(state, action.payload.location, action.payload.color);\r\n }catch (e){\r\n if (e.name !== 'MaxColorsError') { throw (e); }\r\n state = Object.assign({}, state, { replacementPaintFill: action.payload }) \r\n return state; \r\n }\r\n case REPLACE_PAINT:\r\n return Object.assign({},\r\n (isArray(action.payload.location)) ? \r\n cs.replacePaint(state, action.payload.oldColor, action.payload.newColor, action.payload.location) : \r\n cs.replacePaint(state, action.payload.oldColor, action.payload.newColor, (action.payload.location ? [action.payload.location] : null ) ),\r\n { replacementPaintFill: null }\r\n );\r\n case CANCEL_REPLACE_PAINT:\r\n return Object.assign({}, state, { replacementPaintFill: null }) \r\n case RESET_PAINTFILLS:\r\n return cs.clearInvalidPaints(cs.setDefaultPaintFills(cs.clearAllPaintFills(state)));\r\n case CLEAR_PAINTFILLS:\r\n return cs.clearAllPaintFills(state);\r\n case INITIALS:\r\n return cs.selectInitials(state, action.payload.location, action.payload.field, action.payload.value);\r\n case STAMP:\r\n return cs.selectStamp(state, action.payload.locationId, action.payload.field, action.payload.value);\r\n case SELECT_ACCESSORY_TYPE:\r\n return Object.assign({}, state, { selectedAccessoryType: action.payload })\r\n case PERFORM_ADD_TO_CART_CALL: \r\n let cartResponse = action.payload;\r\n console.log(\"ADD TO CART:\", cartResponse);\r\n return state;\r\n case PERFORM_ADD_TO_SAVED_CALL: \r\n let saveResponse = action.payload;\r\n console.log(\"ADD TO SAVED:\", saveResponse);\r\n return state;\r\n case CHECK_PAINT_SWAP_VALID:\r\n return Object.assign({}, state, { paintSwapValid: cs.checkPaintSwapValid(state, action.payload.oldColor, action.payload.newColor) })\r\n case APPLY_FINISH:\r\n return cs.applyFinish(state, action.payload.apply);\r\n /* 18759: Invalid options rollback\r\n case TOGGLE_SHOW_INVALID_OPTIONS_REMOVED_WARNING:\r\n return Object.assign({}, state, { showInvalidOptionsRemovedWarning: !state.showInvalidOptionsRemovedWarning })\r\n */\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const clearPutter = createAction(CLEAR);\r\n\r\nexport const startLoad = createAction(START_LOAD);\r\nconst performLoadPutter = createAction(LOAD_PUTTER, Services.getOptions); \r\nconst performLoadDefaultInstance = createAction(LOAD_DEFAULT_INSTANCE, Services.getCustomInstance); \r\n\r\nexport const loadPutter = (id, buy) => {\r\n return (dispatch, getState) =>{\r\n dispatch(startLoad());\r\n dispatch(performLoadPutter(id)).then(() => {\r\n const defaultInstanceId = getState().customize.putter.defaultInstanceId;\r\n\r\n // Check if this putter is set to 'Buy A Putter'\r\n // Add it as an accessory if it is\r\n function setBuy(){ \r\n if (buy) {\r\n let bp = getState().customize.putter.buyAPutter;\r\n if (Array.isArray(bp) && bp.length > 0) {\r\n dispatch(selectField('buyAPutter', bp[0].id));\r\n }\r\n }\r\n }\r\n\r\n if (!!defaultInstanceId && defaultInstanceId > 0){ \r\n dispatch(performLoadDefaultInstance(defaultInstanceId)).then(setBuy);\r\n }else{\r\n setBuy(); \r\n }\r\n }); \r\n }\r\n};\r\n\r\nexport const setInstanceIntent = createAction(SET_INSTANCE_INTENT);\r\nconst performLoadInstance = createAction(LOAD_INSTANCE, Services.getCustomInstance); \r\nconst performLoadOrderInstance = createAction(LOAD_ORDER_INSTANCE, Services.getOrderInstance); \r\n\r\n// This used as utility to load instance data (e.g. packages, default paintfills)\r\n// Does not affect 'intent'\r\nexport const loadInstance = (id) => {\r\n return (dispatch, getState) =>{\r\n dispatch(startLoad());\r\n dispatch(performLoadInstance(id));\r\n }\r\n}\r\n\r\n// These used by deep links registers user intent to control customizer behavior\r\n// e.g. check user authorization, trigger button renaming, etc\r\nexport const loadInspirationInstance = (id) => {\r\n return (dispatch, getState) =>{\r\n dispatch(clearPutter());\r\n dispatch(setInstanceIntent(''));\r\n dispatch(loadInstance(id));\r\n }\r\n} \r\nexport const loadSavedInstance = (id) => {\r\n return (dispatch, getState) =>{\r\n dispatch(clearPutter());\r\n dispatch(setInstanceIntent('updateSaved'));\r\n dispatch(loadInstance(id));\r\n }\r\n}\r\nexport const loadOrderInstance = (id) => {\r\n return (dispatch, getState) =>{\r\n dispatch(clearPutter());\r\n dispatch(setInstanceIntent('updateOrder'));\r\n dispatch(performLoadOrderInstance(id));\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport const selectField = createTrackedAction(SELECT, (field, id) => ({ field, id: (parseInt(id, 10) || 0) }), \r\n {analyticsDataFcn:(action, state)=> {\r\n let opt = getOption(state, action.payload.field, action.payload.id);\r\n let field = action.payload.field; \r\n if (field === \"authentication\"){\r\n field += \" (\" + last(window.location.href.split(\"/\")) + \" page)\";\r\n } \r\n\r\n var label = (opt && opt.label) || action.payload.id.toString();\r\n if (field.indexOf(\"Engraving\") >= 0 && !opt){\r\n if (field === \"weightEngraving\" || field === \"topWeightEngraving\") { \r\n label = \"No\"; \r\n } else { \r\n return null;\r\n }\r\n }\r\n\r\n return {\r\n category: \"Custom Shop Field Selection\",\r\n action: field,\r\n label: label\r\n }\r\n}}\r\n);\r\nexport const setFieldValue = createAction(SET_FIELD, (field, value) => ({ field, value }));\r\n\r\nexport const selectPaintFill = createTrackedAction(PAINT, (location, color)=> ({location, color}),\r\n {analyticsDataFcn:(action, state)=> { \r\n let opt = getOption(state, 'paintFillLocations', [{\r\n locationId: action.payload.location[0] || action.payload.location, //some locations set multiple colors in the same action... just log the first\r\n colorId: action.payload.color\r\n }]);\r\n let loc = (opt && opt[0] && opt[0].location.label) || action.payload.location;\r\n let color = (opt && opt[0] && opt[0].color.label) || action.payload.color.toString();\r\n return {\r\n category: \"Custom Shop Field Selection\",\r\n action: \"Paint \" + loc,\r\n label: color\r\n }\r\n }}\r\n);\r\nexport const changeInitials = createTrackedAction(INITIALS, (location, field, value)=> ({location, field, value}),\r\n {analyticsDataFcn:(action, state)=> {\r\n var val;\r\n if (action.payload.field === 'personalizationStyleId'){ \r\n let opt = find(state.putter.personalizationStyle, { id: action.payload.value })\r\n val = opt && opt.label; \r\n }else if (action.payload.field === 'characters'){\r\n val = action.payload.value.toUpperCase(); \r\n }else{\r\n val = action.payload.value.toString();\r\n }\r\n\r\n return {\r\n category: \"Custom Shop Field Selection\",\r\n action: action.payload.location + \" \" + action.payload.field,\r\n label: val\r\n }},\r\n debounce: 500\r\n }\r\n);\r\nexport const selectStamp = createTrackedAction(STAMP, (locationId, field, value)=> ({locationId, field, value}),\r\n {analyticsDataFcn:(action, state)=> { \r\n var loc, val;\r\n if (action.payload.field === 'enabled'){ \r\n let opt = find(state.putter.stampLocation, { id: action.payload.locationId }) ;\r\n loc = (opt && opt.label) + \" Enabled\";\r\n val = action.payload.value.toString();\r\n }else{ \r\n let opt = getOption(state, 'stampSelections', [{\r\n locationId: action.payload.locationId, \r\n stampId: action.payload.value\r\n }]);\r\n loc = (opt && opt[0] && opt[0].location.label) || action.payload.location;\r\n val = (opt && opt[0] && opt[0].stamp.label) || action.payload.value.toString();\r\n }\r\n return {\r\n category: \"Custom Shop Field Selection\",\r\n action: \"Stamp \" + loc,\r\n label: val\r\n }\r\n }}\r\n);\r\n\r\nexport const replacePaint = createAction(REPLACE_PAINT, (oldColor, newColor, location) => ({ oldColor, newColor, location }));\r\nexport const cancelReplacementPaintFill = createAction(CANCEL_REPLACE_PAINT);\r\nexport const selectView = createAction(SELECT_VIEW);\r\nexport const toggleViewZoom = createTrackedAction(TOGGLE_VIEW_ZOOM);\r\n\r\nexport const selectAccessoryType = createAction(SELECT_ACCESSORY_TYPE);\r\n\r\nexport const resetPaintFills = createTrackedAction(RESET_PAINTFILLS);\r\nexport const clearPaintFills = createTrackedAction(CLEAR_PAINTFILLS);\r\n\r\nconst performAddToCartCall = createAction(PERFORM_ADD_TO_CART_CALL, (customizeState) =>\r\n Services.addToCart(Instance.formatForAPI(customizeState, \"cart\"))\r\n)\r\nexport const addToCart =()=>{\r\n return (dispatch, getState) =>{\r\n return dispatch( performAddToCartCall(getState().customize) )\r\n }\r\n};\r\n\r\nconst performAddToSavedCall = createAction(PERFORM_ADD_TO_SAVED_CALL, (customizeState) =>\r\n Services.addToSaved(Instance.formatForAPI(customizeState, \"save\"))\r\n)\r\nexport const addToSaved =()=>{\r\n return (dispatch, getState) =>{\r\n return dispatch( performAddToSavedCall(getState().customize) )\r\n }\r\n};\r\n\r\nexport const checkPaintSwapValid = createAction(CHECK_PAINT_SWAP_VALID, (oldColor, newColor) => ({oldColor, newColor}));\r\n\r\nexport const applyFinish = createAction(APPLY_FINISH, (apply) => ({ apply }));\r\n\r\n/* 18759: Invalid options rollback\r\nexport const toggleShowInvalidOptionsRemovedWarning = createAction(TOGGLE_SHOW_INVALID_OPTIONS_REMOVED_WARNING);\r\n*/","import { createAction } from 'redux-actions'\r\n\r\nimport * as Services from 'Services'\r\nimport * as findputter from 'state/findputter'\r\nimport { clearPutter } from './customize'\r\nimport { createTrackedAction} from '../../util/analytics'\r\n\r\nconst START_LOAD = 'sc/findputter/START_LOAD';\r\nconst LOAD = 'sc/findputter/LOAD';\r\nconst FILTER_TEXT = 'sc/findputter/FILTER_TEXT';\r\nconst FILTER_CATEGORY = 'sc/findputter/FILTER_CATEGORY';\r\n\r\nconst initialState = findputter.initialState;\r\n\r\nexport default function reducer(state = initialState, action = {}) {\r\n switch (action.type) {\r\n case START_LOAD:\r\n return {\r\n ...state,\r\n loading:true,\r\n }\r\n case LOAD:\r\n return {\r\n ...(action.error)? state : findputter.setPutters(state, action.payload),\r\n loading:false,\r\n }\r\n case FILTER_TEXT:\r\n return findputter.setPutterFilterText(state, action.payload);\r\n case FILTER_CATEGORY:\r\n return findputter.setPutterFilterCategory(state, action.payload);\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst startLoad = createAction(START_LOAD);\r\nconst performLoadPutters = createAction(LOAD, Services.getPutterModels);\r\nexport const loadPutters =()=>{\r\n return (dispatch, getState) =>{\r\n dispatch(clearPutter());\r\n dispatch(startLoad());\r\n dispatch(performLoadPutters())\r\n }\r\n};\r\n\r\nexport const setPutterFilterText = createTrackedAction(FILTER_TEXT, null, {\r\n analyticsDataFcn : (action) => \"FindPutter Search:\" + action.payload,\r\n debounce: 500\r\n });\r\n \r\n export const setPutterFilterCategory = createTrackedAction(FILTER_CATEGORY, null, {\r\n analyticsDataFcn : (action) => \"FindPutter Category:\" + action.payload,\r\n debounce: 500\r\n });","import React from \"react\";\r\nimport config from 'util/config.js'\r\n\r\n\r\nconst RenderFallback = () => (\r\n

Error

\r\n);\r\n\r\nexport const ErrorBoundaryConstructor = (WrappedComponent, fallbackComponent = RenderFallback, onError = undefined) =>{ \r\n return class ErrorBoundary extends React.Component {\r\n \r\n constructor(props) {\r\n super(props);\r\n this.state = {error: false};\r\n }\r\n \r\n unstable_handleError(e) {\r\n console.warn(\"unstable_handleError\",e);\r\n onError && onError(e);\r\n this.setState({error: true});\r\n }\r\n \r\n render() { \r\n const Comp = (config.production && this.state.error) ? fallbackComponent : WrappedComponent;\r\n return ;\r\n } \r\n }\r\n \r\n};\r\n\r\nexport const DefaultErrorBoundary = Component => {\r\n return ErrorBoundaryConstructor(Component);\r\n};\r\n\r\nexport default DefaultErrorBoundary","import { findAll } from 'highlight-words-core'\r\nimport PropTypes from 'prop-types'\r\nimport React from 'react'\r\n\r\nHighlighter.propTypes = {\r\n activeClassName: PropTypes.string,\r\n activeIndex: PropTypes.number,\r\n autoEscape: PropTypes.bool,\r\n className: PropTypes.string,\r\n highlightClassName: PropTypes.string,\r\n highlightStyle: PropTypes.object,\r\n highlightTag: PropTypes.string,\r\n sanitize: PropTypes.func,\r\n searchWords: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n textToHighlight: PropTypes.string.isRequired,\r\n unhighlightClassName: PropTypes.string,\r\n unhighlightStyle: PropTypes.object\r\n}\r\n\r\n/**\r\n * Highlights all occurrences of search terms (searchText) within a string (textToHighlight).\r\n * This function returns an array of strings and s (wrapping highlighted words).\r\n */\r\nexport default function Highlighter ({\r\n activeClassName = '',\r\n activeIndex = -1,\r\n autoEscape,\r\n className,\r\n highlightClassName = '',\r\n highlightStyle = {},\r\n highlightTag = 'span',\r\n sanitize,\r\n searchWords,\r\n textToHighlight,\r\n unhighlightClassName = '',\r\n unhighlightStyle\r\n}) {\r\n const chunks = findAll({\r\n autoEscape,\r\n sanitize,\r\n searchWords,\r\n textToHighlight\r\n })\r\n const HighlightTag = highlightTag\r\n let highlightCount = -1\r\n let highlightClassNames = ''\r\n\r\n return (\r\n \r\n {chunks.map((chunk, index) => {\r\n const text = textToHighlight.substr(chunk.start, chunk.end - chunk.start)\r\n\r\n if (chunk.highlight) {\r\n highlightCount++\r\n highlightClassNames = `${highlightClassName} ${highlightCount === +activeIndex ? activeClassName : ''}`\r\n\r\n return (\r\n \r\n {text}\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n {text}\r\n \r\n )\r\n }\r\n })}\r\n \r\n )\r\n}","import React from 'react'\r\nimport { NavLink, Link } from 'react-router-dom'\r\nimport classNames from 'classnames'\r\nimport { trackEvent, trackEventOutbound } from '../util/analytics'\r\nimport \"./Buttons.css\"\r\n\r\nexport const Button = ({ className, children, ...rest }) => (\r\n \r\n {children}\r\n \r\n)\r\n\r\nexport const SimpleButton = ({ className, ...rest }) => (\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nPaintColorSwapModal.propTypes = {\r\n paints: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired, \r\n })),\r\n maxPaintfillColors: PropTypes.number,\r\n onClick: PropTypes.func, \r\n checkPaintSwapValid: PropTypes.func,\r\n}\r\n\r\n\r\nPaintColorSwapModal.defaultProps = {\r\n checkPaintSwapValid: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return { \r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n checkPaintSwapValid: actions.checkPaintSwapValid,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaintColorSwapModal);","import React, { PropTypes } from 'react'\r\nimport { connect } from 'react-redux'\r\n\r\nimport * as actions from 'ducks/modules/app'\r\nimport config from 'util/config.js'\r\n\r\n/**\r\n * Adapted from official React Router Prompt Component\r\n * https://github.com/ReactTraining/react-router/blob/master/packages/react-router/modules/Prompt.js\r\n * \r\n * Instead of using window.confirm when 'when' is true, \r\n * this Component and confirmNavigation function set the message to redux state.app.blockedNavigation\r\n * where other components can use it to display error messages \r\n */\r\n\r\n\r\n/* \r\n * This function set as Router.getUserConfirmation in App.js\r\n */\r\nexport const createConfirmNavigation = (store) => \r\n (prompt, callback) => { \r\n //TODO: Distinguish between in-app validation navigations and browser hard navigations.\r\n // if validation, callback false and enable validation modal/messaging\r\n // if hard navigation use built-in browser confirm dialog\r\n if (prompt) {\r\n store.dispatch(actions.blockNavigation(prompt));\r\n }\r\n callback(false);\r\n }\r\n\r\nclass NavWarning extends React.Component {\r\n static propTypes = {\r\n when: PropTypes.bool,\r\n message: PropTypes.oneOfType([\r\n PropTypes.func,\r\n PropTypes.string,\r\n ]).isRequired\r\n }\r\n\r\n static defaultProps = {\r\n when: true,\r\n message: \"Invalid\"\r\n }\r\n\r\n static contextTypes = {\r\n router: PropTypes.shape({\r\n history: PropTypes.shape({\r\n block: PropTypes.func.isRequired\r\n }).isRequired\r\n }).isRequired\r\n }\r\n\r\n //return true to allow this navigation\r\n //return anything else to call the confirmNavigation function (above) with the return value\r\n prompt(location, action){ \r\n if (location.pathname === '/findputter'){\r\n this.props.unblockNavigation()\r\n return true;\r\n }\r\n if (this.props.when && !config.allowInvalidNav){\r\n return this.props.message;\r\n } \r\n this.props.unblockNavigation()\r\n return true;\r\n }\r\n\r\n // This registers this component's prompt function to be called \r\n // by the BrowserRouter/History module before any navigation event.\r\n componentWillMount() {\r\n if (!this.unblock){ \r\n this.prompt = this.prompt.bind(this);\r\n this.unblock = this.context.router.history.block(this.prompt)\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.unblock){\r\n this.unblock();\r\n this.unblock = null;\r\n }\r\n }\r\n\r\n render() {\r\n return (this.props.when && this.props.blockedNavigation) ?
{this.props.message}
: null\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return { ...state.app}\r\n}\r\nconst mapDispatchToProps = {\r\n unblockNavigation: actions.unblockNavigation\r\n}\r\nexport default connect(mapStateToProps, mapDispatchToProps)(NavWarning);","import React, { PropTypes } from 'react'\r\nimport \"./Price.css\"\r\n\r\nfunction formatPrice(val){\r\n return (val !== undefined) ? \"$\" + val : \"\";\r\n}\r\n\r\nconst Price = ({ value }) => (\r\n \r\n {formatPrice(value)}\r\n \r\n)\r\n\r\nPrice.propTypes = {\r\n value:PropTypes.number,\r\n}\r\n\r\nexport default Price","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity } from 'lodash'\r\nimport classNames from 'classnames'\r\n\r\nimport { getFinishVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport { TrackedButtonLink } from 'components/Buttons'\r\nimport Price from 'components/Price'\r\n\r\nexport class FinishForm extends Component {\r\n\r\n render = () => (
\r\n
Finish & Paintfill
\r\n
\r\n \r\n {this.props.options\r\n .map(option => (\r\n
\r\n \r\n {/*If refinish or restoration is selected, then show finish options*/}\r\n {//(option.type === 'refinish' || option.type === 'restorationType') && !!(this.props.selected) && (this.props.selected.type === option.type) &&\r\n }\r\n {option.type === 'restorationType' && !!(this.props.selected) && (this.props.selected.type === option.type) &&\r\n
\r\n
Includes re-milling, refinish, paintfill, shaft, shaft band, grip and headcover.
\r\n {this.props.finish.options.map(finish => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n }\r\n
\r\n ))}\r\n
\r\n
\r\n next: face\r\n
\r\n \r\n
)\r\n}\r\n\r\nFinishForm.defaultProps = {\r\n onSelectField: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { ...getFinishVM(state.customize) }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid\r\n return p;\r\n}\r\nconst mapDispatchToProps = {\r\n onSelectField: actions.selectField,\r\n resetPaintFills: actions.resetPaintFills,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(FinishForm);\r\n\r\n","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity } from 'lodash'\r\nimport { TrackedLink } from 'components/Buttons'\r\n\r\nimport { getPackageVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\n\r\nexport class PackageForm extends Component {\r\n\r\n render = () => (
\r\n {this.props.packages && this.props.packages.length > 0 &&\r\n
\r\n
OR, SELECT AN EXPRESS PACKAGE
\r\n
\r\n {this.props.packages.map(pack => (\r\n
\r\n this.props.onSelectInstance(pack.customInstanceId)}>\r\n {pack.title || pack.label}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n }\r\n
)\r\n}\r\n\r\nPackageForm.defaultProps = {\r\n onSelectField: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return { ...getPackageVM(state.customize) }\r\n}\r\nconst mapDispatchToProps = {\r\n onSelectInstance: actions.loadInstance\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PackageForm);\r\n\r\n","import React, { Component, PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\nimport PaintSwatch from './PaintSwatch'\r\nimport PaintFillGrid from './PaintFillGrid'\r\n\r\nclass PaintFillChooser extends Component {\r\n constructor(props) {\r\n super();\r\n if(props.isOpen)\r\n this.state = { hidden: false }\r\n else \r\n this.state = { hidden: true }\r\n }\r\n\r\n toggle() {\r\n this.setState({ hidden: !this.state.hidden });\r\n }\r\n\r\n onSelectPaintFill(paint) {\r\n this.props.onSelectPaintFill(paint);\r\n this.setState({ hidden: true });\r\n }\r\n\r\n render() {\r\n const { loc, selectedPaint, paints, labelOverride, isError } = this.props;\r\n return (\r\n
\r\n
this.toggle()}>\r\n {labelOverride &&\r\n loc.label.replace('Line', labelOverride)}\r\n {!labelOverride &&\r\n loc.label}\r\n \r\n
\r\n this.onSelectPaintFill(paint)} />\r\n
\r\n )\r\n }\r\n}\r\n\r\nPaintFillChooser.defaultProps = {\r\n isError: false\r\n}\r\n\r\nPaintFillChooser.propTypes = {\r\n loc: PropTypes.object.isRequired,\r\n selectedPaint: PropTypes.object,\r\n paints: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n labelOverride: PropTypes.string,\r\n isOpen: PropTypes.bool,\r\n}\r\n\r\nexport default PaintFillChooser","import React, { Component, PropTypes } from 'react'\r\nimport {trimStart, partial } from 'lodash'\r\nimport classNames from 'classnames'\r\nimport * as Services from 'Services'\r\nimport Price from './Price'\r\nimport PaintFillChooser from './PaintFillChooser'\r\nimport ControlledTextInput from './ControlledTextInput'\r\n\r\nclass InitialsChooser extends Component { \r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleCharacterInput = this.handleCharacterInput.bind(this);\r\n\tthis.state = {\r\n\t initialsValid: true\r\n };\r\n\t\r\n\twindow.initialsTimer = null;\r\n }\r\n\r\n //remove copy/paste non-alphanumeric characters\r\n handleCharacterInput(onFieldChange, inputVal) {\r\n\tif(window.initialsTimer != null) {\r\n\t\tclearTimeout(window.initialsTimer);\r\n\t}\r\n\t\r\n let initVal = inputVal;\r\n let outputVal = this.props.allowSpaces ? trimStart(initVal).replace(/[^a-zA-Z0-9. ]/g, \"\") : initVal.replace(/[^a-zA-Z0-9.]/g, \"\");\r\n onFieldChange('characters', outputVal);\r\n\t\r\n\t//if they are done typing, validate initials\r\n\twindow.initialsTimer = setTimeout(()=>{ this.isValidInitials(this, inputVal); }, 500);\r\n }\r\n \r\n isValidInitials(vm, initials){\r\n\t\tif(initials.length > 0)\r\n\t\t{\r\n\t\t\tServices.checkInitialsValid(initials, vm, function(vm, data) {\r\n\t\t \r\n\t\t\t if(!data.Success) {\r\n\t\t\t\tconst element2 = document.getElementById(vm.props.id);\r\n\t\t\t\r\n\t\t\t\tvar evt2 = new Event('input', { bubbles: true });\r\n\t\t\t\tevt2.simulated = true;\r\n\t\t\t\telement2.value = '';\r\n\t\t\t\telement2.dispatchEvent(evt2);\r\n\t\t \r\n\t\t\t }\r\n\t\t\t vm.setState({initialsValid: data.Success});\r\n\r\n\t\t\t});\r\n \r\n\t\t} \r\n }\r\n \r\n \r\n\r\n render() {\r\n const { id, initials, paintLoc, selected, paints, selectedPaint, personalizationStyles, onFieldChange, onFieldChangeAdditionalOptions, onTextEntry, onSelectPaintFill, isError, isPaintError} = this.props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n {selected.enabled &&\r\n
\r\n
\r\n
Includes Paintfill
\r\n {\r\n\t\t\t\t\tthis.isValidInitials(this, e)\r\n\t\t\t\t}}\r\n\t\t\t\tmaxLength={initials.maxCharacters} \r\n onKeyPress={(e) => {\r\n const re = this.props.allowSpaces ? /[a-zA-Z0-9. ]+/g : /[a-zA-Z0-9.]+/g;\r\n if (!re.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n } \r\n }/>\r\n\t\t\t {!this.state.initialsValid &&\r\n\t\t\t
Restricted initials requested.
\r\n\t\t\t }\r\n {initials.allowPeriods &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
Letter Style
\r\n
\r\n {personalizationStyles.map(s => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n onSelectPaintFill(paintLoc.id, paint.id)}\r\n isOpen={true}\r\n />\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nInitialsChooser.defaultProps = {\r\n isError: false,\r\n isPaintError: false\r\n}\r\n\r\n\r\nInitialsChooser.propTypes = {\r\n initials: PropTypes.shape({\r\n labelAlternate1: PropTypes.string.isRequired,\r\n }),\r\n paintLoc: PropTypes.object,\r\n selected: PropTypes.shape({\r\n enabled: PropTypes.bool.isRequired,\r\n characters: PropTypes.string.isRequired,\r\n separateWithPeriods: PropTypes.bool.isRequired,\r\n personalizationStyleId: PropTypes.number.isRequired,\r\n }),\r\n paints: PropTypes.array.isRequired,\r\n selectedPaint: PropTypes.object,\r\n personalizationStyles: PropTypes.arrayOf(PropTypes.object),\r\n onFieldChangeAdditionalOptions: PropTypes.func,\r\n onFieldChange: PropTypes.func,\r\n onSelectPaintFill: PropTypes.func, \r\n}\r\n\r\nexport default InitialsChooser","import React, { PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\nimport { identity } from 'lodash'\r\nimport \"./StampSwatch.css\"\r\n\r\nconst StampSwatch = ({ stamp, selected, disabled, onClick = identity }) => (\r\n (stamp && stamp.menuImageUrl) ?\r\n
disabled ? \"\" : onClick(stamp)}\r\n >\r\n \r\n
\r\n :\r\n No Selection \r\n)\r\n\r\nStampSwatch.propTypes = {\r\n stamp: PropTypes.object,\r\n selected: PropTypes.bool,\r\n onClick: PropTypes.func, \r\n}\r\n\r\nexport default StampSwatch;","import React, { PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\nimport StampSwatch from './StampSwatch'\r\n\r\nconst StampGrid = ({ stamps, selectedStamp, selectedWeight, onSelectStamp, className}) => (\r\n
\r\n
Includes Paintfill
\r\n {stamps.map(stamp =>\r\n -1 }\r\n selected={stamp.id === (selectedStamp && selectedStamp.id)} \r\n onClick={onSelectStamp} />\r\n )}\r\n
\r\n)\r\n\r\nStampGrid.propTypes = {\r\n className: PropTypes.string,\r\n stamps: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n })).isRequired,\r\n selectedStamp: PropTypes.shape({\r\n id: PropTypes.number,\r\n }),\r\n onSelectStamp: PropTypes.func.isRequired,\r\n} \r\n\r\nexport default StampGrid;","import React, { Component, PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\n\r\nimport StampGrid from './StampGrid'\r\nimport PaintFillChooser from './PaintFillChooser'\r\nimport Price from './Price'\r\n\r\nclass StampChooser extends Component {\r\n render() {\r\n const { enabled,\r\n stampLoc, stamps, selectedStamp, paintLoc, paints, selectedPaint, selectedWeight,\r\n isError, isPaintError,\r\n onCheck, onSelectStamp, onSelectPaintFill, noCheck } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {(enabled || noCheck) &&\r\n
\r\n onSelectStamp(stamp.id)}\r\n />\r\n onSelectPaintFill(paintLoc.id, paint.id)}\r\n isOpen={true}\r\n />\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nStampChooser.defaultProps = {\r\n isError: false,\r\n isPaintError: false\r\n}\r\n\r\nStampChooser.propTypes = {\r\n stampLoc: PropTypes.object.isRequired,\r\n stamps: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n paintLoc: PropTypes.object.isRequired,\r\n enabled: PropTypes.bool,\r\n selectedStamp: PropTypes.object,\r\n paints: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n selectedPaint: PropTypes.object.isRequired,\r\n onCheck: PropTypes.func,\r\n onSelectStamp: PropTypes.func.isRequired,\r\n onSelectPaintFill: PropTypes.func.isRequired,\r\n noCheck: PropTypes.bool,\r\n}\r\n\r\nStampChooser.defaultProps = {\r\n noCheck: false\r\n}\r\n\r\n\r\nexport default StampChooser","import React from 'react';\r\n\r\nconst CustomModal = props => {\r\n const divStyle = {\r\n display: props.displayModal ? 'block' : 'none'\r\n };\r\n const closeButtonStyle = {\r\n display: props.showDefaultCloseButton ? 'block' : 'none'\r\n };\r\n function closeModal(e) {\r\n e.stopPropagation() \r\n }\r\n return (\r\n \r\n e.stopPropagation()} >\r\n {props.children}\r\n ×\r\n \r\n \r\n \r\n );\r\n}\r\nexport default CustomModal;","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash'\r\n\r\nimport PaintSummary from 'components/PaintSummary'\r\nimport PaintColorSwapModal from 'components/PaintColorSwapModal'\r\n\r\nimport { getFaceVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport PaintFillChooser from 'components/PaintFillChooser'\r\nimport InitialsChooser from 'components/InitialsChooser'\r\nimport StampChooser from 'components/StampChooser'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport { TrackedButtonLink } from 'components/Buttons'\r\n\r\nimport CustomModal from 'components/CustomModal'\r\n\r\nexport class FaceForm extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n currentPaintFill: null,\r\n modal: false,\r\n\t largeStampModal: false,\r\n initialsChecked: false,\r\n stampsChecked: false,\r\n closeButton: false,\r\n modalContent: '',\r\n\t tempStampId: 0\r\n };\r\n }\r\n setCurrentPaintFill(paint) {\r\n let colorObj = {};\r\n colorObj.color = paint;\r\n\t\r\n\t\r\n\t\r\n if(!paint)\r\n colorObj = paint;\r\n this.setState({currentPaintFill: colorObj});\r\n }\r\n \r\n //check if selected stamp requires initials to be disabled\r\n setStampOptions(locId, fieldName, stampId) {\r\n\t var hasFaceToeInitials = false;\r\n\t var allStamps = this.props.stampsLocations[0].stamps;\r\n\t var curStamp = {};\r\n\t let y = 0;\r\n\t for(y = 0; y < allStamps.length; y++) {\r\n\t\tif(allStamps[y].id == stampId) {\r\n\t\t\tcurStamp = allStamps[y];\r\n\t\t\tbreak;\r\n\t\t}\r\n\t }\r\n\t \r\n\t let r = 0;\r\n\t for(r = 0; r < allStamps.length; r++) {\r\n\t\tif(this.props.initials.length > 0 && this.props.initials[r].loc.parameterKey == 'faceText') {\r\n\t\t\thasFaceToeInitials = true;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t }\r\n\t \t \r\n\t if(!this.props.faceStampOrInitialsOnly && hasFaceToeInitials && curStamp.disableInitials) {\t\t\t\r\n\t\tthis.setState({ modalContent: 'The stamp you selected does not allow initials to be added to the face. Would you like to proceed?', tempStampId: stampId, stampsChecked: true, initialsChecked: false });\r\n\t\tthis.toggleLargeStampModal();\r\n\t } else {\t \r\n\t\tthis.props.onSelectStamp(locId, fieldName, stampId);\r\n\t }\r\n }\r\n \r\n //check if this putter only allows Stamp Or Initials\r\n setStampCheckOptions(value, i) {\r\n if (!this.props.faceStampOrInitialsOnly)\r\n return;\r\n if (value == false) {\r\n this.setState({ stampsChecked: false, initialsChecked: false });\r\n return;\r\n }\r\n \r\n var stampSelected = false;\r\n var initialsSelected = false;\r\n var stamp = this.props.stampsLocations[0];\r\n var initials = this.props.initials[0]; \r\n\r\n if ((stamp !== null && stamp !== undefined) && (stamp.selected !== null && stamp.selected !== undefined)) {\r\n\t\tconsole.log(JSON.stringify(stamp));\r\n if (stamp.selected.enabled) {\r\n stampSelected = true;\r\n }\r\n }\r\n if ((initials !== null && initials !== undefined) && (initials.selected !== null && initials.selected !== undefined)) {\r\n if (initials.selected.enabled) {\r\n initialsSelected = true;\r\n \r\n }\r\n }\r\n \r\n if (this.state.initialsChecked || this.state.stampsChecked || stampSelected || initialsSelected) {\r\n this.setState({ modalContent: 'By selecting Stamps, your Initials selections will be removed. Would you like to proceed?' });\r\n this.selectModal();\r\n }\r\n\r\n if (value == true) {\r\n this.setState({ stampsChecked: true, initialsChecked: false });\r\n } \r\n }\r\n\r\n //check if this putter only allows Stamp Or Initials\r\n setInitialCheckOptions(value1, value2, i) {\r\n var stamp = this.props.stampsLocations[0];\r\n\tconsole.log('this.state.stampsChecked1=' + this.state.stampsChecked);\r\n\t\r\n\tvar largeStampSelected = false;\t\r\n if (stamp !== undefined && stamp !== null && stamp.selected !== undefined && stamp.selected !== null) {\r\n if (stamp.selected.enabled) {\r\n stampSelected = true;\r\n\t\t\tif(stamp.selected.stamp !== undefined && stamp.selected.stamp.disableInitials) {\r\n\t\t\t\tlargeStampSelected = true;\t\r\n\t\t\t}\r\n }\r\n }\r\n\t\r\n\tif (!largeStampSelected && !this.props.faceStampOrInitialsOnly)\r\n return;\r\n\r\n if (value2 == false) {\r\n this.setState({ initialsChecked: false, stampsChecked: false });\r\n return;\r\n } \r\n console.log('this.state.stampsChecked2=' + this.state.stampsChecked);\r\n var stampSelected = false;\r\n var initialsSelected = false;\r\n \r\n var initials = this.props.initials[0];\r\n\r\n if ((initials !== null && initials !== undefined) && (initials.selected !== null && initials.selected !== undefined)) {\r\n if (initials.selected.enabled) {\r\n initialsSelected = true;\r\n\r\n }\r\n } \r\nconsole.log('this.state.stampsChecked3=' + this.state.stampsChecked);\r\n if (this.state.initialsChecked || this.state.stampsChecked || stampSelected || initialsSelected || largeStampSelected) {\r\n this.setState({ modalContent: 'By selecting Initials, your Stamps selections will be removed. Would you like to proceed?' });\r\n this.selectModal();\r\n }\r\n\r\n if (value2 == true) {\r\n this.setState({ initialsChecked: true, stampsChecked: false });\r\n } \r\n }\r\n\r\n componentWillMount(){\r\n this.props.selectView('FS') \r\n }\r\n\r\n selectModal = (info) => {\r\n this.setState({modal: !this.state.modal}) \r\n } \r\n \r\n toggleLargeStampModal = (info) => {\r\n this.setState({largeStampModal: !this.state.largeStampModal}) \r\n } \r\n\r\n handleChange(e) { \r\n \r\n if (this.state.initialsChecked && !this.state.stampsChecked) {\r\n var stamp = this.props.stampsLocations[0];\r\n this.props.onSelectStamp(stamp.loc.id, 'enabled', false);\r\n }\r\n if (this.state.stampsChecked && !this.state.initialsChecked) {\r\n var initials = this.props.initials[0]; \r\n this.props.onInitialsFieldChange(initials.loc.label, 'enabled', false); \r\n }\r\n \r\n this.setState({ modal: false }) \r\n }\r\n\r\n handleChangeCancel(e) { \r\n \r\n if (this.state.initialsChecked && !this.state.stampsChecked) {\r\n var initials = this.props.initials[0];\r\n this.props.onInitialsFieldChange(initials.loc.label, 'enabled', false);\r\n }\r\n if (this.state.stampsChecked && !this.state.initialsChecked) {\r\n \r\n var stamp = this.props.stampsLocations[0];\r\n this.props.onSelectStamp(stamp.loc.id, 'enabled', false);\r\n }\r\n\r\n this.setState({ modal: false })\r\n } \r\n\r\n\r\n handleLargeStampChange(e, stampId) { \r\n\tvar initials = this.props.initials[0]; \r\n\tthis.props.onInitialsFieldChange(initials.loc.label, 'enabled', false); \r\n\tvar stampLoc = this.props.stampsLocations[0];\r\n\tthis.props.onSelectStamp(stampLoc.loc.id, 'stampId', stampId);\r\n this.setState({ largeStampModal: false, tempStampId: 0 }) \r\n }\r\n \r\n handleLargeStampChangeCancel(e) { \r\n \r\n if (this.state.stampsChecked) {\r\n \r\n var stamp = this.props.stampsLocations[0];\r\n this.props.onSelectStamp(stamp.loc.id, 'enabled', false);\r\n\t\tthis.props.onSelectStamp(stamp.loc.id, 'enabled', true);\r\n }\r\n\r\n this.setState({ largeStampModal: false, tempStampId: 0 })\r\n }\r\n\r\n\r\n handleChangeCancel(e) { \r\n \r\n if (this.state.initialsChecked && !this.state.stampsChecked) {\r\n var initials = this.props.initials[0];\r\n this.props.onInitialsFieldChange(initials.loc.label, 'enabled', false);\r\n }\r\n if (this.state.stampsChecked && !this.state.initialsChecked) {\r\n \r\n var stamp = this.props.stampsLocations[0];\r\n this.props.onSelectStamp(stamp.loc.id, 'enabled', false);\r\n }\r\n\r\n this.setState({ modal: false })\r\n } \r\n\r\n\r\n render = () => (
\r\n \r\n

{this.state.modalContent}

\r\n this.handleLargeStampChangeCancel(e)}>×\r\n
\r\n\t\r\n

{this.state.modalContent}

\r\n this.handleChangeCancel(e)}>×\r\n
\r\n
Face
\r\n\t {this.props.paintFillLocations.length === 0 && this.props.initials.length === 0 && this.props.stampsLocations.length === 0 &&\r\n
\r\n
\r\n There are no customization options on this view.\r\n
\r\n
\r\n }\r\n
\r\n {this.props.paintFillLocations.length > 0 && \r\n
Select Colors
\r\n }\r\n {/*If paintFill id is not 6 (new paintfill) then link them back to finish to select a customize color option*/}\r\n {this.props.paintFillLocations.length > 0 && this.props.paintFill.id !== 6 &&\r\n
\r\n
Did you want to customize your colors?
\r\n
this.props.onEnablePaintFill('paintFill', 6)}>\r\n Enable Paintfill\r\n {!(this.props.buyAPutter && this.props.buyAPutter.selected) && \r\n ${this.props.paintFillPrice}\r\n }\r\n
\r\n
\r\n
\r\n }\r\n {this.props.paintFillLocations.length > 0 && this.props.paintFill.id === 6 &&\r\n
\r\n
\r\n this.setCurrentPaintFill(paint) }/>\r\n
this.props.resetPaintFills()}>\r\n Reset to Original\r\n
\r\n
this.props.clearPaintFills()}>\r\n Clear All\r\n
\r\n
\r\n {\r\n this.props.paintFillLocations.map((loc, index) => (\r\n this.props.onSelectPaintFill(loc.loc.id, paint.id)}\r\n />\r\n ))\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n {this.props.initials.length > 0 && \r\n
Select Initials
\r\n }\r\n {this.props.initials.length > 0 && \r\n
\r\n\t\t {\r\n this.props.initials.map(i => (\r\n { this.setInitialCheckOptions(value1, value2, i) }} \r\n onSelectPaintFill={(locid, paintid) => this.props.onSelectPaintFill(locid, paintid)}\r\n buyAPutter={this.props.buyAPutter}\r\n />\r\n ))\r\n }\r\n
\r\n }\r\n
\r\n {this.props.faceStampOrInitialsOnly &&\r\n
\r\n
OR
\r\n\r\n {this.props.initials.length > 0 &&\r\n
{this.props.initials[0].selected.enabled}
\r\n }\r\n
\r\n }\r\n
\r\n {this.props.stampsLocations.length > 0 && \r\n
Select Stamps
\r\n }\r\n {this.props.stampsLocations.length > 0 && \r\n
\r\n {\r\n this.props.stampsLocations.map(i => (\r\n { this.props.onSelectStamp(i.loc.id, 'enabled', value); this.setStampCheckOptions(value, i) }}\r\n onSelectStamp={(value) => this.setStampOptions(i.loc.id, 'stampId', value)}\r\n paintLoc={i.paint.loc}\r\n selectedPaint={i.paint.selected}\r\n paints={i.paint.paints}\r\n isError={this.props.showValidationWarnings && !i.valid}\r\n isPaintError={this.props.showValidationWarnings && !i.paint.valid}\r\n onSelectPaintFill={(locid, paintid) => this.props.onSelectPaintFill(locid, paintid)}\r\n buyAPutter={this.props.buyAPutter}\r\n />\r\n ))\r\n }\r\n
\r\n }\r\n
\r\n
\r\n next: back\r\n
\r\n \r\n\r\n this.setCurrentPaintFill(null)}\r\n className=\"paint-swapper\"\r\n paintSwapValid={this.props.paintSwapValid}\r\n />\r\n
)\r\n}\r\n\r\nFaceForm.defaultProps = {\r\n paintFillLocations: [],\r\n initials: [],\r\n stampsLocations: [],\r\n onSelectPaintFill: identity,\r\n onSelectStamp: identity,\r\n onInitialsFieldChange: identity,\r\n onEnablePaintFill: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { ...getFaceVM(state.customize, false) }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid;\r\n\r\n return p;\r\n}\r\nconst mapDispatchToProps = {\r\n onSelectPaintFill: actions.selectPaintFill,\r\n onInitialsFieldChange: actions.changeInitials,\r\n onSelectStamp: actions.selectStamp,\r\n selectView: actions.selectView,\r\n onEnablePaintFill: actions.selectField,\r\n resetPaintFills: actions.resetPaintFills,\r\n replacePaint: actions.replacePaint,\r\n clearPaintFills: actions.clearPaintFills,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(FaceForm);","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash'\r\n\r\nimport PaintSummary from 'components/PaintSummary'\r\nimport PaintColorSwapModal from 'components/PaintColorSwapModal' \r\n\r\nimport { getBackVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport PaintFillChooser from 'components/PaintFillChooser'\r\nimport InitialsChooser from 'components/InitialsChooser'\r\nimport StampChooser from 'components/StampChooser'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport { TrackedButtonLink } from 'components/Buttons'\r\n\r\nexport class BackForm extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n currentPaintFill: null,\r\n };\r\n } \r\n\r\n setCurrentPaintFill(paint) {\r\n let colorObj = {};\r\n colorObj.color = paint;\r\n if(!paint)\r\n colorObj = paint;\r\n this.setState({currentPaintFill: colorObj});\r\n }\r\n\r\n componentWillMount(){\r\n this.props.selectView('BC') \r\n }\r\n render = () => (
\r\n
Back
\r\n\t {this.props.paintFillLocations.length === 0 && this.props.initials.length === 0 && this.props.stampsLocations.length === 0 &&\r\n
\r\n
\r\n There are no customization options on this view.\r\n
\r\n
\r\n }\r\n
\r\n {this.props.paintFillLocations.length > 0 && \r\n
Select Colors
\r\n }\r\n {/*If paintFill id is not 6 (new paintfill) then link them back to finish to select a customize color option*/}\r\n {this.props.paintFillLocations.length > 0 && this.props.paintFill.id !== 6 &&\r\n
\r\n
Did you want to customize your colors?
\r\n
this.props.onEnablePaintFill('paintFill', 6)}>\r\n Enable Paintfill\r\n {!(this.props.buyAPutter && this.props.buyAPutter.selected) && \r\n ${this.props.paintFillPrice}\r\n }\r\n
\r\n
\r\n
\r\n }\r\n {this.props.paintFillLocations.length > 0 && this.props.paintFill.id === 6 &&\r\n
\r\n
\r\n this.setCurrentPaintFill(paint) }/>\r\n
this.props.resetPaintFills()}>\r\n Reset to Original\r\n
\r\n
this.props.clearPaintFills()}>\r\n Clear All\r\n
\r\n
\r\n {\r\n this.props.paintFillLocations.map((loc, index) => (\r\n this.props.onSelectPaintFill(loc.loc.id, paint.id)}\r\n />\r\n ))\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n {this.props.initials.length > 0 && \r\n
Select Initials
\r\n }\r\n {this.props.initials.length > 0 && \r\n
\r\n {\r\n this.props.initials.map(i => (\r\n !style.faceToeOnly)}\r\n paintLoc={i.paint.loc}\r\n paints={i.paint.paints}\r\n selectedPaint={i.paint.selected}\r\n isError={this.props.showValidationWarnings && !i.valid}\r\n isPaintError={this.props.showValidationWarnings && !i.paint.valid}\r\n onFieldChange={partial(this.props.onInitialsFieldChange, i.loc.label)}\r\n onSelectPaintFill={(locid, paintid) => this.props.onSelectPaintFill(locid, paintid)}\r\n allowSpaces={true}\r\n />\r\n ))\r\n }\r\n
\r\n }\r\n
\r\n
\r\n {this.props.stampsLocations.length > 0 && \r\n
Select Stamps
\r\n }\r\n {this.props.stampsLocations.length > 0 && \r\n
\r\n {\r\n this.props.stampsLocations.map(i => (\r\n this.props.onSelectStamp(i.loc.id, 'enabled', value)}\r\n onSelectStamp={(value) => this.props.onSelectStamp(i.loc.id, 'stampId', value)}\r\n paintLoc={i.paint.loc}\r\n selectedPaint={i.paint.selected}\r\n paints={i.paint.paints}\r\n isError={this.props.showValidationWarnings && !i.valid}\r\n isPaintError={this.props.showValidationWarnings && !i.paint.valid}\r\n onSelectPaintFill={(locid, paintid) => this.props.onSelectPaintFill(locid, paintid)}\r\n />\r\n ))\r\n }\r\n
\r\n }\r\n
\r\n
\r\n next: top\r\n
\r\n \r\n this.setCurrentPaintFill(null)}\r\n className=\"paint-swapper\"\r\n paintSwapValid={this.props.paintSwapValid}\r\n />\r\n
)\r\n}\r\n\r\nBackForm.defaultProps = {\r\n paintFillLocations: [],\r\n initials: [],\r\n stampsLocations: [],\r\n onSelectPaintFill: identity,\r\n onSelectStamp: identity,\r\n onInitialsFieldChange: identity,\r\n onEnablePaintFill: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { ...getBackVM(state.customize, false) }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid\r\n return p;\r\n}\r\nconst mapDispatchToProps = {\r\n onSelectPaintFill: actions.selectPaintFill,\r\n onInitialsFieldChange: actions.changeInitials,\r\n onSelectStamp: actions.selectStamp,\r\n selectView: actions.selectView,\r\n onEnablePaintFill: actions.selectField,\r\n replacePaint: actions.replacePaint,\r\n resetPaintFills: actions.resetPaintFills,\r\n clearPaintFills: actions.clearPaintFills,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(BackForm);\r\n","import React, { Component, PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\nimport PaintFillChooser from 'components/PaintFillChooser'\r\n\r\nclass LineChooser extends Component {\r\n render() {\r\n const { name, options, selected, paints, isError, isPaintError, onFieldChange, onSelectPaintFill } = this.props;\r\n const radioGroup = this.props.radioGroup || name\r\n return (\r\n \r\n {(options || []).map(o => {\r\n const isSelected = selected && (o.id === selected.id);\r\n\r\n return
\r\n \r\n
\r\n {isSelected && paints.length > 0 &&\r\n
\r\n
Includes Paintfill
\r\n {paints.map(paint =>\r\n onSelectPaintFill(paint.loc.id, p.id)}\r\n labelOverride={(name === 'sightDot') ? 'Dot' : null}\r\n isOpen={true}\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\nLineChooser.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n radioGroup: PropTypes.string,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired,\r\n })),\r\n selected: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n }),\r\n paints: PropTypes.arrayOf(PropTypes.shape({\r\n loc: PropTypes.object,\r\n paints: PropTypes.arrayOf(PropTypes.object),\r\n selected: PropTypes.object,\r\n })),\r\n isError: PropTypes.bool,\r\n isPaintError: PropTypes.bool,\r\n onFieldChange: PropTypes.func.isRequired,\r\n onSelectPaintFill: PropTypes.func, \r\n}\r\n\r\nexport default LineChooser","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash'\r\n\r\nimport PaintSummary from 'components/PaintSummary'\r\nimport PaintColorSwapModal from 'components/PaintColorSwapModal' \r\n\r\nimport { getTopVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport PaintFillChooser from 'components/PaintFillChooser'\r\nimport LineChooser from 'components/LineChooser'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport { TrackedButtonLink } from 'components/Buttons'\r\n\r\nexport class TopForm extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n currentPaintFill: null,\r\n };\r\n }\r\n setCurrentPaintFill(paint) {\r\n let colorObj = {};\r\n colorObj.color = paint;\r\n if(!paint)\r\n colorObj = paint;\r\n this.setState({currentPaintFill: colorObj});\r\n }\r\n \r\n componentWillMount(){\r\n this.props.selectView('PP') \r\n }\r\n render = () => (
\r\n
Top
\r\n\t {this.props.paintFillLocations.length === 0 && (this.props.sightDots.options.length === 1 && this.props.sightDots.options[0].numberOfLines === 0 && this.props.topLines.options.length === 0) && this.props.flangeLines.options.length === 0 &&\r\n
\r\n
\r\n There are no customization options on this view.\r\n
\r\n
\r\n }\r\n
\r\n {this.props.paintFillLocations.length > 0 && \r\n
Select Colors
\r\n }\r\n {/*If paintFill id is not 6 (new paintfill) then link them back to finish to select a customize color option*/}\r\n {this.props.paintFillLocations.length > 0 && this.props.paintFill.id !== 6 &&\r\n
\r\n
Did you want to customize your colors?
\r\n
this.props.onEnablePaintFill('paintFill', 6)}>\r\n Enable Paintfill\r\n {!(this.props.buyAPutter && this.props.buyAPutter.selected) && \r\n ${this.props.paintFillPrice}\r\n }\r\n
\r\n
\r\n
\r\n }\r\n {this.props.paintFillLocations.length > 0 && this.props.paintFill.id === 6 &&\r\n
\r\n
\r\n this.setCurrentPaintFill(paint) }/>\r\n
this.props.resetPaintFills()}>\r\n Reset to Original\r\n
\r\n
this.props.clearPaintFills()}>\r\n Clear All\r\n
\r\n
\r\n {\r\n this.props.paintFillLocations.map((loc, index) => (\r\n this.props.onSelectPaintFill(loc.loc.id, paint.id)}\r\n />\r\n ))\r\n }\r\n
\r\n
\r\n }\r\n
\r\n {/*if there is only 1 option and it is 'Keep As Is' (numberOfLines: 0) then hide this section*/}\r\n {!(this.props.sightDots.options.length === 1 && this.props.sightDots.options[0].numberOfLines === 0 && this.props.topLines.options.length === 0) &&\r\n
\r\n {(this.props.sightDots.options.length > 0 || this.props.topLines.options > 0) &&\r\n
Select Topline*
\r\n }\r\n {(this.props.sightDots.options.length > 0 || this.props.topLines.options > 0) &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n }\r\n
\r\n {this.props.flangeLines.options.length > 0 && \r\n
Select Flange*
\r\n }\r\n {this.props.flangeLines.options.length > 0 && \r\n
\r\n \r\n
\r\n }\r\n {(this.props.sightDots.options.length > 0 || this.props.topLines.options > 0 || this.props.flangeLines.options.length > 0 ) && !(this.props.buyAPutter && this.props.buyAPutter.selected) &&\r\n
* $30.00 for the first and $20.00 for each additional line (or dot).
\r\n }\r\n
\r\n
\r\n next: specs\r\n
\r\n \r\n this.setCurrentPaintFill(null)}\r\n className=\"paint-swapper\"\r\n paintSwapValid={this.props.paintSwapValid}\r\n />\r\n
)\r\n}\r\n\r\nTopForm.defaultProps = {\r\n paintFillLocations: [],\r\n flangeLines: {},\r\n sightDots: {},\r\n topLines: {},\r\n showValidationWarnings:false,\r\n onFieldChange: identity,\r\n onSelectPaintFill: identity,\r\n onEnablePaintFill: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { ...getTopVM(state.customize, false) }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid\r\n return p;\r\n}\r\nconst mapDispatchToProps = {\r\n onSelectPaintFill: actions.selectPaintFill,\r\n onFieldChange: actions.selectField,\r\n selectView: actions.selectView,\r\n onEnablePaintFill: actions.selectField,\r\n replacePaint: actions.replacePaint,\r\n resetPaintFills: actions.resetPaintFills,\r\n clearPaintFills: actions.clearPaintFills,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TopForm);\r\n","import React, { PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\n\r\nconst ControlledSelect = ({ options, selected, showPrice, onChange, className, isError, children }) => (\r\n { onChange(evt.target.value) }}\r\n className={classNames(['controlled-select', className, { 'error': isError }])}\r\n >\r\n {children}\r\n {options.map(o => (\r\n \r\n ))}\r\n \r\n)\r\n\r\nControlledSelect.propTypes = {\r\n className: PropTypes.string,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired\r\n })).isRequired,\r\n selected: PropTypes.shape({\r\n id: PropTypes.number.isRequired\r\n }),\r\n showPrice: PropTypes.bool,\r\n isError: PropTypes.bool,\r\n onChange: PropTypes.func\r\n}\r\n\r\nexport default ControlledSelect;","import React, { Component, PropTypes } from 'react'\r\nimport {partial} from 'lodash'\r\nimport classNames from 'classnames'\r\n\r\nimport StampChooser from './StampChooser'\r\nimport ControlledSelect from './ControlledSelect'\r\n\r\nclass WeightChooser extends Component {\r\n constructor() {\r\n super()\r\n this.state = { checked: false }\r\n }\r\n \r\n componentWillReceiveProps(nextProps) {\r\n this.setState({checked: nextProps.weight.selectedEngraving}); \r\n }\r\n \r\n handleCheck(checkbox) {\r\n const weight = this.props.weight;\r\n const keys = weight.keys;\r\n\r\n if (!this.state.checked) {\r\n this.setState({ checked: true })\r\n this.props.onFieldChange(keys.weightEngraving, weight.engravingOption.id)\r\n\r\n } else {\r\n this.setState({ checked: false });\r\n this.props.onFieldChange(keys.weightEngraving, 0);\r\n this.props.onFieldChange(keys.weightEngravingToe, 0);\r\n this.props.onFieldChange(keys.weightEngravingHeel, 0);\r\n }\r\n }\r\n\r\n render() {\r\n const { weight, hasEngraving, onFieldChange, onSelectPaintFill, isError, isStampError, isPaintError, allowKeepAsIs } = this.props;\r\n const keys = weight.keys\r\n return (\r\n
\r\n \r\n {allowKeepAsIs &&\r\n \r\n }\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nlet engravingShape = PropTypes.shape({\r\n loc:PropTypes.object.isRequired,\r\n selected:PropTypes.object,\r\n stamps:PropTypes.arrayOf(PropTypes.object).isRequired, \r\n}).isRequired;\r\nlet paintShape = PropTypes.shape({\r\n loc:PropTypes.object.isRequired,\r\n selected:PropTypes.object,\r\n paints:PropTypes.arrayOf(PropTypes.object).isRequired, \r\n}).isRequired;\r\n\r\nWeightChooser.propTypes = {\r\n weight: PropTypes.shape({\r\n frontEngraving: engravingShape,\r\n rearEngraving: engravingShape,\r\n frontPaint: paintShape,\r\n rearPaint: paintShape, \r\n }).isRequired,\r\n hasEngraving: PropTypes.bool.isRequired,\r\n isError: PropTypes.bool,\r\n isStampError: PropTypes.bool,\r\n isPaintError: PropTypes.bool,\r\n onFieldChange: PropTypes.func.isRequired,\r\n onSelectPaintFill: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default WeightChooser","import React, { PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\nimport Price from './Price'\r\n\r\nconst ControlledRadioGroup = ({ options, radioGroup, selected, isError, onChange, className, showPrice = false }) => (\r\n
\r\n {options.map(o => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n)\r\n\r\nControlledRadioGroup.propTypes = {\r\n className: PropTypes.string,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n label: PropTypes.string.isRequired\r\n })).isRequired,\r\n radioGroup: PropTypes.string.isRequired,\r\n selected: PropTypes.shape({\r\n id: PropTypes.number.isRequired\r\n }),\r\n isError: PropTypes.bool,\r\n onChange: PropTypes.func,\r\n showPrice: PropTypes.bool,\r\n}\r\n\r\nexport default ControlledRadioGroup;","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash' \r\nimport classNames from 'classnames'\r\nimport Modal from 'react-modal'\r\n\r\nimport { getSpecsVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport WeightChooser from 'components/WeightChooser'\r\nimport ControlledSelect from 'components/ControlledSelect'\r\nimport ControlledRadioGroup from 'components/ControlledRadioGroup'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport { TrackedButtonLink } from 'components/Buttons'\r\n\r\nexport class SpecsForm extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n lengthInfoIsOpen: false,\r\n };\r\n this.toggleLengthInfo = this.toggleLengthInfo.bind(this);\r\n this.closeLengthInfo = this.closeLengthInfo.bind(this);\r\n }\r\n toggleLengthInfo() {\r\n\tif(this.state.lengthInfoIsOpen) {\r\n\t\tthis.setState({lengthInfoIsOpen: false});\r\n\t} else {\r\n\t\tthis.setState({lengthInfoIsOpen: true});\t\r\n\t}\r\n }\r\n\r\n closeLengthInfo() {\r\n this.setState({lengthInfoIsOpen: false});\r\n }\r\n componentWillMount(){\r\n this.props.selectView('FS') \r\n }\r\n render = () => (
\r\n
Specs
\r\n {this.props.hasWeights &&\r\n
\r\n
Select Weight
\r\n \r\n
\r\n }\r\n {this.props.hasTopWeights &&\r\n
\r\n
Select Top Weight
\r\n \r\n
\r\n }\r\n
\r\n
Loft
\r\n \r\n
\r\n
\r\n
Lie
\r\n \r\n
\r\n
\r\n
\r\n\t\tLength \r\n\t\t\r\n\t\t{(this.state.lengthInfoIsOpen) &&\r\n
\r\n\t\t\t\r\n\t\t\t

IMPORTANT: Putter length is measured from the butt end of the grip to the bottom center of the putter face. If you are not sure of your putter’s length, please first measure it using this method prior to making your length selections to ensure delivery to your desired specifications.

\r\n\t\t
\t\r\n\t }\r\n\t
\r\n \r\n {this.props.length.selected && this.props.length.selected.userSelection &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n
Shaft
\r\n \r\n {this.props.reshaft.selected && this.props.reshaft.selected.gripRequired &&\r\n
Includes new grip. Cannot reuse old grip.
\r\n }\r\n
\r\n
\r\n next: accessories\r\n
\r\n \r\n \t\r\n
\r\n )\r\n}\r\n\r\nSpecsForm.defaultProps = {\r\n hasWeights: false,\r\n weight: {},\r\n hasTopWeights: false,\r\n topWeight: {},\r\n length: [],\r\n loft: [],\r\n lie: [],\r\n reshaft: [],\r\n onFieldChange: identity,\r\n onSelectStamp: identity,\r\n onSelectPaintFill: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { ...getSpecsVM(state.customize) }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid\r\n return p;\r\n}\r\nconst mapDispatchToProps = {\r\n onFieldChange: actions.selectField,\r\n onSelectStamp: actions.selectStamp,\r\n onSelectPaintFill: actions.selectPaintFill,\r\n selectView: actions.selectView,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SpecsForm);","import React, { PropTypes } from 'react'\r\nimport classNames from 'classnames'\r\nimport ArrowImg from 'images/arrow.png'\r\n\r\nconst Accessory = ({ selected, accessoryType, reshaft, restoration, isError, onSelectAccessoryType, onRemoveAccessory }) => (\r\n
\r\n {onSelectAccessoryType ?\r\n
\r\n {selected &&\r\n
\r\n {selected.label}\r\n
\r\n
{selected.label}
\r\n
${selected.price}
\r\n
onRemoveAccessory(accessoryType, 0)} style={{cursor: \"pointer\"}}>REMOVE
\r\n
EDIT
\r\n
\r\n {`Edit`}\r\n
\r\n }\r\n {!selected &&\r\n
\r\n
\r\n
\r\n
NONE
\r\n
CHOOSE {accessoryType.replace('shaftBand', 'shaft band')}
\r\n
\r\n {`Edit`}\r\n
\r\n }\r\n
\r\n :\r\n
\r\n {selected &&\r\n
\r\n {selected.label}\r\n
\r\n
{selected.label}
\r\n
${selected.price}
\r\n
\r\n
\r\n }\r\n {!selected &&\r\n
\r\n
\r\n
NONE
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n)\r\n\r\nconst AccessorySelection = ({ selected, accessoryType, onSelectAccessoryType, isError, className, onRemoveAccessory }) => (\r\n
\r\n
{accessoryType.replace('shaftBand', 'shaft band')}
\r\n {onSelectAccessoryType\r\n ? \r\n
\r\n {className === 'mobile'\r\n ?\r\n
\r\n onSelectAccessoryType(accessoryType)} selected={selected} accessoryType={accessoryType} isError={isError}/> \r\n
\r\n :\r\n
onSelectAccessoryType(accessoryType)} style={{cursor: \"pointer\"}} >\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\nAccessorySelection.defaultProps = {\r\n}\r\n\r\nAccessorySelection.propTypes = {\r\n accessoryType: PropTypes.string.isRequired,\r\n selected: PropTypes.object,\r\n onSelectAccessoryType: PropTypes.func,\r\n isError: PropTypes.bool,\r\n className: PropTypes.string,\r\n onRemoveAccessory: PropTypes.func,\r\n}\r\n\r\nexport default AccessorySelection","import React, { PropTypes } from 'react'\r\nimport ZoomInImg from 'images/icon-zoom-in.png'\r\nimport className from 'classnames'\r\n\r\nconst AccessoriesGrid = ({ accessories, colorFilters, accessoryType, onSelectAccessory, reshaft, restoration, closeModal, onZoomAccessory, closeZoomModal }) => (\r\n
\r\n {accessories.options\r\n .filter(accessory => ( !(colorFilters.length > 0) || !!(colorFilters.filter(colorFilter => colorFilter.label === accessory.color).length > 0)))\r\n .map(accessory => (\r\n {onSelectAccessory(accessoryType, accessory.id); if(!!closeModal) {closeModal();} }}\r\n >\r\n
\r\n {accessory.imageUrl && \r\n {accessory.label}/\r\n }\r\n
\r\n
{accessory.label}
\r\n {accessory.price >= 0 &&\r\n
${accessory.price}
\r\n }\r\n {accessory.imageUrl && \r\n
\r\n {`Zoom`} onZoomAccessory(event, accessory.imageUrl, accessory.id, accessory.label, accessoryType, accessory.price)} />\r\n
\r\n }\r\n
\r\n ))\r\n }\r\n \r\n)\r\n \r\n\r\nAccessoriesGrid.defaultProps = {\r\n}\r\n\r\nAccessoriesGrid.propTypes = {\r\n accessoryType: PropTypes.string.isRequired,\r\n colorFilters: PropTypes.arrayOf(PropTypes.object),\r\n accessories: PropTypes.object.isRequired,\r\n onSelectAccessory: PropTypes.func.isRequired,\r\n reshaft: PropTypes.object,\r\n restoration: PropTypes.object,\r\n}\r\n\r\nexport default AccessoriesGrid","import React, { Component } from 'react'\r\nimport Modal from 'react-modal';\r\nimport { Button } from 'components/Buttons'\r\nimport { connect } from 'react-redux'\r\nimport { identity } from 'lodash'\r\nimport { getAccessoriesVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport Price from 'components/Price'\r\nimport PaintSwatch from './PaintSwatch'\r\nimport AccessoriesGrid from './AccessoriesGrid'\r\nimport \"./AccessoriesView.css\"\r\nimport { trackedClickEvent } from '../util/analytics';\r\n\r\nexport class AccessoriesView extends Component {\r\n constructor() {\r\n super();\r\n this.state = { \r\n colorFilters: [],\r\n accessoryImg: '',\r\n accessoryId: 0,\r\n accessoryLabel: '',\r\n accessoryType: '',\r\n accessoryPrice: '',\r\n accessoriesZoomModalIsOpen: false,\r\n }\r\n this.openZoomModal = this.openZoomModal.bind(this);\r\n this.closeZoomModal = this.closeZoomModal.bind(this);\r\n }\r\n\r\n openZoomModal(event, accessoryImg, accessoryId, accessoryLabel, accessoryType, accessoryPrice) {\r\n event.stopPropagation();\r\n this.setState({\r\n accessoryImg: accessoryImg,\r\n accessoryId: accessoryId,\r\n accessoryLabel: accessoryLabel,\r\n accessoryType: accessoryType,\r\n accessoryPrice: accessoryPrice,\r\n accessoriesZoomModalIsOpen: true,\r\n });\r\n }\r\n\r\n closeZoomModal() {\r\n this.setState({accessoriesZoomModalIsOpen: false});\r\n }\r\n\r\n setColorFilters(color) {\r\n let newColorFilters = this.state.colorFilters;\r\n if (!color)\r\n {\r\n newColorFilters = [];\r\n }\r\n else\r\n {\r\n const index = newColorFilters.indexOf(color);\r\n if(index > -1)\r\n {\r\n newColorFilters.splice(index, 1);\r\n }\r\n else\r\n {\r\n newColorFilters.push(color);\r\n }\r\n }\r\n this.setState({ colorFilters: newColorFilters });\r\n }\r\n\r\n render = () => (\r\n
\r\n
\r\n
Choose {this.props.accessoryType.replace('shaftBand', 'shaft band')}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.props.accessoryType === 'grip'&& \r\n \r\n }\r\n \r\n {this.props.accessoryType === 'shaftBand' && \r\n \r\n }\r\n \r\n {this.props.accessoryType === 'headCover' && \r\n \r\n }\r\n \r\n
\r\n
X
\r\n
\r\n
\r\n
\r\n {this.state.accessoryLabel}\r\n
\r\n
{this.state.accessoryLabel}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nAccessoriesView.defaultProps = {\r\n onFieldChange: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return { \r\n ...getAccessoriesVM(state.customize)\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n onFieldChange: actions.selectField,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AccessoriesView);","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash'\r\nimport Modal from 'react-modal';\r\n\r\nimport { getAccessoriesVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport AccessorySelection from 'components/AccessorySelection'\r\nimport AccessoriesView from 'components/AccessoriesView'\r\nimport ControlledRadioGroup from 'components/ControlledRadioGroup'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport { TrackedButtonLink } from 'components/Buttons'\r\n\r\nexport class AccessoriesForm extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n accessoriesModalIsOpen: false,\r\n accessoryType: '',\r\n };\r\n this.openModal = this.openModal.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n }\r\n\r\n openModal(accessoryType) {\r\n this.setState({\r\n accessoryType,\r\n accessoriesModalIsOpen: true,\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.setState({accessoriesModalIsOpen: false});\r\n }\r\n\r\n render = (props) => (\r\n
\r\n
Accessories
\r\n
\r\n { !(this.props.buyAPutter && this.props.buyAPutter.selected) && !this.props.grip.valid &&\r\n
Grip Selection Required
\r\n }\r\n \r\n this.openModal(\"grip\")}\r\n isError={this.props.showValidationWarnings && !this.props.grip.valid}\r\n onRemoveAccessory={this.props.onFieldChange}\r\n />\r\n {/*TODO: Check conditions for grip wraps. \r\n are grips required to show grip wraps? \r\n is a grip wrap selection required? \r\n an option to deselect? */}\r\n {this.props.grip.selected &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n
\r\n \r\n this.openModal(\"shaftBand\")}\r\n isError={this.props.showValidationWarnings && !this.props.shaftBand.valid}\r\n onRemoveAccessory={this.props.onFieldChange}\r\n />\r\n
\r\n
\r\n \r\n this.openModal(\"headCover\")}\r\n isError={this.props.showValidationWarnings && !this.props.headCover.valid}\r\n onRemoveAccessory={this.props.onFieldChange}\r\n />\r\n
\r\n
\r\n next: Authentication\r\n
\r\n {\r\n }\r\n \r\n
\r\n
X
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nAccessoriesForm.defaultProps = {\r\n onFieldChange: identity,\r\n \r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { \r\n ...getAccessoriesVM(state.customize),\r\n selectedAccessoryType : state.customize.selectedAccessoryType,\r\n }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid\r\n return p;\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n onFieldChange: actions.selectField,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AccessoriesForm);","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash'\r\n\r\nimport { getAuthenticationVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport ControlledRadioGroup from 'components/ControlledRadioGroup'\r\nimport { TrackedButtonLink, TrackedButton} from 'components/Buttons'\r\n\r\nexport class AuthenticationForm extends Component {\r\n\r\n constructor() {\r\n super();\r\n this.state = { valid: true };\r\n this.checkValid = this.checkValid.bind(this);\r\n }\r\n\r\n checkValid() {\r\n this.setState( {valid: this.props.validation.valid} );\r\n }\r\n\r\n componentWillReceiveProps(nextProps)\r\n {\r\n this.setState( {valid: nextProps.validation.valid} );\r\n }\r\n\r\n render = () => (
\r\n
Authentication
\r\n
\r\n \r\n
\r\n
\r\n {this.props.validation.valid &&\r\n next: confirm\r\n }\r\n {!this.props.validation.valid &&\r\n next: confirm\r\n }\r\n
\r\n {!this.state.valid &&\r\n
Please complete all selections above before going to another page.
\r\n }\r\n {/*\r\n \r\n */}\r\n
\r\n )\r\n}\r\n\r\nAuthenticationForm.defaultProps = {\r\n onFieldChange: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var p = { ...getAuthenticationVM(state.customize) }\r\n p.showValidationWarnings = state.app.blockedNavigation && !p.validation.valid\r\n return p;\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n onFieldChange: actions.selectField,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AuthenticationForm);","import React, { Component } from 'react'\r\nimport Modal from 'react-modal';\r\nimport { Button } from 'components/Buttons'\r\nimport \"./AuthenticationView.css\"\r\n\r\nclass AuthenticationView extends Component { \r\n\r\n constructor() {\r\n super();\r\n this.state = {\r\n certModalIsOpen: false,\r\n certModalHeader: '',\r\n certModalContent: '',\r\n certModalImg: '',\r\n };\r\n this.openModal = this.openModal.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n }\r\n\r\n openModal(certModalHeader, certModalContent, certModalImg) {\r\n this.setState({\r\n certModalIsOpen: true,\r\n certModalHeader,\r\n certModalContent,\r\n certModalImg,\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.setState({certModalIsOpen: false});\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \"If that was your grandfather's putter, how would you want it treated?\"\r\n
\r\n
\r\n - Scotty Cameron, Master Craftsman\r\n
\r\n
\r\n
\r\n
\r\n Authentication preserves your investment\r\n
\r\n
\r\n Whether you just purchased your putter or are having it customized or restored, you should\r\n take this opportunity to have it authenticated. If you ever want to insure, donate, sell\r\n or pass down your putter, our Authentication service removes all doubt of its authenticity -\r\n - preserving your investment and maintaining the integrity of the Scotty Cameron brand.\r\n
\r\n
\r\n
\r\n
\r\n What is authentication?\r\n
\r\n
\r\n When the Scotty Cameron Custom Shop authenticates your putter, we examine it to\r\n determine its authenticity to ensure that it is truly a Scotty Cameron putter and that any\r\n changes made to it were performed by the experts in the Scotty Cameron Custom Shop. We examine\r\n all of the following aspects of your putter: Shape, Finish, Shaft, Grip, Stamping, Paintfill,\r\n and Weight to establish the level of authenticity of your putter. We will also describe and\r\n record any aftermarket changes that have been made to your putter. We do not make\r\n “grade” distinctions; our process is unbiased and based completely on the facts of the\r\n putter or merchandise received. \r\n
\r\n
\r\n
\r\n
\r\n Levels of Authenticity\r\n
\r\n
\r\n When the Scotty Cameron Custom Shop verifies your putter, you will receive a printed\r\n Certificate of Authenticity (COA). We will also establish a permanent record of your putter\r\n (including images) in our Authentication Registry. \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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
CertificateShapeFinishWeightStampingPaintfillShaftGrip
\r\n this.openModal('Certificate A', \r\n 'A putter is given an “A” designation if it retains its original, authentic characteristics or any customizations performed by the Scotty Cameron Custom Shop/Putter Studio. The following criteria have not been altered in the aftermarket in any way: putter shape, stamping, finish, weight, paintfill, shaft or grip. A 100% authentic Scotty Cameron putter will receive a printed Certificate of Authenticity (COA) with a red border, which lists these authentic designations, including pictures of the putter. The COA is embossed with a raised seal and includes a hologram and a registry number beginning with the letter A. An online COA database can be accessed on ScottyCameron.com using this registry number.',\r\n '//acushnet.scene7.com/is/image/scottycameron/Authentication_A1?scl=1'\r\n )}>Certificate A\r\n \r\n
\r\n 100% Authentic\r\n
AuthenticAuthenticAuthenticAuthenticAuthenticAuthenticAuthentic
\r\n this.openModal('Certificate B', \r\n 'In this example, an aftermarket shaft has been installed on the putter. A putter is considered “slightly altered” and would receive a “B” designation if an original Scotty Cameron putter has had any of the following aftermarket changes: paintfill, shaft or grip. A slightly altered Scotty Cameron putter will receive a printed Certificate of Authenticity (COA) with a yellow border, including pictures of the putter and any of the above alterations noted. The COA is embossed with a raised seal, and includes a hologram and a registry number beginning with the letter B. An online COA database can be accessed on ScottyCameron.com using this registry number.',\r\n '//acushnet.scene7.com/is/image/scottycameron/Authentication_B?scl=1'\r\n )}>Certificate B\r\n \r\n
\r\n Slight Alteration\r\n
AuthenticAuthenticAuthenticAuthenticSlight ModificationSlight ModificationSlight Modification
\r\n this.openModal('Certificate C', \r\n 'In this example, someone in the aftermarket other than the Scotty Cameron Custom Shop/Putter Studio has added infringing stamping on the face of the putter. This would be considered a “significant modification” and would result in a “C” Certificate of Authenticity (COA) being issued. A putter is considered significantly modified if an original Scotty Cameron putter has had any of the following aftermarket changes, none of which infringe on Titleist/Scotty Cameron trademarks and/or intellectual property: putter shape, finish, stamping or weight. A significantly modified putter will receive a Certificate of Authenticity with a blue border including notations regarding any and all changes to the putter. The COA is embossed with a raised seal, and includes a hologram and a registry number beginning with the letter C. An online COA database can be accessed on ScottyCameron.com using this registry number.',\r\n '//acushnet.scene7.com/is/image/scottycameron/Authentication_C?scl=1'\r\n )}>Certificate C\r\n \r\n
\r\n Significant Modification
Any ModificationAny ModificationAny ModificationAny Modification
\r\n No Certificate issued,\r\n
\r\n this.openModal('No Certificate Issued – Stamp that infringes on trademark', \r\n 'A putter is considered to have trademark and/or intellectual property modifications if an original Scotty Cameron putter has infringing stamps such as a crown logo, Circle T stamp, Titleist logo, etc., applied in the aftermarket NOT by the Scotty Cameron Custom Shop/Putter Studio. A putter with infringing stamps or marks submitted for authentication will NOT receive a Certificate of Authenticity (COA), but rather a letter with a green border stating that the putter has modifications that infringe on Scotty Cameron/Titleist trademarks and/or intellectual property.'\r\n )}>Letter Sent\r\n \r\n
Stamp that infringes on trademark
\r\n No Certificate issued,\r\n
\r\n this.openModal('No Certificate Issued – Counterfeit', \r\n 'A counterfeit putter was NOT made by, nor has any affiliation with, Titleist and/or Scotty Cameron. It will not receive a Certificate of Authenticity (COA), but rather a letter with a gray border stating that the putter submitted was found to be a counterfeit. If you have mistakenly purchased a counterfeit putter, then we encourage you to visit our page regarding counterfeit product.'\r\n )}>Letter Sent\r\n \r\n
COUNTERFEIT
\r\n A putter that was NOT made by nor has any affiliation with the Titleist/Scotty Cameron Putter Studio.\r\n
\r\n
\r\n
\r\n \"Certificate\r\n
\r\n \r\n
X
\r\n
{this.state.certModalHeader}
\r\n
{this.state.certModalContent}\r\n

\r\n {this.state.certModalImg && \r\n {this.state.certModalHeader}\r\n\r\n }\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default AuthenticationView","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { identity, partial } from 'lodash' \r\nimport classNames from 'classnames'\r\nimport ReactRedirect from 'react-redirect'\r\n\r\nimport { getConfirmVM } from 'state/viewModels'\r\nimport { Button, ButtonLink, TrackedLink} from \"components/Buttons\"\r\nimport ControlledRadioGroup from 'components/ControlledRadioGroup'\r\nimport ControlledTextInput from 'components/ControlledTextInput'\r\nimport NavWarning from 'containers/NavWarning'\r\nimport * as actions from 'ducks/modules/customize'\r\nimport Modal from 'react-modal';\r\nimport config from 'util/config.js'\r\nimport SpinnerGif from 'images/spinner-32.gif'\r\n//import NavWarning from 'containers/NavWarning'\r\n\r\nexport class ConfirmForm extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = { \r\n addToSavedResult: null, \r\n addToCartResult: null, \r\n addToCartResultModalIsOpen: false,\r\n showAuth: !props.auth.valid, \r\n showInsurance: !(props.specs.buyAPutter && props.specs.buyAPutter.selected),\r\n addToCartClicked: false, \r\n showSpinner: false,\r\n };\r\n this.openModal = this.openModal.bind(this);\r\n this.closeModal = this.closeModal.bind(this);\r\n this.addToSavedHandler = this.addToSavedHandler.bind(this);\r\n }\r\n \r\n addToSavedHandler(){\r\n this.props.addToSaved().then((result) => {\r\n this.setState({ addToSavedResult: result.payload });\r\n })\r\n }\r\n\r\n setAddToCartClicked(isClicked) {\r\n this.setState({ addToCartClicked: isClicked });\r\n this.setShowSpinner(isClicked);\r\n };\r\n\r\n setShowSpinner(isShowSpinner) {\r\n this.setState({ showSpinner: isShowSpinner });\r\n };\r\n \r\n openModal() {\r\n this.setState({addToCartResultModalIsOpen: true});\r\n this.setShowSpinner(false);\r\n }\r\n closeModal() {\r\n this.setState({addToCartResultModalIsOpen: false});\r\n this.setAddToCartClicked(false);\r\n }\r\n \r\n render = () => {\r\n var buttonLabel = (this.props.instanceIntent === \"updateOrder\") ? \"update\" : \"add to cart\";\r\n return (
\r\n
Confirm
\r\n {/*\r\n \r\n */}\r\n {this.state.showAuth &&\r\n
\r\n \r\n See the benefits of Authenticating your putter\r\n
\r\n }\r\n
\r\n
Insurance Value
\r\n
($3000 max)
\r\n { \r\n v = v.replace(/\\D/g, \"\");\r\n if (parseInt(v, 10) > 3000){ v = \"3000\"; }\r\n this.props.onInsuranceChange(v);\r\n }}\r\n title=\"Numeric Values Only\"\r\n />\r\n
\r\n
\r\n {this.props.accessories.buyAPutter.selected &&\r\n
\r\n
\r\n NEW PUTTER: \r\n ${this.props.accessories.buyAPutter.selected.price}\r\n
\r\n
\r\n CUSTOMIZATIONS: \r\n ${this.props.price.total - this.props.accessories.buyAPutter.selected.price}\r\n
\r\n
\r\n }\r\n
\r\n TOTAL: \r\n ${this.props.price.total}\r\n
\r\n
\r\n
\r\n\t\t{!this.props.specs.validation.parts.reshaftLength.valid &&\r\n\t\t\t
You must select Desired Length when Restoration is selected. Please return to Specs and change your Length selection.
\r\n\t\t}\r\n\t\t{(this.props.hasPaintfillErrors) &&\r\n\t\t\t
Please select paintfill colors for all highlighted locations.
\r\n\t\t}\r\n {this.props.valid && !this.state.addToCartClicked\r\n ? \r\n : \r\n }\r\n
{'Loading'}
\r\n
\r\n \r\n
X
\r\n {(this.state.addToCartResult && this.state.addToCartResult.Success)\r\n ? (this.props.instanceIntent === \"updateOrder\" && \r\n
\r\n
Putter Saved
\r\n
\r\n Customize Another Putter\r\n {this.props.instanceIntent !== \"updateOrder\" && \r\n \r\n }\r\n
\r\n
\r\n )|| \r\n \r\n :
\r\n {!this.state.addToSavedResult &&\r\n
\r\n\t\t\t\t\t
There was a problem adding to cart.
\r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.state.addToCartResult == null || this.state.addToCartResult.Errors == null ? '' : this.state.addToCartResult.Errors.map((item, key) =>\r\n\t\t\t\t\t\t

{item.Message}

\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\t\t\t\t\t\t\r\n }\r\n {this.state.addToSavedResult && this.state.addToSavedResult.Success &&\r\n\t\t\t\t\t
Add to Saved was successful.
\r\n }\r\n {this.state.addToSavedResult && !this.state.addToSavedResult.Success &&\r\n
There was a problem saving your instance.
\r\n }\r\n {(!this.state.addToSavedResult || !this.state.addToSavedResult.Success) &&\r\n
\r\n \r\n {(window._SC_IS_LOGGED_IN &&\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\nConfirmForm.defaultProps = {\r\n onFieldChange: identity,\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var tempProps = {\r\n instanceIntent : state.customize.instanceIntent,\r\n ...getConfirmVM(state.customize) \r\n }\r\n tempProps.hasPaintfillErrors = !tempProps.top.validation.parts.paintFillLocations.valid || !tempProps.face.validation.parts.paintFillLocations.valid || !tempProps.back.validation.parts.paintFillLocations.valid;\r\n \r\n if(!tempProps.hasPaintfillErrors)\r\n {\r\n\t if(tempProps.face.initials.length > 0 || tempProps.back.initials.length > 0) {\r\n\t\t var allInitials = tempProps.face.initials.concat(tempProps.back.initials);\r\n\t\t for(var y = 0; y < allInitials.length; y++)\r\n\t\t {\r\n\t\t\t var i = allInitials[y];\r\n\t\t\t if(i.selected != undefined && i.selected.enabled) {\r\n\t\t\t\t if(!i.paint.valid) {\r\n\t\t\t\t\ttempProps.hasPaintfillErrors = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t }\r\n\t\t\t }\r\n\t\t }\r\n\t }\r\n }\r\n \r\n if(!tempProps.hasPaintfillErrors)\r\n {\r\n\t if(tempProps.face.stampsLocations.length > 0 || tempProps.back.stampsLocations.length > 0) {\r\n\t\t var allStamps = tempProps.face.stampsLocations.concat(tempProps.back.stampsLocations);\r\n\t\t for(var x = 0; x < allStamps.length; x++)\r\n\t\t {\r\n\t\t\t var stamp = allStamps[x];\r\n\t\t\t if(stamp.selected != undefined && stamp.selected.enabled) {\r\n\t\t\t\t if(!stamp.paint.valid) {\r\n\t\t\t\t\ttempProps.hasPaintfillErrors = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t }\r\n\t\t\t }\r\n\t\t }\r\n\t }\r\n }\r\n \r\n if(!tempProps.hasPaintfillErrors)\r\n {\r\n\t if(tempProps.top.flangeLines.selected && tempProps.top.flangeLines.selected.numberOfLines > 0) {\r\n\t\t if(tempProps.top.flangeLines.paints != undefined && tempProps.top.flangeLines.paints.length > 0) {\r\n\t\t\t if(!tempProps.top.flangeLines.paints[0].valid ) {\r\n\t\t\t\ttempProps.hasPaintfillErrors = true;\r\n\t\t\t }\r\n\t\t }\r\n\t }\r\n }\r\n \r\n if(!tempProps.hasPaintfillErrors)\r\n {\r\n\t \r\n\t if((tempProps.top.topLines.selected && tempProps.top.topLines.selected.numberOfLines > 0) ||\r\n\t (tempProps.top.sightDots.selected && tempProps.top.sightDots.selected.numberOfLines > 0)) {\r\n\t\t var topDotLines = tempProps.top.topLines.selected ? tempProps.top.topLines : tempProps.top.sightDots;\r\n\t\t if(topDotLines.paints != undefined && topDotLines.paints.length > 0) {\r\n\t\t\t if(!topDotLines.paints[0].valid) {\r\n\t\t\t\ttempProps.hasPaintfillErrors = true;\r\n\t\t\t }\r\n\t\t }\r\n\t }\r\n }\r\n \r\n return tempProps;\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n addToCart : actions.addToCart,\r\n addToSaved : actions.addToSaved,\r\n onFieldChange: actions.selectField,\r\n onInsuranceChange: partial(actions.setFieldValue, 'insuranceValue'),\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConfirmForm);\r\n\r\n","import React, { PropTypes } from 'react'\r\n\r\nimport PaintSwatch from 'components/PaintSwatch'\r\nimport classNames from 'classnames'\r\n\r\nconst PaintFillSummary = ({ paints, header, labelOverride }) => (\r\n
\r\n {header && \r\n
{header}
\r\n }\r\n
\r\n {\r\n paints.map((paint) => (\r\n
\r\n
\r\n \r\n {labelOverride &&\r\n paint.loc.label.replace('Line', labelOverride)\r\n }\r\n {!labelOverride &&\r\n paint.loc.label\r\n }\r\n \r\n \r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n)\r\n\r\nPaintFillSummary.propTypes = {\r\n paints: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n labelOverride: PropTypes.string,\r\n}\r\n\r\nexport default PaintFillSummary","import React, { PropTypes } from 'react'\r\n\r\nimport PaintSwatch from 'components/PaintSwatch'\r\nimport Price from 'components/Price'\r\nimport classNames from 'classnames'\r\n\r\nconst InitialsSummary = ({ initials }) => (\r\n
\r\n
\r\n Initials\r\n (t + \r\n ((i.selected && i.selected.characters && i.loc.price) || 0)\r\n ), 0)} />\r\n
\r\n
\r\n {\r\n initials.map(i => (\r\n
\r\n
Initials: {i.selected.characters}
\r\n {i.selected.personalizationStyle &&\r\n
{i.selected.personalizationStyle.label}\r\n {i.selected.separateWithPeriods &&\r\n \r\n , Separate with periods\r\n \r\n }\r\n
\r\n }\r\n
\r\n
\r\n {i.paint.loc.label}\r\n \r\n
\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n)\r\n\r\nInitialsSummary.propTypes = {\r\n initials: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n}\r\n\r\nexport default InitialsSummary","import React, { PropTypes } from 'react'\r\n\r\nimport Price from 'components/Price'\r\nimport PaintSwatch from 'components/PaintSwatch'\r\nimport StampSwatch from 'components/StampSwatch'\r\nimport classNames from 'classnames'\r\n\r\nconst StampSummary = ({ stamps }) => (\r\n
\r\n
\r\n Stamps\r\n (t + (!!s.selected && s.selected.stamp.price) || 0), 0)} />\r\n
\r\n
\r\n
\r\n {\r\n stamps.map(stamp => (\r\n
\r\n
\r\n
\r\n {stamp.loc.label}\r\n {stamp.selected &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n {stamp.paint.loc.label}\r\n \r\n
\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n)\r\n\r\nStampSummary.propTypes = {\r\n stamps: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n}\r\n\r\nexport default StampSummary","import React, { Component } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport classNames from 'classnames'\r\n\r\nimport { getConfirmVM } from 'state/viewModels'\r\nimport Price from 'components/Price'\r\nimport PaintFillSummary from 'components/PaintFillSummary'\r\nimport InitialsSummary from 'components/InitialsSummary'\r\nimport StampSummary from 'components/StampSummary'\r\nimport AccessorySelection from 'components/AccessorySelection'\r\nimport StampSwatch from 'components/StampSwatch'\r\nimport \"./ConfirmView.css\"\r\n\r\nfunction getPrice(...args){\r\n return args.reduce((t, obj) => t + ((obj && obj.price) || 0), 0);\r\n}\r\n\r\nexport class ConfirmView extends Component {\r\n\r\n render = () => (\r\n
\r\n
\r\n {this.props.putterLabel}\r\n {this.props.accessories.buyAPutter.selected &&\r\n
\r\n NEW PUTTER: \r\n ${this.props.accessories.buyAPutter.selected.price}\r\n
\r\n }\r\n
\r\n
\r\n {\r\n this.props.views.map((v) => {\r\n return (v.src !== '')\r\n ? {v.name}\r\n : ''\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
Finish & Paintfill
\r\n {this.props.finish.selected &&\r\n
\r\n
\r\n {this.props.finish.selected.label}\r\n {!!this.props.finish.finish.selected &&\r\n
\r\n {this.props.finish.finish.selected.label} Finish\r\n
\r\n }\r\n \r\n
\r\n
\r\n }\r\n
Face
\r\n {this.props.face.paintFillLocations.length > 0 && \r\n \r\n }\r\n {this.props.face.initials.length > 0 && \r\n \r\n }\r\n {this.props.face.stampsLocations.length > 0 &&\r\n \r\n }\r\n
\r\n
\r\n
Back
\r\n {this.props.back.paintFillLocations.length > 0 && \r\n \r\n }\r\n {this.props.back.initials.length > 0 && \r\n \r\n }\r\n {this.props.back.stampsLocations.length > 0 && \r\n \r\n }\r\n
\r\n
\r\n
Top
\r\n {this.props.top.paintFillLocations.length > 0 && \r\n \r\n }\r\n {this.props.top.sightDots.selected && \r\n
\r\n
\r\n Top Lines\r\n \r\n
\r\n
\r\n {this.props.top.sightDots.selected.label}\r\n {this.props.top.sightDots.paints.length > 0 && \r\n \r\n }\r\n
\r\n
\r\n }\r\n {this.props.top.topLines.selected && \r\n
\r\n
\r\n Top Lines \r\n \r\n
\r\n
\r\n {this.props.top.topLines.selected.label}\r\n {this.props.top.topLines.paints.length > 0 && \r\n \r\n }\r\n
\r\n
\r\n }\r\n {this.props.top.flangeLines.selected && \r\n
\r\n
\r\n Flange Lines\r\n 0) ||\r\n ((this.props.top.sightDots.selected && this.props.top.sightDots.selected.price > 0) )) ? \r\n this.props.top.flangeLines.selected.discountPrice : \r\n this.props.top.flangeLines.selected.price } />\r\n
\r\n
\r\n {this.props.top.flangeLines.selected.label}\r\n {this.props.top.flangeLines.paints.length > 0 && \r\n \r\n }\r\n
\r\n
\r\n }\r\n
Specs
\r\n {this.props.specs.hasWeights && \r\n
\r\n
\r\n Weight\r\n \r\n
\r\n {this.props.specs.weight.selected && \r\n
\r\n
\r\n {this.props.specs.weight.selected.label}\r\n \r\n
\r\n
\r\n }\r\n {!this.props.specs.weight.selected && \r\n
\r\n
\r\n Keep As Is\r\n
\r\n
\r\n }\r\n {this.props.specs.weight.selectedEngraving &&\r\n
\r\n Weight Engraving\r\n \r\n {this.props.specs.weight.frontEngraving.selected &&\r\n
\r\n
\r\n {this.props.specs.weight.frontEngraving.loc.label}\r\n \r\n {this.props.specs.weight.frontPaint && this.props.specs.weight.frontPaint.selected &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n }\r\n {this.props.specs.weight.rearEngraving.selected &&\r\n
\r\n
\r\n {this.props.specs.weight.rearEngraving.loc.label}\r\n \r\n {this.props.specs.weight.rearPaint && this.props.specs.weight.rearPaint.selected &&\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 {this.props.specs.hasTopWeights && \r\n
\r\n
\r\n Top Weight\r\n \r\n
\r\n {this.props.specs.topWeight.selected && \r\n
\r\n
\r\n {this.props.specs.topWeight.selected.label}\r\n \r\n
\r\n
\r\n }\r\n {!this.props.specs.topWeight.selected && \r\n
\r\n
\r\n Keep As Is\r\n
\r\n
\r\n }\r\n {this.props.specs.topWeight.selectedEngraving &&\r\n
\r\n Weight Engraving\r\n \r\n {this.props.specs.topWeight.frontEngraving.selected &&\r\n
\r\n
\r\n {this.props.specs.topWeight.frontEngraving.loc.label}\r\n \r\n {this.props.specs.topWeight.frontPaint.selected &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n }\r\n {this.props.specs.topWeight.rearEngraving.selected &&\r\n
\r\n
\r\n {this.props.specs.topWeight.rearEngraving.loc.label}\r\n \r\n {this.props.specs.topWeight.rearPaint.selected &&\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 {this.props.specs.loft.selected && \r\n
Loft
\r\n }\r\n {this.props.specs.loft.selected && \r\n
\r\n {this.props.specs.loft.selected.label}\r\n
\r\n }\r\n
\r\n
\r\n {this.props.specs.lie.selected && \r\n
Lie
\r\n }\r\n {this.props.specs.lie.selected && \r\n
\r\n {this.props.specs.lie.selected.label}\r\n
\r\n }\r\n
\r\n
\r\n {this.props.specs.length.selected && \r\n
Length
\r\n }\r\n {this.props.specs.length.selected && \r\n
\r\n {this.props.specs.length.selected.label}\r\n {this.props.specs.length.selected.userSelection && this.props.specs.desiredLength.selected &&\r\n \r\n {this.props.specs.desiredLength.selected.label}\r\n \r\n }\r\n
\r\n }\r\n
\r\n
\r\n {this.props.specs.reshaft.selected && \r\n
\r\n Shaft\r\n \r\n
\r\n }\r\n {this.props.specs.reshaft.selected && \r\n
\r\n {this.props.specs.reshaft.selected.label}\r\n
\r\n }\r\n
\r\n
\r\n
\r\n {(this.props.accessories.grip.selected || this.props.accessories.shaftBand.selected || this.props.accessories.headCover.selected) &&\r\n
\r\n
Accessories
\r\n {this.props.accessories.grip.selected && \r\n
\r\n \r\n {this.props.accessories.gripWrap.selected &&\r\n
\r\n ({this.props.accessories.gripWrap.selected.label})\r\n
\r\n }\r\n
\r\n }\r\n {this.props.accessories.shaftBand.selected && \r\n
\r\n \r\n
\r\n }\r\n {this.props.accessories.headCover.selected && \r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n {this.props.auth.selected &&\r\n
\r\n
Authentication
\r\n
\r\n {this.props.auth.selected.label} \r\n \r\n
\r\n
\r\n }\r\n
\r\n
Pricing Total: ${this.props.price.total}
\r\n
\r\n
\r\n )\r\n}\r\n\r\nConfirmView.defaultProps = {\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n return { ...getConfirmVM(state.customize),\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConfirmView);","import React, { Component } from 'react' \r\nimport { connect } from 'react-redux'\r\nimport { Route, Switch, Redirect } from 'react-router-dom'\r\nimport Modal from 'react-modal'\r\n\r\nimport { getImageUrl, getSelected, getMaxPaintFillColors, getAllPaintColors } from 'state/customize/selectors'\r\nimport { getPaintSummaryVM, getReplacementPaintfillVM, getPriceVM } from 'state/viewModels'\r\nimport * as actions from 'ducks/modules/customize'\r\n\r\nimport AppNav from './AppNav'\r\nimport CustomizeNav from 'components/CustomizeNav'\r\nimport InstanceView from 'components/InstanceView'\r\nimport PaintColorSwapModal from 'components/PaintColorSwapModal'\r\nimport { Button } from 'components/Buttons'\r\n\r\nimport FinishForm from './forms/FinishForm'\r\nimport PackageForm from './forms/PackageForm'\r\nimport FaceForm from './forms/FaceForm'\r\nimport BackForm from './forms/BackForm'\r\nimport TopForm from './forms/TopForm'\r\nimport SpecsForm from './forms/SpecsForm'\r\nimport AccessoriesForm from './forms/AccessoriesForm'\r\nimport AccessoriesView from 'components/AccessoriesView'\r\nimport AuthenticationForm from './forms/AuthenticationForm'\r\nimport AuthenticationView from 'components/AuthenticationView'\r\nimport ConfirmForm from './forms/ConfirmForm' \r\nimport ConfirmView from 'components/ConfirmView' \r\n\r\nexport class Customize extends Component {\r\n \r\n constructor() {\r\n super()\r\n this.state = { \r\n ready: null,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n // this.props.onSelectAccessoryType( { field: \"buyAPutter\", id: id})\r\n //scroll to top between tabs -> https://reacttraining.com/react-router/web/guides/scroll-restoration\r\n if (this.props.location !== prevProps.location) {\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n /* 18759: Invalid options rollback\r\n this.setState({ready: false, showInvalidOptionsRemoved: false, });\r\n */\r\n this.setState({ready: false});\r\n this.props.loadPutter(this.props.putterId, this.props.buyAPutter);\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n this.setState({\r\n ready: !nextProps.loading,\r\n /* 18759: Invalid options rollback\r\n showInvalidOptionsRemovedWarning: nextProps.showInvalidOptionsRemovedWarning,\r\n */\r\n });\r\n }\r\n\r\n render() {\r\n if(!this.state.ready) return
Loading...
;\r\n \r\n return (\r\n
\r\n
\r\n
{this.props.putterLabel}
\r\n \r\n
\r\n \r\n
\r\n
{this.props.putterLabel}
\r\n
\r\n
0 ? 'auth' : '')}>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n }/>\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n }/>\r\n \r\n
\r\n \r\n
\r\n }/>\r\n \r\n
\r\n \r\n
\r\n }/>\r\n \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
this.props.applyFinish(false)}>X
\r\n
Invalid Colors Warning
\r\n
Some current colors are not valid for the chosen \"Finish\". If you choose to \"CONTINUE\" areas with invalid colors will be de-selected.
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {/* 18759: Invalid options rollback\r\n \r\n
\r\n
this.props.toggleShowInvalidOptionsRemovedWarning()}>X
\r\n
Invalid Options Removed Warning
\r\n
Some selected options are no longer available and have been removed.
\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\nCustomize.defaultProps = {\r\n putterLabel:'',\r\n autoAddToSaved:false,\r\n buyAPutter:false, // Auto select the buy a putter accessory when loading\r\n views: []\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var putterValid = state.customize.instance.label === \"\" ||\r\n getSelected(state.customize, 'model') === state.customize.putter.id.toString();\r\n\r\n return { \r\n putterValid : putterValid,\r\n putterId: ownProps.match.params.id ? ownProps.match.params.id : getSelected(state.customize, 'model'),\r\n maxPaintfillColors: putterValid ? getMaxPaintFillColors(state.customize) : 0,\r\n allPaintColors: putterValid ? getAllPaintColors(state.customize) : [],\r\n putterLabel: putterValid ? getSelected(state.customize , \"label\") : \"\",\r\n price: putterValid ? getPriceVM(state.customize) : 0,\r\n paintSummary: putterValid ? getPaintSummaryVM(state.customize) : [],\r\n replacementPaintFill: getReplacementPaintfillVM(state.customize),\r\n selectedView : state.customize.selectedView,\r\n paintSwapValid : state.customize.paintSwapValid,\r\n paintsValid : state.customize.paintsValid,\r\n isViewZoomIn : state.customize.isViewZoomIn,\r\n selectedAccessoryType : state.customize.selectedAccessoryType,\r\n loading : state.customize.loading,\r\n //18759: Invalid options rollback\r\n //showInvalidOptionsRemovedWarning : state.customize.showInvalidOptionsRemovedWarning ? state.customize.showInvalidOptionsRemovedWarning : false,\r\n views: [\r\n { name: 'FS', src: getImageUrl(state.customize, 'FS') },\r\n { name: 'BC', src: getImageUrl(state.customize, 'BC') },\r\n { name: 'PP', src: getImageUrl(state.customize, 'PP') }\r\n ]\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n loadPutter: actions.loadPutter,\r\n cancelReplacementPaintFill: actions.cancelReplacementPaintFill,\r\n replacePaint: actions.replacePaint,\r\n applyFinish: actions.applyFinish,\r\n onSelectView: actions.selectView,\r\n toggleViewZoom: actions.toggleViewZoom,\r\n onSelectAccessoryType: actions.selectAccessoryType,\r\n //18759: Invalid options rollback\r\n //toggleShowInvalidOptionsRemovedWarning: actions.toggleShowInvalidOptionsRemovedWarning,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Customize); ","import React, { Component } from 'react' \r\nimport { connect } from 'react-redux'\r\nimport { Redirect, Link } from 'react-router-dom' \r\nimport Modal from 'react-modal';\r\n\r\nimport config from 'util/config.js'\r\nimport { Button, ButtonLink } from 'components/Buttons'\r\nimport { getSelected } from 'state/customize/selectors'\r\nimport * as actions from 'ducks/modules/customize'\r\n\r\n\r\nexport class DeepLink extends Component {\r\n \r\n constructor() {\r\n super()\r\n this.state = { \r\n ready: null,\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.setState({ready: false});\r\n this.props.startLoad();\r\n if(!!this.props.instanceId) {\r\n this.props.loadInspirationInstance(this.props.instanceId);\r\n } else if(!!this.props.savedInstanceId) {\r\n this.props.loadSavedInstance(this.props.savedInstanceId);\r\n } else if(!!this.props.orderItemId) {\r\n this.props.loadOrderInstance(this.props.orderItemId);\r\n } \r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n this.setState({\r\n ready: !nextProps.loading,\r\n });\r\n }\r\n\r\n render() {\r\n if (!this.state.ready)\r\n return
Loading...
\r\n else if (!this.props.instance)\r\n return \r\n X\r\n
\r\n
Not Found
\r\n
\r\n This putter was not found.\r\n {(this.props.instanceIntent === \"updateOrder\") ? \"If you recently placed this order, \" +\r\n \"please allow 15 minutes for your order to be processed in our system before you edit it. \" +\r\n \"If after 15 minutes you still cannot view or edit this putter, call Customer Service.\" : \"\"}\r\n
\r\n
\r\n Start a new design\r\n
\r\n
\r\n
\r\n else if (!this.props.authorized)\r\n return \r\n
\r\n X\r\n {(!window._SC_IS_LOGGED_IN && \r\n
\r\n
Not Logged In
\r\n
You must be logged in to edit a putter.
\r\n
\r\n )||(\r\n
\r\n
Not Authorized
\r\n
We’re sorry. You cannot edit this putter. \r\n {(this.props.instanceIntent === \"updateOrder\") ? \"Either t\" : \"T\"}his putter is not associated with your account \r\n {(this.props.instanceIntent === \"updateOrder\") ? \" or your putter has already been received by the Scotty Cameron Custom Shop and is currently underway.\" :\".\"}\r\n
\r\n
\r\n )} \r\n
\r\n \r\n \r\n Start a new design\r\n
\r\n
\r\n
\r\n else \r\n return \r\n }\r\n}\r\n/*\r\n\r\n*/\r\n\r\nDeepLink.defaultProps = {\r\n};\r\n\r\nconst mapStateToProps = (state, ownProps) => {\r\n var instanceIntent = state.customize.instanceIntent;\r\n var instance = state.customize.instance;\r\n var authorized = instance && (!instanceIntent ||\r\n (instanceIntent === \"updateSaved\" && instance.userCanUpdate) ||\r\n (instanceIntent === \"updateOrder\" && instance.userCanUpdateOrder)\r\n )\r\n\r\n return { \r\n loading : state.customize.loading,\r\n instanceIntent,\r\n instance,\r\n authorized,\r\n putter : state.customize.putter,\r\n putterId: (state.customize.instance) ? getSelected(state.customize, 'model') : 0,\r\n instanceId: ownProps.match.params.instanceId,\r\n savedInstanceId: ownProps.match.params.savedInstanceId,\r\n orderItemId: ownProps.match.params.orderItemId,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n startLoad: actions.startLoad,\r\n loadPutter: actions.loadPutter,\r\n setInstanceIntent: actions.setInstanceIntent,\r\n loadInspirationInstance: actions.loadInspirationInstance,\r\n loadSavedInstance: actions.loadSavedInstance,\r\n loadOrderInstance: actions.loadOrderInstance,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(DeepLink); ","import React, { Component } from 'react'\r\nimport { BrowserRouter as Router, Route, Redirect, Switch} from 'react-router-dom'\r\nimport { Provider } from 'react-redux'\r\n\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport 'App.css'\r\n\r\nimport createStore from 'ducks/create'\r\nimport ErrorHandler from 'ErrorHandler'\r\nimport FindPutter from 'containers/FindPutter'\r\nimport Customize from 'containers/Customize'\r\nimport DeepLink from 'containers/DeepLink'\r\nimport { createConfirmNavigation } from 'containers/NavWarning'\r\nimport {AnalyticsPageTracker} from './util/analytics';\r\n\r\nconst store = createStore();\r\n\r\nconst TrackedCustomize = AnalyticsPageTracker(Customize)\r\nconst TrackedDeepLink = AnalyticsPageTracker(DeepLink)\r\n\r\nexport class App extends Component {\r\n constructor() {\r\n super()\r\n this.confirmNavigation = createConfirmNavigation(store).bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n } />\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default ErrorHandler(App);","import { createStore as _createStore, applyMiddleware, combineReducers } from 'redux'\r\nimport thunk from 'redux-thunk'\r\nimport promiseMiddleware from 'redux-promise'\r\nimport createLogger from 'redux-logger'\r\nimport config from 'util/config.js'\r\n\r\nimport { readState, storeState } from './persistance'\r\nimport app from './modules/app'\r\nimport findputter from './modules/findputter'\r\nimport customize from './modules/customize'\r\nimport { EventAnalyticsMiddleware } from '../util/analytics';\r\n\r\nexport default function createStore() { \r\n\r\n const reducer = combineReducers({\r\n app,\r\n findputter,\r\n customize,\r\n });\r\n\r\n let middleware = [promiseMiddleware, thunk, EventAnalyticsMiddleware];\r\n\r\n if (!config.production){\r\n middleware = middleware.concat(createLogger()); //must be last in middleware chain\r\n }\r\n\r\n\r\n const persistedState = readState();\r\n const store = _createStore(\r\n reducer,\r\n persistedState,\r\n applyMiddleware(...middleware)\r\n )\r\n\r\n store.subscribe(() => storeState(store.getState()))\r\n\r\n return store;\r\n}\r\n","import 'react-app-polyfill/ie11';\r\nimport React from 'react'\r\nimport ReactDOM from 'react-dom'\r\n\r\nimport App from 'App'\r\nimport 'index.css'\r\n\r\nimport 'polyfill.js'\r\n\r\nReactDOM.render( \r\n ,\r\n document.getElementById('root')\r\n);\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAABFCAYAAAAcjSspAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDVFQTY5QzM1RUVBMTFFN0I3MTc5QzA2NkJENDQxRTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDVFQTY5QzQ1RUVBMTFFN0I3MTc5QzA2NkJENDQxRTAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENUVBNjlDMTVFRUExMUU3QjcxNzlDMDY2QkQ0NDFFMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENUVBNjlDMjVFRUExMUU3QjcxNzlDMDY2QkQ0NDFFMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhitJtIAAAZVSURBVHja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\""],"sourceRoot":""}