{"version":3,"sources":["../../client-lib/api/errors.js","../../client-lib/api/payment.js","../../client-lib/data/index.js","../../client-lib/api/authToken.js","../../client-lib/api/foods.js","../../client-lib/api/fetchAsync.js","../../client-lib/styles/index.js","../../client-lib/utils/index.js","../../client-lib/api/user.js","../../client-lib/config/apollo.js","assets/bod-logo-circle-sm.png","assets/bod-title.png","../../client-lib/config/constants.js","../../client-lib/contexts.js","../../client-lib/api/profile.js","../../client-lib/styles/colors.js","../../client-lib/validations.js","../../client-lib/data/defaults.js","../../client-lib/api/meal-plan.js","../../client-lib/data/us_states.js","../../client-lib/api/recipes.js","styles/mui-theme.js","containers/Notification/NotificationContext.js","lib/notifications.js","lib/device.js","containers/Notification/NotificationMonitor.js","containers/NoMatch/NoMatch.js","components/Form/DisplayField.js","components/Form/FormField.js","components/Button/Button.js","components/Button/ButtonLink.js","components/Button/ButtonBaseLink.js","components/Button/FAB.js","components/Button/SaveButton.js","components/Button/ButtonSimple.js","components/Button/InlineButton.js","components/Button/index.js","components/Global/SidebarMenu.js","components/Global/Header.js","components/Global/Footer.js","components/Global/Spinner.js","components/Modal/Alert.js","components/Modal/Modal.js","components/Global/FullPageSpinner.js","styles/print.js","styles/global.js","components/Global/HelpContent.js","components/Global/HelpButton.js","styles/forms.js","components/Form/SearchField.js","components/Form/RadioGroup.js","components/Form/Switch.js","components/Form/TimeZoneField.js","components/Form/FormGroup.js","components/Form/ActionBar.js","components/PageTitle/PageTitle.js","components/User/SignIn.js","containers/User/SignInContainer.js","components/Error/ErrorBoundary.js","components/Error/HideErrorBoundary.js","containers/User/SignOutContainer.js","lib/timezone.js","components/User/SignUp.js","containers/User/SignUpContainer.js","components/User/SignInHelp.js","components/User/RequestPasswordReset.js","components/User/InactiveAccount.js","components/User/AccessDenied.js","containers/User/SignInHelpContainer.js","components/User/ResetPassword.js","containers/User/ResetPasswordContainer.js","components/User/ConfirmAccount.js","containers/User/ConfirmAccountContainer.js","containers/User/DashboardContainer.js","containers/User/InactiveContainer.js","components/Onboarding/Onboarding.jsx","containers/User/OnboardingContainer.js","components/Page/Help.js","containers/Generic/HelpContainer.js","components/Ingredient/IngredientSearch.js","components/Profile/ProfileWizard.js","components/Profile/ProfileResults.js","components/Profile/ProfileMeals.js","lib/inAppPurchasing.js","components/Payment/InAppPayment.jsx","components/Payment/PaymentEdit.js","components/Profile/ProfileNotComplete.js","containers/Profile/ProfileEditContainer.js","containers/Profile/ProfileResultsContainer.js","components/Payment/PaymentDetail.js","containers/Payment/PaymentEditContainer.js","containers/Payment/PaymentDetailContainer.js","containers/Profile/ProfileMealsContainer.js","components/Table/DataTable.js","components/Table/IngredientTable.js","components/Chip/TypeChip.js","components/Recipe/RecipeList.js","components/Recipe/RecipeDetail.js","components/Recipe/IngredientEditList.js","components/Recipe/RecipeForm.js","components/Recipe/RecipeEdit.js","components/Recipe/RecipeSearch.js","components/Menu/ItemMenu.js","components/Meals/MealPanel.js","components/Meals/WeekToggle.js","components/Meals/MealPlanByDay.js","components/Meals/MealPlanSummary.js","components/Meals/MealPrep.js","components/Meals/GroceryList.js","containers/Meals/MealPlanContainer.js","containers/Meals/MealPrepContainer.js","containers/Recipe/RecipeListContainer.js","containers/Recipe/RecipeDetailContainer.js","containers/Recipe/RecipeEditContainer.js","containers/Meals/GroceryListContainer.js","components/Page/TermsOfUse.js","containers/Generic/PageContainer.js","components/Tracking/Analytics.js","containers/AppRouter.js","App.js","serviceWorker.js","index.js"],"names":["Object","defineProperty","exports","value","transform","obj","_get","__webpack_require__","__esModule","default","errors","transformed","message","problems","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","next","done","p","path","join","m","explanation","err","return","fields","f","VALIDATE_RECEIPT","CANCEL_ACCOUNT","SAVE_PAYMENT_DETAILS","GET_PAYMENT_DETAILS","START_CHECKOUT","_graphqlTag","_templateObject5","data","_taggedTemplateLiteral","_templateObject4","_templateObject3","_templateObject2","_templateObject","strings","raw","slice","freeze","defineProperties","_exportNames","DAYS_OF_WEEK","WEEK_DAYS","MONTH_NAMES","UNITS","defaults","enumerable","get","_defaults","newObj","key","prototype","hasOwnProperty","call","desc","getOwnPropertyDescriptor","set","_interopRequireWildcard","keys","forEach","_us_states","unit","label","_regeneratorRuntime","clearAuthToken","_clearAuthToken","apply","this","arguments","setAuthToken","_x","_setAuthToken","getAuthToken","_getAuthToken","clearAdminAuthToken","_clearAdminAuthToken","setAdminAuthToken","_x2","_setAdminAuthToken","getAdminAuthToken","_getAdminAuthToken","setImpersonationActive","_x3","_setImpersonationActive","isImpersonationActive","_isImpersonationActive","setImpersonationToken","_x4","_setImpersonationToken","getImpersonationToken","_getImpersonationToken","clearCsrfToken","_clearCsrfToken","setCsrfToken","_x5","_setCsrfToken","getCsrfToken","_getCsrfToken","clearSessionKey","_clearSessionKey","setSessionKey","_x6","_setSessionKey","getSessionKey","_getSessionKey","_localforage","_constants","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","Promise","then","_asyncToGenerator","fn","self","args","mark","_callee","wrap","_context","prev","abrupt","setItem","AUTH_TOKEN","stop","_callee2","token","_context2","_callee3","_context3","getItem","_callee4","_context4","ADMIN_AUTH_TOKEN","_callee5","_context5","_callee6","_context6","_callee7","isActive","_context7","console","log","IMPERSONATION_ACTIVE","Boolean","_callee8","_context8","t0","sent","_callee9","result","_context9","IMPERSONATION_TOKEN","_callee10","_context10","_callee11","_context11","CSRF_TOKEN","_callee12","_context12","_callee13","_context13","_callee14","_context14","SESSION_KEY","_callee15","_context15","_callee16","_context16","DELETE_FOOD","UPDATE_FOOD","CREATE_FOOD","GET_FOOD","GET_FOODS","SEARCH_FOOD_NAMES","_templateObject6","_default","GET_LIST","GET_ONE","CREATE","UPDATE","DELETE","defaultHeaders","saveAuthHeaders","fetchAsync","post","_post","remove","_x7","_remove","STATUS_CHECK_URL","_authToken","_objectSpread","target","i","length","source","ownKeys","getOwnPropertySymbols","concat","filter","sym","_defineProperty","configurable","writable","API_URL","checkForErrors","_checkForErrors","response","json","ok","statusText","status","_defaultHeaders","headersIn","withCsrfCookie","auth","csrf","headers","_args2","t1","X-CSRF-Token","X-Requested-With","X-BalanceOnDemand-App","Content-Type","_saveAuthHeaders","impersonationActive","impersonationToken","uid","expiry","client","access-token","token-type","window","dispatchEvent","Event","_fetchAsync","url","params","_len","rest","_key","method","headersOut","_args4","Array","fetch","credentials","body","JSON","stringify","_len2","_key2","_args5","_len3","_key3","_response","_args6","toString","success","_len4","_key4","_args7","_colors","getCookie","name","document","cookie","v","match","sortByName","sortByKey","asFloat","fmtPct","asPct","trimAll","formatDate","studentsToLinks","merge","_data","R","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","k","l","r","defaultTo","objects","mergeDeepWithKey","students","map","_ref","id","fullName","firstName","lastName","studentId","isLinked","_formatTheDate","date","withYear","shortMonth","day","getDate","monthIndex","getMonth","year","getFullYear","month","substr","d","Date","object","updated","trim","el","scale","Math","round","toFixed","num","den","parseFloat","floated","isNaN","replace","a","b","al","toLowerCase","bl","comparison","updateCurrentUser","_updateCurrentUser","stopImpersonation","startImpersonation","resolvers","SAVE_DEVICE","UPDATE_USER","GET_CURRENT_USER","USER_FRAGMENT","GET_SYSTEM_CONFIG","GET_TIME_ZONES","GET_FLASH","CONFIRM_ACCOUNT","RESET_PASSWORD","RESET_PASSWORD_REQUEST","LOGOUT","SIGNUP","LOGIN","defaultState","_profile","_templateObject13","_templateObject12","_templateObject11","_templateObject10","_templateObject9","_templateObject8","_templateObject7","currentUser","__typename","email","loggedIn","PROFILE_FRAGMENT","Mutation","login","_","_ref2","username","password","cache","logout","_logout","_ref3","_ref4","_ref5","_ref6","_ref7","roles","schools","_ref8","record","payload","BASE_URL","userId","open","_ref9","location","reload","getClient","adminClient","_merge","_interopRequireDefault","_apolloLinkHttp","_apolloLink","_apolloLinkContext","_apolloLinkState","_apolloClientPreset","_user","getUrlParameter","results","RegExp","exec","search","decodeURIComponent","InMemoryCache","stateLink","withClientState","httpLink","HttpLink","uri","getApiUrl","httpAdminAuthMiddleware","setContext","req","impersonation_token","impersonation_id","faker","allHeaders","X-BOD-Login-Token","X-BOD-Login-As","httpUserAuthMiddleware","impersonation","active","updateAuthToken","ApolloLink","operation","forward","getContext","operationName","defaultOptions","watchQuery","fetchPolicy","errorPolicy","query","mutate","hasSubscriptionOperation","definitions","some","kind","consoleLink","httpUserLinkChain","from","httpAdminLinkChain","wsLinkChain","userLink","split","adminLink","ApolloClient","link","httpLinkChain","module","IS_DEV_API","IS_PROD_API","IS_PROD_SITE","IS_DEV","IS_WEB","apiUrl","checkIfProdApi","isWeb","getHost","w","BOD_BASE_URL","NODE_ENV","PUBLIC_URL","REACT_APP_API_URL","REACT_APP_BASE_URL","origin","baseUrlFromEnv","apiUrlFromEnv","BOD_API_URL","apiHost","cordova","CurrentUserConsumer","CurrentUserProvider","CurrentUserContext","createContext","isLoggedIn","state","actions","Provider","Consumer","SAVE_PROFILE","hasMealSettings","hasProfile","isComplete","profile","weightGoal","activityLevel","bmr","dci","mealDays","colors","primary","secondary","yellow","lightGreen","darkGreen","white","danger","warning","text","darkText","darkGray","midGray","lightGray","lightBG","disabled","actionBar","divider","selected","outline","tableHeader","recipeEditSchema","profilePaymentSchema","profileMealsSchema","profileActivitySchema","profileGoalsSchema","profileDemoSchema","resetPasswordSchema","signupSchema","passwordConfirmation","emailConfirmation","Yup","addMethod","string","formats","parseStrict","test","originalValue","isType","anyValue","required","min","street1","city","postal","shape","region","oneOf","ref","gender","Numeric","number","typeError","positive","age","weightLb","heightIn","qty","type","ingredient","ingredients","array","of","buildMuscle","boolean","nullable","mmyy","matches","anySelection","weightChange","when","is","val","notRequired","otherwise","mealPlanStart","mealVariety","mealSplit","cc","cvc","zip","servingSize","GOALS","DEMOGRAPHICS","DEFAULT_PROFILE","BLANK_ADDRESS","street2","timezone","resetAll","bodyFatPct","GET_GROCERY_LIST","ADD_RECIPE_TO_MEAL","REMOVE_MEAL","REPLACE_MEAL_PLAN","REPLACE_MEAL","GET_MEAL_PREP","GET_MEAL_PLAN","MEAL_PLAN_FRAGMENT","getUsStates_LV","usStates_LV","usStates","abbreviation","DELETE_RECIPE","SAVE_RECIPE","UPDATE_RECIPE","CREATE_RECIPE","GET_RECIPE","SEARCH_RECIPES","GET_RECIPES","INGREDIENT_FRAGMENT","theme","createMuiTheme","palette","background","main","content","padding","color","typography","fontFamily","useNextVariants","NotificationContext","React","notification","NotificationProvider","getMessaging","messaging","init","FCMPluginNG","getToken","FCMPlugin","onNotification","wasTapped","alert","initChannel","asyncToGenerator","regenerator_default","catch","requestPermission","forceShow","platform","platformType","platformVersion","Intl","DateTimeFormat","resolvedOptions","timeZone","NotificationMonitor","props","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","process","mid","messageId","notificationId","seen","show","saveToken","currentToken","_args","fcmToken","saveDevice","variables","attributes","objectSpread","setupListeners","onMessage","setBadge","onBackgroundMessage","goto","onTokenRefresh","enabled","setState","hasPermission","messageListener","notificationDisplayedListener","notificationListener","notificationOpenedListener","onTokenRefreshListener","react_default","createElement","children","PureComponent","defaultProps","DisabledNotificationMonitor","ENABLED","objectWithoutProperties","react_apollo_esm","mutation","loading","NotificationMonitor_NotificationMonitor","assign","NoMatch","_PureComponent","inherits","createClass","DisplayField","_getPrototypeOf2","anchorEl","menuOpen","handleClick","event","currentTarget","handleClose","handleEdit","onEdit","handleDelete","onDelete","handleAction","onClick","customMenu","renderMenuAdornment","menu","editMenu","_this$props","editable","InputAdornment_default","position","IconButton_default","Edit_default","menuOptions","icon","Delete_default","renderSearchAdornment","aria-label","aria-haspopup","openSearch","Search_default","classes","aria-owns","MoreVert_default","Menu_default","onClose","option","MenuItem_default","ListItemIcon_default","className","ListItemText_default","inset","_this$props2","searchable","shaded","touched","disableUnderline","half","inputProps","inputField","menuAdornment","endAdornment","fallbackValue","TextField_default","helperText","fullWidth","classNames","textField","InputLabelProps","inputLabel","FormHelperTextProps","InputProps","withStyles","wrapper","paddingRight","spacing","marginTop","marginBottom","backgroundColor","&:before","borderBottomStyle","borderBottomWidth","left","menuItem","&:focus","& $primary, & $icon","common","FormField","defaultValue","select","radio","checkbox","checked","deletable","fieldProps","FormControlLabel_default","control","Checkbox_default","Radio_default","selectProps","SelectProps","SelectDisplayProps","Form_DisplayField","deleteBtn","deleteIcon","inputLabelProps","multiline","shrink","alignItems","width","height","fontSize","button","marginRight","isPrimary","isSecondary","myProps","variant","buttonClasses","Button_default","components_Button_Button","component","Link","ButtonBase_default","FAB","extended","size","hasPopup","iconSize","iconLarge","iconClass","otherButtonClass","topRight","topLeft","Fab_default","classnames","cloneElement","margin","bottom","right","zIndex","boxShadow","top","Save_default","inline","display","border","cursor","index_es","Button","ListIcon","style","loggedOutMenu","react_router_dom","to","ListItem_default","SidebarMenu_ListIcon","ExitToApp_default","drawerFooter","appVersion","styles","_bar","root","flexGrow","appTitle","flex","justifyContent","breakpoints","up","bar","down","headerSpacer","menuButton","marginLeft","rightButton","logo","imgTitle","backgroundImage","title","maxWidth","backgroundSize","backgroundPosition","textIndent","@media screen and (max-width: 320px)","sidebarContainer","paddingTop","paddingLeft","sidebarContainerLandscape","sidebar","& a","textDecoration","backdrop","fullSideBar","outerHeader","outerFooter","& span","errorBar","dark","warningBar","snackMessage","snackIcon","Header","drawerOpen","alertOpen","alertMessage","isImpersonating","updateImpersonationStatus","openDrawer","closeDrawer","toggleDrawer","e","closeAlert","_componentDidMount","addEventListener","removeEventListener","_componentDidUpdate","user","notice","_this2","showHelp","orientation","pendingCancellation","expiration","isLandscape","Fragment","AppBar_default","Toolbar_default","data-tour","icons_Menu_default","Typography_default","alt","src","Global_HelpButton","Button_ButtonLink","Drawer_default","elevation","PaperProps","ModalProps","BackdropProps","tabIndex","role","onKeyDown","buyNowText","trialDaysLeft","renewNowText","react","AccountCircle_default","AccessTime_default","includes","Warning_default","drawerHeader","Divider_default","LocalDining_default","LocalGroceryStore_default","Settings_default","Person_default","Payment_default","Help_default","Snackbar_default","anchorOrigin","vertical","horizontal","autoHideDuration","SnackbarContent_default","aria-describedby","action","close","ContentProps","Cancel_default","withRouter","Footer","footer","appFooter","Grid_default","container","item","xs","sm","links","BOD_ENV","align","_footer","_links","textTransform","textAlign","listStyle","& li","Spinner","progress","CircularProgress_default","thickness","AlertDialog","handleCancel","onCancel","handleProceed","onProceed","newProps","cancelLabel","proceedLabel","proceedProps","dangerous","Dialog_default","aria-labelledby","DialogTitle_default","DialogContent_default","DialogContentText_default","DialogActions_default","components_Button","borderColor","&:hover, &:active, &:focus","paper","buttons","getModalStyle","Modal","handleOpen","preventDefault","showCloseButton","wrapperClassName","noPadding","hideBackdrop","pageCentered","transparent","wrapperClass","hasClose","Modal_default","wrapWrapper","closeButton","transparentPaper","paperHasClose","StyledModal","_wrapper","minWidth","maxHeight","overflow","& button","shadows","FullPageSpinner","spinner","_ref$label","components_Modal_Modal","disableBackdropClick","disableEnforceFocus","disableEscapeKeyDown","Global_Spinner","printStyles","noPrint","@media print","printOnly","printOneLine","flexDirection","printTitle","borderBottom","globalStyles","flexWrap","section","Transition","Slide_default","direction","HelpButton","helpShowing","toggleHelp","prevState","help","scroll","TransitionComponent","keepMounted","Global_HelpContent","href","Email_default","buttonIcon","overflowY","&::-webkit-scrollbar","&::-webkit-scrollbar-track","-webkit-box-shadow","borderRadius","&::-webkit-scrollbar-thumb","formStyles","_checkboxWrappable","global","textarea","& label","listItem","& > div","& strong","fontWeight","& div span","checkboxOption","checkboxListItem","checkboxGroup","checkboxWrappable","radioListItem","overrideWarning","SearchField","cancelSearch","searching","focusSearch","searchRef","current","focus","handleSearchChange","onChange","term","handleSearch","onSearch","createRef","notFoundOpen","notFound","iconStart","_this$state","iconPlacement","iconAdornment","adornment","iconBtn","Form_FormField","inputRef","Option","description","fullLabel","RadioGroup","handleChange","nextProps","hClass","FormControl_default","formControl","FormLabel_default","RadioGroup_default","row","group","Switch","labelPlacement","Switch_default","TimeZoneField","editing","toggleEditing","renderForm","timeZones","tzname","renderNonForm","Button_InlineButton","FormGroup","noIcon","aside","asideClass","mainColSize","firstCol","iconCol","lineHeight","mainActionBar","subActionBar","fixed","borderTop","sub","barType","mainContainerClass","containerClasses","Children","child","PageTitle","condensed","titleClassNames","theTitle","line","_title","SignIn","_Component","showPassword","useEnvironment","allowEnvToggle","NativeStorage","updateEnvironment","handleClickShowPassword","handleMouseDownPassword","handleChangeEnvironment","isChecked","setTimeout","_this$setState","_login","stopPropagation","onLogin","components_PageTitle_PageTitle","noValidate","autoComplete","onSubmit","InputLabel_default","htmlFor","Input_default","onMouseDown","VisibilityOff_default","Visibility_default","Component","SignInContainer","react_router","pathname","reloadUser","doLogin","emailCheck","_error","User_SignIn","ErrorBoundary","hasError","HideErrorBoundary","SignOut","onLoad","onLogout","SignOutContainer","doLogout","_this3","Error_HideErrorBoundary","update","called","handleLogout","resetStore","r2","history","SignOutContainer_SignOut","detectTimeZone","oldIntl","tz","jstz","determine","SignUp","handleSubmit","values","setErrors","setSubmitting","finish","formik_esm","isInitialValid","initialValues","enableReinitialize","validateOnChange","validationSchema","isSubmitting","isValid","validationProps","getIn","changeProps","onBlur","handleBlur","Form_FormGroup","Lock_default","Form_TimeZoneField","Form_ActionBar","SignUpContainer","signup","User_SignUp","push","SignInHelp","resetPassword","User_RequestPasswordReset","RequestPasswordReset","reset","InactiveAccount","AccessDenied","again","statusPhrase","SignInHelpContainer","User_SignInHelp","ResetPassword","msg","onSuccess","base","ResetPasswordContainer","resetToken","handleReset","User_ResetPassword","ConfirmAccount","redirect","ConfirmAccountContainer","ctx","confirmationToken","confirm","doConfirm","User_ConfirmAccount","DashboardContainer","InactiveContainer","User_InactiveAccount","commonStepParameters","disableBeacon","hideCloseButton","Onboarding","run","currentPath","currentPathKey","pathKeys","/meal-plan","/profile/demo","stepGroups","meal-plan","placement","profile-start","profile-targets","showProgress","handleJoyrideCallback","finishedStatuses","sidebarOpen","index","stepIndex","STATUS","FINISHED","SKIPPED","onTourEnd","EVENTS","STEP_AFTER","TARGET_NOT_FOUND","ACTIONS","PREV","groupCollapsed","TOUR_STATUS","groupEnd","TOUR_END","querySelector","click","onboarded","pathKey","steps","es","debug","continuous","scrollToFirstStep","disableScrolling","disableOverlayClose","disableCloseOnEsc","showSkipButton","callback","locale","last","options","primaryColor","hasSeen","OnboardingContainer","updateUser","handleSaveStep","step","onboardedStep","components_Onboarding_Onboarding","Help","support","HelpContainer","Page_Help","IngredientSearch","searched","initialResults","scrollIntoView","behavior","handleKeyPress","keyCode","handleAddIngredient","onSelect","renderResultInfo","showSecondaryInfo","proteinPct","fatPct","c","kcal","renderResult","resultInfo","ListItemSecondaryAction_default","Add_default","renderNoResults","renderResults","core_List_default","renderInnerForm","_this$state2","form","Form_SearchField","onKeyPress","nestedForm","note","minHeight","& ::-webkit-scrollbar","& ::-webkit-scrollbar-track","& ::-webkit-scrollbar-thumb","activityLevels","level","descr","reverse","sortByLabel","labelField","TAB_LIST","FakeTab","profileConfig","demo","comp","showTabs","systemConfig","Form_RadioGroup","RadioGroup_Option","schema","goals","weightChangeLabel","withMuscle","noMuscle","Timeline_default","String","activity","lvl","parseInt","_validationProps","FitnessCenter_default","nutrition","onSearchFoods","restrictions","allDietaryRestrictions","sort","dislikes","RestaurantMenu_default","render","ThumbDown_default","Ingredient_IngredientSearch","dislikeIds","notificationPreferences","allNotificationPreferences","Notifications_default","Smartphone_default","ProfileWizard","normalizeValues","config","normalized","compact","_ref10","syncedRestrictions","existing","syncedNotificationPreferences","matchingItem","find","it","renderTabs","selectedIndex","onGoTo","tabs","ProfileWizard_FakeTab","onPrevious","isLastStep","profileIn","dciOverride","pctOverride","showOverrideWarning","overrides","overridden","stepClass","_ref11","subForm","hasForm","ProfileResults","protein","fat","carbs","editingDci","editingPct","dciReset","pctReset","resetDci","dciDefault","resetPct","toggleEditDci","toggleEditPct","cancelEditDci","cancelEditPct","handleSaveProfile","_this$props$profile","carbsPct","dci2","proteinPctNew","fatPctNew","carbsPctNew","haveChange","changes","saveProfile","btnPrefix","total","valid","subHeader","inlineFormWrapper","autoFocus","field","oneliner","fixedLabel","fixedField","proteinPctDefault","fatPctDefault","carbsPctDefault","daysOfWeek","mealSplits","ProfileMeals","numerics","regenerateThisWeeksPlan","showResetWarning","profileWithDefaults","dow","MONTHLY_FEE_PRODUCT_ID","isIos","platformTocheck","isAndroid","nativePaymentLabel","subscribe","productId","inAppPurchase","restorePurchases","formatError","InAppPayment","products","handleGetProducts","getProducts","table","handleSubscribe","saveReceipt","handleAndroidTestSubscribeSuccess","count","receipt","handlePayWithCC","onPayWithCC","renderError","existingPayment","isIap","iapStore","PaymentEdit","ready","isValidating","validUntil","userIp","useIAP","memoize","option1","option2","componentDidMount","iapIsAvailable","iapProduct","startCheckout","iapAvailable","loadCheckoutJs","validateReceipt","receiptData","getReceipt","handlePayWithIAP","submitPayment","handlePaymentError","showPaymentResult","handleDeclined","errorName","errorMessage","handleApproval","savePayment","ssl_first_name","ssl_last_name","ssl_card_number","ssl_card_short_description","ssl_exp_date","ssl_recurring_id","ccLast4","ccDesc","ccExpDate","recurringTxnId","handleIapSuccess","transactionId","iapReceipt","iapOriginalTxnId","handleCancelled","getMonthlyFee","price","currency","handleonDCCDecision","DCCResponse","onThreeDSecure","threeDSecureResponse","hash","jsFile","script","async","appendChild","card","startPaymentDate","mm","dd","startPaymentDateStr","paymentData","callbacks","ConvergeEmbeddedPayment","ssl_transaction_type","ssl_txn_auth_token","ssl_cvc","ssl_avs_zip","ssl_add_token","ssl_amount","ssl_billing_cycle","ssl_end_of_month","ssl_next_payment_date","ssl_cardholder_ip","ssl_email","onError","onDeclined","onApproval","onCancelled","pay","_this$state3","isNotProd","alreadyUsingCC","alreadyUsingIap","initialForm","fee","Global_FullPageSpinner","systemReady","LocalOffer_default","TouchApp_default","paymentOptionsGroup","Payment_InAppPayment","cards","visa","mastercard","amex","discover","maxLength","rel","payment","gs","& img","ProfileNotComplete","renderNoProfile","renderIncompleteProfile","renderNoMealSettings","noProfile","profileSetup","hasMeals","profileProgression","ProfileEditContainer","redirectTo","componentDidUpdate","handlePrevious","prevStepIndex","previousStep","handleGoTo","_gotoStepIndex","nextStep","_nextStep","nextStepIndex","renderRedirect","contexts","updateHeight","profileLooksComplete","handleSearchFood","q","apiCat","skip","readQuery","mergedProfile","updatedUser","writeQuery","Profile_ProfileWizard","ProfileResultsContainer","refetch","doSaveProfile","attrs","Profile_ProfileResults","PaymentDetail","cancelAlertOpen","cancelled","formatLast4","formatExpDate","handleCancelConfirmed","cancelAccount","renderIapDetails","androidSku","renderCcDetails","last4","priLabel","iapCopy","expirationCopy","isCc","Alert","PaymentEditContainer","lastFetchedAt","now","gap","details","Payment_PaymentEdit","PaymentDetailContainer","jumpToEdit","Payment_PaymentDetail","ProfileMealsContainer","Profile_ProfileMeals","overflowX","items","columnLabels","Paper_default","Table_default","TableHead_default","TableRow_default","col","TableCell_default","TableBody_default","j","PerGramToolTip","amount","Tooltip_default","enterDelay","leaveDelay","& th, & td","thead","whiteSpace","parent","& > *","paddingBottom","verticalAlign","& span svg","recipe","showCalTarget","ingredientsGrouped","ingr","goesWithId","ingrSub","kcalTargetLabel","kcalTarget","prefix","foodFixed","wholeQty","fixedQty","qtyMain","fixedUnit","qtyG","qtyOz","qtyOzPlusG","suffix","rowClass","rowProps","data-id","scope","IngredientTable_PerGramToolTip","proteinG","fatG","carbsG","fiberG","fiber","sugarG","sugar","sodiumG","sodium","Link_default","TableFooter_default","TypeChip","spaced","large","chipClasses","chip","Chip_default","overrideTheme","MUIDataTable","responsiveScroll","MUIDataTableHead","MUIDataTableFilterList","MUIDataTableHeadCell","borderWidth","MUIDataTableBodyCell","cellStacked","responsiveStacked","ItemLink","MyLink","textLabelsLoading","noMatch","textLabelsLoaded","RecipeList","recipeArray","recipes","tableOptions","page","perPage","viewRecipe","totalResultCount","searchText","serverSide","filterType","textLabels","selectableRows","responsive","rowsPerPage","rowsPerPageOptions","fixedHeader","print","download","viewColumns","onRowClick","rowData","rowMeta","rowIndex","onChangePage","onChangeRowsPerPage","onSearchChange","onFilterChange","onTableChange","tableState","updateRecipeList","tableColumns","customBodyRender","tableMeta","updateValue","statusLabel","public","typeGroup","Chip_TypeChip","shortTypeLabel","filterList","filterStatus","filterOptions","names","prevProps","core_styles","dist_default","columns","Button_FAB","baseStyles","bullet","pos","delete","sectionHeader","RecipeDetail","handleDeleteConfirmed","deleteRecipe","labels","Card_default","CardContent_default","gutterBottom","typeLabel","mealCount","instructions","Table_IngredientTable","CardActions_default","IngredientEditList","togglePane","item_id","handleUpdateIngredient","parseAsFloat","onUpdate","handleToggleFixed","renderSecondaryAction","ExpandLess_default","ExpandMore_default","secAction","renderItemLink","dense","itemLink","renderItem","sortIindex","units","newItem","hasSub","isFixed","isOpen","primaryTypographyProps","secondaryTypographyProps","gridLine","md","gridQty","Form_Switch","gridLabel","Collapse_default","in","timeout","unmountOnExit","itemSub","renderItems","itemsGrouped","order","DIETS","renderSuggestion","suggestion","isHighlighted","parts","parse","brand","part","highlight","shouldRenderSuggestions","getSuggestionValue","RecipeForm","querySource","suggestions","handleAddFoodFromApi","handleSuggestionsFetchRequested","resultsLocal","resultsRemote","searchFoods","handleSuggestionsClearRequested","handleSuggestionSelected","suggestionValue","onAddIngredient","foodId","renderInputComponent","_inputProps$inputRef","other","node","input","endIconBtn","renderSuggestionsContainer","containerProps","square","renderAutoSuggest","autosuggestProps","onSuggestionSelected","onSuggestionsFetchRequested","onSuggestionsClearRequested","multiSection","renderSectionTitle","getSectionSuggestions","react_autosuggest_dist_default","placeholder","newValue","suggestionContainer","suggestionsContainerOpen","suggestionsList","isAdmin","onUpdateIngredient","onRemoveIngredient","canAdjustServingSize","selectedDiets","dietNames","rType","diet","Recipe_IngredientEditList","isArray","Button_SaveButton","listStyleType","& input","& p","RecipeEdit","initialRecipe","saveRecipe","clone","food","apiRef","recipeIn","initial","pageTitle","setFieldValue","Recipe_RecipeForm","list","toConsumableArray","findIndex","linksRemoved","RecipeSearch","handleAddRecipe","footnote","ItemMenu","containerClass","buttonProps","menuId","MealPanel","replacing","replacingAll","removing","instrShowing","processing","modalOpen","searchResults","handleReplaceAll","meal","onReplaceMeal","handleReplaceAllWithRecipe","handleReplaceMeal","_this$props3","handleRemoveMeal","_this$props4","onRemoveMeal","handleSearchRecipe","_this$props5","onSearchRecipe","handleShowSearchModal","handleCloseModal","onAddRecipe","toggleInstructions","renderInstructions","_this$props6","buttonWrap","disableRipple","List_default","_this$props7","recipeUseCount","recipeCountMeal","recipeIds","reduce","acc","cur","Loop_default","DeleteOutline_default","_this$props8","meal_type","empty","ExpansionPanel_default","data-meal-id","ExpansionPanelSummary_default","expandIcon","summary","mealType","mismatch","heading","ExpansionPanelDetails_default","Recipe_RecipeSearch","scrollableTable","ExpansionPanelActions_default","actionText","actionButtons","Menu_ItemMenu","_actionText","clear","weekOfShort","week","tag","DateRange_default","WeekToggle_Link","linkInfo","isCurrent","MealPlanByDay","mealsSortedByTypeThenName","mealids","allMeals","snackCount","meals","breakfast","regular","snack","m_id","mealNum","fake","sparse","sortedRegular","missing","sortedSnacks","mealsSortedByTypeThenNumber","sequence","mealNumStart","_loop","nextMeal","snackMax","_loop2","plan","rId","handleReplaceMealPlan","handleReplaceMealPlanConfirmed","onReplaceMealPlan","renderDaySummary","summaryItem","renderDay","allRecipes","mealIds","canModify","Meals_MealPanel","all","withRecipeId","renderAside","weekQS","Restaurant_default","_user$profile","nutrientTargetPct","days","nutrients","n","capitalize","nutrient","Meals_WeekToggle","MealPlanSummary","MealPrep","instrShowingFor","recipesByType","groupedRecipeList","groups","recipeId","formatQty","renderRecipeGroup","cnt","disablePadding","disableGutters","portion","renderRecipe","colSize","ingrItem","recipeItem","recipeGroups","s","recipeIntro","fontStyle","GroceryList","inGrams","formatPackage","packagedAs","formatAmount","pkg","handlePrint","printIcon","Print_default","renderItemPrimary","itemName","itemSep","itemPkg","header","itemText","CheckBoxOutlineBlank_default","mainLabel","_mainLabel","_itemName","_itemPkg","_itemSep","_itemText","& p, & span","pageBreakInside","boxDecorationBreak","@media screen","MealPlanContainer","notifyOnNetworkStatusChange","mealPlanId","dayNum","mealId","searchRecipes","_x8","_x9","Meals_MealPlanByDay","Profile_ProfileNotComplete","MealPrepContainer","Meals_MealPrep","RecipeListContainer","changedColumn","filterState","sessionStorage","filterStateRaw","notReady","Recipe_RecipeList","RecipeDetailContainer","doDelete","Recipe_RecipeDetail","RecipeEditContainer","redirectBackTo","haveRecipeId","queryTerm","Recipe_RecipeEdit","GroceryListContainer","listData","Meals_GroceryList","TermsOfUse","iframes","disclaimer","privacy-policy","pageComponents","terms-of-use","Page_TermsOfUse","PageContainer","renderIframe","slug","frameBorder","allowFullScreen","pc","DEBUG","Analytics","currentPage","ReactGA","pageview","initialize","currentUserStatus","authenticated","paid","AuthenticatedRoute","User_AccessDenied","PaidRoute","AppRouter","readDeviceOrientation","innerWidth","innerHeight","forceUpdate","updateDeviceOrientation","debounce","isMainScreen","hasPlanAccess","useNotifications","userStart","appClass","Notification_NotificationMonitor","data-app-orientation","Global_Header","User_OnboardingContainer","Error_ErrorBoundary","exact","AppRouter_PaidRoute","AppRouter_AuthenticatedRoute","Global_Footer","ReactRouter","HashRouter","BrowserRouter","App","basename","CssBaseline_default","containers_AppRouter","hostname","elem","ALLOW_ENV_CHANGING","preStart","changeEnvironment","nativeStorageFailed","startApp","added","MutationObserver","mutations","addedNodes","observe","childList","env","BOD_STAGING_BASE_URL","BOD_STAGING_API_URL","BOD_STAGING_ENV","BOD_DEV_BASE_URL","BOD_DEV_API_URL","BOD_DEV_ENV","BOD_PROD_BASE_URL","BOD_PROD_API_URL","BOD_PROD_ENV","ReactDOM","src_App","getElementById","navigator","serviceWorker","registration","unregister"],"mappings":"0FAEAA,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAE,eAAA,EAEA,IAEAC,EAFAC,GAEAD,EAFkCE,EAAQ,OAG1CF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAkEAH,EAAAE,UA9DA,SAAAM,GAEA,IAAAC,EAAA,GACAC,GAAA,EAAAN,EAAAG,SAAAC,EAAA,gBACAG,GAAA,EAAAP,EAAAG,SAAAC,EAAA,cAEA,GAAAG,EAAA,CACA,IAAAC,GAAA,EACAC,GAAA,EACAC,OAAAC,EAEA,IACA,QAAAC,EAAAC,EAAAN,EAAAO,OAAAC,cAA8DP,GAAAI,EAAAC,EAAAG,QAAAC,MAAgET,GAAA,GAC9H,IAAAU,EAAAN,EAAAf,MAEAsB,EAAAD,EAAAC,KAAAC,KAAA,KACAC,GAAA,EAAArB,EAAAG,SAAAE,EAAAc,EAAA,IACAE,GAAAH,EAAAI,YAAA,KACAjB,EAAAc,GAAAE,GAEK,MAAAE,GACLd,GAAA,EACAC,EAAAa,EACK,QACL,IACAf,GAAA,MAAAK,EAAAW,QACAX,EAAAW,SAEO,QACP,GAAAf,EACA,MAAAC,QAIG,CACH,IAAAe,GAAA,EAAAzB,EAAAG,SAAAC,EAAA,YAEA,GAAAqB,EACA,QAAAC,KAAAD,EAEAA,EAAAC,IAAAD,EAAAC,GAAAN,OACAd,GAAAmB,EAAAC,GAAAN,KAAA,OAGAf,EAAAqB,GAAApB,OAGAA,IACAA,GAAA,EAAAN,EAAAG,SAAAC,EAAA,MAWA,OANAE,IACAD,EAAA,MACAC,YAIAD,qCCxEAX,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAA+B,iBAAA/B,EAAAgC,eAAAhC,EAAAiC,qBAAAjC,EAAAkC,oBAAAlC,EAAAmC,oBAAA,EAEA,IAEAhC,EAFAiC,GAEAjC,EAFyCE,EAAQ,OAGjDF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAIA,SAAAkC,IACA,IAAAC,EAAAC,EAAA,iLAMA,OAJAF,EAAA,WACA,OAAAC,GAGAA,EAGA,SAAAE,IACA,IAAAF,EAAAC,EAAA,sGAMA,OAJAC,EAAA,WACA,OAAAF,GAGAA,EAGA,SAAAG,IACA,IAAAH,EAAAC,EAAA,uJAMA,OAJAE,EAAA,WACA,OAAAH,GAGAA,EAGA,SAAAI,IACA,IAAAJ,EAAAC,EAAA,+YAMA,OAJAG,EAAA,WACA,OAAAJ,GAGAA,EAGA,SAAAK,IACA,IAAAL,EAAAC,EAAA,yMAMA,OAJAI,EAAA,WACA,OAAAL,GAGAA,EAGA,SAAAC,EAAAK,EAAAC,GAKA,OAJAA,IACAA,EAAAD,EAAAE,MAAA,IAGAhD,OAAAiD,OAAAjD,OAAAkD,iBAAAJ,EAAA,CACAC,IAAA,CACA5C,MAAAH,OAAAiD,OAAAF,OAKA,IAAAV,GAAA,EAAAC,EAAA7B,SAAAoC,KACA3C,EAAAmC,iBACA,IAAAD,GAAA,EAAAE,EAAA7B,SAAAmC,KACA1C,EAAAkC,sBACA,IAAAD,GAAA,EAAAG,EAAA7B,SAAAkC,KACAzC,EAAAiC,uBACA,IAAAD,GAAA,EAAAI,EAAA7B,SAAAiC,KACAxC,EAAAgC,iBACA,IAAAD,GAAA,EAAAK,EAAA7B,SAAA8B,KACArC,EAAA+B,qDCpFAjC,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEA,IAAAgD,EAAA,CACAC,cAAA,EACAC,WAAA,EACAC,aAAA,EACAC,OAAA,EACAC,UAAA,GAEAxD,OAAAC,eAAAC,EAAA,YACAuD,YAAA,EACAC,IAAA,WACA,OAAAC,EAAAlD,WAGAP,EAAAqD,MAAArD,EAAAoD,YAAApD,EAAAmD,UAAAnD,EAAAkD,kBAAA,EAEA,IAAAO,EA0BA,SAAAtD,GACA,GAAAA,KAAAG,WACA,OAAAH,EAEA,IAAAuD,EAAA,GAEA,SAAAvD,EACA,QAAAwD,KAAAxD,EACA,GAAAL,OAAA8D,UAAAC,eAAAC,KAAA3D,EAAAwD,GAAA,CACA,IAAAI,EAAAjE,OAAAC,gBAAAD,OAAAkE,yBAAAlE,OAAAkE,yBAAA7D,EAAAwD,GAAA,GAEAI,EAAAP,KAAAO,EAAAE,IACAnE,OAAAC,eAAA2D,EAAAC,EAAAI,GAEAL,EAAAC,GAAAxD,EAAAwD,GAOA,OADAD,EAAAnD,QAAAJ,EACAuD,EA/CAQ,CAAwC7D,EAAQ,MAEhDP,OAAAqE,KAAAV,GAAAW,QAAA,SAAAT,GACA,YAAAA,GAAA,eAAAA,IACA7D,OAAA8D,UAAAC,eAAAC,KAAAb,EAAAU,IACA7D,OAAAC,eAAAC,EAAA2D,EAAA,CACAJ,YAAA,EACAC,IAAA,WACA,OAAAC,EAAAE,SAKA,IAAAU,EAAiBhE,EAAQ,KAEzBP,OAAAqE,KAAAE,GAAAD,QAAA,SAAAT,GACA,YAAAA,GAAA,eAAAA,IACA7D,OAAA8D,UAAAC,eAAAC,KAAAb,EAAAU,IACA7D,OAAAC,eAAAC,EAAA2D,EAAA,CACAJ,YAAA,EACAC,IAAA,WACA,OAAAa,EAAAV,SA+BA3D,EAAAkD,aADA,gCAGAlD,EAAAmD,UADA,qDAGAnD,EAAAoD,YADA,gHAqBApD,EAAAqD,MAnBA,EACAiB,KAAA,IACAC,MAAA,KACC,CACDD,KAAA,KACAC,MAAA,MACC,CACDD,KAAA,KACAC,MAAA,MACC,CACDD,KAAA,KACAC,MAAA,MACC,CACDD,KAAA,OACAC,MAAA,QACC,CACDD,KAAA,MACAC,MAAA,0CC5FA,IAAAC,EAA0BnE,EAAQ,GAElCP,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAyE,eA+DA,WACA,OAAAC,EAAAC,MAAAC,KAAAC,YA/DA7E,EAAA8E,aAsFA,SAAAC,GACA,OAAAC,EAAAL,MAAAC,KAAAC,YAtFA7E,EAAAiF,aA6GA,WACA,OAAAC,EAAAP,MAAAC,KAAAC,YA7GA7E,EAAAmF,oBAoIA,WACA,OAAAC,EAAAT,MAAAC,KAAAC,YApIA7E,EAAAqF,kBA2JA,SAAAC,GACA,OAAAC,EAAAZ,MAAAC,KAAAC,YA3JA7E,EAAAwF,kBAkLA,WACA,OAAAC,EAAAd,MAAAC,KAAAC,YAlLA7E,EAAA0F,uBAyMA,SAAAC,GACA,OAAAC,EAAAjB,MAAAC,KAAAC,YAzMA7E,EAAA6F,sBAiOA,WACA,OAAAC,EAAAnB,MAAAC,KAAAC,YAjOA7E,EAAA+F,sBA6PA,SAAAC,GACA,OAAAC,EAAAtB,MAAAC,KAAAC,YA7PA7E,EAAAkG,sBA4RA,WACA,OAAAC,EAAAxB,MAAAC,KAAAC,YA5RA7E,EAAAoG,eAmTA,WACA,OAAAC,EAAA1B,MAAAC,KAAAC,YAnTA7E,EAAAsG,aA0UA,SAAAC,GACA,OAAAC,EAAA7B,MAAAC,KAAAC,YA1UA7E,EAAAyG,aAiWA,WACA,OAAAC,EAAA/B,MAAAC,KAAAC,YAjWA7E,EAAA2G,gBAwXA,WACA,OAAAC,EAAAjC,MAAAC,KAAAC,YAxXA7E,EAAA6G,cA+YA,SAAAC,GACA,OAAAC,EAAApC,MAAAC,KAAAC,YA/YA7E,EAAAgH,cAsaA,WACA,OAAAC,EAAAtC,MAAAC,KAAAC,YAraA,IAIA1E,EAJA+G,GAIA/G,EAJ0CE,EAAQ,OAKlDF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAJAgH,EAAiB9G,EAAQ,IAQzB,SAAA+G,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9D,EAAA+D,GACA,IACA,IAAAC,EAAAN,EAAA1D,GAAA+D,GACAzH,EAAA0H,EAAA1H,MACG,MAAA2H,GAEH,YADAL,EAAAK,GAIAD,EAAAtG,KACAiG,EAAArH,GAEA4H,QAAAP,QAAArH,GAAA6H,KAAAN,EAAAC,GAIA,SAAAM,EAAAC,GACA,kBACA,IAAAC,EAAArD,KACAsD,EAAArD,UACA,WAAAgD,QAAA,SAAAP,EAAAC,GACA,IAAAF,EAAAW,EAAArD,MAAAsD,EAAAC,GAEA,SAAAV,EAAAvH,GACAmH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxH,GAGA,SAAAwH,EAAA9F,GACAyF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAA9F,GAGA6F,OAAAzG,MASA,SAAA2D,IAiBA,OAhBAA,EAAAqD,EAEAvD,EAAA2D,KAAA,SAAAC,IACA,OAAA5D,EAAA6D,KAAA,SAAAC,GACA,OACA,OAAAA,EAAAC,KAAAD,EAAAlH,MACA,OACA,OAAAkH,EAAAE,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAuB,WAAA,OAEA,OACA,UACA,OAAAJ,EAAAK,SAGKP,EAAAxD,UAELD,MAAAC,KAAAC,WAOA,SAAAG,IAiBA,OAhBAA,EAAA+C,EAEAvD,EAAA2D,KAAA,SAAAS,EAAAC,GACA,OAAArE,EAAA6D,KAAA,SAAAS,GACA,OACA,OAAAA,EAAAP,KAAAO,EAAA1H,MACA,OACA,OAAA0H,EAAAN,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAuB,WAAAG,IAEA,OACA,UACA,OAAAC,EAAAH,SAGKC,EAAAhE,UAELD,MAAAC,KAAAC,WAOA,SAAAK,IAiBA,OAhBAA,EAAA6C,EAEAvD,EAAA2D,KAAA,SAAAY,IACA,OAAAvE,EAAA6D,KAAA,SAAAW,GACA,OACA,OAAAA,EAAAT,KAAAS,EAAA5H,MACA,OACA,OAAA4H,EAAAR,OAAA,SAAAtB,EAAA3G,QAAA0I,QAAA9B,EAAAuB,aAEA,OACA,UACA,OAAAM,EAAAL,SAGKI,EAAAnE,UAELD,MAAAC,KAAAC,WAOA,SAAAO,IAiBA,OAhBAA,EAAA2C,EAEAvD,EAAA2D,KAAA,SAAAe,IACA,OAAA1E,EAAA6D,KAAA,SAAAc,GACA,OACA,OAAAA,EAAAZ,KAAAY,EAAA/H,MACA,OACA,OAAA+H,EAAAX,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAiC,iBAAA,OAEA,OACA,UACA,OAAAD,EAAAR,SAGKO,EAAAtE,UAELD,MAAAC,KAAAC,WAOA,SAAAU,IAiBA,OAhBAA,EAAAwC,EAEAvD,EAAA2D,KAAA,SAAAkB,EAAAR,GACA,OAAArE,EAAA6D,KAAA,SAAAiB,GACA,OACA,OAAAA,EAAAf,KAAAe,EAAAlI,MACA,OACA,OAAAkI,EAAAd,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAiC,iBAAAP,IAEA,OACA,UACA,OAAAS,EAAAX,SAGKU,EAAAzE,UAELD,MAAAC,KAAAC,WAOA,SAAAY,IAiBA,OAhBAA,EAAAsC,EAEAvD,EAAA2D,KAAA,SAAAoB,IACA,OAAA/E,EAAA6D,KAAA,SAAAmB,GACA,OACA,OAAAA,EAAAjB,KAAAiB,EAAApI,MACA,OACA,OAAAoI,EAAAhB,OAAA,SAAAtB,EAAA3G,QAAA0I,QAAA9B,EAAAiC,mBAEA,OACA,UACA,OAAAI,EAAAb,SAGKY,EAAA3E,UAELD,MAAAC,KAAAC,WAOA,SAAAe,IAkBA,OAjBAA,EAAAmC,EAEAvD,EAAA2D,KAAA,SAAAsB,EAAAC,GACA,OAAAlF,EAAA6D,KAAA,SAAAsB,GACA,OACA,OAAAA,EAAApB,KAAAoB,EAAAvI,MACA,OAEA,OADAwI,QAAAC,IAAA,yBAAAH,GACAC,EAAAnB,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAA2C,qBAAAC,QAAAL,KAEA,OACA,UACA,OAAAC,EAAAhB,SAGKc,EAAA7E,UAELD,MAAAC,KAAAC,WAOA,SAAAiB,IAsBA,OArBAA,EAAAiC,EAEAvD,EAAA2D,KAAA,SAAA6B,IACA,OAAAxF,EAAA6D,KAAA,SAAA4B,GACA,OACA,OAAAA,EAAA1B,KAAA0B,EAAA7I,MACA,OAEA,OADA6I,EAAA7I,KAAA,EACA8F,EAAA3G,QAAA0I,QAAA9B,EAAA2C,sBAEA,OAEA,OADAG,EAAAC,GAAAD,EAAAE,KACAF,EAAAzB,OAAA,cAAAyB,EAAAC,IAEA,OACA,UACA,OAAAD,EAAAtB,SAGKqB,EAAApF,UAELD,MAAAC,KAAAC,WAOA,SAAAoB,IAyBA,OAxBAA,EAAA8B,EAEAvD,EAAA2D,KAAA,SAAAiC,EAAAvB,GACA,IAAAwB,EACA,OAAA7F,EAAA6D,KAAA,SAAAiC,GACA,OACA,OAAAA,EAAA/B,KAAA+B,EAAAlJ,MACA,OAGA,OAFAwI,QAAAC,IAAA,wBAAAhB,GACAyB,EAAAlJ,KAAA,EACA8F,EAAA3G,QAAAkI,QAAAtB,EAAAoD,oBAAA1B,GAEA,OAGA,OAFAwB,EAAAC,EAAAH,KACAP,QAAAC,IAAA,SAAAQ,GACAC,EAAA9B,OAAA,SAAA6B,GAEA,OACA,UACA,OAAAC,EAAA3B,SAGKyB,EAAAxF,UAELD,MAAAC,KAAAC,WAOA,SAAAsB,IAiBA,OAhBAA,EAAA4B,EAEAvD,EAAA2D,KAAA,SAAAqC,IACA,OAAAhG,EAAA6D,KAAA,SAAAoC,GACA,OACA,OAAAA,EAAAlC,KAAAkC,EAAArJ,MACA,OACA,OAAAqJ,EAAAjC,OAAA,SAAAtB,EAAA3G,QAAA0I,QAAA9B,EAAAoD,sBAEA,OACA,UACA,OAAAE,EAAA9B,SAGK6B,EAAA5F,UAELD,MAAAC,KAAAC,WAOA,SAAAwB,IAiBA,OAhBAA,EAAA0B,EAEAvD,EAAA2D,KAAA,SAAAuC,IACA,OAAAlG,EAAA6D,KAAA,SAAAsC,GACA,OACA,OAAAA,EAAApC,KAAAoC,EAAAvJ,MACA,OACA,OAAAuJ,EAAAnC,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAyD,WAAA,OAEA,OACA,UACA,OAAAD,EAAAhC,SAGK+B,EAAA9F,UAELD,MAAAC,KAAAC,WAOA,SAAA2B,IAiBA,OAhBAA,EAAAuB,EAEAvD,EAAA2D,KAAA,SAAA0C,EAAAhC,GACA,OAAArE,EAAA6D,KAAA,SAAAyC,GACA,OACA,OAAAA,EAAAvC,KAAAuC,EAAA1J,MACA,OACA,OAAA0J,EAAAtC,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAyD,WAAA/B,IAEA,OACA,UACA,OAAAiC,EAAAnC,SAGKkC,EAAAjG,UAELD,MAAAC,KAAAC,WAOA,SAAA6B,IAiBA,OAhBAA,EAAAqB,EAEAvD,EAAA2D,KAAA,SAAA4C,IACA,OAAAvG,EAAA6D,KAAA,SAAA2C,GACA,OACA,OAAAA,EAAAzC,KAAAyC,EAAA5J,MACA,OACA,OAAA4J,EAAAxC,OAAA,SAAAtB,EAAA3G,QAAA0I,QAAA9B,EAAAyD,aAEA,OACA,UACA,OAAAI,EAAArC,SAGKoC,EAAAnG,UAELD,MAAAC,KAAAC,WAOA,SAAA+B,IAiBA,OAhBAA,EAAAmB,EAEAvD,EAAA2D,KAAA,SAAA8C,IACA,OAAAzG,EAAA6D,KAAA,SAAA6C,GACA,OACA,OAAAA,EAAA3C,KAAA2C,EAAA9J,MACA,OACA,OAAA8J,EAAA1C,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAgE,YAAA,OAEA,OACA,UACA,OAAAD,EAAAvC,SAGKsC,EAAArG,UAELD,MAAAC,KAAAC,WAOA,SAAAkC,IAiBA,OAhBAA,EAAAgB,EAEAvD,EAAA2D,KAAA,SAAAiD,EAAAvC,GACA,OAAArE,EAAA6D,KAAA,SAAAgD,GACA,OACA,OAAAA,EAAA9C,KAAA8C,EAAAjK,MACA,OACA,OAAAiK,EAAA7C,OAAA,SAAAtB,EAAA3G,QAAAkI,QAAAtB,EAAAgE,YAAAtC,IAEA,OACA,UACA,OAAAwC,EAAA1C,SAGKyC,EAAAxG,UAELD,MAAAC,KAAAC,WAOA,SAAAoC,IAiBA,OAhBAA,EAAAc,EAEAvD,EAAA2D,KAAA,SAAAmD,IACA,OAAA9G,EAAA6D,KAAA,SAAAkD,GACA,OACA,OAAAA,EAAAhD,KAAAgD,EAAAnK,MACA,OACA,OAAAmK,EAAA/C,OAAA,SAAAtB,EAAA3G,QAAA0I,QAAA9B,EAAAgE,cAEA,OACA,UACA,OAAAI,EAAA5C,SAGK2C,EAAA1G,UAELD,MAAAC,KAAAC,8CC/cA/E,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAO,QAAAP,EAAAwL,YAAAxL,EAAAyL,YAAAzL,EAAA0L,YAAA1L,EAAA2L,SAAA3L,EAAA4L,UAAA5L,EAAA6L,uBAAA,EAEA,IAEA1L,EAFAiC,GAEAjC,EAFyCE,EAAQ,OAGjDF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAIA,SAAA2L,IACA,IAAAxJ,EAAAC,EAAA,oHAMA,OAJAuJ,EAAA,WACA,OAAAxJ,GAGAA,EAGA,SAAAD,IACA,IAAAC,EAAAC,EAAA,88CAMA,OAJAF,EAAA,WACA,OAAAC,GAGAA,EAGA,SAAAE,IACA,IAAAF,EAAAC,EAAA,goDAMA,OAJAC,EAAA,WACA,OAAAF,GAGAA,EAGA,SAAAG,IACA,IAAAH,EAAAC,EAAA,ypBAMA,OAJAE,EAAA,WACA,OAAAH,GAGAA,EAGA,SAAAI,IACA,IAAAJ,EAAAC,EAAA,0yBAMA,OAJAG,EAAA,WACA,OAAAJ,GAGAA,EAGA,SAAAK,IACA,IAAAL,EAAAC,EAAA,4LAMA,OAJAI,EAAA,WACA,OAAAL,GAGAA,EAGA,SAAAC,EAAAK,EAAAC,GAKA,OAJAA,IACAA,EAAAD,EAAAE,MAAA,IAGAhD,OAAAiD,OAAAjD,OAAAkD,iBAAAJ,EAAA,CACAC,IAAA,CACA5C,MAAAH,OAAAiD,OAAAF,OAKA,IAAAgJ,GAAA,EAAAzJ,EAAA7B,SAAAoC,KACA3C,EAAA6L,oBACA,IAAAD,GAAA,EAAAxJ,EAAA7B,SAAAmC,KACA1C,EAAA4L,YACA,IAAAD,GAAA,EAAAvJ,EAAA7B,SAAAkC,KACAzC,EAAA2L,WACA,IAAAD,GAAA,EAAAtJ,EAAA7B,SAAAiC,KACAxC,EAAA0L,cACA,IAAAD,GAAA,EAAArJ,EAAA7B,SAAA8B,KACArC,EAAAyL,cACA,IAAAD,GAAA,EAAApJ,EAAA7B,SAAAuL,KACA9L,EAAAwL,cACA,IAAAO,EAAA,CACAC,SAAAJ,EACAK,QAAAN,EACAO,OAAAR,EACAS,OAAAV,EACAW,OAAAZ,GAEAxL,EAAAO,QAAAwL,oCCxGA,IAAAvH,EAA0BnE,EAAQ,GAElCP,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAqM,iBACArM,EAAAsM,kBACAtM,EAAAuM,aACAvM,EAAAwD,IA4UA,SAAA+C,GACA,OAAAnG,EAAAuE,MAAAC,KAAAC,YA5UA7E,EAAAwM,KAoYA,SAAA1F,GACA,OAAA2F,EAAA9H,MAAAC,KAAAC,YApYA7E,EAAA0M,OAudA,SAAAC,GACA,OAAAC,EAAAjI,MAAAC,KAAAC,YAvdA7E,EAAAO,QAAAP,EAAA6M,sBAAA,EAEA,IAAAC,EAAiBzM,EAAQ,KAEzB8G,EAAiB9G,EAAQ,IAEzB,SAAA0M,EAAAC,GACA,QAAAC,EAAA,EAAiBA,EAAApI,UAAAqI,OAAsBD,IAAA,CACvC,IAAAE,EAAA,MAAAtI,UAAAoI,GAAApI,UAAAoI,GAAA,GACAG,EAAAtN,OAAAqE,KAAAgJ,GAEA,oBAAArN,OAAAuN,wBACAD,IAAAE,OAAAxN,OAAAuN,sBAAAF,GAAAI,OAAA,SAAAC,GACA,OAAA1N,OAAAkE,yBAAAmJ,EAAAK,GAAAjK,eAIA6J,EAAAhJ,QAAA,SAAAT,GACA8J,EAAAT,EAAArJ,EAAAwJ,EAAAxJ,MAIA,OAAAqJ,EAGA,SAAAS,EAAAtN,EAAAwD,EAAA1D,GAYA,OAXA0D,KAAAxD,EACAL,OAAAC,eAAAI,EAAAwD,EAAA,CACA1D,QACAsD,YAAA,EACAmK,cAAA,EACAC,UAAA,IAGAxN,EAAAwD,GAAA1D,EAGAE,EAGA,SAAAiH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9D,EAAA+D,GACA,IACA,IAAAC,EAAAN,EAAA1D,GAAA+D,GACAzH,EAAA0H,EAAA1H,MACG,MAAA2H,GAEH,YADAL,EAAAK,GAIAD,EAAAtG,KACAiG,EAAArH,GAEA4H,QAAAP,QAAArH,GAAA6H,KAAAN,EAAAC,GAIA,SAAAM,EAAAC,GACA,kBACA,IAAAC,EAAArD,KACAsD,EAAArD,UACA,WAAAgD,QAAA,SAAAP,EAAAC,GACA,IAAAF,EAAAW,EAAArD,MAAAsD,EAAAC,GAEA,SAAAV,EAAAvH,GACAmH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxH,GAGA,SAAAwH,EAAA9F,GACAyF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAA9F,GAGA6F,OAAAzG,MAMA,IAAA8L,EAAA,GAAAS,OAAAnG,EAAAyG,QAAA,gBAGA,SAAAC,EAAA9I,GACA,OAAA+I,EAAAnJ,MAAAC,KAAAC,WAGA,SAAAiJ,IA2CA,OA1CAA,EAAA/F,EAEAvD,EAAA2D,KAAA,SAAAC,EAAA2F,GACA,IAAAC,EAAAtN,EACA,OAAA8D,EAAA6D,KAAA,SAAAC,GACA,OACA,OAAAA,EAAAC,KAAAD,EAAAlH,MACA,OACA,GAAA2M,EAAAE,GAAA,CACA3F,EAAAlH,KAAA,EACA,MAIA,OADAkH,EAAAlH,KAAA,EACA2M,EAAAC,OAEA,OAMA,OALAA,EAAA1F,EAAA6B,KAEAzJ,EAAAsN,KAAAxN,QAAAwN,EAAAxN,OAAA,GAAAwN,EAAAxN,OAAA,GAAAuN,EAAAG,WAGA5F,EAAAE,OAAA,SAAAuE,EAAA,GAA6DiB,EAAA,CAC7DD,SAAAC,EACAG,OAAAJ,EAAAI,OACAzN,aAGA,OAEA,OADA4H,EAAAlH,KAAA,EACA2M,EAAAC,OAEA,OACA,OAAA1F,EAAAE,OAAA,SAAAF,EAAA6B,MAEA,OACA,UACA,OAAA7B,EAAAK,SAGKP,EAAAxD,UAELD,MAAAC,KAAAC,WAGA,SAAAwH,EAAA/G,GACA,OAAA8I,EAAAzJ,MAAAC,KAAAC,WAGA,SAAAuJ,IA4DA,OA3DAA,EAAArG,EAEAvD,EAAA2D,KAAA,SAAAS,EAAAyF,GACA,IAAAC,EACAC,EACAC,EACAC,EACAC,EAAA7J,UACA,OAAAL,EAAA6D,KAAA,SAAAS,GACA,OACA,OAAAA,EAAAP,KAAAO,EAAA1H,MACA,OAGA,OAFAkN,EAAAI,EAAAxB,OAAA,QAAAnM,IAAA2N,EAAA,IAAAA,EAAA,GACA5F,EAAA1H,KAAA,GACA,EAAA0L,EAAA7H,gBAEA,OAGA,GAFAsJ,EAAAzF,EAAAqB,MAEAmE,EAAA,CACAxF,EAAA1H,KAAA,GACA,MAIA,OADA0H,EAAA1H,KAAA,GACA,EAAA0L,EAAArG,gBAEA,OACAqC,EAAA6F,GAAA7F,EAAAqB,KACArB,EAAAoB,GAAA,CACA0E,eAAA9F,EAAA6F,IAEA7F,EAAA1H,KAAA,GACA,MAEA,QACA0H,EAAAoB,GAAA,GAEA,QAYA,OAXAsE,EAAA1F,EAAAoB,GAIAuE,EAAA1B,EAAA,GAAsCwB,EAAAC,EAAA,CAEtCK,mBAAA,iBACAC,wBAAA,MACAC,eAAA,oBACaV,GAEbvF,EAAAN,OAAA,SAAAiG,GAEA,QACA,UACA,OAAA3F,EAAAH,SAGKC,EAAAhE,UAELD,MAAAC,KAAAC,WAGA,SAAAyH,EAAA3G,GACA,OAAAqJ,EAAArK,MAAAC,KAAAC,WAGA,SAAAmK,IA4DA,OA3DAA,EAAAjH,EAEAvD,EAAA2D,KAAA,SAAAY,EAAA0F,GACA,IAAAF,EAAAC,EAAAS,EAAAC,EACA,OAAA1K,EAAA6D,KAAA,SAAAW,GACA,OACA,OAAAA,EAAAT,KAAAS,EAAA5H,MACA,OAWA,OATAmN,EAAA,CACAY,IAAAV,EAAAjL,IAAA,OACA4L,OAAAX,EAAAjL,IAAA,UACA6L,OAAAZ,EAAAjL,IAAA,UACA8L,eAAAb,EAAAjL,IAAA,gBACA+L,aAAAd,EAAAjL,IAAA,eAGAwF,EAAA5H,KAAA,GACA,EAAA0L,EAAAhI,cAAAyJ,GAEA,OAGA,KAFAC,EAAAC,EAAAjL,IAAA,eAEA,CACAwF,EAAA5H,KAAA,EACA,MAIA,OADA4H,EAAA5H,KAAA,GACA,EAAA0L,EAAAxG,cAAAkI,GAEA,OAIA,GAHAS,EAAAR,EAAAjL,IAAA,0BACA0L,EAAAT,EAAAjL,IAAA,yBAEA,OAAAyL,GAAA,OAAAC,EAAA,CACAlG,EAAA5H,KAAA,GACA,MAIA,OADA4H,EAAA5H,KAAA,IACA,EAAA0L,EAAApH,wBAAAuJ,GAEA,QAEA,OADAjG,EAAA5H,KAAA,IACA,EAAA0L,EAAA/G,uBAAAmJ,GAEA,QACAM,OAAAC,cAAA,IAAAC,MAAA,gCACA1G,EAAA5H,KAAA,GACA,MAEA,QACA,UACA,OAAA4H,EAAAL,SAGKI,EAAAnE,UAELD,MAAAC,KAAAC,WAGA,SAAA0H,EAAAvG,GACA,OAAA2J,EAAAhL,MAAAC,KAAAC,WAGA,SAAA8K,IA0DA,OAzDAA,EAAA5H,EAEAvD,EAAA2D,KAAA,SAAAe,EAAA0G,GACA,IAAAC,EACApB,EACAqB,EACAC,EACAC,EACAC,EACAC,EACAnC,EACAoC,EAAAtL,UAEA,OAAAL,EAAA6D,KAAA,SAAAc,GACA,OACA,OAAAA,EAAAZ,KAAAY,EAAA/H,MACA,OAIA,IAHAyO,EAAAM,EAAAjD,OAAA,QAAAnM,IAAAoP,EAAA,GAAAA,EAAA,MACA1B,EAAA0B,EAAAjD,OAAA,QAAAnM,IAAAoP,EAAA,GAAAA,EAAA,MAEAL,EAAAK,EAAAjD,OAAA6C,EAAA,IAAAK,MAAAN,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAA2FA,EAAAF,EAAaE,IACxGD,EAAAC,EAAA,GAAAG,EAAAH,GAKA,OAFAC,EAAAF,EAAAE,QAAA,MACA9G,EAAA/H,KAAA,EACAiL,EAAAoC,EAAA,QAAAwB,GAEA,OAGA,OAFAC,EAAA/G,EAAAgB,KACAhB,EAAA/H,KAAA,EACAiP,MAAAT,EAAA7C,EAAA,CACA8C,SACAS,YAAA,UACAC,KAAAC,KAAAC,UAAAZ,GACAK,cACaH,IAEb,OAGA,OAFAhC,EAAA5E,EAAAgB,KACAhB,EAAA/H,KAAA,GACAkL,EAAAyB,EAAAU,SAEA,QAEA,OADAtF,EAAA/H,KAAA,GACA2M,EAAAC,OAEA,QACA,OAAA7E,EAAAX,OAAA,SAAAW,EAAAgB,MAEA,QACA,UACA,OAAAhB,EAAAR,SAGKO,EAAAtE,UAELD,MAAAC,KAAAC,WAOA,SAAAzE,IAkDA,OAjDAA,EAAA2H,EAEAvD,EAAA2D,KAAA,SAAAkB,EAAAuG,GACA,IAAAC,EACApB,EACAiC,EACAX,EACAY,EACA5C,EACA6C,EAAA/L,UAEA,OAAAL,EAAA6D,KAAA,SAAAiB,GACA,OACA,OAAAA,EAAAf,KAAAe,EAAAlI,MACA,OAIA,IAHAyO,EAAAe,EAAA1D,OAAA,QAAAnM,IAAA6P,EAAA,GAAAA,EAAA,MACAnC,EAAAmC,EAAA1D,OAAA,QAAAnM,IAAA6P,EAAA,GAAAA,EAAA,MAEAF,EAAAE,EAAA1D,OAAA6C,EAAA,IAAAK,MAAAM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAA+FA,EAAAD,EAAeC,IAC9GZ,EAAAY,EAAA,GAAAC,EAAAD,GAIA,OADArH,EAAAlI,KAAA,EACAiP,MAAAT,EAAA7C,EAAA,CACA8C,SACAS,YAAA,UACAC,KAAAC,KAAAC,UAAAZ,GACApB,QAAApC,EAAAoC,IACasB,IAEb,OAGA,OAFAhC,EAAAzE,EAAAa,KACAb,EAAAlI,KAAA,EACAkL,EAAAyB,EAAAU,SAEA,OAEA,OADAnF,EAAAlI,KAAA,GACA2M,EAAAC,OAEA,QACA,OAAA1E,EAAAd,OAAA,SAAAc,EAAAa,MAEA,QACA,UACA,OAAAb,EAAAX,SAGKU,EAAAzE,UAELD,MAAAC,KAAAC,WAOA,SAAA4H,IA6EA,OA5EAA,EAAA1E,EAEAvD,EAAA2D,KAAA,SAAAoB,EAAAqG,GACA,IAAAC,EACAxB,EACAI,EAEAoC,EACAd,EACAe,EACAC,EACA1G,EACA3J,EACAsQ,EAAAnM,UAEA,OAAAL,EAAA6D,KAAA,SAAAmB,GACA,OACA,OAAAA,EAAAjB,KAAAiB,EAAApI,MACA,OAIA,OAHAyO,EAAAmB,EAAA9D,OAAA,QAAAnM,IAAAiQ,EAAA,GAAAA,EAAA,MACA3C,EAAA2C,EAAA9D,OAAA,QAAAnM,IAAAiQ,EAAA,GAAAA,EAAA,MACAxH,EAAApI,KAAA,EACAiL,EAAAgC,GAAA,GAEA,OAKA,IAJAI,EAAAjF,EAAAW,KACA,KACAX,EAAAjB,KAAA,EAEAsI,EAAAG,EAAA9D,OAAA6C,EAAA,IAAAK,MAAAS,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAA+FA,EAAAD,EAAeC,IAC9Gf,EAAAe,EAAA,GAAAE,EAAAF,GAIA,OADAtH,EAAApI,KAAA,GACAiP,MAAAT,EAAA7C,EAAA,CACA0B,UACAoB,SACAS,YAAA,UACAC,KAAAC,KAAAC,UAAAZ,IACaE,EAAA,CACbE,OAAA,UAGA,QAGA,OAFAc,EAAAvH,EAAAW,KACAX,EAAApI,KAAA,GACAyM,EAAAkD,GAEA,QAGA,OAFA1G,EAAAb,EAAAW,KACAX,EAAApI,KAAA,GACAkL,EAAAyE,EAAAtC,SAEA,QACA,OAAAjF,EAAAhB,OAAA,SAAA6B,GAEA,QAMA,OALAb,EAAAjB,KAAA,GACAiB,EAAAU,GAAAV,EAAA,SACA9I,EAAA8I,EAAAU,GAAAxJ,SAAA8I,EAAAU,GAAA+G,WAGAzH,EAAAhB,OAAA,UACA0I,SAAA,EACA1Q,OAAA,CAAAE,GACAiB,IAAA6H,EAAAU,GACA6D,SAAAvE,EAAAU,GAAA6D,WAGA,QACA,UACA,OAAAvE,EAAAb,SAGKY,EAAA3E,KAAA,cAELD,MAAAC,KAAAC,WAOA,SAAA+H,IAoDA,OAnDAA,EAAA7E,EAEAvD,EAAA2D,KAAA,SAAAsB,EAAAmG,GACA,IAAAnB,EACA0C,EACApB,EACAqB,EACArD,EACAsD,EAAAxM,UAEA,OAAAL,EAAA6D,KAAA,SAAAsB,GACA,OACA,OAAAA,EAAApB,KAAAoB,EAAAvI,MACA,OAEA,OADAuI,EAAAvI,KAAA,EACAiL,EAAA,IAAoC,GAEpC,OAGA,IAFAoC,EAAA9E,EAAAQ,KAEAgH,EAAAE,EAAAnE,OAAA6C,EAAA,IAAAK,MAAAe,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAA+FA,EAAAD,EAAeC,IAC9GrB,EAAAqB,EAAA,GAAAC,EAAAD,GAIA,OADAzH,EAAAvI,KAAA,EACAiP,MAAAT,EAAA7C,EAAA,CACA0B,WACasB,EAAA,CACbO,YAAA,UACAL,OAAA,YAGA,OAGA,OAFAlC,EAAApE,EAAAQ,KACAR,EAAAvI,KAAA,EACAkL,EAAAyB,EAAAU,SAEA,OAEA,OADA9E,EAAAvI,KAAA,GACA2M,EAAAC,OAEA,QACA,OAAArE,EAAAnB,OAAA,SAAAmB,EAAAQ,MAEA,QACA,UACA,OAAAR,EAAAhB,SAGKc,EAAA7E,UAELD,MAAAC,KAAAC,WAhcA7E,EAAA6M,mBAmcA,IAAAd,EAAAQ,EACAvM,EAAAO,QAAAwL,uDC7hBAjM,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAH,OAAAC,eAAAC,EAAA,UACAuD,YAAA,EACAC,IAAA,WACA,OAAA8N,EAAA/Q,WAIA,IAEAJ,EAFAmR,GAEAnR,EAFqCE,EAAQ,OAG7CF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,oCCdAL,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAuR,UAqEA,SAAAC,GACA,GAAAhC,OAAAiC,UAAAjC,OAAAiC,SAAAC,OAAA,CACA,IAAAC,EAAAF,SAAAC,OAAAE,MAAA,UAAuCJ,EAAA,iBACvC,OAAAG,IAAA,QAGA,aA1EA3R,EAAA6R,WAAA7R,EAAA8R,UAAA9R,EAAA+R,QAAA/R,EAAAgS,OAAAhS,EAAAiS,MAAAjS,EAAAkS,QAAAlS,EAAAmS,WAAAnS,EAAAoS,gBAAApS,EAAAqS,WAAA,EAEA,IAAAC,EAAYjS,EAAQ,KAEpBkS,EAEA,SAAApS,GACA,GAAAA,KAAAG,WACA,OAAAH,EAEA,IAAAuD,EAAA,GAEA,SAAAvD,EACA,QAAAwD,KAAAxD,EACA,GAAAL,OAAA8D,UAAAC,eAAAC,KAAA3D,EAAAwD,GAAA,CACA,IAAAI,EAAAjE,OAAAC,gBAAAD,OAAAkE,yBAAAlE,OAAAkE,yBAAA7D,EAAAwD,GAAA,GAEAI,EAAAP,KAAAO,EAAAE,IACAnE,OAAAC,eAAA2D,EAAAC,EAAAI,GAEAL,EAAAC,GAAAxD,EAAAwD,GAOA,OADAD,EAAAnD,QAAAJ,EACAuD,EAvBAQ,CAAgC7D,EAAQ,MA2BxC,SAAAmS,EAAArF,EAAAsF,GACA,SAAAtF,EAAA,SAEA,IAEAxJ,EAAAsJ,EAFAD,EAkBA,SAAAG,EAAAsF,GACA,SAAAtF,EAAA,SACA,IAEAxJ,EAAAsJ,EAFAD,EAAA,GACA0F,EAAA5S,OAAAqE,KAAAgJ,GAGA,IAAAF,EAAA,EAAaA,EAAAyF,EAAAxF,OAAuBD,IACpCtJ,EAAA+O,EAAAzF,GACAwF,EAAAE,QAAAhP,IAAA,IACAqJ,EAAArJ,GAAAwJ,EAAAxJ,IAGA,OAAAqJ,EA9BA4F,CAAAzF,EAAAsF,GAIA,GAAA3S,OAAAuN,sBAAA,CACA,IAAAwF,EAAA/S,OAAAuN,sBAAAF,GAEA,IAAAF,EAAA,EAAeA,EAAA4F,EAAA3F,OAA6BD,IAC5CtJ,EAAAkP,EAAA5F,GACAwF,EAAAE,QAAAhP,IAAA,GACA7D,OAAA8D,UAAAkP,qBAAAhP,KAAAqJ,EAAAxJ,KACAqJ,EAAArJ,GAAAwJ,EAAAxJ,IAIA,OAAAqJ,EA4BA,IAAA1J,EAAA,SAAAyP,EAAAC,EAAAC,GAEA,OAAAV,EAAAW,UAAA,GAAAD,IAYAjT,EAAAqS,MATA,WACA,QAAAvC,EAAAjL,UAAAqI,OAAAiG,EAAA,IAAA/C,MAAAN,GAAAE,EAAA,EAAwEA,EAAAF,EAAaE,IACrFmD,EAAAnD,GAAAnL,UAAAmL,GAIA,OAAAuC,EAAAa,iBAAAzO,MAAA4N,EAAA,CAAAjP,GAAAgK,OAAA6F,KAuBAnT,EAAAoS,gBAlBA,SAAAiB,GACA,OAAAA,EAAAC,IAAA,SAAAC,GACA,IAAAC,EAAAD,EAAAC,GACAC,EAAAF,EAAAE,SACAC,EAAAH,EAAAG,UACAC,EAAAJ,EAAAI,SAGA,OAFAnB,EAAAe,EAAA,0CAEA,CACAK,UAAAJ,EACAK,UAAA,EACAJ,WACAC,YACAC,eAOA,IAAAG,EAAA,SAAAC,GACA,IAAAC,IAAAnP,UAAAqI,OAAA,QAAAnM,IAAA8D,UAAA,KAAAA,UAAA,GACAoP,EAAApP,UAAAqI,OAAA,QAAAnM,IAAA8D,UAAA,IAAAA,UAAA,GAEA,IAAAkP,EACA,SAGA,IAAAG,EAAAH,EAAAI,UACAC,EAAAL,EAAAM,WACAC,EAAAP,EAAAQ,cACAC,EAAAlC,EAAAlP,YAAAgR,GAMA,OAJAH,IACAO,IAAAC,OAAA,MAGAD,EAAA,IAAAN,GAAAF,EAAA,KAAAM,EAAA,KAeAtU,EAAAmS,WAZA,SAAA4B,GACA,IAAAC,IAAAnP,UAAAqI,OAAA,QAAAnM,IAAA8D,UAAA,KAAAA,UAAA,GACAoP,EAAApP,UAAAqI,OAAA,QAAAnM,IAAA8D,UAAA,IAAAA,UAAA,GAEA,qBAAAkP,EAAA,CACA,IAAAW,EAAA,IAAAC,KAAAZ,GACA,OAAAD,EAAAY,EAAAV,EAAAC,GAGA,OAAAH,EAAAC,EAAAC,EAAAC,IA6CAjU,EAAAkS,QApCA,SAAAA,EAAA0C,GACA,IAAAA,GAAA7K,QAAA6K,OACA,OAAAA,EAGA,IATA3U,EASA4U,EAAA,GAEA,QAAA9B,KAAA6B,EACA,GAAAA,EAAA/Q,eAAAkP,GAAA,CACA,IAAApB,EAAAiD,EAAA7B,GACA8B,EAAA9B,GAAApB,EAEAA,KAhBA1R,EAiBA0R,KAhBA7R,OAAAG,GAiBA0R,EAAAmD,KACAD,EAAA9B,GAAApB,EAAAmD,OAEAD,EAAA9B,GAAApB,EAESA,EAAAmD,KACTD,EAAA9B,GAAApB,EAAAmD,OACSnD,EAAA2B,IACTuB,EAAA9B,GAAApB,EAAA2B,IAAA,SAAAyB,GACA,OAAAA,KAAAD,KAAAC,EAAAD,OAAAC,IAGAF,EAAA9B,GAAAb,EAAAP,IAOA,OAAAkD,GAKA,IAAA5C,EAAA,SAAAhS,GACA,IAAA+U,EAAAnQ,UAAAqI,OAAA,QAAAnM,IAAA8D,UAAA,GAAAA,UAAA,KACA,OAAAoQ,KAAAC,MAAA,IAAAjV,GAAA,IAAA+U,KAAA,IAAAA,IAAAG,QAAAH,IAGAhV,EAAAiS,QASAjS,EAAAgS,OAPA,SAAAoD,EAAAC,GACA,IAAAL,EAAAnQ,UAAAqI,OAAA,QAAAnM,IAAA8D,UAAA,GAAAA,UAAA,KAGA,SAAAyI,OAAA2E,EAFAmD,GAAA,GAAAC,EAAA,EAAAD,EAAAC,EAAA,EAEAL,GAAA,MAgBAhV,EAAA+R,QAXA,SAAA9R,GAGA,GAFA2J,QAAAC,IAAA,UAAA5J,EAAAqV,WAAArV,IAEAA,EAAA,CACA,IAAAsV,EAAAD,WAAArV,GACA,OAAAuV,MAAAD,GAAA,GAAAtV,EAAAwV,QAAA,eAGA,UAKA,IAAA3D,EAAA,SAAAnO,GACA,gBAAA+R,EAAAC,GACA,IAAAC,EAAAF,EAAA/R,GAAAkS,cACAC,EAAAH,EAAAhS,GAAAkS,cACAE,EAAA,EAQA,OANAH,EAAAE,EACAC,EAAA,EACKH,EAAAE,IACLC,GAAA,GAGAA,IAIA/V,EAAA8R,YACA,IAAAD,EAAAC,EAAA,QAaA9R,EAAA6R,8CC5PA,IAAArN,EAA0BnE,EAAQ,GAElCP,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAgW,kBAAAC,EACAjW,EAAAO,QAAAP,EAAAkW,kBAAAlW,EAAAmW,mBAAAnW,EAAAoW,UAAApW,EAAAqW,YAAArW,EAAAsW,YAAAtW,EAAAuW,iBAAAvW,EAAAwW,cAAAxW,EAAAyW,kBAAAzW,EAAA0W,eAAA1W,EAAA2W,UAAA3W,EAAA4W,gBAAA5W,EAAA6W,eAAA7W,EAAA8W,uBAAA9W,EAAA+W,OAAA/W,EAAAgX,OAAAhX,EAAAiX,MAAAjX,EAAAkX,kBAAA,EAEA,IAUA/W,EAVAiC,GAUAjC,EAVyCE,EAAQ,OAWjDF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAVAwP,EAAkBtP,EAAQ,KAE1ByM,EAAiBzM,EAAQ,KAEzB8W,EAAe9W,EAAQ,IAEvB8G,EAAiB9G,EAAQ,IAQzB,SAAA+G,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9D,EAAA+D,GACA,IACA,IAAAC,EAAAN,EAAA1D,GAAA+D,GACAzH,EAAA0H,EAAA1H,MACG,MAAA2H,GAEH,YADAL,EAAAK,GAIAD,EAAAtG,KACAiG,EAAArH,GAEA4H,QAAAP,QAAArH,GAAA6H,KAAAN,EAAAC,GAIA,SAAAM,EAAAC,GACA,kBACA,IAAAC,EAAArD,KACAsD,EAAArD,UACA,WAAAgD,QAAA,SAAAP,EAAAC,GACA,IAAAF,EAAAW,EAAArD,MAAAsD,EAAAC,GAEA,SAAAV,EAAAvH,GACAmH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxH,GAGA,SAAAwH,EAAA9F,GACAyF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAA9F,GAGA6F,OAAAzG,MAKA,SAAAqW,IACA,IAAA9U,EAAAC,EAAA,oJAMA,OAJA6U,EAAA,WACA,OAAA9U,GAGAA,EAGA,SAAA+U,IACA,IAAA/U,EAAAC,EAAA,6NAAyP,OAMzP,OAJA8U,EAAA,WACA,OAAA/U,GAGAA,EAGA,SAAAgV,IACA,IAAAhV,EAAAC,EAAA,0GAAsI,OAMtI,OAJA+U,EAAA,WACA,OAAAhV,GAGAA,EAGA,SAAAiV,IACA,IAAAjV,EAAAC,EAAA,sbAAkd,OAMld,OAJAgV,EAAA,WACA,OAAAjV,GAGAA,EAGA,SAAAkV,IACA,IAAAlV,EAAAC,EAAA,qVAMA,OAJAiV,EAAA,WACA,OAAAlV,GAGAA,EAGA,SAAAmV,IACA,IAAAnV,EAAAC,EAAA,qJAMA,OAJAkV,EAAA,WACA,OAAAnV,GAGAA,EAGA,SAAAoV,IACA,IAAApV,EAAAC,EAAA,kFAMA,OAJAmV,EAAA,WACA,OAAApV,GAGAA,EAGA,SAAAwJ,IACA,IAAAxJ,EAAAC,EAAA,8PAMA,OAJAuJ,EAAA,WACA,OAAAxJ,GAGAA,EAGA,SAAAD,IACA,IAAAC,EAAAC,EAAA,6VAMA,OAJAF,EAAA,WACA,OAAAC,GAGAA,EAGA,SAAAE,IACA,IAAAF,EAAAC,EAAA,0NAMA,OAJAC,EAAA,WACA,OAAAF,GAGAA,EAGA,SAAAG,IACA,IAAAH,EAAAC,EAAA,8GAMA,OAJAE,EAAA,WACA,OAAAH,GAGAA,EAGA,SAAAI,IACA,IAAAJ,EAAAC,EAAA,0JAMA,OAJAG,EAAA,WACA,OAAAJ,GAGAA,EAGA,SAAAK,IACA,IAAAL,EAAAC,EAAA,6KAMA,OAJAI,EAAA,WACA,OAAAL,GAGAA,EAGA,SAAAC,EAAAK,EAAAC,GAKA,OAJAA,IACAA,EAAAD,EAAAE,MAAA,IAGAhD,OAAAiD,OAAAjD,OAAAkD,iBAAAJ,EAAA,CACAC,IAAA,CACA5C,MAAAH,OAAAiD,OAAAF,OAKA,IAAAqU,EAAA,CACAS,YAAA,CACAnE,GAAA,IACAoE,WAAA,cACAC,MAAA,KACAC,UAAA,IAQA9X,EAAAkX,eACA,IAAAD,GAAA,EAAA7U,EAAA7B,SAAAoC,KACA3C,EAAAiX,QACA,IAAAD,GAAA,EAAA5U,EAAA7B,SAAAmC,KACA1C,EAAAgX,SACA,IAAAD,GAAA,EAAA3U,EAAA7B,SAAAkC,KACAzC,EAAA+W,SACA,IAAAD,GAAA,EAAA1U,EAAA7B,SAAAiC,KACAxC,EAAA8W,yBACA,IAAAD,GAAA,EAAAzU,EAAA7B,SAAA8B,KACArC,EAAA6W,iBACA,IAAAD,GAAA,EAAAxU,EAAA7B,SAAAuL,KACA9L,EAAA4W,kBACA,IAAAD,GAAA,EAAAvU,EAAA7B,SAAAmX,KACA1X,EAAA2W,YACA,IAAAD,GAAA,EAAAtU,EAAA7B,SAAAkX,KACAzX,EAAA0W,iBACA,IAAAD,GAAA,EAAArU,EAAA7B,SAAAiX,KACAxX,EAAAyW,oBACA,IAAAD,GAAA,EAAApU,EAAA7B,SAAAgX,IAAAJ,EAAAY,kBACA/X,EAAAwW,gBACA,IAAAD,GAAA,EAAAnU,EAAA7B,SAAA+W,IAAAd,GACAxW,EAAAuW,mBACA,IAAAD,GAAA,EAAAlU,EAAA7B,SAAA8W,IAAAb,GACAxW,EAAAsW,cACA,IAAAD,GAAA,EAAAjU,EAAA7B,SAAA6W,KAEApX,EAAAqW,cACA,IAAAD,EAAA,CACA4B,SAAA,CACAC,MAAA,SAAAC,EAAA3E,EAAA4E,GACA5E,EAAA6E,SACA7E,EAAA8E,SACAF,EAAAG,MACA1O,QAAAC,IAAA,qBAAAuO,WAEAG,OAAA,WACA,IAAAC,EAAAzQ,EAEAvD,EAAA2D,KAAA,SAAAC,EAAA8P,EAAAO,EAAAC,GAEA,OAAAlU,EAAA6D,KAAA,SAAAC,GACA,OACA,OAAAA,EAAAC,KAAAD,EAAAlH,MACA,OAKA,OAJAqX,EAAAL,SAAAK,EAAAJ,SACAK,EAAAJ,MACA1O,QAAAC,IAAA,sBAAAuO,UACA9P,EAAAlH,KAAA,GACA,EAAA0L,EAAArI,kBAEA,OACA,UACA,OAAA6D,EAAAK,SAGSP,EAAAxD,SAGT,gBAAAG,EAAAO,EAAAK,GACA,OAAA6S,EAAA7T,MAAAC,KAAAC,YAxBA,GA2BAmR,kBAAA,SAAAkC,EAAAS,EAAAC,GACA,IAAAd,EAAAa,EAAAb,SACAtE,EAAAmF,EAAAnF,GACAqE,EAAAc,EAAAd,MAUA,OAPA5B,EAFA2C,EAAAN,MAEA,CACAR,WACAtE,KACAqE,aAUA,SAAA5B,EAAAqC,EAAAO,GACA,IAAAf,EAAAe,EAAAf,SACAtE,EAAAqF,EAAArF,GACAqE,EAAAgB,EAAAhB,MAgBA,OAfAjO,QAAAC,IAAA,6BAAAiO,EAAAtE,EAAAqE,EAAAX,EAAAS,aACA,CACAA,YAAA,CAEAC,WAAA,cACAE,WACAtE,KACAqE,QAEAiB,MAAA,GACAC,QAAA,KAhBA/Y,EAAAoW,YAyCA,IAAAD,EAEA,WACA,IAAA6C,EAAAjR,EAEAvD,EAAA2D,KAAA,SAAAS,EAAAqQ,GACA,IAAAC,EAAA7O,EACA,OAAA7F,EAAA6D,KAAA,SAAAS,GACA,OACA,OAAAA,EAAAP,KAAAO,EAAA1H,MACA,OAOA,OANAwI,QAAAC,IAAA,yBAAAoP,EAAA9R,EAAAgS,UAEAD,EAAA,CACAE,OAAAH,EAAAzF,IAEA1K,EAAA1H,KAAA,GACA,EAAAuO,EAAAnD,MAAA,GAAAc,OAAAnG,EAAAgS,SAAA,yBAAAD,GAEA,OAIA,GAHA7O,EAAAvB,EAAAqB,KACAP,QAAAC,IAAA,uBAAAQ,IAEAA,EAAA6G,QAAA,CACApI,EAAA1H,KAAA,GACA,MAIA,OADA0H,EAAA1H,KAAA,GACA,EAAA0L,EAAA/G,uBAAAsE,EAAAxB,OAEA,OACA2G,OAAA6J,KAAA,GAAA/L,OAAAnG,EAAAgS,SAAA,0BAAA7L,OAAAjD,EAAAxB,MAAA,sBAAAyE,OAAA2L,EAAAzF,IAAA,uBAEA,QACA,OAAA1K,EAAAN,OAAA,SAAA6B,GAEA,QACA,UACA,OAAAvB,EAAAH,SAGKC,EAAAhE,SAGL,gBAAAoB,GACA,OAAAgT,EAAArU,MAAAC,KAAAC,YA5CA,GAgDA7E,EAAAmW,qBAEA,IAAAD,EAEA,WACA,IAAAoD,EAAAvR,EAEAvD,EAAA2D,KAAA,SAAAY,IACA,IAAAsB,EACA,OAAA7F,EAAA6D,KAAA,SAAAW,GACA,OACA,OAAAA,EAAAT,KAAAS,EAAA5H,MACA,OAIA,OAHAwI,QAAAC,IAAA,0BAEAb,EAAA5H,KAAA,GACA,EAAAuO,EAAAnD,MAAA,GAAAc,OAAAnG,EAAAgS,SAAA,iCAEA,OAIA,GAHA9O,EAAArB,EAAAmB,KACAP,QAAAC,IAAA,SAAAQ,IAEAA,EAAA6G,QAAA,CACAlI,EAAA5H,KAAA,GACA,MAIA,OADA4H,EAAA5H,KAAA,GACA,EAAA0L,EAAApH,yBAAA,GAEA,OAEA,OADAsD,EAAA5H,KAAA,IACA,EAAA0L,EAAA/G,uBAAA,MAEA,QACAyJ,OAAA+J,SAAAC,SAGA,QACA,OAAAxQ,EAAAR,OAAA,SAAA6B,GAEA,QACA,UACA,OAAArB,EAAAL,SAGKI,EAAAnE,SAGL,kBACA,OAAA0U,EAAA3U,MAAAC,KAAAC,YA9CA,GAkDA7E,EAAAkW,oBACA,IAAAnK,EAAA,CACAzI,SAAA4T,EACAd,aAEApW,EAAAO,QAAAwL,oCC7bA,IAAAvH,EAA0BnE,EAAQ,GAElCP,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAO,QAAAP,EAAAyZ,UAAAzZ,EAAA0Z,YAAA1Z,EAAAqP,YAAA,EAEA,IAAAsK,EAAAC,EAAoCvZ,EAAQ,MAE5CwZ,EAAsBxZ,EAAQ,KAE9ByZ,EAAkBzZ,EAAQ,IAE1B0Z,EAAyB1Z,EAAQ,KAEjC2Z,EAAuB3Z,EAAQ,KAE/B4Z,EAA0B5Z,EAAQ,KAElC8G,EAAiB9G,EAAQ,IAEzByM,EAAiBzM,EAAQ,KAEzBsP,EAAkBtP,EAAQ,KAE1B6Z,EAAAN,EAAmCvZ,EAAQ,KAE3C,SAAAuZ,EAAAzZ,GACA,OAAAA,KAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAIA,SAAAiH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA9D,EAAA+D,GACA,IACA,IAAAC,EAAAN,EAAA1D,GAAA+D,GACAzH,EAAA0H,EAAA1H,MACG,MAAA2H,GAEH,YADAL,EAAAK,GAIAD,EAAAtG,KACAiG,EAAArH,GAEA4H,QAAAP,QAAArH,GAAA6H,KAAAN,EAAAC,GAIA,SAAAM,EAAAC,GACA,kBACA,IAAAC,EAAArD,KACAsD,EAAArD,UACA,WAAAgD,QAAA,SAAAP,EAAAC,GACA,IAAAF,EAAAW,EAAArD,MAAAsD,EAAAC,GAEA,SAAAV,EAAAvH,GACAmH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAxH,GAGA,SAAAwH,EAAA9F,GACAyF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAA9F,GAGA6F,OAAAzG,MAKA,SAAAgM,EAAAC,GACA,QAAAC,EAAA,EAAiBA,EAAApI,UAAAqI,OAAsBD,IAAA,CACvC,IAAAE,EAAA,MAAAtI,UAAAoI,GAAApI,UAAAoI,GAAA,GACAG,EAAAtN,OAAAqE,KAAAgJ,GAEA,oBAAArN,OAAAuN,wBACAD,IAAAE,OAAAxN,OAAAuN,sBAAAF,GAAAI,OAAA,SAAAC,GACA,OAAA1N,OAAAkE,yBAAAmJ,EAAAK,GAAAjK,eAIA6J,EAAAhJ,QAAA,SAAAT,GACA8J,EAAAT,EAAArJ,EAAAwJ,EAAAxJ,MAIA,OAAAqJ,EAGA,SAAAS,EAAAtN,EAAAwD,EAAA1D,GAYA,OAXA0D,KAAAxD,EACAL,OAAAC,eAAAI,EAAAwD,EAAA,CACA1D,QACAsD,YAAA,EACAmK,cAAA,EACAC,UAAA,IAGAxN,EAAAwD,GAAA1D,EAGAE,EAGA,SAAAga,EAAA3I,GACAA,IAAAiE,QAAA,cAAAA,QAAA,cACA,IACA2E,EADA,IAAAC,OAAA,SAAA7I,EAAA,aACA8I,KAAAf,SAAAgB,QACA,cAAAH,EAAA,GAAAI,mBAAAJ,EAAA,GAAA3E,QAAA,YAGA,IAAA6C,EAAA,IAAA2B,EAAAQ,cACAC,GAAA,EAAAV,EAAAW,iBAAA5N,EAAA,CACAuL,UACC,EAAAqB,EAAApZ,SAAA2Z,EAAA3Z,WACDqa,EAAA,IAAAf,EAAAgB,SAAA,CACAC,IAAA,GAAAxN,QAAA,EAAAnG,EAAA4T,aAAA,cAEAC,GAAA,EAAAjB,EAAAkB,YAEA,WACA,IAAA9C,EAAApQ,EAEAvD,EAAA2D,KAAA,SAAAC,EAAA8S,EAAA3H,GACA,IAAA9E,EAAAF,EAAA4M,EAAAC,EAAAC,EAAAC,EACA,OAAA9W,EAAA6D,KAAA,SAAAC,GACA,OACA,OAAAA,EAAAC,KAAAD,EAAAlH,MACA,OAGA,OAFAqN,EAAA8E,EAAA9E,QACAnG,EAAAlH,KAAA,GACA,EAAA0L,EAAA7H,gBAEA,OAWA,OAVAsJ,EAAAjG,EAAA6B,KACAP,QAAAC,IAAA,8BAAAqR,EAAA3M,GAAA,EAAApH,EAAA4T,cACAI,EAAAhB,EAAA,uBACAiB,EAAAjB,EAAA,oBACAkB,EAAAF,GAAAC,EAAA,CACAG,oBAAAJ,EACAK,iBAAAJ,GACa,GACbxR,QAAAC,IAAA,2BAAAsR,GACA7S,EAAAlH,KAAA,IACA,EAAAuO,EAAAtD,gBAAAU,EAAA,GAAmE0B,EAAA4M,EAAA9M,IAAA,GAEnE,QAEA,OADA+M,EAAAhT,EAAA6B,KACA7B,EAAAE,OAAA,UACA8H,YAAA,UACA7B,QAAA1B,EAAA,GAAuCuO,KAGvC,QACA,UACA,OAAAhT,EAAAK,SAGKP,EAAAxD,SAGL,gBAAAG,EAAAO,GACA,OAAA6S,EAAAxT,MAAAC,KAAAC,YA1CA,IA6CA4W,GAAA,EAAA1B,EAAAkB,YAEA,WACA,IAAAvC,EAAA3Q,EAEAvD,EAAA2D,KAAA,SAAAS,EAAAsS,EAAAzC,GACA,IAAAhK,EAAAF,EAAA4M,EAAAC,EAAAM,EAAAC,EAAAL,EACA,OAAA9W,EAAA6D,KAAA,SAAAS,GACA,OACA,OAAAA,EAAAP,KAAAO,EAAA1H,MACA,OAGA,OAFAqN,EAAAgK,EAAAhK,QACA3F,EAAA1H,KAAA,GACA,EAAA0L,EAAA7H,gBAEA,OAOA,GANAsJ,EAAAzF,EAAAqB,KACAP,QAAAC,IAAA,6BAAAqR,EAAA3M,GAAA,EAAApH,EAAA4T,cACAI,EAAAhB,EAAA,uBACAiB,EAAAjB,EAAA,oBACAuB,EAAA,IAEAP,IAAAC,EAAA,CACAtS,EAAA1H,KAAA,GACA,MAGAsa,EAAA,qBAAAP,EACAO,EAAA,kBAAAN,EACAtS,EAAA1H,KAAA,GACA,MAEA,QAEA,OADA0H,EAAA1H,KAAA,IACA,EAAA0L,EAAAjH,yBAEA,QAGA,KAFA8V,EAAA7S,EAAAqB,MAEA,CACArB,EAAA1H,KAAA,GACA,MAKA,OAFAsa,EAAA,sBAAAC,EACA7S,EAAA1H,KAAA,IACA,EAAA0L,EAAA5G,yBAEA,QACAwV,EAAA,qBAAA5S,EAAAqB,KAEA,QAGA,OAFAP,QAAAC,IAAA,0BAAAsR,GACArS,EAAA1H,KAAA,IACA,EAAAuO,EAAAtD,gBAAAU,EAAA,GAAmE0B,EAAAiN,EAAAnN,IAAA,GAEnE,QAEA,OADA+M,EAAAxS,EAAAqB,KACArB,EAAAN,OAAA,UACA8H,YAAA,UACA7B,QAAA1B,EAAA,GAAuCuO,KAGvC,QACA,UACA,OAAAxS,EAAAH,SAGKC,EAAAhE,SAGL,gBAAAe,EAAAK,GACA,OAAA0S,EAAA/T,MAAAC,KAAAC,YAtEA,IAyEA+W,EAAA,IAAA9B,EAAA+B,WAAA,SAAAC,EAAAC,GAEA,OAAAA,EAAAD,GAAAxI,IAAA,SAAAvF,GAEA,IACAU,EADAqN,EAAAE,aACAjO,SAAAU,QAEAA,IACA1E,QAAA0E,EAAAjL,IAAA,iBAAAiL,EAAAjL,IAAA,gBAIA,EAAAmM,EAAArD,iBAAAmC,GAAA3G,KAAA,SAAAmL,GACA,WAEO,WAAA6I,EAAAG,eACP,EAAAnP,EAAArI,kBAAAqD,KAAA,SAAAmL,GACA,WAGArJ,QAAAC,IAAA,mCAIA,OAAAkE,MAGAmO,EAAA,CACAC,WAAA,CACAC,YAAA,oBACAC,YAAA,OAEAC,MAAA,CAEAF,YAAA,oBACAC,YAAA,OAEAE,OAAA,CACAF,YAAA,QAIAG,EAAA,SAAA7D,GAEA,OADAA,EAAA2D,MAAAG,YACAC,KAAA,SAAA9D,GACA,IAAA+D,EAAA/D,EAAA+D,KACAb,EAAAlD,EAAAkD,UACA,8BAAAa,GAAA,iBAAAb,KAIAc,EAAA,IAAA9C,EAAA+B,WAAA,SAAAC,EAAAC,GAEA,OAAAA,EAAAD,GAAAxI,IAAA,SAAAhR,GAEA,OAAAA,MAGAua,GAAA,EAAA5C,EAAA6C,MAAA,CAAArB,EAAAG,EAAAlB,EAAAE,IACAmC,GAAA,EAAA9C,EAAA6C,MAAA,CAAA9B,EAAAY,EAAAlB,EAAAE,IACAoC,GAAA,EAAA/C,EAAA6C,MAAA,CAAApC,EAAAkC,IAEAK,EAAAnD,EAAA+B,WAAAqB,MAAAV,EAAAQ,EAAAH,GAEAM,EAAArD,EAAA+B,WAAAqB,MAAAV,EAAAQ,EAAAD,GAEA1N,EAAA,IAAA4K,EAAAmD,aAAA,CACAC,KAAAJ,EACA3E,QACA4D,mBAEAlc,EAAAqP,SACA,IAAAqK,EAAA,IAAAO,EAAAmD,aAAA,CACAC,KAAAF,EACA7E,QACA4D,mBAGAlc,EAAA0Z,cAkBA1Z,EAAAyZ,UAhBA,WAEA,IAAAmB,EAAA,IAAAf,EAAAgB,SAAA,CACAC,IAAA,GAAAxN,QAAA,EAAAnG,EAAA4T,aAAA,cAEAuC,GAAA,EAAArD,EAAA6C,MAAA,CAAArB,EAAAG,EAAAlB,EAAAE,IAEAyC,EAAAvD,EAAA+B,WAAAqB,MAAAV,EAAAQ,EAAAM,GAEA,WAAArD,EAAAmD,aAAA,CACAC,OACA/E,QACA4D,oBAKA,IAAAnQ,EAAAsD,EACArP,EAAAO,QAAAwL,8DCnVAwR,EAAAvd,QAAiBK,EAAAiB,EAAuB,kECAxCic,EAAAvd,QAAA,soPCEAF,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAwd,WAAAxd,EAAAyd,YAAAzd,EAAA0d,aAAA1d,EAAA2d,OAAA3d,EAAA4d,OAAA5d,EAAA+a,UAAA/a,EAAA4N,QAAA5N,EAAA6d,OAAA7d,EAAAmZ,SAAAnZ,EAAAmL,YAAAnL,EAAA4K,WAAA5K,EAAA8J,qBAAA9J,EAAAuK,oBAAAvK,EAAAoJ,iBAAApJ,EAAA0I,WAAA1I,EAAA8d,eAAA9d,EAAA+d,MAAA/d,EAAAge,aAAA,EAEA,IAEA7d,EAFAC,GAEAD,EAFkCE,EAAQ,OAG1CF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAIA,IAAA6d,EAAA,SAAAC,GACA,SAAA7d,EAAAG,SAAA0d,EAAA,kBAGAje,EAAAge,UAEA,IAAAD,EAAA,SAAAE,GACA,cAAAD,EAAAC,IAGAje,EAAA+d,QAIA/d,EAAA8d,eAFA,aAqCA9d,EAAA0I,WADA,aAGA1I,EAAAoJ,iBADA,mBAGApJ,EAAAuK,oBADA,sBAGAvK,EAAA8J,qBADA,uBAGA9J,EAAA4K,WADA,aAIA5K,EAAAmL,YAFA,cAGAvB,QAAAC,IAAA,kBAAA2F,OAAA0O,aAAoDpe,OAAA,CAAAqe,SAAA,aAAAC,WAAA,GAAAC,kBAAA,SAAWC,mBAAA9O,OAAA+J,SAAAgF,QAC/D,IAAAC,EAAAhP,OAAA0O,cAA4Cpe,OAAA,CAAAqe,SAAA,aAAAC,WAAA,GAAAC,kBAAA,SAAWC,oBAAA9O,OAAA+J,SAAAgF,OACvDE,EAAAjP,OAAAkP,aAA0C,OAC1CvF,EAAAqF,GAAA,kCACAxe,EAAAmZ,WACA,IAAA0E,EAAAY,GAAA,sCACAze,EAAA6d,SACA,IAAAjQ,EAAAiQ,GAAA,OACA7d,EAAA4N,UACAhE,QAAAC,IAAA,UACAsP,WACAvL,UACA+Q,QAAAd,EACAY,gBACAG,QAAApP,OAAAoP,WAGA,EAAAxe,EAAAG,SAAAiP,OAAA,yDAMAxP,EAAA+a,UAJA,WACA,OAAAvL,OAAAkP,aAA+B,QAI/B,IAAAd,IAAAG,EAAAvO,QACAxP,EAAA4d,SAGA5d,EAAA2d,QAFsC,EAGtC,IAAAD,EAAA,4BAAAM,EAAAxO,QACAxP,EAAA0d,eACA,IAAAD,EAAA7P,MAAAgE,MAAA,qCAAAhE,GACA5N,EAAAyd,cACA,IAAAD,GAAAC,EACAzd,EAAAwd,oFCvGA,IAEArd,EAPAL,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAA6e,oBAAA7e,EAAA8e,yBAAA,EAUA,IAAAC,IANA5e,EAFoCE,EAAQ,OAG5CF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,IAIAI,QAAAye,cAAA,CACAC,YAAA,EACAC,MAAA,GACAC,QAAA,KAGAL,EAAAC,EAAAK,SACApf,EAAA8e,sBACA,IAAAD,EAAAE,EAAAM,SACArf,EAAA6e,6ECtBA/e,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAsf,aAAAtf,EAAA+X,iBAAA/X,EAAAuf,gBAAAvf,EAAAwf,WAAAxf,EAAAyf,gBAAA,EAEA,IAEAtf,EAFAiC,GAEAjC,EAFyCE,EAAQ,OAGjDF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAIA,SAAAuC,IACA,IAAAJ,EAAAC,EAAA,iOAA6P,OAM7P,OAJAG,EAAA,WACA,OAAAJ,GAGAA,EAGA,SAAAK,IACA,IAAAL,EAAAC,EAAA,uiCAMA,OAJAI,EAAA,WACA,OAAAL,GAGAA,EAGA,SAAAC,EAAAK,EAAAC,GAKA,OAJAA,IACAA,EAAAD,EAAAE,MAAA,IAGAhD,OAAAiD,OAAAjD,OAAAkD,iBAAAJ,EAAA,CACAC,IAAA,CACA5C,MAAAH,OAAAiD,OAAAF,OASA7C,EAAAyf,WAJA,SAAAC,GACA,OAAAF,EAAAE,IAAAH,EAAAG,IAKA,IAAAF,EAAA,SAAAE,GACA,OAAA3V,QAAA2V,MAAAC,YAAAD,EAAAE,eAAAF,EAAAG,KAAAH,EAAAI,KAAAJ,EAAAG,IAAA,GAAAH,EAAAI,IAAA,GAGA9f,EAAAwf,aAEA,IAAAD,EAAA,SAAAG,GACA,OAAA3V,QAAA2V,MAAAK,UAGA/f,EAAAuf,kBACA,IAAAxH,GAAA,EAAA3V,EAAA7B,SAAAoC,KACA3C,EAAA+X,mBACA,IAAAuH,GAAA,EAAAld,EAAA7B,SAAAmC,IAAAqV,GACA/X,EAAAsf,iDCjEAxf,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAO,QAAAP,EAAAggB,YAAA,EAIA,IAAAA,EAAA,CACAC,QAAA,UACAC,UAAA,UACAC,OAAA,UACAC,WAAA,UACAC,UAAA,UACAC,MAAA,OAEAC,OAAA,UAEAC,QAAA,UACAC,KAAA,UACAC,SAAA,UACAC,SAAA,OACAC,QAAA,OACAC,UAAA,OACAC,QAAA,UACAC,SAAA,OACAC,UAAA,OACAC,QAAA,OACAC,SAAA,UACAC,QAAA,OACAC,YAAA,QAEAphB,EAAAggB,SACA,IAAAjU,EAAAiU,EACAhgB,EAAAO,QAAAwL,mCCjCAjM,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAqhB,iBAAArhB,EAAAshB,qBAAAthB,EAAAuhB,mBAAAvhB,EAAAwhB,sBAAAxhB,EAAAyhB,mBAAAzhB,EAAA0hB,kBAAA1hB,EAAA2hB,oBAAA3hB,EAAA4hB,aAAA5hB,EAAA6hB,qBAAA7hB,EAAAqY,SAAArY,EAAA8hB,uBAAA,GA+BA3hB,EA7BkCE,EAAQ,OA8B1CF,EAAAG,WA9BA,IA6BAH,EA3BA4hB,EAEA,SAAA5hB,GACA,GAAAA,KAAAG,WACA,OAAAH,EAEA,IAAAuD,EAAA,GAEA,SAAAvD,EACA,QAAAwD,KAAAxD,EACA,GAAAL,OAAA8D,UAAAC,eAAAC,KAAA3D,EAAAwD,GAAA,CACA,IAAAI,EAAAjE,OAAAC,gBAAAD,OAAAkE,yBAAAlE,OAAAkE,yBAAA7D,EAAAwD,GAAA,GAEAI,EAAAP,KAAAO,EAAAE,IACAnE,OAAAC,eAAA2D,EAAAC,EAAAI,GAEAL,EAAAC,GAAAxD,EAAAwD,GAOA,OADAD,EAAAnD,QAAAJ,EACAuD,EAvBAQ,CAAkC7D,EAAQ,MAkC1C0hB,EAAAC,UAAAD,EAAAE,OAAA,yBAAAC,EAAAC,GAEA,OAAAvd,KAAAwd,KAAA,oCAAAniB,EAAAoiB,GAEA,GAAAzd,KAAA0d,OAAAriB,GAEA,OADAA,EAAAwV,QAAA,8CAIA,IAGA,OAFAxV,EAAAwV,QAAA,8CAGK,MAAA9T,GACLiI,QAAAhC,MAAA,4BAAAjG,EAAA1B,GAGA,OAAAA,MAGA8hB,EAAAC,UAAAD,EAAAE,OAAA,iBAAAC,EAAAC,GAEA,OAAAvd,KAAAwd,KAAA,oCAAAniB,GAEA,OAAAA,EAAAmiB,KAAA,uCAeA,IAAAG,EAAAR,EAAAE,SAAAnN,OAAA0N,SAAA,aAEA9O,GADAqO,EAAAE,SAAAQ,IAAA,8CAAAD,SAAA,qBACAT,EAAAE,SAAAnN,OAAA0N,SAAA,4BACA7O,EAAAoO,EAAAE,SAAAnN,OAAA0N,SAAA,0BAKA3K,GAHAkK,EAAAE,SAAAnN,OAAA0N,SAAA,sBAGAT,EAAAE,SAAAnN,OAAA+C,MAAA,qBAAA2K,SAAA,uBAOAE,GANAX,EAAAE,SAAAO,SAAA,6BACAT,EAAAE,SAAAO,SAAA,2BACAT,EAAAE,SAAAO,SAAA,uBACAT,EAAAE,SAAAO,SAAA,kCACAT,EAAAE,SAAAO,SAAA,iCACAT,EAAAE,SAAAO,SAAA,mCACAT,EAAAE,SAAAnN,OAAA0N,SAAA,gCACAG,EAAAZ,EAAAE,SAAAnN,OAAA0N,SAAA,qBACAtD,EAAA6C,EAAAE,SAAAnN,OAAA0N,SAAA,sBACAI,EAAAb,EAAAE,SAAAnN,OAAA0N,SAAA,oBAOAV,GANAC,EAAAnN,SAAAiO,MAAA,CACAH,UACAC,OACAG,OAAA5D,EACA0D,WAEAb,EAAAE,SAAAnN,OAAAiO,MAAA,CAAAhB,EAAAiB,IAAA,qCAAAR,SAAA,mCACAxiB,EAAA8hB,oBACA,IAAAzJ,EAAA0J,EAAAE,SAAAnN,OAAA0N,SAAA,wBACAxiB,EAAAqY,WACA,IAAAwJ,EAAAE,EAAAE,SAAAnN,OAAAiO,MAAA,CAAAhB,EAAAiB,IAAA,2CAAAR,SAAA,qCACAxiB,EAAA6hB,uBACA,IACAoB,EAAAlB,EAAAE,SAAAO,SADA,4DAEAU,EAAAnB,EAAAoB,SAAAC,UAAA,0BAAAC,SAAA,mCACAC,EAAAJ,EAAAV,SAAA,oBACAe,EAAAL,EAAAV,SAAA,uBACAgB,EAAAN,EAAAV,SAAA,uBACAiB,EAAA1B,EAAAoB,SAAAX,SAAA,yBAAAY,UAAA,6BACA9e,EAAAyd,EAAAE,SAAAO,SAAA,qBACAkB,EAAA3B,EAAAE,SAAAO,SAAA,qBACAmB,EAAA5B,EAAAnN,SAAAiO,MAAA,CACAY,MACAnf,SAEAsf,EAAA7B,EAAA8B,QAAAC,GAAAH,GAAAlB,IAAA,+CACA9C,EAAAoC,EAAAE,SAAAnN,OACA0N,SAAA,+BACAuB,EAAAhC,EAAAiC,UAAAC,WAAAzB,SAAA,yBAEA0B,EAAAnC,EAAAE,SAAAnN,OAAA0N,WAAA2B,QADA,0CACA,2CACAC,EAAArC,EAAAE,SAAAnN,OAAAmP,WACAzB,SAAA,4BACAZ,EAAAG,EAAAnN,SAAAiO,MAAA,CACAnP,YACAC,WACAkE,QACAQ,WACAwJ,yBAEA7hB,EAAA4hB,eACA,IAAAD,EAAAI,EAAAnN,SAAAiO,MAAA,CACAxK,WACAwJ,yBAEA7hB,EAAA2hB,sBACA,IAAAD,EAAAK,EAAAnN,SAAAiO,MAAA,CACAI,SACAK,MACAC,WACAC,aAEAxjB,EAAA0hB,oBACA,IAAAD,EAAAM,EAAAnN,SAAAiO,MAAA,CACAlD,aACAoE,cACAM,aAAAtC,EAAAoB,SAAAmB,KAAA,cACAC,GAAA,SAAAC,GACA,mBAAAA,GAEA1c,KAAAia,EAAAoB,SAAAc,WAAAQ,cACAC,UAAAxB,EAAAV,SAAA,0BAKAxiB,EAAAyhB,qBACA,IAAAD,EAAAO,EAAAnN,SAAAiO,MAAA,CACAjD,cAAAwE,IAEApkB,EAAAwhB,wBACA,IAAAD,EAAAQ,EAAAnN,SAAAiO,MAAA,CACA9C,SAAAqE,EACAO,cAAAP,EACAQ,YAAAR,EACAS,UAAAT,IAEApkB,EAAAuhB,qBACA,IAAAD,EAAAS,EAAAnN,SAAAiO,MAAA,CACAiC,GAAA/C,EAAAnN,SAAAiO,MAAA,CACAzN,IAAAmN,EAAA4B,QAAA,cAAqC,qCACrCD,OACAa,IAAAxC,EAAA4B,QAAA,YAAmC,2BACnCa,IAAAzC,MAIAviB,EAAAshB,uBACA,IAAAD,EAAAU,EAAAnN,SAAAiO,MAAA,CACAa,OACAuB,YAAA/B,EACAU,gBAyEA5jB,EAAAqhB,qDCvQAvhB,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAklB,MAAAllB,EAAAmlB,aAAAnlB,EAAAolB,gBAAAplB,EAAAqlB,mBAAA,EAQArlB,EAAAqlB,cAPA,CACA3C,QAAA,GACA4C,QAAA,GACA3C,KAAA,GACAG,OAAA,GACAF,OAAA,IAUA5iB,EAAAolB,gBAPA,CACA1R,UAAA,GACAC,SAAA,GACAkE,MAAA,GACAQ,SAAA,GACAwJ,qBAAA,IAcA7hB,EAAAmlB,aAXA,CACAzR,UAAA,GACAC,SAAA,GACAkE,MAAA,GACAoL,OAAA,GACAsC,SAAA,GACAjC,IAAA,GACAC,SAAA,GACAC,SAAA,GACAgC,UAAA,GAUAxlB,EAAAklB,MAPA,CACAvF,WAAA,GACAoE,YAAA,GACAM,aAAA,GACAoB,WAAA,GACAD,UAAA,oCCrCA1lB,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAA0lB,iBAAA1lB,EAAA2lB,mBAAA3lB,EAAA4lB,YAAA5lB,EAAA6lB,kBAAA7lB,EAAA8lB,aAAA9lB,EAAA+lB,cAAA/lB,EAAAgmB,cAAAhmB,EAAAimB,wBAAA,EAEA,IAEA9lB,EAFAiC,GAEAjC,EAFyCE,EAAQ,OAGjDF,EAAAG,WAAAH,EAAA,CACAI,QAAAJ,GAIA,SAAAsX,IACA,IAAAnV,EAAAC,EAAA,iiBAMA,OAJAkV,EAAA,WACA,OAAAnV,GAGAA,EAGA,SAAAoV,IACA,IAAApV,EAAAC,EAAA,gTAA4U,OAM5U,OAJAmV,EAAA,WACA,OAAApV,GAGAA,EAGA,SAAAwJ,IACA,IAAAxJ,EAAAC,EAAA,6NAAyP,OAMzP,OAJAuJ,EAAA,WACA,OAAAxJ,GAGAA,EAGA,SAAAD,IACA,IAAAC,EAAAC,EAAA,qOAAiQ,OAMjQ,OAJAF,EAAA,WACA,OAAAC,GAGAA,EAGA,SAAAE,IACA,IAAAF,EAAAC,EAAA,4WAAwY,OAMxY,OAJAC,EAAA,WACA,OAAAF,GAGAA,EAGA,SAAAG,IACA,IAAAH,EAAAC,EAAA,ypBAMA,OAJAE,EAAA,WACA,OAAAH,GAGAA,EAGA,SAAAI,IACA,IAAAJ,EAAAC,EAAA,gKAA4L,OAM5L,OAJAG,EAAA,WACA,OAAAJ,GAGAA,EAGA,SAAAK,IACA,IAAAL,EAAAC,EAAA,otDAMA,OAJAI,EAAA,WACA,OAAAL,GAGAA,EAGA,SAAAC,EAAAK,EAAAC,GAKA,OAJAA,IACAA,EAAAD,EAAAE,MAAA,IAGAhD,OAAAiD,OAAAjD,OAAAkD,iBAAAJ,EAAA,CACAC,IAAA,CACA5C,MAAAH,OAAAiD,OAAAF,OAKA,IAAAojB,GAAA,EAAA7jB,EAAA7B,SAAAoC,KACA3C,EAAAimB,qBACA,IAAAD,GAAA,EAAA5jB,EAAA7B,SAAAmC,IAAAujB,GACAjmB,EAAAgmB,gBACA,IAAAD,GAAA,EAAA3jB,EAAA7B,SAAAkC,KACAzC,EAAA+lB,gBACA,IAAAD,GAAA,EAAA1jB,EAAA7B,SAAAiC,IAAAyjB,GACAjmB,EAAA8lB,eACA,IAAAD,GAAA,EAAAzjB,EAAA7B,SAAA8B,IAAA4jB,GACAjmB,EAAA6lB,oBACA,IAAAD,GAAA,EAAAxjB,EAAA7B,SAAAuL,IAAAma,GACAjmB,EAAA4lB,cACA,IAAAD,GAAA,EAAAvjB,EAAA7B,SAAAmX,IAAAuO,GACAjmB,EAAA2lB,qBACA,IAAAD,GAAA,EAAAtjB,EAAA7B,SAAAkX,KACAzX,EAAA0lB,qDCxHA5lB,OAAAC,eAAAC,EAAA,cACAC,OAAA,IAEAD,EAAAO,QAAAP,EAAAkmB,eAAAlmB,EAAAmmB,YAAAnmB,EAAAomB,cAAA,EACA,IAAAA,EAAA,EACA5U,KAAA,UACA6U,aAAA,MACC,CACD7U,KAAA,SACA6U,aAAA,MACC,CACD7U,KAAA,iBACA6U,aAAA,MACC,CACD7U,KAAA,UACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,aACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,cACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,uBACA6U,aAAA,MACC,CACD7U,KAAA,iCACA6U,aAAA,MACC,CACD7U,KAAA,UACA6U,aAAA,MACC,CACD7U,KAAA,UACA6U,aAAA,MACC,CACD7U,KAAA,OACA6U,aAAA,MACC,CACD7U,KAAA,SACA6U,aAAA,MACC,CACD7U,KAAA,QACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,UACA6U,aAAA,MACC,CACD7U,KAAA,OACA6U,aAAA,MACC,CACD7U,KAAA,SACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,YACA6U,aAAA,MACC,CACD7U,KAAA,QACA6U,aAAA,MACC,CACD7U,KAAA,mBACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,gBACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,YACA6U,aAAA,MACC,CACD7U,KAAA,cACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,UACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,SACA6U,aAAA,MACC,CACD7U,KAAA,gBACA6U,aAAA,MACC,CACD7U,KAAA,aACA6U,aAAA,MACC,CACD7U,KAAA,aACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,iBACA6U,aAAA,MACC,CACD7U,KAAA,eACA6U,aAAA,MACC,CACD7U,KAAA,2BACA6U,aAAA,MACC,CACD7U,KAAA,OACA6U,aAAA,MACC,CACD7U,KAAA,WACA6U,aAAA,MACC,CACD7U,KAAA,SACA6U,aAAA,MACC,CACD7U,KAAA,QACA6U,aAAA,MACC,CACD7U,KAAA,eACA6U,aAAA,MACC,CACD7U,KAAA,cAC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","file":"static/js/main.57dfb298.chunk.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.transform = void 0;\n\nvar _get = _interopRequireDefault(require(\"lodash/get\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar transform = function transform(errors) {\n // console.log('transforming errors', errors)\n var transformed = {};\n var message = (0, _get.default)(errors, '0.message', '');\n var problems = (0, _get.default)(errors, '0.problems');\n\n if (problems) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = problems[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value; // console.log('p', p, p.path)\n\n var path = p.path.join('.');\n var m = (0, _get.default)(transformed, path, '');\n m += p.explanation + '. ';\n transformed[path] = m;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n var fields = (0, _get.default)(errors, '0.fields'); // console.log('fields', fields)\n\n if (fields) {\n for (var f in fields) {\n // console.log('field', f, fields[f])\n if (fields[f] && fields[f].join) {\n message += fields[f].join('. ');\n }\n\n transformed[f] = message;\n }\n } else {\n if (!message) {\n message = (0, _get.default)(errors, '0');\n }\n }\n }\n\n if (message) {\n transformed['base'] = {\n message: message\n };\n }\n\n return transformed;\n};\n\nexports.transform = transform;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VALIDATE_RECEIPT = exports.CANCEL_ACCOUNT = exports.SAVE_PAYMENT_DETAILS = exports.GET_PAYMENT_DETAILS = exports.START_CHECKOUT = void 0;\n\nvar _graphqlTag = _interopRequireDefault(require(\"graphql-tag\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _templateObject5() {\n var data = _taggedTemplateLiteral([\"\\n mutation validateReceipt($userId: ID!, $receiptData: String!) {\\n validateReceipt(userId: $userId, receiptData: $receiptData) {\\n valid\\n }\\n }\\n \"]);\n\n _templateObject5 = function _templateObject5() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject4() {\n var data = _taggedTemplateLiteral([\"\\n mutation cancelAccount {\\n cancelAccount {\\n success\\n }\\n }\\n\"]);\n\n _templateObject4 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n var data = _taggedTemplateLiteral([\"\\n mutation savePayment($attributes: PaymentInput!) {\\n savePayment(attributes: $attributes) {\\n success\\n }\\n }\\n\"]);\n\n _templateObject3 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n query getPaymentDetails {\\n paymentDetails {\\n firstName\\n lastName\\n isActive\\n isCc\\n isIap\\n ccLast4\\n ccDesc\\n ccExpDate\\n recurringTxnId\\n \\n monthlyPrice\\n iapStore\\n iapOriginalTxnId\\n iapExpiresAtMs\\n }\\n }\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n query startCheckout {\\n startCheckout {\\n success\\n token\\n validUntil\\n apiUrl\\n userIp\\n price\\n }\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nvar START_CHECKOUT = (0, _graphqlTag.default)(_templateObject());\nexports.START_CHECKOUT = START_CHECKOUT;\nvar GET_PAYMENT_DETAILS = (0, _graphqlTag.default)(_templateObject2());\nexports.GET_PAYMENT_DETAILS = GET_PAYMENT_DETAILS;\nvar SAVE_PAYMENT_DETAILS = (0, _graphqlTag.default)(_templateObject3());\nexports.SAVE_PAYMENT_DETAILS = SAVE_PAYMENT_DETAILS;\nvar CANCEL_ACCOUNT = (0, _graphqlTag.default)(_templateObject4());\nexports.CANCEL_ACCOUNT = CANCEL_ACCOUNT;\nvar VALIDATE_RECEIPT = (0, _graphqlTag.default)(_templateObject5());\nexports.VALIDATE_RECEIPT = VALIDATE_RECEIPT;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n DAYS_OF_WEEK: true,\n WEEK_DAYS: true,\n MONTH_NAMES: true,\n UNITS: true,\n defaults: true\n};\nObject.defineProperty(exports, \"defaults\", {\n enumerable: true,\n get: function get() {\n return _defaults.default;\n }\n});\nexports.UNITS = exports.MONTH_NAMES = exports.WEEK_DAYS = exports.DAYS_OF_WEEK = void 0;\n\nvar _defaults = _interopRequireWildcard(require(\"./defaults\"));\n\nObject.keys(_defaults).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _defaults[key];\n }\n });\n});\n\nvar _us_states = require(\"./us_states\");\n\nObject.keys(_us_states).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _us_states[key];\n }\n });\n});\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nvar DAYS_OF_WEEK = ['MON', 'TUE', 'WED', 'THU', 'FRI'];\nexports.DAYS_OF_WEEK = DAYS_OF_WEEK;\nvar WEEK_DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];\nexports.WEEK_DAYS = WEEK_DAYS;\nvar MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\nexports.MONTH_NAMES = MONTH_NAMES;\nvar UNITS = [{\n unit: 'g',\n label: 'g'\n}, {\n unit: 'kg',\n label: 'kg'\n}, {\n unit: 'oz',\n label: 'oz'\n}, {\n unit: 'lb',\n label: 'lb'\n}, {\n unit: 'tbsp',\n label: 'tbsp'\n}, {\n unit: 'tsp',\n label: 'tsp'\n}];\nexports.UNITS = UNITS;","\"use strict\";\n\nvar _regeneratorRuntime = require(\"/Users/greg/code/balance-on-demand/webapp/client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clearAuthToken = clearAuthToken;\nexports.setAuthToken = setAuthToken;\nexports.getAuthToken = getAuthToken;\nexports.clearAdminAuthToken = clearAdminAuthToken;\nexports.setAdminAuthToken = setAdminAuthToken;\nexports.getAdminAuthToken = getAdminAuthToken;\nexports.setImpersonationActive = setImpersonationActive;\nexports.isImpersonationActive = isImpersonationActive;\nexports.setImpersonationToken = setImpersonationToken;\nexports.getImpersonationToken = getImpersonationToken;\nexports.clearCsrfToken = clearCsrfToken;\nexports.setCsrfToken = setCsrfToken;\nexports.getCsrfToken = getCsrfToken;\nexports.clearSessionKey = clearSessionKey;\nexports.setSessionKey = setSessionKey;\nexports.getSessionKey = getSessionKey;\n\nvar _localforage = _interopRequireDefault(require(\"localforage\"));\n\nvar _constants = require(\"../config/constants\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction clearAuthToken() {\n return _clearAuthToken.apply(this, arguments);\n}\n\nfunction _clearAuthToken() {\n _clearAuthToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", _localforage.default.setItem(_constants.AUTH_TOKEN, null));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n return _clearAuthToken.apply(this, arguments);\n}\n\nfunction setAuthToken(_x) {\n return _setAuthToken.apply(this, arguments);\n}\n\nfunction _setAuthToken() {\n _setAuthToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee2(token) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", _localforage.default.setItem(_constants.AUTH_TOKEN, token));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n return _setAuthToken.apply(this, arguments);\n}\n\nfunction getAuthToken() {\n return _getAuthToken.apply(this, arguments);\n}\n\nfunction _getAuthToken() {\n _getAuthToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee3() {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", _localforage.default.getItem(_constants.AUTH_TOKEN));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n return _getAuthToken.apply(this, arguments);\n}\n\nfunction clearAdminAuthToken() {\n return _clearAdminAuthToken.apply(this, arguments);\n}\n\nfunction _clearAdminAuthToken() {\n _clearAdminAuthToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee4() {\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt(\"return\", _localforage.default.setItem(_constants.ADMIN_AUTH_TOKEN, null));\n\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n return _clearAdminAuthToken.apply(this, arguments);\n}\n\nfunction setAdminAuthToken(_x2) {\n return _setAdminAuthToken.apply(this, arguments);\n}\n\nfunction _setAdminAuthToken() {\n _setAdminAuthToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee5(token) {\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n return _context5.abrupt(\"return\", _localforage.default.setItem(_constants.ADMIN_AUTH_TOKEN, token));\n\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n return _setAdminAuthToken.apply(this, arguments);\n}\n\nfunction getAdminAuthToken() {\n return _getAdminAuthToken.apply(this, arguments);\n}\n\nfunction _getAdminAuthToken() {\n _getAdminAuthToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee6() {\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n return _context6.abrupt(\"return\", _localforage.default.getItem(_constants.ADMIN_AUTH_TOKEN));\n\n case 1:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n return _getAdminAuthToken.apply(this, arguments);\n}\n\nfunction setImpersonationActive(_x3) {\n return _setImpersonationActive.apply(this, arguments);\n}\n\nfunction _setImpersonationActive() {\n _setImpersonationActive = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee7(isActive) {\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n console.log('setImpersonationActive', isActive);\n return _context7.abrupt(\"return\", _localforage.default.setItem(_constants.IMPERSONATION_ACTIVE, Boolean(isActive)));\n\n case 2:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n return _setImpersonationActive.apply(this, arguments);\n}\n\nfunction isImpersonationActive() {\n return _isImpersonationActive.apply(this, arguments);\n}\n\nfunction _isImpersonationActive() {\n _isImpersonationActive = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee8() {\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return _localforage.default.getItem(_constants.IMPERSONATION_ACTIVE);\n\n case 2:\n _context8.t0 = _context8.sent;\n return _context8.abrupt(\"return\", _context8.t0 === true);\n\n case 4:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n return _isImpersonationActive.apply(this, arguments);\n}\n\nfunction setImpersonationToken(_x4) {\n return _setImpersonationToken.apply(this, arguments);\n}\n\nfunction _setImpersonationToken() {\n _setImpersonationToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee9(token) {\n var result;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n console.log('setImpersonationToken', token);\n _context9.next = 3;\n return _localforage.default.setItem(_constants.IMPERSONATION_TOKEN, token);\n\n case 3:\n result = _context9.sent;\n console.log('result', result);\n return _context9.abrupt(\"return\", result);\n\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n return _setImpersonationToken.apply(this, arguments);\n}\n\nfunction getImpersonationToken() {\n return _getImpersonationToken.apply(this, arguments);\n}\n\nfunction _getImpersonationToken() {\n _getImpersonationToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee10() {\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n return _context10.abrupt(\"return\", _localforage.default.getItem(_constants.IMPERSONATION_TOKEN));\n\n case 1:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n return _getImpersonationToken.apply(this, arguments);\n}\n\nfunction clearCsrfToken() {\n return _clearCsrfToken.apply(this, arguments);\n}\n\nfunction _clearCsrfToken() {\n _clearCsrfToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee11() {\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt(\"return\", _localforage.default.setItem(_constants.CSRF_TOKEN, null));\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n return _clearCsrfToken.apply(this, arguments);\n}\n\nfunction setCsrfToken(_x5) {\n return _setCsrfToken.apply(this, arguments);\n}\n\nfunction _setCsrfToken() {\n _setCsrfToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee12(token) {\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n return _context12.abrupt(\"return\", _localforage.default.setItem(_constants.CSRF_TOKEN, token));\n\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n return _setCsrfToken.apply(this, arguments);\n}\n\nfunction getCsrfToken() {\n return _getCsrfToken.apply(this, arguments);\n}\n\nfunction _getCsrfToken() {\n _getCsrfToken = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee13() {\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n return _context13.abrupt(\"return\", _localforage.default.getItem(_constants.CSRF_TOKEN));\n\n case 1:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n return _getCsrfToken.apply(this, arguments);\n}\n\nfunction clearSessionKey() {\n return _clearSessionKey.apply(this, arguments);\n}\n\nfunction _clearSessionKey() {\n _clearSessionKey = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee14() {\n return _regeneratorRuntime.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n return _context14.abrupt(\"return\", _localforage.default.setItem(_constants.SESSION_KEY, null));\n\n case 1:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n return _clearSessionKey.apply(this, arguments);\n}\n\nfunction setSessionKey(_x6) {\n return _setSessionKey.apply(this, arguments);\n}\n\nfunction _setSessionKey() {\n _setSessionKey = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee15(token) {\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n return _context15.abrupt(\"return\", _localforage.default.setItem(_constants.SESSION_KEY, token));\n\n case 1:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n return _setSessionKey.apply(this, arguments);\n}\n\nfunction getSessionKey() {\n return _getSessionKey.apply(this, arguments);\n}\n\nfunction _getSessionKey() {\n _getSessionKey = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee16() {\n return _regeneratorRuntime.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n return _context16.abrupt(\"return\", _localforage.default.getItem(_constants.SESSION_KEY));\n\n case 1:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n return _getSessionKey.apply(this, arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.DELETE_FOOD = exports.UPDATE_FOOD = exports.CREATE_FOOD = exports.GET_FOOD = exports.GET_FOODS = exports.SEARCH_FOOD_NAMES = void 0;\n\nvar _graphqlTag = _interopRequireDefault(require(\"graphql-tag\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _templateObject6() {\n var data = _taggedTemplateLiteral([\"\\n mutation deleteFood($id: ID!) {\\n data: deleteFood(id: $id) {\\n id\\n }\\n }\\n\"]);\n\n _templateObject6 = function _templateObject6() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject5() {\n var data = _taggedTemplateLiteral([\"\\n mutation updateFood($id: ID!, $name: String!, $categoryId: ID, $category: FoodCategoryInput,\\n $carbsG: Decimal, $fatG: Decimal, $kcalG: Decimal, $proteinG: Decimal,\\n $fiberG: Decimal, $sugarG: Decimal, $sodiumG: Decimal,\\n $brand: String, $apiId: String, $apiRef: String, $apiCat: String,\\n $seasoning: Boolean, $fixed: Boolean,\\n $fixedQty: Decimal, $fixedUnit: String,\\n $pkgG: Decimal, $pkgOz: Decimal, $pkgQty: Int, $pkgSize: String, $pkgUnit: String\\n ) {\\n data: updateFood(id: $id, name: $name, categoryId: $categoryId, category: $category,\\n carbsG: $carbsG, fatG: $fatG, kcalG: $kcalG, proteinG: $proteinG,\\n fiberG: $fiberG, sugarG: $sugarG, sodiumG: $sodiumG,\\n brand: $brand, apiId: $apiId, apiRef: $apiRef, apiCat: $apiCat,\\n seasoning: $seasoning, fixed: $fixed,\\n fixedQty: $fixedQty, fixedUnit: $fixedUnit,\\n pkgG: $pkgG, pkgOz: $pkgOz, pkgQty: $pkgQty, pkgSize: $pkgSize, pkgUnit: $pkgUnit\\n ) {\\n id\\n name\\n category { id name }\\n type\\n seasoning\\n kcalG\\n proteinG\\n fatG\\n carbsG\\n fiberG\\n sugarG\\n sodiumG\\n brand\\n fixed\\n fixedQty\\n fixedUnit\\n apiId\\n apiCat\\n apiRef\\n __typename\\n }\\n }\\n\"]);\n\n _templateObject5 = function _templateObject5() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject4() {\n var data = _taggedTemplateLiteral([\"\\n mutation createFood($name: String!, $categoryId: ID, $category: FoodCategoryInput,\\n $carbsG: Decimal, $fatG: Decimal, $kcalG: Decimal, $proteinG: Decimal,\\n $fiberG: Decimal, $sugarG: Decimal, $sodiumG: Decimal,\\n $brand: String, $apiId: String, $apiRef: String, $apiCat: String,\\n $addSnack: Boolean, $seasoning: Boolean, $fixed: Boolean,\\n $fixedQty: Decimal, $fixedUnit: String,\\n $snackQty: Decimal, $snackUnit: String, $snackPublic: Boolean,\\n $pkgG: Decimal, $pkgOz: Decimal, $pkgQty: Int, $pkgSize: String, $pkgUnit: String\\n ) {\\n data: createFood(name: $name, categoryId: $categoryId, category: $category,\\n carbsG: $carbsG, fatG: $fatG, kcalG: $kcalG, proteinG: $proteinG,\\n fiberG: $fiberG, sugarG: $sugarG, sodiumG: $sodiumG,\\n brand: $brand, apiId: $apiId, apiRef: $apiRef, apiCat: $apiCat,\\n addSnack: $addSnack, seasoning: $seasoning, fixed: $fixed,\\n fixedQty: $fixedQty, fixedUnit: $fixedUnit,\\n snackQty: $snackQty, snackUnit: $snackUnit, snackPublic: $snackPublic,\\n pkgG: $pkgG, pkgOz: $pkgOz, pkgQty: $pkgQty, pkgSize: $pkgSize, pkgUnit: $pkgUnit\\n ) {\\n id\\n name\\n category { id name }\\n type\\n seasoning\\n kcalG\\n proteinG\\n fatG\\n carbsG\\n fiberG\\n sugarG\\n sodiumG\\n brand\\n fixed\\n fixedQty\\n fixedUnit\\n apiId\\n apiCat\\n apiRef\\n __typename\\n }\\n }\\n\"]);\n\n _templateObject4 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n var data = _taggedTemplateLiteral([\"\\n query Food($id: ID!) {\\n data: Food(id: $id) {\\n id\\n name\\n categoryId\\n category { id name }\\n type\\n seasoning\\n kcalG\\n proteinG\\n fatG\\n carbsG\\n sodiumG\\n fiberG\\n sugarG\\n brand\\n fixed\\n fixedQty\\n fixedUnit\\n apiId\\n apiCat\\n apiRef\\n isPackaged\\n pkgG\\n pkgQty\\n pkgSize\\n pkgUnit\\n dietLabels {\\n name\\n }\\n }\\n }\"]);\n\n _templateObject3 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n query allFoods($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: FoodFilter) {\\n items: allFoods(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\\n id\\n name\\n brand\\n categoryId\\n category { id name }\\n kcalG\\n proteinG\\n fatG\\n carbsG\\n sodiumG\\n fiberG\\n sugarG\\n brand\\n apiId\\n apiCat\\n apiRef\\n fixed\\n fixedQty\\n fixedUnit\\n __typename\\n }\\n total: _allFoodsMeta(page: $page, perPage: $perPage, filter: $filter) {\\n count\\n __typename\\n }\\n }\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n query allFoods($filter: FoodFilter) {\\n items: allFoods(page: 0, perPage: -1, sortField: \\\"name\\\", filter: $filter) {\\n id\\n name\\n }\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nvar SEARCH_FOOD_NAMES = (0, _graphqlTag.default)(_templateObject());\nexports.SEARCH_FOOD_NAMES = SEARCH_FOOD_NAMES;\nvar GET_FOODS = (0, _graphqlTag.default)(_templateObject2());\nexports.GET_FOODS = GET_FOODS;\nvar GET_FOOD = (0, _graphqlTag.default)(_templateObject3());\nexports.GET_FOOD = GET_FOOD;\nvar CREATE_FOOD = (0, _graphqlTag.default)(_templateObject4());\nexports.CREATE_FOOD = CREATE_FOOD;\nvar UPDATE_FOOD = (0, _graphqlTag.default)(_templateObject5());\nexports.UPDATE_FOOD = UPDATE_FOOD;\nvar DELETE_FOOD = (0, _graphqlTag.default)(_templateObject6());\nexports.DELETE_FOOD = DELETE_FOOD;\nvar _default = {\n GET_LIST: GET_FOODS,\n GET_ONE: GET_FOOD,\n CREATE: CREATE_FOOD,\n UPDATE: UPDATE_FOOD,\n DELETE: DELETE_FOOD\n};\nexports.default = _default;","\"use strict\";\n\nvar _regeneratorRuntime = require(\"/Users/greg/code/balance-on-demand/webapp/client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultHeaders = defaultHeaders;\nexports.saveAuthHeaders = saveAuthHeaders;\nexports.fetchAsync = fetchAsync;\nexports.get = get;\nexports.post = post;\nexports.remove = remove;\nexports.default = exports.STATUS_CHECK_URL = void 0;\n\nvar _authToken = require(\"./authToken\");\n\nvar _constants = require(\"../config/constants\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n} // export { API_URL } // for convenience\n\n\nvar STATUS_CHECK_URL = \"\".concat(_constants.API_URL, \"/status.html\");\nexports.STATUS_CHECK_URL = STATUS_CHECK_URL;\n\nfunction checkForErrors(_x) {\n return _checkForErrors.apply(this, arguments);\n}\n\nfunction _checkForErrors() {\n _checkForErrors = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee(response) {\n var json, message;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (response.ok) {\n _context.next = 6;\n break;\n }\n\n _context.next = 3;\n return response.json();\n\n case 3:\n json = _context.sent; // console.log('error!', json, response)\n\n message = json && json.errors && json.errors[0] ? json.errors[0] : response.statusText; // console.log('message', message)\n // throw Error({response: json, status: response.status, message})\n\n return _context.abrupt(\"return\", _objectSpread({}, json, {\n response: json,\n status: response.status,\n message: message\n }));\n\n case 6:\n _context.next = 8;\n return response.json();\n\n case 8:\n return _context.abrupt(\"return\", _context.sent);\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n return _checkForErrors.apply(this, arguments);\n}\n\nfunction defaultHeaders(_x2) {\n return _defaultHeaders.apply(this, arguments);\n}\n\nfunction _defaultHeaders() {\n _defaultHeaders = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee2(headersIn) {\n var withCsrfCookie,\n auth,\n csrf,\n headers,\n _args2 = arguments;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n withCsrfCookie = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;\n _context2.next = 3;\n return (0, _authToken.getAuthToken)();\n\n case 3:\n auth = _context2.sent;\n\n if (!withCsrfCookie) {\n _context2.next = 11;\n break;\n }\n\n _context2.next = 7;\n return (0, _authToken.getCsrfToken)();\n\n case 7:\n _context2.t1 = _context2.sent;\n _context2.t0 = {\n 'X-CSRF-Token': _context2.t1\n };\n _context2.next = 12;\n break;\n\n case 11:\n _context2.t0 = {};\n\n case 12:\n csrf = _context2.t0; // const sessionKey = await getSessionKey()\n // console.log('got session key', sessionKey)\n // const sessionKeyHeader = sessionKey ? { 'X-Session-Key': sessionKey } : {}\n\n headers = _objectSpread({}, auth, csrf, {\n // ...sessionKeyHeader,\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-BalanceOnDemand-App': '2.0',\n 'Content-Type': 'application/json'\n }, headersIn); // console.log('headers', headers)\n\n return _context2.abrupt(\"return\", headers);\n\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n return _defaultHeaders.apply(this, arguments);\n}\n\nfunction saveAuthHeaders(_x3) {\n return _saveAuthHeaders.apply(this, arguments);\n}\n\nfunction _saveAuthHeaders() {\n _saveAuthHeaders = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee3(headers) {\n var auth, csrf, impersonationActive, impersonationToken;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n // console.log('saving headers...', headers)\n auth = {\n uid: headers.get('uid'),\n expiry: headers.get('expiry'),\n client: headers.get('client'),\n 'access-token': headers.get('access-token'),\n 'token-type': headers.get('token-type') // console.log('saving auth...', auth)\n\n };\n _context3.next = 3;\n return (0, _authToken.setAuthToken)(auth);\n\n case 3:\n csrf = headers.get('csrf-token'); // console.log('saving csrf', csrf)\n\n if (!csrf) {\n _context3.next = 7;\n break;\n }\n\n _context3.next = 7;\n return (0, _authToken.setCsrfToken)(csrf);\n\n case 7:\n impersonationActive = headers.get('X-Impersonation-Active');\n impersonationToken = headers.get('X-Impersonation-Token'); // console.log('saving impersonation status', impersonationActive, impersonationToken)\n\n if (!(impersonationActive !== null && impersonationToken !== null)) {\n _context3.next = 17;\n break;\n }\n\n _context3.next = 12;\n return (0, _authToken.setImpersonationActive)(impersonationActive);\n\n case 12:\n _context3.next = 14;\n return (0, _authToken.setImpersonationToken)(impersonationToken);\n\n case 14:\n window.dispatchEvent(new Event('impersonation:status-change'));\n _context3.next = 17;\n break;\n\n case 17:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n return _saveAuthHeaders.apply(this, arguments);\n}\n\nfunction fetchAsync(_x4) {\n return _fetchAsync.apply(this, arguments);\n}\n\nfunction _fetchAsync() {\n _fetchAsync = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee4(url) {\n var params,\n headers,\n _len,\n rest,\n _key,\n method,\n headersOut,\n response,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n params = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {};\n headers = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n\n for (_len = _args4.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = _args4[_key];\n }\n\n method = rest.method || 'GET';\n _context4.next = 6;\n return defaultHeaders(headers, method !== 'GET');\n\n case 6:\n headersOut = _context4.sent;\n _context4.next = 9;\n return fetch(url, _objectSpread({\n params: params,\n credentials: 'include',\n body: JSON.stringify(params),\n headersOut: headersOut\n }, rest));\n\n case 9:\n response = _context4.sent;\n _context4.next = 12;\n return saveAuthHeaders(response.headers);\n\n case 12:\n _context4.next = 14;\n return response.json();\n\n case 14:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 15:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n return _fetchAsync.apply(this, arguments);\n}\n\nfunction get(_x5) {\n return _get.apply(this, arguments);\n}\n\nfunction _get() {\n _get = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee5(url) {\n var params,\n headers,\n _len2,\n rest,\n _key2,\n response,\n _args5 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n params = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {};\n headers = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : {};\n\n for (_len2 = _args5.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {\n rest[_key2 - 3] = _args5[_key2];\n }\n\n _context5.next = 5;\n return fetch(url, _objectSpread({\n params: params,\n credentials: 'include',\n body: JSON.stringify(params),\n headers: defaultHeaders(headers)\n }, rest));\n\n case 5:\n response = _context5.sent;\n _context5.next = 8;\n return saveAuthHeaders(response.headers);\n\n case 8:\n _context5.next = 10;\n return response.json();\n\n case 10:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n return _get.apply(this, arguments);\n}\n\nfunction post(_x6) {\n return _post.apply(this, arguments);\n}\n\nfunction _post() {\n _post = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee6(url) {\n var params,\n headersIn,\n headers,\n response,\n _len3,\n rest,\n _key3,\n _response,\n result,\n message,\n _args6 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n params = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {};\n headersIn = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};\n _context6.next = 4;\n return defaultHeaders(headersIn, true);\n\n case 4:\n headers = _context6.sent;\n response = null;\n _context6.prev = 6;\n\n for (_len3 = _args6.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) {\n rest[_key3 - 3] = _args6[_key3];\n }\n\n _context6.next = 10;\n return fetch(url, _objectSpread({\n headers: headers,\n params: params,\n credentials: 'include',\n body: JSON.stringify(params)\n }, rest, {\n method: 'POST'\n }));\n\n case 10:\n _response = _context6.sent;\n _context6.next = 13;\n return checkForErrors(_response);\n\n case 13:\n result = _context6.sent;\n _context6.next = 16;\n return saveAuthHeaders(_response.headers);\n\n case 16:\n return _context6.abrupt(\"return\", result);\n\n case 19:\n _context6.prev = 19;\n _context6.t0 = _context6[\"catch\"](6);\n message = _context6.t0.message || _context6.t0.toString(); //console.log('caught fetch error', err.message, err.toString(), message, err.response)\n // const message = (typeof err === String && /Network request failed/i.test(err)) ? 'Network request failed' : err\n\n return _context6.abrupt(\"return\", {\n success: false,\n errors: [message],\n err: _context6.t0,\n response: _context6.t0.response\n });\n\n case 23:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this, [[6, 19]]);\n }));\n return _post.apply(this, arguments);\n}\n\nfunction remove(_x7) {\n return _remove.apply(this, arguments);\n}\n\nfunction _remove() {\n _remove = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee7(url) {\n var headers,\n _len4,\n rest,\n _key4,\n response,\n _args7 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return defaultHeaders({}, true);\n\n case 2:\n headers = _context7.sent;\n\n for (_len4 = _args7.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = _args7[_key4];\n }\n\n _context7.next = 6;\n return fetch(url, _objectSpread({\n headers: headers\n }, rest, {\n credentials: 'include',\n method: 'DELETE'\n }));\n\n case 6:\n response = _context7.sent;\n _context7.next = 9;\n return saveAuthHeaders(response.headers);\n\n case 9:\n _context7.next = 11;\n return response.json();\n\n case 11:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 12:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n return _remove.apply(this, arguments);\n}\n\nvar _default = fetchAsync;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"colors\", {\n enumerable: true,\n get: function get() {\n return _colors.default;\n }\n});\n\nvar _colors = _interopRequireDefault(require(\"./colors\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCookie = getCookie;\nexports.sortByName = exports.sortByKey = exports.asFloat = exports.fmtPct = exports.asPct = exports.trimAll = exports.formatDate = exports.studentsToLinks = exports.merge = void 0;\n\nvar _data = require(\"../data\");\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n} // const R = require('ramda')\n\n\nfunction getCookie(name) {\n if (window.document && window.document.cookie) {\n var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : null;\n }\n\n return null;\n}\n\nvar defaults = function defaults(k, l, r) {\n // console.log({k, l, r})\n return R.defaultTo('', r);\n};\n\nvar merge = function merge() {\n for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n objects[_key] = arguments[_key];\n } // console.log('merge', objects)\n\n\n return R.mergeDeepWithKey.apply(R, [defaults].concat(objects));\n};\n\nexports.merge = merge;\n\nvar studentsToLinks = function studentsToLinks(students) {\n return students.map(function (_ref) {\n var id = _ref.id,\n fullName = _ref.fullName,\n firstName = _ref.firstName,\n lastName = _ref.lastName,\n s = _objectWithoutProperties(_ref, [\"id\", \"fullName\", \"firstName\", \"lastName\"]);\n\n return {\n studentId: id,\n isLinked: false,\n fullName: fullName,\n firstName: firstName,\n lastName: lastName\n };\n });\n};\n\nexports.studentsToLinks = studentsToLinks;\n\nvar _formatTheDate = function _formatTheDate(date) {\n var withYear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var shortMonth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!date) {\n return '';\n }\n\n var day = date.getDate();\n var monthIndex = date.getMonth();\n var year = date.getFullYear();\n var month = _data.MONTH_NAMES[monthIndex];\n\n if (shortMonth) {\n month = month.substr(0, 3);\n }\n\n return month + ' ' + day + (withYear ? ', ' + year : '');\n};\n\nvar formatDate = function formatDate(date) {\n var withYear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var shortMonth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof date === 'string') {\n var d = new Date(date);\n return _formatTheDate(d, withYear, shortMonth);\n }\n\n return _formatTheDate(date, withYear, shortMonth);\n};\n\nexports.formatDate = formatDate;\n\nvar isPrimitive = function isPrimitive(value) {\n return value !== Object(value);\n};\n\nvar trimAll = function trimAll(object) {\n if (!object || Boolean(object) === object) {\n return object;\n }\n\n var updated = {};\n\n for (var k in object) {\n if (object.hasOwnProperty(k)) {\n var v = object[k];\n updated[k] = v;\n\n if (v) {\n if (isPrimitive(v)) {\n if (v.trim) {\n updated[k] = v.trim();\n } else {\n updated[k] = v;\n }\n } else if (v.trim) {\n updated[k] = v.trim();\n } else if (v.map) {\n updated[k] = v.map(function (el) {\n return el && el.trim ? el.trim() : el;\n });\n } else {\n updated[k] = trimAll(v);\n } // console.log('trimAll', { v, v2: updated[k] })\n\n }\n }\n }\n\n return updated;\n};\n\nexports.trimAll = trimAll;\n\nvar asPct = function asPct(value) {\n var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return (Math.round(value * 100 * (100 ^ scale)) / (100 ^ scale)).toFixed(scale);\n};\n\nexports.asPct = asPct;\n\nvar fmtPct = function fmtPct(num, den) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var value = num >= 0 && den > 0 ? num / den : 0; // console.log('fmtPct', num, den, scale, value)\n\n return \"\".concat(asPct(value, scale), \"%\");\n};\n\nexports.fmtPct = fmtPct;\n\nvar asFloat = function asFloat(value) {\n console.log('asFloat', value, parseFloat(value));\n\n if (value) {\n var floated = parseFloat(value);\n return isNaN(floated) ? '' : value.replace(/[^\\d\\.]/g, '');\n }\n\n return '';\n};\n\nexports.asFloat = asFloat;\n\nvar sortByKey = function sortByKey(key) {\n return function (a, b) {\n var al = a[key].toLowerCase();\n var bl = b[key].toLowerCase();\n var comparison = 0;\n\n if (al > bl) {\n comparison = 1;\n } else if (al < bl) {\n comparison = -1;\n }\n\n return comparison;\n };\n};\n\nexports.sortByKey = sortByKey;\nvar sortByName = sortByKey('name'); // (a, b) => {\n// sortByKey\n// const al = a.name.toLowerCase()\n// const bl = b.name.toLowerCase()\n// let comparison = 0\n// if (al > bl) {\n// comparison = 1\n// } else if (al < bl) {\n// comparison = -1\n// }\n// return comparison\n// }\n\nexports.sortByName = sortByName;","\"use strict\";\n\nvar _regeneratorRuntime = require(\"/Users/greg/code/balance-on-demand/webapp/client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.updateCurrentUser = _updateCurrentUser;\nexports.default = exports.stopImpersonation = exports.startImpersonation = exports.resolvers = exports.SAVE_DEVICE = exports.UPDATE_USER = exports.GET_CURRENT_USER = exports.USER_FRAGMENT = exports.GET_SYSTEM_CONFIG = exports.GET_TIME_ZONES = exports.GET_FLASH = exports.CONFIRM_ACCOUNT = exports.RESET_PASSWORD = exports.RESET_PASSWORD_REQUEST = exports.LOGOUT = exports.SIGNUP = exports.LOGIN = exports.defaultState = void 0;\n\nvar _graphqlTag = _interopRequireDefault(require(\"graphql-tag\"));\n\nvar _fetchAsync = require(\"./fetchAsync\");\n\nvar _authToken = require(\"./authToken\");\n\nvar _profile = require(\"./profile\");\n\nvar _constants = require(\"../config/constants\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _templateObject13() {\n var data = _taggedTemplateLiteral([\"\\n mutation saveDevice($attributes: DeviceInput!) {\\n saveDevice(attributes: $attributes) {\\n success\\n }\\n }\\n\"]);\n\n _templateObject13 = function _templateObject13() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject12() {\n var data = _taggedTemplateLiteral([\"\\n mutation updateUser($attributes: UserInput!) {\\n updateUser(attributes: $attributes) {\\n success\\n currentUser {\\n ...UserDetail\\n }\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject12 = function _templateObject12() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject11() {\n var data = _taggedTemplateLiteral([\"\\n query getCurrentUser {\\n currentUser {\\n ...UserDetail\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject11 = function _templateObject11() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject10() {\n var data = _taggedTemplateLiteral([\"\\n fragment UserDetail on CurrentUser {\\n __typename\\n id\\n firstName\\n lastName\\n email\\n timezone\\n nickname\\n loggedIn\\n status\\n hasPlanAccess\\n trialDaysLeft\\n expiresAt\\n role\\n onboarded\\n profile {\\n ...ProfileDetail\\n }\\n flash {\\n alert\\n notice\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject10 = function _templateObject10() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject9() {\n var data = _taggedTemplateLiteral([\"\\n query {\\n systemConfig {\\n timeZones {\\n name\\n tzname\\n }\\n dietaryRestrictions {\\n key\\n label\\n }\\n notificationPreferences {\\n key\\n label\\n }\\n }\\n }\\n\"]);\n\n _templateObject9 = function _templateObject9() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject8() {\n var data = _taggedTemplateLiteral([\"\\n query {\\n systemConfig {\\n timeZones {\\n name\\n tzname\\n }\\n }\\n }\\n\"]);\n\n _templateObject8 = function _templateObject8() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject7() {\n var data = _taggedTemplateLiteral([\"\\n query flash {\\n flash {\\n notice\\n }\\n }\\n\"]);\n\n _templateObject7 = function _templateObject7() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject6() {\n var data = _taggedTemplateLiteral([\"\\n mutation confirmAccount($confirmationToken: String!) {\\n confirmAccount(confirmationToken: $confirmationToken) {\\n success\\n message\\n error {\\n message\\n }\\n }\\n }\\n\"]);\n\n _templateObject6 = function _templateObject6() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject5() {\n var data = _taggedTemplateLiteral([\"\\n mutation resetPassword($password: String!, $passwordConfirmation: String!, $resetToken: String!) {\\n resetPassword(password: $password, passwordConfirmation: $passwordConfirmation, resetToken: $resetToken) {\\n success\\n message\\n error {\\n message\\n }\\n }\\n }\\n\"]);\n\n _templateObject5 = function _templateObject5() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject4() {\n var data = _taggedTemplateLiteral([\"\\n mutation resetPasswordRequest($email: String!, $redirectUrl: String) {\\n resetPasswordRequest(email: $email, redirectUrl: $redirectUrl) {\\n success\\n message\\n }\\n }\\n\"]);\n\n _templateObject4 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n var data = _taggedTemplateLiteral([\"\\n mutation logout {\\n logout {\\n success\\n loggedIn\\n }\\n }\\n\"]);\n\n _templateObject3 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n mutation signup($attributes: SignUpInput!) {\\n signup(attributes: $attributes) {\\n id\\n email\\n }\\n }\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n mutation login($email: String!, $password: String!) {\\n login(email: $email, password: $password) {\\n id\\n email\\n }\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nvar defaultState = {\n currentUser: {\n id: '0',\n __typename: 'CurrentUser',\n email: null,\n loggedIn: false // const CURRENT_USER = gql`\n // fragment CurrentUser {\n //\n // }\n // `\n\n }\n};\nexports.defaultState = defaultState;\nvar LOGIN = (0, _graphqlTag.default)(_templateObject());\nexports.LOGIN = LOGIN;\nvar SIGNUP = (0, _graphqlTag.default)(_templateObject2());\nexports.SIGNUP = SIGNUP;\nvar LOGOUT = (0, _graphqlTag.default)(_templateObject3());\nexports.LOGOUT = LOGOUT;\nvar RESET_PASSWORD_REQUEST = (0, _graphqlTag.default)(_templateObject4());\nexports.RESET_PASSWORD_REQUEST = RESET_PASSWORD_REQUEST;\nvar RESET_PASSWORD = (0, _graphqlTag.default)(_templateObject5());\nexports.RESET_PASSWORD = RESET_PASSWORD;\nvar CONFIRM_ACCOUNT = (0, _graphqlTag.default)(_templateObject6());\nexports.CONFIRM_ACCOUNT = CONFIRM_ACCOUNT;\nvar GET_FLASH = (0, _graphqlTag.default)(_templateObject7());\nexports.GET_FLASH = GET_FLASH;\nvar GET_TIME_ZONES = (0, _graphqlTag.default)(_templateObject8());\nexports.GET_TIME_ZONES = GET_TIME_ZONES;\nvar GET_SYSTEM_CONFIG = (0, _graphqlTag.default)(_templateObject9());\nexports.GET_SYSTEM_CONFIG = GET_SYSTEM_CONFIG;\nvar USER_FRAGMENT = (0, _graphqlTag.default)(_templateObject10(), _profile.PROFILE_FRAGMENT);\nexports.USER_FRAGMENT = USER_FRAGMENT;\nvar GET_CURRENT_USER = (0, _graphqlTag.default)(_templateObject11(), USER_FRAGMENT);\nexports.GET_CURRENT_USER = GET_CURRENT_USER;\nvar UPDATE_USER = (0, _graphqlTag.default)(_templateObject12(), USER_FRAGMENT);\nexports.UPDATE_USER = UPDATE_USER;\nvar SAVE_DEVICE = (0, _graphqlTag.default)(_templateObject13()); // resolvers needed only when storing some local state\n\nexports.SAVE_DEVICE = SAVE_DEVICE;\nvar resolvers = {\n Mutation: {\n login: function login(_, _ref, _ref2) {\n var string = _ref.username,\n any = _ref.password;\n var cache = _ref2.cache;\n console.log('[R] logging in ...', username);\n },\n logout: function () {\n var _logout = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee(_, _ref3, _ref4) {\n var string, any, cache;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n string = _ref3.username, any = _ref3.password;\n cache = _ref4.cache;\n console.log('[R] logging out ...', username);\n _context.next = 5;\n return (0, _authToken.clearAuthToken)();\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function logout(_x, _x2, _x3) {\n return _logout.apply(this, arguments);\n };\n }(),\n updateCurrentUser: function updateCurrentUser(_, _ref5, _ref6) {\n var loggedIn = _ref5.loggedIn,\n id = _ref5.id,\n email = _ref5.email;\n var cache = _ref6.cache; //console.log('updateCurrentUser start')\n\n var result = _updateCurrentUser(cache, {\n loggedIn: loggedIn,\n id: id,\n email: email\n }); //console.log('updateCurrentUser end', result)\n\n\n return result;\n }\n }\n};\nexports.resolvers = resolvers;\n\nfunction _updateCurrentUser(cache, _ref7) {\n var loggedIn = _ref7.loggedIn,\n id = _ref7.id,\n email = _ref7.email;\n console.log('updateCurrentUser resolver', loggedIn, id, email, defaultState.currentUser);\n var data = {\n currentUser: {\n // ...defaultState.currentUser,\n __typename: 'CurrentUser',\n loggedIn: loggedIn,\n id: id,\n email: email,\n // affiliations: {},\n roles: [],\n schools: [] //console.log('saving...', data)\n // cache.writeQuery({query: GET_CURRENT_USER, data, variables: {id: 0}})\n\n }\n };\n return data;\n} // export async function doLogin (email: string, password: string) {\n// const result = await post(`${API_URL}/auth/sign_in`, {email, password})\n// // console.log('doLogin done', result)\n// return result\n// }\n//\n// export async function doLogout ({cache, resetStore}: any) {\n// console.log('doLogout...', defaultState)\n// const result = await remove(`${API_URL}/auth/sign_out`)\n// //console.log('doLogout done', result)\n// // if (cache) {\n// // await updateCurrentUser(cache, {id: '0'})\n// // }\n// await clearAuthToken()\n// // console.log('doLogout done', cache)\n// return result\n// }\n\n\nvar startImpersonation =\n/*#__PURE__*/\nfunction () {\n var _ref8 = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee2(record) {\n var payload, result;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n console.log('starting impersonation', record, _constants.BASE_URL); // const { push, record, showNotification } = this.props;\n\n payload = {\n userId: record.id\n };\n _context2.next = 4;\n return (0, _fetchAsync.post)(\"\".concat(_constants.BASE_URL, \"/api_auth/impersonate\"), payload);\n\n case 4:\n result = _context2.sent;\n console.log('impersonation result', result);\n\n if (!result.success) {\n _context2.next = 10;\n break;\n }\n\n _context2.next = 9;\n return (0, _authToken.setImpersonationToken)(result.token);\n\n case 9:\n window.open(\"\".concat(_constants.BASE_URL, \"/?impersonation_token=\").concat(result.token, \"&impersonation_id=\").concat(record.id), 'bod_admin_inspector');\n\n case 10:\n return _context2.abrupt(\"return\", result);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function startImpersonation(_x4) {\n return _ref8.apply(this, arguments);\n };\n}();\n\nexports.startImpersonation = startImpersonation;\n\nvar stopImpersonation =\n/*#__PURE__*/\nfunction () {\n var _ref9 = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee3() {\n var result;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n console.log('stopping impersonation'); // const { push, record, showNotification } = this.props;\n\n _context3.next = 3;\n return (0, _fetchAsync.post)(\"\".concat(_constants.BASE_URL, \"/api_auth/stop_impersonating\"));\n\n case 3:\n result = _context3.sent;\n console.log('result', result);\n\n if (!result.success) {\n _context3.next = 11;\n break;\n }\n\n _context3.next = 8;\n return (0, _authToken.setImpersonationActive)(false);\n\n case 8:\n _context3.next = 10;\n return (0, _authToken.setImpersonationToken)(null);\n\n case 10:\n window.location.reload();\n // setTimeout(() => window.location.reload(), 1000)\n\n case 11:\n return _context3.abrupt(\"return\", result);\n\n case 12:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n return function stopImpersonation() {\n return _ref9.apply(this, arguments);\n };\n}();\n\nexports.stopImpersonation = stopImpersonation;\nvar _default = {\n defaults: defaultState,\n resolvers: resolvers\n};\nexports.default = _default;","\"use strict\";\n\nvar _regeneratorRuntime = require(\"/Users/greg/code/balance-on-demand/webapp/client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.getClient = exports.adminClient = exports.client = void 0;\n\nvar _merge = _interopRequireDefault(require(\"lodash/merge\"));\n\nvar _apolloLinkHttp = require(\"apollo-link-http\");\n\nvar _apolloLink = require(\"apollo-link\");\n\nvar _apolloLinkContext = require(\"apollo-link-context\");\n\nvar _apolloLinkState = require(\"apollo-link-state\");\n\nvar _apolloClientPreset = require(\"apollo-client-preset\");\n\nvar _constants = require(\"./constants\");\n\nvar _authToken = require(\"../api/authToken\");\n\nvar _fetchAsync = require(\"../api/fetchAsync\");\n\nvar _user = _interopRequireDefault(require(\"../api/user\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction getUrlParameter(name) {\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\n var results = regex.exec(location.search);\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n}\n\nvar cache = new _apolloClientPreset.InMemoryCache();\nvar stateLink = (0, _apolloLinkState.withClientState)(_objectSpread({\n cache: cache\n}, (0, _merge.default)(_user.default)));\nvar httpLink = new _apolloLinkHttp.HttpLink({\n uri: \"\".concat((0, _constants.getApiUrl)(), \"/graphql\")\n});\nvar httpAdminAuthMiddleware = (0, _apolloLinkContext.setContext)(\n/*#__PURE__*/\nfunction () {\n var _ref2 = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee(req, _ref) {\n var headers, auth, impersonation_token, impersonation_id, faker, allHeaders;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n headers = _ref.headers;\n _context.next = 3;\n return (0, _authToken.getAuthToken)();\n\n case 3:\n auth = _context.sent;\n console.log('admin middleware: have auth', req, auth, (0, _constants.getApiUrl)());\n impersonation_token = getUrlParameter('impersonation_token');\n impersonation_id = getUrlParameter('impersonation_id');\n faker = impersonation_token && impersonation_id ? {\n 'X-BOD-Login-Token': impersonation_token,\n 'X-BOD-Login-As': impersonation_id\n } : {};\n console.log('found admin login token?', impersonation_token);\n _context.next = 11;\n return (0, _fetchAsync.defaultHeaders)(_objectSpread({}, headers, faker, auth), true);\n\n case 11:\n allHeaders = _context.sent;\n return _context.abrupt(\"return\", {\n credentials: 'include',\n headers: _objectSpread({}, allHeaders)\n });\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function (_x, _x2) {\n return _ref2.apply(this, arguments);\n };\n}());\nvar httpUserAuthMiddleware = (0, _apolloLinkContext.setContext)(\n/*#__PURE__*/\nfunction () {\n var _ref4 = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee2(req, _ref3) {\n var headers, auth, impersonation_token, impersonation_id, impersonation, active, allHeaders;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n headers = _ref3.headers;\n _context2.next = 3;\n return (0, _authToken.getAuthToken)();\n\n case 3:\n auth = _context2.sent;\n console.log('user middleware: have auth', req, auth, (0, _constants.getApiUrl)());\n impersonation_token = getUrlParameter('impersonation_token');\n impersonation_id = getUrlParameter('impersonation_id');\n impersonation = {};\n\n if (!(impersonation_token && impersonation_id)) {\n _context2.next = 13;\n break;\n }\n\n impersonation['X-BOD-Login-Token'] = impersonation_token;\n impersonation['X-BOD-Login-As'] = impersonation_id;\n _context2.next = 21;\n break;\n\n case 13:\n _context2.next = 15;\n return (0, _authToken.isImpersonationActive)();\n\n case 15:\n active = _context2.sent;\n\n if (!active) {\n _context2.next = 21;\n break;\n }\n\n impersonation['X-BOD-Login-Active'] = active;\n _context2.next = 20;\n return (0, _authToken.getImpersonationToken)();\n\n case 20:\n impersonation['X-BOD-Login-Token'] = _context2.sent;\n\n case 21:\n console.log('found user login token?', impersonation_token);\n _context2.next = 24;\n return (0, _fetchAsync.defaultHeaders)(_objectSpread({}, headers, impersonation, auth), true);\n\n case 24:\n allHeaders = _context2.sent;\n return _context2.abrupt(\"return\", {\n credentials: 'include',\n headers: _objectSpread({}, allHeaders)\n });\n\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function (_x3, _x4) {\n return _ref4.apply(this, arguments);\n };\n}());\nvar updateAuthToken = new _apolloLink.ApolloLink(function (operation, forward) {\n // console.log('updateAuthToken', operation)\n return forward(operation).map(function (response) {\n // console.log('updateAuthToken.response', response, rest)\n var context = operation.getContext();\n var headers = context.response.headers;\n\n if (headers) {\n var hasToken = Boolean(headers.get('access-token') || headers.get('csrf-token')); // console.log('got a token?', hasToken, headers.get('access-token'), headers.get('csrf-token'))\n\n if (hasToken) {\n // console.log('updating auth headers')\n (0, _fetchAsync.saveAuthHeaders)(headers).then(function (r) {\n return false && console.log('saved headers!');\n });\n } else if (operation.operationName === 'logout') {\n (0, _authToken.clearAuthToken)().then(function (r) {\n return false && console.log('token cleared');\n });\n } else {\n console.log('no token, not updating headers');\n }\n }\n\n return response;\n });\n});\nvar defaultOptions = {\n watchQuery: {\n fetchPolicy: 'cache-and-network',\n errorPolicy: 'all'\n },\n query: {\n // fetchPolicy: 'cache-first',\n fetchPolicy: 'cache-and-network',\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n};\n\nvar hasSubscriptionOperation = function hasSubscriptionOperation(_ref5) {\n var definitions = _ref5.query.definitions;\n return definitions.some(function (_ref6) {\n var kind = _ref6.kind,\n operation = _ref6.operation;\n return kind === 'OperationDefinition' && operation === 'subscription';\n });\n};\n\nvar consoleLink = new _apolloLink.ApolloLink(function (operation, forward) {\n //console.log(`starting request for ${operation.operationName}`, operation.getContext(), operation, forward)\n return forward(operation).map(function (data) {\n //console.log(`ending request for ${operation.operationName}`, data)\n return data;\n });\n});\nvar httpUserLinkChain = (0, _apolloClientPreset.from)([httpUserAuthMiddleware, updateAuthToken, stateLink, httpLink]);\nvar httpAdminLinkChain = (0, _apolloClientPreset.from)([httpAdminAuthMiddleware, updateAuthToken, stateLink, httpLink]);\nvar wsLinkChain = (0, _apolloClientPreset.from)([stateLink, consoleLink]);\n\nvar userLink = _apolloLink.ApolloLink.split(hasSubscriptionOperation, wsLinkChain, httpUserLinkChain);\n\nvar adminLink = _apolloLink.ApolloLink.split(hasSubscriptionOperation, wsLinkChain, httpAdminLinkChain);\n\nvar client = new _apolloClientPreset.ApolloClient({\n link: userLink,\n cache: cache,\n defaultOptions: defaultOptions\n});\nexports.client = client;\nvar adminClient = new _apolloClientPreset.ApolloClient({\n link: adminLink,\n cache: cache,\n defaultOptions: defaultOptions\n}); // client.onResetStore(stateLink.writeDefaults)\n\nexports.adminClient = adminClient;\n\nvar getClient = function getClient() {\n // reset a few things for cordova + environment-flipping\n var httpLink = new _apolloLinkHttp.HttpLink({\n uri: \"\".concat((0, _constants.getApiUrl)(), \"/graphql\")\n });\n var httpLinkChain = (0, _apolloClientPreset.from)([httpUserAuthMiddleware, updateAuthToken, stateLink, httpLink]);\n\n var link = _apolloLink.ApolloLink.split(hasSubscriptionOperation, wsLinkChain, httpLinkChain);\n\n return new _apolloClientPreset.ApolloClient({\n link: link,\n cache: cache,\n defaultOptions: defaultOptions\n });\n};\n\nexports.getClient = getClient;\nvar _default = client;\nexports.default = _default;","module.exports = __webpack_public_path__ + \"static/media/bod-logo-circle-sm.de7b6f38.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABlCAMAAAAMAKsIAAADAFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8HPQsIAAABAHRSTlMAAQIDDC0sDRtLRkgQLgpD/PT7YP8xWjhFTl4v/jpNXTlH/QQFcqO3p39ECRZQiKy4qIYPKmWYsrm0n3Q3UmgwequaYhlrnK6NVBgycaC2hUkLfqmETBFkirCPgaFuKSOWsZEaWCazk6Q9Dn2mrY4gZpW1QghBKPnXIpfn3mm89r/cIfrqdzz36Nh22uGDx9ZPJ6Xy6YwX723LvoLrh1f4H1vZw9RKP/Ul8JLBHJ2A5DPTO2fR7mNcc9sGfEDEwOavyJvVqu3Gwr3JxVPMNTTxz7rf0JDs4hXj0qIHE3VvnoseavPgEh15UVY+e5m7WWFV5TaJFHiUymzOzSRw3V8rIFbXoAAAEmdJREFUeAHs1AWWg0AQANGWuALT6z7c/4zr7nGhflzQrocAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHaampnKPNTdtRHnZ7tntyn6/Lzb0Gp32t055qjS6w+G3T0vQGU07nQmWz27hbhMi7Lqi8+xZIqIA3HZZy6HUZZHYrJ9XI6LsugvNgGXQUSczBXAaRRxJrbnAZxGnF9sZeYuw3ezm7+iKOKSAH7gchVFdb2lV4Cb97ObP4A8dwC5EQHkYlsDGEYmgHkRAAEQAAEQAAEQAAEQAAEQgLmpqrvKF+quT7/9EYDVpqLm/mkjdW13rFkDbwRBGH0zWzesGxVn23Z59tU2/3/Sbjq5dR2s3szDNy9cHuV4UEWAbVQTp5wGgO/YZN91Oh3/iQcY+i0mylH1ArCYcibdR0yOxWRMFLylb5llXvkbi/2Zt/8tgF5IKM9FKQRMuwDSjVTlx5WWAChRFZPKka8OTWsxYfoC+n0mqlcWgGqMiskQ8QhETN8ySxQGtL0R/X8WABg1GE0ms8VqA+SHYHc4XW6Tx7vsA4hqAdiE/YFgKByJxuISDpIIJOcBpNKZcCSbywskw0xjhWIkXNrY3BrOjDFu7+yW3a5KtSYwagXByFLdbHI3mq22hAXt2U5nAiDWbijc6ztsXzONTw88JtPe/gEgFECAD3NHofDxycKpSIfAdtZJngNYHZTCF5fLOlBQ5AtX75OzXLOVAsfN0u2dyX3/sDAhSkbw+BRYqAG1xPOL+77yOtz2xspZgMlNRAH4JcGlTcOPB0sWrQvuWsWh7nJ19EquLml7dT386NaghtTlcHd3DqfuLe6Q7mySbXf57vjuVbMvefpnMjO3uxEP+X169rrq5G7nXigiJ1QUANXljos9UlLQxs002bdff5QMGCiiZQdAE7lm0GBSYg85LwJDjKHQQIZd76eUw0eIZEI/8rZCUjKqYyPRo2QPGGIqxeiB/02AIZXGjEXJuPFNoxR02Rs4VvpMUNqJk0T7T0tVR6QtDe7WTg4JAVBQTp4yVamL7oz86HLX3XCPHHyVnVLee7i4ctxwUnJfvQwm694/ACXFD+SLHvqeBsnpMmOmUs5qvBs4xuWzlcqvv488WFEAPHTCHFJxmxZMmBsH+7h5YAJg+zA/BwCaVDoDbAcAy8S6RoywwQvgooeLFBsePJI5QD8KTsqDD4/1URZ10edDyiAWnLmvUmRPY+EisOz0yQMqxzrTt9hm8Y2kxPRhiVJmt3ThUrBSfm2WHXNkJgCyfA6EfsYeHaVZtwBWHDpHBWwxeKSsVE6TDssOjpE9chWYpFM+q0S0sBsORY0eR+lM5jwhRiy2dk+ClbrSofDYYyoGAPwphcCop3rnLbVwPJ4OcTVkBVjw2IL6zzw7B9PkODGyA9CbJFgTa9W8rQCSjLos6lcteO5ZoOC2mk9NDRi7R4yo//0Csuznb+s9pBgK4XDRU4oXsODFl56p//Jw8HjFFS1nFg/NwYMqr7ao/9rdkMR+Pe1Cl/2exqvxIiTf6ND7XhsP+00xclp66208G++dDr0XDAde7AURAHrQU5PkO2fWfPc9SDK8S1iA/Pfhg5lgL8rr/Uage/l8oOismk/dHWD/pCaastE4CILiCS3qv/wheNQQPe39GIuPrgbmvVa/xWxIMu7j2C3X5RM8B/PTvN73PQ0kPzOpCABsB5vRh3QSkaqN+0GS2XWVV00uewX7+gPvEhF3bntMZpeKlhWAA5dRNP7QfUVk3z6vkuTq6N54BqsQZlUOlO1qYzHu84j5L7Cg9uF7ich+X74IXx20S6fL10F9v/wmsPLwt0UkeSDXEKDLsFEk+a7V5ISIcfPKIjyS6SZr8vFqfA/OObhExD3mHTyeES2XpWpDSWJ9cHB+EE+zAYATAWDIJGzMm/YJtGuOfYNChoho6kn3KpYHtx1fSURr+DaO42PdH1T15jOwTfYPA8o/A16ZttYIXKzzYGpf0dNsJEl6+Ff31UWqrn8aj1OjOl77Pkm44q1KItLosNnY2HbFPAIs8vYKDoIwqg/G46bo/qn7zAYJdMELHTHZKHoWAESXa1rcnFq3iTSdCZ+WhhDVxLRpoQdKTWQIPg2VfV3qFeLwhSjd3u89IKr/wfA2dm7a8x2PwZy5OQjQpD5JBhyaPnn6OySZoKU7s2YAjs0m5WP6cJh3cw5LumwmyYuVd50rIk234NshAJr0WIWdPDIdbaIWHlvFSOm0l3AcvlLKE4Oc2abObI9Hv6iTcsaYsKanY3FLWI6jC7GxtytlZdvhXiO84+7HY3DDtPdKF2NRIQDYJq8ZktA1Ec1wZTsO89JM7vpHdw3DdRNVZW4Vmybi7gmAOtHdJYlrpQlUSbdLk+vx6X+XJIJESuQavHB4MIKC0y+Vkaa70lRET/fU8d6UUkMPFr2lsh6f68TInkMfTKYerVLQE/LNDnwOS3fmoKH4nCXaLh8lUgefA7Nb0mWfJNgHSMJQlvZaihkCYMiXeHwpJa4eLMVLZG0xDEpzJk/iMztfXC0485vvsGgt7q6yyH7F8JRo8cXerpq6pW7pIrgyBGDvOfg0EDfIRHflTOw5w0RP6R4uxmGGuOnYtKcwK2gEMHeKGy3KupFkXWhW0xKRhwKYL0ZWAIKYNFFyODYbYwB4fC+uOvrhE+iWbvNd/WHe9NiMTdPUoD4PLomN1O5SeEVEy5rDOXhcJAlRkpDlqZarZeBQTI4Nub0dh4G5ULoBj/biRpZOiB4BmsjL8Gl8Nn8GvDhd9AiAyyWR0rj34nB82NgtMPHaiADNDV3IFBgimhYCwDzVcnHlWxyeSNN3Dx41o20DVxb6FTMJtHg3Y517Gma6emrfo9LBx97y4wMdu16yDD4TPTsAQRzVFk+757qvu37QAoWmAsBiZHiUeAfOFC39nhaf6yMb0dSgMxbbZd9KSvaVU2DHXdkA0GSvAnhxbQxFqbsahu8nehoAPqobTsHqJW1GZKmaWrA4VuOYJU2eTa8CAiq/s+kYD2ogVjCapAGgcHKabDkbVq8JnZ4THamtD7fLgdu+uLrlTx1Xwc8JiQHwblSFSVGHNQmG/AMy9pbOxqoIAPzwfldD5kcwdK8wdlncryCJEoteOQAwJP+4vB0OKbFtqscAoH+jcDzQJ8BVaQCa4POLuHuG9SimPW702FAK7gZnb9GzjduT344GWPXSFCy6ixECUEu0tGruVNi0h0s1Oo2DgqoxU4bUCAEw5EFsiuJB7cBnSQyARfmxiQ/vpI906Qqf/BDFIPVq/PodSkx+K4kAsMMJmNrrXa/s5y+Fp+O3gCtNKuYtYSbTMo08C0XqhtKl6UlEkhsAXbp/CpADgE8ribYnAK40x8r2tkZd2mORKTYcI3q2FI7B4qu4ypBWeKyPAfBcFOfvWQFQuio2tSQDgGYxAJbj7B6UxZgYALUiU7Xh1wiA+TEAdJEbkkAuAP6IAAgeQNWV/Y/7wxvqxGiAqJg5wKS4EU2GwIfD1KjX6R1MWJ136w3XXff4+GJyAGDI+Q4W/Fq7Qauep444BycTgDcS2QFoicUJ2QC4BMtmd+meHYCNWPTLBGATHp1jAPxUNgAmJx06iJb9p4GGLNkDAGw2xQBQ1yoA3skKgCbuCwDFW56rc911162bzW4ALMkOwF3FMEEXreJ/GmixLdPI0vBxq0kHChk7Y43SPJ8DAF3aTcWn/jElqfN27g7AbzkAGI/F1mwAfIDFknpvLozLW3vl2LuxHK7PbNvXeDxYfgCmL4OXtYwit4kBsAKLMybvjMfU+LxGomUHIPsIoIanF5vsp1yctDsAF2QHoOlqmH1tRmydKwYAnw8yphbD7oalrmiBdicmf3YS0YJ1oFRbnQ0AVfFCNgeXG65bKtXLMAKoQTVYIBh7hnUiHn9JWUSXtUVBwBkvbcH2DhW9fABosm8BPP15RpHPiU0Cj8fiyiyXlQcAXT5+Gr47XkR0100k5OwyAqA/CVN/jw10rtTAqpg5wEQVaXoN5QXrNNWHJH9IqZYKvW2hk2sOsACqdJGEurHHYJUFAF3Osx1mx7wbaeOVCZYiCT0trmiurkkWUVswh4sRG8qrwKq9RCs7AErZG4v1kVKXzz/BDpeBaz6Bok7ihkFpqb2HMgOg1qEWV6gLNalUUCYAxJB+eFwgiSjvkkWZk0DdMLT/NQcI1sUl4dKj9FN8NS3U5Sb8cJKWkG/xsgKgSf5E+LOpuhl0GVImAILrPsXiLymJfgBsqHtxAA5HpBXiStOE6Lly6EmS+qIrveZKe5JsVqbKCoAakXxeknDPLiEXYaEAEF1OweN+SYS1KjlIDCkvAFvxwnWXKxsxywjAkViMvjYduVYiyzM2glSM/w+AqYeLHnBtuCJX4KmbMvUsDfqj/SsJuXY0fg4Agv2s4v3EDU4MNvtsuywAiCEr8RnVRVxj110uG35Pp1uHJGPvUgpDPl56dg/Rcz0DPsTkRBFXT1k5Chu1nC8XAJrU/ROfO0W51eWIJE5sJ/AaTLw+YqRr1Xro3qKXF4ANeHydqqmhyTP4ZQBA7S15XBnFtnAZTgwAXW5eskLVqJxbwTYsa6he+KEbpsnWdBsuxaNW4F5LTVcspmQBQDS5Cp+B6oHY5c+yAqDJXqPxGHqM8v4tzz+skKr2GB5L91GK7qPhz7ai50hiBD6ML1Vt/NIkqXYsywxAtOqzHM44SB2veBtsBYCaEye5e5LSTm8BhQ1FL+cc4E3HYWZdVdPHweSNMgCQWvWZ1G6kvE8qAjsEILBbDD9HE5iyA0DhmTZsuWDnzZMfbL4D0+IM0ZXRRsOxqHlwQqRq5ZdxltnUFi3bJPAQfAb/2EgT+fiX/lSpAq+XAYBgDefgYX62/e+bF95yHyY7pouu0iVJlVv3nzts56UX2xSyam2O5DSR+ng2Ex/v065v95X3gsdrVUUrPwCiyWf4JqvrnDB32OGXD4HCDkQA6MFPGZLQYsbfNx+9/acXSWIdUS4A1JTF46WHqookGr8Ay0x+Lc0NgNrOUFYsi1EN9p9881unXwV2C5/YhmsLkn60x1lmAE7D5/ZWAM6cJJCEKXrUn4Hg4/921ckTgZZXwJkBuWqF7DnhCCAn40Pxgrz7+oN/y0xYEUZ2SrTZqWazeaKFAWww8R3w5pjgQYt908VYDh5QONghoPL5tTmHN12uPRuSwODBgAdPVhM93NmcCfMjANotM9UjOCsA+XkpS4VzbICVk/C9NABiyML+WFYQrQ94FB4YZikL4JkIgF7wRmkIwAfYq8NlYHcbD56vdduvHuRtgtn7hgBM9bklAuAAfCbFphmtU7Elg1rB993xuTFMZQKWxwflBuAa4HwZUQiAY0KViyS+rf4joVwi50CBaqUrzYCF4QDUNEASAKqsT8yDR8VVJvJgZgyARbBAtKh5I5cCDmCDf7VErTqiAGw79Ydea/4jNV2066ZGJycb5Icna7KmCB6JrHYBxoub05JRxwfTAeC7XwIM6R5aM2TYyVG0/Nw41p33YVAEwJmwKj8cLZ+Dt6uFOKyfR1oGyRLwwn3XC4E2EQA3Ahvis7wR34GTii25SfYHzg878CigeCi76HJ0zSkXvynyd79xAPbQlnfEp5KaJsefUgQweNb5ItNaXD+/UprWh+pPeeHmqLDS7LU5AMWftZWqzV/ocGn44PzjmZoPuGHL9atr9l6XwWD+8rPuBjDH/nSoiB4prr3npcAkzrhuR0jOzJT7369+pxDAn9jy4AyEr+34QotLRUsfNmp9yjPnK312S0e3H2AD9ntdu4hsfKZXr8nxoOT1vA8B+PDkQxLxoO7vXf+LyOuXz1xcoyRs+bZnrm/fI6Kj3a3jAPyl3xoysuYpJ6mHmybTW/fqcERU0wsv7nXxzngu0uXOmSbAJ48cLXLov+q3wjKX3Fk0YIn83+97EumxeOtfG3ZWEjG03Qry8e0zDnm9noimZ1yzR+Fk7pFHHXVg+M7esoYSnL3faYf9tX1h6DxS/H7jcX9t39kj5jx3Bu4dxx53VPW9S8vyJvL/trTX4dP+6nz8XpGhzDwvq3zYX52fuEsdlV+Cah/T+ZDOC10Ro7x9qvrWhr8O635QFFuUUt2q/ycaXde12LvdjX9YJYMUhoIYhNbn/e/cnQWZVvqZZXhRJYTmfGoLFCCgykVALWaoMcoOL8C+E+XyNRDQdIqRoOys1FPH/Jg43lSFGF1xSGPx8CGjt41OxCHbwXvvjwgxssfyxVt0W+tCwl2l9Hq3BwckAAAAAIL+v25HoO4BAAAAAAAAAAAAAAAAAAABZOI0jgpElI0AAAAASUVORK5CYII=\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IS_DEV_API = exports.IS_PROD_API = exports.IS_PROD_SITE = exports.IS_DEV = exports.IS_WEB = exports.getApiUrl = exports.API_URL = exports.apiUrl = exports.BASE_URL = exports.SESSION_KEY = exports.CSRF_TOKEN = exports.IMPERSONATION_ACTIVE = exports.IMPERSONATION_TOKEN = exports.ADMIN_AUTH_TOKEN = exports.AUTH_TOKEN = exports.checkIfProdApi = exports.isWeb = exports.getHost = void 0;\n\nvar _get = _interopRequireDefault(require(\"lodash/get\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar getHost = function getHost(w) {\n return (0, _get.default)(w, 'location.host');\n};\n\nexports.getHost = getHost;\n\nvar isWeb = function isWeb(w) {\n return getHost(w) !== null;\n};\n\nexports.isWeb = isWeb;\n\nvar checkIfProdApi = function checkIfProdApi() {};\n\nexports.checkIfProdApi = checkIfProdApi;\n\nvar convertHttpToWs = function convertHttpToWs(string) {\n var matched = string.match(/^(https?):\\/\\/([^\\/]+)/); // console.log('matched', matched)\n\n if (matched && matched.length === 3) {\n var prot = matched[1] === 'https' ? 'wss' : 'ws';\n return prot + '://' + matched[2];\n }\n\n return null;\n};\n\nvar determineWsHost = function determineWsHost() {\n var env = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.env;\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ORIGIN;\n var ws = '';\n\n if (env.REACT_APP_WS_HOST) {\n ws = env.REACT_APP_WS_HOST;\n }\n\n if (!ws && env.REACT_APP_API_URL) {\n ws = convertHttpToWs(env.REACT_APP_API_URL);\n }\n\n if (!ws) {\n ws = convertHttpToWs(fallback);\n } //console.log('ws host', ws)\n\n\n return ws;\n};\n\nvar AUTH_TOKEN = 'auth-token';\nexports.AUTH_TOKEN = AUTH_TOKEN;\nvar ADMIN_AUTH_TOKEN = 'admin-auth-token';\nexports.ADMIN_AUTH_TOKEN = ADMIN_AUTH_TOKEN;\nvar IMPERSONATION_TOKEN = 'impersonation-token';\nexports.IMPERSONATION_TOKEN = IMPERSONATION_TOKEN;\nvar IMPERSONATION_ACTIVE = 'impersonation-active';\nexports.IMPERSONATION_ACTIVE = IMPERSONATION_ACTIVE;\nvar CSRF_TOKEN = 'csrf-token';\nexports.CSRF_TOKEN = CSRF_TOKEN;\nvar SESSION_KEY = 'session-key'; // export const apiUrl = window.cordova ? 'http://app.b.localhost:3001/api' : process.env.REACT_APP_API_URL\n\nexports.SESSION_KEY = SESSION_KEY;\nconsole.log('base url checks', window.BOD_BASE_URL, process.env.REACT_APP_BASE_URL, window.location.origin);\nvar baseUrlFromEnv = window.BOD_BASE_URL || process.env.REACT_APP_BASE_URL || window.location.origin;\nvar apiUrlFromEnv = window.BOD_API_URL || process.env.REACT_APP_API_URL;\nvar BASE_URL = baseUrlFromEnv || 'https://app.balanceondemand.com';\nexports.BASE_URL = BASE_URL;\nvar apiUrl = apiUrlFromEnv || 'https://app.balanceondemand.com/api';\nexports.apiUrl = apiUrl;\nvar API_URL = apiUrl || '/api';\nexports.API_URL = API_URL;\nconsole.log('apiUrl', {\n BASE_URL: BASE_URL,\n API_URL: API_URL,\n apiHost: apiUrl,\n apiUrlFromEnv: apiUrlFromEnv,\n cordova: window.cordova\n}); // export const WEBSOCKET_HOST = determineWsHost(process.env)\n\nvar ORIGIN = (0, _get.default)(window, 'location.origin', 'https://app.balanceondemand.com/api');\n\nvar getApiUrl = function getApiUrl() {\n return window.BOD_API_URL || process.env.REACT_APP_API_URL || '/api';\n};\n\nexports.getApiUrl = getApiUrl;\nvar IS_WEB = !!isWeb(window);\nexports.IS_WEB = IS_WEB;\nvar IS_DEV = !process.env.NODE_ENV || process.env.NODE_ENV === 'development'; // export const IS_PROD_API: boolean = API_URL && (API_URL.match(/app.balanceondemand.com/) || (IS_WEB && API_URL === '/api'))\n\nexports.IS_DEV = IS_DEV;\nvar IS_PROD_SITE = getHost(window) === 'app.balanceondemand.com';\nexports.IS_PROD_SITE = IS_PROD_SITE;\nvar IS_PROD_API = API_URL && (API_URL.match(/app.balanceondemand.com/) || API_URL === '/api');\nexports.IS_PROD_API = IS_PROD_API;\nvar IS_DEV_API = !IS_PROD_API;\nexports.IS_DEV_API = IS_DEV_API;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CurrentUserConsumer = exports.CurrentUserProvider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar CurrentUserContext = _react.default.createContext({\n isLoggedIn: false,\n state: {},\n actions: {}\n});\n\nvar CurrentUserProvider = CurrentUserContext.Provider;\nexports.CurrentUserProvider = CurrentUserProvider;\nvar CurrentUserConsumer = CurrentUserContext.Consumer;\nexports.CurrentUserConsumer = CurrentUserConsumer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SAVE_PROFILE = exports.PROFILE_FRAGMENT = exports.hasMealSettings = exports.hasProfile = exports.isComplete = void 0;\n\nvar _graphqlTag = _interopRequireDefault(require(\"graphql-tag\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n mutation saveProfile($attributes: ProfileInput!) {\\n saveProfile(attributes: $attributes) {\\n success\\n profile {\\n ...ProfileDetail\\n }\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n fragment ProfileDetail on Profile {\\n id\\n __typename\\n firstName\\n lastName\\n email\\n timezone\\n gender\\n age\\n weightLb\\n heightIn\\n weightGoal\\n weightChange\\n buildMuscle\\n bodyFatPct\\n activityLevel\\n restrictions\\n dislikeIds\\n dislikes {\\n id\\n name\\n }\\n notificationPreferences {\\n key\\n label\\n email\\n push\\n }\\n mealDays\\n mealVariety\\n mealSplit\\n mealPlanStart\\n mealCount\\n snackCount\\n totalMealCount\\n hasMealPlans\\n bmr\\n dci\\n dciOverride\\n dciDefault\\n proteinPct\\n fatPct\\n carbsPct\\n pctOverride\\n proteinPctDefault\\n fatPctDefault\\n carbsPctDefault\\n nutrientTargetPct {\\n nutrient\\n target\\n }\\n user {\\n id\\n }\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nvar isComplete = function isComplete(profile) {\n return hasProfile(profile) && hasMealSettings(profile);\n};\n\nexports.isComplete = isComplete;\n\nvar hasProfile = function hasProfile(profile) {\n return Boolean(profile) && profile.weightGoal && profile.activityLevel && profile.bmr && profile.dci && profile.bmr > 0 && profile.dci > 0;\n};\n\nexports.hasProfile = hasProfile;\n\nvar hasMealSettings = function hasMealSettings(profile) {\n return Boolean(profile) && profile.mealDays;\n};\n\nexports.hasMealSettings = hasMealSettings;\nvar PROFILE_FRAGMENT = (0, _graphqlTag.default)(_templateObject());\nexports.PROFILE_FRAGMENT = PROFILE_FRAGMENT;\nvar SAVE_PROFILE = (0, _graphqlTag.default)(_templateObject2(), PROFILE_FRAGMENT);\nexports.SAVE_PROFILE = SAVE_PROFILE;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.colors = void 0; // yellow: #FCEE55\n// light green: #8DC442\n// dark green: #066834\n\nvar colors = {\n primary: '#066834',\n secondary: '#682a06',\n yellow: '#FCEE55',\n lightGreen: '#8DC442',\n darkGreen: '#066834',\n white: '#fff',\n // in case we need to tone it?\n danger: '#A7062A',\n // also used for error\n warning: '#682a06',\n text: '#515151',\n darkText: '#515151',\n darkGray: '#444',\n midGray: '#999',\n lightGray: '#ccc',\n lightBG: '#f6f6f6',\n disabled: '#ddd',\n actionBar: '#eee',\n divider: '#ddd',\n selected: '#5497D3',\n outline: '#ccc',\n tableHeader: '#999'\n};\nexports.colors = colors;\nvar _default = colors;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.recipeEditSchema = exports.profilePaymentSchema = exports.profileMealsSchema = exports.profileActivitySchema = exports.profileGoalsSchema = exports.profileDemoSchema = exports.resetPasswordSchema = exports.signupSchema = exports.passwordConfirmation = exports.password = exports.emailConfirmation = void 0;\n\nvar _get = _interopRequireDefault(require(\"lodash/get\"));\n\nvar Yup = _interopRequireWildcard(require(\"yup\"));\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} //const Yup = require('yup')\n\n\nYup.addMethod(Yup.string, 'reformatPhone', function (formats, parseStrict) {\n //console.log('Yup.phone?', formats, parseStrict)\n return this.test('phone', 'Phone is invalid', function (value, originalValue) {\n //console.log('Yup.phone.transform?', value, originalValue, this.isType(value))\n if (this.isType(value)) {\n var stripped = value.replace(/^.*(\\d[3]).*(\\d[3]).*(\\d[4]).*$/, '$1-$2-$3');\n return stripped;\n }\n\n try {\n var _stripped = value.replace(/^.*(\\d[3]).*(\\d[3]).*(\\d[4]).*$/, '$1-$2-$3');\n\n return _stripped;\n } catch (err) {\n console.error('unable to reformat phone!', err, value);\n }\n\n return value;\n });\n});\nYup.addMethod(Yup.string, 'phone', function (formats, parseStrict) {\n //console.log('Yup.phone.test', formats, parseStrict)\n return this.test('phone', 'Phone is invalid', function (value) {\n //console.log('Yup.phone.test?', value)\n return value.test(/^.*(\\d[3]).*(\\d[3]).*(\\d[4]).*$/); // if (this.isType(value)) {\n // const stripped = value.replace(/^.*(\\d[3]).*(\\d[3]).*(\\d[4]).*$/, '$1-$2-$3')\n // return stripped\n // }\n //\n // try {\n // const stripped = value.replace(/^.*(\\d[3]).*(\\d[3]).*(\\d[4]).*$/, '$1-$2-$3')\n // return stripped\n // } catch (err) {\n // console.error('unable to reformat phone!', err, value)\n // }\n //\n // return value\n });\n});\nvar anyValue = Yup.string().trim().required('Required.');\nvar name = Yup.string().min(5, 'Name must be at least 5 characters long.').required('Name is required.');\nvar firstName = Yup.string().trim().required('First name is required.');\nvar lastName = Yup.string().trim().required('Last name is required.'); //min(3, 'Last name must be at least 3 characters long.').\n\nvar phone = Yup.string().trim().required('Phone is required.'); // Yup.string().matches(/.*\\d[3].*\\d[3].*\\d[4].*/, 'Phone is invalid').required('Phone must be provided')\n// Yup.string().phone('Phone is invalid').required('Phone must be provided')\n\nvar email = Yup.string().trim().email('Email is invalid.').required('Email is required.');\nvar relationship = Yup.string().required('Relationship is required.');\nvar tag = Yup.string().required('Tag number is required.');\nvar schoolId = Yup.string().required('School is required.');\nvar gradeLevel = Yup.string().required('This year\\'s grade is required.');\nvar teacherId = Yup.string().required('Homeroom teacher is required.');\nvar livesWith = Yup.string().required('Living arrangement is required.');\nvar street1 = Yup.string().trim().required('Street address is required.');\nvar city = Yup.string().trim().required('City is required.');\nvar state = Yup.string().trim().required('State is required.');\nvar postal = Yup.string().trim().required('ZIP is required.');\nvar address = Yup.object().shape({\n street1: street1,\n city: city,\n region: state,\n postal: postal\n});\nvar emailConfirmation = Yup.string().trim().oneOf([Yup.ref('email'), null], 'Emails don\\'t match').required('Email confirmation is required');\nexports.emailConfirmation = emailConfirmation;\nvar password = Yup.string().trim().required('Password is required');\nexports.password = password;\nvar passwordConfirmation = Yup.string().trim().oneOf([Yup.ref('password'), null], 'Passwords don\\'t match').required('Password confirmation is required');\nexports.passwordConfirmation = passwordConfirmation;\nvar genderError = 'A gender selection is required for calculation purposes.';\nvar gender = Yup.string().required(genderError);\nvar Numeric = Yup.number().typeError('Value must be a number').positive('Value must be greater than zero');\nvar age = Numeric.required('Age is required.');\nvar weightLb = Numeric.required('Weight is required.');\nvar heightIn = Numeric.required('Height is required.');\nvar qty = Yup.number().required('Quantity is required.').typeError('Quantity must be a number');\nvar unit = Yup.string().required('Unit is required.');\nvar type = Yup.string().required('Type is required.');\nvar ingredient = Yup.object().shape({\n qty: qty,\n unit: unit\n});\nvar ingredients = Yup.array().of(ingredient).min(1, 'At least one ingredient must be included.');\nvar weightGoal = Yup.string().trim(). // oneOf(['gain', 'lose', 'maintain'], 'Invalid selection').\nrequired('Goal selection is required.');\nvar buildMuscle = Yup.boolean().nullable().required('Selection is required');\nvar mmyyRegex = /^(0[1-9]|1[0-2])\\/?(2[0-9])*[0-9][0-9]$/;\nvar mmyy = Yup.string().trim().required().matches(mmyyRegex, 'Please use the format MM/YY or MM/YYYY.');\nvar anySelection = Yup.string().trim().nullable(). // oneOf(['gain', 'lose', 'maintain'], 'Invalid selection').\nrequired('A selection is required.');\nvar signupSchema = Yup.object().shape({\n firstName: firstName,\n lastName: lastName,\n email: email,\n password: password,\n passwordConfirmation: passwordConfirmation\n});\nexports.signupSchema = signupSchema;\nvar resetPasswordSchema = Yup.object().shape({\n password: password,\n passwordConfirmation: passwordConfirmation\n});\nexports.resetPasswordSchema = resetPasswordSchema;\nvar profileDemoSchema = Yup.object().shape({\n gender: gender,\n age: age,\n weightLb: weightLb,\n heightIn: heightIn\n});\nexports.profileDemoSchema = profileDemoSchema;\nvar profileGoalsSchema = Yup.object().shape({\n weightGoal: weightGoal,\n buildMuscle: buildMuscle,\n weightChange: Yup.number().when('weightGoal', {\n is: function is(val) {\n return val === 'maintain';\n },\n then: Yup.number().nullable().notRequired(),\n otherwise: Numeric.required('Value is required.')\n }) // weightChange: '',\n // bodyFatPct: '',\n\n});\nexports.profileGoalsSchema = profileGoalsSchema;\nvar profileActivitySchema = Yup.object().shape({\n activityLevel: anySelection\n});\nexports.profileActivitySchema = profileActivitySchema;\nvar profileMealsSchema = Yup.object().shape({\n mealDays: anySelection,\n mealPlanStart: anySelection,\n mealVariety: anySelection,\n mealSplit: anySelection\n});\nexports.profileMealsSchema = profileMealsSchema;\nvar profilePaymentSchema = Yup.object().shape({\n cc: Yup.object().shape({\n num: anyValue.matches(/^\\d{14,19}$/, 'Card number must be 14-19 digits.'),\n mmyy: mmyy,\n cvc: anyValue.matches(/^\\d{3,4}$/, 'CVC must be 3-4 digits.'),\n zip: anyValue // .matches(/^\\d{5}(\\-?\\d{4})*$/, 'ZIP must be 5 or 9 digits',),\n\n })\n});\nexports.profilePaymentSchema = profilePaymentSchema;\nvar recipeEditSchema = Yup.object().shape({\n type: type,\n servingSize: Numeric,\n ingredients: ingredients\n}); // export const parentSchema = Yup.object().shape({\n// firstName,\n// lastName,\n// relationship,\n// useFamilyAddress: Yup.boolean(),\n// address: Yup.object().when('useFamilyAddress', {\n// is: true,\n// then: Yup.object().notRequired(),\n// otherwise: address,\n// }),\n// phones: Yup.array().of(phone),\n// emails: Yup.array().of(email),\n// })\n//\n// export const studentSchema = Yup.object().shape({\n// firstName,\n// lastName,\n// // phone,\n// // tag,\n// schoolId,\n// gradeLevel,\n// // teacherId,\n// // livesWith,\n// })\n//\n// export const contactSchema = Yup.object().shape({\n// firstName,\n// lastName,\n// relationship,\n// phones: Yup.array().of(phone),\n// })\n//\n// export const offCampusSchema = Yup.object().shape({\n// name,\n// mobilePhone: phone,\n// email,\n// address,\n// })\n//\n// export const scheduleFormSchema = Yup.object().shape({\n// // days: Yup.array().compact(d => { return !d.active }).min(1, 'At least one day must be selected.'),\n// dismissalType: Yup.string().required('A dismissal selection is required.'),\n// driverId: Yup.string().required('A driver selection is required.'),\n// // recurrence: Yup.string().required('A recurrence selection is required.'),\n// })\n//\n// export const scheduleFormWithFriendSchema = Yup.object().shape({\n// // days: Yup.array().compact(d => { return !d.active }).min(1, 'At least one day must be selected.'),\n// dismissalType: Yup.string().required('A dismissal selection is required.'),\n// leavingWithId: Yup.string().required('A student selection is required.'),\n// // recurrence: Yup.string().required('A recurrence selection is required.'),\n// })\n//\n// export const scheduleFormDriverOrFriendSchema = Yup.object().shape({\n// // days: Yup.array().compact(d => { return !d.active }).min(1, 'At least one day must be selected.'),\n// dismissalType: Yup.string().required('A dismissal selection is required.'),\n// driverId: Yup.string().test('driverId', 'A driver selection is required.', function (value) {\n// const leavingWithId = get(this, 'parent.leavingWithId')\n// // console.log('driver test', value, leavingWithId, this.parent)\n// if (!leavingWithId) return Boolean(value)\n// // console.log('assuming driver is valid then', value)\n// return Boolean(leavingWithId) && !Boolean(value)\n// }),\n// leavingWithId: Yup.string().test('leavingWithId', 'A student selection is required.', function (value) {\n// const driverId = get(this, 'parent.driverId')\n// // console.log('leaving with test', value, driverId)\n// if (!driverId) return Boolean(value)\n// // console.log('assuming ride is valid then', value)\n// return Boolean(driverId) && !Boolean(value)\n// }),\n// })\n\nexports.recipeEditSchema = recipeEditSchema;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GOALS = exports.DEMOGRAPHICS = exports.DEFAULT_PROFILE = exports.BLANK_ADDRESS = void 0;\nvar BLANK_ADDRESS = {\n street1: '',\n street2: '',\n city: '',\n region: '',\n postal: ''\n};\nexports.BLANK_ADDRESS = BLANK_ADDRESS;\nvar DEFAULT_PROFILE = {\n firstName: '',\n lastName: '',\n email: '',\n password: '',\n passwordConfirmation: ''\n};\nexports.DEFAULT_PROFILE = DEFAULT_PROFILE;\nvar DEMOGRAPHICS = {\n firstName: '',\n lastName: '',\n email: '',\n gender: '',\n timezone: '',\n age: '',\n weightLb: '',\n heightIn: '',\n resetAll: false\n};\nexports.DEMOGRAPHICS = DEMOGRAPHICS;\nvar GOALS = {\n weightGoal: '',\n buildMuscle: '',\n weightChange: '',\n bodyFatPct: '',\n resetAll: false\n};\nexports.GOALS = GOALS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GET_GROCERY_LIST = exports.ADD_RECIPE_TO_MEAL = exports.REMOVE_MEAL = exports.REPLACE_MEAL_PLAN = exports.REPLACE_MEAL = exports.GET_MEAL_PREP = exports.GET_MEAL_PLAN = exports.MEAL_PLAN_FRAGMENT = void 0;\n\nvar _graphqlTag = _interopRequireDefault(require(\"graphql-tag\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _templateObject8() {\n var data = _taggedTemplateLiteral([\"\\n query getGroceryList($week: String, $date: String) {\\n groceryList(week: $week, date: $date) {\\n id\\n weekOfShort\\n items {\\n foodId\\n name\\n uses\\n qty\\n unit\\n qtyG\\n packagedAs {\\n name\\n qty\\n unit\\n }\\n fixed\\n fixedQty\\n fixedUnit\\n }\\n }\\n }\\n\"]);\n\n _templateObject8 = function _templateObject8() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject7() {\n var data = _taggedTemplateLiteral([\"\\n mutation addRecipeToMeal($mealPlanId: ID!, $recipeId: ID!, $mealNum: Int!, $dayNum: Int!) {\\n addRecipeToMeal(mealPlanId: $mealPlanId, recipeId: $recipeId, mealNum: $mealNum, dayNum: $dayNum) {\\n plan {\\n ...MealPlanDetail\\n }\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject7 = function _templateObject7() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject6() {\n var data = _taggedTemplateLiteral([\"\\n mutation removeMeal($mealPlanId: ID!, $mealId: ID!) {\\n removeMeal(mealPlanId: $mealPlanId, mealId: $mealId) {\\n plan {\\n ...MealPlanDetail\\n }\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject6 = function _templateObject6() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject5() {\n var data = _taggedTemplateLiteral([\"\\n mutation replaceMealPlan($mealPlanId: ID!, $week: String!) {\\n replaceMealPlan(mealPlanId: $mealPlanId, week: $week) {\\n plan {\\n ...MealPlanDetail\\n }\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject5 = function _templateObject5() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject4() {\n var data = _taggedTemplateLiteral([\"\\n mutation replaceMeal($mealPlanId: ID!, $mealId: ID!, $mealNum: Int!, $dayNum: Int!, $all: Boolean, $withRecipeId: ID) {\\n replaceMeal(mealPlanId: $mealPlanId, mealId: $mealId, mealNum: $mealNum, dayNum: $dayNum, all: $all, withRecipeId: $withRecipeId) {\\n plan {\\n ...MealPlanDetail\\n }\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject4 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n var data = _taggedTemplateLiteral([\"\\n query getMealPrep($week: String, $date: String) {\\n mealPrep(week: $week, date: $date) {\\n id\\n weekOfShort\\n groupedRecipes : recipes {\\n id\\n count\\n name\\n instructions\\n type\\n ingredients {\\n id\\n foodId\\n name\\n qty\\n fixed\\n foodFixed\\n fixedQty\\n fixedUnit\\n qtyG\\n qtyOz\\n }\\n }\\n }\\n }\\n\"]);\n\n _templateObject3 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n query getMealPlan($week: String, $date: String) {\\n mealPlan(week: $week, date: $date) {\\n ...MealPlanDetail\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n fragment MealPlanDetail on MealPlan {\\n id\\n weekOfShort\\n dayCount\\n mismatch\\n days {\\n number\\n label\\n mealIds\\n totalG\\n kcal\\n kcalTarget\\n protein\\n fat\\n carbs\\n fiber\\n sugar\\n sodium\\n proteinPct\\n fatPct\\n carbsPct\\n message\\n mismatch\\n }\\n meals {\\n id\\n name\\n number\\n type\\n kcal\\n kcalTarget\\n protein\\n fat\\n carbs\\n fiber\\n sugar\\n sodium\\n proteinPct\\n fatPct\\n carbsPct\\n recipeIds\\n ingredients {\\n id\\n foodId\\n name\\n qty\\n fixed\\n foodFixed\\n fixedQty\\n fixedUnit\\n qtyG\\n qtyOz\\n kcal\\n protein\\n fat\\n carbs\\n fiber\\n sugar\\n sodium\\n goesWithId\\n }\\n message\\n mismatch\\n }\\n recipes {\\n id\\n type\\n name\\n instructions\\n ingredients {\\n id\\n foodId\\n name\\n kcalG\\n proteinG\\n fatG\\n carbsG\\n }\\n createdBy {\\n id\\n name\\n }\\n }\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nvar MEAL_PLAN_FRAGMENT = (0, _graphqlTag.default)(_templateObject());\nexports.MEAL_PLAN_FRAGMENT = MEAL_PLAN_FRAGMENT;\nvar GET_MEAL_PLAN = (0, _graphqlTag.default)(_templateObject2(), MEAL_PLAN_FRAGMENT);\nexports.GET_MEAL_PLAN = GET_MEAL_PLAN;\nvar GET_MEAL_PREP = (0, _graphqlTag.default)(_templateObject3());\nexports.GET_MEAL_PREP = GET_MEAL_PREP;\nvar REPLACE_MEAL = (0, _graphqlTag.default)(_templateObject4(), MEAL_PLAN_FRAGMENT);\nexports.REPLACE_MEAL = REPLACE_MEAL;\nvar REPLACE_MEAL_PLAN = (0, _graphqlTag.default)(_templateObject5(), MEAL_PLAN_FRAGMENT);\nexports.REPLACE_MEAL_PLAN = REPLACE_MEAL_PLAN;\nvar REMOVE_MEAL = (0, _graphqlTag.default)(_templateObject6(), MEAL_PLAN_FRAGMENT);\nexports.REMOVE_MEAL = REMOVE_MEAL;\nvar ADD_RECIPE_TO_MEAL = (0, _graphqlTag.default)(_templateObject7(), MEAL_PLAN_FRAGMENT);\nexports.ADD_RECIPE_TO_MEAL = ADD_RECIPE_TO_MEAL;\nvar GET_GROCERY_LIST = (0, _graphqlTag.default)(_templateObject8());\nexports.GET_GROCERY_LIST = GET_GROCERY_LIST;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.getUsStates_LV = exports.usStates_LV = exports.usStates = void 0;\nvar usStates = [{\n 'name': 'Alabama',\n 'abbreviation': 'AL'\n}, {\n 'name': 'Alaska',\n 'abbreviation': 'AK'\n}, {\n 'name': 'American Samoa',\n 'abbreviation': 'AS'\n}, {\n 'name': 'Arizona',\n 'abbreviation': 'AZ'\n}, {\n 'name': 'Arkansas',\n 'abbreviation': 'AR'\n}, {\n 'name': 'California',\n 'abbreviation': 'CA'\n}, {\n 'name': 'Colorado',\n 'abbreviation': 'CO'\n}, {\n 'name': 'Connecticut',\n 'abbreviation': 'CT'\n}, {\n 'name': 'Delaware',\n 'abbreviation': 'DE'\n}, {\n 'name': 'District Of Columbia',\n 'abbreviation': 'DC'\n}, {\n 'name': 'Federated States Of Micronesia',\n 'abbreviation': 'FM'\n}, {\n 'name': 'Florida',\n 'abbreviation': 'FL'\n}, {\n 'name': 'Georgia',\n 'abbreviation': 'GA'\n}, {\n 'name': 'Guam',\n 'abbreviation': 'GU'\n}, {\n 'name': 'Hawaii',\n 'abbreviation': 'HI'\n}, {\n 'name': 'Idaho',\n 'abbreviation': 'ID'\n}, {\n 'name': 'Illinois',\n 'abbreviation': 'IL'\n}, {\n 'name': 'Indiana',\n 'abbreviation': 'IN'\n}, {\n 'name': 'Iowa',\n 'abbreviation': 'IA'\n}, {\n 'name': 'Kansas',\n 'abbreviation': 'KS'\n}, {\n 'name': 'Kentucky',\n 'abbreviation': 'KY'\n}, {\n 'name': 'Louisiana',\n 'abbreviation': 'LA'\n}, {\n 'name': 'Maine',\n 'abbreviation': 'ME'\n}, {\n 'name': 'Marshall Islands',\n 'abbreviation': 'MH'\n}, {\n 'name': 'Maryland',\n 'abbreviation': 'MD'\n}, {\n 'name': 'Massachusetts',\n 'abbreviation': 'MA'\n}, {\n 'name': 'Michigan',\n 'abbreviation': 'MI'\n}, {\n 'name': 'Minnesota',\n 'abbreviation': 'MN'\n}, {\n 'name': 'Mississippi',\n 'abbreviation': 'MS'\n}, {\n 'name': 'Missouri',\n 'abbreviation': 'MO'\n}, {\n 'name': 'Montana',\n 'abbreviation': 'MT'\n}, {\n 'name': 'Nebraska',\n 'abbreviation': 'NE'\n}, {\n 'name': 'Nevada',\n 'abbreviation': 'NV'\n}, {\n 'name': 'New Hampshire',\n 'abbreviation': 'NH'\n}, {\n 'name': 'New Jersey',\n 'abbreviation': 'NJ'\n}, {\n 'name': 'New Mexico',\n 'abbreviation': 'NM'\n}, {\n 'name': 'New York',\n 'abbreviation': 'NY'\n}, {\n 'name': 'North Carolina',\n 'abbreviation': 'NC'\n}, {\n 'name': 'North Dakota',\n 'abbreviation': 'ND'\n}, {\n 'name': 'Northern Mariana Islands',\n 'abbreviation': 'MP'\n}, {\n 'name': 'Ohio',\n 'abbreviation': 'OH'\n}, {\n 'name': 'Oklahoma',\n 'abbreviation': 'OK'\n}, {\n 'name': 'Oregon',\n 'abbreviation': 'OR'\n}, {\n 'name': 'Palau',\n 'abbreviation': 'PW'\n}, {\n 'name': 'Pennsylvania',\n 'abbreviation': 'PA'\n}, {\n 'name': 'Puerto Rico',\n 'abbreviation': 'PR'\n}, {\n 'name': 'Rhode Island',\n 'abbreviation': 'RI'\n}, {\n 'name': 'South Carolina',\n 'abbreviation': 'SC'\n}, {\n 'name': 'South Dakota',\n 'abbreviation': 'SD'\n}, {\n 'name': 'Tennessee',\n 'abbreviation': 'TN'\n}, {\n 'name': 'Texas',\n 'abbreviation': 'TX'\n}, {\n 'name': 'Utah',\n 'abbreviation': 'UT'\n}, {\n 'name': 'Vermont',\n 'abbreviation': 'VT'\n}, {\n 'name': 'Virgin Islands',\n 'abbreviation': 'VI'\n}, {\n 'name': 'Virginia',\n 'abbreviation': 'VA'\n}, {\n 'name': 'Washington',\n 'abbreviation': 'WA'\n}, {\n 'name': 'West Virginia',\n 'abbreviation': 'WV'\n}, {\n 'name': 'Wisconsin',\n 'abbreviation': 'WI'\n}, {\n 'name': 'Wyoming',\n 'abbreviation': 'WY'\n}];\nexports.usStates = usStates;\nvar usStates_LV = usStates.map(function (state) {\n return {\n label: state.name,\n value: state.abbreviation\n };\n});\nexports.usStates_LV = usStates_LV;\n\nvar getUsStates_LV = function getUsStates_LV() {\n usStates.map(function (state) {\n return {\n label: state.name,\n value: state.abbreviation\n };\n });\n};\n\nexports.getUsStates_LV = getUsStates_LV;\nvar _default = usStates;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.DELETE_RECIPE = exports.SAVE_RECIPE = exports.UPDATE_RECIPE = exports.CREATE_RECIPE = exports.GET_RECIPE = exports.SEARCH_RECIPES = exports.GET_RECIPES = exports.INGREDIENT_FRAGMENT = void 0;\n\nvar _graphqlTag = _interopRequireDefault(require(\"graphql-tag\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _templateObject8() {\n var data = _taggedTemplateLiteral([\"\\n mutation deleteRecipe($id: ID!) {\\n data: deleteRecipe(id: $id) {\\n id\\n }\\n }\\n\"]);\n\n _templateObject8 = function _templateObject8() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject7() {\n var data = _taggedTemplateLiteral([\"\\n mutation saveRecipe($id: ID, $type: String!, $public: Boolean, $clone: Boolean,\\n $instructions: String, $servingSize: Decimal,\\n $dietNames: [String!], $ingredients: [IngredientInput!]!) {\\n data: saveRecipe(id: $id, type: $type, public: $public, clone: $clone,\\n instructions: $instructions, servingSize: $servingSize,\\n dietNames: $dietNames, ingredients: $ingredients) {\\n id\\n type\\n typeLabel\\n shortTypeLabel\\n name\\n public\\n totalG\\n kcal\\n protein\\n fat\\n carbs\\n fiber\\n sugar\\n sodium\\n proteinPct\\n fatPct\\n carbsPct\\n labelNames\\n dietNames\\n mealCount\\n ingredients {\\n ...IngredientDetail\\n }\\n instructions\\n updatedAt\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject7 = function _templateObject7() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject6() {\n var data = _taggedTemplateLiteral([\"\\n mutation saveRecipe($id: ID!, $type: String!, $public: Boolean, $clone: Boolean,\\n $instructions: String,\\n $dietNames: [String!], $ingredients: [IngredientInput!]!) {\\n data: saveRecipe(id: $id, type: $type, public: $public, clone: $clone,\\n instructions: $instructions,\\n dietNames: $dietNames, ingredients: $ingredients) {\\n id\\n }\\n }\\n\"]);\n\n _templateObject6 = function _templateObject6() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject5() {\n var data = _taggedTemplateLiteral([\"\\n mutation createRecipe($type: String!, $public: Boolean, $dietNames: [String!],\\n $instructions: String,\\n $ingredients: [IngredientInput!]!) {\\n data: createRecipe(type: $type, public: $public, dietNames: $dietNames,\\n instructions: $instructions,\\n ingredients: $ingredients) {\\n id\\n }\\n }\\n\"]);\n\n _templateObject5 = function _templateObject5() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject4() {\n var data = _taggedTemplateLiteral([\"\\n query Recipe($id: ID!) {\\n data: Recipe(id: $id) {\\n id\\n type\\n typeLabel\\n shortTypeLabel\\n name\\n public\\n totalG\\n kcal\\n protein\\n fat\\n carbs\\n fiber\\n sugar\\n sodium\\n proteinPct\\n fatPct\\n carbsPct\\n labelNames\\n dietNames\\n mealCount\\n ingredients {\\n ...IngredientDetail\\n }\\n instructions\\n updatedAt\\n }\\n }\\n \", \"\\n\"]);\n\n _templateObject4 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n var data = _taggedTemplateLiteral([\"\\n query allRecipes($page: Int, $perPage: Int, $filter: RecipeFilter) {\\n items: allRecipes(page: $page, perPage: $perPage, filter: $filter) {\\n id\\n type\\n typeLabel\\n shortTypeLabel\\n name\\n public\\n status\\n totalG\\n kcal\\n proteinPct\\n fatPct\\n carbsPct\\n ingredients {\\n id\\n name\\n }\\n __typename\\n }\\n total: _allRecipesMeta(page: $page, perPage: $perPage, filter: $filter) {\\n count\\n __typename\\n }\\n }\\n\"]);\n\n _templateObject3 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteral([\"\\n query allRecipes($page: Int, $perPage: Int, $sortField: String, $sortOrder: String, $filter: RecipeFilter) {\\n items: allRecipes(page: $page, perPage: $perPage, sortField: $sortField, sortOrder: $sortOrder, filter: $filter) {\\n id\\n type\\n typeLabel\\n shortTypeLabel\\n name\\n public\\n status\\n ingredients {\\n id\\n foodId\\n name\\n apiRef\\n }\\n __typename\\n }\\n total: _allRecipesMeta(page: $page, perPage: $perPage, filter: $filter) {\\n count\\n __typename\\n }\\n }\\n\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n fragment IngredientDetail on Ingredient {\\n id\\n foodId\\n name\\n fixed\\n foodFixed\\n fixedQty\\n fixedUnit\\n apiRef\\n qty\\n unit\\n qtyG\\n kcal\\n protein\\n fat\\n carbs\\n fiber\\n sugar\\n sodium\\n kcalG\\n proteinG\\n fatG\\n carbsG\\n fiberG\\n sugarG\\n sodiumG\\n goesWithId\\n goesWith {\\n id\\n name\\n }\\n }\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nvar INGREDIENT_FRAGMENT = (0, _graphqlTag.default)(_templateObject());\nexports.INGREDIENT_FRAGMENT = INGREDIENT_FRAGMENT;\nvar GET_RECIPES = (0, _graphqlTag.default)(_templateObject2());\nexports.GET_RECIPES = GET_RECIPES;\nvar SEARCH_RECIPES = (0, _graphqlTag.default)(_templateObject3());\nexports.SEARCH_RECIPES = SEARCH_RECIPES;\nvar GET_RECIPE = (0, _graphqlTag.default)(_templateObject4(), INGREDIENT_FRAGMENT);\nexports.GET_RECIPE = GET_RECIPE;\nvar CREATE_RECIPE = (0, _graphqlTag.default)(_templateObject5());\nexports.CREATE_RECIPE = CREATE_RECIPE;\nvar UPDATE_RECIPE = (0, _graphqlTag.default)(_templateObject6());\nexports.UPDATE_RECIPE = UPDATE_RECIPE;\nvar SAVE_RECIPE = (0, _graphqlTag.default)(_templateObject7(), INGREDIENT_FRAGMENT);\nexports.SAVE_RECIPE = SAVE_RECIPE;\nvar DELETE_RECIPE = (0, _graphqlTag.default)(_templateObject8());\nexports.DELETE_RECIPE = DELETE_RECIPE;\nvar _default = {\n GET_LIST: GET_RECIPES,\n GET_ONE: GET_RECIPE,\n CREATE: CREATE_RECIPE,\n UPDATE: UPDATE_RECIPE // DELETE: deleteFood,\n\n};\nexports.default = _default;","import { colors } from '@balance/lib/styles'\nimport { createMuiTheme } from '@material-ui/core/styles'\n\nconst theme = createMuiTheme({\n palette: {\n background: {\n main: '#fff',\n },\n primary: {\n main: colors.primary,\n },\n secondary: {\n main: colors.secondary,\n },\n error: {\n main: colors.danger,\n },\n warning: {\n main: colors.warning,\n }\n },\n colors: colors,\n content: {\n padding: 12,\n color: '#444',\n },\n typography: {\n fontFamily: [\n '\"Open Sans\"',\n // '\"Helvetica Neue\"',\n 'Helvetica',\n // 'Arial',\n 'sans-serif',\n ],\n useNextVariants: true,\n },\n})\n\nexport default theme\n","import React from 'react'\n\nexport const NotificationContext = React.createContext({\n message: {}, // data-only message to be processed silently\n notification: {}, // user-facing message requiring interaction\n})\n\nexport const NotificationProvider = NotificationContext.Provider\nexport const NotificationConsumer = NotificationContext.Consumer\n\nexport default NotificationContext\n","// @flow\n// import firebase from 'react-native-firebase'\nimport get from 'lodash/get'\n//\n// const uuidv4 = require('uuid/v4')\n//\nexport const CHANNEL = 'bod-channel'\n//\n// export const messaging = firebase.messaging\n\nexport function getMessaging (): Object {\n const messaging = get(window, 'cordova.plugins.firebase.messaging')\n if (messaging) {\n return messaging\n }\n return {}\n}\n\nexport function init () {\n // console.log('notifications.init', window.FCMPlugin, window.FCMPluginNG)\n\n const messaging = get(window, 'cordova.plugins.firebase.messaging')\n if (messaging) {\n console.log('using FCM messaging plugin', messaging)\n }\n\n if (window.FCMPluginNG) {\n window.FCMPluginNG.getToken(function (token) {\n console.info('token', token)\n })\n }\n\n if (window.FCMPlugin) {\n window.FCMPlugin.getToken(function (token) {\n //this is the FCM token which can be used\n //to send notification to specific device\n // console.log(token)\n //window.FCMPlugin.onNotification( onNotificationCallback(data), successCallback(msg), errorCallback(err) )\n //Here you define your application behaviour based on the notification data.\n window.FCMPlugin.onNotification(function (data) {\n // console.log(data)\n //data.wasTapped == true means in Background : Notification was received on device tray and tapped by the user.\n //data.wasTapped == false means in foreground : Notification was received in foreground. Maybe the user needs to be notified.\n if (data.wasTapped) {\n //Notification was received on device tray and tapped by the user.\n alert(JSON.stringify(data))\n } else {\n //Notification was received in foreground. Maybe the user needs to be notified.\n alert(JSON.stringify(data))\n }\n })\n })\n\n }\n\n initChannel()\n}\n\n//\nexport const initChannel = async () => {\n // console.log('trying to setup channel for android ....')\n // A channel is required for Android 8 (API 26):\n// const channel = new firebase.notifications.Android.Channel(CHANNEL, 'Queful',\n// firebase.notifications.Android.Importance.Max)\n// channel.setDescription('Queful notifications channel')\n//\n// // Create the channel\n// firebase.notifications().android.createChannel(channel)\n}\n//\nexport const getToken = () => {\n return new Promise((resolve, reject) => {\n getMessaging().getToken()\n .then(function (token) {\n // console.log('Got device token: ', token)\n resolve(token)\n })\n .catch(function (err) {\n console.log(err)\n reject(err)\n })\n })\n}\n//\n// export const hasPermission = async () => {\n// return await firebase.messaging().hasPermission()\n// }\n//\nexport const requestPermission = async () => {\n // user doesn't have permission\n // console.log('requesting user permission ... ')\n return new Promise((resolve, reject) => {\n try {\n\n getMessaging().requestPermission({ forceShow: true }).then(function () {\n // console.log('user granted permission!')\n resolve(getToken())\n })\n\n // User has authorised\n\n } catch (error) {\n // console.log('user denied permission!', error)\n reject(error)\n // User has rejected permissions\n }\n })\n}\n//\n// //\n// // const enabled = await firebase.messaging().hasPermission()\n// // if (enabled) {\n// // console.log('user already provided permission')\n// // // user has permissions\n// //\n// // this.setupListeners()\n// //\n// // } else {\n// // // user doesn't have permission\n// // console.log('no user permission ... asking')\n// // try {\n// // await firebase.messaging().requestPermission()\n// // console.log('user granted permission!')\n// // // User has authorised\n// // } catch (error) {\n// // console.log('user denied permission!', error)\n// // // User has rejected permissions\n// // }\n// // }\n// // }\n//\n// export const send = (title, body, data, id = uuidv4()) => {\n//\n// // console.log('skipping notification', title, body)\n// // return null;\n//\n// initChannel()\n//\n// const notif = new firebase.notifications.Notification().\n// setNotificationId(id).\n// setTitle(title).\n// setBody(body).\n// android.setChannelId(CHANNEL).\n// android.setSmallIcon('queful').\n// setData(data)\n//\n// console.log('notif', notif)\n// firebase.notifications().displayNotification(notif)\n// }\n","// import React from 'react'\nimport get from 'lodash/get'\n// import { Platform } from 'react-native'\n\n// import DeviceInfo from 'react-native-device-info'\n\n// helper method for saving device token to server\nexport const info = () => {\n return {\n platform: get(window, 'device.platform'),\n platformType: get(window, 'device.model'),\n platformVersion: get(window, 'device.version'),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n }\n}\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { Mutation } from 'react-apollo'\nimport get from 'lodash/get'\nimport { SAVE_DEVICE } from '@balance/lib/api/user'\n\nimport { NotificationProvider } from './NotificationContext'\nimport { getMessaging, getToken, init, requestPermission } from '../../lib/notifications'\n\nimport { info } from '../../lib/device'\n\ntype Props = {}\ntype State = {\n enabled: boolean, // user has granted permission\n message: object,\n fcmToken: ?string,\n notification: object,\n hasPermission: boolean,\n saveDevice: Function,\n goto: Function,\n}\n\nconst ENABLED = true\n\nclass NotificationMonitor extends PureComponent {\n static defaultProps = {}\n\n constructor (props: Props) {\n super(props)\n\n this.seen = {}\n\n console.log('DataMessageMonitor()')\n this.state = {\n enabled: false,\n message: {},\n notification: {},\n }\n }\n\n async componentDidMount () {\n // console.log('DataMessageMonitor.cDM')\n if (!ENABLED) { return }\n // console.log('DataMessageMonitor.cDM setting up')\n\n init()\n\n let token = await requestPermission()\n if (token) {\n // console.log('user has a token!', token)\n await this.saveToken(token, false)\n this.setupListeners()\n this.setState({ fcmToken: token, hasPermission: true })\n } else {\n console.log('user does not yet have a token or has not provided permission!')\n // user doesn't have a device token yet\n }\n\n getMessaging().setBadge(0) // always set to 0 when app is opened\n }\n\n componentWillUnmount () {\n this.messageListener && this.messageListener() // yes, this is weird but it's an unsubscribe function\n this.notificationDisplayedListener && this.notificationDisplayedListener()\n this.notificationListener && this.notificationListener()\n this.notificationOpenedListener && this.notificationOpenedListener()\n this.onTokenRefreshListener && this.onTokenRefreshListener()\n }\n\n process = (message) => {\n // console.log('received message', JSON.stringify(message))\n const mid = message.messageId || message.notificationId\n if (mid && !this.seen[mid]) {\n this.seen[mid] = true\n\n // console.log('processing message', message)\n\n // const action = get(message, 'data.action')\n // if (action) {\n // console.log('got an action!', action)\n // this.setState({ message })\n // }\n // const body = message.message || ''\n // const notificationOut = new firebase.notifications.Notification().setNotificationId(mid).\n // setTitle('Notice!').\n // setBody(body).\n // android.setChannelId(CHANNEL).\n // android.setSmallIcon('queful').\n // setData(message.data)\n // console.log('message out', notificationOut)\n // if (body) {\n // firebase.notifications().displayNotification(notificationOut)\n // }\n }\n }\n\n show = (notification) => {\n const mid = notification.messageId || notification.notificationId\n if (mid && !this.seen[mid]) {\n this.seen[mid] = true\n\n // console.log('showing notification', notification)\n //\n // const notificationOut = new firebase.notifications.Notification().setNotificationId(mid).\n // setTitle('Alert!').\n // setBody('My notification body').\n // setData(notification.data)\n // console.log('notificationOut', notificationOut)\n // firebase.notifications().displayNotification(notificationOut)\n }\n }\n\n saveToken = async (token, replace: boolean = false) => {\n // console.log('saving token to server', token)\n if (token) {\n const currentToken = this.state.fcmToken\n await this.props.saveDevice({ variables: { attributes: { ...info(), token, currentToken, replace } } })\n }\n }\n\n setupListeners = async () => {\n const messaging = getMessaging()\n if (!messaging) { return }\n\n messaging.onMessage((payload) => {\n // console.log('New foreground FCM message: ', payload, JSON.stringify(payload))\n\n let notification = {\n ...payload,\n messageId: get(payload, 'gcm.message_id'),\n }\n messaging.setBadge(0)\n this.process(notification)\n })\n\n messaging.onBackgroundMessage((payload) => {\n // console.log('New background FCM message: ', payload, JSON.stringify(payload))\n\n let notification = {\n ...payload,\n messageId: get(payload, 'gcm.message_id'),\n }\n messaging.setBadge(1)\n this.process(notification)\n\n if (notification.goto) {\n this.props.goto(notification.goto)\n }\n })\n\n messaging.onTokenRefresh(() => {\n // console.log('Device token updated')\n let token = getToken()\n this.saveToken(token, true)\n })\n\n// const initialOpenNotification: initialOpenNotification = await firebase.notifications().getInitialNotification()\n// if (initialOpenNotification) {\n// console.log('app was opened via notification from firebase!', initialOpenNotification)\n// // App was opened by a notification\n// // Get the action triggered by the notification being opened\n// const action = initialOpenNotification.action\n// // Get information about the notification that was opened\n// const notification: Notification = initialOpenNotification.notification\n// this.process(notification)\n// }\n//\n// this.messageListener = firebase.messaging().onMessage((message: RemoteMessage) => {\n// // Process your message as required\n// console.log('got a message from firebase!', message)\n// this.process(message)\n// })\n//\n// this.notificationDisplayedListener = firebase.notifications().\n// onNotificationDisplayed((notification: Notification) => {\n// // Process your notification as required\n// // ANDROID: Remote notifications do not contain the channel ID. You will have to specify this manually if you'd like to re-display the notification.\n// console.log('got a notificationDisplayed from firebase!', notification)\n// this.process(notification)\n// })\n//\n// this.notificationListener = firebase.notifications().onNotification((notification: Notification) => {\n// // Process your notification as required\n// console.log('got a notification from firebase!', notification)\n// this.process(notification)\n// // this.show(notification)\n// })\n//\n// this.notificationOpenedListener = firebase.notifications().\n// onNotificationOpened((notificationOpen: NotificationOpen) => {\n// console.log('notification opened from firebase!', notificationOpen)\n// // Get the action triggered by the notification being opened\n// const action = notificationOpen.action\n// // Get information about the notification that was opened\n// const notification: Notification = notificationOpen.notification\n// this.process(notification)\n// })\n//\n// this.onTokenRefreshListener = firebase.messaging().onTokenRefresh(fcmToken => {\n// // Process your token as required\n// console.log('got a new token?', fcmToken)\n// this.saveToken(fcmToken, true)\n// })\n\n }\n\n render () {\n // console.log('NotificationMonitor.render', this.state)\n return (\n \n {this.props.children}\n \n )\n }\n}\n\nconst DisabledNotificationMonitor = ({ children }) => (children)\n\nconst WrappedNotificationMonitor = ({ enabled, children, ...rest }) => {\n // console.log('WrappedNotificationMonitor', enabled)\n if (!enabled) {\n // console.log('WrappedNotificationMonitor skipping', enabled)\n return \n }\n\n // console.log('WrappedNotificationMonitor enabling....', enabled)\n return (\n \n {(saveDevice, { data: saveDeviceData, loading, error }) => {\n // console.log('wrapped notification props', { enabled, saveDevice, saveDeviceData })\n return (\n \n )\n }}\n \n )\n}\n\nexport default ENABLED ? WrappedNotificationMonitor : DisabledNotificationMonitor\n\n","import React, { PureComponent } from 'react'\n\nexport class NoMatch extends PureComponent {\n render () {\n return (\n
\n

Not Found!

\n
\n )\n }\n}\n\nexport default NoMatch\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport classNames from 'classnames'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport IconButton from '@material-ui/core/IconButton'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\n\nimport { Edit, Delete, MoreVertIcon, Search } from '../../styles/icons'\n\ntype Props = {\n classes: Object,\n children: any,\n label: string,\n value: string,\n half: boolean,\n shaded: boolean,\n searchable: boolean,\n editable: boolean,\n onSearch: Function,\n onEdit: Function,\n onDelete: Function,\n disableUnderline: boolean,\n menu?: Array,\n}\n\ntype State = {\n menuOpen: boolean,\n anchorEl: ?any,\n}\n\nconst styles = theme => ({\n wrapper: {\n paddingRight: 4 * theme.spacing.unit,\n },\n textField: {\n // backgroundColor: '#eee',\n // margin: theme.spacing.unit,\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n // marginRight: 2 * theme.spacing.unit,\n // width: '95%',\n // paddingRight: theme.spacing.unit,\n // maxWidth: 300,\n },\n shaded: {\n backgroundColor: '#eee',\n },\n inputField: {\n padding: [[0, theme.spacing.unit * 2, theme.spacing.unit]],\n color: [theme.content.color, '!important'],\n '&:before': {\n borderBottomStyle: ['solid', '!important'],\n borderBottomWidth: ['2px', '!important'],\n },\n },\n inputLabel: {\n left: 4,\n color: ['#9E9E9E', '!important'],\n },\n helperText: {\n marginTop: 0,\n padding: [[theme.spacing.unit, theme.spacing.unit * 2]],\n backgroundColor: theme.palette.background.default,\n },\n menuItem: {\n '&:focus': {\n backgroundColor: theme.palette.primary.main,\n '& $primary, & $icon': {\n color: theme.palette.common.white,\n },\n },\n },\n primary: {},\n icon: {},\n})\n\nexport class DisplayField extends PureComponent {\n static defaultProps = {\n disableUnderline: false,\n }\n state = {\n anchorEl: null,\n menuOpen: false,\n }\n\n handleClick = (event: SyntheticEvent) => {\n this.setState({menuOpen: true, anchorEl: event.currentTarget})\n }\n\n handleClose = () => {\n this.setState({menuOpen: false, anchorEl: null})\n }\n\n handleEdit = () => {\n this.handleClose()\n this.props.onEdit && this.props.onEdit()\n }\n\n handleDelete = () => {\n this.handleClose()\n this.props.onDelete && this.props.onDelete()\n }\n\n handleAction = (onClick) => {\n // console.log('handleAction', onClick)\n this.handleClose()\n onClick && onClick()\n }\n\n customMenu = () => {\n return this.renderMenuAdornment('custom-menu', this.props.menu)\n }\n\n editMenu = () => {\n const {editable, onDelete} = this.props\n\n if (!editable) {\n return null\n }\n\n if (!onDelete) {\n return (\n \n \n \n \n \n )\n }\n\n const menuOptions = [\n {\n label: 'Edit',\n icon: ,\n onClick: this.props.onEdit,\n },\n {\n label: 'Delete',\n icon: ,\n onClick: this.props.onDelete,\n },\n ]\n return this.renderMenuAdornment('edit-menu', menuOptions)\n }\n\n renderSearchAdornment = () => {\n return (\n \n \n \n \n \n )\n }\n\n renderMenuAdornment = (id, menuOptions) => {\n // console.log('renderMenuAdornment', id, menuOptions)\n const {classes} = this.props\n const {anchorEl} = this.state\n return (\n \n \n \n \n \n {menuOptions.map((option, i) => (\n this.handleAction(option.onClick)}>\n {option.icon && (\n \n {option.icon}\n \n )}\n \n \n ),\n )}\n \n \n )\n }\n\n render () {\n const {children, classes, label, value, menu, searchable, editable, shaded, touched, error, disableUnderline, onEdit, onDelete, half, ...props} = this.props\n // console.log('DisplayField.render', {label, value, touched, error, props})\n\n let inputProps = {disabled: true, className: classes.inputField, disableUnderline}\n let menuAdornment = null\n if (searchable) {\n inputProps = {\n ...inputProps,\n disabled: false,\n endAdornment: this.renderSearchAdornment(),\n }\n } else {\n if (menu && menu.length > 0) {\n menuAdornment = this.customMenu()\n } else if (editable) {\n menuAdornment = this.editMenu()\n }\n if (menuAdornment) {\n inputProps = {\n ...inputProps,\n endAdornment: menuAdornment,\n }\n }\n }\n\n const fallbackValue = searchable ? '' : ' '\n return (\n \n {children}\n \n )\n }\n}\n\nexport default withStyles(styles)(DisplayField)\n","// @flow\nimport React from 'react'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport classNames from 'classnames'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport IconButton from '@material-ui/core/IconButton'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport Radio from '@material-ui/core/Radio'\nimport DisplayField from './DisplayField'\n\nimport { Delete } from '../../styles/icons'\n\ntype Props = {\n classes: Object,\n fieldProps: Object,\n children: any,\n name: string,\n value: string | number | any,\n label: string,\n required: boolean,\n editable: boolean,\n half: boolean,\n select: boolean,\n checkbox: boolean,\n radio: boolean,\n checked: boolean,\n deletable: boolean,\n onDelete: Function,\n touched: boolean,\n error: ?any,\n}\n\nconst styles = theme => ({\n wrapper: {\n paddingRight: 4 * theme.spacing.unit,\n },\n textField: {\n backgroundColor: '#eee',\n // margin: theme.spacing.unit,\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n // marginRight: 2 * theme.spacing.unit,\n // width: '95%',\n // paddingRight: theme.spacing.unit,\n // maxWidth: 300,\n },\n inputField: {\n // backgroundColor: '#eee',\n // padding: [[0, theme.spacing.unit * 2, theme.spacing.unit]],\n alignItems: 'center',\n },\n inputLabel: {\n // left: 4\n '&:focus': {\n left: 10,\n backgroundColor: 'transparent',\n },\n },\n select: {\n '&:focus': {\n backgroundColor: 'transparent',\n },\n },\n helperText: {\n marginTop: 0,\n padding: [[theme.spacing.unit, 0 * theme.spacing.unit * 2]],\n backgroundColor: theme.palette.background.default,\n },\n error: {\n color: theme.palette.error.main\n },\n deleteBtn: {\n width: 32,\n height: 32,\n },\n deleteIcon: {\n fontSize: 16,\n },\n checkbox: {\n width: '100%',\n },\n})\n\nconst FormField = ({ children, classes, className, name, value, defaultValue, label, required, select, radio, checkbox, checked, deletable, editable, onDelete, touched, error, fieldProps, half, ...props }: Props) => {\n\n if (defaultValue === null) {\n defaultValue = ''\n }\n if (value === null) {\n value = defaultValue\n }\n // console.log('FormField.render', value, defaultValue)\n\n // if (select) {\n // console.log('FormField', {label, value: props.value, touched, error, fieldProps, props})\n // }\n\n if (checkbox) {\n // console.log('checkbox', label, checked)\n return (\n \n }\n label={label}\n />\n )\n }\n\n if (radio) {\n return (\n } name={name} value={value} label={label} {...props} />\n )\n }\n\n let selectProps = {}\n if (select) {\n if (value === undefined) {\n value = ''\n }\n selectProps = {\n select: true,\n SelectProps: {\n SelectDisplayProps: {\n id: name,\n },\n // required: required,\n className: classNames(classes.inputField, classes.inputLabel, classes.select),\n },\n InputProps: {\n ...props.InputProps,\n // required: required,\n className: classNames(classes.inputField, classes.inputLabel, classes.select),\n },\n }\n }\n // console.log('select', selectProps)\n\n if (!editable) {\n return (\n \n )\n }\n\n const inputProps = { className: classes.inputField, ...fieldProps }\n if (deletable) {\n inputProps['endAdornment'] = (\n \n \n \n )\n }\n\n const helperText = (touched && error) ? error : props.helperText\n\n const inputLabelProps = props.multiline ? {\n shrink: (Boolean(defaultValue && defaultValue.length > 0)),\n } : {}\n return (\n \n {children}\n \n )\n}\n\nFormField.defaultProps = {\n editable: true,\n}\n\nexport default withStyles(styles)(FormField)\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport CoreButton from '@material-ui/core/Button'\nimport classNames from 'classnames'\n\n// import { colors } from '@balance/lib/styles'\n\nconst styles = theme => ({\n button: {\n marginRight: theme.spacing.unit,\n },\n primary: {\n // color: colors.yellow,\n // color: 'black',\n //\n // '&:hover, &:active': {\n // backgroundColor: '#e2d96e',\n // },\n },\n secondary: {\n // backgroundColor: colors.yellow,\n // borderColor: colors.yellow,\n // color: 'black',\n //\n // '&:hover, &:active': {\n // backgroundColor: '#e2d96e',\n // borderColor: '#e2d96e',\n // },\n },\n})\n\nexport const Button = ({ classes, className, primary, secondary, ...rest }) => {\n const isPrimary = primary || (rest.color && rest.color === 'primary')\n const isSecondary = secondary || (rest.color && rest.color === 'secondary')\n const myProps = {\n color: primary ? 'primary' : secondary ? 'secondary' : rest.color,\n variant: primary ? 'contained' : 'outlined',\n }\n const buttonClasses = classNames(\n [classes.button, isPrimary && classes.primary, isSecondary && classes.secondary, className])\n return (\n \n )\n}\n\nexport default withStyles(styles)(Button)\n","import React from 'react'\nimport { Link } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n// import Button from '@material-ui/core/Button'\nimport Button from './Button'\nconst styles = {}\n\nexport const ButtonLink = ({classes, primary, secondary, ...rest}) => {\n const myProps = {\n color: primary ? 'primary' : secondary ? 'secondary' : rest.color,\n variant: primary ? 'contained' : 'outlined',\n }\n return (\n \n )\n}\n\nexport default withStyles(styles)(SaveButton)\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport CoreButton from '@material-ui/core/ButtonBase'\n\nconst styles = {}\n\nexport const ButtonSimple = ({classes, ...rest}) => {\n return (\n \n )\n}\n\nexport default withStyles(styles)(ButtonSimple)\n","import React from 'react'\nimport { withStyles, Typography } from '@material-ui/core'\nimport classNames from 'classnames'\n\nconst styles = theme => ({\n inline: {\n display: 'inline',\n border: 'none',\n margin: 0,\n padding: 0,\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n },\n})\n\nconst InlineButton = ({classes, children, className, ...rest}) => {\n return (\n \n {children}\n \n )\n}\n\nexport default withStyles(styles)(InlineButton)\n","import Button from './Button'\nimport ButtonLink from './ButtonLink'\nimport ButtonBaseLink from './ButtonBaseLink'\nimport FAB from './FAB'\nimport ButtonSimple from './ButtonSimple'\nimport SaveButton from './SaveButton'\nimport InlineButton from './InlineButton'\n\nexport {\n Button,\n ButtonLink,\n ButtonBaseLink,\n FAB,\n ButtonSimple,\n SaveButton,\n InlineButton,\n}\n\nexport default Button\n","import React, { Fragment } from 'react'\n\nimport { Link } from 'react-router-dom'\n\nimport Divider from '@material-ui/core/Divider'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\n\nimport { colors } from '@balance/lib/styles'\n\nimport {\n Person, AccountCircle, Food, Grocery, SignOut, Settings, Payment, Clock, Help as HelpIcon, Warning,\n} from '../../styles/icons'\n\nimport { version as appVersion } from '../../../package.json'\n\nconst ListIcon = (props) => \n\nexport const loggedInMenu = (user) => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport const loggedOutMenu = (\n
\n \n \n \n \n \n \n \n \n
\n)\n\nexport const drawerHeader = (user) => {\n\n const buyNowText = {user.trialDaysLeft} days remaining
Sign up now!
\n const renewNowText = Renew now!\n return (\n \n \n \n \n \n \n \n {user.status === 'trial' && (\n \n \n \n \n \n \n )}\n {['lapsed', 'inactive', 'cancelled'].includes(user.status) && (\n \n \n \n \n \n \n )}\n \n )\n}\n\nexport const drawerFooter = (\n \n \n \n)\n","// @flow\n\nimport React, { PureComponent } from 'react'\nimport classnames from 'classnames'\nimport get from 'lodash/get'\n\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\nimport AppBar from '@material-ui/core/AppBar'\nimport Toolbar from '@material-ui/core/Toolbar'\nimport Drawer from '@material-ui/core/Drawer'\nimport Typography from '@material-ui/core/Typography'\nimport IconButton from '@material-ui/core/IconButton'\nimport Divider from '@material-ui/core/Divider'\nimport Snackbar from '@material-ui/core/Snackbar'\nimport SnackbarContent from '@material-ui/core/SnackbarContent'\n\nimport { isImpersonationActive } from '@balance/lib/api/authToken'\nimport { stopImpersonation } from '@balance/lib/api/user'\nimport { formatDate } from '@balance/lib/utils'\n\nimport { ButtonLink } from '../Button'\nimport { colors } from '@balance/lib/styles'\nimport { drawerFooter, drawerHeader, loggedInMenu, loggedOutMenu } from './SidebarMenu'\n\nimport { Cancel, MenuIcon, SignOut } from '../../styles/icons'\nimport logo from '../../assets/bod-logo-circle-sm.png'\nimport title from '../../assets/bod-title.png'\nimport { HelpButton } from './index'\n\ntype Props = {\n drawerOpen?: boolean,\n loggedIn?: boolean,\n showHelp: boolean,\n currentPath: string,\n orientation: 'portrait' | 'landscape',\n classes: Object,\n history: any,\n onLogin: Function,\n onLogout: Function,\n user?: Object,\n};\n\ntype State = {\n drawerOpen?: boolean,\n alertOpen: boolean,\n alertMessage: string,\n loggedIn?: boolean,\n};\n\nconst styles = theme => ({\n root: {\n flexGrow: 1,\n },\n appTitle: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: '1rem',\n\n [theme.breakpoints.up('sm')]: {\n fontSize: '1.5rem',\n },\n\n },\n bar: {\n backgroundColor: colors.lightGreen,\n // backgroundColor: colors.hiesCrimson,\n\n [theme.breakpoints.down('sm')]: {\n position: 'fixed',\n },\n '@media print': {\n display: 'none',\n },\n },\n headerSpacer: {\n // [theme.breakpoints.down('sm')]: {\n // marginBottom: 'calc(64 + var(--safe-area-top))',\n // },\n },\n menuButton: {\n marginLeft: -12,\n marginRight: 20,\n },\n rightButton: {\n backgroundColor: '#4d8402',\n },\n logo: {\n width: 44,\n height: 44,\n marginLeft: '-1rem',\n // marginRight: '0.5rem',\n },\n imgTitle: {\n backgroundImage: `url(${title})`,\n width: '100%',\n maxWidth: 200,\n // height: 50,\n backgroundSize: 'cover',\n backgroundPosition: 'center center',\n textIndent: '-999em',\n\n '@media screen and (max-width: 320px)': {\n display: 'none',\n },\n [theme.breakpoints.up('sm')]: {\n width: 250,\n },\n },\n sidebarContainer: {\n paddingTop: 'var(--safe-inset-top)', // 'env(safe-area-inset-top)',\n paddingLeft: 'var(--safe-inset-left)', // 'env(safe-area-inset-left)',\n },\n sidebarContainerLandscape: {\n paddingTop: 0,\n paddingLeft: 'var(--safe-inset-top)', //'env(safe-area-inset-top)',\n },\n sidebar: {\n '& a': {\n textDecoration: 'none',\n },\n },\n backdrop: {\n backgroundColor: 'rgba(0,0,0, 0.8)',\n },\n fullSideBar: {\n // paddingLeft: 5,\n // backgroundColor: 'transparent',\n },\n outerHeader: {\n // color: '#fff',\n //\n // '& svg, & span': {\n // color: '#fff !important',\n // },\n },\n outerFooter: {\n '& span': {\n fontSize: 12,\n },\n },\n menu: {},\n errorBar: {\n backgroundColor: theme.palette.error.dark,\n },\n warningBar: {\n backgroundColor: theme.colors.warning,\n },\n snackMessage: {\n display: 'flex',\n alignItems: 'center',\n },\n snackIcon: {\n marginRight: 10, // theme.spacing(0.5),\n },\n})\n\nexport class Header extends PureComponent {\n static defaultProps = {\n showHelp: false,\n }\n\n state = {\n drawerOpen: this.props.drawerOpen,\n alertOpen: false,\n alertMessage: '',\n isImpersonating: false,\n }\n\n async componentDidMount () {\n window.addEventListener('tour:openDrawer', this.openDrawer)\n window.addEventListener('tour:closeDrawer', this.closeDrawer)\n window.addEventListener('impersonation:status-change', this.updateImpersonationStatus)\n\n await this.updateImpersonationStatus()\n }\n\n componentWillUnmount () {\n window.removeEventListener('impersonation:status-change', this.updateImpersonationStatus)\n window.removeEventListener('tour:openDrawer', this.openDrawer)\n window.removeEventListener('tour:closeDrawer', this.closeDrawer)\n }\n\n async componentDidUpdate (): void {\n const { user } = this.props\n const notice = get(user, 'flash.notice')\n if (Boolean(notice) && notice !== this.state.alertMessage) {\n this.setState({ alertOpen: true, alertMessage: notice })\n }\n }\n\n updateImpersonationStatus = async () => {\n const isImpersonating = await isImpersonationActive()\n // console.log('header.updateImpersonationStatus: isImpersonating', isImpersonating)\n this.setState({ isImpersonating })\n }\n // componentWillReceiveProps (newProps: Props) {\n // // console.log('Header.cWRP', newProps)\n // if (newProps.loggedIn !== this.state.loggedIn) {\n // this.setState({loggedIn: newProps.loggedIn})\n // }\n // }\n\n openDrawer = () => {\n this.setState({ drawerOpen: true })\n }\n\n closeDrawer = () => {\n this.setState({ drawerOpen: false })\n }\n\n // NOTE: returns a function\n toggleDrawer = (open: boolean, e?: Event) => () => {\n // console.log('clicked', e && e.target)\n this.setState({\n drawerOpen: open,\n })\n }\n\n closeAlert = () => {\n this.setState({ alertOpen: false })\n }\n\n render () {\n // console.log('header render', this.props, this.state)\n const { classes, loggedIn, user, showHelp, orientation } = this.props\n if (!classes) { return null }\n\n const pendingCancellation = loggedIn && get(user, 'status') === 'pending_cancellation'\n const expiration = formatDate(get(user, 'expiresAt'), false, true)\n const isLandscape = orientation === 'landscape'\n return (\n \n \n \n \n \n \n \n \"\"\n
balance on demand.
\n
\n {loggedIn ? (\n \n {false && Logout}\n {/*Status: {user && user.status}*/}\n {showHelp && }\n \n ) : (\n \n Login\n \n )}\n
\n \n this.toggleDrawer(false, e)()}\n onKeyDown={this.toggleDrawer(false)}\n >\n
\n {user && drawerHeader(user)}\n
\n \n
\n {loggedIn ? loggedInMenu(user) : loggedOutMenu}\n
\n \n
\n {drawerFooter}\n
\n \n
\n {pendingCancellation && (\n \n \n \n )}\n {loggedIn && this.state.isImpersonating && (\n \n \n \n ,\n ]} />\n \n )}\n {this.state.alertMessage}}\n action={[\n \n \n ,\n ]}\n />\n
\n {/*
*/}\n \n )\n }\n}\n\nexport default withStyles(styles)(withRouter(Header))\n","// @flow\nimport React, { PureComponent } from 'react'\nimport classnames from 'classnames'\nimport { Link } from 'react-router-dom'\nimport { Typography, withStyles } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\n\nimport { colors } from '@balance/lib/styles'\nimport { API_URL, getApiUrl } from '@balance/lib/config/constants'\n\ntype Props = {}\ntype State = {}\n\nconst styles = theme => ({\n footer: {\n textTransform: 'lowercase',\n marginTop: 0,\n padding: [[theme.spacing.unit, theme.spacing.unit * 2]],\n backgroundColor: colors.darkGray,\n color: 'white',\n\n '& a': {\n color: 'white',\n },\n\n [theme.breakpoints.up('xs')]: {\n marginTop: theme.spacing.unit * 12,\n // marginTop: 0,\n },\n\n [theme.breakpoints.up('sm')]: {\n marginTop: 0,\n },\n },\n appFooter: {\n backgroundColor: colors.lightGreen,\n color: '#333333',\n\n '& a': {\n color: '#333333',\n },\n },\n info: {\n textAlign: 'center',\n\n [theme.breakpoints.up('sm')]: {\n textAlign: 'left',\n },\n },\n links: {\n margin: [[theme.spacing.unit * 2, 0, 0]],\n padding: 0,\n display: 'flex',\n listStyle: 'none',\n textAlign: 'center',\n justifyContent: 'center',\n\n '& li': {\n display: 'inline',\n margin: [[0, 10]],\n },\n\n '& a': {\n textDecoration: 'none',\n },\n\n [theme.breakpoints.up('sm')]: {\n margin: 0,\n justifyContent: 'flex-end',\n },\n\n '@media print': {\n display: 'none',\n },\n },\n})\n\nclass Footer extends PureComponent {\n static defaultProps = {}\n\n render () {\n const { classes } = this.props\n return (\n \n \n \n © 2020 Balance on Demand, LLC. All Rights Reserved.\n \n \n
    \n
  • Terms of Use
  • \n
  • Privacy Policy
  • \n
  • Disclaimer
  • \n
\n
\n
\n {true && window.BOD_ENV && window.BOD_ENV === 'development' && (\n \n

\n {window.BOD_ENV} | {window.cordova ? ENV: cordova : ENV: web}\n
\n {API_URL} / {getApiUrl()}\n

\n
\n )}\n
\n
\n )\n }\n}\n\nexport default withStyles(styles)(Footer)\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\n\nimport CircularProgress from '@material-ui/core/CircularProgress'\n\nconst styles = theme => ({\n progress: {\n width: '1em',\n height: '1em',\n margin: 4,\n },\n})\n\nconst Spinner = withStyles(styles)(({ classes, ...props }) => {\n\n return (\n \n )\n})\n\nexport default Spinner\n","// @flow\nimport React, { PureComponent } from 'react'\n\nimport { withStyles } from '@material-ui/core/styles'\n\nimport Button from '../Button'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogContentText from '@material-ui/core/DialogContentText'\nimport DialogTitle from '@material-ui/core/DialogTitle'\n\ntype Props = {\n classes: Object,\n children?: any,\n onCancel: Function,\n cancelLabel: String,\n onProceed: Function,\n proceedLabel: String,\n dangerous: Boolean,\n title?: string,\n text?: string,\n open: boolean,\n}\n\ntype State = {\n open: boolean,\n}\n\nconst styles = theme => ({\n danger: {\n color: 'white',\n backgroundColor: theme.palette.error.main,\n borderColor: theme.palette.error.main,\n\n '&:hover, &:active, &:focus': {\n backgroundColor: theme.palette.error.dark,\n },\n },\n paper: {\n width: '50vw',\n },\n buttons: {\n textAlign: 'right'\n }\n})\n\nclass AlertDialog extends PureComponent {\n static defaultProps = {\n open: false,\n dangerous: false,\n cancelLabel: 'Cancel',\n proceedLabel: 'Proceed',\n }\n\n constructor (props: Props) {\n super(props)\n\n this.state = {\n open: props.open,\n }\n }\n\n UNSAFE_componentWillReceiveProps (newProps) {\n if (newProps.open !== this.state.open) {\n this.setState({open: newProps.open})\n }\n }\n\n handleCancel = () => {\n const {onCancel} = this.props\n onCancel && onCancel()\n this.setState({open: false})\n }\n\n handleProceed = () => {\n const {onProceed} = this.props\n onProceed && onProceed()\n this.setState({open: false})\n }\n\n render () {\n // console.log('Alert.render', this.props, this.state)\n const {classes, children, title, text, cancelLabel, proceedLabel, dangerous} = this.props\n\n const proceedProps = dangerous ? {className: classes.danger, color: 'default', variant: 'contained'} : {}\n\n return (\n \n \n {title || 'Alert'}\n \n \n \n {text || 'Your message here...'}\n \n \n \n {children}\n \n \n \n \n )\n }\n}\n\nexport default withStyles(styles)(AlertDialog)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport classnames from 'classnames'\nimport { withStyles } from '@material-ui/core/styles'\nimport CoreModal from '@material-ui/core/Modal'\n\nimport IconButton from '@material-ui/core/IconButton'\nimport Typography from '@material-ui/core/Typography'\nimport { Cancel } from '../../styles/icons'\n\ntype Props = {\n classes: Object,\n children?: any,\n title?: string,\n text?: string,\n open: boolean,\n onClose?: Function,\n showCloseButton: boolean,\n wrapperClassName: any,\n noPadding: boolean,\n transparent: boolean,\n pageCentered: boolean,\n hideBackdrop: boolean, // legacy\n}\n\ntype State = {\n open: boolean,\n}\n\nfunction getModalStyle (includeWrapper: boolean = false) {\n const top = includeWrapper ? 45 : 50\n const left = 50\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${left}%, -${top}%)`,\n }\n}\n\nconst SMALL_BREAK = 600\n\nconst styles = theme => ({\n wrapWrapper: {\n outline: 'none !important',\n },\n wrapper: {\n position: 'absolute',\n width: '90vw',\n minWidth: 300,\n maxWidth: 700,\n maxHeight: '90vh',\n height: '100%',\n overflow: 'hidden',\n // outline: '1px dotted yellow',\n outline: 'none',\n\n [theme.breakpoints.up(SMALL_BREAK)]: {\n width: '75vw',\n outline: 'none',\n },\n\n '&:focus': {\n outline: 'none'\n }\n },\n hasClose: {\n padding: theme.spacing.unit * 2,\n outline: 'none',\n },\n close: {\n marginRight: 0 - (theme.spacing.unit * 1.5),\n textAlign: 'right',\n color: 'white',\n\n '& a': {\n color: 'white',\n textDecoration: 'none',\n },\n '& button': {\n background: 'transparent',\n border: 'none',\n color: 'white',\n outline: 'none',\n },\n },\n closeButton: {\n color: 'white',\n },\n paper: {\n height: '100%',\n overflow: 'scroll',\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n padding: [[theme.spacing.unit * 2, theme.spacing.unit * 2, theme.spacing.unit * 4]],\n },\n transparentPaper: {\n backgroundColor: 'transparent',\n },\n paperHasClose: {\n height: `calc(100% - ${theme.spacing.unit * 6}px)`,\n },\n pageCentered: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n noPadding: {\n padding: 0,\n },\n title: {\n paddingRight: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n text: {\n paddingRight: theme.spacing.unit * 2,\n },\n buttons: {\n textAlign: 'right',\n },\n})\n\nclass Modal extends PureComponent {\n static defaultProps = {\n open: false,\n showCloseButton: false,\n noPadding: false,\n }\n state = {\n open: this.props.open,\n }\n\n handleOpen = () => {\n this.setState({ open: true })\n }\n\n handleClose = (e) => {\n e.preventDefault()\n const { onClose } = this.props\n onClose && onClose()\n this.setState({ open: false })\n }\n\n render () {\n const { classes, children, showCloseButton, wrapperClassName, noPadding, hideBackdrop, pageCentered, transparent } = this.props\n // console.log('Modal Render', this.props.open, this.state.open)\n\n const wrapperClass = classnames(classes.wrapper, showCloseButton && classes.hasClose, wrapperClassName)\n\n return (\n \n
\n
\n {showCloseButton && (\n
\n \n \n \n \n
\n )}\n
\n {children}\n
\n
\n
\n \n )\n }\n}\n\n// We need an intermediary variable for handling the recursive nesting.\nconst StyledModal = withStyles(styles)(Modal)\n\nexport default StyledModal\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport { Modal } from '../Modal'\nimport Spinner from './Spinner'\n\nconst styles = theme => ({\n wrap: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n label: {\n fontSize: 24,\n marginLeft: theme.spacing.unit,\n color: theme.colors.yellow,\n },\n spinner: {\n color: theme.colors.yellow,\n },\n progress: {\n width: '1em',\n height: '1em',\n margin: 4,\n },\n})\n\nconst FullPageSpinner = withStyles(styles)(({ classes, open, label = 'Loading ...', hideBackdrop, ...props }) => {\n return (\n \n
\n \n {label}\n
\n
\n )\n})\n\nexport default FullPageSpinner\n","\nexport const printStyles = theme => ({\n noPrint: {\n '@media print': {\n display: 'none',\n },\n },\n printOnly: {\n display: 'none',\n '@media print': {\n display: 'inline',\n },\n },\n printOneLine: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n\n '@media print': {\n flexDirection: 'row',\n alignItems: 'center',\n },\n },\n printTitle: {\n '@media print': {\n margin: [[0, 0, theme.spacing.unit * 2]],\n borderBottom: '1px solid #999',\n },\n },\n})\n\nexport default printStyles\n","import { colors } from '.'\n\nimport printStyles from './print'\n\nexport const globalStyles = theme => ({\n ...printStyles(theme),\n container: {\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap',\n padding: 20,\n margin: '0 auto',\n maxWidth: 1280,\n position: 'relative',\n },\n wrapper: {\n padding: 20,\n margin: '0 auto',\n maxWidth: 1280,\n position: 'relative',\n },\n error: {\n color: colors.danger,\n },\n section: {\n padding: 20,\n },\n icon: {\n // border: '1px solid red',\n },\n})\n\nexport default globalStyles\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport styles from '../../styles/global'\n\nfunction HelpContent ({ classes }) {\n return (\n \n

Glossary

\n
    \n
  • Basal Metabolic Rate: Otherwise known as “metabolism”. The amount of calories you\n would burn per day without factoring in movement and exercise.\n
  • \n
  • Daily Caloric Intake: The calculated target amount of calories you should consume\n in order to achieve your nutrition goals. You can adjust these amounts if needed.\n
  • \n
  • “Fixed” Ingredient: An ingredient in a recipe whose amount will not change\n regardless\n of the calorie and macronutrient goals for your meal plan.\n
  • \n
  • Grocery List: A compiled list of all food items required to fulfill your weekly\n meal plan. This list uses a typical packaging variety of each item.\n
  • \n
  • “Linked” Ingredient: An ingredient in a recipe whose amount will change\n proportionally to the ingredient with which it is linked.\n
  • \n
  • Macronutrient Target Percentages: The calculated target ratios of Protein, Fat, and\n Carbohydrates based on your goals and dietary restrictions. You can adjust these amounts if needed.\n
  • \n
  • Meal Plan: A display of the week’s meals and snacks whose ingredients and\n measurements follow the dietary restrictions, daily calorie intake and macronutrient percentages\n specific to you.\n
  • \n
  • Meal Prep: An alternate view of your meal plan. This view groups repeated meals\n and snacks together in order to aid in bulk meal preparation.\n
  • \n
  • Meal Settings: Parameters that determine the number of meal planning days, the\n start\n day of each meal plan, the level of variety and the number of meals and snacks per day.\n
  • \n
  • \n Remove (meal): Removes the meal and allows you to search for a replacement recipe\n from the library.\n
  • \n
  • \n Replace All Meals: Pull a different recipe from the library, adjusted to your goals,\n and replace everywhere in that week's meal plan.\n
  • \n
  • \n Replace Meal: Pull a different recipe from the library, adjusted to your goals.\n
  • \n
  • Trial Period: You have seven (7) days of free use until you are required to sign up\n for a monthly subscription.\n
  • \n
  • “Whole Serving Size?”: Indication that the full serving of an item is needed in\n order for a recipe to make sense. For example, 2 full slices of bread are needed in order to create a\n sandwich.\n
  • \n
\n\n

Serving Approximations

\n
    \n
  • 3-4 ounces of Meat/Fish = Palm of Your Hand
  • \n
  • 1 ounce of Nuts/Berries/Vegetables = 1 Handful
  • \n
  • 1 ounce of Crackers/Pretzels/Cereal = 2 Handfuls
  • \n
  • ½ ounce of Oil/Butter = 1 Tbsp / 1 spoonful
  • \n
  • 1 ounce of Oil/Butter = 2 Tbsp / 1 spoonfuls
  • \n
\n\n

Measurement Conversions

\n
    \n
  • 1 ounce = ~28 grams
  • \n
  • 2 ounces = ~56 grams
  • \n
  • 4 fluid ounces = ½ Cup
  • \n
  • 8 fluid ounces = 1 Cup
  • \n
\n
\n )\n}\n\nexport default withStyles(styles)(HelpContent)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport IconButton from '@material-ui/core/IconButton'\n\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport Slide from '@material-ui/core/Slide'\n\nimport { Button } from '../Button'\nimport { Email, Help as HelpIcon } from '../../styles/icons'\nimport HelpContent from './HelpContent'\n\nfunction Transition (props) {\n return \n}\n\nconst styles = theme => ({\n help: {\n display: 'inline-block',\n\n // [theme.breakpoints.down('xs')]: {\n // position: 'absolute',\n // top: -50,\n // right: 10,\n // },\n },\n wrapper: {\n paddingLeft: theme.spacing.unit,\n paddingRight: theme.spacing.unit,\n marginLeft: theme.spacing.unit * 2,\n marginRight: theme.spacing.unit * 2,\n border: '1px solid #ddd',\n overflowY: 'scroll',\n\n '&::-webkit-scrollbar': {\n width: 5,\n height: 5,\n },\n\n '&::-webkit-scrollbar-track': {\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.3)',\n borderRadius: 20,\n },\n\n '&::-webkit-scrollbar-thumb': {\n borderRadius: 20,\n backgroundColor: 'rgba(0, 0, 0, .3)',\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.5)',\n },\n\n },\n content: {},\n buttonIcon: {\n marginRight: theme.spacing.unit,\n },\n})\n\ntype Props = {}\ntype State = {\n helpShowing: boolean,\n}\n\nclass HelpButton extends PureComponent {\n static defaultProps = {}\n state = {\n helpShowing: false,\n }\n\n toggleHelp = () => {\n this.setState(prevState => ({ helpShowing: !prevState.helpShowing }))\n }\n\n render () {\n const { classes } = this.props\n return (\n
\n \n \n \n \n \n Helpful Information\n \n \n\n \n\n \n \n \n \n \n \n
\n )\n }\n}\n\nexport default withStyles(styles)(HelpButton)\n","import { colors } from '.'\n\nimport globalStyles from './global'\n\nexport const formStyles = theme => {\n const global = globalStyles(theme)\n return {\n ...global,\n // container: {\n // ...global.container,\n // },\n wrapper: {\n maxWidth: 500,\n margin: `${theme.spacing.unit * 2}px auto`,\n },\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: '100%',\n // flexBasis: 200,\n },\n textarea: {\n marginLeft: 0, // theme.spacing.unit,\n marginRight: 0, // theme.spacing.unit,\n padding: [[0, theme.spacing.unit]],\n width: '100%',\n // height: 150,\n\n '& label': {\n left: theme.spacing.unit,\n },\n },\n button: {\n margin: theme.spacing.unit,\n },\n menu: {\n width: 200,\n },\n link: {\n display: 'inline-block',\n color: colors.primary,\n margin: '1rem 10px 0',\n textDecoration: 'none',\n },\n listItem: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: theme.spacing.unit,\n '& > div': {\n paddingTop: 12, // static number from @material/IconButton\n },\n '& strong': {\n display: 'block',\n fontWeight: 500,\n },\n '& div span': {\n display: 'block',\n marginBottom: 12, // counter above padding\n },\n },\n checkboxOption: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n checkboxListItem: {},\n checkboxGroup: {\n display: 'block',\n },\n checkbox: {\n padding: 0,\n marginRight: theme.spacing.unit / 2,\n },\n checkboxWrappable: {\n\n [theme.breakpoints.up(400)]: {\n display: 'inline-flex',\n width: '50%',\n },\n\n [theme.breakpoints.up('md')]: {\n width: '33%',\n },\n\n [theme.breakpoints.up('lg')]: {\n width: '25%',\n },\n },\n radioListItem: {\n // '&:not(:last-child)': {\n // borderBottom: '1px solid #ccc',\n // },\n },\n overrideWarning: {\n margin: 0,\n }\n }\n}\n\nexport default formStyles\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport IconButton from '@material-ui/core/IconButton'\nimport { Spinner } from '../Global'\n\nimport FormField from './FormField'\nimport { Search } from '../../styles/icons'\nimport formStyles from '../../styles/forms'\n\ntype Props = {\n classes: Object,\n label: string,\n searching: boolean,\n notFound: boolean,\n iconStart: boolean,\n onSearch: Function,\n onChange: Function,\n // onSubmit: Function,\n}\n\ntype State = {\n query: ?string,\n searching: boolean,\n notFoundOpen: boolean,\n}\n\nconst styles = theme => {\n return {\n ...formStyles(theme),\n iconBtn: {\n padding: 6,\n marginTop: -10,\n },\n icon: {\n width: 24,\n height: 24,\n },\n }\n}\n\nclass SearchField extends PureComponent {\n static defaultProps = {\n label: 'Search',\n onSearch: () => {},\n }\n\n searchRef: { current: null | ?HTMLInputElement }\n\n constructor (props: Props) {\n super(props)\n\n this.searchRef = React.createRef()\n\n this.state = {\n query: '',\n searching: props.searching || false,\n notFoundOpen: props.notFound || false,\n }\n }\n\n cancelSearch = () => {\n this.setState({\n query: '',\n searching: false,\n })\n }\n\n focusSearch = () => {\n // console.log('focusing...', this.searchRef)\n this.searchRef && this.searchRef.current && this.searchRef.current.focus()\n }\n\n handleSearchChange = (e: SyntheticEvent) => {\n const { onChange } = this.props\n const term = e.target.value\n // console.log('handleSearchChange', term)\n this.setState({\n query: term,\n },\n onChange && onChange(term),\n )\n }\n\n handleSearch = async () => {\n // console.log('searching...', this.state.query)\n if (!this.state.query) {\n this.focusSearch()\n } else {\n this.setState({ searching: true })\n this.props.onSearch && await this.props.onSearch(this.state.query)\n this.setState({ searching: false })\n }\n }\n\n render () {\n // console.log('SearchField.render', this.props, this.state)\n const { label, classes, onSearch, onChange, searching : searchingProp, iconStart, ...rest } = this.props\n const { query, searching } = this.state\n\n const iconPlacement = iconStart ? 'start' : 'end'\n const iconAdornment = `${iconPlacement}Adornment`\n const adornment = (\n \n \n {searching ? (\n \n ) : (\n \n )}\n \n \n )\n\n const fieldProps = {\n [iconAdornment]: adornment,\n }\n\n return (\n \n )\n }\n}\n\nexport default withStyles(styles)(SearchField)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport classnames from 'classnames'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport Radio from '@material-ui/core/Radio'\nimport MuiRadioGroup from '@material-ui/core/RadioGroup'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport FormControl from '@material-ui/core/FormControl'\nimport FormLabel from '@material-ui/core/FormLabel'\n\nimport formStyles from '../../styles/forms'\n\ntype Props = {\n classes: Object,\n required: boolean,\n horizontal: boolean,\n name: string,\n label: string,\n value: string | number | null,\n children: Array,\n onChange: Function,\n error: string,\n touched: boolean,\n}\ntype State = {\n value: string,\n}\n\nconst styles = theme => ({\n ...formStyles(theme),\n formControl: {\n display: 'flex',\n flexDirection: 'column',\n },\n horizontal: {\n flexDirection: 'row',\n },\n group: {},\n})\n\nexport const Option = ({label, value, checked, description, name, ...props}: Object) => {\n // console.log('Option', name, label, value, checked)\n const fullLabel = description\n ? {label} — {description}\n : label\n\n return (\n }\n label={fullLabel} name={name} {...props} />\n )\n}\n\nexport class RadioGroup extends PureComponent {\n static defaultProps = {\n classes: {},\n required: false,\n horizontal: false,\n }\n\n state = {\n value: this.props.value || '',\n }\n\n UNSAFE_componentWillReceiveProps (nextProps): void {\n this.setState({value: nextProps.value})\n }\n\n // componentDidMount (): void {\n // this.props.onChange({value: this.props.value, name: this.props.name})\n // }\n\n handleChange = (event: SyntheticEvent, checked) => {\n // console.log('radiogroup change', checked, event.target, event.target.value)\n this.setState({value: event.target.value})\n this.props.onChange && this.props.onChange(event.target.value)\n }\n\n render () {\n const {classes, required, name, label, children, horizontal, error, touched} = this.props\n const hClass = horizontal ? classes.horizontal : null\n // console.log('RadioGroup.render', this.props, this.state)\n return (\n \n {label}\n \n {children}\n \n {touched && error && (\n
{error}
\n )}\n
\n )\n }\n}\n\nexport default withStyles(styles)(RadioGroup)\n","import React from 'react'\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\nimport MuiSwitch from '@material-ui/core/Switch'\n\nexport const Switch = ({label, value, checked, onChange, color, labelPlacement, ...rest}) => {\n // console.log('Switch?', label, value, checked, onChange)\n return (\n \n }\n label={label}\n labelPlacement={labelPlacement}\n />\n )\n}\n\nexport default Switch\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport MenuItem from '@material-ui/core/MenuItem'\n\nimport FormField from './FormField'\nimport { InlineButton } from '../Button'\n\ntype Props = {\n timeZones: Array,\n timezone: string,\n name: string,\n label: string,\n onChange: Function,\n}\ntype State = {\n editing: boolean,\n}\n\nconst styles = (theme) => ({})\n\nclass TimeZoneField extends PureComponent {\n static defaultProps = {\n timezone: '',\n timeZones: [],\n }\n\n state = {\n editing: false,\n }\n\n toggleEditing = (e) => {\n e.preventDefault()\n this.setState(prevState => ({ editing: !prevState.editing }))\n }\n\n renderForm = () => {\n const { timeZones, classes, onChange, timezone } = this.props\n\n return (\n \n \n {timeZones.map(option => (\n \n {option.name}\n \n ))}\n \n \n )\n }\n\n renderNonForm = () => {\n return (\n \n Time Zone: {this.props.timezone} (Incorrect or Need to\n change?)\n \n )\n }\n\n render () {\n return this.state.editing ? this.renderForm() : this.renderNonForm()\n }\n}\n\nexport default withStyles(styles)(TimeZoneField)\n","// @flow\nimport React, { cloneElement } from 'react'\nimport Grid from '@material-ui/core/Grid'\nimport { withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\n\nimport classnames from 'classnames'\n\ntype Props = {\n classes: Object,\n title?: string,\n children: any,\n icon?: any,\n noIcon: boolean,\n aside?: string,\n asideClass?: Object,\n}\n\nconst styles = theme => ({\n title: {\n margin: [[theme.spacing.unit * 2, 0]],\n lineHeight: '40px', // to match icon size\n },\n group: {\n marginBottom: theme.spacing.unit * 2,\n },\n firstCol: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n },\n iconCol: {\n marginTop: theme.spacing.unit * 2,\n },\n})\n\nexport const MultiField = ({children}: Object) => {\n const count = React.Children.count(children)\n if (count === 1) {\n return children\n }\n const size = count === 2 ? 6 : 12 // flow concession, for now\n return (\n \n {React.Children.map(children, (child, i) => {\n return (\n {child}\n )\n })}\n \n )\n}\n\nexport const FormGroup = ({children, icon, noIcon, aside, asideClass, title, classes, ...props}: Props) => {\n const mainColSize = noIcon ? 12 : 10\n // console.log('form group children', children)\n return (\n \n \n {noIcon || (\n \n {aside && (\n
{aside}
\n )}\n {icon && (\n
\n {cloneElement(icon, {color: 'inherit', style: {fontSize: 40}})}\n
\n )}\n
\n )}\n
\n \n \n {title && (\n \n {title || 'Page Title'}\n \n )}\n {children}\n \n \n
\n )\n}\n\nFormGroup.defaultProps = {\n asideClass: {},\n}\nexport default withStyles(styles)(FormGroup)\n","// @flow\nimport React from 'react'\nimport Grid from '@material-ui/core/Grid'\nimport { withStyles } from '@material-ui/core/styles'\nimport classNames from 'classnames'\n\ntype Props = {\n classes: Object,\n children: any,\n sub: boolean,\n fixed: boolean,\n right: boolean,\n inline: boolean,\n}\n\nconst styles = theme => ({\n container: {\n margin: [[theme.spacing.unit * 2, 0]],\n // backgroundColor: colors.actionBar,\n padding: 0,\n },\n actionBar: {\n textAlign: 'left',\n },\n right: {\n textAlign: 'right',\n },\n mainActionBar: {},\n subActionBar: {\n marginTop: theme.spacing.unit,\n //padding: [[0, 10]],\n },\n button: {\n display: 'inline-block',\n marginLeft: theme.spacing.unit / 2,\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit * 2,\n // marginRight: 0,\n\n // '&:first-child': {\n // marginLeft: 0,\n // },\n // '& button': {\n // marginRight: 0,\n // },\n },\n fixed: {\n borderTop: '1px solid #aaa',\n position: 'fixed',\n bottom: 0,\n left: 0,\n width: '100%',\n },\n transparent: {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n },\n inline: {\n display: 'inline-flex',\n width: 'auto',\n marginTop: 0,\n },\n})\n\nexport const ActionBar = ({ children, classes, className, sub, fixed, right, inline, transparent, ...props }: Props) => {\n const barType = sub ? classes.subActionBar : classes.mainActionBar\n const mainContainerClass = sub ? null : classes.container\n\n const containerClasses = classNames(\n mainContainerClass,\n fixed && classes.fixed,\n transparent && classes.transparent,\n inline && classes.inline,\n )\n return (\n \n \n {React.Children.map(children, (child) => {\n // console.log('actionbar child', child, i)\n if (child) {\n return (\n
{child}
\n )\n }\n })}\n
\n
\n )\n}\n\nexport default withStyles(styles)(ActionBar)\n\n","import React, { cloneElement, Fragment, PureComponent } from 'react'\nimport classnames from 'classnames'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport Grid from '@material-ui/core/Grid'\nimport Typography from '@material-ui/core/Typography'\n\nconst styles = theme => ({\n line: {},\n title: {\n margin: [[theme.spacing.unit, 0, theme.spacing.unit * 3]],\n lineHeight: 1.1,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n fontSize: '1.5rem',\n\n [theme.breakpoints.up('sm')]: {\n lineHeight: 0.9,\n fontSize: '2.25rem',\n },\n\n [theme.breakpoints.up('md')]: {\n lineHeight: 0.9,\n fontSize: '2.75rem',\n },\n\n '@media print': {\n fontSize: 32,\n margin: 0,\n },\n\n },\n iconCol: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n textAlign: 'center',\n },\n aside: {\n textAlign: 'right',\n\n '@media print': {\n display: 'none',\n },\n },\n condensed: {\n marginBottom: theme.spacing.unit,\n },\n})\n\n/**\n @param icon Component - allows passing of an icon, or if none passed, will reserve the space\n @param noIcon boolean - removes the spacing for the icon\n\n */\nclass PageTitle extends PureComponent {\n\n render () {\n const { title, children, icon, noIcon, condensed, aside, classes } = this.props\n // console.log('PageTitle', title, aside)\n const mainColSize = noIcon ? 12 : 10\n const titleClassNames = classnames(classes.title, condensed && classes.condensed)\n const theTitle = children || title || 'Page Title'\n return (\n \n \n {noIcon ? null : (\n \n {icon && (\n \n {cloneElement(icon, { color: 'primary', style: { fontSize: 40 } })}\n \n )}\n \n )}\n \n \n {theTitle}\n {aside && (\n
\n {aside}\n
\n )}\n
\n
\n
\n
\n )\n }\n}\n\nexport default withStyles(styles)(PageTitle)\n","import React, { Component } from 'react'\nimport { Link } from 'react-router-dom'\nimport classNames from 'classnames'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport IconButton from '@material-ui/core/IconButton'\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport Input from '@material-ui/core/Input'\nimport InputLabel from '@material-ui/core/InputLabel'\nimport FormControl from '@material-ui/core/FormControl'\nimport { FormField } from '../Form'\n\nimport { IS_DEV } from '@balance/lib/config/constants'\n\nimport { Button, ButtonLink } from '../Button'\n\nimport styles from '../../styles/forms'\nimport { colors } from '../../styles'\nimport { Visibility, VisibilityOff } from '../../styles/icons'\n\nimport PageTitle from '../PageTitle/PageTitle'\n\nexport class SignIn extends Component {\n state = {\n name: '',\n email: IS_DEV ? 'ghaygood@gmail.com' : '',\n password: IS_DEV ? '123123' : '',\n showPassword: false,\n error: this.props.error || '',\n useEnvironment: 'production',\n }\n\n allowEnvToggle = () => { return !!(IS_DEV && window.cordova && window.NativeStorage) }\n\n componentDidMount () {\n if (this.allowEnvToggle()) {\n window.NativeStorage.getItem('use_environment', this.updateEnvironment)\n }\n }\n\n updateEnvironment = (data) => {\n // console.log('updateEnvironment: got data!', data)\n if (data && ['production', 'staging', 'dev'].includes(data)) {\n this.setState({ useEnvironment: data })\n }\n }\n\n handleClickShowPassword = () => {\n this.setState({ showPassword: !this.state.showPassword })\n }\n\n handleMouseDownPassword = event => {\n event.preventDefault()\n }\n\n handleChangeEnvironment = (e, isChecked) => {\n const { value } = e.target\n // console.log('change environment', e, value, isChecked)\n if (this.allowEnvToggle()) {\n window.NativeStorage.setItem('use_environment', isChecked ? value : 'production', this.reload)\n }\n }\n\n reload = (e) => {\n // console.log('reload?', e)\n setTimeout(() => {window.location.reload()}, 200) // wait for save\n }\n\n handleChange = name => event => {\n this.setState({\n [name]: event.currentTarget.value.trim(),\n error: '',\n })\n }\n\n render () {\n // console.log('SignIn.render', API_URL, getApiUrl(), IS_DEV)\n const { classes, error } = this.props\n const { useEnvironment } = this.state\n\n return (\n
\n \n
\n
\n \n \n Password\n \n \n {this.state.showPassword ? : }\n \n \n }\n />\n \n
\n
\n

{error}

\n
\n
\n \n\n \n Want to create an account?\n \n\n
\n
\n\n Having trouble signing in ?
\n\n {/*cordova: {!!window.cordova ? 'yes' : 'no'}
*/}\n {/*nativestorage: {!!window.NativeStorage ? 'yes' : 'no'}
*/}\n {/*allowEnvToggle: {!!this.allowEnvToggle() ? 'yes' : 'no'}
*/}\n {/*useEnvironment: {useEnvironment}
*/}\n
\n {this.allowEnvToggle() && (\n
\n Use Environment:
\n \n \n \n
\n )}\n
\n
\n )\n }\n\n _login = async (event) => {\n event.stopPropagation()\n event.preventDefault()\n\n // console.log('_login start')\n const { email, password } = this.state\n await this.props.onLogin({ email, password })\n // console.log('_login result', result)\n }\n}\n\nexport default withStyles(styles)(SignIn)\n","import React, { Component } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter, Redirect } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { LOGIN } from '@balance/lib/api/user'\n\nimport SignIn from '../../components/User/SignIn'\n\nclass SignInContainer extends Component {\n\n state = {\n error: '',\n }\n\n render () {\n return (\n \n {(login, { data, loading, error }, ...rest) => {\n // console.log('signin container props', data, loading, error, rest)\n\n const emailCheck = get(data, 'login.email')\n if (emailCheck) {\n // console.log('signed in, redirecting to front')\n return \n }\n\n const doLogin = async ({ email, password }) => {\n // console.log('onLogin start', email)\n const result = await login({ variables: { email, password } })\n // console.log('doLogin result', result)\n const emailCheck = get(result, 'data.login.email')\n const loggedIn = emailCheck && emailCheck === email\n // console.log('loggedIn', loggedIn)\n if (loggedIn) {\n // await history.replace('/', { reload: true, loggedIn: true })\n // window.location.replace('/')\n return true\n } else {\n const error = get(result, 'errors.0.message', 'Unable to log you in.')\n this.setState({ error })\n return false\n }\n }\n return (\n \n )\n }}\n \n )\n\n }\n}\n\nexport default withRouter(SignInContainer)\n","// @flow\nimport React, { Component } from 'react'\n\ntype Props = {\n message?: string,\n}\n\ntype State = {\n hasError: boolean,\n}\n\nexport class ErrorBoundary extends Component {\n static defaultProps = {\n message: 'Something went wrong.',\n }\n\n constructor (props) {\n super(props)\n this.state = {hasError: false}\n }\n\n componentDidCatch (error, info) {\n // Display fallback UI\n//console.log('componentDidCatch', error, info)\n this.setState({hasError: true})\n // You can also log the error to an error reporting service\n // logErrorToMyService(error, info)\n }\n\n render () {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return

{this.props.message}

\n }\n return this.props.children\n }\n}\n\nexport default ErrorBoundary\n","import React, { Component } from 'react'\n\nexport class HideErrorBoundary extends Component {\n constructor (props) {\n super(props)\n this.state = {hasError: false}\n }\n\n componentDidCatch (error, info) {\n // Display fallback UI\n//console.log('componentDidCatch', error, info)\n this.setState({hasError: true})\n // You can also log the error to an error reporting service\n // logErrorToMyService(error, info)\n }\n\n render () {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return
\n }\n return this.props.children\n }\n}\n\nexport default HideErrorBoundary\n","import React, { PureComponent } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\n\nimport { LOGOUT } from '@balance/lib/api/user'\n\nimport { HideErrorBoundary } from '../../components/Error'\n\nclass SignOut extends PureComponent {\n componentDidMount (): void {\n this.onLoad()\n }\n\n onLoad = async () => {\n this.props.onLogout()\n }\n\n render () {\n return (\n

Logging you out ....

\n )\n }\n}\n\nclass SignOutContainer extends PureComponent {\n\n doLogout = async () => {\n\n }\n\n render () {\n // console.log('signout.render')\n return (\n \n {\n // console.log('updating logout cache?', data)\n }}>\n {(logout, { data, loading, error, called, client, ...rest }) => {\n\n const handleLogout = async () => {\n // console.log('doing logout...', data, called, logout, rest)\n if (!called) {\n try {\n const result = await logout()\n // console.log('logout result', result)\n client.resetStore().then(r2 => {\n this.props.history.replace('/login', { reloadUser: true, loggedIn: false })\n })\n return result\n } catch (err) {\n // console.log('oh well, we tried')\n this.props.history.replace('/login', { reloadUser: true, loggedIn: false })\n }\n }\n }\n\n return \n }}\n \n \n )\n }\n}\n\nexport default withRouter(SignOutContainer)\n","import jstz from 'jstz'\n\nexport const detectTimeZone = () => {\n const oldIntl = window.Intl\n try {\n window.Intl = undefined\n const tz = jstz.determine().name()\n window.Intl = oldIntl\n return tz\n } catch (e) {\n // sometimes (on android) you can't override intl\n return jstz.determine().name()\n }\n}\n","import React, { Component } from 'react'\nimport { Formik, Form, getIn } from 'formik'\nimport { withStyles } from '@material-ui/core'\n\nimport get from 'lodash/get'\nimport { transform } from '@balance/lib/api/errors'\nimport { trimAll } from '@balance/lib/utils'\nimport { DEFAULT_PROFILE } from '@balance/lib/data'\nimport { signupSchema } from '@balance/lib/validations'\nimport { colors } from '@balance/lib/styles'\n\nimport { detectTimeZone } from '../../lib/timezone'\nimport { FormField, FormGroup, ActionBar, TimeZoneField } from '../Form'\nimport { ButtonLink, Button } from '../Button'\nimport PageTitle from '../PageTitle/PageTitle'\nimport { AccountCircle, Email, Lock } from '../../styles/icons'\n\nconst styles = theme => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n // maxWidth: 500,\n padding: 20,\n margin: '0 auto',\n },\n textField: {\n marginLeft: theme.spacing.unit,\n marginRight: theme.spacing.unit,\n width: '100%',\n // flexBasis: 200,\n },\n button: {\n margin: theme.spacing.unit,\n },\n menu: {\n width: 200,\n },\n link: {\n display: 'inline-block',\n color: colors.primary,\n margin: '1rem 10px 0',\n textDecoration: 'none',\n },\n\n})\n\n// const IS_DEV = !process.env.NODE_ENV || process.env.NODE_ENV === 'development'\n\nexport class SignUp extends Component {\n state = {\n login: true, // switch between SignUp and SignUp\n name: '',\n email: '',\n password: '',\n timezone: '',\n showPassword: false,\n error: this.props.error || '',\n }\n\n componentDidMount (): void {\n this.setState({ timezone: detectTimeZone() })\n }\n\n handleClickShowPassword = () => {\n this.setState({ showPassword: !this.state.showPassword })\n }\n\n handleMouseDownPassword = event => {\n event.preventDefault()\n }\n\n handleChange = name => event => {\n // console.log('handleChange', name, event)\n this.setState({\n [name]: event.currentTarget.value,\n error: '',\n })\n }\n\n handleSubmit = async (values, actions) => {\n // console.log('SignUp.onSubmit', { values, props: this.props, state: this.state })\n const { email, password } = values\n if (!email || !password) {\n this.setState({\n error: 'Insufficient credentials',\n })\n // console.log('invalid creds!')\n return\n }\n\n try {\n const result = await this.props.onSubmit({ ...trimAll(values) })\n // console.log('signup done?', { result })\n const userId = get(result, 'data.signup.id')\n // console.log('userId', userId)\n if (!userId) {\n // console.log('redirecting to home ...', this.props.history)\n // this.props.history.push('/signup-complete', { reloadUser: true, loggedIn: true })\n // window.location.replace('/')\n // } else {\n const errors = transform(get(result, 'errors'))\n if (errors) {\n actions.setErrors(errors)\n }\n }\n } catch (err) {\n console.error('unable to submit data!', err)\n } finally {\n actions.setSubmitting(false)\n }\n }\n\n render () {\n const { classes, timeZones } = this.props\n // const {error} = this.state\n\n // console.log('SignUp.render', this.state)\n\n const email = ''\n const profile = {\n ...DEFAULT_PROFILE,\n firstName: '',\n lastName: '',\n email: email,\n password: '',\n passwordConfirmation: '',\n timezone: this.state.timezone,\n // firstName: 'Greg',\n // lastName: 'Jones',\n // email: email,\n // emailConfirmation: email,\n // password: '123123',\n // passwordConfirmation: '123123',\n }\n return (\n\n \n {({ values, errors, touched, isSubmitting, isValid, handleSubmit, onSubmit, handleChange, handleBlur }) => {\n\n // console.log('sign up form', values, errors, touched, isSubmitting, isValid)\n const validationProps = name => { return { touched: getIn(touched, name), error: getIn(errors, name) } }\n const changeProps = { onChange: handleChange, onBlur: handleBlur }\n\n return (\n\n
\n\n
\n \n\n
\n\n }>\n\n \n \n\n \n\n\n }>\n\n\n \n\n \n\n }>\n\n \n\n \n\n

{this.state.error}

\n
\n\n \n \n \n\n \n

\n By creating an account, you are agreeing to\n our terms of use and have\n read our disclaimer.\n

\n\n \n \n Cancel \n \n
\n
\n \n
\n )\n }}\n \n )\n }\n}\n\nexport default withStyles(styles)(SignUp)\n","import React, { Component } from 'react'\nimport { Mutation, Query } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\nimport SignUp from '../../components/User/SignUp'\nimport { GET_TIME_ZONES, SIGNUP } from '@balance/lib/api/user'\n\nclass SignUpContainer extends Component {\n state = {\n error: '',\n }\n\n render () {\n console.log('sign up container', this.props)\n return (\n \n {({ data }) => {\n\n const timeZones = get(data, 'systemConfig.timeZones', [])\n\n return (\n \n {(signup) => {\n return (\n {\n // console.log('SignUpContainer.onSubmit', attributes)\n const result = await signup({\n variables: { attributes },\n })\n // console.log('signup onSubmit result', result)\n if (get(result, 'data.signup.id')) {\n // console.log('redirecting to home ...', this.props.history)\n this.props.history.push('/signup-complete', { reloadUser: true, loggedIn: true })\n }\n return result\n }}\n />\n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(SignUpContainer)\n","// @flow\n\nimport React, { Component } from 'react'\nimport { Link } from 'react-router-dom'\nimport Grid from '@material-ui/core/Grid'\nimport Divider from '@material-ui/core/Divider'\nimport { withStyles } from '@material-ui/core/styles'\n\nimport { IS_DEV } from '@balance/lib/config/constants'\n\nimport { RequestPasswordReset } from './'\nimport styles from '../../styles/forms'\nimport PageTitle from '../PageTitle/PageTitle'\n\ntype Props = {\n resetPassword: Function,\n error?: ?Object,\n}\n\ntype State = {\n email: String,\n}\n\nexport class SignInHelp extends Component {\n state = {\n email: IS_DEV ? 'greg@bod.com' : '',\n error: this.props.error || '',\n }\n\n handleChange = name => event => {\n this.setState({\n [name]: event.currentTarget.value.trim(),\n error: '',\n })\n }\n\n render () {\n // console.log('SignInHelp.render')\n const {classes, resetPassword} = this.props\n\n return (\n
\n \n \n \n \n \n \n\n \n
\n Login\n Sign Up
\n
\n
\n
\n\n
\n )\n }\n}\n\nexport default withStyles(styles)(SignInHelp)\n","// @flow\n\nimport React, { Component } from 'react'\nimport get from 'lodash/get'\nimport { withStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\n\n// import { API_URL, IS_DEV } from '@balance/lib/config/constants'\n\nimport { Button } from '../Button'\n\nimport styles from '../../styles/forms'\nimport { colors } from '../../styles'\n\ntype Props = {\n resetPassword: Function,\n error?: ?Object,\n}\n\ntype State = {\n email: String,\n}\n\nexport class RequestPasswordReset extends Component {\n state = {\n email: '',\n error: this.props.error || '',\n }\n\n handleChange = name => event => {\n this.setState({\n [name]: event.currentTarget.value.trim(),\n error: '',\n })\n }\n\n reset = async (event) => {\n event.stopPropagation()\n event.preventDefault()\n const result = await this.props.resetPassword(this.state.email)\n\n this.setState({\n error: get(result, 'resetPasswordRequest.message'),\n })\n }\n\n render () {\n // console.log('RequestPasswordReset.render', API_URL, IS_DEV)\n const {classes} = this.props\n const {error} = this.state\n\n return (\n
\n
\n
\n\n \n\n
\n
\n

{error}

\n
\n
\n \n\n
\n\n
\n
\n )\n }\n}\n\nexport default withStyles(styles)(RequestPasswordReset)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { Link } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core'\nimport PageTitle from '../PageTitle/PageTitle'\nimport styles from '../../styles/global'\n\ntype Props = {\n user?: Object,\n}\ntype State = {}\n\nclass InactiveAccount extends PureComponent {\n static defaultProps = {}\n\n render () {\n const {classes} = this.props\n\n return (\n
\n \n\n

\n Your account is not currently active. Upgrade now to\n start using our platform.\n

\n\n
\n )\n }\n}\n\nexport default withStyles(styles)(InactiveAccount)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { Link } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core'\nimport PageTitle from '../PageTitle/PageTitle'\nimport styles from '../../styles/global'\n\ntype Props = {\n user?: Object,\n}\ntype State = {}\n\nclass AccessDenied extends PureComponent {\n static defaultProps = {}\n\n render () {\n const { classes, status } = this.props\n\n let again = false\n let statusPhrase = ''\n if (status) {\n if (['inactive'].includes(status)) {\n again = true\n statusPhrase = `is currently ${status}`\n } else if (['lapsed'].includes(status)) {\n again = true\n statusPhrase = `has ${status}`\n } else if (['cancelled'].includes(status)) {\n again = true\n statusPhrase = `has been ${status}`\n }\n }\n\n return (\n
\n \n\n

\n {statusPhrase ?\n `Your account ${statusPhrase}, and thus you`\n : 'You'} do not have access to this feature. Upgrade now to\n start using our platform{again ? ' again' : ''}.\n

\n\n
\n )\n }\n}\n\nexport default withStyles(styles)(AccessDenied)\n","import React, { Component } from 'react'\nimport { ApolloConsumer } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\n// import get from 'lodash/get'\n\nimport { RESET_PASSWORD_REQUEST } from '@balance/lib/api/user'\nimport { SignInHelp } from '../../components/User'\n\nimport { HideErrorBoundary } from '../../components/Error'\n\nclass SignInHelpContainer extends Component {\n render () {\n // const action = get(this.props, 'match.params.action')\n // console.log('signin help.render', action, this.props)\n return (\n \n \n {(client, ...rest) => {\n // console.log('SignInHelpContainer.props', client, rest)\n\n const reset = async (email) => {\n // console.log('resetting password?', email)\n\n const {data} = await client.mutate({\n mutation: RESET_PASSWORD_REQUEST,\n variables: {email},\n })\n // console.log('reset data', data)\n return data\n }\n\n return (\n \n )\n }}\n \n \n )\n }\n}\n\nexport default withRouter(SignInHelpContainer)\n","import React, { Component } from 'react'\nimport { Link } from 'react-router-dom'\nimport { Formik, Form, getIn } from 'formik'\nimport { withStyles } from '@material-ui/core'\n\nimport get from 'lodash/get'\nimport { transform } from '@balance/lib/api/errors'\nimport { trimAll } from '@balance/lib/utils'\nimport { resetPasswordSchema } from '@balance/lib/validations'\n\nimport { FormField, FormGroup, ActionBar } from '../Form'\nimport { ButtonLink, Button } from '../Button'\nimport PageTitle from '../PageTitle/PageTitle'\nimport { Lock } from '../../styles/icons'\n\nimport styles from '../../styles/forms'\n\n// const IS_DEV = !process.env.NODE_ENV || process.env.NODE_ENV === 'development'\n\nexport class ResetPassword extends Component {\n state = {\n password: '',\n passwordConfirmation: '',\n showPassword: false,\n error: this.props.error || '',\n }\n\n handleClickShowPassword = () => {\n this.setState({ showPassword: !this.state.showPassword })\n }\n\n handleMouseDownPassword = event => {\n event.preventDefault()\n }\n\n handleChange = name => event => {\n this.setState({\n [name]: event.currentTarget.value,\n error: '',\n })\n }\n\n handleSubmit = async (values, actions) => {\n // console.log('ResetPassword.onSubmit', { values, props: this.props, state: this.state })\n const { password, passwordConfirmation } = values\n if (!password || !passwordConfirmation || password !== passwordConfirmation) {\n this.setState({\n error: 'Passwords must match',\n })\n return\n }\n\n try {\n const result = await this.props.onSubmit({ ...trimAll(values) })\n // console.log('done?', result)\n const success = get(result, 'data.resetPassword.success')\n if (success) {\n // console.log('success!', this.props.history)\n this.props.onSuccess()\n // this.props.history.replace('/login')\n // window.location.replace('/login')\n return\n } else {\n const errors = transform(get(result, 'errors'))\n // console.log('errors?', errors, get(result, 'errors'))\n if (errors) {\n actions.setErrors(errors)\n if (errors.base) {\n let msg = errors.base.message\n if (msg.match(/invalid token/i)) {\n msg = {msg} Request new token?\n }\n this.setState({ error: msg })\n }\n }\n }\n } catch (err) {\n // console.error('unable to submit data!', err)\n } finally {\n actions.setSubmitting(false)\n }\n }\n\n render () {\n const { classes } = this.props\n // const {error} = this.state\n\n // console.log('ResetPassword.render', this.state)\n\n const profile = {\n password: '',\n passwordConfirmation: '',\n }\n return (\n\n \n {({ values, errors, touched, isSubmitting, isValid, handleSubmit, onSubmit, handleChange, handleBlur }) => {\n\n // console.log('reset password form', values, handleSubmit, onSubmit, errors, touched, isSubmitting, isValid)\n const validationProps = name => { return { touched: getIn(touched, name), error: getIn(errors, name) } }\n const changeProps = { onChange: handleChange, onBlur: handleBlur }\n\n return (\n\n
\n\n
\n \n\n
\n\n }>\n\n \n\n \n\n

{this.state.error}

\n
\n\n \n \n \n Cancel \n \n \n
\n \n
\n )\n }}\n \n )\n }\n}\n\nexport default withStyles(styles)(ResetPassword)\n","import React, { Component } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { RESET_PASSWORD } from '@balance/lib/api/user'\n\nimport ResetPassword from '../../components/User/ResetPassword'\n\nclass ResetPasswordContainer extends Component {\n\n state = {\n error: '',\n }\n\n render () {\n const resetToken = get(this.props, 'location.search').replace('?reset_password_token=', '')\n\n // console.log('resetToken', resetToken, this.props)\n\n return (\n \n {(reset, { data, loading, error }, ...rest) => {\n // console.log('signin container props', data)\n\n const handleReset = async (attributes) => {\n // console.log('resetPassword start', attributes)\n const result = await reset({ variables: { resetToken, ...attributes } })\n // console.log('resetPassword result', result)\n return result\n }\n\n const onSuccess = () => {\n this.props.history.replace('/')\n }\n\n return (\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(ResetPasswordContainer)\n","// @flow\n\nimport React, { Component } from 'react'\nimport get from 'lodash/get'\nimport { withStyles } from '@material-ui/core/styles'\n\nimport { IS_DEV } from '@balance/lib/config/constants'\n\nimport styles from '../../styles/forms'\nimport { colors } from '../../styles'\nimport { ButtonLink } from '../Button'\nimport { ActionBar } from '../Form'\nimport PageTitle from '../PageTitle/PageTitle'\n\ntype Props = {\n onLoad: Function,\n redirect: Function,\n error?: ?Object,\n}\n\ntype State = {\n email: String,\n}\n\nexport class ConfirmAccount extends Component {\n state = {\n email: IS_DEV ? 'greg@bod.com' : '',\n error: this.props.error || '',\n }\n\n async componentDidMount (): void {\n // console.log('ConfirmAccount.cDM')\n const result = await this.props.onLoad()\n // console.log('result', result)\n const success = get(result, 'data.confirmAccount.success', false)\n // console.log('success?', success)\n if (success && this.props.redirect) {\n this.props.redirect()\n } else {\n const message = get(result, 'errors.0.message', false)\n // console.log('error message', message)\n this.setState({error: message})\n }\n }\n\n render () {\n // console.log('ConfirmAccount.render', this.state)\n const {classes} = this.props\n const {error} = this.state\n\n return (\n
\n\n
\n \n\n
\n

{error}

\n\n \n Sign in\n \n\n
\n
\n
\n )\n }\n}\n\nexport default withStyles(styles)(ConfirmAccount)\n","import React, { Component } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CONFIRM_ACCOUNT } from '@balance/lib/api/user'\n\nimport ConfirmAccount from '../../components/User/ConfirmAccount'\n\nclass ConfirmAccountContainer extends Component {\n\n constructor (props, ctx) {\n super(props, ctx)\n\n this.state = {\n error: '',\n }\n }\n\n redirect = () => {\n // window.location.replace('/')\n this.props.history.replace('/', { reload: true, loggedIn: true })\n }\n\n render () {\n const confirmationToken = get(this.props, 'location.search').replace('?confirmation_token=', '')\n\n console.log('confirmationToken', confirmationToken, this.props)\n\n return (\n \n {(confirm, {data, loading, error}, ...rest) => {\n console.log('confirm account container props', data)\n\n const doConfirm = async (attributes) => {\n console.log('confirmAccount start', attributes)\n const result = await confirm({variables: {confirmationToken: confirmationToken, ...attributes}})\n console.log('confirmAccount result', result)\n return result\n }\n\n return (\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(ConfirmAccountContainer)\n","import React, { Component } from 'react'\nimport { Query } from 'react-apollo'\nimport { withRouter, Link } from 'react-router-dom'\n\nimport { GET_MEAL_PLAN } from '@balance/lib/api/meal-plan'\n\nclass DashboardContainer extends Component {\n\n constructor (props, ctx) {\n super(props, ctx)\n\n this.state = {\n error: '',\n }\n }\n\n render () {\n\n return (\n \n {(props) => {\n // console.log('dashboard container props', props)\n\n return (\n
\n

DASHBOARD!

\n Logout!
\n Edit Profile\n
\n )\n }}\n
\n )\n }\n}\n\nexport default withRouter(DashboardContainer)\n","import React, { Component } from 'react'\nimport { withRouter } from 'react-router-dom'\n\nimport { InactiveAccount } from '../../components/User'\n\nclass InactiveContainer extends Component {\n\n render () {\n\n return \n\n }\n}\n\nexport default withRouter(InactiveContainer)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport type { CallBackProps } from 'react-joyride'\nimport Joyride, { ACTIONS, EVENTS, STATUS } from 'react-joyride'\n\nimport get from 'lodash/get'\nimport { colors } from '@balance/lib/styles'\n\ntype Props = {\n onboarded: ?Array,\n path: string,\n onTourEnd: Function,\n}\ntype State = {\n currentPathKey: string,\n}\n\nconst commonStepParameters = {\n disableBeacon: true,\n hideCloseButton: true,\n}\n\nconst DEBUG_ONBOARDING = false\n\nclass Onboarding extends PureComponent {\n static defaultProps = {\n onboarded: null,\n path: '',\n }\n\n state = {\n run: false,\n currentPath: '',\n currentPathKey: '',\n pathKeys: {\n '/meal-plan': 'meal-plan',\n '/profile/demo': 'profile-start',\n // '/profile/targets': 'profile-targets',\n },\n stepGroups: {\n 'meal-plan': [\n {\n ...commonStepParameters,\n target: 'body',\n placement: 'center',\n content:

Welcome to the meal planning screen for Balance on Demand!

This is where you can view\n each day's meal plan,\n broken down based on your configured profile and meal settings.

,\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"meal-prep\"]',\n placement: 'bottom-end',\n content: 'This will let you switch to a variation of your plan to aid in preparing your meals at once!',\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"grocery-list\"]',\n placement: 'bottom-end',\n content: 'This will give you a consolidated list of ingredients so you can zip through the grocery store quickly!',\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"menu-button\"]',\n placement: 'bottom-start',\n content: 'Access all screens here, including your profile and billing information.',\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"meal-plan-panel\"]',\n content: 'You can tap on each line to view the day\\'s meal.',\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"meal-plan-instructions\"]',\n placement: 'bottom-end',\n content: 'You can view our instructions for preparing this meal using the given ingredients.',\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"meal-plan-actions\"]',\n placement: 'top-end',\n content: 'You can replace this recipe for just this day or all times if it\\'s repeated for other meals. You can also remove the meal and then search for a new recipe.',\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"menu-option-recipe-list\"]',\n placement: 'right',\n content: 'And you can view all available recipes and add your own here.',\n },\n {\n ...commonStepParameters,\n hideCloseButton: false,\n target: 'body',\n placement: 'center',\n content:

Happy Planning!

,\n },\n ],\n 'profile-start': [\n {\n ...commonStepParameters,\n target: 'body',\n placement: 'center',\n content:

Welcome to Balance on Demand!

First we need to gather some details to setup your\n profile.

,\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"profile-tabs\"]',\n content:

These buttons will allow you to jump to the different profile sections. But don't skip ahead\n just yet! We'll walk you through each step this first time.

,\n },\n {\n ...commonStepParameters,\n target: '[data-tour=\"profile-tabs\"] [data-tour=\"profile-tab-Targets\"]',\n content:

Once you complete your profile and get here, we'll show you the target calorie and\n macro nutrient targets we've calculated for you. But of course you can fine-tune those\n further if you need to!

,\n },\n ],\n 'profile-targets': [\n {\n ...commonStepParameters,\n target: 'body',\n placement: 'center',\n showProgress: false,\n content:

Excellent!

We've now calculated some initial calorie and macro nutrient goals for you\n based\n on the information you've provided. You can get started with these to see how they work for\n you, but can also come back anytime and fine-tune for more targeted results.

,\n },\n ],\n },\n }\n\n static getDerivedStateFromProps (props, state) {\n // console.log('getDerivedStateFromProps', state.currentPathKey, state.currentPath, props.path)\n const hasSeen = props.onboarded && props.onboarded.includes(props.path)\n // console.log('hasSeen?', hasSeen)\n if (props.path !== state.currentPath) {\n return {\n run: !hasSeen,\n stepIndex: 0,\n currentPath: props.path,\n currentPathKey: get(state.pathKeys, props.path),\n }\n }\n return null\n }\n\n handleJoyrideCallback = async (data: CallBackProps) => {\n const finishedStatuses: Array = [STATUS.FINISHED, STATUS.SKIPPED]\n\n const { sidebarOpen } = this.state\n const { action, index, type, status } = data\n\n if (([STATUS.FINISHED, STATUS.SKIPPED]: Array).includes(status)) {\n // Need to set our running state to false, so we can restart if we click start again.\n // console.log('resetting?')\n this.setState({ run: false, stepIndex: 0 })\n await this.props.onTourEnd && this.props.onTourEnd(this.state.pathKeys[this.props.path])\n } else if (([EVENTS.STEP_AFTER, EVENTS.TARGET_NOT_FOUND]: Array).includes(type)) {\n const stepIndex = index + (action === ACTIONS.PREV ? -1 : 1)\n\n if (sidebarOpen && index === 0) {\n setTimeout(() => {\n this.setState({ run: true })\n }, 400)\n } else if (sidebarOpen && index === 1) {\n this.setState(\n {\n run: false,\n sidebarOpen: false,\n stepIndex,\n },\n () => {\n setTimeout(() => {\n this.setState({ run: true })\n }, 400)\n },\n )\n } else if (index === 2 && action === ACTIONS.PREV) {\n this.setState(\n {\n run: false,\n sidebarOpen: true,\n stepIndex,\n },\n () => {\n setTimeout(() => {\n this.setState({ run: true })\n }, 400)\n },\n )\n } else {\n // Update state to advance the tour\n this.setState({\n sidebarOpen: false,\n stepIndex,\n })\n }\n }\n\n // tslint:disable:no-console\n console.groupCollapsed(type === EVENTS.TOUR_STATUS ? `${type}:${status}` : type)\n console.log(data)\n console.groupEnd()\n // tslint:enable:no-console\n\n ////////\n\n // console.log('tour callback', this.state.currentPathKey, data, status, type, action, index)\n if (finishedStatuses.includes(status) && type === EVENTS.TOUR_END) {\n console.log('all done! updating user profile ....')\n this.setState({ run: false })\n await this.props.onTourEnd && this.props.onTourEnd(this.state.pathKeys[this.props.path])\n } else if (this.state.currentPathKey === 'meal-plan') {\n if (action === 'update' && index === 5) {\n document.querySelector('[data-tour=\"meal-plan-panel\"]:first-of-type [role=\"button\"][aria-expanded=\"false\"]')\n .click()\n // document.querySelector('[data-tour=\"meal-plan-panel\"] [role=\"button\"]:not([aria-expanded=\"true\"]').click()\n } else if (action === 'update' && index === 6) {\n console.log('closing drawer ...')\n window.dispatchEvent(new Event('tour:closeDrawer'))\n } else if ((action === 'update' && index === 7) || (action === 'next' && index === 6) ||\n (action === 'prev' && index === 8)) {\n console.log('opening drawer ...')\n window.dispatchEvent(new Event('tour:openDrawer'))\n } else if (action === 'update' && index === 8) {\n console.log('closing drawer ...')\n window.dispatchEvent(new Event('tour:closeDrawer'))\n // document.querySelector('[data-tour=\"menu-button\"]').click()\n }\n }\n }\n\n render () {\n // console.log('Onboarding.render', this.props, this.state)\n const { path, onboarded } = this.props\n const { run, stepIndex, stepGroups, pathKeys } = this.state\n\n const pathKey = pathKeys[path]\n // console.log('pathKey', pathKey, currentPathKey)\n if (onboarded && pathKey && onboarded.includes(pathKey)) {\n return null\n }\n const steps = stepGroups[pathKey]\n // console.log('steps', steps)\n if (!steps) {\n return null\n }\n\n return (\n
\n \n
\n )\n }\n}\n\nexport default Onboarding\n","// @flow\nimport React, { Component } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { UPDATE_USER } from '@balance/lib/api/user'\n\nimport { Onboarding } from '../../components/Onboarding'\n\ntype Props = {\n currentUser: Object,\n onboarded: ?Array,\n path: string,\n}\n\nconst DISABLE_ONBOARDING = false\n\nclass OnboardingContainer extends Component {\n\n render () {\n const { onboarded, currentUser } = this.props\n const path = get(this.props, 'location.pathname')\n const hasPlanAccess = get(currentUser, 'hasPlanAccess')\n if (!hasPlanAccess || DISABLE_ONBOARDING) {\n return null\n }\n return (\n \n {(updateUser, { data, loading, error }, ...rest) => {\n // console.log('onboarding container props', data, currentUser)\n\n const handleSaveStep = async (step) => {\n // console.log('handleSaveStep start', step)\n const result = await updateUser({ variables: { attributes: { id: currentUser.id, onboardedStep: step } } })\n // console.log('handleSaveStep result', result)\n return result\n }\n\n return (\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(OnboardingContainer)\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport globalStyles from '../../styles/global'\nimport { PageTitle } from '../PageTitle'\nimport { HelpContent } from '../Global'\nimport { Button } from '../Button'\nimport { Email } from '../../styles/icons'\n\nconst styles = theme => ({\n ...globalStyles(theme),\n support: {\n marginTop: theme.spacing.unit * 4,\n },\n email: {\n marginRight: theme.spacing.unit,\n },\n})\n\nconst Help = withStyles(styles)(({ classes }) => {\n const aside = (\n \n )\n return (\n
\n Helpful Information\n \n\n
\n {aside}\n
\n
\n )\n})\n\nexport default Help\n","// @flow\nimport React, { PureComponent } from 'react'\nimport Help from '../../components/Page/Help'\n\ntype Props = {}\ntype State = {}\n\nclass HelpContainer extends PureComponent {\n static defaultProps = {}\n\n render () {\n return (\n \n )\n }\n}\n\nexport default HelpContainer\n","// @flow\nimport React, { Fragment, PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Divider from '@material-ui/core/Divider'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport IconButton from '@material-ui/core/IconButton'\n\nimport classnames from 'classnames'\nimport { asPct } from '@balance/lib/utils'\n\nimport { SearchField } from '../Form'\nimport { Add } from '../../styles/icons'\nimport { Button } from '../Button'\n\ntype Props = {\n onSelect: Function,\n onSearch: Function,\n nestedForm: boolean,\n showSecondaryInfo: boolean,\n initialResults: Array, // for testing\n}\ntype State = {\n searching: boolean,\n searched: boolean,\n query: string,\n results: Array,\n}\n\nconst styles = theme => ({\n search: {},\n form: {\n display: 'flex',\n alignItems: 'center',\n },\n note: {\n margin: [[theme.spacing.unit, 0, 0]],\n textAlign: 'right',\n fontSize: '0.75rem',\n },\n results: {\n margin: [[theme.spacing.unit / 2, 0]],\n minHeight: 300,\n maxHeight: '75vh',\n overflowY: 'scroll',\n\n '& ::-webkit-scrollbar': {\n width: 5,\n height: 5,\n },\n\n '& ::-webkit-scrollbar-track': {\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.3)',\n borderRadius: 20,\n },\n\n '& ::-webkit-scrollbar-thumb': {\n borderRadius: 20,\n backgroundColor: 'rgba(0, 0, 0, .3)',\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.5)',\n },\n },\n})\n\nclass IngredientSearch extends PureComponent {\n static defaultProps = {\n nestedForm: false,\n showSecondaryInfo: false,\n }\n state = {\n searching: false,\n searched: false,\n query: '',\n results: this.props.initialResults,\n }\n\n handleSearch = async (query) => {\n const { onSearch } = this.props\n console.log('handleSearch', query)\n this.setState({ search: true })\n const results = onSearch && await onSearch(query)\n this.setState({ search: false, searched: true, results })\n\n document.querySelector('.js-search-ingr-field').scrollIntoView({\n behavior: 'smooth',\n })\n }\n\n handleSubmit = (e) => {\n e.preventDefault()\n this.handleSearch(this.state.query)\n }\n\n handleKeyPress = (e) => {\n console.log('IngrSearch.handleKeyPress', e, e.key, e.keyCode)\n if (e.key === 'Enter') {\n e.preventDefault()\n e.stopPropagation()\n this.handleSubmit(e)\n }\n }\n\n handleChange = (query) => {\n // console.log('handleChange', query)\n this.setState({ query })\n }\n\n handleAddIngredient = (ingredient) => {\n const { onSelect } = this.props\n console.log('handleAddIngredient', ingredient)\n onSelect && onSelect(ingredient)\n }\n\n renderResultInfo = (ingredient) => {\n if (this.props.showSecondaryInfo) {\n const p = asPct(ingredient.proteinPct, 0)\n const f = asPct(ingredient.fatPct, 0)\n const c = 100 - p - f // just to be sure total = 100\n return `Calories: ${ingredient.kcal} Protein: ${p}% Fat ${f}% Carbs: ${c}%`\n }\n return '';\n }\n\n renderResult = (ingredient) => {\n const resultInfo = this.renderResultInfo(ingredient)\n return (\n \n {ingredient.name}\n \n this.handleAddIngredient(ingredient)}>\n \n \n \n \n )\n }\n\n renderNoResults = () => {\n return (\n \n No results matched!\n \n )\n }\n\n renderResults = () => {\n const { classes } = this.props\n const { searched, results } = this.state\n\n if (!results || results.length === 0) {\n return searched ? this.renderNoResults() : null\n }\n // console.log('results', results)\n return (\n \n \n \n {results && results.map((result) => this.renderResult(result))}\n \n \n )\n }\n\n renderInnerForm = () => {\n const { classes } = this.props\n const { searching, query } = this.state\n\n return (\n \n
\n \n \n
\n {this.renderResults()}\n
\n )\n }\n\n render () {\n const { nestedForm } = this.props\n\n return (\n
\n {nestedForm ? (\n
\n {this.renderInnerForm()}\n
\n ) : (\n
\n {this.renderInnerForm()}\n
\n )}\n
\n )\n }\n}\n\nexport default withStyles(styles)(IngredientSearch)\n","import React, { Component } from 'react'\nimport classnames from 'classnames'\n\nimport { FieldArray, Form, Formik, getIn } from 'formik'\nimport { Checkbox, IconButton, Radio, withStyles } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport FormControl from '@material-ui/core/FormControl'\n\nimport get from 'lodash/get'\nimport compact from 'lodash/compact'\n\nimport { transform } from '@balance/lib/api/errors'\nimport { DEMOGRAPHICS, GOALS } from '@balance/lib/data'\nimport { profileActivitySchema, profileDemoSchema, profileGoalsSchema } from '@balance/lib/validations'\n\nimport { ActionBar, FormField, FormGroup, Option, RadioGroup } from '../Form'\nimport { Button, ButtonLink } from '../Button'\nimport PageTitle from '../PageTitle/PageTitle'\n\nimport formStyles from '../../styles/forms'\nimport {\n Delete, Email, FitnessCenter, Notification, Person, RestaurantMenu, Smartphone, ThumbDown, Timeline,\n} from '../../styles/icons'\nimport TimeZoneField from '../Form/TimeZoneField'\nimport { IngredientSearch } from '../Ingredient'\n\ntype Props = {\n profile: Object,\n step: number,\n onSubmit: Function,\n onPrevious: Function,\n onGoTo: Function,\n onSearchFoods: Function,\n isLastStep: boolean,\n showTabs: boolean,\n systemConfig: Object,\n}\n\ntype State = {\n error?: Object,\n}\n\nconst styles = (theme) => ({\n ...formStyles(theme),\n tabs: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: [[8 * 2, 0]],\n marginBottom: '1rem',\n // height: 50,\n\n // '@media screen and (max-width: 359px)': {\n // display: 'none',\n // },\n },\n})\n// const IS_DEV = !process.env.NODE_ENV || process.env.NODE_ENV === 'development'\n\nconst activityLevels = [\n {\n level: 1,\n label: 'Completely Sedentary (Bed Rest)',\n descr: 'Does not exercise and does not move around for work',\n },\n {\n level: 2,\n label: 'Very Sedentary',\n descr: 'Does not exercise and does not move around for work',\n },\n {\n level: 3,\n label: 'Lightly Active',\n descr: 'Lightly exercises 1-2 times per week and does not move around often for work',\n },\n {\n level: 4,\n label: 'Semi-moderately Active',\n descr: 'Lightly exercises 2-3 times per week and does not move around often for work',\n },\n {\n level: 5,\n label: 'Moderately Active',\n descr: 'Moderately exercises 3-5 times per week and moves every so often for work',\n },\n {\n level: 6,\n label: 'Very Active',\n descr: 'exercises 5-6 times per week and moves often for work',\n },\n {\n level: 7,\n label: 'Extremely Active',\n descr: 'exercises hard 6-7 times per week and moves often for work',\n },\n {\n level: 8,\n label: 'Majorly Active',\n descr: 'exercises hard every day and moves constantly for work',\n },\n {\n level: 9,\n label: 'Professional Athlete',\n descr: 'Lower Intensity',\n },\n {\n level: 10,\n label: 'Professional Athlete',\n descr: 'Higher Intensity',\n },\n].reverse()\n\nconst sortByLabel = (a, b, labelField = 'label') => {\n const al = a[labelField].toLowerCase()\n const bl = b[labelField].toLowerCase()\n let comparison = 0\n if (al > bl) {\n comparison = 1\n } else if (al < bl) {\n comparison = -1\n }\n return comparison\n}\n\nconst sortByName = (a, b) => sortByLabel(a, b, 'name')\n\n// const allDietaryRestrictions = [\n// { key: 'GLUTEN_FREE', label: 'Gluten Free' },\n// { key: 'DAIRY_FREE', label: 'Dairy Free' },\n// { key: 'EGG_FREE', label: 'Egg Free' },\n// { key: 'FISH_FREE', label: 'Fish Free' },\n// { key: 'TREE_NUT_FREE', label: 'No Tree Nuts' },\n// { key: 'NO_OIL_ADDED', label: 'No Oil Added' },\n// { key: 'NO_SUGAR_ADDED', label: 'No Sugar Added' },\n// { key: 'MILK_FREE', label: 'Milk Free' },\n// { key: 'SOY_FREE', label: 'Soy Free' },\n// { key: 'VEGAN', label: 'Vegan' },\n// { key: 'VEGETARIAN', label: 'Vegetarian' },\n// { key: 'PESCATARIAN', label: 'Pescatarian' },\n// { key: 'PALEO', label: 'Paleo' },\n// { key: 'PEANUT_FREE', label: 'Peanut Free' },\n// { key: 'PORK_FREE', label: 'Pork Free' },\n// { key: 'RED_MEAT_FREE', label: 'Red Meat Free' },\n// { key: 'SHELLFISH_FREE', label: 'Shellfish Free' },\n// { key: 'KETO', label: 'Ketogenic' },\n// ].sort(sortByLabel)\n\nconst TAB_LIST = [\n 'Personal',\n 'Goals',\n 'Activity Level',\n 'Diet',\n 'Notifications',\n 'Targets',\n]\n\nconst FakeTab = ({ label, onClick, selected, ...rest }) => (\n \n)\n\n// const TabContainer = (({ classes, children }) => {\n// return (\n// \n// {children}\n// \n// )\n// })\n\nconst ProfileDemo = ({ values, showTabs, handleChange, changeProps, systemConfig, validationProps }) => {\n // console.log('ProfileDemo()', values, showTabs, timeZones)\n\n const timeZones = get(systemConfig, 'timeZones', [])\n return (\n }>\n {showTabs && [\n ,\n ,\n ,\n ,\n ]}\n\n \n \n\n \n\n \n \n\n \n )\n}\n\nconst ProfileGoals = ({ values, handleChange, changeProps, validationProps }) => {\n // console.log('ProfileGoals()', values)\n\n const weightChangeLabel = values.weightGoal === 'gain' ? 'Gain' : 'Loss'\n const withMuscle = Boolean(values.buildMuscle === true || values.buildMuscle === 'true')\n const noMuscle = Boolean(values.buildMuscle === false || values.buildMuscle === 'false')\n return (\n }>\n\n \n \n\n \n \n\n {values.weightGoal === 'maintain' || (\n \n )}\n\n \n\n \n )\n}\n\nconst ProfileActivityLevel = ({ values, classes, validationProps, handleChange }) => {\n const lvl = parseInt(values.activityLevel, 10)\n // console.log('ProfileActivityLevel()', values.activityLevel, lvl, validationProps('activityLevel'))\n\n const { touched, error } = validationProps('activityLevel')\n return (\n } title=\"Activity Level\">\n

{touched && error}

\n \n {activityLevels.map((al, i) => (\n \n\n ))}\n \n

{touched && error}

\n
\n )\n}\nconst ProfileNutrition = ({ values, classes, systemConfig, onSearchFoods }) => {\n const selected = values.restrictions\n\n const allDietaryRestrictions = get(systemConfig, 'dietaryRestrictions', []).sort(sortByLabel)\n // console.log('ProfileNutrition()', onSearchFoods, values.restrictions, allDietaryRestrictions)\n // console.log('syncing', allDietaryRestrictions)\n const dislikes = get(values, 'dislikes', []).sort(sortByName)\n\n return (\n \n } title=\"Dietary Restrictions\">\n (\n \n {allDietaryRestrictions.map((al, i) => (\n \n ))}\n \n )}\n />\n \n\n } title=\"Dislikes / Ingredients to avoid\">\n\n (\n \n push(item)} />\n \n {dislikes.map((al, i) => (\n \n ))}\n \n \n )}\n />\n \n\n \n )\n}\nconst ProfileNotificationPrefs = ({ values, classes, systemConfig, handleChange, changeProps, validationProps }) => {\n // console.log('ProfileNotificationPrefs()', values.notificationPreferences)\n const allNotificationPreferences = get(systemConfig, 'notificationPreferences', []).sort(sortByLabel)\n return (\n } title=\"Notification Preferences\">\n \n  \n Email\n \n App Push\n \n\n (\n \n {allNotificationPreferences.map((al, i) => {\n const email = get(values, `notificationPreferences.${i}.email`, true)\n const push = get(values, `notificationPreferences.${i}.push`, true)\n // console.log('pref', al.key, email, push)\n return (\n \n \n {al.label}\n \n \n \n \n \n \n \n \n )\n })}\n \n )}\n />\n )\n}\n\nconst profileConfig = {\n demo: { step: 1, comp: ProfileDemo, schema: profileDemoSchema, fields: { ...DEMOGRAPHICS } },\n goals: { step: 2, comp: ProfileGoals, schema: profileGoalsSchema, fields: { ...GOALS } },\n activity: {\n step: 3,\n comp: ProfileActivityLevel,\n schema: profileActivitySchema,\n fields: { activityLevel: 0, resetAll: false },\n },\n nutrition: { step: 4, comp: ProfileNutrition, schema: null, fields: { restrictions: [], dislikeIds: [] } },\n notificationPreferences: {\n step: 5,\n comp: ProfileNotificationPrefs,\n schema: null,\n fields: { notificationPreferences: [] },\n },\n}\n\nexport class ProfileWizard extends Component {\n static defaultProps = {\n step: '',\n profile: {},\n }\n state = {\n error: this.props.error || '',\n }\n\n handleChange = name => event => {\n this.setState({\n [name]: event.currentTarget.value,\n error: '',\n })\n }\n\n normalizeValues = (values) => {\n const config = get(profileConfig, this.props.step, {})\n\n let normalized = {\n ...values,\n resetAll: values.resetAll === true || values.resetAll === 'true',\n buildMuscle: values.buildMuscle === true || values.buildMuscle === 'true',\n activityLevel: parseInt(values.activityLevel, 10),\n restrictions: compact(values.restrictions),\n dislikeIds: values.dislikes.map(d => d.id),\n weightChange: values.weightGoal === 'maintain' ? null : values.weightChange,\n }\n\n let numerics = ['bodyFatPct', 'weightChange']\n numerics.forEach(v => {\n if (!(values[v] && parseFloat(values[v]) > 0.0)) {\n delete normalized[v]\n }\n })\n\n let result = {}\n for (let f in config.fields) {\n if (normalized.hasOwnProperty(f)) {\n result[f] = normalized[f]\n }\n }\n\n console.log('normalized', result, normalized, config, config.fields)\n return result\n }\n\n handleSubmit = async (values, actions) => {\n console.log('ProfileWizard.onSubmit', { values, props: this.props, state: this.state })\n\n try {\n const result = await this.props.onSubmit(this.normalizeValues(values))\n // console.log('profile step done?', result)\n const success = get(result, 'data.saveProfile.success', false)\n if (!success) {\n const errors = transform(get(result, 'errors'))\n if (errors) {\n actions.setErrors(errors)\n if (errors.base) {\n this.setState({ error: errors.base.message })\n }\n }\n }\n } catch (err) {\n console.error('unable to submit data!', err)\n } finally {\n actions.setSubmitting(false)\n }\n }\n\n syncedRestrictions = (existing) => {\n const allDietaryRestrictions = get(this.props, 'systemConfig.dietaryRestrictions', []).sort(sortByLabel)\n // console.log('syncing', input, allDietaryRestrictions)\n return allDietaryRestrictions.map(item => existing.indexOf(item.key) > -1 ? item.key : false)\n }\n\n syncedNotificationPreferences = (existing) => {\n const notificationPreferences = get(this.props, 'systemConfig.notificationPreferences', []).sort(sortByLabel)\n\n console.log('syncing notificationPreferences', existing, notificationPreferences)\n return notificationPreferences.map(item => {\n const matchingItem = existing.find(it => it.key === item.key)\n return {\n email: true,\n push: true,\n ...item,\n ...matchingItem,\n __typename: undefined,\n }\n })\n }\n\n renderTabs = (selectedIndex = -1) => {\n const { classes, onGoTo } = this.props\n // FAKE TABS! the MUI Tabs component is glitchy and sometimes causing layout issues as if the element were floated out\n\n return (\n
\n {TAB_LIST.map((label, i) => (\n onGoTo(i)} label={label} selected={i === selectedIndex}\n data-tour={`profile-tab-${label}`} />\n ))}\n
\n )\n }\n\n render () {\n const { classes, step, onPrevious, isLastStep, showTabs, profile: profileIn, systemConfig, onSearchFoods } = this.props\n // const {error} = this.state\n\n console.log('ProfileWizard.render', step, onSearchFoods, this.props, this.state)\n\n const dciOverride = get(profileIn, 'dciOverride')\n const pctOverride = get(profileIn, 'pctOverride')\n\n const showOverrideWarning = ['demo', 'goals', 'activity'].includes(step) && (dciOverride || pctOverride)\n const overrides = []\n if (dciOverride) {\n overrides.push('DCI value')\n }\n if (pctOverride) {\n overrides.push('nutrient target values')\n }\n const overridden = compact(overrides).join(' and ')\n\n // console.log('showing override warning', showOverrideWarning)\n const config = get(profileConfig, step, {})\n const stepClass = config.comp\n const stepIndex = config.step - 1 || 0\n // console.log('stepIndex', stepIndex, config)\n const profile = {\n resetAll: 'false',\n buildMuscle: false,\n dislikes: [],\n ...profileIn,\n restrictions: this.syncedRestrictions(get(profileIn, 'restrictions', [])),\n notificationPreferences: this.syncedNotificationPreferences(get(profileIn, 'notificationPreferences', [])),\n }\n console.log('profile in', profile)\n\n // const smallScreen = window.innerWidth < 500\n /**\n * evaluating if a field has been touched:\n * - value || (\n * - no value && !isValid\n * - no value && touched )\n */\n return (\n\n \n {({ values, errors, touched, isSubmitting, isValid, handleSubmit, onSubmit, handleChange, handleBlur }) => {\n\n // console.log('profile wizard form', values, errors, touched, isSubmitting, isValid)\n // console.log('isValid, isSubmitting', isValid, isSubmitting)\n const validationProps = name => {\n const hasError = Boolean(getIn(errors, name))\n const hasValue = getIn(values, name) !== undefined\n // const isTouched = getIn(touched, name)\n // console.log('validating', name, hasError, isTouched, hasValue, hasValue || (!isValid && !isTouched))\n return {\n touched: hasValue || hasError,\n error: getIn(errors, name),\n }\n }\n const changeProps = { onChange: handleChange, onBlur: handleBlur }\n\n const subForm = stepClass &&\n React.createElement(stepClass,\n { showTabs, classes, values, handleChange, systemConfig, changeProps, validationProps, onSearchFoods })\n const hasForm = Boolean(subForm)\n return (\n\n
\n \n\n
\n\n {showTabs && this.renderTabs(stepIndex)}\n\n {hasForm ? subForm : 'Invalid Request'}\n\n {showOverrideWarning && (\n \n\n

\n WARNING! Some of our calculations are dependent on these inputs, but you\n have overridden the calculated {overridden}. Do you want to keep\n your explicit values, or allow the system to recalculate based on your\n new inputs?\n

\n\n \n \n\n
\n )}\n\n \n

{this.state.error}

\n\n {hasForm && (\n \n {Boolean(showTabs) ||\n }\n \n Cancel \n \n )}\n
\n\n
\n \n )\n }}\n \n )\n }\n}\n\nexport default withStyles(styles)(ProfileWizard)\n","// @flow\nimport React, { Fragment, PureComponent } from 'react'\nimport { Divider, Typography, withStyles } from '@material-ui/core'\nimport get from 'lodash/get'\n\nimport { hasMealSettings } from '@balance/lib/api/profile'\nimport { colors } from '@balance/lib/styles'\n\nimport { FormField, FormGroup } from '../Form'\nimport PageTitle from '../PageTitle/PageTitle'\nimport globalStyles from '../../styles/global'\nimport { Button, ButtonLink, InlineButton } from '../Button'\n\nimport { Edit, Person } from '../../styles/icons'\nimport ActionBar from '../Form/ActionBar'\n\ntype Props = {\n profile: Object,\n saveProfile: Function,\n}\ntype State = {\n dci: number,\n protein: number,\n fat: number,\n carbs: number,\n editingDci: boolean,\n editingPct: boolean,\n dciReset: boolean,\n pctReset: boolean,\n}\n\nconst styles = theme => {\n const global = globalStyles(theme)\n return {\n ...global,\n icon: {\n ...global.icon,\n },\n subHeader: {\n color: colors.darkGreen,\n },\n oneliner: {\n minHeight: 36,\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'row',\n },\n inlineFormWrapper: {\n minHeight: 36,\n display: 'flex',\n flexDirection: 'column',\n\n [theme.breakpoints.up('md')]: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n },\n field: {\n textAlign: 'right',\n [theme.breakpoints.up('md')]: {\n margin: [[0, theme.spacing.unit]],\n width: 150,\n },\n },\n fixedLabel: {\n width: 200,\n },\n fixedField: {\n textAlign: 'right',\n [theme.breakpoints.up('md')]: {\n margin: [[0, theme.spacing.unit]],\n width: 70,\n },\n },\n button: {\n maxWidth: 150,\n },\n }\n}\n\nclass ProfileResults extends PureComponent {\n static defaultProps = {}\n state = {\n dci: get(this.props, 'profile.dci', 0),\n protein: get(this.props, 'profile.proteinPct', 0),\n fat: get(this.props, 'profile.fatPct', 0),\n carbs: get(this.props, 'profile.carbsPct', 0),\n editingDci: false,\n editingPct: false,\n dciReset: false,\n pctReset: false,\n }\n\n resetDci = () => {\n this.setState(prevState => (\n {\n dci: this.props.profile.dciDefault,\n editingDci: true,\n dciReset: true,\n }\n ))\n }\n\n resetPct = () => {\n this.setState(prevState => (\n {\n protein: get(this.props, 'profile.proteinPctDefault', 0),\n fat: get(this.props, 'profile.fatPctDefault', 0),\n carbs: get(this.props, 'profile.carbsPctDefault', 0),\n editingPct: true,\n pctReset: true,\n }\n ))\n }\n\n toggleEditDci = () => {\n this.setState(prevState => (\n {\n // dci: this.props.profile.dci,\n editingDci: !prevState.editingDci,\n }\n ))\n }\n\n toggleEditPct = () => {\n this.setState(prevState => (\n {\n // dci: this.props.profile.dci,\n editingPct: !prevState.editingPct,\n }\n ))\n }\n\n cancelEditDci = () => {\n this.setState({\n dci: this.props.profile.dci,\n editingDci: false,\n dciReset: false,\n })\n }\n\n cancelEditPct = () => {\n this.setState({\n protein: get(this.props, 'profile.proteinPct', 0),\n fat: get(this.props, 'profile.fatPct', 0),\n carbs: get(this.props, 'profile.carbsPct', 0),\n editingPct: false,\n pctReset: false,\n })\n }\n\n handleChange = (e) => {\n const { target: { value } } = e\n // console.log('handleChange', name, value)\n const num = isNaN(parseFloat(value)) ? value : parseFloat(value)\n this.setState({\n [e.target.name]: num,\n })\n }\n\n handleSaveProfile = async () => {\n\n const { dci, proteinPct, fatPct, carbsPct } = this.props.profile\n const { dci: dci2, protein: proteinPctNew, fat: fatPctNew, carbs: carbsPctNew, dciReset, pctReset } = this.state\n\n let haveChange = false\n let changes = {}\n if (dci !== dci2) {\n changes['dci'] = dci2\n changes['dciOverride'] = true\n haveChange = true\n }\n if (dciReset) {\n changes['dciReset'] = true\n haveChange = true\n }\n if (proteinPct !== proteinPctNew || fatPct !== fatPctNew || carbsPct !== carbsPctNew) {\n changes['proteinPct'] = proteinPctNew\n changes['fatPct'] = fatPctNew\n changes['carbsPct'] = carbsPctNew\n changes['pctOverride'] = true\n haveChange = true\n }\n if (pctReset) {\n changes['pctReset'] = true\n haveChange = true\n }\n // console.log('changes', changes)\n if (haveChange) {\n /*const result = */await this.props.saveProfile(changes)\n // console.log('result', result)\n }\n this.cancelEditDci()\n this.cancelEditPct()\n }\n\n render () {\n const { classes, profile } = this.props\n const { editingDci, editingPct, dci, protein, fat, carbs } = this.state\n // console.log('ProfileResults.render', profile, this.state)\n\n if (!profile) {\n return null\n }\n\n const anyMealSettings = hasMealSettings(profile)\n const btnPrefix = anyMealSettings ? 'Modify' : 'Proceed to'\n\n const total = protein + fat + carbs\n const valid = total === 100\n // console.log('total', total, valid)\n\n // const targets = get(profile, 'nutrientTargetPct', [])\n // const macro = {}\n // ;['protein', 'fat', 'carbs'].forEach(nType => {\n // const tFound = targets && targets.find(n => n.nutrient === nType)\n // const t = tFound && tFound.target\n // macro[nType] = t ? `${t}%` : ''\n // })\n // console.log('macro', macro)\n\n return (\n
\n \n\n }>\n
\n Basal Metabolic Rate\n

\n \n Your calculated BMR is: {profile.bmr || 'N/A'}\n \n

\n This is based on the values you provided for your\n {Boolean(profile.bodyFatPct)\n ? ' gender, age, height, and weight.'\n : ' weight and body fat.'}\n

\n
\n \n\n
\n Daily Caloric Intake\n

\n \n {editingDci ?\n (\n
\n Your calculated DCI is: \n \n \n \n \n \n
\n )\n :\n (\n \n
\n Your calculated DCI is:  {dci || 'N/A'}\n \n
\n
\n )\n }\n
\n

\n {profile.dciOverride ? (\n \n You have overridden the calculated DCI of {profile.dciDefault}. You\n can reset to the\n default or adjust this\n value as needed.\n \n ) : (\n \n This is based on the values you provided for your\n activity level and nutritional goals, plus your BMI. You\n can adjust this value as\n needed.\n \n )}\n

\n
\n\n \n\n
\n Macronutrient Target Percentages\n

\n Based on your inputs and our calculations, your target nutrient breakdown is:\n

\n
\n {!editingPct ? (\n \n Proteins: {protein}%\n Fat: {fat}%\n Carbohydrates: {carbs}%\n \n ) : (\n
\n
\n \n \n %\n \n\n \n \n %\n \n\n \n \n %\n \n {valid ||

Combined values must equal 100%, not {total}%

}\n
\n\n \n \n \n \n
\n )}\n
\n

\n {profile.pctOverride ? (\n \n You have overridden the calculated percentages\n of {profile.proteinPctDefault}%/{profile.fatPctDefault}%/{profile.carbsPctDefault}%.\n You can reset to the\n default values or adjust these values\n further as needed.\n \n ) : (\n \n You can adjust\n these values if necessary.\n \n )}\n\n\n

\n
\n \n\n \n {btnPrefix} meal settings\n Modify my profile\n \n\n
\n
\n )\n }\n}\n\nexport default withStyles(styles)(ProfileResults)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core'\nimport get from 'lodash/get'\nimport classnames from 'classnames'\n\nimport { Formik, Form, getIn } from 'formik'\nimport FormControl from '@material-ui/core/FormControl'\n\nimport { transform } from '@balance/lib/api/errors'\nimport { profileMealsSchema } from '@balance/lib/validations'\n\nimport { FormGroup, RadioGroup, Option } from '../Form'\nimport PageTitle from '../PageTitle/PageTitle'\nimport { Button, ButtonLink } from '../Button'\nimport ActionBar from '../Form/ActionBar'\n\nimport { RestaurantMenu } from '../../styles/icons'\nimport styles from '../../styles/forms'\n\ntype Props = {}\ntype State = {}\n\nconst daysOfWeek = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n]\n\nconst mealSplits = [\n { key: 1, label: '3 meals, 3 snacks' },\n { key: 2, label: '3 meals, 2 snacks' },\n { key: 3, label: '3 meals, 1 snack' },\n { key: 4, label: '3 meals, no snacks' },\n { key: 5, label: '4 meals, 1 snack' },\n { key: 6, label: '4 meals, no snacks' },\n]\n\nclass ProfileMeals extends PureComponent {\n static defaultProps = {}\n\n handleSubmit = async (values, actions) => {\n // console.log('ProfileMeals.onSubmit', { values, props: this.props, state: this.state })\n\n let numerics = ['mealDays', 'mealVariety', 'mealSplit', 'mealPlanStart']\n let normalized = {\n regenerateThisWeeksPlan: values.regenerateThisWeeksPlan === 'true'\n }\n numerics.forEach(v => normalized[v] = parseInt(values[v], 10))\n\n try {\n const result = await this.props.onSubmit(normalized)\n // console.log('profile meals done?', result)\n const success = get(result, 'data.saveProfile.success', false)\n if (!success) {\n const errors = transform(get(result, 'errors'))\n if (errors) {\n actions.setErrors(errors)\n if (errors.base) {\n this.setState({ error: errors.base.message })\n }\n }\n }\n } catch (err) {\n console.error('unable to submit data!', err)\n } finally {\n actions.setSubmitting(false)\n }\n }\n\n render () {\n const { classes, profile } = this.props\n\n // console.log('ProfileMeals.render', profile)\n\n const showResetWarning = get(profile, 'hasMealPlans', false)\n\n const profileWithDefaults = {\n mealDays: '5', // FormControlLabel requires strings :-|\n mealVariety: '3',\n mealSplit: 1,\n mealPlanStart: 0,\n regenerateThisWeeksPlan: 'false',\n ...profile,\n }\n return (\n \n {({ values, errors, touched, isSubmitting, isValid, handleSubmit, onSubmit, handleChange, handleBlur }) => {\n\n // console.log('profile wizard form', values, errors, touched, isSubmitting, isValid)\n // const validationProps = name => { return {touched: getIn(touched, name), error: getIn(errors, name)} }\n const validationProps = name => {\n const hasError = Boolean(getIn(errors, name))\n const hasValue = getIn(values, name) !== undefined\n return {\n touched: hasValue || hasError,\n error: getIn(errors, name),\n }\n }\n //const changeProps = {onChange: handleChange, onBlur: handleBlur}\n\n // console.log('ProfileActivityLevel()', values.activityLevel)\n const split = `${values.mealSplit}` // force string // parseInt(values.mealSplit, 10)\n\n return (\n
\n
\n \n\n
\n } title=\"How many days per week shall we prepare?\">\n \n \n \n\n \n \n {daysOfWeek.map((dow, index) => (\n \n \n\n \n \n \n \n\n \n \n\n \n {mealSplits.map((al, i) => (\n \n\n \n \n\n {showResetWarning && (\n \n\n

\n WARNING! Changes to these settings will impact meal plans starting next week.\n You can choose to also reset this week's plan.\n

\n\n \n \n\n
\n )}\n\n \n \n \n Cancel \n \n \n\n
\n \n\n\n
\n )\n }}\n \n )\n }\n}\n\nexport default withStyles(styles)(ProfileMeals)\n","// @flow\nimport get from 'lodash/get'\n\nexport const MONTHLY_FEE_PRODUCT_ID = 'com.balanceondemand.app.monthly_fee'\n\nexport function isIos (platform: ?String): boolean {\n if (!window.cordova) { return false }\n const platformTocheck = platform || get(window, 'device.platform')\n console.log('isIos?', platformTocheck)\n return ['iOS', 'iPadOS'].includes(platformTocheck)\n}\n\nexport function isAndroid (platform: ?String): boolean {\n if (!window.cordova) { return false }\n const platformTocheck = platform || get(window, 'device.platform')\n console.log('isAndroid?', platformTocheck)\n return ['amazon-fireos', 'Android'].includes(platformTocheck)\n}\n\nexport function isAvailable (): boolean {\n if (!window.cordova) { return false }\n return isIos() || isAndroid()\n}\n\nexport function nativePaymentLabel (platform: ?String): string {\n if (isIos(platform)) {\n return 'iOS App Store'\n } else if (isAndroid(platform)) {\n return 'Google Play Store'\n }\n return 'Mobile Payment'\n}\n\nexport function getProducts () {\n return new Promise((resolve, reject) => {\n // console.log('fetching products from store')\n // try {\n window.inAppPurchase\n .getProducts([MONTHLY_FEE_PRODUCT_ID])\n .then(function (products) {\n // console.log(products)\n console.table(products)\n resolve(products)\n })\n .catch(function (err) {\n console.log('Error getting products', err)\n // console.log(err)\n reject(err)\n })\n // } catch (err) {\n // console.log(\"Error getting products\", err)\n // reject(err)\n // }\n })\n}\n\nexport function getMainProduct () {\n return new Promise((resolve, reject) => {\n // console.log('fetching main product from store')\n window.inAppPurchase\n .getProducts([MONTHLY_FEE_PRODUCT_ID])\n .then(function (products) {\n // console.log(products)\n console.table(products)\n resolve(products.find(p => p.productId === MONTHLY_FEE_PRODUCT_ID))\n })\n .catch(function (err) {\n console.log('Error getting main product', err)\n reject(err)\n })\n })\n}\n\nexport function subscribe (productId = MONTHLY_FEE_PRODUCT_ID) {\n return new Promise((resolve, reject) => {\n // console.log('subscribing to product', productId)\n window.inAppPurchase\n .subscribe(productId)\n .then(function (data) {\n // console.log(data)\n resolve(data)\n })\n .catch(function (err) {\n console.log(err)\n reject(err)\n })\n })\n}\n\nexport function restorePurchases () {\n const productId = MONTHLY_FEE_PRODUCT_ID\n return new Promise((resolve, reject) => {\n // console.log('restoring purchases')\n window.inAppPurchase\n .restorePurchases()\n .then(function (data) {\n console.log(data)\n for (let i = 0; i < data.length; ++i) {\n // TODO: check data[i].state for cancelled or refunded\n if (data[i].productId === productId) {\n // console.log('Purchase found! Do something...', data)\n resolve(data)\n return\n }\n }\n resolve(null)\n })\n .catch(function (err) {\n console.log(err)\n reject(err)\n })\n })\n}\n\nexport function getReceipt () {\n return new Promise((resolve, reject) => {\n // console.log('getting app store subscription receipt')\n window.inAppPurchase\n .getReceipt()\n .then(function (receipt) {\n // console.log('encoded receipt', receipt)\n return receipt\n })\n .then(function (receiptData) {\n // console.log('receipt data', receiptData)\n resolve(receiptData)\n })\n .catch(function (err) {\n console.log(err)\n reject(err)\n })\n })\n}\n\nexport function validateReceipt (receiptData) {\n\n return new Promise((resolve, reject) => {\n\n })\n}\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport { withStyles } from '@material-ui/core'\nimport { Button } from '../Button'\nimport styles from '../../styles/global'\nimport {\n getProducts, isAndroid, isIos, MONTHLY_FEE_PRODUCT_ID, restorePurchases, subscribe,\n} from '../../lib/inAppPurchasing'\n\ntype Props = {\n onPayWithCC: Function,\n saveReceipt: Function,\n existingPayment: Object,\n}\ntype State = {\n error: ?String,\n}\n\nconst formatError = (err) => {\n if (err) {\n if (err.message && err.text) {\n return `${err.message}: ${err.text}`\n } else {\n return `${err.message}${err.text}`\n }\n }\n}\n\nclass InAppPayment extends PureComponent {\n static defaultProps = {}\n state = {\n products: [],\n error: '',\n }\n\n async componentDidMount () {\n await this.handleGetProducts()\n }\n\n handleGetProducts = async () => {\n try {\n const products = await getProducts()\n // console.log('handleGetProducts', products)\n this.setState({ products })\n } catch (err) {\n // console.log('error', err)\n if (err && err.message) {\n this.setState({ error: formatError(err) })\n }\n }\n }\n\n handleSubscribe = async () => {\n try {\n this.setState({ error: null })\n const data = await subscribe(MONTHLY_FEE_PRODUCT_ID)\n // console.log('handleSubscribe', data)\n /*const result = */this.props.saveReceipt && await this.props.saveReceipt(data)\n } catch (err) {\n // console.log('handleSubscribe error', err)\n if (err && err.message) {\n this.setState({ error: formatError(err) })\n }\n }\n }\n\n handleAndroidTestSubscribeSuccess = async () => {\n try {\n this.setState({ error: null })\n const data = await subscribe('com.balanceondemand.app.monthly_fee')\n // console.log('handleSubscribe2', data)\n /*const result = */this.props.saveReceipt && await this.props.saveReceipt(data)\n } catch (err) {\n // console.log('handleSubscribe2 error', err)\n if (err && err.message) {\n this.setState({ error: formatError(err) })\n }\n }\n }\n\n restorePurchases = async () => {\n try {\n const data = await restorePurchases()\n // console.log('restorePurchases', data)\n let count = data.length\n for (let i = 0; i < count; i++) {\n let receipt = data[i]\n if (receipt && receipt.productId === MONTHLY_FEE_PRODUCT_ID) {\n if (receipt.state === 3) {\n\n }\n }\n }\n } catch (err) {\n // console.log('restorePurchases error', err)\n }\n }\n\n handlePayWithCC = () => {\n this.props.onPayWithCC && this.props.onPayWithCC()\n }\n\n renderError = () => {\n if (this.state.error) {\n return (\n

{this.state.error}

\n )\n }\n }\n\n render () {\n const { existingPayment } = this.props\n // console.log('maybe rendering inAppPayment', window.device)\n\n const platform = get(window, 'device.platform')\n if (!platform) { return null }\n\n if (existingPayment && existingPayment.isIap && existingPayment.iapStore !== platform) {\n return (\n
\n You are already subscribed via the {existingPayment.iapStore} App Store!\n
\n )\n }\n\n if (isIos()) {\n // console.log('paying with iOS')\n return (\n
\n \n {/**/}\n {/**/}\n {/*

*/}\n {/* -- OR --*/}\n {/*

*/}\n {/**/}\n\n {this.renderError()}\n\n
\n )\n } else if (isAndroid()) {\n // console.log('paying with google')\n return (\n
\n \n {/*{(true || IS_DEV) && (*/}\n {/* */}\n {/*)}*/}\n\n {this.renderError()}\n
\n )\n } else if (this.state.error) {\n return this.renderError()\n }\n console.log('ran out of native payment options!')\n return null\n }\n}\n\nexport default withStyles(styles)(InAppPayment)\n","// @flow\nimport React, { Fragment, PureComponent } from 'react'\nimport { Link } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core'\nimport get from 'lodash/get'\nimport memoize from 'memoize-one'\n\nimport { Formik, getIn } from 'formik'\nimport { FullPageSpinner, Spinner } from '../Global'\n\nimport { profilePaymentSchema } from '@balance/lib/validations'\nimport { IS_DEV } from '@balance/lib/config/constants'\n\nimport { DisplayField, FormField, FormGroup } from '../Form'\nimport PageTitle from '../PageTitle/PageTitle'\nimport global from '../../styles/global'\nimport ButtonLink from '../Button/ButtonLink'\n\nimport { Payment, Person, PriceTag, TouchApp } from '../../styles/icons'\nimport ActionBar from '../Form/ActionBar'\nimport Button from '../Button/Button'\nimport {\n getMainProduct, getReceipt, isAndroid, isAvailable as isIapAvailable, nativePaymentLabel,\n} from '../../lib/inAppPurchasing'\n\nimport amex from 'payment-icons/min/flat/amex.svg'\nimport visa from 'payment-icons/min/flat/visa.svg'\nimport mastercard from 'payment-icons/min/flat/mastercard.svg'\nimport discover from 'payment-icons/min/flat/discover.svg'\nimport InAppPayment from './InAppPayment'\n\ntype Props = {\n user: object,\n payment: object,\n startCheckout: Function,\n savePayment: Function,\n validateReceipt: Function,\n}\ntype State = {\n ready: boolean,\n loading: boolean,\n isSubmitting: boolean, // replacement for Formik's\n isValidating: boolean,\n isValid: boolean,\n success: boolean,\n token: string,\n validUntil: Date,\n apiUrl: string,\n userIp: string,\n error: string,\n cc: {\n num: string,\n mmyy: string,\n cvc: string,\n zip: string,\n },\n useIAP: boolean,\n iapProduct: Object,\n}\n\nconst styles = (theme) => {\n const gs = global(theme)\n return {\n ...gs,\n cards: {\n '& img': {\n maxWidth: 32,\n marginRight: 4,\n },\n },\n paymentOptionsGroup: {\n marginTop: theme.spacing.unit * 2,\n },\n }\n}\n\nclass PaymentEdit extends PureComponent {\n static defaultProps = {\n user: {},\n payment: {},\n }\n state = {\n ready: false,\n loading: !!window.cordova, // cordova needs to load IAP products\n success: false,\n isSubmitting: false,\n isValidating: false,\n token: '',\n validUntil: null,\n apiUrl: '',\n userIp: '',\n error: '',\n cc: {\n num: IS_DEV ? '4242424242424242' : '',\n mmyy: IS_DEV ? '10/22' : '',\n cvc: IS_DEV ? '123' : '',\n zip: IS_DEV ? '12345' : '',\n },\n useIAP: false,\n }\n\n name = memoize((option1, option2) => {\n // console.log('name options', option1, option2)\n return option1 || option2\n })\n\n componentDidMount = async (): void => {\n // console.log('PaymentEdit.cDM', this.props)\n\n let result = {}\n const iapIsAvailable = isIapAvailable()\n let iapProduct = {}\n if (iapIsAvailable) {\n try {\n iapProduct = await getMainProduct()\n } catch (err) {\n // console.log('PaymentEdit.cDM error', err)\n this.setState({ error: err.text })\n }\n } else {\n result = await this.props.startCheckout()\n // console.log('result?', result)\n }\n this.setState({\n ...result,\n iapAvailable: iapIsAvailable,\n iapProduct: iapProduct,\n useIAP: iapIsAvailable,\n success: false,\n isSubmitting: false,\n ready: result && Boolean(result.success) === true,\n loading: false,\n }, this.loadCheckoutJs)\n\n if (iapIsAvailable) {\n this.validateReceipt() // don't await on it, tho\n }\n }\n\n validateReceipt = async () => {\n // console.log('validating receipt ...')\n if (this.state.isValidating || isAndroid()) { return }\n\n this.setState({ isValidating: true })\n try {\n const receiptData = await getReceipt()\n // console.log('got data', receiptData)\n // console.log('got data (length)', receiptData.length)\n /*const valid = */\n this.props.validateReceipt && await this.props.validateReceipt(receiptData)\n // console.log('valid?', valid)\n } catch (err) {\n // console.log('got error', err)\n }\n }\n\n // componentDidUpdate = () => {\n // console.log('PaymentEdit.cDU', this.props)\n // this.setState({\n // })\n // }\n\n handlePayWithCC = () => {\n this.setState({ useIAP: false })\n }\n\n handlePayWithIAP = () => {\n this.setState({ useIAP: true })\n }\n\n handleSubmit = async (values) => {\n this.setState({ isSubmitting: true })\n // console.log('PaymentEdit.handleSubmit', this.state, values)\n await this.submitPayment(values)\n }\n\n handlePaymentError = (error) => {\n this.setState({ error, isSubmitting: false })\n this.showPaymentResult('error', error)\n }\n\n handleDeclined = (response) => {\n const { errorName, errorMessage } = response\n this.setState({\n error: ['Declined. Reason: ', [errorName, errorMessage].join(': ')].join(' '),\n isSubmitting: false,\n })\n this.showPaymentResult('declined', JSON.stringify(response))\n }\n\n handleApproval = async (response) => {\n const { savePayment } = this.props\n // console.log('approved!', response)\n this.showPaymentResult('approval', JSON.stringify(response))\n\n const { ssl_first_name, ssl_last_name, ssl_card_number, ssl_card_short_description, ssl_exp_date, ssl_recurring_id } = response\n // console.log('response values?', response)\n /*const result = */\n await savePayment({\n firstName: ssl_first_name,\n lastName: ssl_last_name,\n ccLast4: ssl_card_number.slice(-4),\n ccDesc: ssl_card_short_description,\n ccExpDate: ssl_exp_date,\n recurringTxnId: ssl_recurring_id,\n })\n\n this.setState({ success: true, error: '', isSubmitting: false })\n // console.log('done', result)\n }\n\n handleIapSuccess = async (receiptData) => {\n const { savePayment } = this.props\n // console.log('handleIapSuccess', receiptData)\n // this.showPaymentResult('approval', JSON.stringify(receiptData))\n\n const { transactionId, receipt } = receiptData\n // console.log('response values?', response)\n /*const result = */\n await savePayment({\n iapStore: get(window, 'device.platform'),\n iapReceipt: receipt,\n iapOriginalTxnId: transactionId,\n // firstName: ssl_first_name,\n // lastName: ssl_last_name,\n // ccLast4: ssl_card_number.slice(-4),\n // ccDesc: ssl_card_short_description,\n // ccExpDate: ssl_exp_date,\n // recurringTxnId: ssl_recurring_id,\n })\n\n this.setState({ success: true, error: '', isSubmitting: false })\n // console.log('handleIapSuccess done', result)\n }\n\n handleCancelled = () => {\n this.setState({ error: 'Cancelled!', isSubmitting: false })\n this.showPaymentResult('cancelled', '')\n }\n\n getMonthlyFee = () => {\n const { useIAP, iapAvailable, iapProduct } = this.state\n if (useIAP && iapAvailable && iapProduct && iapProduct.price) {\n return `${iapProduct.price} (${iapProduct.currency})`\n }\n return `$${get(this.props, 'payment.monthlyPrice', '4.99')} (USD)`\n }\n\n handleonDCCDecision = (DCCResponse) => {\n // DCCResponse has fields “ssl_conversion_rate”, ssl_cardholder_amount”, “ssl_markup”, ssl_dcc_rate_provider”, //ssl_cardholder_currency” Merchant display DCC fields, call ConvergeEmbeddedPayment.dccDecision() after customer makes // decision;\n }\n\n onThreeDSecure = (threeDSecureResponse) => {\n // threeDSecureResponse has fields “acs_url”, “pareq” and “md”\n // Redirect Cardholder to 3DSecure site, call ConvergeEmbeddedPayment.threeDSecureReturn() after redirect comeback.\n\n }\n\n showPaymentResult = (status, msg, hash) => {\n // console.log('showPaymentResult', status, msg, hash)\n // document.getElementById('txn_status').innerHTML = '' + status + ''\n // document.getElementById('txn_response').innerHTML = msg + ''\n // document.getElementById('txn_hash').innerHTML = hash\n }\n\n loadCheckoutJs = () => {\n if (this.state.iapAvailable) { return }\n // console.log('loadCheckoutJs', this.state)\n if (!this.state.ready) { return }\n\n const platform = get(window, 'device.platform')\n // return ['iOS', 'Android'].includes(platform)\n if (window.cordova && platform) { return }\n\n const jsFile = `${this.state.apiUrl}/hosted-payments/Checkout.js`\n const script = document.createElement('script')\n\n script.src = jsFile\n script.async = true\n\n document.body.appendChild(script)\n }\n\n submitPayment = async (values) => {\n // console.log('submitPayment', values, this.state)\n const { user } = this.props\n const { token, userIp } = this.state\n const { firstName, lastName } = values\n if (!window.ConvergeEmbeddedPayment || !token) {\n this.setState({\n ready: false,\n error: 'Unable to process payments at this time.',\n })\n return false\n }\n\n var card = get(values, 'cc.num')\n var mmyy = get(values, 'cc.mmyy')\n var cvc = get(values, 'cc.cvc')\n var zip = get(values, 'cc.zip')\n const price = get(this.props, 'payment.monthlyPrice', '4.99')\n\n var startPaymentDate = new Date()\n // nextPaymentDate.setMonth(nextPaymentDate.getMonth() + 1)\n let mm = startPaymentDate.getMonth() + 1\n let dd = startPaymentDate.getDate()\n var startPaymentDateStr = `${mm < 10 ? '0' : ''}${mm}/${dd < 10 ? '0' : ''}${dd}/${startPaymentDate.getFullYear()}`\n\n var paymentData = {\n ssl_transaction_type: 'ccaddrecurring',\n\n ssl_txn_auth_token: token, // session token\n\n ssl_card_number: card,\n ssl_exp_date: mmyy,\n ssl_cvc: cvc,\n ssl_avs_zip: zip,\n ssl_add_token: 'Y',\n ssl_amount: price,\n ssl_billing_cycle: 'MONTHLY',\n ssl_end_of_month: 'N',\n ssl_next_payment_date: startPaymentDateStr,\n ssl_cardholder_ip: userIp,\n ssl_email: user.email,\n ssl_first_name: firstName,\n ssl_last_name: lastName,\n }\n\n // \n\n var callbacks = {\n onError: this.handlePaymentError, // Take appropriate action to handle errors\n onDeclined: this.handleDeclined, // Take appropriate action to handle decline\n onApproval: this.handleApproval, // Take appropriate action to handle approvals\n onCancelled: this.handleCancelled, // Take appropriate action to handle cancellation?\n // onDCCDecision: this.handleonDCCDecision,\n // onThreeDSecure: this.onThreeDSecure,\n }\n\n await window.ConvergeEmbeddedPayment.pay(paymentData, callbacks)\n // ConvergeEmbeddedPayment.dccDecision(dccOption, callback)\n// dccOption = true/false\n// ConvergeEmbeddedPayment.threeDSecureReturn(md, pares, callback)\n return true\n }\n\n render () {\n const { classes } = this.props\n const { ready, loading, success, isSubmitting, useIAP, iapAvailable } = this.state\n // console.log('PaymentEdit.render', this.props, this.state)\n\n const isNotProd = get(this.state, 'apiUrl', '').indexOf('demo') > -1\n\n const existingPayment = get(this.props, 'payment', {})\n\n const alreadyUsingCC = get(existingPayment, 'isCc')\n const alreadyUsingIap = get(existingPayment, 'isIap')\n // const iapStore = get(existingPayment, 'iapStore')\n // console.log('iap', { iapStore, alreadyUsingCC, alreadyUsingIap })\n\n const firstName = this.name(get(existingPayment, 'firstName'), get(this.props, 'user.firstName'))\n const lastName = this.name(get(existingPayment, 'lastName'), get(this.props, 'user.lastName'))\n // console.log('names', firstName, lastName)\n\n const initialForm = {\n firstName,\n lastName,\n ...this.state,\n }\n\n const fee = this.getMonthlyFee()\n\n if (loading) {\n return \n }\n\n if (success) {\n return (\n
\n \n\n

\n Success! You're all set to start enjoying a\n balanced diet! View your customized meal\n plan\n

\n
\n )\n }\n\n return (\n
\n \n\n \n {({ values, errors, touched, isValid, handleSubmit, handleChange, handleBlur }) => {\n\n const systemReady = Boolean(window.ConvergeEmbeddedPayment) && ready\n // console.log('profile payment form', values, errors)\n // console.log('systemReady, isValid, isSubmitting, disabled', systemReady, isValid, isSubmitting,\n // !systemReady || !isValid || isSubmitting)\n const validationProps = name => {\n const hasError = Boolean(getIn(errors, name))\n const hasValue = getIn(values, name) !== undefined\n // const isTouched = getIn(touched, name)\n // console.log('validating', name, hasError, isTouched, hasValue, hasValue || (!isValid && !isTouched))\n return {\n touched: hasValue || hasError,\n error: getIn(errors, name),\n }\n }\n const changeProps = { onChange: handleChange, onBlur: handleBlur }\n\n return (\n \n \n

\n Subscribe now to gain access to the weekly meal plans that we generate for you based on your fitness\n and nutritional profile and goals. Your first membership fee of {fee} will be billed immediately and\n automatically renew every month; you can cancel at any time, but once your subscription expires (at\n the end of the then-current billing cycle),\n you will no longer have access to the weekly meal plan generator or grocery lists.\n

\n {iapAvailable && (\n

\n You can cancel by simply visiting the {nativePaymentLabel()} subscriptions page. Note that\n cancelling your account within\n the app does not cancel your subscription; that must be done\n via the app store.\n

\n )}\n\n
\n\n }>\n \n\n \n\n {iapAvailable && (\n }>\n\n

\n By clicking “Subscribe” and completing the {nativePaymentLabel()} process,\n you are agreeing to Balance on Demand’s Terms\n and Conditions.\n

\n\n
\n {(useIAP || alreadyUsingIap) ? (\n \n ) : (\n \n )}\n
\n\n
)}\n\n {(!useIAP || alreadyUsingCC) && !iapAvailable && (\n \n }>\n \n \n\n \n }>\n\n \n
\n \"Visa\"\n \"MasterCard\"\n \"American\n \"Discover\"\n
\n\n \n\n \n\n \n\n

{this.state.error}

\n
\n\n \n\n {isNotProd && (\n

\n NOTE: this system is hooked up to a test processing environment. Real credit cards should not\n be used (although they are still secure). You can view a list of valid test credit card\n numbers here.\n Other numbers may or may not be declined by the API; 4141414141414141 is a known invalid card.\n

\n )}\n\n

\n By clicking “Pay”, you are agreeing to Balance on Demand’s Terms\n and\n Conditions.\n

\n\n \n \n Not now\n \n\n
\n
\n )}\n
\n )\n }}\n \n\n
\n )\n }\n}\n\nexport default withStyles(styles)(PaymentEdit)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { Link } from 'react-router-dom'\nimport { withStyles, Typography } from '@material-ui/core'\nimport { hasProfile, hasMealSettings } from '@balance/lib/api/profile'\n\nimport PageTitle from '../PageTitle/PageTitle'\nimport styles from '../../styles/global'\n\ntype Props = {\n profile: Object,\n}\ntype State = {}\n\nclass ProfileNotComplete extends PureComponent {\n static defaultProps = {}\n\n renderNoProfile = () => {\n return (\n You haven't setup a profile yet! Please do so now.\n )\n }\n\n renderIncompleteProfile = () => {\n return (\n You haven't finished setting up your profile yet! Please do so\n now.\n )\n\n }\n\n renderNoMealSettings = () => {\n return (\n You haven't configured your meal settings yet! Please do so\n now.\n )\n }\n\n renderError = () => {\n return (\n Your profile doesn't seem complete. Please update it now.\n )\n }\n\n render () {\n const {classes, profile} = this.props\n\n const noProfile = !Boolean(profile)\n const profileSetup = hasProfile(profile)\n const hasMeals = hasMealSettings(profile)\n\n return (\n
\n \n\n {noProfile ? this.renderNoProfile() :\n !profileSetup ? this.renderIncompleteProfile() :\n !hasMeals ? this.renderNoMealSettings() : this.renderError()}\n\n
\n )\n }\n}\n\nexport default withStyles(styles)(ProfileNotComplete)\n","import React, { Component } from 'react'\nimport { ApolloConsumer, Mutation, Query } from 'react-apollo'\nimport { Redirect, withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { trimAll } from '@balance/lib/utils'\nimport { isComplete, SAVE_PROFILE } from '@balance/lib/api/profile'\nimport { GET_CURRENT_USER, GET_SYSTEM_CONFIG } from '@balance/lib/api/user'\nimport { SEARCH_FOOD_NAMES } from '@balance/lib/api/foods'\n\nimport { ProfileWizard } from '../../components/Profile'\n\nconst profileProgression = ['demo', 'goals', 'activity', 'nutrition', 'notificationPreferences', 'targets']\n\nclass ProfileEditContainer extends Component {\n\n state = {\n error: '',\n redirectTo: '',\n }\n\n // componentWillReceiveProps = (nextProps) => {\n // console.log('ProfileEditContainer.cWRP', nextProps, this.state, this.props)\n // }\n\n componentDidUpdate = () => {\n // console.log('ProfileEditContainer.dU')\n if (this.state.redirectTo) {\n this.setState({ redirectTo: '' })\n }\n }\n\n handlePrevious = () => {\n const step = get(this.props, 'match.params.step')\n const prevStepIndex = profileProgression.indexOf(step) - 1\n // console.log('prevStepIndex', prevStepIndex)\n if (prevStepIndex >= 0) {\n if (prevStepIndex < profileProgression.length) {\n const previousStep = profileProgression[prevStepIndex]\n // console.log('previousStep', previousStep)\n this.setState({ redirectTo: `/profile/${previousStep}` })\n }\n }\n }\n\n handleGoTo = (stepIndex) => {\n // console.log('handleGoTo', stepIndex)\n this.setState({ redirectTo: this._gotoStepIndex(stepIndex) })\n }\n\n _gotoStepIndex = (index) => {\n const nextStep = profileProgression[index]\n return `/profile/${nextStep}`\n }\n\n _nextStep = (step) => {\n const nextStepIndex = profileProgression.indexOf(step) + 1\n // console.log('nextStep', nextStepIndex)\n if (nextStepIndex > 0) {\n if (nextStepIndex < profileProgression.length) {\n const nextStep = profileProgression[nextStepIndex]\n return `/profile/${nextStep}`\n } else {\n // console.log('profile done!')\n return '/profile/results'\n }\n }\n }\n\n renderRedirect = (path) => {\n // const reload = path === '/profile/results' || path === '/profile/targets'\n return \n }\n\n render () {\n const step = get(this.props, 'match.params.step')\n // console.log('profile step', step, this.state)\n\n const onPrevious = profileProgression[0] === step ? null : this.handlePrevious\n const isLastStep = profileProgression[profileProgression.length - 1] === step\n return (\n \n {({ state, updateHeight }) => {\n // console.log('ProfileEditContainer.user consumer', state)\n\n // updateHeight && updateHeight() // for the dumb Tabs component\n document.dispatchEvent(new Event('resize'))\n\n const profile = get(state, 'profile', {})\n const profileLooksComplete = isComplete(profile)\n\n return (\n \n {({ data }) => {\n\n const systemConfig = get(data, 'systemConfig', {})\n const timeZones = get(data, 'systemConfig.timeZones', [])\n\n return (\n \n {client => {\n\n const handleSearchFood = async (query) => {\n // console.log('searching for food', query)\n const { data } = await client.query({\n query: SEARCH_FOOD_NAMES,\n variables: {\n filter: {\n q: query,\n apiCat: 'Generic foods'\n }\n },\n fetchPolicy: 'network-only',\n })\n\n return get(data, 'items', [])\n }\n return (\n {\n // console.log('updating profile cache...', saveProfile)\n const { currentUser } = cache.readQuery({ query: GET_CURRENT_USER })\n // console.log('userData', currentUser)\n const mergedProfile = {\n ...currentUser.profile,\n ...saveProfile.profile,\n }\n const updatedUser = {\n ...currentUser,\n profile: mergedProfile,\n }\n // console.log('updatedUser', updatedUser, mergedProfile)\n cache.writeQuery({\n query: GET_CURRENT_USER,\n data: { currentUser: updatedUser },\n })\n }}\n >\n {(saveProfile, { data, loading, error }, ...rest) => {\n // console.log('signin container props', data)\n\n const handleSubmit = async (values) => {\n // console.log('profile wizard handleSubmit', values, { trimmed: trimAll(values) })\n const result = await saveProfile(\n { variables: { attributes: { step, ...trimAll(values) } } })\n const success = get(result, 'data.saveProfile.success', false)\n if (success) {\n // refetch && await refetch()\n this.setState({ redirectTo: this._nextStep(step) })\n }\n return result\n }\n\n if (this.state.redirectTo) {\n return this.renderRedirect(this.state.redirectTo)\n }\n\n return (\n \n )\n }}\n\n \n )\n }}\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(ProfileEditContainer)\n","import React, { Component } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { SAVE_PROFILE } from '@balance/lib/api/profile'\n// import { trimAll } from '@balance/lib/utils'\n\nimport { ProfileResults } from '../../components/Profile'\n\nclass ProfileResultsContainer extends Component {\n state = {}\n\n // componentWillReceiveProps = (nextProps) => {\n // console.log('ProfileResultsContainer.cWRP', nextProps, this.state, this.props)\n // }\n\n // componentDidUpdate = () => {\n // console.log('ProfileResultsContainer.dU')\n // }\n\n render () {\n // const step = get(this.props, 'match.params.step')\n // console.log('profile step', step, this.state)\n\n return (\n \n {({state, refetch}) => {\n // console.log('ProfileResultsContainer.user consumer', state, refetch)\n\n refetch && refetch()\n\n const profile = get(state, 'profile', {})\n return (\n \n {saveProfile => {\n\n const doSaveProfile = async (attrs) => {\n // console.log('doSaveProfile', attrs)\n const result = await saveProfile({\n variables: {\n attributes: {\n ...attrs,\n step: 'targets',\n },\n },\n })\n // console.log('saveProfile result', result)\n return get(result, 'data.data.success')\n }\n return (\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(ProfileResultsContainer)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport { Redirect } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core'\n\nimport { formatDate } from '@balance/lib/utils'\n\nimport { DisplayField, FormGroup } from '../Form'\nimport PageTitle from '../PageTitle/PageTitle'\nimport styles from '../../styles/global'\nimport { Button, ButtonLink } from '../Button'\n\nimport { Payment, Person, TouchApp } from '../../styles/icons'\nimport ActionBar from '../Form/ActionBar'\nimport Alert from '../Modal/Alert'\nimport { isAndroid, isIos, MONTHLY_FEE_PRODUCT_ID, nativePaymentLabel } from '../../lib/inAppPurchasing'\n\ntype Props = {\n user: Object,\n payment: Object,\n cancelAccount: Function,\n}\ntype State = {\n ready: boolean,\n success: boolean,\n cancelAlertOpen: boolean,\n cancelled: boolean,\n token: string,\n validUntil: Date,\n apiUrl: string,\n userIp: string,\n error: string,\n firstName: string,\n lastName: string,\n cc: {\n num: string,\n mmyy: string,\n cvc: string,\n zip: string,\n },\n}\n\nclass PaymentDetail extends PureComponent {\n static defaultProps = {\n user: {},\n }\n state = {\n ready: false,\n success: false,\n cancelAlertOpen: false,\n cancelled: false,\n }\n\n // componentDidMount = async (): void => {\n // console.log('PaymentDetail.cDM', this.props)\n // }\n\n formatLast4 = (payment) => {\n if (!payment) { return '' }\n\n let masked4 = ''\n if (payment.ccDesc === 'AMEX') {\n masked4 = '**** ****** ' + payment.ccLast4\n } else {\n masked4 = '**** **** **** ' + payment.ccLast4\n }\n return masked4\n }\n\n formatExpDate = (payment) => {\n if (!payment || !payment.ccExpDate) { return '' }\n\n const d = payment.ccExpDate\n return d.slice(0, 2) + '/' + d.slice(-2)\n }\n\n handleClose = () => {\n this.setState({ cancelAlertOpen: false })\n }\n\n handleCancel = () => {\n // console.log('handelCancel')\n this.setState({ cancelAlertOpen: true })\n }\n\n handleCancelConfirmed = async () => {\n const result = await this.props.cancelAccount()\n this.handleClose()\n if (result) {\n this.setState({ cancelled: true })\n }\n }\n\n // loadCheckoutJs = () => {\n // console.log('loadCheckoutJs', this.state)\n // const jsFile = `${this.state.apiUrl}/hosted-payments/Checkout.js`\n // const script = document.createElement('script')\n //\n // script.src = jsFile\n // script.async = true\n //\n // document.body.appendChild(script)\n // }\n\n renderIapDetails = (payment) => {\n const androidSku = MONTHLY_FEE_PRODUCT_ID\n const androidPkg = 'com.balanceondemand.app'\n return (\n }>\n \n\n {isIos(payment.iapStore) && (\n Manage via\n iTunes\n )}\n {isAndroid(payment.iapStore) && (\n Manage\n via\n Play Store\n )}\n\n Edit\n \n )\n }\n\n renderCcDetails = (payment, status) => {\n const { classes } = this.props\n const last4 = this.formatLast4(payment)\n const mmyy = this.formatExpDate(payment)\n return (\n }>\n \n \n\n

{this.state.error}

\n\n {status === 'active' && (\n

\n Note: to make changes to your credit card information,\n please email us.\n

\n )}\n
\n )\n }\n\n render () {\n const { classes, user, payment } = this.props\n\n console.log('PaymentDetail.render', this.props, this.state)\n\n const status = user.status\n const pendingCancellation = status === 'pending_cancellation'\n const priLabel = status === 'trial' ? 'Upgrade!' :\n status === 'cancelled' || status === 'inactive' || pendingCancellation ? 'Reactivate!' :\n status === 'active' ? 'Update Payment Info' : 'Modify'\n const expiration = formatDate(get(user, 'expiresAt'), false, true)\n\n const iapCopy = payment.isIap\n ? `Please note that cancelling here does not automatically stop your subscription with the ${nativePaymentLabel(payment.iapStore)} -- You still need to cancel there.`\n : ''\n const expirationCopy = `Are you sure? You will continue to have access to the platform until your current billing period expires at ${expiration}. ${iapCopy}`\n if (this.state.cancelled) {\n return (\n \n )\n }\n\n return (\n
\n \n\n }>\n \n \n \n\n {payment.isIap && this.renderIapDetails(payment)}\n {payment.isCc && this.renderCcDetails(payment, status)}\n\n {pendingCancellation &&

Account Pending Cancellation: {expiration}

}\n\n \n\n \n\n {status !== 'active' && (\n \n {priLabel}\n \n )}\n {(status !== 'cancelled' && !pendingCancellation) && (\n \n )}\n Back\n \n\n \n\n \n\n
\n )\n }\n}\n\nexport default withStyles(styles)(PaymentDetail)\n","import React, { Component } from 'react'\nimport { ApolloConsumer, Query } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { GET_PAYMENT_DETAILS, SAVE_PAYMENT_DETAILS, START_CHECKOUT, VALIDATE_RECEIPT } from '@balance/lib/api/payment'\n\nimport { PaymentEdit } from '../../components/Payment'\n\nclass PaymentEditContainer extends Component {\n state = {\n lastFetchedAt: 0,\n }\n\n // constructor (props) {\n // super(props)\n // // console.log('PaymentEditContainer()', this.state)\n // }\n\n // componentWillReceiveProps = (nextProps) => {\n // console.log('PaymentEditContainer.cWRP', nextProps, this.state, this.props)\n // }\n\n // componentDidUpdate = () => {\n // console.log('PaymentEditContainer.dU', this.state)\n // }\n\n render () {\n // const step = get(this.props, 'match.params.step')\n // console.log('profile step', step, this.state)\n // console.log('profile payment container.render', this.state)\n return (\n \n {({ state, refetch }) => {\n // console.log('PaymentEditContainer.user consumer', state)\n\n const now = new Date()\n const gap = this.state.lastFetchedAt > 0 ? now - this.state.lastFetchedAt : 1000\n // console.log('gap', gap, this.state.lastFetchedAt)\n if (refetch && gap > 500) {\n this.setState({ lastFetchedAt: now })\n // refetch()\n }\n\n return (\n \n {({ data, loading, ...rest }) => {\n // console.log('payment data', loading, data, rest)\n\n const payment = get(data, 'paymentDetails')\n // console.log('payment', payment)\n\n return (\n \n {(client) => {\n\n const startCheckout = async () => {\n // console.log('startCheckout')\n const { data } = await client.query({\n query: START_CHECKOUT,\n fetchPolicy: 'network-only',\n })\n\n return get(data, 'startCheckout')\n }\n\n const savePayment = async (details) => {\n console.log('savePayment', details)\n const { data } = await client.mutate({\n mutation: SAVE_PAYMENT_DETAILS,\n variables: { attributes: details },\n })\n console.log('savePayment result', data)\n refetch && refetch()\n\n return get(data, 'savePayment')\n }\n\n const validateReceipt = async (receiptData) => {\n console.log('validateReceipt()', receiptData)\n const { data } = await client.mutate({\n mutation: VALIDATE_RECEIPT,\n variables: { userId: state.id, receiptData },\n })\n console.log('validateReceipt result', data)\n return get(data, 'valid', false)\n }\n\n return (\n \n )\n }}\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(PaymentEditContainer)\n","import React, { Component } from 'react'\nimport { ApolloConsumer, Query } from 'react-apollo'\nimport { Redirect, withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\n\nimport { CANCEL_ACCOUNT, GET_PAYMENT_DETAILS } from '@balance/lib/api/payment'\n\nimport { PaymentDetail } from '../../components/Payment'\n\nclass PaymentDetailContainer extends Component {\n state = {}\n\n // componentWillReceiveProps = (nextProps) => {\n // console.log('PaymentDetailContainer.cWRP', nextProps, this.state, this.props)\n // }\n //\n // componentDidUpdate = () => {\n // console.log('PaymentDetailContainer.dU', this.state)\n // }\n\n render () {\n // const step = get(this.props, 'match.params.step')\n // console.log('profile step', step, this.state)\n // console.log('profile payment container.render', this.state)\n return (\n \n {({ state, refetch }) => {\n // console.log('PaymentDetailContainer.user consumer', state)\n\n refetch && refetch()\n\n // const profile = get(state, 'profile', {})\n // \n return (\n \n {({ data, loading, ...rest }) => {\n // console.log('payment data', loading, data, rest)\n\n const payment = get(data, 'paymentDetails', {})\n let jumpToEdit = false\n if (!loading && payment) {\n jumpToEdit = payment.isActive && !payment.isIap && (!payment.isCc || !payment.ccLast4)\n }\n if (jumpToEdit) {\n return (\n \n )\n }\n return (\n \n {(client) => {\n const cancelAccount = async (details) => {\n // console.log('cancelPayment', details)\n const { data } = await client.mutate({\n mutation: CANCEL_ACCOUNT,\n variables: { attributes: details },\n })\n // console.log('cancelAccount result', data)\n refetch && refetch()\n return get(data, 'cancelAccount')\n }\n\n return (\n \n )\n }}\n \n\n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(PaymentDetailContainer)\n","import React, { Component } from 'react'\nimport { Mutation } from 'react-apollo'\nimport { withRouter, Redirect } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { trimAll } from '@balance/lib/utils'\nimport { SAVE_PROFILE } from '@balance/lib/api/profile'\n\nimport { ProfileMeals } from '../../components/Profile'\n\nclass ProfileMealsContainer extends Component {\n\n state = {\n error: '',\n redirectTo: '',\n }\n\n // componentWillReceiveProps = (nextProps) => {\n // console.log('ProfileMealsContainer.cWRP', nextProps, this.state, this.props)\n // }\n\n componentDidUpdate = () => {\n // console.log('ProfileMealsContainer.dU')\n if (this.state.redirectTo) {\n this.setState({redirectTo: ''})\n }\n }\n\n render () {\n // console.log('profile meals', this.props, this.state)\n const step = 'meals'\n\n return (\n \n {({state}) => {\n // console.log('ProfileMealsContainer.user consumer', state)\n const profile = get(state, 'profile', {})\n return (\n \n {(saveProfile, {data, loading, error}, ...rest) => {\n // console.log('signin container props', data)\n\n const handleSubmit = async (values) => {\n // console.log('profile meals handleSubmit', values, {trimmed: trimAll(values)})\n const result = await saveProfile({variables: {attributes: {step, ...trimAll(values)}}})\n const success = get(result, 'data.saveProfile.success', false)\n if (success) {\n // refetch && await refetch()\n this.setState({redirectTo: '/'})\n }\n return result\n }\n\n if (this.state.redirectTo) {\n return \n }\n\n return (\n \n )\n }}\n\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(ProfileMealsContainer)\n","// @flow\nimport React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport Paper from '@material-ui/core/Paper'\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n // minWidth: '100%',\n },\n})\n\nconst DataTable = ({classes, items, columnLabels}) => {\n return (\n \n \n \n \n {columnLabels.map((col, i) => (\n 0 ? 'right' : 'left'}>{col}\n ))}\n \n \n \n {items.map((item, i) => {\n return (\n \n {item.map((el, j) => (\n 0 ? 'right' : 'left'}>{el}\n ))}\n \n )\n })}\n \n
\n
\n )\n}\n\nexport default withStyles(styles)(DataTable)\n","// @flow\nimport React, { Fragment } from 'react'\nimport compact from 'lodash/compact'\nimport { withStyles } from '@material-ui/core/styles'\nimport Table from '@material-ui/core/Table'\nimport TableBody from '@material-ui/core/TableBody'\nimport TableCell from '@material-ui/core/TableCell'\nimport TableHead from '@material-ui/core/TableHead'\nimport TableRow from '@material-ui/core/TableRow'\nimport TableFooter from '@material-ui/core/TableFooter'\nimport Paper from '@material-ui/core/Paper'\nimport Tooltip from '@material-ui/core/Tooltip'\n\nimport { asPct } from '@balance/lib/utils'\nimport { IS_DEV } from '@balance/lib/config/constants'\n\nimport { Link as LinkIcon } from '../../styles/icons'\n\nconst styles = theme => ({\n root: {\n width: '100%',\n marginTop: theme.spacing.unit * 3,\n overflowX: 'auto',\n },\n table: {\n // minWidth: '100%',\n '& th, & td': {\n padding: [[theme.spacing.unit, theme.spacing.unit]],\n },\n },\n thead: {\n color: '#3d3d3d',\n fontSize: 10,\n fontWeight: '500',\n textTransform: 'uppercase',\n whiteSpace: 'nowrap',\n },\n parent: {\n '& > *': {\n borderBottom: 'none',\n paddingBottom: 10,\n },\n },\n sub: {\n paddingBottom: 10,\n },\n name: {\n minWidth: 150,\n paddingRight: '0.5rem',\n\n '& span': {\n verticalAlign: 'middle',\n display: 'flex',\n alignItems: 'center',\n },\n '& span svg': {\n marginRight: 5,\n },\n },\n})\n\nconst PerGramToolTip = ({ amount, children }) => (\n \n {children}\n \n)\n\nconst IngredientTable = ({ classes, ingredients, recipe, showCalTarget }) => {\n\n const numericLabels = [\n 'Calories',\n 'Protein (g)',\n 'Fat (g)',\n 'Carbs (g)',\n 'Fiber (g)',\n 'Sugar (g)',\n 'Sodium (mg)',\n ]\n\n const ingredientsGrouped = compact(ingredients.map(ingr => {\n return ingr.goesWithId ? null : {\n ...ingr,\n sub: ingredients.filter(ingrSub => ingrSub.goesWithId === ingr.id),\n }\n }))\n //console.log('ingredientsGrouped', ingredients, ingredientsGrouped)\n\n const row = (ingr, prefix = null) => {\n // console.log('row', ingr, prefix)\n let qty = ''\n if (ingr.foodFixed) {\n const wholeQty = parseFloat(ingr.qty)\n const fixedQty = parseFloat(ingr.fixedQty)\n const qtyMain = (fixedQty && ingr.fixedUnit) ? `${fixedQty} ${ingr.fixedUnit}${wholeQty !== 1 ? ' ea' : ''}` : ''\n qty = `, ${wholeQty} whole (${qtyMain})`\n } else {\n const qtyG = `${ingr.qtyG} g`\n const qtyOz = ingr.qtyOz ? `${ingr.qtyOz} oz` : ''\n const qtyOzPlusG = qtyOz ? `${qtyOz} (${ingr.qtyG} g)` : ''\n const qtyMain = (ingr.qty && ingr.unit && ingr.unit !== 'g') ? `${ingr.qty} ${ingr.unit}` : ''\n qty = qtyMain ? `, ${qtyMain}` : ingr.qtyOz ? `, ${qtyOzPlusG}` : ingr.qtyG ? qtyG : ''\n }\n const suffix = (qty && ingr.fixed) ? ' (f)' : ''\n const hasSub = ingr.sub && ingr.sub.length > 0\n const rowClass = hasSub ? classes.parent : null\n const rowProps = IS_DEV ? { 'data-id': ingr.id } : {}\n return (\n \n \n \n \n {prefix}{ingr.name}{qty}{suffix}\n \n \n {ingr.kcal}\n {ingr.protein}\n {ingr.fat}\n {ingr.carbs}\n {ingr.fiber}\n {ingr.sugar}\n {ingr.sodium}\n \n {ingr.sub && ingr.sub.map(ingrSub => row(ingrSub, ))}\n \n )\n }\n\n const kcalTargetLabel = showCalTarget && recipe.kcalTarget ? `(${recipe.kcalTarget})` : ''\n return (\n \n \n \n \n Ingredient\n {numericLabels.map((col, i) => (\n {col}\n ))}\n \n \n \n {ingredientsGrouped.map(ingr => row(ingr))}\n \n \n \n \n Total {kcalTargetLabel ? '(Target)' : ''}\n \n {recipe.kcal} {kcalTargetLabel} \n {recipe.protein} ({asPct(recipe.proteinPct, 1)}%) \n {recipe.fat} ({asPct(recipe.fatPct, 1)}%)\n {recipe.carbs} ({asPct(recipe.carbsPct, 1)}%)\n {recipe.fiber}\n {recipe.sugar}\n {recipe.sodium}\n \n \n
\n
\n )\n}\n\nexport default withStyles(styles)(IngredientTable)\n","// @flow\nimport React from 'react'\nimport classnames from 'classnames'\nimport { withStyles } from '@material-ui/core/styles'\nimport Chip from '@material-ui/core/Chip'\n\ntype Props = {\n label: String,\n}\n\nconst classes = theme => ({\n chip: {\n marginRight: theme.spacing.unit / 2,\n [theme.breakpoints.down('sm')]: {\n fontSize: 11,\n height: 24,\n },\n },\n spaced: {\n marginRight: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n },\n fixed: {\n minWidth: 75,\n\n [theme.breakpoints.up('md')]: {\n minWidth: 100,\n },\n },\n large: {\n minWidth: 125,\n minHeight: 32,\n\n [theme.breakpoints.up('md')]: {\n minWidth: 150,\n },\n },\n }\n)\n\nfunction TypeChip ({classes, className, fixed, spaced, large, label}: Props) {\n const chipClasses = classnames(\n classes.chip,\n fixed && classes.fixed,\n spaced && classes.spaced,\n large && classes.large,\n className)\n if (label === 'fat free') { return null }\n return (\n \n )\n}\n\nTypeChip.defaultProps = {\n label: '',\n}\n\nexport default withStyles(classes)(TypeChip)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport { Link } from 'react-router-dom'\nimport { createMuiTheme, MuiThemeProvider, withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\n\nimport memoize from 'memoize-one'\n\nimport MUIDataTable from 'mui-datatables'\n\nimport { colors } from '@balance/lib/styles'\n\nimport { TypeChip } from '../Chip'\n\nimport { FAB } from '../Button'\nimport { Add } from '../../styles/icons'\nimport { Spinner } from '../Global'\nimport PageTitle from '../PageTitle/PageTitle'\nimport baseStyles from '../../styles/global'\n// import { FullPageSpinner } from '../Global'\n\ntype Props = {\n recipes: Array,\n totalResultCount: number,\n page: number,\n perPage: number,\n filterStatus: Array,\n filterType: Array,\n loading: boolean,\n searchText?: ?string,\n viewRecipe: Function,\n fetchMoreRecipes: Function,\n searchOrFilterRecipes: Function,\n onFilterChange: Function,\n onChangePage: Function,\n onChangeRowsPerPage: Function,\n}\ntype State = {\n term: ?String,\n recipeArray: Array,\n}\n\nconst styles = theme => ({\n ...baseStyles(theme),\n root: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper,\n },\n aside: {\n fontSize: 16,\n display: 'flex',\n alignItems: 'center',\n },\n item: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n borderBottom: `1px solid ${colors.divider}`,\n\n [theme.breakpoints.up('md')]: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n },\n typeGroup: {\n display: 'flex',\n flexDirection: 'row',\n },\n text: {\n fontSize: '1rem',\n [theme.breakpoints.down('sm')]: {\n padding: 0,\n },\n },\n type: {\n backgroundColor: colors.yellow,\n color: 'black',\n textTransform: 'lowercase',\n },\n status: {\n backgroundColor: colors.darkGreen,\n color: 'white',\n textTransform: 'lowercase',\n },\n\n})\n\nconst overrideTheme = (theme) => createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n overrides: {\n MUIDataTable: {\n root: {},\n responsiveScroll: {\n maxHeight: 'auto',\n },\n },\n MUIDataTableHead: {\n main: {\n display: 'none',\n },\n },\n MUIDataTableFilterList: {\n root: {\n marginBottom: theme.spacing.unit * 2,\n },\n },\n MUIDataTableHeadCell: {\n root: {\n borderWidth: 0,\n },\n },\n MUIDataTableBodyCell: {\n root: {},\n cellStacked: {\n height: 50,\n\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n // display: 'inline-block',\n backgroundColor: theme.palette.background.paper,\n fontSize: '16px',\n height: 50,\n width: 'calc(50% - 80px)',\n whiteSpace: 'nowrap',\n },\n },\n responsiveStacked: {\n paddingRight: 12,\n\n [theme.breakpoints.down('sm')]: {\n borderWidth: 0,\n whiteSpace: 'normal',\n padding: theme.spacing.unit,\n display: 'block',\n height: 'auto',\n width: '100%',\n },\n },\n },\n },\n})\n\nfunction ItemLink (props) {\n return \n}\n\nconst MyLink = props => \n\nconst textLabelsLoading = {\n body: {\n noMatch: '',\n },\n}\n\nconst textLabelsLoaded = {\n body: {\n noMatch: 'Sorry, no recipes matched.',\n },\n}\n\nclass RecipeList extends PureComponent {\n static defaultProps = {\n recipes: [],\n totalResultCount: 0,\n loading: false,\n page: 0,\n perPage: 25,\n filterStatus: [],\n filterType: [],\n }\n\n state = {\n term: '',\n recipeArray: [],\n }\n\n recipeArray = memoize((recipes) => {\n // console.log('making recipe array', this.props)\n const arr = recipes.map(r => [r, r.status, r.type, r])\n // console.log('as array', arr)\n return arr\n })\n\n tableOptions = memoize((props = this.props) => {\n const { page, perPage, viewRecipe, totalResultCount, loading, searchText } = props\n\n const textLabels = loading ? textLabelsLoading : textLabelsLoaded\n // console.log('tableOptions updating...', loading, textLabels)\n return {\n page: page,\n count: totalResultCount,\n serverSide: true,\n filterType: 'dropdown',\n textLabels,\n selectableRows: 'none',\n elevation: 2,\n responsive: 'stacked',\n rowsPerPage: perPage,\n rowsPerPageOptions: [10, 25, 50],\n fixedHeader: false,\n sort: false,\n filter: true,\n searchText,\n print: false,\n download: false,\n viewColumns: false,\n onRowClick: (rowData, rowMeta) => {\n // console.log('onRowClick', rowData, rowMeta)\n const r = get(props, `recipes.${rowMeta.rowIndex}`)\n // console.log('r', r)\n if (r && r.id) {\n viewRecipe(r.id)\n }\n },\n onChangePage: props.onChangePage,\n onChangeRowsPerPage: props.onChangeRowsPerPage,\n onSearchChange: props.onSearchChange,\n onFilterChange: props.onFilterChange,\n onTableChange: (action, tableState) => {\n\n // console.log(action, tableState)\n\n const { searchText } = tableState\n\n switch (action) {\n case 'search':\n // console.log('search change?', searchText)\n if (searchText === '' || searchText === null) { // seems to be an oversight in the DT API\n props.onSearchChange('')\n }\n break\n default:\n // console.log('not doing anything with', action)\n break\n }\n },\n }\n })\n\n componentDidUpdate (prevProps) {\n // console.log('cDU', prevProps, this.props)\n if (prevProps.recipes !== this.props.recipes || this.state.recipeArray.length === 0) {\n this.updateRecipeList(this.props.recipes)\n // } else {\n // console.log('no need to update recipe array?')\n }\n }\n\n updateRecipeList = (recipes) => {\n this.setState({\n recipeArray: this.recipeArray(recipes),\n })\n }\n\n tableColumns = () => {\n const { classes, filterStatus, filterType } = this.props\n return [\n {\n name: 'Combo',\n options: {\n filter: false,\n customBodyRender: (recipe, tableMeta, updateValue) => {\n // console.log('recipe column', recipe, tableMeta)\n const statusLabel = (recipe && recipe.public !== undefined) ? (recipe.public ? 'public' : 'personal') : ''\n\n return (\n
\n \n \n
\n )\n },\n },\n },\n {\n name: 'Access',\n options: {\n display: false,\n filter: true,\n filterList: filterStatus,\n filterOptions: { names: ['public', 'personal'] },\n },\n },\n {\n name: 'Type',\n options: {\n display: false,\n filter: true,\n filterList: filterType,\n filterOptions: { names: ['breakfast', 'meal', 'snack'] },\n },\n },\n {\n name: 'Name',\n options: {\n filter: false,\n customBodyRender: (recipe, tableMeta, updateValue) => {\n return (\n \n {recipe.name || recipe.id}\n \n )\n },\n },\n },\n ]\n }\n\n render () {\n const { classes, loading, totalResultCount } = this.props\n const { recipeArray } = this.state\n // console.log('render', recipeArray, this.props)\n // console.log('render tableColumns()', this.tableColumns())\n // console.log('render tableOptions()', this.tableOptions(this.props))\n\n // if (!recipeArray || recipeArray.length === 0) {\n // return null\n // }\n\n // console.log('recipe array', recipeArray)\n const aside = (\n \n {loading && }\n Total: {totalResultCount}\n \n )\n\n return (\n
\n \n\n \n \n \n\n } label=\"Create\" component={MyLink} />\n\n \n  \n \n\n {/**/}\n
\n )\n }\n}\n\nexport default withStyles(styles)(RecipeList)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport { withStyles } from '@material-ui/core/styles'\nimport Card from '@material-ui/core/Card'\nimport CardActions from '@material-ui/core/CardActions'\nimport CardContent from '@material-ui/core/CardContent'\n\nimport Typography from '@material-ui/core/Typography'\nimport TextField from '@material-ui/core/TextField'\n\nimport { Alert } from '../Modal'\nimport { Button, ButtonLink } from '../Button'\nimport { IngredientTable } from '../Table'\nimport { TypeChip } from '../Chip'\n\nimport { colors } from '@balance/lib/styles'\nimport { Edit, Delete } from '../../styles/icons'\n\ntype Props = {\n classes: Object,\n recipe: Object,\n deleteRecipe: Function,\n}\ntype State = {\n alertOpen: boolean,\n}\n\nconst styles = {\n card: {\n // minWidth: 275,\n },\n bullet: {\n display: 'inline-block',\n margin: '0 2px',\n transform: 'scale(0.8)',\n },\n title: {\n fontSize: 14,\n textTransform: 'lowercase',\n },\n pos: {\n marginBottom: 12,\n },\n delete: {\n marginLeft: '4rem',\n borderColor: colors.danger,\n color: colors.danger,\n },\n sectionHeader: {\n color: colors.midGray,\n textTransform: 'uppercase',\n margin: 0,\n },\n textarea: {\n width: '100%',\n },\n}\n\nclass RecipeDetail extends PureComponent {\n static defaultProps = {\n recipe: {},\n }\n state = {\n alertOpen: false,\n }\n\n handleDeleteConfirmed = async () => {\n const { deleteRecipe } = this.props\n deleteRecipe && await deleteRecipe()\n this.handleClose()\n }\n\n handleDelete = () => {\n this.setState({ alertOpen: true })\n }\n\n handleClose = () => {\n this.setState({ alertOpen: false })\n }\n\n render () {\n const { classes, recipe } = this.props\n // console.log('recipe detail render', recipe)\n const ingredients = get(recipe, 'ingredients', [])\n if (!recipe) {\n return null\n }\n\n const labels = get(recipe, 'labelNames', [])\n const statusLabel = (recipe && recipe.public !== undefined) ? (recipe.public ? 'public' : 'personal') : ''\n\n return (\n
\n \n \n \n {statusLabel} {recipe.typeLabel}\n \n \n {recipe.name || recipe.id}\n \n \n Meal Plans Using: {recipe.mealCount}\n \n \n {recipe.name ? recipe.id : ''}\n \n {recipe.instructions && (\n \n \n \n )}\n \n \n \n\n {labels && (\n
\n \n Dietary Labels (based on ingredients)\n \n {labels.map((label, i) => )}\n
\n )}\n
\n \n \n \n Change\n \n \n Back\n \n \n \n
\n \n
\n )\n }\n}\n\nexport default withStyles(styles)(RecipeDetail)\n","// @flow\nimport React, { PureComponent, Fragment, cloneElement } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport get from 'lodash/get'\nimport compact from 'lodash/compact'\n\nimport Grid from '@material-ui/core/Grid'\nimport FormLabel from '@material-ui/core/FormLabel'\nimport Button from '@material-ui/core/Button'\nimport MuiList from '@material-ui/core/List'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport Collapse from '@material-ui/core/Collapse'\n\nimport { asFloat } from '@balance/lib/utils'\n\nimport { FormField, Switch } from '../Form'\n\nimport { Delete as DeleteIcon, ExpandLess, ExpandMore, Link as LinkIcon } from '../../styles/icons'\n\nimport baseStyles from '../../styles/forms'\n\ntype Props = {\n items: Array,\n errors: Array,\n onUpdate: Function,\n onDelete: Function,\n}\ntype State = {\n open: string, // ID of item\n}\n\nconst styles = theme => ({\n ...baseStyles(theme),\n line: {\n display: 'flex',\n alignItems: 'center',\n },\n qty: {\n width: 50,\n marginRight: theme.spacing.unit,\n },\n unit: {\n width: 100,\n marginRight: theme.spacing.unit,\n },\n label: {\n display: 'flex',\n alignItems: 'center',\n },\n gridLine: {\n alignItems: 'center',\n },\n gridQty: {\n order: 1,\n display: 'inline-flex',\n flexWrap: 'nowrap',\n },\n gridLabel: {\n order: 0,\n [theme.breakpoints.up('sm')]: {\n order: 2,\n },\n },\n secAction: {\n display: 'flex',\n flexDirection: 'column',\n [theme.breakpoints.up('sm')]: {\n flexDirection: 'row',\n },\n },\n})\n\nconst UNITS = [\n 'oz',\n 'g',\n 'kg',\n 'lb',\n 'tbsp',\n 'tsp',\n // 'lb',\n // 'tsp',\n // 'c',\n]\n\nclass IngredientEditList extends PureComponent {\n static defaultProps = {\n items: [],\n }\n state = {\n open: '',\n }\n\n togglePane = (item_id) => {\n this.setState(prevState => ({ open: prevState.open === item_id ? '' : item_id }))\n }\n\n handleUpdateIngredient = (item, name, value, parseAsFloat = false) => {\n // console.log('REL.handleUpdateIngredient', item)\n // console.log('REL.handleUpdateIngredient 2', item, name, value)\n const { onUpdate } = this.props\n const ingr = {\n ...item,\n [name]: parseAsFloat ? (value * 1) : value,\n }\n onUpdate(ingr)\n }\n\n handleToggleFixed = (item, value) => {\n // console.log('REL.handleToggleFixed', item, value)\n const { onUpdate } = this.props\n const ingr = {\n ...item,\n fixed: value,\n foodFixed: value,\n unit: value ? 'whole' : 'oz',\n }\n onUpdate(ingr)\n }\n\n renderSecondaryAction = (item) => {\n const { items, onDelete, classes } = this.props\n const icon = this.state.open === item.id ? : \n\n return (\n \n {items.length > 1 && (\n \n )}\n {onDelete && (\n \n )}\n \n )\n }\n\n renderItemLink = (item) => {\n const { items } = this.props\n return (\n \n this.handleUpdateIngredient(item, 'goesWithId', e.target.value)}>\n (None)\n {items.map(itemLink => {\n if (item.id === itemLink.id || itemLink.goesWithId) { return null }\n return (\n \n {itemLink.name}\n \n )\n })}\n \n \n )\n }\n\n renderItem = (item, sortIindex, prefix = null) => {\n const { classes, errors } = this.props\n const error = Object.values(get(errors, sortIindex, {})).join(', ')\n // console.log('item', item, i, error)\n const units = item.foodFixed ? ['whole'] : UNITS\n const newItem = !!item.newItem\n const hasSub = item.sub && item.sub.length > 0\n const isFixed = item.foodFixed || item.fixed\n const isOpen = this.state.open === item.id\n\n return (\n \n \n \n \n \n this.handleUpdateIngredient(item, 'qty', e.target.value)}\n onBlur={e => this.handleUpdateIngredient(item, 'qty', asFloat(e.target.value))} />\n this.handleUpdateIngredient(item, 'unit', e.target.value)}>\n {units.map(option => (\n \n {option}\n \n ))}\n \n this.handleUpdateIngredient(item, 'fixed', e.target.checked)}\n labelPlacement=\"end\" />\n \n \n \n {prefix}{item.name}\n \n \n \n \n {this.renderSecondaryAction(item)}\n \n {!newItem ? (\n \n \n\n {this.renderItemLink(item)}\n\n \n \n ) : (\n \n \n this.handleToggleFixed(item, e.target.checked)}\n labelPlacement=\"end\" />\n this.handleUpdateIngredient(item, 'fixedQty', e.target.value)}\n onBlur={e => this.handleUpdateIngredient(item, 'fixedQty', asFloat(e.target.value))} />\n this.handleUpdateIngredient(item, 'fixedUnit', e.target.value)}>\n {UNITS.map(option => (\n \n {option}\n \n ))}\n \n \n {this.renderItemLink(item)}\n \n )}\n {hasSub && item.sub.map(itemSub => this.renderItem(itemSub, sortIindex + 100, ))}\n \n )\n }\n\n renderItems = (items) => {\n return items.map((item, index) => this.renderItem(item, index))\n }\n\n render () {\n const { items } = this.props\n // console.log('items', items)\n\n const itemsGrouped = compact(items.map(ingr => {\n return ingr.goesWithId ? null : {\n ...ingr,\n sub: items.filter(ingrSub => ingrSub.goesWithId === ingr.id),\n }\n }))\n\n return (\n \n \n \n {itemsGrouped && this.renderItems(itemsGrouped)}\n \n )\n }\n}\n\nexport default withStyles(styles)(IngredientEditList)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport classnames from 'classnames'\nimport get from 'lodash/get'\nimport Autosuggest from 'react-autosuggest'\nimport match from 'autosuggest-highlight/match'\nimport parse from 'autosuggest-highlight/parse'\n\nimport { FieldArray, Form } from 'formik'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport TextField from '@material-ui/core/TextField'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport Paper from '@material-ui/core/Paper'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport FormControl from '@material-ui/core/FormControl'\n\nimport InputAdornment from '@material-ui/core/InputAdornment'\nimport IconButton from '@material-ui/core/IconButton'\n\nimport { Spinner } from '../Global'\nimport { ButtonLink, SaveButton } from '../Button'\nimport { FormField, Option, RadioGroup, Switch } from '../Form'\nimport IngredientEditList from './IngredientEditList'\nimport baseStyles from '../../styles/forms'\n\ntype Props = {\n recipe: Object,\n isAdmin: boolean,\n isValid: boolean,\n isSubmitting: boolean,\n errors: Object,\n validationProps: Object,\n onChange: Function,\n onBlur: Function,\n searchFoods: Function,\n onAddIngredient: Function,\n onUpdateIngredient: Function,\n onRemoveIngredient: Function,\n\n classes: Object,\n}\n\ntype State = {\n query: String,\n querySource: String,\n searching: boolean,\n suggestions: Array,\n}\n\nconst styles = theme => {\n const base = baseStyles(theme)\n return {\n ...base,\n root: {\n height: 250,\n flexGrow: 1,\n },\n wrapper: {\n ...base.wrapper,\n borderTop: '1px solid #ccc',\n },\n card: {\n overflow: 'visible',\n },\n suggestionContainer: {\n position: 'relative',\n margin: [[theme.spacing.unit * 2, 0]],\n // padding: [[theme.spacing.unit * 2, theme.spacing.unit * 3]],\n },\n suggestionsContainerOpen: {\n position: 'absolute',\n zIndex: 1,\n marginTop: theme.spacing.unit,\n left: 0,\n right: 0,\n },\n suggestion: {\n display: 'block',\n },\n suggestionsList: {\n margin: 0,\n padding: 0,\n listStyleType: 'none',\n },\n divider: {\n height: theme.spacing.unit * 2,\n },\n textField: {\n marginLeft: 0,\n marginRight: 0,\n\n '& label': {\n left: theme.spacing.unit,\n },\n '& input': {\n paddingLeft: theme.spacing.unit,\n },\n '& p': {\n backgroundColor: 'white',\n paddingLeft: theme.spacing.unit,\n },\n },\n }\n}\n\nconst DIETS = [\n { key: 'KETO', label: 'Ketogenic' },\n // {key: 'SOUTHBEACH', label: 'South Beach'},\n // {key: '2019', label: '2019 Fad'},\n]\n\nconst renderSuggestion = (suggestion, { query, isHighlighted }) => {\n const matches = match(suggestion.name, query)\n const parts = parse(suggestion.name, matches)\n\n return (\n \n
\n {suggestion.brand ? {suggestion.brand} : ''}\n {parts.map((part, index) => {\n return part.highlight ? (\n \n {part.text}\n \n ) : (\n \n {part.text}\n \n )\n })}\n
\n
\n )\n}\nconst shouldRenderSuggestions = (value) => {\n return value.trim().length > 2\n}\n\nconst getSuggestionValue = (suggestion) => {\n return suggestion.name\n}\n\nclass RecipeForm extends PureComponent {\n static defaultProps = {\n recipe: {},\n }\n state = {\n query: '',\n querySource: 'local',\n searching: false,\n suggestions: [],\n }\n\n handleAddFoodFromApi = () => {\n console.log('searching api for food', this.state)\n this.setState({ querySource: 'api' })\n }\n\n handleSuggestionsFetchRequested = async ({ value }) => {\n // console.log('handleSuggestionsFetchRequested', value)\n this.setState({ searching: true })\n const resultsLocal = await this.props.searchFoods(value, 'local')\n const resultsRemote = await this.props.searchFoods(value, 'api')\n const results = [\n {\n title: null,\n suggestions: resultsLocal,\n },\n {\n title: '-',\n suggestions: resultsRemote,\n },\n ]\n // console.log('results', results)\n this.setState({ suggestions: results, searching: false })\n }\n\n handleSuggestionsClearRequested = () => {\n // console.log('handleSuggestionsClearRequested')\n this.setState({\n querySource: 'local',\n searching: false,\n suggestions: [],\n })\n }\n\n handleSuggestionSelected = (event, { suggestion, suggestionValue }) => {\n // console.log('suggestion selected!', event, suggestion, suggestionValue)\n this.setState(prevState => {\n const unit = suggestion.fixed ? 'whole' : 'oz'\n this.setState({ query: '' }, () => {\n this.props.onAddIngredient(\n { ...suggestion, qty: 1, unit: unit, newItem: true, foodFixed: suggestion.fixed, foodId: suggestion.id },\n )\n })\n })\n }\n\n renderInputComponent = (inputProps) => {\n const { searching } = this.state\n const { classes, inputRef = () => {}, ref, ...other } = inputProps\n // console.log('auto suggest input', searching, other)\n\n return (\n {\n ref(node)\n inputRef(node)\n },\n classes: {\n input: classes.input,\n },\n endAdornment: (\n \n \n {searching && ()}\n \n \n ),\n }}\n {...other}\n />\n )\n }\n\n renderSuggestionsContainer = ({ containerProps, children, query, ...rest }) => {\n const { classes } = this.props\n // console.log('suggestion container', containerProps, children, query, rest)\n const notice = false // shouldRenderSuggestions(query)\n return (\n \n {children}\n {notice && (\n
\n Not seeing what you're looking for? \n
\n )}\n
\n )\n }\n\n renderAutoSuggest = () => {\n const { classes } = this.props\n\n const autosuggestProps = {\n renderInputComponent: this.renderInputComponent,\n suggestions: this.state.suggestions,\n onSuggestionSelected: this.handleSuggestionSelected,\n onSuggestionsFetchRequested: this.handleSuggestionsFetchRequested,\n onSuggestionsClearRequested: this.handleSuggestionsClearRequested,\n getSuggestionValue,\n renderSuggestion,\n shouldRenderSuggestions,\n multiSection: true,\n renderSectionTitle: (section) => {\n // console.log('section title?', section)\n // return {section.title}\n if (section.title === '-') {\n return \n
\n
\n }\n return null\n },\n getSectionSuggestions: (section) => {\n // console.log('get section suggestions', section)\n return section.suggestions\n },\n }\n\n return (\n this.setState({ query: newValue }),\n }}\n theme={{\n container: classes.suggestionContainer,\n suggestionsContainerOpen: classes.suggestionsContainerOpen,\n suggestionsList: classes.suggestionsList,\n suggestion: classes.suggestion,\n }}\n renderSuggestionsContainer={this.renderSuggestionsContainer}\n />\n )\n }\n\n render () {\n console.log('RecipeForm.render', this.props)\n const {\n classes, recipe, onChange, onBlur, errors, isAdmin, isValid, isSubmitting,\n onUpdateIngredient, onRemoveIngredient, validationProps,\n } = this.props\n\n // return
TYPE: {recipe.type}

{JSON.stringify(recipe)}

\n\n if (!recipe) { return null }\n const canAdjustServingSize = !Boolean(recipe.id) || recipe.mealCount === 0\n\n const selectedDiets = recipe.dietNames || []\n const warning = `Note: this recipe is part of ${recipe.mealCount} meal plans, so any ingredient changes will result in a new recipe.`\n const note = recipe.mealCount > 0 ?

{warning}

: null\n const rType = get(recipe, 'type')\n return (\n
\n \n \n {errors.type && (\n

{errors.type}

\n )}\n\n
\n {isAdmin && (\n \n )}\n
\n\n
\n \n
\n\n {DIETS.length > 0 && (\n
\n

Is this recipe associated with {DIETS.length === 1 ? 'this diet' : 'one of these diets'}?

\n (\n \n {DIETS.map((diet, i) => (\n \n ))}\n \n )}\n />\n
\n )}\n\n {canAdjustServingSize && (\n
\n \n
\n )}\n\n {note}\n \n {errors.ingredients && !Array.isArray(errors.ingredients) && (\n

{errors.ingredients}

\n )}\n\n {this.renderAutoSuggest()}\n\n {note}\n \n Cancel\n \n )\n }\n}\n\nexport default withStyles(styles)(RecipeForm)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\n\nimport { Formik, getIn } from 'formik'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\n\nimport { recipeEditSchema } from '@balance/lib/validations'\n\nimport PageTitle from '../PageTitle/PageTitle'\nimport baseStyles from '../../styles/forms'\n\nimport RecipeForm from './RecipeForm'\n\ntype Props = {\n initialRecipe: Object,\n searchFoods: Function,\n saveRecipe: Function,\n}\ntype State = {\n recipe: Object,\n query: String,\n querySource: String,\n searching: boolean,\n suggestions: Array,\n}\n\nconst styles = theme => {\n const base = baseStyles(theme)\n return {\n ...base,\n root: {\n height: 250,\n flexGrow: 1,\n },\n wrapper: {\n ...base.wrapper,\n borderTop: '1px solid #ccc',\n },\n card: {\n overflow: 'visible',\n },\n suggestionContainer: {\n position: 'relative',\n margin: [[theme.spacing.unit * 2, 0]],\n // padding: [[theme.spacing.unit * 2, theme.spacing.unit * 3]],\n },\n suggestionsContainerOpen: {\n position: 'absolute',\n zIndex: 1,\n marginTop: theme.spacing.unit,\n left: 0,\n right: 0,\n },\n suggestion: {\n display: 'block',\n },\n suggestionsList: {\n margin: 0,\n padding: 0,\n listStyleType: 'none',\n },\n divider: {\n height: theme.spacing.unit * 2,\n },\n }\n}\n\nclass RecipeEdit extends PureComponent {\n static defaultProps = {}\n state = {\n recipe: this.props.initialRecipe,\n }\n\n componentDidUpdate (prevProps): void {\n // console.log('RecipeEdit.cDU', prevProps, this.props)\n const recipeIn = this.props.initialRecipe\n if (recipeIn !== prevProps.initialRecipe) {\n // console.log('updating recipe state.... ')\n this.setState({\n recipe: recipeIn,\n })\n }\n }\n\n // handleRecipeChange = ({ target }) => {\n // console.log('handleRecipeChange', target.name, target.type, target.value, this.state.recipe)\n // let value = target.value\n // if (target.type === 'checkbox') {\n // value = !!target.checked\n // }\n // this.setState(prevState => ({\n // recipe: {\n // ...prevState.recipe,\n // [target.name]: value,\n // },\n // }))\n // }\n\n // updateRecipeState = (keyPath, value) => {\n // this.setState(prevState => {\n // const oldRecipe = prevState.recipe\n // const recipe = set(oldRecipe, keyPath, value)\n // console.log('updateRecipeState', oldRecipe, recipe)\n // return { recipe }\n // })\n // }\n\n handleSubmit = async (values) => {\n // console.log('handleSubmit', values, this.state)\n const recipe = values\n const result = await this.props.saveRecipe({\n id: recipe.id,\n type: recipe.type,\n servingSize: recipe.servingSize,\n public: recipe.public,\n dietNames: recipe.dietNames,\n instructions: recipe.instructions,\n clone: !!recipe.clone,\n // note: don't auto-spread the food since there are fields on the food that don't apply directly to the ingredient\n ingredients: recipe.ingredients.map(food => ({\n id: food.id,\n brand: food.brand,\n fixed: food.fixed,\n foodId: food.foodId,\n apiRef: food.apiRef,\n qty: food.qty,\n unit: food.unit,\n foodFixed: food.foodFixed,\n fixedQty: food.fixedQty,\n fixedUnit: food.fixedUnit,\n goesWithId: food.goesWithId,\n })),\n })\n // console.log('result', result)\n return result // no-op?\n }\n\n render () {\n const { classes } = this.props\n // console.log('RecipeEdit.render', this.props, this.state)\n const { recipe } = this.state\n // console.log('recipe render', recipe.type)\n\n const isAdmin = 'admin' === get(this.props, 'user.role')\n\n const initial = {\n ...recipe,\n servingSize: 1,\n ingredients: recipe.ingredients || [],\n }\n const pageTitle = recipe && recipe.id ? 'Edit Recipe' : 'New Recipe'\n\n return (\n
\n \n \n \n \n {({ values, errors, touched, isSubmitting, isValid, handleSubmit, onSubmit, handleChange, handleBlur, setFieldValue, ...rest }) => {\n\n // console.log('recipe edit form', values, errors, touched, isSubmitting, isValid)\n\n const validationProps = name => {\n const hasError = Boolean(getIn(errors, name))\n const hasValue = getIn(values, name) !== undefined\n // const isTouched = getIn(touched, name)\n // console.log('validating', name, hasError, isTouched, hasValue, hasValue || (!isValid && !isTouched))\n return {\n touched: hasValue || hasError,\n error: getIn(errors, name),\n }\n }\n\n const handleAddIngredient = (item) => {\n // console.log('handleAddIngredient', item)\n\n const list = [...values.ingredients, item]\n setFieldValue(`ingredients`, list)\n setFieldValue('clone', recipe.mealCount > 0)\n }\n\n const handleUpdateIngredient = (item) => {\n // console.log('handleUpdateIngredient', item)\n const index = values.ingredients.findIndex((ingr) => ingr.id === item.id)\n // console.log('index of', index)\n setFieldValue(`ingredients.${index}`, item)\n }\n\n const handleRemoveIngredient = (item) => {\n // console.log('handleRemoveIngredient', item)\n // const ingr = values.ingredients.find((i) => i.id === ingr.id)\n const list = values.ingredients.filter((ingr) => ingr.id !== item.id)\n const linksRemoved = list.map(ingr =>\n ingr.goesWithId && ingr.goesWithId === item.id ? { ...ingr, goesWithId: null } : ingr)\n setFieldValue(`ingredients`, linksRemoved)\n setFieldValue('clone', recipe.mealCount > 0)\n }\n\n return \n }}\n \n \n \n
\n )\n }\n}\n\nexport default withStyles(styles)(RecipeEdit)\n","// @flow\nimport React, { PureComponent, Fragment } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\nimport Divider from '@material-ui/core/Divider'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport IconButton from '@material-ui/core/IconButton'\n\nimport classnames from 'classnames'\nimport { asPct } from '@balance/lib/utils'\n\nimport { SearchField } from '../Form'\nimport { Add } from '../../styles/icons'\nimport { Button } from '../Button'\n\ntype Props = {\n onSelect: Function,\n onSearch: Function,\n initialResults: Array, // for testing\n}\ntype State = {\n searching: boolean,\n searched: boolean,\n query: string,\n results: Array,\n}\n\nconst styles = theme => ({\n search: {},\n form: {\n display: 'flex',\n alignItems: 'center',\n },\n footnote: {\n margin: [[0, 0, theme.spacing.unit / 2]],\n fontSize: '0.75rem'\n },\n note: {\n margin: [[theme.spacing.unit, 0, 0]],\n textAlign: 'right',\n fontSize: '0.75rem',\n },\n results: {\n margin: [[theme.spacing.unit / 2, 0]],\n minHeight: 300,\n maxHeight: '75vh',\n overflowY: 'scroll',\n\n '& ::-webkit-scrollbar': {\n width: 5,\n height: 5,\n },\n\n '& ::-webkit-scrollbar-track': {\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.3)',\n borderRadius: 20,\n },\n\n '& ::-webkit-scrollbar-thumb': {\n borderRadius: 20,\n backgroundColor: 'rgba(0, 0, 0, .3)',\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.5)',\n },\n },\n})\n\nclass RecipeSearch extends PureComponent {\n static defaultProps = {}\n state = {\n searching: false,\n searched: false,\n query: '',\n results: this.props.initialResults,\n }\n\n handleSearch = async (query) => {\n const { onSearch } = this.props\n // console.log('handleSearch', query)\n this.setState({ search: true })\n const results = onSearch && await onSearch(query)\n this.setState({ search: false, searched: true, results })\n\n document.querySelector('.js-search-field').scrollIntoView({\n behavior: 'smooth'\n });\n }\n\n handleSubmit = (e) => {\n e.preventDefault()\n this.handleSearch(this.state.query)\n }\n\n handleChange = (query) => {\n // console.log('handleChange', query)\n this.setState({ query })\n }\n\n handleAddRecipe = (recipe) => {\n const { onSelect } = this.props\n // console.log('handleAddRecipe', recipe)\n onSelect && onSelect(recipe)\n }\n\n renderResultInfo = (recipe) => {\n const p = asPct(recipe.proteinPct, 0)\n const f = asPct(recipe.fatPct, 0)\n const c = 100 - p - f // just to be sure total = 100\n return `Calories: ${recipe.kcal} Protein: ${p}% Fat ${f}% Carbs: ${c}%`\n }\n\n renderResult = (recipe) => {\n const resultInfo = this.renderResultInfo(recipe)\n return (\n \n {recipe.name}\n \n this.handleAddRecipe(recipe)}>\n \n \n \n \n )\n }\n\n renderNoResults = () => {\n return (\n \n No results matched!\n \n )\n }\n\n renderResults = () => {\n const { classes } = this.props\n const { searched, results } = this.state\n\n if (!results || results.length === 0) {\n return searched ? this.renderNoResults() : null\n }\n // console.log('results', results)\n return (\n \n \n \n NOTE: The recipe will be scaled to your calorie and nutrient targets once added to your plan.\n \n \n {results && results.map((result) => this.renderResult(result))}\n \n \n )\n }\n\n render () {\n const { classes } = this.props\n const { searching, query } = this.state\n\n return (\n
\n
\n
\n \n \n
\n

(Search for ingredient combinations using a comma)

\n {this.renderResults()}\n
\n
\n )\n }\n}\n\nexport default withStyles(styles)(RecipeSearch)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport IconButton from '@material-ui/core/IconButton'\nimport Menu from '@material-ui/core/Menu'\nimport MenuItem from '@material-ui/core/MenuItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\n\nimport { MoreVertIcon } from '../../styles/icons'\nimport { Button } from '../Button'\n\nexport type MenuItemType = {\n icon?: any,\n label: string,\n onClick: Function,\n disabled?: boolean,\n buttonProps?: Object,\n}\n\ntype Props = {\n classes: Object,\n containerClass?: string,\n menuId: string,\n menuOptions: Array,\n onClick: Function,\n onClose: Function,\n}\ntype State = {\n open: boolean,\n anchorEl?: ?Node,\n}\n\nconst styles = theme => ({\n menuItem: {\n '&:focus': {\n backgroundColor: theme.palette.primary.main,\n '& $primary, & $icon': {\n color: theme.palette.common.white,\n },\n },\n },\n primary: {},\n icon: {},\n})\n\nclass ItemMenu extends PureComponent {\n static defaultProps = {}\n state = {\n anchorEl: null,\n open: false,\n }\n\n handleAction = (handleClick: Function) => {\n // console.log('handleAction', handleClick)\n this.handleClose()\n handleClick && handleClick()\n }\n\n handleClick = (event: SyntheticEvent) => {\n this.setState({ open: true, anchorEl: event.currentTarget })\n }\n\n handleClose = () => {\n this.setState({ open: false, anchorEl: null })\n this.props.onClose && this.props.onClose()\n }\n\n render () {\n const { classes, containerClass, label, icon, buttonProps, menuId, menuOptions } = this.props\n const { anchorEl } = this.state\n\n return (\n
\n {label ? (\n \n ) : (\n \n \n \n )}\n \n {menuOptions.map((option, i) => {\n return (\n this.handleAction(option.onClick)} disabled={!!option.disabled}>\n {option.icon && (\n \n {option.icon}\n \n )}\n \n \n )\n })}\n \n
\n )\n }\n}\n\nexport default withStyles(styles)(ItemMenu)\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport { withStyles } from '@material-ui/core/styles'\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel'\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary'\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails'\nimport ExpansionPanelActions from '@material-ui/core/ExpansionPanelActions'\nimport Typography from '@material-ui/core/Typography'\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore'\nimport Divider from '@material-ui/core/Divider'\nimport TextField from '@material-ui/core/TextField'\nimport Collapse from '@material-ui/core/Collapse'\n\nimport { colors } from '@balance/lib/styles'\n\nimport { Modal } from '../Modal'\nimport { Spinner } from '../Global'\nimport { IngredientTable } from '../Table'\nimport { Button } from '../Button'\nimport { TypeChip } from '../Chip'\nimport { DeleteOutline, List, Loop, MenuIcon, Search } from '../../styles/icons'\nimport { RecipeSearch } from '../Recipe'\nimport { ItemMenu } from '../Menu'\n\ntype Props = {\n classes: Object,\n meal: Object,\n recipes: Array,\n recipeUseCount: Object,\n user: Object,\n onReplaceMeal: Function,\n onAddRecipe: Function,\n onSearchRecipe: Function,\n}\n\ntype State = {\n replacing: boolean,\n replacingAll: boolean,\n removing: boolean,\n instrShowing: boolean,\n modalOpen: boolean,\n searching: boolean,\n processing: boolean,\n searchResults: Array,\n}\n\nconst styles = (theme) => ({\n summary: {\n alignItems: 'center',\n // justifyContent: 'space-between',\n },\n chip: {\n width: 100,\n marginRight: theme.spacing.unit,\n },\n mealType: {\n backgroundColor: colors.darkGreen,\n color: 'white',\n fontSize: '1rem',\n padding: 10,\n },\n details: {\n flexDirection: 'column',\n },\n table: {\n width: '100%',\n // minWidth: 500,\n },\n scrollableTable: {\n // border: '1px solid blue',\n overflowX: 'scroll',\n\n '& ::-webkit-scrollbar': {\n width: 5,\n height: 5,\n },\n\n '& ::-webkit-scrollbar-track': {\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.3)',\n borderRadius: 20,\n },\n\n '& ::-webkit-scrollbar-thumb': {\n borderRadius: 20,\n backgroundColor: 'rgba(0, 0, 0, .3)',\n '-webkit-box-shadow': 'inset 0 0 3px rgba(0,0,0,0.5)',\n },\n },\n textarea: {\n width: '100%',\n marginTop: 0,\n },\n buttonWrap: {\n width: '100%',\n display: 'flex',\n justifyContent: 'flex-end',\n },\n actions: {\n display: 'flex',\n flexDirection: 'column',\n\n [theme.breakpoints.up('sm')]: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n },\n actionText: {\n textAlign: 'right',\n\n [theme.breakpoints.down('sm')]: {\n marginBottom: theme.spacing.unit,\n },\n [theme.breakpoints.up('sm')]: {\n marginRight: theme.spacing.unit,\n },\n },\n actionButtons: {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n})\n\nclass MealPanel extends PureComponent {\n state = {\n replacing: false,\n replacingAll: false,\n removing: false,\n searching: false,\n instrShowing: false,\n processing: false,\n modalOpen: false,\n searchResults: [],\n }\n\n handleReplaceAll = async () => {\n const { meal, onReplaceMeal } = this.props\n this.setState({ replacingAll: true, processing: true })\n onReplaceMeal && await onReplaceMeal(meal, true)\n this.setState({ replacingAll: false, processing: false })\n }\n\n handleReplaceAllWithRecipe = async (recipe) => {\n // console.log('handleReplaceAllWithRecipe', recipe, get(recipe, 'id'))\n const { meal, onReplaceMeal } = this.props\n this.setState({ modalOpen: false, replacingAll: true, processing: true })\n onReplaceMeal && await onReplaceMeal(meal, true, get(recipe, 'id'))\n this.setState({ modalOpen: false, replacingAll: false, processing: false })\n }\n\n handleReplaceMeal = async () => {\n const { meal, onReplaceMeal } = this.props\n this.setState({ replacing: true, processing: true })\n onReplaceMeal && await onReplaceMeal(meal)\n this.setState({ replacing: false, processing: false })\n }\n\n handleRemoveMeal = async () => {\n const { meal, onRemoveMeal } = this.props\n this.setState({ removing: true, processing: true })\n onRemoveMeal && await onRemoveMeal(meal)\n this.setState({ removing: false, processing: false })\n }\n\n handleSearchRecipe = async (query) => {\n const { meal, onSearchRecipe } = this.props\n this.setState({ searching: true, processing: true })\n const searchResults = onSearchRecipe && await onSearchRecipe(query, meal.type)\n this.setState({ searching: false, processing: false })\n return searchResults\n }\n\n handleShowSearchModal = () => {\n this.setState({ modalOpen: true, processing: true })\n }\n\n handleCloseModal = () => {\n this.setState({ modalOpen: false, processing: false })\n }\n\n handleAddRecipe = async (recipe) => {\n const { onAddRecipe } = this.props\n this.setState({ replacing: true, processing: true })\n onAddRecipe && await onAddRecipe(recipe)\n this.setState({ replacing: false, processing: false })\n }\n\n toggleInstructions = () => {\n this.setState(prevState => ({ instrShowing: !prevState.instrShowing }))\n }\n\n renderInstructions = () => {\n const { classes, recipes } = this.props\n const { instrShowing } = this.state\n const instructions = recipes.map(r => r.instructions).join('')\n // console.log('renderInstructions', meal, instructions)\n if (!instructions) { return null }\n\n return (\n
\n
\n \n
\n \n \n \n
\n )\n }\n\n menuOptions = () => {\n const { meal, recipeUseCount } = this.props\n const { replacing, replacingAll, removing, processing } = this.state\n const recipeCountMeal = meal.recipeIds.length\n const recipeCountTotal = meal.recipeIds.reduce((acc, cur) => acc + recipeUseCount[cur], 0)\n\n const disabled = replacing || replacingAll || removing || processing\n\n let menuOptions = []\n if (recipeCountTotal > recipeCountMeal) {\n menuOptions.push({\n label: 'Replace all this week',\n onClick: this.handleReplaceAll,\n icon: ,\n disabled,\n })\n menuOptions.push({\n label: 'Remove all this week & search',\n onClick: this.handleShowSearchModal,\n icon: ,\n disabled,\n })\n }\n\n menuOptions.push({\n label: 'Replace this meal',\n onClick: this.handleReplaceMeal,\n icon: ,\n disabled,\n })\n\n menuOptions.push({\n label: 'Remove this meal',\n onClick: this.handleRemoveMeal,\n icon: ,\n disabled,\n })\n\n return menuOptions\n }\n\n render () {\n const { meal, classes, user, onReplaceMeal } = this.props\n const { modalOpen, processing } = this.state\n // const recipeCountMeal = meal.recipeIds.length\n // const recipeCountTotal = meal.recipeIds.reduce((acc, cur) => acc + recipeUseCount[cur], 0)\n // console.log('MealPanel', meal, recipeUseCount, recipeCountMeal, recipeCountTotal)\n const ingredients = get(meal, 'ingredients', [])\n // const profile = get(user, 'profile', {})\n if (!meal) {\n return null\n }\n const meal_type = meal.type === 'regular' ? 'meal' : meal.type\n const empty = meal.empty\n // const disabled = replacing || replacingAll || removing\n\n return (\n \n } classes={{ content: classes.summary }}>\n \n {meal.mismatch && }\n {empty && }\n \n {false && meal.message && (\n \n {meal.message}\n \n )}\n \n {empty ? (\n \n \n \n \n \n ) : (\n \n {this.renderInstructions()}\n \n \n \n \n\n )}\n \n {!empty && onReplaceMeal && (\n \n
\n Want a different {meal_type}?\n\n
\n : }\n buttonProps={{ size: 'small', color: 'secondary' }}\n menuOptions={this.menuOptions()} />\n\n {/*{recipeCountTotal > recipeCountMeal && (*/}\n {/* */}\n {/*)}*/}\n {/**/}\n {/**/}\n {/*{false && ingredients.count > 1 && (*/}\n {/* */}\n {/*)}*/}\n
\n
\n
\n )}\n\n \n \n \n\n
\n )\n }\n}\n\nexport default withStyles(styles)(MealPanel)\n","import React from 'react'\nimport get from 'lodash/get'\nimport classnames from 'classnames'\nimport { withRouter } from 'react-router-dom'\nimport { withStyles } from '@material-ui/core/styles'\n\nimport printStyles from '../../styles/print'\n\nimport { ButtonLink } from '../Button'\nimport { Calendar } from '../../styles/icons'\n\nconst styles = theme => ({\n list: {\n margin: [[theme.spacing.unit, 0]],\n padding: 0,\n listStyleType: 'none',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n\n '@media print': {\n // marginTop: -40,\n // float: 'right',\n clear: 'both',\n },\n },\n item: {\n display: 'inline',\n marginRight: theme.spacing.unit / 2,\n whiteSpace: 'nowrap',\n },\n ...printStyles(theme), // more specificity down here\n})\n\nconst Link = ({ selected, ...props }) => (\n \n)\n\nfunction WeekToggle ({ classes, weekOfShort, ...props }) {\n // console.log('WeekToggle', props)\n let week = get(props, 'location.search', '').replace('?week=', '')\n if (!['last', 'next'].includes(week)) { week = '' }\n // console.log('week selected', week)\n\n const path = get(props, 'location.pathname')\n const links = [\n { tag: 'last', to: `${path}?week=last`, label: 'Last Week' },\n { tag: '', to: `${path}`, label: 'This Week' },\n { tag: 'next', to: `${path}?week=next`, label: 'Next Week' },\n ]\n return (\n
\n
    \n
  • \n
  • \n Week of {weekOfShort}\n
  • \n {links.map((linkInfo, i) => {\n const isCurrent = week === linkInfo.tag\n return (\n
  • \n \n {linkInfo.label}\n \n
  • \n )\n })}\n
\n
\n )\n}\n\nexport default withRouter(withStyles(styles)(WeekToggle))\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles, Paper, Divider, Typography } from '@material-ui/core'\nimport get from 'lodash/get'\nimport capitalize from 'lodash/capitalize'\nimport memoize from 'memoize-one'\nimport classnames from 'classnames'\n\nimport Grid from '@material-ui/core/Grid'\n\nimport { asPct } from '@balance/lib/utils'\n\nimport { PageTitle } from '../PageTitle'\nimport { FullPageSpinner } from '../Global'\nimport baseStyles from '../../styles/global'\nimport printStyles from '../../styles/print'\n\nimport MealPanel from './MealPanel'\nimport TypeChip from '../Chip/TypeChip'\nimport { ButtonLink, InlineButton } from '../Button'\n\nimport { Grocery, Restaurant } from '../../styles/icons'\nimport WeekToggle from './WeekToggle'\nimport { Alert } from '../Modal'\n\ntype MealPlan = {\n dayCount: number,\n days: Array,\n meals: Array,\n}\ntype Props = {\n plan: MealPlan,\n user: Object,\n onReplaceMeal: Function,\n onReplaceMealPlan: Function,\n onRemoveMeal: Function,\n onAddRecipe: Function,\n onSearchRecipe: Function,\n week?: ?string,\n}\ntype State = {\n alertOpen: boolean,\n}\n\nconst styles = (theme) => {\n return {\n ...baseStyles(theme),\n day: {\n width: '100%',\n padding: theme.spacing.unit,\n margin: [[theme.spacing.unit, 0]],\n },\n table: {\n width: '100%',\n // minWidth: 500,\n },\n thead: {\n color: '#3d3d3d',\n fontSize: 10,\n fontWeight: '500',\n textTransform: 'uppercase',\n whiteSpace: 'nowrap',\n },\n summary: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n flexWrap: 'wrap',\n },\n summaryItem: {\n textAlign: 'center',\n marginBottom: 8,\n },\n amount: {\n marginTop: 4,\n '& span': {\n display: 'block',\n },\n },\n ...printStyles(theme),\n }\n}\n\nclass MealPlanByDay extends PureComponent {\n static defaultProps = {\n plan: {\n days: [],\n meals: [],\n },\n user: { profile: {} },\n week: '',\n }\n state = {\n alertOpen: false,\n }\n\n mealsSortedByTypeThenName = memoize((mealids, allMeals) => {\n const mealCount = get(this.props, 'user.profile.mealCount', 0)\n const snackCount = get(this.props, 'user.profile.snackCount', 0)\n\n // console.log('mealids', mealids, mealCount, snackCount)\n const meals = { breakfast: [], regular: [], snack: [] }\n mealids.forEach(m_id => {\n const meal = allMeals.find(m => m.id === m_id)\n // console.log('meal?', meal)\n meals[meal.type].push(meal)\n })\n // console.log('meals', meals)\n\n let mealNum = 1\n let fake = { recipeIds: [], empty: true }\n let sparse = []\n if (meals['breakfast'].length > 0) {\n sparse = [...meals['breakfast']]\n mealNum += meals['breakfast'].length\n } else {\n sparse = [{ ...fake, type: 'breakfast', number: mealNum }]\n mealNum += 1\n }\n\n let sortedRegular = meals['regular'] //.sort(sortByName)\n sparse = [...sparse, ...sortedRegular]\n mealNum += sortedRegular.length\n let missing = mealCount - 1 /*breakfast */ - sortedRegular.length\n // console.log('missing meals', missing)\n for (let i = 0; i < missing; i++) {\n sparse = [...sparse, { ...fake, type: 'regular', number: mealNum }]\n mealNum += 1\n }\n\n let sortedSnacks = meals['snack'] //.sort(sortByName)\n sparse = [...sparse, ...sortedSnacks]\n mealNum += sortedSnacks.length\n missing = snackCount - sortedSnacks.length\n // console.log('missing snacks', missing)\n for (let i = 0; i < missing; i++) {\n sparse = [...sparse, { ...fake, type: 'snack', number: mealNum }]\n mealNum += 1\n }\n\n // console.log('sparse', sparse)\n return sparse\n })\n\n mealsSortedByTypeThenNumber = memoize((mealids, allMeals) => {\n const mealCount = get(this.props, 'user.profile.mealCount', 0)\n const snackCount = get(this.props, 'user.profile.snackCount', 0)\n\n // console.log('mealids', mealids, allMeals, mealCount, snackCount)\n const meals = { breakfast: [], regular: [], snack: [] }\n mealids.forEach(m_id => {\n const meal = allMeals.find(m => m.id === m_id)\n // console.log('meal?', meal)\n meals[meal.type].push(meal)\n })\n // console.log('meals', meals)\n\n let fake = { recipeIds: [], empty: true }\n let sequence = [] // new Array(mealCount + snackCount)\n if (meals['breakfast'].length > 0) {\n sequence = [...meals['breakfast']] // should only be 1, but in the future ....?\n } else {\n sequence = [{ ...fake, type: 'breakfast', number: 1 }]\n }\n\n let mealNumStart = 2\n for (let num = mealNumStart; num <= mealCount; num++) {\n let nextMeal = meals['regular'].find(m => m.number === num)\n if (nextMeal) {\n sequence[num - 1] = nextMeal\n } else {\n sequence[num - 1] = { ...fake, type: 'regular', number: num }\n }\n }\n\n mealNumStart = mealCount + 1\n const snackMax = mealCount + snackCount\n for (let num = mealNumStart; num <= snackMax; num++) {\n let nextMeal = meals['snack'].find(m => m.number === num)\n if (nextMeal) {\n sequence[num - 1] = nextMeal\n } else {\n sequence[num - 1] = { ...fake, type: 'snack', number: num }\n }\n }\n\n // console.log('sequence', sequence)\n return sequence\n })\n\n recipeUseCount = memoize(plan => {\n if (!plan || !plan.meals) { return null }\n return plan.meals.reduce((acc, cur) => {\n cur.recipeIds.forEach(rId => { if (rId in acc) { acc[rId]++ } else { acc[rId] = 1 } })\n return acc\n }, {})\n })\n\n handleClose = () => {\n this.setState({ alertOpen: false })\n }\n\n handleReplaceMealPlan = () => {\n this.setState({ alertOpen: true })\n }\n\n handleReplaceMealPlanConfirmed = async () => {\n const { onReplaceMealPlan, week } = this.props\n this.handleClose()\n await onReplaceMealPlan(week)\n }\n\n renderDaySummary = (day) => {\n const { classes } = this.props\n\n const items = [\n ['Protein (g)', `${day.protein}`, `(${asPct(day.proteinPct, 1)}%)`],\n ['Fat (g)', `${day.fat}`, `(${asPct(day.fatPct, 1)}%)`],\n ['Carbs (g)', `${day.carbs}`, `(${asPct(day.carbsPct, 1)}%)`],\n ['Fiber (g)', `${day.fiber}`, ''],\n ['Sugar (g)', `${day.sugar}`, ''],\n ['Sodium (mg)', `${day.sodium}`, ''],\n ]\n return (\n \n {items.map((item, i) => (\n \n
\n \n
\n ))}\n
\n )\n }\n\n renderDay = (day) => {\n const { classes, plan, user, onReplaceMeal, onRemoveMeal, onAddRecipe, onSearchRecipe, week } = this.props\n const allMeals = get(plan, 'meals', [])\n const allRecipes = get(plan, 'recipes', [])\n const meals = this.mealsSortedByTypeThenNumber(day.mealIds, allMeals)\n\n const canModify = week !== 'last'\n\n // console.log('renderDay', this.recipeUseCount(plan), plan, day, meals, user)\n return (\n \n \n {day.label} - {day.kcal} calories\n \n {false && day.message && (\n \n {day.message}\n \n )}\n \n
\n {meals.map((meal, i) => {\n const recipes = allRecipes.filter(r => meal.recipeIds.includes(r.id))\n return onReplaceMeal(day.number, meal, all, withRecipeId) : null}\n onRemoveMeal={canModify ? (meal) => onRemoveMeal(meal) : null}\n onAddRecipe={(recipe) => onAddRecipe(recipe, day.number, meal.number)}\n onSearchRecipe={onSearchRecipe}\n />\n })}\n
\n \n {this.renderDaySummary(day)}\n
\n )\n }\n\n renderAside = () => {\n const { week } = this.props\n let weekQS = week ? `?week=${week}` : ''\n let aside = []\n aside.push(\n \n \n Meal Prep\n ,\n )\n aside.push(\n \n \n Grocery List\n ,\n )\n return aside\n }\n\n render () {\n // console.log('MealPlanByDay.render', this.props)\n const { classes, plan, user, loading, week } = this.props\n if (!user || !user.profile) {\n return null\n }\n const { profile: { dci, nutrientTargetPct } } = user\n const days = get(plan, 'days', [])\n const mismatch = get(plan, 'mismatch', false)\n const nutrients = nutrientTargetPct.map(n => `${n.target}% ${capitalize(n.nutrient)}`)\n\n return (\n
\n
\n \n \n
\n\n

\n Daily Calorie Target: {dci}
\n Target Nutrients: {nutrients.join(' / ')}
\n Note: The timing of meal consumption is up to user discretion.
\n {week !== 'last' && (\n \n (If you want to replace this meal plan with {week === 'next' ? 'this' : 'last'} week's, click here.)\n \n )}\n

\n {mismatch && (\n

indictates that we were unable to find a recipe to match all of your\n preferences,\n and thus one has been randomly chosen to match a subset of your dietary needs.

\n )}\n\n {days.map(day => this.renderDay(day))}\n\n \n \n
\n )\n }\n}\n\nexport default withStyles(styles)(MealPlanByDay)\n","// @flow\nimport React, { PureComponent } from 'react'\n\ntype Props = {}\ntype State = {}\n\nclass MealPlanSummary extends PureComponent {\n static defaultProps = {}\n\n render () {\n return (\n
\n Meal Plan Summary\n
\n )\n }\n}\n\nexport default MealPlanSummary\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { withStyles, Typography } from '@material-ui/core'\nimport get from 'lodash/get'\nimport memoize from 'memoize-one'\nimport classnames from 'classnames'\n\nimport Grid from '@material-ui/core/Grid'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\n\nimport Collapse from '@material-ui/core/Collapse'\nimport TextField from '@material-ui/core/TextField'\n\nimport { colors } from '@balance/lib/styles'\nimport { PageTitle } from '../PageTitle'\nimport baseStyles from '../../styles/global'\nimport printStyles from '../../styles/print'\n\nimport { ButtonLink } from '../Button'\n\nimport { Grocery, Food, Restaurant, List as ListIcon } from '../../styles/icons'\nimport Button from '../Button/Button'\nimport WeekToggle from './WeekToggle'\nimport FullPageSpinner from '../Global/FullPageSpinner'\n\ntype MealPrepType = {\n meals: Array,\n}\ntype Props = {\n plan: MealPrepType,\n user: Object,\n week?: ?string,\n}\ntype State = {\n instrShowingFor: string,\n}\n\nconst styles = (theme) => {\n return {\n ...baseStyles(theme),\n day: {\n padding: theme.spacing.unit,\n margin: theme.spacing.unit,\n },\n table: {\n width: '100%',\n // minWidth: 500,\n },\n heading: {\n color: colors.darkGreen,\n },\n thead: {\n color: '#3d3d3d',\n fontSize: 10,\n fontWeight: '500',\n textTransform: 'uppercase',\n whiteSpace: 'nowrap',\n },\n recipeIntro: {\n fontStyle: 'italic',\n },\n icon: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n flexWrap: 'nowrap',\n marginTop: 11,\n color: colors.darkGreen,\n },\n ingrItem: {\n paddingBottom: 0,\n },\n portion: {\n textAlign: 'center',\n fontSize: 24,\n '& span': {\n display: 'block',\n fontSize: 10,\n },\n },\n buttonWrap: {\n width: '100%',\n display: 'flex',\n\n [theme.breakpoints.up('md')]: {\n justifyContent: 'flex-end',\n },\n },\n textarea: {\n width: '100%',\n marginTop: 0,\n },\n recipeItem: {\n // '& span': {\n fontSize: '1rem',\n // },\n },\n ...printStyles(theme),\n }\n}\n\nclass MealPrep extends PureComponent {\n static defaultProps = {\n plan: {\n days: [],\n meals: [],\n },\n user: { profile: {} },\n week: '',\n }\n\n state = {\n instrShowingFor: '',\n }\n\n recipesByType = memoize((groupedRecipeList) => {\n // console.log('groupedRecipeList', groupedRecipeList)\n const groups = { breakfast: [], meal: [], snack: [] }\n groupedRecipeList.forEach(r => groups[r.type].push(r))\n // console.log('groups', groups)\n return groups\n })\n\n toggleInstructions = (recipeId) => {\n this.setState(prevState => {\n const show = prevState.instrShowingFor === recipeId ? '' : recipeId\n return { instrShowingFor: show }\n })\n }\n\n renderInstructions = (recipe) => {\n const { classes } = this.props\n const { instrShowingFor } = this.state\n const instructions = get(recipe, 'instructions')\n if (!instructions) { return null }\n const show = instrShowingFor === recipe.id\n // console.log('instr', show, instrShowingFor, recipe.id, instructions)\n return (\n
\n
\n \n
\n \n \n \n
\n \n
\n
\n )\n }\n\n formatQty = (ingr) => {\n if (ingr.fixed) {\n return `${ingr.qty} whole`\n }\n return `${ingr.qtyOz} oz`\n }\n\n renderRecipeGroup = (group) => {\n const { classes } = this.props\n const cnt = group.length\n return (\n \n {group.map((recipe, i) => {\n return (\n \n \n \n \n \n {recipe.count}\n portion{recipe.count > 1 && 's'}\n \n \n \n \n {this.renderRecipe(recipe)}\n \n \n )\n })}\n \n )\n }\n\n renderRecipe = (recipe) => {\n const { classes } = this.props\n // console.log('recipe', recipe)\n\n const colSize = Boolean(recipe.instructions) ? 6 : 12\n return (\n
\n \n \n \n {recipe.ingredients.map((ingr, i) => {\n // console.log('ingredient', ingr)\n return (\n \n \n {this.formatQty(ingr)} {ingr.name}\n \n \n )\n })}\n \n \n \n {this.renderInstructions(recipe)}\n \n \n
\n )\n }\n\n renderAside = () => {\n const { week } = this.props\n let weekQS = week ? `?week=${week}` : ''\n let aside = []\n aside.push(\n \n \n Meal Plan\n ,\n )\n aside.push(\n \n \n Grocery List\n ,\n )\n return aside\n }\n\n render () {\n // console.log('MealPrep.render', this.props, this.state)\n const { classes, plan, user, loading, week } = this.props\n if (!user || !user.profile) {\n return null\n }\n\n const recipeGroups = this.recipesByType(get(plan, 'groupedRecipes', []))\n // console.log('recipeGroups', recipeGroups)\n\n const b = recipeGroups.breakfast\n const m = recipeGroups.meal\n const s = recipeGroups.snack\n return (\n
\n
\n \n \n
\n\n \n Breakfast{b.length > 1 && 's'}\n \n {this.renderRecipeGroup(b)}\n\n \n Meal{m.length > 1 && 's'}\n \n {this.renderRecipeGroup(m)}\n\n \n Snack{s.length > 1 && 's'}\n \n {this.renderRecipeGroup(s)}\n\n \n
\n )\n }\n}\n\nexport default withStyles(styles)(MealPrep)\n","// @flow\nimport React, { PureComponent, Fragment } from 'react'\nimport classnames from 'classnames'\n\nimport { withStyles } from '@material-ui/core/styles'\nimport Paper from '@material-ui/core/Paper'\nimport List from '@material-ui/core/List'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport Typography from '@material-ui/core/Typography'\n\nimport { colors } from '@balance/lib/styles'\n\nimport { Button, ButtonLink } from '../Button'\nimport PageTitle from '../PageTitle/PageTitle'\nimport baseStyles from '../../styles/global'\nimport { SquareUnchecked, Print, Food } from '../../styles/icons'\nimport WeekToggle from './WeekToggle'\nimport FullPageSpinner from '../Global/FullPageSpinner'\n\ntype Props = {\n recipes: Array,\n items: Array,\n week?: ?string,\n}\ntype State = {}\n\nconst styles = theme => {\n const global = baseStyles(theme)\n return {\n ...global,\n root: {\n width: '100%',\n maxWidth: 360,\n backgroundColor: theme.palette.background.paper,\n },\n paper: {\n '@media print': {\n boxShadow: 'none',\n border: '1px solid #999',\n },\n },\n list: {\n paddingTop: 0,\n paddingBottom: 0,\n\n '@media print': {},\n },\n header: {\n backgroundColor: colors.tableHeader,\n '& p, & span': {\n color: '#fff',\n },\n\n '@media print': {\n backgroundColor: 'transparent',\n '& p, & span': {\n color: 'black',\n },\n },\n },\n item: {\n '@media print': {\n // display: 'inline-flex',\n // alignItems: 'center',\n // justifyContent: 'space-between',\n // padding: 0,\n pageBreakInside: 'avoid',\n boxDecorationBreak: 'clone',\n },\n },\n mainLabel: {\n [theme.breakpoints.up('sm')]: {\n display: 'flex',\n alignItems: 'flex-end',\n },\n '@media print': {\n display: 'flex',\n alignItems: 'flex-end',\n },\n },\n itemName: {\n [theme.breakpoints.up('sm')]: {\n fontSize: '1rem',\n lineHeight: 1.4,\n verticalAlign: 'bottom',\n },\n '@media print': {\n fontSize: '1rem',\n lineHeight: 1.4,\n verticalAlign: 'bottom',\n },\n },\n itemPkg: {\n [theme.breakpoints.up('sm')]: {\n fontSize: '0.85rem',\n // lineHeight: 1.4,\n verticalAlign: 'bottom',\n },\n '@media print': {\n color: 'black',\n fontSize: '0.85rem',\n // lineHeight: 1.4,\n verticalAlign: 'bottom',\n },\n },\n itemSep: {\n fontSize: '1rem',\n lineHeight: 1.4,\n margin: [[0, 5]],\n\n [theme.breakpoints.down('xs')]: {\n display: 'none',\n },\n '@media print': {\n display: 'block',\n },\n },\n itemText: {\n [theme.breakpoints.up('xs')]: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: 0,\n },\n\n '@media print': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: 0,\n },\n },\n icon: {\n ...global.icon,\n\n '@media screen': {\n display: 'none',\n },\n },\n printIcon: {\n '@media print': {\n display: 'none',\n },\n },\n type: {\n width: 75,\n },\n amount: {\n textAlign: 'right',\n '@media print': {\n color: 'black',\n marginLeft: theme.spacing.unit,\n },\n },\n }\n}\n\nclass GroceryList extends PureComponent {\n static defaultProps = {\n items: [],\n week: '',\n }\n\n formatQty = (item) => {\n // console.log('formatQty', item, item.name)\n if (item.fixed) {\n return `${item.qty}`\n }\n\n const inGrams = `${item.qtyG}g`\n if (item.qty && item.unit) {\n return `${item.qty} ${item.unit} (${inGrams})`\n } else {\n return inGrams\n }\n }\n\n formatPackage = (item) => {\n const { packagedAs } = item\n if (packagedAs && packagedAs.qty) {\n return `${packagedAs.qty} ${packagedAs.unit}`\n }\n }\n\n formatAmount = (item) => {\n const raw = this.formatQty(item)\n const pkg = this.formatPackage(item)\n if (pkg) {\n return `${raw} | ${pkg}`\n }\n return raw\n }\n\n handlePrint = () => {\n window.print && window.print()\n }\n\n renderAside = () => {\n const { week } = this.props\n let weekQS = week ? `?week=${week}` : ''\n let aside = []\n if (window.print) {\n aside.push(\n ,\n )\n }\n aside.push(\n \n \n Meal Plan\n ,\n )\n return aside\n }\n\n renderItemPrimary = (item) => {\n const pkg = this.formatPackage(item)\n return (\n \n {item.name}\n {pkg && (-)}\n {pkg}\n \n )\n }\n\n render () {\n const { classes, items, loading, week, weekOfShort } = this.props\n // console.log('GroceryList.render', this.props)\n return (\n
\n
\n \n \n
\n\n \n \n \n \n  \n \n \n \n {items.map((item, i) => (\n \n \n \n \n \n \n ),\n )}\n \n \n\n \n
\n )\n }\n}\n\nexport default withStyles(styles)(GroceryList)\n","import React, { Component } from 'react'\nimport { Query } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { isComplete } from '@balance/lib/api/profile'\nimport {\n ADD_RECIPE_TO_MEAL, GET_MEAL_PLAN, REMOVE_MEAL, REPLACE_MEAL, REPLACE_MEAL_PLAN,\n} from '@balance/lib/api/meal-plan'\nimport { SEARCH_RECIPES } from '@balance/lib/api/recipes'\n\nimport { MealPlanByDay } from '../../components/Meals'\nimport { ProfileNotComplete } from '../../components/Profile'\n\n// import { HideErrorBoundary } from '../../components/Error'\n\nclass MealPlanContainer extends Component {\n state = {\n error: '',\n replacing: false,\n }\n\n render () {\n let { replacing } = this.state\n let week = get(this.props, 'location.search', '').replace('?week=', '')\n // console.log('week', week, this.props)\n if (!['last', 'this', 'next'].includes(week)) { week = '' }\n\n return (\n \n {({ state: user }) => {\n // console.log('cu', state)\n\n const profile = get(user, 'profile', {})\n if (!isComplete(profile)) {\n return \n }\n\n return (\n \n {({ data, loading, refetch, client, props }) => {\n // console.log('meal dashboard container props', loading, data)\n\n let plan = get(data, 'mealPlan', {})\n // console.log('meal plan container: meal plan', user, plan)\n\n const handleReplaceMealPlan = async (week) => {\n // console.log('handleReplaceMealPlan', plan.id, week)\n this.setState({ replacing: true })\n const result = await client.mutate({\n mutation: REPLACE_MEAL_PLAN,\n variables: {\n mealPlanId: plan.id,\n week,\n },\n })\n await refetch()\n this.setState({ replacing: false })\n // console.log('result', result)\n return result\n }\n\n const handleReplaceMeal = async (dayNum, meal, all = false, withRecipeId = null) => {\n // console.log('handleReplaceMeal', plan.id, { dayNum, meal, all, withRecipeId })\n const result = await client.mutate({\n mutation: REPLACE_MEAL,\n variables: {\n mealPlanId: plan.id,\n dayNum,\n mealNum: meal.number,\n mealId: meal.id,\n all,\n withRecipeId,\n },\n })\n // console.log('result', result)\n return result\n }\n\n const handleRemoveMeal = async (meal) => {\n // console.log('handleRemoveMeal', plan.id, meal)\n const result = await client.mutate({\n mutation: REMOVE_MEAL,\n variables: {\n mealPlanId: plan.id,\n mealId: meal.id,\n },\n })\n // console.log('result', result)\n return result\n }\n\n const handleAddRecipe = async (recipe, dayNum, mealNum) => {\n // console.log('handleAddRecipe', plan.id, recipe, dayNum, mealNum)\n const result = await client.mutate({\n mutation: ADD_RECIPE_TO_MEAL,\n variables: {\n mealPlanId: plan.id,\n recipeId: recipe.id,\n dayNum,\n mealNum,\n },\n })\n // console.log('result', result)\n return result\n }\n\n const searchRecipes = async (query, type, params = {}) => {\n // console.log('searchRecipes', query, type, params)\n const { data } = await client.query({\n query: SEARCH_RECIPES,\n fetchPolicy: 'network-only',\n variables: {\n filter: {\n ...params,\n q: query,\n type,\n },\n },\n })\n return get(data, 'items', [])\n }\n\n return (\n \n\n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(MealPlanContainer)\n","import React, { Component } from 'react'\nimport { Query } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { isComplete } from '@balance/lib/api/profile'\nimport { GET_MEAL_PREP } from '@balance/lib/api/meal-plan'\n\nimport { MealPrep } from '../../components/Meals'\nimport { ProfileNotComplete } from '../../components/Profile'\n\nclass MealPrepContainer extends Component {\n state = {\n error: '',\n }\n\n render () {\n let week = get(this.props, 'location.search', '').replace('?week=', '')\n // console.log('week', week, this.props)\n if (!['last', 'this', 'next'].includes(week)) { week = '' }\n\n return (\n \n {({ state: user }) => {\n // console.log('cu', state)\n\n const profile = get(user, 'profile', {})\n if (!isComplete(profile)) {\n return \n }\n\n return (\n \n {({ data, loading, props }) => {\n // console.log('meal dashboard container props', data, props)\n\n let plan = get(data, 'mealPrep', {})\n // console.log('meal prep container: meal plan', user, plan)\n\n return (\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(MealPrepContainer)\n","import React, { Component, Fragment } from 'react'\nimport { Query } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { GET_RECIPES } from '@balance/lib/api/recipes'\n\nimport { RecipeList } from '../../components/Recipe'\n// import { FullPageSpinner } from '../../components/Global'\n\nclass RecipeListContainer extends Component {\n state = {\n error: '',\n page: null,\n perPage: null,\n filterStatus: [],\n filterList: [],\n searchText: '',\n }\n\n componentDidMount (): void {\n const page = sessionStorage.getItem('recipe/page')\n const perPage = sessionStorage.getItem('recipe/perPage')\n const filterStateRaw = sessionStorage.getItem('recipe/filterState')\n const filterState = filterStateRaw !== null ? JSON.parse(filterStateRaw) : {}\n // console.log('cDM', page, perPage, filterState)\n let params = { page: 0, perPage: 10, filterType: [], filterStatus: [] } // some defaults\n // TODO this doesn't seem to work since MUI_DT immediately resets to 0\n if (page !== null) { params.page = parseInt(page, 10) }\n if (perPage !== null) { params.perPage = parseInt(perPage, 10) }\n if (filterState !== null) {\n params = {\n ...params,\n ...filterState,\n }\n }\n // console.log('rehydrated', params)\n this.setState(params)\n }\n\n viewRecipe = (recipeId) => {\n const { history } = this.props\n history.push(`/recipes/${recipeId}`)\n }\n\n onFilterChange = (changedColumn: String, filterList: Array) => {\n // console.log('onFilterChange', changedColumn, filterList)\n const filterState = {\n filterStatus: filterList[1],\n filterType: filterList[2],\n }\n sessionStorage.setItem('recipe/filterState', JSON.stringify(filterState))\n this.setState(filterState)\n }\n\n onSearchChange = (searchText) => {\n // console.log('onSearchChange', searchText)\n this.setState({\n searchText,\n })\n }\n\n onChangePage = (page) => {\n // console.log('onChangePage', page)\n if (page !== this.state.page) {\n this.setState({ page })\n sessionStorage.setItem('recipe/page', page)\n }\n }\n\n onChangeRowsPerPage = (perPage) => {\n // console.log('onChangeRowsPerPage', perPage)\n if (perPage !== this.state.perPage) {\n this.setState({ perPage })\n sessionStorage.setItem('recipe/perPage', perPage)\n }\n }\n\n render () {\n // console.log('recipe list container.render', this.state)\n const { page, perPage, searchText, filterType, filterStatus } = this.state\n\n const notReady = page === null || perPage === null\n\n return (\n \n {({ state }) => {\n // console.log('cu', state)\n return (\n \n {({ data, loading, props }) => {\n // console.log('recipe list container props', page, perPage, loading, data, props)\n\n const recipes = get(data, 'items', [])\n const totalResultCount = get(data, 'total.count', 0)\n\n if (notReady) {\n return null\n }\n\n return (\n \n \n {/**/}\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(RecipeListContainer)\n","import React, { Component } from 'react'\nimport { Query, Mutation } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { GET_RECIPE, DELETE_RECIPE } from '@balance/lib/api/recipes'\n\nimport { RecipeDetail } from '../../components/Recipe'\n\nclass RecipeDetailContainer extends Component {\n\n constructor (props, ctx) {\n super(props, ctx)\n\n this.state = {\n error: '',\n }\n }\n\n render () {\n // console.log('recipe detail container render', this.props)\n const recipeId = get(this.props, 'match.params.recipeId')\n return (\n \n {({state}) => {\n // console.log('cu', state)\n return (\n \n {({data, ...props}) => {\n // console.log('recipe detail container props', data, props)\n\n const recipe = get(data, 'data', {})\n\n return (\n \n {(deleteRecipe) => {\n\n const doDelete = async () => {\n const result = await deleteRecipe({variables: {id: recipe.id}})\n // console.log('result', result)\n const idConfirm = get(result, 'data.data.id')\n // console.log('idConfirm', idConfirm)\n if (idConfirm) {\n this.props.history.replace('/recipes')\n }\n }\n return (\n \n )\n }}\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(RecipeDetailContainer)\n","import React, { Component } from 'react'\nimport { Query, ApolloConsumer } from 'react-apollo'\nimport { withRouter, Redirect } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { GET_RECIPE, SAVE_RECIPE } from '@balance/lib/api/recipes'\nimport { GET_FOODS } from '@balance/lib/api/foods'\n\nimport { RecipeEdit } from '../../components/Recipe'\n\nclass RecipeEditContainer extends Component {\n\n constructor (props, ctx) {\n super(props, ctx)\n\n this.state = {\n error: '',\n redirectBackTo: null,\n haveRecipeId: Boolean(get(this.props, 'match.params.recipeId')),\n }\n }\n\n componentDidUpdate (): void {\n // console.log('RecipeEditContainer.cDU', this.props)\n const recipeId = get(this.props, 'match.params.recipeId')\n if (Boolean(recipeId) !== this.state.haveRecipeId) {\n this.setState({ haveRecipeId: Boolean(recipeId) })\n }\n }\n\n render () {\n // console.log('recipe edit container render', this.props)\n const recipeId = get(this.props, 'match.params.recipeId')\n // console.log('recipeId', recipeId)\n if (this.state.redirectBackTo) {\n return (\n \n )\n }\n\n return (\n \n {({ state }) => {\n // console.log('cu', state)\n // console.log('haveRecipeId?', this.state.haveRecipeId)\n return (\n \n {({ data, refetch, ...props }) => {\n // console.log('recipe edit container props', data, props)\n\n const recipe = get(data, 'data', {})\n\n return (\n \n {(client, ...rest) => {\n // console.log('RecipeEditContainer.props', client, rest)\n\n const searchFoods = async (queryTerm, source = 'local') => {\n // console.log('searchFoods', queryTerm, source)\n\n let filter = {\n q: queryTerm,\n source: source || 'local',\n }\n\n const { data } = await client.query({\n query: GET_FOODS,\n fetchPolicy: 'network-only',\n variables: { filter },\n })\n // console.log('search data', data)\n return get(data, 'items', [])\n }\n\n const saveRecipe = async (attributes) => {\n // console.log('saveRecipe', recipe)\n const { data } = await client.mutate({\n mutation: SAVE_RECIPE,\n variables: attributes,\n })\n const result = get(data, 'data', {})\n // console.log('result', result)\n if (result && result.id) {\n if (recipeId) { // only refetch from existing recipe\n // console.log('refetching', result.id)\n this.setState({ haveRecipeId: true }, async () => {\n // console.log('really fetching now ...')\n await refetch({ id: result.id })\n this.setState({ redirectBackTo: result.id })\n })\n } else {\n // console.log('done! now redirecting....')\n this.setState({ redirectBackTo: result.id })\n }\n }\n return result\n }\n return (\n \n )\n }}\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(RecipeEditContainer)\n","import React, { Component } from 'react'\nimport { Query } from 'react-apollo'\nimport { withRouter } from 'react-router-dom'\nimport get from 'lodash/get'\n\nimport { CurrentUserConsumer } from '@balance/lib/contexts'\nimport { isComplete } from '@balance/lib/api/profile'\nimport { GET_GROCERY_LIST } from '@balance/lib/api/meal-plan'\n\nimport { GroceryList } from '../../components/Meals'\nimport ProfileNotComplete from '../../components/Profile/ProfileNotComplete'\n\nclass GroceryListContainer extends Component {\n\n state = {\n error: '',\n }\n\n render () {\n let week = get(this.props, 'location.search', '').replace('?week=', '')\n // console.log('week', week, this.props)\n if (!['last', 'this', 'next'].includes(week)) { week = '' }\n\n return (\n \n {({ state: user }) => {\n // console.log('cu', user)\n\n const profile = get(user, 'profile', {})\n if (!isComplete(profile)) {\n return \n }\n\n return (\n \n {({ data, loading, props }) => {\n // console.log('grocery list container props', loading, data, props)\n\n const listData = get(data, 'groceryList', {})\n const items = get(listData, 'items', [])\n\n return (\n \n )\n }}\n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(GroceryListContainer)\n","import React from 'react'\nimport { withStyles } from '@material-ui/core/styles'\nimport globalStyles from '../../styles/global'\nimport { PageTitle } from '../PageTitle'\n\nconst TermsOfUse = withStyles(globalStyles)(({ classes }) => {\n\n return (\n
\n Terms and Conditions\n\n

Last updated: January 11, 2019

\n\n

Please read these Terms and Conditions (\"Terms\", \"Terms and Conditions\") carefully before using the\n www.balanceondemand.com website (the \"Service\") operated by Balance On Demand LLC (\"us\", \"we\", or \"our\").

\n\n

Your access to and use of the Service is conditioned upon your acceptance of and compliance with these Terms.\n These Terms apply to all visitors, users and others who wish to access or use the Service.

\n\n

By accessing or using the Service you agree to be bound by these Terms. If you disagree with any part of the\n terms then you do not have permission to access the Service.

\n\n

Subscriptions

\n\n

Some parts of the Service are billed on a subscription basis (\"Subscription(s)\"). You will be billed in advance\n on a recurring and periodic basis (\"Billing Cycle\"). Billing cycles are set on a monthly basis.

\n\n

At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions\n unless you cancel it or Balance On Demand LLC cancels it. You may cancel your Subscription renewal either\n through your online account management page or by contacting Balance On Demand LLC customer support team.

\n\n

A valid payment method, including credit card, is required to process the payment for your Subscription. You\n shall provide Balance On Demand LLC with accurate and complete billing information including full name, address,\n state, zip code, telephone number, and a valid payment method information. By submitting such payment\n information, you automatically authorize Balance On Demand LLC to charge all Subscription fees incurred through\n your account to any such payment instruments.

\n\n

Should automatic billing fail to occur for any reason, Balance On Demand LLC will issue an electronic invoice\n indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding\n to the billing period as indicated on the invoice.

\n\n

Free Trial

\n\n

Balance On Demand LLC may, at its sole discretion, offer a Subscription with a free trial for a limited period\n of time (\"Free Trial\").

\n\n

You may be required to enter your billing information in order to sign up for the Free Trial.

\n\n

If you do enter your billing information when signing up for the Free Trial, you will not be charged by Balance\n On Demand LLC until the Free Trial has expired. On the last day of the Free Trial period, unless you cancelled\n your Subscription, you will be automatically charged the applicable Subscription fees for the type of\n Subscription you have selected.

\n\n

At any time and without notice, Balance On Demand LLC reserves the right to (i) modify the terms and conditions\n of the Free Trial offer, or (ii) cancel such Free Trial offer.

\n\n

Fee Changes

\n\n

Balance On Demand LLC, in its sole discretion and at any time, may modify the Subscription fees for the\n Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing\n Cycle.

\n\n

Balance On Demand LLC will provide you with a reasonable prior notice of any change in Subscription fees to\n give you an opportunity to terminate your Subscription before such change becomes effective.

\n\n

Your continued use of the Service after the Subscription fee change comes into effect constitutes your\n agreement to pay the modified Subscription fee amount.

\n\n

Refunds

\n\n

Except when required by law, paid Subscription fees are non-refundable.

\n\n

Accounts

\n\n

When you create an account with us, you guarantee that you are above the age of 18, and that the information\n you provide us is accurate, complete, and current at all times. Inaccurate, incomplete, or obsolete information\n may result in the immediate termination of your account on the Service.

\n\n

You are responsible for maintaining the confidentiality of your account and password, including but not limited\n to the restriction of access to your computer and/or account. You agree to accept responsibility for any and all\n activities or actions that occur under your account and/or password, whether your password is with our Service\n or a third-party service. You must notify us immediately upon becoming aware of any breach of security or\n unauthorized use of your account.

\n\n

You may not use as a username the name of another person or entity or that is not lawfully available for use, a\n name or trademark that is subject to any rights of another person or entity other than you, without appropriate\n authorization. You may not use as a username any name that is offensive, vulgar or obscene.

\n\n

Intellectual Property

\n\n

The Service and its original content, features and functionality are and will remain the exclusive property of\n Balance On Demand LLC and its licensors. The Service is protected by copyright, trademark, and other laws of\n both the United States and foreign countries. Our trademarks and trade dress may not be used in connection with\n any product or service without the prior written consent of Balance On Demand LLC.

\n\n

Links To Other Web Sites

\n\n

Our Service may contain links to third party web sites or services that are not owned or controlled by Balance\n On Demand LLC

\n\n

Balance On Demand LLC has no control over, and assumes no responsibility for the content, privacy policies, or\n practices of any third party web sites or services. We do not warrant the offerings of any of these\n entities/individuals or their websites.

\n\n

You acknowledge and agree that Balance On Demand LLC shall not be responsible or liable, directly or\n indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on\n any such content, goods or services available on or through any such third party web sites or services.

\n\n

We strongly advise you to read the terms and conditions and privacy policies of any third party web sites or\n services that you visit.

\n\n

Termination

\n\n

We may terminate or suspend your account and bar access to the Service immediately, without prior notice or\n liability, under our sole discretion, for any reason whatsoever and without limitation, including but not\n limited to a breach of the Terms.

\n\n

If you wish to terminate your account, you may simply discontinue using the Service.

\n\n

All provisions of the Terms which by their nature should survive termination shall survive termination,\n including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of\n liability.

\n\n

Governing Law

\n\n

These Terms shall be governed and construed in accordance with the laws of Georgia, United States, without\n regard to its conflict of law provisions.

\n\n

Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights.\n If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of\n these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service,\n and supersede and replace any prior agreements we might have had between us regarding the Service.

\n\n

Changes

\n\n

We reserve the right, at our sole discretion, to modify or replace these Terms at any time. If a revision is\n material we will provide at least 15 days notice prior to any new terms taking effect. What constitutes a\n material change will be determined at our sole discretion.

\n\n

By continuing to access or use our Service after any revisions become effective, you agree to be bound by the\n revised terms. If you do not agree to the new terms, you are no longer authorized to use the Service.

\n\n

Contact Us

\n\n

If you have any questions about these Terms, please contact us\n at help@balanceondemand.com.

\n
\n )\n})\n\nexport default TermsOfUse\n","// @flow\nimport React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport TermsOfUse from '../../components/Page/TermsOfUse'\n\ntype Props = {}\ntype State = {}\n\nconst iframes = {\n 'disclaimer': 'https://app.termly.io/document/disclaimer/33d225e4-d730-4f5a-a331-a0859214d140',\n // 'terms-of-use': 'https://app.termly.io/document/terms-of-use-for-website/a42eb476-721f-46af-9436-dbbcb12acf40',\n // 'refund-policy': 'https://app.termly.io/document/return-policy/2766c163-0a2f-495a-8316-17a9adfcae93',\n 'privacy-policy': 'https://app.termly.io/document/privacy-policy/3b8ac89d-c662-42a1-938e-74bded4a55c6',\n}\nconst pageComponents = {\n 'terms-of-use': ,\n}\n\nclass PageContainer extends PureComponent {\n static defaultProps = {}\n\n renderIframe = (slug) => {\n const page = iframes[slug]\n return (\n
\n\n \n\n\n
\n )\n }\n\n render () {\n // console.log('page render', this.props)\n\n const slug = get(this.props, 'match.params.page')\n const page = iframes[slug]\n if (page) {\n return this.renderIframe(slug)\n }\n\n const pc = pageComponents[slug]\n if (pc) {\n return pc\n }\n\n return 'Nothing to see here....'\n\n }\n}\n\nexport default PageContainer\n","// @flow\nimport React from 'react'\nimport ReactGA from 'react-ga'\n\nimport get from 'lodash/get'\n\nimport { IS_DEV } from '@balance/lib/config/constants'\n\ntype Props = {}\ntype State = {\n currentPage: string,\n}\n\nconst DEBUG = false\n\nclass Analytics extends React.PureComponent {\n static defaultProps = {}\n state = {\n currentPage: get(this.props, 'location.pathname'),\n }\n\n componentDidMount () {\n if (DEBUG || !IS_DEV) {\n ReactGA.initialize('UA-132742198-2') //Unique Google Analytics tracking number\n }\n }\n\n componentDidUpdate = () => {\n if (DEBUG || !IS_DEV) {\n const cur = get(this.state, 'location.pathname')\n const next = get(this.props, 'location.pathname')\n // console.log('Analytics.cWRP', cur, next)\n if (cur !== next) {\n ReactGA.pageview(next)\n this.setState({currentPage: next})\n }\n }\n }\n\n render () {\n return null\n }\n}\n\nexport default Analytics\n","// @flow\nimport React, { PureComponent } from 'react'\nimport { Redirect, Route, Switch, withRouter } from 'react-router-dom'\nimport { Query } from 'react-apollo'\nimport get from 'lodash/get'\nimport debounce from 'lodash/debounce'\n\nimport { GET_CURRENT_USER } from '@balance/lib/api/user'\nimport { CurrentUserProvider } from '@balance/lib/contexts'\n\nimport { NotificationMonitor } from './Notification'\nimport NoMatch from './NoMatch/NoMatch'\nimport SignInContainer from './User/SignInContainer'\nimport SignOutContainer from './User/SignOutContainer'\nimport SignUpContainer from './User/SignUpContainer'\nimport SignInHelpContainer from './User/SignInHelpContainer'\nimport ResetPasswordContainer from './User/ResetPasswordContainer'\nimport ConfirmAccountContainer from './User/ConfirmAccountContainer'\nimport DashboardContainer from './User/DashboardContainer'\nimport InactiveContainer from './User/InactiveContainer'\nimport OnboardingContainer from './User/OnboardingContainer'\n// import AccessDeniedContainer from './User/AccessDeniedContainer'\nimport HelpContainer from './Generic/HelpContainer'\n\nimport ProfileEditContainer from './Profile/ProfileEditContainer'\nimport ProfileResultsContainer from './Profile/ProfileResultsContainer'\nimport PaymentEditContainer from './Payment/PaymentEditContainer'\nimport PaymentDetailContainer from './Payment/PaymentDetailContainer'\nimport ProfileMealsContainer from './Profile/ProfileMealsContainer'\nimport MealPlanContainer from './Meals/MealPlanContainer'\nimport MealPrepContainer from './Meals/MealPrepContainer'\nimport RecipeListContainer from './Recipe/RecipeListContainer'\nimport RecipeDetailContainer from './Recipe/RecipeDetailContainer'\nimport RecipeEditContainer from './Recipe/RecipeEditContainer'\nimport GroceryListContainer from './Meals/GroceryListContainer'\nimport PageContainer from './Generic/PageContainer'\n\nimport { Footer, Header } from '../components/Global'\nimport { Analytics } from '../components/Tracking'\n\nimport { ErrorBoundary } from '../components/Error'\nimport AccessDenied from '../components/User/AccessDenied'\n\ntype Props = {}\ntype State = {\n lastFetchedAt: number,\n // minContainerHeight: number,\n}\n\nconst currentUserStatus = {\n status: '',\n authenticated: false,\n paid: false,\n onboarded: [],\n}\n\n// const UnauthenticatedOnlyRoute = ({ component: Component, user, ...rest }) => (\n// (\n// currentUserStatus.authenticated === false ? : \n// )} />\n// )\n\nconst AuthenticatedRoute = ({ component: Component, user, ...rest }) => (\n (\n currentUserStatus.authenticated === true ? : \n )} />\n)\n\nconst PaidRoute = ({ component: Component, user, ...rest }) => (\n (\n currentUserStatus.authenticated === true && currentUserStatus.paid === true\n ? \n : \n )} />\n)\n\nclass AppRouter extends PureComponent {\n static defaultProps = {}\n state = {\n orientation: 'portrait',\n lastFetchedAt: 0,\n // minContainerHeight: 400, // set a sane default\n }\n\n goto = (url) => {\n if (url) {\n this.props.history.replace(url)\n }\n }\n\n readDeviceOrientation = () => {\n let { orientation } = this.state\n // if (window.orientation) {\n // console.log('window.orientation', window.orientation)\n // if (Math.abs(window.orientation) === 90) {\n // orientation = 'landscape'\n // } else {\n // orientation = 'portrait'\n // }\n // } else {\n const vw = window.innerWidth\n const vh = window.innerHeight\n // console.log('window dimensions', vw, vh)\n if (vw > vh) {\n orientation = 'landscape'\n } else {\n orientation = 'portrait'\n }\n\n // }\n this.setState({ orientation }, this.forceUpdate)\n // console.log('orientation now', this.state.orientation)\n }\n\n updateDeviceOrientation = debounce(this.readDeviceOrientation, 100)\n\n componentDidMount (): void {\n this.readDeviceOrientation()\n window.addEventListener('resize', this.updateDeviceOrientation)\n window.addEventListener('onorientationchange', this.updateDeviceOrientation)\n window.addEventListener('ondeviceorientation', this.updateDeviceOrientation)\n }\n\n componentWillUnmount (): void {\n window.removeEventListener('resize', this.updateDeviceOrientation)\n window.removeEventListener('onorientationchange', this.updateDeviceOrientation)\n window.removeEventListener('ondeviceorientation', this.updateDeviceOrientation)\n }\n\n // doUpdateHeight = () => {\n // const windowH = window.innerHeight\n // // const fullPageRect = document.getElementById('root').getBoundingClientRect()\n // const headerRect = document.querySelector('.app > header').getBoundingClientRect()\n // const headerH = headerRect.height\n // const footerRect = document.querySelector('.app > footer').getBoundingClientRect()\n // let footerH = footerRect.height\n // // if (footerH > 110) { // magic number\n // // footerH = footerH + 100\n // // }\n // const staticH = headerH + footerH\n // const pageRect = document.getElementById('page').getBoundingClientRect()\n // const containerH = pageRect.height\n // // const minH = Math.max(containerH, windowH - staticH)\n // const minH = windowH - staticH\n // // console.log('heights', { windowH, minH, containerH, staticH, headerH, footerH })\n // if (minH !== this.state.minContainerHeight && minH < containerH) {\n // this.setState({ minContainerHeight: minH })\n // }\n // }\n //\n // updateHeight = debounce(this.doUpdateHeight, 150)\n\n // componentDidMount (): void {\n // this.updateHeight()\n // window.addEventListener('resize', this.updateHeight)\n // }\n //\n // componentWillUnmount (): void {\n // window.removeEventListener('resize', this.updateHeight)\n // }\n\n // componentDidUpdate (prevProps: Readonly

, prevState: Readonly, snapshot: SS): void {\n // this.updateHeight()\n // }\n\n render () {\n // const { minContainerHeight } = this.state\n // console.log('minContainerHeight', minContainerHeight)\n const path = get(this.props, 'location.pathname')\n const isMainScreen = ['/meal-plan', '/meal-prep', '/grocery-list'].includes(path)\n // console.log('path', path)\n\n // const linkState = get(this.props, 'location.state', {})\n const reloadUser = get(this.props, 'location.state.reloadUser', false)\n // console.log('app router path', path, reloadUser, this.props)\n const skip = ['/logout'].indexOf(path) !== -1\n // const cachePolicy = ['/asdf', '/login'].indexOf(path) !== -1 ? 'cache-and-network' : 'cache-first'\n // console.log('cachePolicy', cachePolicy)\n const fetchPolicy = reloadUser ? 'network-only' : 'cache-first'\n // console.log('fetchPolicy', fetchPolicy)\n return (\n \n {({ data, loading, error, refetch, ...rest }) => {\n // console.log('AppRouter render prop', data, loading, error, this.state, this.props, rest)\n const user = get(data, 'currentUser')\n const loggedIn = get(user, 'loggedIn')\n const hasPlanAccess = get(user, 'hasPlanAccess')\n const onboarded = get(user, 'onboarded')\n\n currentUserStatus.status = get(user, 'status')\n currentUserStatus.authenticated = loggedIn\n currentUserStatus.paid = hasPlanAccess // active or trial\n currentUserStatus.onboarded = onboarded\n\n const doRefetch = () => {\n // console.log('current user refetch called()')\n const now = new Date()\n const gap = this.state.lastFetchedAt > 0 ? now - this.state.lastFetchedAt : 1000\n // console.log('gap', gap, this.state.lastFetchedAt)\n if (refetch && gap > 500) {\n // console.log('running doRefetch')\n this.setState({ lastFetchedAt: now }, refetch)\n // refetch()\n }\n }\n\n if (reloadUser) {\n const now = new Date()\n const gap = this.state.lastFetchedAt > 0 ? now - this.state.lastFetchedAt : 1000\n // console.log('gap', gap, this.state.lastFetchedAt)\n if (refetch && gap > 500) {\n // console.log('reloading user ....')\n refetch()\n }\n }\n\n // console.log('AppRouter.user', get(user, 'email'))\n const useNotifications = loggedIn && !!window.cordova\n // console.log('AppRouter.init', loggedIn, path)\n const userStart = (loggedIn && !user.profile) ? '/profile/demo' : '/meal-plan'\n const appClass = window.cordova ? 'app--cordova' : 'app--web'\n const showHelp = loggedIn && isMainScreen\n return (\n \n \n

\n
\n\n {loading || }\n\n
\n\n \n\n \n {loading && (\n
\n
Loading ...
\n
\n )}\n\n {error && (\n
\n
ERROR: {error.message}
\n
\n )}\n\n {!loading && !error && (\n \n \n \n \n \n \n \n \n \n \n (\n loggedIn ? (\n \n ) : (\n \n )\n )} />\n (\n \n )} />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n \n )}\n
\n
\n
\n
\n \n \n )\n }}\n \n )\n }\n}\n\nexport default withRouter(AppRouter)\n","import React, { Component } from 'react'\nimport { BrowserRouter, HashRouter } from 'react-router-dom'\n\nimport { ApolloProvider } from 'react-apollo'\n\nimport './styles/global.css'\n\nimport CssBaseline from '@material-ui/core/CssBaseline'\nimport { MuiThemeProvider } from '@material-ui/core/styles'\nimport Typography from '@material-ui/core/Typography'\n\nimport { getClient } from '@balance/lib/config/apollo'\nimport { theme } from './styles'\n\nimport AppRouter from './containers/AppRouter'\nimport { ErrorBoundary } from './components/Error'\n\nconst ReactRouter = window.cordova ? HashRouter : BrowserRouter\n\nclass App extends Component {\n\n client = null\n\n constructor () {super(); this.client = getClient()}\n\n render () {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default App\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\n\nconst ALLOW_ENV_CHANGING = false\n\n// source: https://stackoverflow.com/a/30071105\nconst onAppend = function (elem, f) {\n if (ALLOW_ENV_CHANGING) {\n var observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (m) {\n if (m.addedNodes.length) {\n f(m.addedNodes)\n }\n })\n })\n observer.observe(elem, { childList: true })\n }\n}\n\nif (ALLOW_ENV_CHANGING) {\n onAppend(document.body, function (added) {\n console.log(added) // [p]\n startApp()\n })\n}\n\nfunction preStart () {\n if (!ALLOW_ENV_CHANGING) {\n startApp()\n return\n }\n\n console.log('preStart', window.NativeStorage)\n if (window.cordova && window.NativeStorage) {\n console.log('preStart check 2')\n window.NativeStorage.getItem('use_environment', changeEnvironment, nativeStorageFailed)\n // window.NativeStorage.getItem('use_staging', changeToStaging, nativeStorageFailed)\n // window.NativeStorage.getItem('use_dev', changeToDev, nativeStorageFailed)\n } else {\n startApp()\n // loadEnvFile('./env.js')\n }\n}\n\nconst changeEnvironment = (env) => {\n if (!ALLOW_ENV_CHANGING) {\n startApp()\n return\n }\n console.log('changeEnvironment: got data!', env)\n if (env && ['production', 'staging', 'dev'].includes(env)) {\n console.log('setting up environment ....')\n console.log('current: ', window.BOD_API_URL)\n if (env === 'staging') {\n if (window.BOD_STAGING_BASE_URL) {window.BOD_BASE_URL = window.BOD_STAGING_BASE_URL}\n if (window.BOD_STAGING_API_URL) {window.BOD_API_URL = window.BOD_STAGING_API_URL}\n if (window.BOD_STAGING_ENV) {window.BOD_ENV = window.BOD_STAGING_ENV}\n } else if (env === 'dev') {\n if (window.BOD_DEV_BASE_URL) {window.BOD_BASE_URL = window.BOD_DEV_BASE_URL}\n if (window.BOD_DEV_API_URL) {window.BOD_API_URL = window.BOD_DEV_API_URL}\n if (window.BOD_DEV_ENV) {window.BOD_ENV = window.BOD_DEV_ENV}\n } else {\n if (window.BOD_PROD_BASE_URL) {window.BOD_BASE_URL = window.BOD_PROD_BASE_URL}\n if (window.BOD_PROD_API_URL) {window.BOD_API_URL = window.BOD_PROD_API_URL}\n if (window.BOD_PROD_ENV) {window.BOD_ENV = window.BOD_PROD_ENV}\n }\n console.log('API_URL now: ', window.BOD_API_URL)\n console.log('BASE_URL now: ', window.BOD_BASE_URL)\n } else {\n console.log('using production env')\n\n // loadEnvFile('./env.js')\n }\n\n startApp()\n}\n\n// const loadEnvFile = (filename) => {\n// const script = document.createElement('script')\n// script.src = filename\n// document.body.appendChild(script)\n//\n// // setTimeout(startApp, 500)\n// // startApp()\n// }\n\nconst nativeStorageFailed = (data) => {\n console.log('failed to get data!', data)\n // loadEnvFile('./env.js')\n startApp()\n}\n\nfunction startApp () {\n ReactDOM.render(, document.getElementById('root'))\n}\n\nif (window.cordova) {\n document.addEventListener('deviceready', preStart, false)\n} else {\n preStart()\n // startApp()\n}\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}