{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./contexts/program.tsx","webpack:///./util/state-variable-operation.ts","webpack:///./hooks/asset-loader.ts","webpack:///./actions/user.ts","webpack:///./network/user.ts","webpack:///./hooks/user.ts","webpack:///./hooks/analytics.ts","webpack:///./actions/reward.ts","webpack:///./contexts/reward.tsx","webpack:///./actions/session.ts","webpack:///./network/session.ts","webpack:///./hooks/session.ts","webpack:///./util/get-registration-object.ts","webpack:///./hooks/status.ts","webpack:///./contexts/session.tsx","webpack:///./components/routes/streak-root-1/index.tsx?bfa1","webpack:///./contexts/user.tsx","webpack:///./util/state-values.ts","webpack:///./util/url.ts","webpack:///./components/info/index.tsx","webpack:///./components/context-wrappers/error-wrapper/index.tsx","webpack:///./components/info/style.css","webpack:///./components/routes/main-error-root-1/index.tsx?0a48","webpack:///./contexts/router.tsx","webpack:///./components/routes/multi-step-root-1/index.tsx?9cda","webpack:///./hooks/reward.ts","webpack:///./network/reward.ts","webpack:///./util/sleep.ts","webpack:///../src/index.js","webpack:///./hooks/action-emitter.ts","webpack:///./hooks/router.ts","webpack:///./actions/router.ts","webpack:///./hooks/component-content-style-resolver.ts","webpack:///./components/loading-spinner/index.tsx","webpack:///./components/loading-spinner/style.css","webpack:///./util/api.ts","webpack:///./util/pluck.ts","webpack:///./util/format-program.ts","webpack:///./network/program.ts","webpack:///./hooks/program.ts","webpack:///../node_modules/nanoid/index.browser.js","webpack:///../node_modules/@preact/async-loader/async.js","webpack:///./components/routes/activtiy-game-root-1/index.tsx?76bf","webpack:///./components/routes/game-challenge-root-1/index.tsx?0735","webpack:///./actions/client-configurations.ts","webpack:///./network/client-configurations.ts","webpack:///./hooks/client-configurations.ts","webpack:///./util/localstorage.ts","webpack:///../src/util.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/options.js","webpack:///../src/constants.js","webpack:///../src/diff/catch-error.js","webpack:///./util/regex.ts","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///./hooks/common-state.ts","webpack:///./components/context-wrappers/wallet-wrapper/index.tsx","webpack:///./hooks/wallet-screen-manager.ts","webpack:///./components/context-wrappers/reward-wrapper/index.tsx","webpack:///./hooks/reward-screen-manager.ts","webpack:///./components/context-wrappers/program-wrapper/index.tsx","webpack:///./hooks/program-screen-manager.ts","webpack:///./components/context-wrappers/program-nudge-wrapper/index.tsx","webpack:///./hooks/program-nudge-screen-manager.ts","webpack:///./components/context-wrappers/client-guard-wrapper/index.tsx","webpack:///./hooks/client-guard-screen-manager.ts","webpack:///./components/main/index.tsx","webpack:///./components/portal/bottom-sheet/style.css","webpack:///./components/portal/bottom-sheet/index.tsx","webpack:///./components/portal/full-page/style.css","webpack:///./components/portal/full-page/index.tsx","webpack:///./components/portal/popup/style.css","webpack:///./components/portal/popup/index.tsx","webpack:///./components/portal/style.css","webpack:///./components/routes/wallet-root-1/index.tsx?a775","webpack:///./components/routes/direct-root-1/index.tsx?3945","webpack:///./components/routes/simple-game-root-1/index.tsx?b508","webpack:///./components/routes/intro-root-2/index.tsx?c091","webpack:///./components/routes/intro-root-1/index.tsx?3353","webpack:///./components/routes/reward-root-1/index.tsx?77ba","webpack:///./components/theme-wrapper/index.tsx","webpack:///./components/routes/client-guard-root-1/index.tsx?dc78","webpack:///./components/portal/index.tsx","webpack:///./hooks/external-event-listener.ts","webpack:///./index.ts","webpack:///./components/app.tsx","webpack:///./hooks/external-action-handler.ts","webpack:///./util/conditional-operation.ts","webpack:///./actions/program.ts","webpack:///./components/context-wrappers/loading-wrapper/index.tsx","webpack:///./util/apply-theme.ts","webpack:///./components/routes/referral-root1/index.tsx?f89a","webpack:///./contexts/client-configurations.tsx","webpack:///./util/apply-theme-configurations.ts","webpack:///./util/routes-details.ts","webpack:///./hooks/auto-refresh.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onerror","onload","event","errorType","realHref","target","err","Error","code","request","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","src","jsonpScriptSrc","error","clearTimeout","chunk","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","programsReducer","state","action","newProgramMap","payload","programMap","newState","allIds","byId","allProgramsLoaded","id","program","campaignId","ProgramsProvider","props","useReducer","initialState","dispatch","useMemo","ProgramsContext","Provider","children","referralLink","createContext","getVariableValue","variable","result","initialOperand","type_id","constantValue","pluckValue","stateValue","operations","operation","replaceVariablesInText","Math","round","operand","JSON","stringify","replace","variableValues","map","replaceKeys","log","fallbackText","useAssetLoader","fragment","useStatus","status","useEffect","loadImageAssets","srcs","complete","count","inc","forEach","img","Image","fetchUser","token","url","process","res","body","parsedBody","success","user","useUser","useSession","context","useContext","UserContext","useUserInitilizer","setStatus","userDispatch","session","requestUser","store","useUserActionHandler","onAction","FlushPendingEvents","delayRequest","obj","reportingVersion","sendV3Analytics","analyticsObj","sendV4Analytics","pendingEvents","analyticObj","v3Helper","default","v4Helper","useAnalytics","reward","commonDetails","useCommonState","clientConfig","useClientConfigurations","layout","analytics","walletAnalyticsVersion","currentPage","page","content","parseInt","setRewardsAction","setRewardAction","consumeRewardAction","retryRewardAction","consumeGenerateRewardAction","rewardsReducer","newRewardMap","rewardMap","allRewardsLoaded","rewardUserId","theme","RewardsProvider","RewardsContext","setToken","fetchToken","writeKey","identification","attributes","userId","anonymousId","userState","localStorage","getItem","nanoid","setItem","generateUserId","reqBody","customAttributes","gluAttributes","post","fetchBannerData","requestUserToken","userIdentification","userAttributes","SessionContext","useTokenInitilizer","dispatchSessionAction","queryParams","getRouteQueryParams","writekey","fetchUserToken","matches","userName","phone","email","firebaseToken","apnsDeviceToken","referredBy","platform","toLowerCase","app","includes","split","getRegistrationDataFromObject","location","useQueryParamsInitilizer","useQueryParameter","useSessionActionHandler","initStatus","useState","sessionReducer","SessionProvider","session_start_time","Date","cb","userReducer","isLoggedIn","UserProvider","gluId","cookieId","appVersion","client","referralCode","profile","firstName","lastName","age","city","country","timezone","identities","facebook_id","google_id","android_id","ios_id","clevertap_id","mparticle_id","segment_id","moengage_id","sessionId","getStateValues","stateMap","stateToBeFilled","select","getStateValuesLegacy","referenceId","elementState","layoutSlotInfo","extraData","emitEventV2","eventName","eventStr","postMessage","callback","parent","webkit","messageHandlers","Info","className","style","ErrorWrapper","onRouterAction","useRouterActionHandler","onExternalAction","useExternalActionHandler","mainError","selectedFragment","root","rootId","screen","details","routerReducer","actionPage","previousSamePageIndex","findIndex","currentId","startClose","newCurrentId","history","pushState","toString","close","filter","isNative","back","RouterProvider","onpopstate","popPageStartAction","RouterContext","CurrentPageProvider","CurrentPageContext","isActive","rewardsState","programsState","getSelectedRewardIndexFromScore","slots","score","selectedSlotIndex","maxscore","fetchAllRewards","rewards","configParam","URLSearchParams","currentDate","floor","valueOf","programLayout","analyticsMeta","experienceConsumed","slotReward","rewardProperties","couponExpiry","expiry","hidden","rewardExpiry","redeemReward","sleep","seenStatus","useRewards","useRewardsFilter","ref","refresh","requestRewards","rewardState","rewardDispatch","useAutoRefresh","skipLoading","getSingleIdFromFilter","filterRewards","useSingleRewardFilter","requestReward","filterSingleReward","rewardStatus","didRewardMatch","activityId","rewardType","userAId","userBId","couponExpired","expired","rewardExpired","removeNoRewardType","experience","types","keys","condition","leftValue","leftOperand","rightValue","rightOperand","checkCondition","operator","matched","useRewardActionHandler","actionHandler","requestConsumeReward","onComplete","generateConsumeRewardParams","params","newReward","seenReward","requestRetryReward","generateRetryRewardParams","requestGenerateConsumeReward","generateConsumeGenerateRewardParams","requestSimpleRetryReward","generateNewReward","Number","isInteger","rewardIndex","quiz","refreshReward","createNewReward","time","getHookState","index","options","__h","currentComponent","currentHook","hooks","__","__V","EMPTY","invokeOrReturn","reducer","init","hookState","currentIndex","_reducer","__c","currentValue","__N","nextValue","setState","_hasScuFromHooks","prevScu","shouldComponentUpdate","__H","stateHooks","x","every","this","shouldUpdate","hookItem","args","argsChanged","_pendingArgs","useLayoutEffect","useRef","initialValue","current","useImperativeHandle","createHandle","concat","factory","useCallback","provider","sub","useDebugValue","formatter","useErrorBoundary","errState","componentDidCatch","errorInfo","useId","h","charCodeAt","hash","__v","_mask","flushAfterPaintEffects","component","afterPaintEffects","__P","invokeCleanup","invokeEffect","__e","afterNextFrame","raf","done","HAS_RAF","cancelAnimationFrame","requestAnimationFrame","hook","comp","cleanup","oldArgs","newArgs","some","arg","f","previousComponent","prevRaf","oldBeforeDiff","oldBeforeRender","__r","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","__b","vnode","Fragment","indexOf","commitQueue","hasErrored","useActionEmitter","actionHandlers","injectState","cta","ctaState","storeCtaV2","transformToStoreCtaV2","triggeringAction","getPlatformAction","Array","isArray","sendNextAction","resolveActionPayload","pushPageAction","ui","animation","css","container","popPageAction","replacePageAction","link","payloadStateMap","newPayload","useRouter","useCurrentPage","SIZE","MAX_SIZE_BREAK_POINTS","useComponentContentStyleResolver","cssBreakpoints","size","getSize","breakPointStyles","bp","patchValue","innerWidth","LoadingSpinner","height","width","loadingSpinner","class","spinner","viewBox","xmlns","path","fill","cx","cy","CenterLoadingSpinner","display","alignItems","justifyContent","http","response","contentType","fetch","headers","json","ex","ok","method","Request","getChildren2","targetObject","properties","else","formatProgram","isCompleted","referral","stepsCompleted","activity","accepted","checkAccepted","banner","programExpiry","activities","programType","isExpired","tier","userB","title","rule","level","levelReward","selfReferral","getSelf","otherReferrals","others","tierCount","tiers","getLevel","getReferralState","splice","challenge","LEGACY_experienceTypeMatch","bannerLayout","nudge","campaignName","isAccepted","self","valid","exp","expiresOn","activites","limits","campaign","completedCount","cardImageSrc","totalSteps","completedSteps","subTitle","fetchAllPrograms","programs","cleanedPrograms","formattedProgram","programsMap","gluState","choice","usePrograms","streak","gamechallenge","multiStep","useProgramsFilter","requestPrograms","programState","programDispatch","setProgramsAction","filterPrograms","useSingleProgramFilter","requestProgram","filterSingleProgram","mainStatus","useProgramActionHandler","acceptChallenge","checkInStreak","didProgramMatch","crypto","getRandomValues","Uint8Array","reduce","byte","toUpperCase","getPreviousSibling","inner","__k","end","child","dom","async","load","AsyncComponent","Component","componentWillMount","mod","render","prev","me","nextSibling","_parentDom","firstChild","localName","dangerouslySetInnerHTML","PENDING","preload","constructor","updateClientConfigurations","fetchConfigurations","config","end_point","configData","wallet","loading","mock","ClientConfigurationContext","setToLocalStorage","now","setHours","getHours","savedAt","expiresAt","useClientConfigurationsInitilizer","configDispatch","storageDataString","storageData","parse","getFromLocalStorage","networkConfig","useWalletConfig","useBackButtonConfig","backButton","assign","removeNode","node","normalizedProps","arguments","defaultProps","createVNode","original","__d","vnodeId","createRef","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","rerenderQueue","prevDebounce","debounceRendering","queue","sort","a","b","oldVNode","oldDom","parentDom","diff","__n","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","reorderChildren","placeChild","applyRef","tmp","toChildArray","out","nextDom","sibDom","outer","insertBefore","diffProps","setStyle","setProperty","IS_NON_DIMENSIONAL","test","oldValue","useCapture","cssText","addEventListener","eventProxyCapture","eventProxy","removeEventListener","removeAttribute","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","componentContext","renderHook","newType","contextType","__E","doRender","__s","getDerivedStateFromProps","componentDidMount","componentWillReceiveProps","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","oldHtml","newHtml","nodeType","createTextNode","createElementNS","is","childNodes","__html","innerHTML","hydrate","checked","parentVNode","skipRemove","componentWillUnmount","replaceNode","cloneElement","defaultValue","contextId","Consumer","contextValue","subs","ctx","_props","old","ctor","handled","getDerivedStateFromError","update","forceUpdate","replaceAll","search","replacement","RegExp","dict","Preact","interopDefault","normalizeURL","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","firstElementChild","preRenderData","inlineDataElement","querySelector","decodeURI","CLI_DATA","currentURL","pathname","WalletWrapper","useWalletScreenManager","onAnalyticsAction","rootTypeId","RewardWrapper","rewardLoadStatus","setScreen","listener","onRewardScreenAction","game","intro","useRewardFragmentManager","pageName","onRewardAction","ProgramWrapper","programLoadStatus","useProgramFragmentManager","programStatus","onProgramAction","ProgramNudgeWrapper","useProgramNudgeFragmentManager","ClientGuardWrapper","__HACKY__CLIENT_GUARD","useClientGuardScreenManager","getPageContent","wrapperType","getRoutePath","firstPath","getWrapperType","BottomSheet","isOpen","setOpen","isDragging","toggleDragging","sheetRef","startPoint","lastPoint","currentPoint","currentTransform","animationRef","scrolled","prevent","cancelable","preventDefault","stopPropagation","startAnimation","transform","stopAnimation","onClick","onTouchEnd","onTouchMove","onTouchStart","backDrop","onAnimationEnd","onClose","touches","clientY","transition","scrollTop","abs","dash","FullPage","canShow","toggleShow","Popup","ThemeWrapper","sessionState","variables","applyTheme","Portal","pop","pageStack","unshift","zIndex","hidePreviousPages","PageFrame","PageContent","Main","onUserAction","onSessionAction","emit","onRouterEvent","tokenStatus","confgStatus","isLoaded","App","openInSameTab","open","getConditionalResult","caseMap","cases","singleCase","didMatch","conditions","defaultResult","nestedPropertyName","acceptProgramAction","LoadingWrapper","mainLoading","loadedFonts","loadFont","font","append","loadGoogleFont","fontFaces","variants","v","fontFace","family","weight","loadCustomFont","isGlobal","sessionMode","q","darkMode","fonts","primaryFont","primary","secondaryFont","secondary","deviceVariables","device","paletteVariables","custom","otherVariables","configReducer","themeData","variablesMap","allVariables","fallback","entries","styles","applyThemeConfig","__HACKY__THEME","ClientConfigurationsProvider","initialConfigState","cache","callbacks"],"mappings":"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","file":"bundle.e175e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t5: 0\n \t};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t5: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"1\":\"route-game-challenge-root-1~route-simple-game-root-1\",\"7\":\"route-activtiy-game-root-1\",\"8\":\"route-client-guard-root-1\",\"9\":\"route-direct-root-1\",\"10\":\"route-game-challenge-root-1\",\"11\":\"route-intro-root-1\",\"12\":\"route-intro-root-2\",\"13\":\"route-main-error-root-1\",\"14\":\"route-multi-step-root-1\",\"15\":\"route-plane-banner-root-1\",\"16\":\"route-referral-root1\",\"17\":\"route-reward-card-root-1\",\"18\":\"route-reward-root-1\",\"19\":\"route-simple-game-root-1\",\"20\":\"route-streak-root-1\",\"21\":\"route-wallet-root-1\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"b2303\",\"1\":\"d476f\",\"2\":\"2bdcc\",\"3\":\"b0c8b\",\"4\":\"912c7\",\"7\":\"40410\",\"8\":\"09bbf\",\"9\":\"f2630\",\"10\":\"9583c\",\"11\":\"86b20\",\"12\":\"45516\",\"13\":\"11e10\",\"14\":\"ef8a5\",\"15\":\"b2543\",\"16\":\"8ab8c\",\"17\":\"41b69\",\"18\":\"f538d\",\"19\":\"0f8a5\",\"20\":\"92c68\",\"21\":\"ec828\",\"22\":\"9543e\",\"23\":\"0268c\",\"24\":\"57058\",\"25\":\"5b49e\",\"26\":\"2aa4f\",\"27\":\"1f739\",\"28\":\"99ade\",\"29\":\"c08c5\",\"30\":\"454bc\",\"31\":\"0e487\",\"32\":\"7d98e\",\"33\":\"d2462\",\"34\":\"157e8\",\"35\":\"bff63\",\"36\":\"006ad\",\"37\":\"7dbe4\",\"38\":\"a24fa\",\"39\":\"389ca\",\"40\":\"a384f\",\"41\":\"6e51c\",\"42\":\"b9fdc\",\"43\":\"767f2\",\"44\":\"c472a\",\"45\":\"d674b\",\"46\":\"1401c\",\"47\":\"a20af\",\"48\":\"9a187\",\"49\":\"5a89a\",\"50\":\"59678\",\"51\":\"a0b08\",\"52\":\"49109\",\"53\":\"abff1\",\"54\":\"a40ef\",\"55\":\"238b9\",\"56\":\"c5c54\",\"57\":\"6cda3\",\"58\":\"46e93\",\"59\":\"dd5ac\",\"60\":\"23fe0\",\"61\":\"bd981\",\"62\":\"d45e8\",\"63\":\"faf53\",\"64\":\"71c6f\",\"65\":\"35518\",\"66\":\"41e98\",\"67\":\"b3d97\",\"68\":\"ef924\",\"69\":\"e58b9\",\"70\":\"cb4c2\",\"71\":\"56441\",\"72\":\"49e06\",\"73\":\"ddcf3\",\"74\":\"8623d\",\"75\":\"0030c\",\"76\":\"c1c9f\",\"77\":\"29a81\",\"78\":\"6a2c2\",\"79\":\"d97d5\",\"80\":\"4e820\",\"81\":\"10c58\",\"82\":\"39733\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"0\":1,\"1\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"38\":1,\"39\":1,\"40\":1,\"43\":1,\"44\":1,\"45\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"61\":1,\"62\":1,\"63\":1,\"64\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":1,\"75\":1,\"76\":1,\"77\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"1\":\"route-game-challenge-root-1~route-simple-game-root-1\",\"7\":\"route-activtiy-game-root-1\",\"8\":\"route-client-guard-root-1\",\"9\":\"route-direct-root-1\",\"10\":\"route-game-challenge-root-1\",\"11\":\"route-intro-root-1\",\"12\":\"route-intro-root-2\",\"13\":\"route-main-error-root-1\",\"14\":\"route-multi-step-root-1\",\"15\":\"route-plane-banner-root-1\",\"16\":\"route-referral-root1\",\"17\":\"route-reward-card-root-1\",\"18\":\"route-reward-root-1\",\"19\":\"route-simple-game-root-1\",\"20\":\"route-streak-root-1\",\"21\":\"route-wallet-root-1\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"0ac19\",\"1\":\"c5da9\",\"2\":\"31d6c\",\"3\":\"31d6c\",\"4\":\"31d6c\",\"7\":\"f96d5\",\"8\":\"3ba37\",\"9\":\"a7d3a\",\"10\":\"8d73c\",\"11\":\"e5716\",\"12\":\"9ba5d\",\"13\":\"3ba37\",\"14\":\"c3e61\",\"15\":\"eba1e\",\"16\":\"6ee16\",\"17\":\"8ae8b\",\"18\":\"a407a\",\"19\":\"4a504\",\"20\":\"4c9d3\",\"21\":\"4be6e\",\"22\":\"7718e\",\"23\":\"7d5af\",\"24\":\"4e576\",\"25\":\"d23c9\",\"26\":\"9bb40\",\"27\":\"e5caf\",\"28\":\"277b6\",\"29\":\"fd64a\",\"30\":\"dcc73\",\"31\":\"31d6c\",\"32\":\"31d6c\",\"33\":\"beb99\",\"34\":\"647d4\",\"35\":\"10def\",\"36\":\"3ba37\",\"37\":\"31d6c\",\"38\":\"c2ca9\",\"39\":\"be82f\",\"40\":\"a99a9\",\"41\":\"31d6c\",\"42\":\"31d6c\",\"43\":\"ceecb\",\"44\":\"5328c\",\"45\":\"1ec48\",\"46\":\"31d6c\",\"47\":\"a86fe\",\"48\":\"c42c2\",\"49\":\"3536d\",\"50\":\"05660\",\"51\":\"8fdc4\",\"52\":\"b410f\",\"53\":\"f43f6\",\"54\":\"abbfe\",\"55\":\"a6b08\",\"56\":\"c526b\",\"57\":\"c40dc\",\"58\":\"42ad7\",\"59\":\"e7378\",\"60\":\"aada8\",\"61\":\"56f24\",\"62\":\"a964a\",\"63\":\"1892b\",\"64\":\"11c4d\",\"65\":\"a638e\",\"66\":\"f440c\",\"67\":\"cbf29\",\"68\":\"05c63\",\"69\":\"59e56\",\"70\":\"01c9b\",\"71\":\"1feb0\",\"72\":\"55dcb\",\"73\":\"09ce7\",\"74\":\"49aab\",\"75\":\"0414f\",\"76\":\"8b7dd\",\"77\":\"0c334\",\"78\":\"31d6c\",\"79\":\"31d6c\",\"80\":\"31d6c\",\"81\":\"31d6c\",\"82\":\"31d6c\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tvar onLinkComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks.\n \t\t\t\t\tlinkTag.onerror = linkTag.onload = null;\n \t\t\t\t\tif (event.type === 'load') {\n \t\t\t\t\t\tresolve();\n \t\t\t\t\t} else {\n \t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n \t\t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n \t\t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\t\terr.type = errorType;\n \t\t\t\t\t\terr.request = realHref;\n \t\t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\t\treject(err);\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tdocument.head.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","import { IProgramActions } from \"../actions/program\";\nimport { IProgram } from \"../interfaces\";\nimport { IContext } from \"../interfaces/store-action\";\nimport { createContext, h } from \"preact\";\nimport { useMemo, useReducer } from \"preact/hooks\";\n\nexport interface IProgramsState {\n allIds: string[];\n byId: {\n [id: string]: IProgram;\n };\n allProgramsLoaded: boolean;\n referralLink: string;\n}\n\nconst initialState: IProgramsState = {\n allIds: [],\n byId: {},\n allProgramsLoaded: false,\n referralLink: \"**REFERRAL_LINK**\",\n};\n\nfunction programsReducer(\n state: IProgramsState,\n action: IProgramActions\n): IProgramsState {\n switch (action.type) {\n case \"SET PROGRAMS\": {\n const newProgramMap = action.payload.programMap;\n\n const newState: IProgramsState = {\n ...state,\n allIds: [...state.allIds],\n byId: { ...state.byId },\n allProgramsLoaded: action.payload.allProgramsLoaded,\n };\n\n for(let i = 0; i < newProgramMap.allIds.length; i++) {\n const id = newProgramMap.allIds[i];\n if(!state.byId[id]) {\n newState.allIds.push(id);\n }\n newState.byId[id] = newProgramMap.byId[id];\n }\n\n return newState;\n }\n case \"SET PROGRAM\": {\n const newState: IProgramsState = {\n ...state,\n byId: { ...state.byId },\n };\n\n if(!state.byId[action.payload.program.campaignId]) {\n newState.allIds = [...newState.allIds, action.payload.program.campaignId]\n }\n\n newState.byId[action.payload.program.campaignId] = {...action.payload.program}\n return newState;\n }\n }\n}\n\nexport const ProgramsContext =\n createContext>(undefined);\n\nexport function ProgramsProvider(props: { children?: any }) {\n const [state, dispatch] = useReducer(\n programsReducer,\n initialState\n );\n\n const value = useMemo(() => ({ state, dispatch }), [state]);\n\n return (\n \n {props.children}\n \n );\n}\n","import { pluckValue } from \"./conditional-operation\";\nimport { replaceKeys } from \"./regex\";\n\nexport interface IOperand {\n type_id: \"CONSTANT\" | \"STATE_VALUE\";\n constantValue?: IConstantType;\n stateValue?: (string | string[])[];\n}\n\ninterface IADD {\n type_id: \"ADD\";\n operand: IOperand;\n}\n\ninterface ISubtract {\n type_id: \"SUBTRACT\";\n operand: IOperand;\n}\n\ninterface IDivide {\n type_id: \"DIVIDE\";\n operand: IOperand;\n round?: boolean;\n}\n\ninterface IMultiply {\n type_id: \"MULTIPLY\";\n operand: IOperand;\n}\n\ninterface IRound {\n type_id: \"ROUND\";\n}\n\ninterface IPrepend {\n type_id: \"PREPEND\";\n operand: IOperand;\n}\n\ninterface IAppend {\n type_id: \"APPEND\";\n operand: IOperand;\n}\n\ninterface IReplace {\n type_id: \"REPLACE\";\n map: {\n [pattern: string]: IVariable;\n };\n fallbackText: string;\n}\n\nexport type IOperation =\n | IADD\n | ISubtract\n | IMultiply\n | IDivide\n | IRound\n | IAppend\n | IPrepend\n | IReplace;\n\nexport interface IVariable {\n initialOperand: IOperand;\n operations?: IOperation[];\n}\n\nexport function getVariableValue(state: Object, variable: IVariable) {\n try {\n let result = null;\n let initialValue = null;\n if (variable.initialOperand.type_id === \"CONSTANT\") {\n initialValue = variable.initialOperand.constantValue;\n } else {\n initialValue = pluckValue(state, variable.initialOperand.stateValue);\n }\n\n result = initialValue;\n\n if (variable.operations && variable.operations.length) {\n for (let i = 0; i < variable.operations.length; i++) {\n const operation = variable.operations[i];\n if (operation.type_id === \"REPLACE\") {\n result = replaceVariablesInText(state, operation, result);\n } else if (operation.type_id === \"ROUND\") {\n result = Math.round(result);\n } else {\n let operand = null;\n if (operation.operand.type_id === \"CONSTANT\") {\n operand = operation.operand.constantValue;\n } else {\n operand = pluckValue(state, operation.operand.stateValue);\n }\n if (operation.type_id === \"ADD\") {\n result = result + operand;\n } else if (operation.type_id === \"DIVIDE\") {\n result = result / operand;\n } else if (operation.type_id === \"MULTIPLY\") {\n result = result * operand;\n } else if (operation.type_id === \"SUBTRACT\") {\n result = result - operand;\n }\n }\n }\n }\n\n if (result === undefined || result === null || result === \"\")\n throw \"invalid result obtained from variable: \" + JSON.stringify(variable);\n\n return result;\n } catch (e) {\n return undefined;\n console.log(e);\n }\n}\n\nexport function replaceVariablesInText(\n state: Object,\n replace: IReplace,\n target: string\n) {\n try {\n const variableValues: { [key: string]: any } = {};\n\n for (let key in replace.map) {\n variableValues[key] = getVariableValue(state, replace.map[key]);\n }\n\n return replaceKeys(target, variableValues);\n } catch (e) {\n console.log(e);\n return replace.fallbackText;\n }\n}\n","import { useEffect } from \"preact/hooks\";\nimport { IFragment } from \"../interfaces/fragment\";\nimport { useStatus } from \"./status\";\n\nexport const useAssetLoader = (fragment: IFragment) => {\n const [status, setStatus] = useStatus();\n\n useEffect(() => {\n }, [fragment]);\n\n return status;\n};\n\nexport const loadImageAssets = (srcs: string[], complete: () => void) => {\n if (srcs.length === 0) {\n complete();\n return;\n }\n let count = 0;\n const inc = () => {\n count++;\n if (count === srcs.length) {\n complete();\n }\n };\n srcs.forEach((src) => {\n const img = new Image();\n img.src = src;\n img.onload = inc;\n img.onerror = inc;\n });\n};\n","import { IAction } from \"../interfaces/store-action\";\nimport { IUser } from \"../interfaces/user\";\n\ntype ISetUserAction = IAction<\"USER\", \"USER_STORE SET USER\", { user: IUser }>;\nexport const setUserAction = (payload: { user: IUser }): ISetUserAction => {\n return {\n store: \"USER\",\n type: \"USER_STORE SET USER\",\n payload,\n };\n};\n\ntype IRequestUserAction = IAction<\"USER\", \"USER_STORE REQUEST USER\">;\nexport const requestUserAction = (): IRequestUserAction => {\n return {\n store: \"USER\",\n type: \"USER_STORE REQUEST USER\",\n payload: null,\n };\n};\n\nexport type IUserAction = ISetUserAction | IRequestUserAction;\n","import { IUser } from \"../interfaces/user\";\nimport { get } from \"../util/api\";\n\nexport const fetchUser = async (token: string): Promise => {\n const url = `${process.env.HOST_ENV}/user/v1/user/sdk/getUser`;\n try {\n const res = await get<{ success: boolean; data: { user: IUser } }>(\n url,\n token\n );\n const body = res.parsedBody;\n if (!res || !body || !body.success || !body.data)\n throw new Error(\"Error Fetching User\");\n\n if (body.data.user) return body.data.user;\n else throw new Error(\"User Not Found\");\n } catch (e) {\n console.log(e);\n throw new Error(\"Error Fetching User\");\n }\n};\n","import { IUserAction, setUserAction } from \"../actions/user\";\nimport { IUserState, UserContext } from \"../contexts/user\";\nimport { IDispatch } from \"../interfaces/dispatch\";\nimport { IStatus } from \"../interfaces/status\";\nimport { fetchUser } from \"../network/user\";\nimport { useSession } from \"./session\";\nimport { useContext, useEffect } from \"preact/hooks\";\nimport { useStatus } from \"./status\";\nimport { IActionHandler } from \"../interfaces/event-actions\";\n\nexport const useUser = (): [IUserState, IDispatch] => {\n const [sessionState] = useSession();\n const context = useContext(UserContext);\n if (context === undefined) {\n throw new Error(\"useUser must be used within a SessionProvider\");\n }\n return [context.state, context.dispatch];\n};\n\nexport const useUserInitilizer = (): [IStatus] => {\n const [status, setStatus] = useStatus();\n const [userState, userDispatch] = useUser();\n const [session] = useSession();\n\n useEffect(() => {\n if (session.token) {\n requestUser();\n }\n }, [session.token]);\n\n const requestUser = async () => {\n try {\n setStatus({ state: \"LOADING\" });\n if (!session.token) throw new Error(\"Token Not Found\");\n const user = await fetchUser(session.token);\n userDispatch(setUserAction({ user }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n setStatus({ state: \"LOAD_ERROR\", message: \"error fetching user\" });\n }\n };\n\n return [status];\n};\n\nexport const useUserActionHandler = (): [IStatus, typeof onAction] => {\n const [status, setStatus] = useStatus()\n const [userState, userDispatch] = useUser();\n\n const onAction: IActionHandler = async (action, details) => {\n if (action.store === \"USER\") {\n userDispatch(action);\n }\n };\n\n return [status, onAction];\n};\n","import { IProgram, IReward } from \"../interfaces\";\nimport { AllPageNames } from \"../interfaces/constants-mapper\";\nimport { IActionHandler } from \"../interfaces/event-actions\";\nimport { useClientConfigurations } from \"./client-configurations\";\nimport { useCommonState } from \"./common-state\";\n\ninterface IAnalyticsDetails {\n rootTypeId: string;\n rootId: string;\n reward?: IReward;\n program?: IProgram;\n pageName?: AllPageNames;\n}\n\nvar pendingEvents: { reportingVersion: number; analyticsObj: {} }[] = [];\n\nexport function FlushPendingEvents() {\n\n while (pendingEvents.length > 0) {\n let pendingObj = pendingEvents.shift();\n delayRequest(pendingObj);\n }\n\n function delayRequest(obj) {\n console.log(\"flush pending objects \", obj);\n setTimeout(() => {\n if (obj.reportingVersion === 3) {\n sendV3Analytics(obj.analyticsObj);\n } else {\n sendV4Analytics(obj.analyticsObj);\n }\n }, 1000);\n }\n\n const sendV3Analytics = async (analyticObj) => {\n try {\n if (!window[\"v3Helper\"]) {\n const v3Helper = (await import(\"../network/analytics-v3/transform\"))\n .default;\n window[\"v3Helper\"] = v3Helper;\n }\n window[\"v3Helper\"](analyticObj);\n } catch (e) {\n console.log(e);\n }\n };\n\n const sendV4Analytics = async (analyticObj) => {\n try {\n if (!window[\"v4Helper\"]) {\n const v4Helper = (await import(\"../network/analytics-v4/transform\"))\n .default;\n window[\"v4Helper\"] = v4Helper;\n }\n window[\"v4Helper\"](analyticObj);\n } catch (e) {\n console.log(e);\n }\n };\n}\n\nexport const useAnalytics = ({\n rootTypeId,\n rootId,\n pageName,\n reward,\n program,\n}: IAnalyticsDetails): [IActionHandler] => {\n const [commonDetails] = useCommonState();\n const [clientConfig] = useClientConfigurations();\n let reportingVersion = 3;\n if (reward && reward.layout?.reportingVersion === 4) {\n reportingVersion = 4;\n } else if (program && program.layout?.reportingVersion === 4) {\n reportingVersion = 4;\n } else if (\n clientConfig.analytics?.walletAnalyticsVersion &&\n commonDetails.currentPage.page.content.type_id === \"WALLET_WRAPPER\"\n ) {\n reportingVersion = parseInt(clientConfig.analytics?.walletAnalyticsVersion);\n }\n\n const onAction: IActionHandler = (action, details) => {\n if (process.env.MODE === \"DEMO\") return;\n\n if (window[\"user_is_set\"]) {\n if (reportingVersion === 3) {\n sendV3Analytics(action, details);\n }\n if (reportingVersion === 4) {\n sendV4Analytics(action, details);\n }\n } else {\n if (reportingVersion === 3) {\n pendingEvents.push({\n 'reportingVersion': reportingVersion, 'analyticsObj': {\n rootId,\n rootTypeId,\n reward,\n program,\n action,\n stateDetails: details\n }\n });\n } else {\n pendingEvents.push({\n 'reportingVersion': reportingVersion, 'analyticsObj': {\n action: action,\n details: details,\n rootTypeId: rootTypeId,\n pageName: pageName,\n rootId: rootId,\n reward: reward,\n program: program,\n commonDetails: commonDetails,\n }\n });\n }\n }\n };\n\n const sendV3Analytics: IActionHandler = async (action, details) => {\n try {\n if (!window[\"v3Helper\"]) {\n const v3Helper = (await import(\"../network/analytics-v3/transform\"))\n .default;\n window[\"v3Helper\"] = v3Helper;\n }\n window[\"v3Helper\"]({\n rootId,\n rootTypeId,\n reward,\n program,\n action,\n stateDetails: details\n });\n } catch (e) {\n console.log(e);\n }\n };\n\n const sendV4Analytics: IActionHandler = async (action, details) => {\n try {\n if (!window[\"v4Helper\"]) {\n const v4Helper = (await import(\"../network/analytics-v4/transform\"))\n .default;\n window[\"v4Helper\"] = v4Helper;\n }\n window[\"v4Helper\"]({\n action: action,\n details: details,\n rootTypeId: rootTypeId,\n pageName: pageName,\n rootId: rootId,\n reward: reward,\n program: program,\n commonDetails: commonDetails,\n });\n } catch (e) {\n console.log(e);\n }\n };\n\n return [onAction];\n};\n","import { IReward, IRewardMap } from \"../interfaces\";\nimport { IRewardFilter } from \"../interfaces/campaign-filter\";\nimport { IStateMapGeneric } from \"../interfaces/state-map\";\nimport { IAction } from \"../interfaces/store-action\";\nimport { ITheme } from \"../interfaces/theme\";\n\n/* SET REWARDS */\nexport type ISetRewardsPayload = {\n rewardMap: IRewardMap;\n allRewardsLoaded?: boolean;\n};\ntype ISetRewardsAction = IAction<\"REWARD\", \"SET REWARDS\", ISetRewardsPayload>;\nexport function setRewardsAction(\n payload: ISetRewardsPayload\n): ISetRewardsAction {\n return {\n store: \"REWARD\",\n type: \"SET REWARDS\",\n payload,\n };\n}\n\n/* SET REWARD */\nexport type ISetRewardPayload = { id: string; reward: IReward };\ntype ISetRewardAction = IAction<\"REWARD\", \"SET REWARD\", ISetRewardPayload>;\nexport function setRewardAction(payload: ISetRewardPayload): ISetRewardAction {\n return {\n store: \"REWARD\",\n type: \"SET REWARD\",\n payload,\n };\n}\n\n/* HOOK ACTIONS */\n\n/* LOAD REWARDS */\nexport type ILoadRewardsPayload = { filter?: IRewardFilter };\ntype ILoadRewardsAction = IAction<\n \"REWARD\",\n \"LOAD REWARDS\",\n ILoadRewardsPayload\n>;\nexport function loadRewardsAction(\n payload: ILoadRewardsPayload\n): ILoadRewardsAction {\n return {\n store: \"REWARD\",\n type: \"LOAD REWARDS\",\n payload,\n };\n}\n\n/* CONSUME REWARD */\nexport type IConsumeRewardPayload = {\n rewardUserId: string;\n params: {\n score?: number;\n timeLeft?: number;\n selectedSlotIndex?: number;\n };\n};\ntype IConsumeRewardAction = IAction<\n \"REWARD\",\n \"CONSUME REWARD\",\n IConsumeRewardPayload,\n IStateMapGeneric<\"params\" | \"rewardUserId\">\n>;\nexport function consumeRewardAction(\n payload: IConsumeRewardPayload\n): IConsumeRewardAction {\n return {\n store: \"REWARD\",\n type: \"CONSUME REWARD\",\n payload,\n };\n}\n\n/* UN-CONSUME REWARDS */\nexport type IUnConsumeRewardPayload = { rewardUserId?: string };\ntype IUnConsumeRewardAction = IAction<\n \"REWARD\",\n \"UNCONSUME REWARD\",\n IUnConsumeRewardPayload\n>;\nexport function unConsumeRewardAction(\n payload: IUnConsumeRewardPayload\n): IUnConsumeRewardAction {\n return {\n store: \"REWARD\",\n type: \"UNCONSUME REWARD\",\n payload,\n };\n}\n\n/* RETRY REWARD */\nexport type IRetryRewardPayload = {\n rewardUserId: string;\n params: {\n score?: number;\n timeLeft?: number;\n selectedSlotIndex?: number;\n };\n};\ntype IRetryRewardAction = IAction<\n \"REWARD\",\n \"RETRY REWARD\",\n IRetryRewardPayload,\n IStateMapGeneric<\"params\" | \"rewardUserId\">\n>;\nexport function retryRewardAction(\n payload: IRetryRewardPayload\n): IRetryRewardAction {\n return {\n store: \"REWARD\",\n type: \"RETRY REWARD\",\n payload,\n };\n}\n\n/* CONSUME GENERATE REWARD */\nexport type IConsumeGenerateRewardPayload = {\n rewardUserId: string;\n params: {\n score?: number;\n timeLeft?: number;\n selectedSlotIndex?: number;\n };\n};\ntype IConsumeGenerateRewardAction = IAction<\n \"REWARD\",\n \"CONSUME GENERATE REWARD\",\n IConsumeGenerateRewardPayload,\n IStateMapGeneric<\"params\" | \"rewardUserId\">\n>;\nexport function consumeGenerateRewardAction(\n payload: IConsumeGenerateRewardPayload\n): IConsumeGenerateRewardAction {\n return {\n store: \"REWARD\",\n type: \"CONSUME GENERATE REWARD\",\n payload,\n };\n}\n\n/* CONSUME GENERATE REWARD */\nexport type IUpdateRewardThemePayload = {\n rewardUserId: string;\n theme: ITheme;\n};\ntype IUpdateRewardTheme = IAction<\n \"REWARD\",\n \"UPDATE REWARD THEME\",\n IUpdateRewardThemePayload\n>;\nexport function updateRewardTheme(\n payload: IUpdateRewardThemePayload\n): IUpdateRewardTheme {\n return {\n store: \"REWARD\",\n type: \"UPDATE REWARD THEME\",\n payload,\n };\n}\n\nexport type IRewardAction =\n | ILoadRewardsAction\n | ISetRewardsAction\n | ISetRewardAction\n | IConsumeRewardAction\n | IUnConsumeRewardAction\n | IRetryRewardAction\n | IConsumeGenerateRewardAction\n | IUpdateRewardTheme;\n","import { IRewardAction } from \"../actions/reward\";\nimport { IReward, IRewardMap } from \"../interfaces\";\nimport { IContext } from \"../interfaces/store-action\";\nimport { createContext, h } from \"preact\";\nimport { useMemo, useReducer } from \"preact/hooks\";\n\nexport interface IRewardsState {\n allIds: string[];\n byId: {\n [id: string]: IReward;\n };\n allRewardsLoaded?: boolean;\n}\n\nconst initialState: IRewardsState = {\n allIds: [],\n byId: {},\n allRewardsLoaded: false,\n};\n\nfunction rewardsReducer(\n state: IRewardsState,\n action: IRewardAction\n): IRewardsState {\n switch (action.type) {\n case \"SET REWARDS\": {\n const newState: IRewardsState = {\n ...state,\n allIds: [...state.allIds],\n byId: { ...state.byId },\n };\n const newRewardMap = action.payload.rewardMap;\n newRewardMap.allIds.forEach((id) => {\n if (!newState.byId[id]) {\n newState.allIds.push(id);\n }\n newState.byId[id] = newRewardMap.byId[id];\n });\n newState.allRewardsLoaded = action.payload.allRewardsLoaded;\n return newState;\n }\n case \"SET REWARD\": {\n const newState: IRewardsState = {\n ...state,\n byId: { ...state.byId },\n };\n\n if(!state.byId[action.payload.id]) {\n newState.allIds = [...newState.allIds, action.payload.id]\n }\n\n newState.byId[action.payload.id] = action.payload.reward;\n return newState;\n }\n case \"UPDATE REWARD THEME\": {\n const newState: IRewardsState = {\n ...state,\n byId: { ...state.byId },\n };\n if (newState.byId[action.payload.rewardUserId]) {\n newState.byId[action.payload.rewardUserId].layout.theme = action.payload.theme;\n }\n return newState;\n }\n }\n}\n\nexport const RewardsContext =\n createContext>(undefined);\n\nexport function RewardsProvider(props: { children?: any }) {\n const [state, dispatch] = useReducer(\n rewardsReducer,\n initialState\n );\n\n const value = useMemo(() => ({ state, dispatch }), [state]);\n\n return (\n \n {props.children}\n \n );\n}\n","import { ISessionState } from \"../contexts/session\";\nimport { IAction } from \"../interfaces/store-action\";\nimport { IRouteQueryParams } from \"../util/routes-details\";\n\ntype ISetSession = IAction<\n \"SESSION\",\n \"SESSION_STORE SET SESSION\",\n ISessionState\n>;\n\nexport const setSession = (payload: ISessionState): ISetSession => {\n return {\n store: \"SESSION\",\n type: \"SESSION_STORE SET SESSION\",\n payload,\n };\n};\n\ntype ISetQueryParamSession = IAction<\n \"SESSION\",\n \"SESSION_STORE SET QUERY PARAM SESSION\",\n { queryParams: IRouteQueryParams }\n>;\nexport const setQueryParamSession = (payload: {\n queryParams: IRouteQueryParams;\n}): ISetQueryParamSession => {\n return {\n store: \"SESSION\",\n type: \"SESSION_STORE SET QUERY PARAM SESSION\",\n payload,\n };\n};\n\ntype IRequestToken = IAction<\n \"SESSION\",\n \"SESSION_STORE REQUEST TOKEN\",\n { details: {} }\n>;\nexport const requestToken = (payload: { details: {} }): IRequestToken => {\n return {\n store: \"SESSION\",\n type: \"SESSION_STORE REQUEST TOKEN\",\n payload,\n };\n};\n\ntype ISetToken = IAction<\n \"SESSION\",\n \"SESSION_STORE SET TOKEN\",\n { token: string }\n>;\nexport const setToken = (payload: { token: string }): ISetToken => {\n return {\n store: \"SESSION\",\n type: \"SESSION_STORE SET TOKEN\",\n payload,\n };\n};\n\ntype ISetThemeMode = IAction<\n \"SESSION\",\n \"UPDATE THEME MODE\",\n { mode: \"light\" | \"dark\" }\n>;\nexport const setThemeMode = (payload: { mode: \"light\" | \"dark\" }): ISetThemeMode => {\n return {\n store: \"SESSION\",\n type: \"UPDATE THEME MODE\",\n payload,\n };\n};\n\nexport type ISessionAction =\n | ISetSession\n | ISetQueryParamSession\n | IRequestToken\n | ISetToken\n | ISetThemeMode;\n","import {\n IUserAttributes,\n IUserIdentification,\n IUserRegistrationData,\n} from \"../interfaces/user-registration\";\nimport { get, post } from \"../util/api\";\nimport { nanoid } from \"nanoid\";\n\n/* HELPER */\nconst fetchUserId = (): string => {\n if (!window.localStorage) return null;\n const session = localStorage.getItem(\"__glu__session\");\n if (session) return session;\n};\n\n/* HELPER */\nconst generateUserId = (): string => {\n if (!window.localStorage) return null;\n const session = localStorage.getItem(\"__glu__session\");\n if (session) return session;\n else {\n const id = nanoid();\n localStorage.setItem(\"__glu__session\", id);\n return id;\n }\n};\n\n/* HELPER */\nconst fetchToken = async (\n writeKey: string,\n identification: IUserIdentification,\n attributes: IUserAttributes\n): Promise => {\n try {\n let userId = identification.userId;\n let anonymousId = identification.anonymousId;\n let userState: \"loggedIn\" | \"nonLoggedIn\" = identification.userId\n ? \"loggedIn\"\n : \"nonLoggedIn\";\n\n if (!anonymousId) {\n anonymousId = fetchUserId();\n }\n\n if (!userId) {\n if (!anonymousId) {\n anonymousId = generateUserId();\n }\n userId = anonymousId;\n }\n\n const reqBody = {\n writeKey,\n userId,\n userState,\n customAttributes: attributes.customAttributes,\n ...attributes.gluAttributes,\n };\n\n if (anonymousId) {\n reqBody.anonymousId = anonymousId;\n }\n\n const res = await post<{ data: { token: string } }>(\n `${process.env.HOST_ENV}/user/v1/user/sdk?token=true`,\n reqBody\n );\n\n if (res.parsedBody && res.parsedBody.data.token) {\n return res.parsedBody.data.token;\n } else throw new Error(\"Error Fetching Token\");\n } catch (e) {\n throw e;\n }\n};\n\n/* HELPER */\nconst fetchBannerData = async (token: string): Promise => {\n try {\n const res = await get(`${process.env.HOST_ENV}/reward/v1.1/user`, token);\n return res;\n } catch (e) {\n throw e;\n }\n};\n\n/* EXPORT #1 */\nexport const requestUserToken = async (\n data: IUserRegistrationData\n): Promise => {\n try {\n const token = await fetchToken(\n data.writeKey,\n data.userIdentification,\n data.userAttributes\n );\n const bannerData = await fetchBannerData(token);\n return token;\n } catch (e) {\n throw e;\n }\n};\n","import {\n ISessionAction,\n setQueryParamSession,\n setToken,\n} from \"../actions/session\";\nimport { ISessionState, SessionContext } from \"../contexts/session\";\nimport { IDispatch } from \"../interfaces/dispatch\";\nimport { IStatus } from \"../interfaces/status\";\nimport { IUserRegistrationData } from \"../interfaces/user-registration\";\nimport { requestUserToken } from \"../network/session\";\nimport { getRegistrationDataFromObject } from \"../util/get-registration-object\";\nimport { getRouteQueryParams, IRouteQueryParams } from \"../util/routes-details\";\nimport { useContext, useEffect, useState } from \"preact/hooks\";\nimport { useStatus } from \"./status\";\nimport { IStoreAction } from \"../interfaces/all-store-actions\";\n\nexport const useSession = (): [ISessionState, IDispatch] => {\n const context = useContext(SessionContext);\n if (context === undefined) {\n throw new Error(\"useSession must be used within a SessionProvider\");\n }\n return [context.state, context.dispatch];\n};\n\nexport const useTokenInitilizer = (): IStatus => {\n const [status, setStatus] = useStatus();\n const [session, dispatchSessionAction] = useSession();\n\n useEffect(() => {\n const queryParams = getRouteQueryParams();\n if (queryParams.token) {\n dispatchSessionAction(setToken({ token: queryParams.token }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n } else if (queryParams.writekey) {\n fetchUserToken(queryParams);\n } else {\n setStatus({ state: \"LOAD_ERROR\", message: \"writekey not found\" });\n }\n }, []);\n\n const fetchUserToken = async (queryParams: IRouteQueryParams) => {\n setStatus({ state: \"LOADING\" });\n try {\n const data: IUserRegistrationData =\n getRegistrationDataFromObject(queryParams);\n const token = await requestUserToken(data);\n dispatchSessionAction(setToken({ token }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n setStatus({ state: \"LOAD_ERROR\", message: \"error generating the token: \" + location.href + \" \" + JSON.stringify(e) });\n }\n };\n\n return status;\n};\n\nexport const useQueryParamsInitilizer = () => {\n const [session, dispatchSessionAction] = useSession();\n\n useEffect(() => {\n const queryParams = getRouteQueryParams();\n window[\"skipSeen\"] = queryParams[\"skipSeen\"] === undefined ? false : true;\n dispatchSessionAction(setQueryParamSession({ queryParams }));\n }, []);\n};\n\nexport const useQueryParameter = (key: string) => {\n const [session] = useSession();\n return session.queryParams ? session.queryParams[key] : null;\n};\n\nexport const useSessionActionHandler = (): [typeof onAction] => {\n const [state, dispatch] = useSession();\n\n const onAction = (action: IStoreAction, details?: any) => {\n if (action.store === \"SESSION\") {\n dispatch(action);\n }\n };\n\n return [onAction];\n}","import { IUserRegistrationData } from \"../interfaces/user-registration\";\n\nexport const getRegistrationDataFromObject = (matches: {\n [key: string]: string;\n}): IUserRegistrationData => {\n const userId = matches[\"userId\"];\n const anonymousId = matches[\"anonymousId\"];\n const writeKey = matches[\"writeKey\"] || matches[\"writekey\"];\n\n const userName = matches[\"userName\"];\n const phone = matches[\"userName\"];\n const email = matches[\"userName\"];\n const firebaseToken = matches[\"firebaseToken\"];\n const apnsDeviceToken = matches[\"apnsDeviceToken\"];\n const referredBy = matches[\"referredBy\"];\n\n let platform = matches[\"platform\"];\n if (platform) platform = platform.toLowerCase();\n let customAttributes = {};\n\n const gluAttributes = {\n userName,\n phone,\n email,\n firebaseToken,\n apnsDeviceToken,\n referredBy,\n };\n\n for (let key in matches) {\n if (\n !app[key] &&\n !gluAttributes[key] &&\n key.includes(\"_user_attribute_\") &&\n matches[key]\n ) {\n customAttributes[key.split(\"_user_attribute_\")[1]] = matches[key];\n }\n }\n\n return {\n writeKey,\n userIdentification: {\n anonymousId,\n userId,\n },\n userAttributes: {\n gluAttributes,\n customAttributes,\n },\n };\n};\n","import { useState } from \"preact/hooks\";\nimport { IStatus } from \"src/interfaces/status\";\n\nexport const useStatus = (\n initStatus?: IStatus\n): [IStatus, (status: IStatus) => void] => {\n const [status, setStatus] = useState(\n initStatus || { state: \"IDEL\" }\n );\n return [status, setStatus];\n};\n","import { ISessionAction } from \"../actions/session\";\nimport { IContext } from \"../interfaces/store-action\";\nimport { IRouteQueryParams } from \"../util/routes-details\";\nimport { createContext, h } from \"preact\";\nimport { useMemo, useReducer } from \"preact/hooks\";\nimport { nanoid } from \"nanoid\";\n\nexport interface ISessionState {\n queryParams: IRouteQueryParams;\n token: string;\n id?: string;\n session_start_time: Date;\n mode?: \"dark\" | \"light\";\n}\n\nconst initialState: ISessionState = {\n token: null,\n queryParams: {},\n id: nanoid(),\n session_start_time: new Date()\n};\n\nfunction sessionReducer(\n state: ISessionState,\n action: ISessionAction\n): ISessionState {\n switch (action.type) {\n case \"SESSION_STORE SET SESSION\": {\n return action.payload;\n }\n case \"SESSION_STORE SET QUERY PARAM SESSION\": {\n return {\n ...state,\n queryParams: action.payload.queryParams,\n };\n }\n case \"SESSION_STORE SET TOKEN\": {\n window[\"token\"] = action.payload.token;\n window[\"GluToken\"] = action.payload.token;\n return {\n ...state,\n token: action.payload.token,\n };\n }\n case \"UPDATE THEME MODE\": {\n return {\n ...state,\n mode: action.payload.mode,\n }\n }\n }\n}\n\nexport const SessionContext =\n createContext>(undefined);\n\nexport function SessionProvider(props: { children?: any }) {\n const [state, dispatch] = useReducer(\n sessionReducer,\n initialState\n );\n\n const value = useMemo(() => ({ state, dispatch }), [state]);\n\n return (\n \n {props.children}\n \n );\n}\n","\n\t\timport Async from \"../../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-streak-root-1\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import { IUserAction } from \"../actions/user\";\nimport { IUser } from \"../interfaces/user\";\nimport { IContext } from \"../interfaces/store-action\";\nimport { createContext, h } from \"preact\";\nimport { useMemo, useReducer } from \"preact/hooks\";\nimport { FlushPendingEvents } from \"../hooks/analytics\";\n\nexport interface IUserState {\n user: IUser;\n}\n\nconst initialState: IUserState = {\n user: {\n isLoggedIn: true,\n id: null,\n userId: \"DEMO_USER\",\n gluId: null,\n userName: null,\n email: null,\n phone: null,\n cookieId: null,\n appVersion: null,\n client: null,\n referralLink: \"https://cg.com/userId\",\n referredBy: null,\n referralCode: \"us-cg-91\",\n profile: {\n firstName: \"user\",\n lastName: \"us\",\n age: null,\n city: null,\n country: null,\n timezone: null,\n },\n identities: {\n facebook_id: null,\n google_id: null,\n android_id: null,\n ios_id: null,\n clevertap_id: null,\n mparticle_id: null,\n segment_id: null,\n moengage_id: null,\n },\n sessionId: null,\n },\n};\n\nfunction userReducer(state: IUserState, action: IUserAction): IUserState {\n switch (action.type) {\n case \"USER_STORE SET USER\": {\n if (action.payload.user) {\n window[\"user_is_set\"] = true;\n FlushPendingEvents();\n try {\n if (\n action.payload.user.userId === action.payload.user[\"anonymousId\"]\n ) {\n action.payload.user.isLoggedIn = false;\n } else {\n action.payload.user.isLoggedIn = true;\n }\n } catch (e) {\n console.log(e);\n }\n return {\n ...state,\n user: action.payload.user,\n };\n }\n }\n }\n}\n\nexport const UserContext =\n createContext>(undefined);\n\nexport function UserProvider(props: { children?: any }) {\n const [state, dispatch] = useReducer(\n userReducer,\n initialState\n );\n\n const value = useMemo(() => ({ state, dispatch }), [state]);\n\n return (\n {props.children}\n );\n}\n","import { IRewardState } from \"../hooks/reward-state\";\nimport { IStateMap } from \"../interfaces/state-map\";\nimport { getVariableValue } from \"./state-variable-operation\";\n\nexport function getStateValues(state: any, stateMap: IStateMap): T {\n const stateToBeFilled: T = {} as T;\n\n if (!state) throw \"state undefined\";\n\n if (stateMap && stateMap.select) {\n for (let key in stateMap.select) {\n let value = null;\n try {\n value = getVariableValue(state, stateMap.select[key]);\n } catch (e) {\n value = null;\n console.log(stateMap);\n throw e;\n }\n stateToBeFilled[key] = value;\n }\n }\n return stateToBeFilled;\n}\n\nexport function getStateValuesLegacy(\n state: IRewardState,\n referenceId: string\n): T {\n try {\n let elementState: T = {} as T;\n if (\n referenceId &&\n state &&\n state.layoutSlotInfo &&\n state.layoutSlotInfo.extraData &&\n state.layoutSlotInfo.extraData[referenceId]\n ) {\n elementState = state.layoutSlotInfo.extraData[referenceId].data as T;\n }\n\n return elementState;\n } catch (e) {\n console.log(e);\n throw new Error(\"error getting legacy state value\");\n }\n}\n","export function emitEventV2(eventName: string, data: any) {\n const event = { eventName, data };\n const eventStr = JSON.stringify(event);\n console.log(eventStr);\n try {\n if (window[\"app\"] && window[\"app\"].postMessage) {\n window[\"app\"].postMessage(eventStr);\n } else if (window[\"app\"] && window[\"app\"].callback) {\n window[\"app\"].callback(eventStr);\n } else if (window.parent !== window && window.parent.postMessage) {\n window.parent.postMessage(eventStr, \"*\");\n } else if (\n window[\"ReactNativeWebView\"] &&\n window[\"ReactNativeWebView\"].postMessage\n ) {\n window[\"ReactNativeWebView\"].postMessage(eventStr);\n } else if (window.webkit && window.webkit.messageHandlers) {\n webkit.messageHandlers.callback.postMessage(eventStr);\n }\n } catch (e) {\n console.log(e);\n }\n}\n","import style from \"./style.css\";\nimport { h } from \"preact\";\nimport { IStatus } from \"../../interfaces/status\";\n\nexport function Info({ status }: { status: IStatus }) {\n let img = \"/assets/icons/error.svg\";\n return (\n
\n \n

{status?.message || \"error occurred, please try again later\"}

\n
\n );\n}\n","import { h } from \"preact\";\nimport { useAssetLoader } from \"../../../hooks/asset-loader\";\nimport { useClientConfigurations } from \"../../../hooks/client-configurations\";\nimport { useExternalActionHandler } from \"../../../hooks/external-action-handler\";\nimport { useRouterActionHandler } from \"../../../hooks/router\";\nimport { IActionHandler } from \"../../../interfaces/event-actions\";\nimport { IFragment } from \"../../../interfaces/fragment\";\nimport { IStatus } from \"../../../interfaces/status\";\nimport { Info } from \"../../info\";\nimport ErrorRoot1, {\n IMainErrorRoot1Layouts,\n} from \"../../routes/main-error-root-1\";\n\nexport function ErrorWrapper({\n status,\n onAction,\n}: {\n status: IStatus;\n onAction?: IActionHandler;\n}) {\n const [state, dispatch] = useClientConfigurations();\n const [onRouterAction] = useRouterActionHandler();\n const [onExternalAction] = useExternalActionHandler();\n\n useAssetLoader(state?.error?.mainError);\n\n\n const onCurrentAction: IActionHandler = (action, details) => {\n if (onAction) onAction(action, details);\n else {\n onRouterAction(action, details);\n onExternalAction(action, details);\n }\n };\n\n try {\n const selectedFragment = state.error.mainError;\n const root = selectedFragment.byId[selectedFragment.rootId];\n if (root.type_id === \"ERROR_ROOT_1\") {\n return (\n }\n onAction={onCurrentAction}\n {...root}\n />\n );\n }\n } catch (e) {\n return ;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"info\":\"info__zbjK2\"};","\n\t\timport Async from \"../../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-main-error-root-1\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import { IRouterAction, popPageStartAction } from \"../actions/router\";\nimport { IBottomSheetLayout } from \"../components/portal/bottom-sheet\";\nimport { IFullPageLayout } from \"../components/portal/full-page\";\nimport { IPopupLayout } from \"../components/portal/popup\";\nimport { emitEventV2 } from \"../util/url\";\nimport { createContext, h } from \"preact\";\nimport { useEffect, useMemo, useReducer } from \"preact/hooks\";\nimport { IWalletWrapper } from \"../components/context-wrappers/wallet-wrapper\";\nimport { IRewardWrapper } from \"../components/context-wrappers/reward-wrapper\";\nimport { IProgramWrapper } from \"../components/context-wrappers/program-wrapper\";\nimport { IProgramNudgeWrapper } from \"../components/context-wrappers/program-nudge-wrapper\";\n\nexport type IPageLayout = IFullPageLayout | IBottomSheetLayout | IPopupLayout;\nexport type IPageContent =\n | IWalletWrapper\n | IRewardWrapper\n | IProgramWrapper\n | IProgramNudgeWrapper;\n\nexport interface IPage {\n hidePreviousPages?: boolean;\n layout: IPageLayout;\n content: IPageContent;\n startClose?: boolean;\n state?: any;\n}\n\nexport interface IRouterState {\n allIds: number[];\n byId: {\n [id: number]: IPage;\n };\n currentId: number;\n}\n\nconst initialState: IRouterState = {\n allIds: [],\n byId: {},\n currentId: 0,\n};\n\nfunction routerReducer(\n state: IRouterState,\n action: IRouterAction\n): IRouterState {\n switch (action.type) {\n case \"ROUTER_STORE PUSH PAGE\": {\n const actionPage = action.payload;\n if (state.allIds.length) {\n const previousSamePageIndex = state.allIds.findIndex((id, index) => {\n const page = state.byId[id];\n if (\n actionPage.content.type_id === \"WALLET_WRAPPER\" &&\n page.content.type_id === \"WALLET_WRAPPER\"\n )\n return true;\n });\n if (\n previousSamePageIndex !== -1 &&\n previousSamePageIndex !== state.allIds.length - 1\n ) {\n return {\n ...state,\n byId: {\n ...state.byId,\n [state.currentId]: {\n ...state.byId[state.currentId],\n startClose: true,\n },\n },\n };\n }\n }\n const newCurrentId = state.currentId + 1;\n if (history) history.pushState({ page: 1 }, newCurrentId.toString());\n return {\n ...state,\n allIds: [...state.allIds, newCurrentId],\n byId: {\n ...state.byId,\n [newCurrentId]: actionPage,\n },\n currentId: newCurrentId,\n };\n }\n case \"ROUTER_STORE POP PAGE\": {\n if (state.allIds.length === 1) {\n close();\n return state;\n } else\n return {\n ...state,\n allIds: state.allIds.filter((id) => id !== state.currentId),\n currentId: state.currentId - 1,\n };\n }\n case \"ROUTER_STORE POP PAGE START\": {\n if (!action.payload?.isNative) {\n if (history) history.back();\n }\n if (state.allIds.length === 1) {\n close();\n return state;\n } else\n return {\n ...state,\n byId: {\n ...state.byId,\n [state.currentId]: {\n ...state.byId[state.currentId],\n startClose: true,\n },\n },\n };\n }\n case \"ROUTER_STORE REPLACE PAGE\": {\n return {\n ...state,\n allIds: [...state.allIds],\n byId: {\n ...state.byId,\n [state.currentId]: action.payload,\n },\n currentId: state.currentId,\n };\n }\n }\n}\n\nexport const RouterContext = createContext<\n { state: IRouterState; dispatch: (action: IRouterAction) => void } | undefined\n>(undefined);\n\nexport function RouterProvider(props: { children?: any }) {\n const [state, dispatch] = useReducer(\n routerReducer,\n initialState\n );\n\n useEffect(() => {\n window.onpopstate = (e) => {\n dispatch(popPageStartAction({ isNative: true }));\n };\n }, []);\n\n const value = useMemo(() => ({ state, dispatch }), [state]);\n\n return (\n \n {props.children}\n \n );\n}\n\nexport const CurrentPageContext = createContext<\n { page: IPage; isActive: boolean } | undefined\n>(undefined);\n\nexport function CurrentPageProvider(props: {\n children?: any;\n page: IPage;\n isActive: boolean;\n}) {\n return (\n \n {props.children}\n \n );\n}\n\nfunction close() {\n emitEventV2(\"CLOSE\", null);\n if (window.parent !== window) {\n const data: any = {\n target: \"GLU_SDK\",\n action: {\n type: \"CLOSE_FRAME_CONTENT\",\n data: {\n rewardsState: null,\n programsState: null,\n },\n },\n };\n window.parent.postMessage(data, \"*\");\n }\n}\n","\n\t\timport Async from \"../../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-multi-step-root-1\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {\n IConsumeGenerateRewardPayload,\n IConsumeRewardPayload,\n IRetryRewardPayload,\n IRewardAction,\n IUnConsumeRewardPayload,\n setRewardAction,\n setRewardsAction,\n} from \"../actions/reward\";\nimport { IRewardsState, RewardsContext } from \"../contexts/reward\";\nimport { IReward, IRewardMap } from \"../interfaces\";\nimport { IRewardFilter } from \"../interfaces/campaign-filter\";\nimport { IDispatch } from \"../interfaces/dispatch\";\nimport { IStatus } from \"../interfaces/status\";\nimport {\n fetchAllRewards,\n IConsumeRewardParams,\n redeemReward,\n} from \"../network/reward\";\nimport { useSession } from \"./session\";\nimport { useContext, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { useStatus } from \"./status\";\nimport { IActionDetails, IActionHandler } from \"../interfaces/event-actions\";\nimport { checkCondition } from \"../util/conditional-operation\";\nimport { getVariableValue } from \"../util/state-variable-operation\";\nimport { ISimpleGameResult } from \"../interfaces/simple-game\";\nimport { ILayoutRewardSlot } from \"../interfaces/reward-layout-info\";\nimport { useAutoRefresh } from \"./auto-refresh\";\n\nexport const useRewards = (): [IRewardsState, IDispatch] => {\n const context = useContext(RewardsContext);\n if (context === undefined) {\n throw new Error(\"useRewards must be used within a RewardsProvider\");\n }\n return [context.state, context.dispatch];\n};\n\nexport const useRewardsFilter = (\n filter?: IRewardFilter,\n ref?: any\n): [IRewardMap, IStatus, typeof refresh] => {\n const [rewardState, rewardDispatch] = useRewards();\n const [session] = useSession();\n const [status, setStatus] = useStatus();\n\n useAutoRefresh([refresh]);\n\n useEffect(() => {\n if (rewardState.allRewardsLoaded) {\n setStatus({ state: \"LOAD_SUCCESS\" });\n } else {\n requestRewards();\n }\n }, [ref ? ref : filter]);\n\n const requestRewards = async (skipLoading?: boolean) => {\n try {\n if (!skipLoading) setStatus({ state: \"LOADING\" });\n let campaignId: string = null;\n if (filter) {\n campaignId = getSingleIdFromFilter(\"campaignId\", filter) as string;\n }\n const rewardMap = await fetchAllRewards(session.token, campaignId);\n rewardDispatch(\n setRewardsAction({ rewardMap, allRewardsLoaded: filter ? false : true })\n );\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"reward failed to load\" });\n }\n };\n\n function refresh() {\n requestRewards(true);\n }\n\n const matched: IRewardMap = useMemo(() => {\n if (filter) return filterRewards(rewardState, filter);\n else return rewardState;\n }, [filter, rewardState.byId]);\n\n return [matched, status, refresh];\n};\n\nexport const useSingleRewardFilter = (\n filter: IRewardFilter\n): [IReward | null, IStatus] => {\n if (!filter) throw new Error(\"Filter Missing\");\n const [session] = useSession();\n const [rewardState, rewardDispatch] = useRewards();\n const [status, setStatus] = useStatus();\n useAutoRefresh([requestReward]);\n\n async function requestReward() {\n setStatus({ state: \"LOADING\" });\n try {\n const rewardMap = await fetchAllRewards(\n session.token,\n getSingleIdFromFilter(\"campaignId\", filter),\n getSingleIdFromFilter(\"rewardUserId\", filter)\n );\n rewardDispatch(setRewardsAction({ rewardMap }));\n const reward = filterSingleReward(rewardMap, filter);\n if (reward) {\n setStatus({ state: \"LOAD_SUCCESS\" });\n } else {\n setStatus({ state: \"LOAD_ERROR\", message: \"reward not found\" });\n }\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"error loading reward\" });\n }\n }\n\n const reward = filterSingleReward(rewardState, filter);\n let rewardStatus: IStatus = status;\n\n if (reward) {\n rewardStatus = { state: \"LOAD_SUCCESS\" };\n } else if (status.state === \"IDEL\") {\n requestReward();\n }\n\n return [reward, rewardStatus];\n};\n\nconst didRewardMatch = (reward: IReward, filter: IRewardFilter): boolean => {\n if (!filter) return true;\n if (!reward) throw new Error(\"reward not passed\");\n\n if (filter.campaignId) {\n if (filter.campaignId[reward.campaignId as string]) {\n } else {\n if (filter.campaignId[reward.campaignId as string] == undefined) {\n if (!filter.campaignId?.default) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n if (\n filter.activityId &&\n !filter.activityId[reward.rewardProperties?.details?.activityId as string]\n )\n return false;\n if (\n filter.eventName &&\n !filter.eventName[reward.rewardProperties?.details?.eventName as string]\n )\n return false;\n if (filter.rewardType && !filter.rewardType[reward.type as string])\n return false;\n if (filter.rewardUserId && !filter.rewardUserId[reward.rewardUserId])\n return false;\n if (\n filter.userAId &&\n !filter.userAId[reward.rewardProperties?.details?.userAId as string]\n )\n return false;\n if (\n filter.userBId &&\n !filter.userBId[reward.rewardProperties?.details?.userBId as string]\n )\n return false;\n if (\n filter.experienceConsumed !== undefined &&\n reward.experienceConsumed !== filter.experienceConsumed\n )\n return false;\n if (\n filter.couponExpired !== undefined &&\n filter.couponExpired !== reward.rewardProperties?.couponExpiry?.expired\n )\n return false;\n if (\n filter.rewardExpired !== undefined &&\n filter.rewardExpired !== reward.rewardExpiry?.expired\n )\n return false;\n\n if (filter.removeNoRewardType) {\n if (\n (reward.experience === \"direct\" || reward.experienceConsumed) &&\n reward.type === \"noReward\"\n )\n return false;\n }\n if (filter.type) {\n let types = Object.keys(filter.type);\n for (let i = 0; i < types.length; i++) {\n if (filter.type[types[i]] == true) {\n if (reward.experience === types[i]) {\n return true;\n } else {\n return false;\n }\n }\n if (filter.type[types[i]] == false) {\n if (reward.experience === types[i]) {\n return false;\n }\n }\n }\n }\n\n if (filter.condition) {\n const condition = filter.condition;\n const leftValue = getVariableValue({ reward }, condition.leftOperand);\n const rightValue = getVariableValue({ reward }, condition.rightOperand);\n const didMatch = checkCondition(leftValue, rightValue, condition.operator);\n if (!didMatch) return false;\n }\n\n return true;\n};\n\nconst filterSingleReward = (\n state: IRewardsState,\n filter: IRewardFilter\n): IReward | null => {\n if (filter.rewardUserId) {\n const keys = Object.keys(filter.rewardUserId);\n if (keys.length === 1 && state.byId[keys[0]]) {\n return state.byId[keys[0]];\n }\n }\n for (let i = 0; i < state.allIds.length; i++) {\n const r = state.byId[state.allIds[i]];\n if (didRewardMatch(r, filter)) {\n return r;\n }\n }\n return null;\n};\n\nconst filterRewards = (\n state: IRewardsState,\n filter: IRewardFilter\n): IRewardMap => {\n const matched: IRewardMap = { allIds: [], byId: {} };\n if (!filter) return matched;\n for (let i = 0; i < state.allIds.length; i++) {\n const r = state.byId[state.allIds[i]];\n if (didRewardMatch(r, filter)) {\n matched.allIds.push(r.rewardUserId);\n matched.byId[r.rewardUserId] = r;\n }\n }\n return matched;\n};\n\nconst getSingleIdFromFilter = (property: string, filter: IRewardFilter) => {\n const obj = filter[property] as any;\n if (!obj) return null;\n const keys = Object.keys(obj);\n if (keys.length !== 1) return null;\n return keys[0];\n};\n\nexport const useRewardActionHandler = (\n actionHandler?: IActionHandler\n): [IStatus, typeof onAction] => {\n const [session] = useSession();\n const [state, dispatch] = useRewards();\n const [status, setStatus] = useStatus();\n\n const requestConsumeReward = async (\n payload: IConsumeRewardPayload,\n onComplete?: Function\n ) => {\n try {\n setStatus({ state: \"LOADING\" });\n const r = state.byId[payload.rewardUserId];\n const { newReward, params } = generateConsumeRewardParams(\n r,\n payload.params\n );\n newReward.selectedSlotIndex = params.selectedSlotIndex;\n newReward.status = \"redeemable-seen\";\n dispatch(\n setRewardAction({\n id: newReward.rewardUserId,\n reward: newReward,\n })\n );\n const seenReward = await redeemReward(newReward, params, session.token);\n dispatch(\n setRewardAction({\n id: seenReward.rewardUserId,\n reward: seenReward,\n })\n );\n setStatus({ state: \"LOAD_SUCCESS\" });\n if (actionHandler)\n actionHandler({} as any, {\n analytics: { eventName: \"GAME_PLAYED\", type: \"TRACK\" },\n state: { reward: seenReward },\n onComplete: null,\n });\n if (onComplete) {\n onComplete();\n }\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"failed to consume reward\" });\n }\n };\n\n const requestRetryReward = async (\n payload: IRetryRewardPayload,\n onComplete: Function\n ) => {\n try {\n setStatus({ state: \"LOADING\" });\n const r = state.byId[payload.rewardUserId];\n const { newReward, params } = generateRetryRewardParams(r);\n newReward.selectedSlotIndex = params.selectedSlotIndex;\n await redeemReward(newReward, params, session.token);\n const rewardMap = await fetchAllRewards(\n session.token,\n newReward.campaignId\n );\n dispatch(setRewardsAction({ rewardMap }));\n if (onComplete) {\n onComplete();\n }\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"failed to retry\" });\n }\n };\n\n const requestGenerateConsumeReward = async (\n payload: IConsumeGenerateRewardPayload,\n onComplete?: Function\n ) => {\n try {\n setStatus({ state: \"LOADING\" });\n const r = state.byId[payload.rewardUserId];\n\n const { newReward, params } = generateConsumeGenerateRewardParams(\n r,\n payload.params\n );\n newReward.selectedSlotIndex = params.selectedSlotIndex;\n await redeemReward(newReward, params, session.token);\n const rewardMap = await fetchAllRewards(\n session.token,\n newReward.campaignId\n );\n dispatch(setRewardsAction({ rewardMap }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n if (actionHandler)\n actionHandler({} as any, {\n analytics: { eventName: \"GAME_PLAYED\", type: \"TRACK\" },\n state: {\n reward: rewardMap.byId[newReward.rewardUserId],\n onComplete: null,\n },\n });\n if (onComplete) {\n onComplete();\n }\n } catch (e) {\n setStatus({\n state: \"LOAD_ERROR\",\n message: \"failed to consume the reward\",\n });\n }\n };\n\n const requestSimpleRetryReward = async (\n payload: IUnConsumeRewardPayload,\n details?: IActionDetails\n ) => {\n try {\n setStatus({ state: \"LOADING\" });\n let id = null;\n if (payload && payload.rewardUserId) {\n id = payload.rewardUserId;\n } else if (details?.state?.reward?.rewardUserId) {\n id = details?.state?.reward?.rewardUserId;\n } else {\n throw \"reward user id not passed\";\n }\n const r = state.byId[id];\n const { newReward, params } = generateRetryRewardParams(r);\n newReward.selectedSlotIndex = params.selectedSlotIndex;\n await redeemReward(newReward, params, session.token);\n const rewardMap = await fetchAllRewards(\n session.token,\n newReward.campaignId\n );\n dispatch(setRewardsAction({ rewardMap }));\n if (details?.onComplete) {\n details?.onComplete();\n }\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"failed to retry\" });\n }\n };\n\n const onAction: IActionHandler = (action, details) => {\n if (action.store === \"REWARD\") {\n if (action.type === \"CONSUME REWARD\") {\n requestConsumeReward(action.payload, details?.onComplete);\n } else if (action.type === \"CONSUME GENERATE REWARD\") {\n requestGenerateConsumeReward(action.payload, details?.onComplete);\n } else if (action.type === \"RETRY REWARD\") {\n requestRetryReward(action.payload, details?.onComplete);\n } else if (action.type === \"UNCONSUME REWARD\") {\n requestSimpleRetryReward(action.payload, details);\n } else if (action.type === \"SET REWARD\") {\n dispatch(action);\n }\n }\n };\n\n return [status, onAction];\n};\n\n/* util, consume reward params generator */\nconst generateConsumeRewardParams = (\n reward: IReward,\n result: ISimpleGameResult\n): { newReward: IReward; params: IConsumeRewardParams } => {\n const newReward: IReward = {\n ...reward,\n experienceConsumed: true,\n seenStatus: \"CONSUMING\",\n };\n const params: IConsumeRewardParams = {\n selectedSlotIndex: reward.selectedSlotIndex,\n generateNewReward: true,\n rewardUserId: newReward.rewardUserId,\n };\n\n if (result) {\n if (Number.isInteger(result.rewardIndex)) {\n params.selectedSlotIndex = result.rewardIndex;\n reward.selectedSlotIndex = params.selectedSlotIndex;\n }\n if (Number.isInteger(result.score)) {\n params.score = result.score;\n const i = getSelectedRewardIndexFromScore(\n reward.layout.layout.data.slots,\n result.score\n );\n if (Number.isInteger(i)) {\n params.selectedSlotIndex = i;\n reward.selectedSlotIndex = i;\n }\n if (newReward.quiz) {\n newReward.quiz.score = params.score;\n }\n }\n if (\n result.result &&\n (!Number.isInteger(params.selectedSlotIndex) ||\n params.selectedSlotIndex < 0)\n ) {\n params.selectedSlotIndex = result.result === \"WIN\" ? 1 : 0;\n reward.selectedSlotIndex = params.selectedSlotIndex;\n }\n }\n\n return { newReward, params };\n};\n\nconst generateRetryRewardParams = (\n reward: IReward\n): { newReward: IReward; params: IConsumeRewardParams } => {\n const params: IConsumeRewardParams = {\n refreshReward: true,\n selectedSlotIndex: reward.selectedSlotIndex,\n rewardUserId: reward.rewardUserId,\n };\n const newReward: IReward = { ...reward };\n\n return { newReward, params };\n};\n\nconst generateConsumeGenerateRewardParams = (\n reward: IReward,\n result: ISimpleGameResult\n): { newReward: IReward; params: IConsumeRewardParams } => {\n const newReward: IReward = {\n ...reward,\n experienceConsumed: true,\n seenStatus: \"CONSUMING\",\n };\n const params: IConsumeRewardParams = {\n selectedSlotIndex: reward.selectedSlotIndex,\n rewardUserId: newReward.rewardUserId,\n createNewReward: true,\n };\n\n if (result) {\n if (Number.isInteger(result.rewardIndex)) {\n params.selectedSlotIndex = result.rewardIndex;\n }\n if (Number.isInteger(result.score)) {\n params.score = result.score;\n const i = getSelectedRewardIndexFromScore(\n reward.layout.layout.data.slots,\n result.score\n );\n if (Number.isInteger(i)) {\n params.selectedSlotIndex = i;\n }\n if (newReward.quiz) {\n newReward.quiz.score = params.score;\n }\n }\n if (\n result.result &&\n (!Number.isInteger(params.selectedSlotIndex) ||\n params.selectedSlotIndex < 0)\n ) {\n params.selectedSlotIndex = result.result === \"WIN\" ? 1 : 0;\n }\n }\n\n return { newReward, params };\n};\n\nfunction getSelectedRewardIndexFromScore(\n slots: ILayoutRewardSlot[],\n score: number\n) {\n let selectedSlotIndex: number = 0;\n for (let i = 0; i < slots.length; i++) {\n if (score <= slots[i].maxscore) {\n selectedSlotIndex = i;\n break;\n }\n }\n return selectedSlotIndex;\n}\n","import { IGetRewards, IReward, IRewardMap } from \"../interfaces\";\nimport { post } from \"../util/api\";\nimport { sleep } from \"../util/sleep\";\n\n/* PARAM INTERFACE */\nexport interface IConsumeRewardParams {\n timeLeft?: number;\n selectedSlotIndex?: number;\n score?: number;\n generateNewReward?: boolean;\n createNewReward?: boolean;\n rewardUserId?: string;\n refreshReward?: boolean;\n}\n\n/* HELPER #1 */\nexport const fetchAllRewards = async (\n token: string,\n campaignId?: string,\n rewardUserId?: string\n): Promise => {\n let url = `${process.env.HOST_ENV}/reward/v1.1/user/reward`;\n if (campaignId) {\n url = url + \"?campaignId=\" + campaignId;\n } else if (rewardUserId) {\n url = url + \"?rewardUserId=\" + rewardUserId;\n }\n try {\n let rewards: IRewardMap = null;\n if (process.env.MODE === \"DEMO\") {\n const urlParams = new URLSearchParams(window.location.href);\n const configParam = urlParams.get(\"config\");\n if(configParam){\n rewards = {allIds:[],byId:{}};\n }else{\n rewards = await (await import(\"./mock/reward\")).default();\n }\n } else {\n const res = await post(url, {}, token);\n const body = res.parsedBody;\n if (!body || !body.success || !body.data) {\n throw `Invalid Response, ${\n body && body[\"message\"] ? \"cause: \" + body[\"message\"] : null\n }`;\n }\n rewards = body.data.rewards;\n }\n\n const currentDate = Math.floor(new Date().valueOf() / 1000);\n\n rewards.allIds = rewards.allIds.filter((id) => {\n const r = rewards.byId[id];\n if (r[\"fragmentMap\"]) {\n r.layout = {\n campaignId: r.campaignId,\n layout: {\n ...r[\"fragmentMap\"][\"fragments\"][\"reward\"],\n data: r[\"fragmentMap\"][\"data\"],\n },\n programLayout: null,\n reportingVersion: r[\"fragmentMap\"][\"reportingVersion\"],\n analyticsMeta: {\n \"campaignName\": r[\"fragmentMap\"][\"analyticsMeta\"] && r[\"fragmentMap\"][\"analyticsMeta\"] && r[\"fragmentMap\"][\"analyticsMeta\"][\"campaignName\"]\n },\n };\n }\n if (!r.layout?.layout) return false;\n if (r.experienceConsumed && r.slots) {\n const slotReward = r.slots[r.selectedSlotIndex].reward;\n if (slotReward.rewardProperties.couponExpiry?.expiry) {\n if (slotReward.rewardProperties.couponExpiry.expiry > currentDate)\n return true;\n else return false;\n }\n return true;\n } else {\n if (r.layout?.layout?.hidden) return false;\n else if (r.rewardExpiry?.expiry) {\n if (r.rewardExpiry.expiry > currentDate) return true;\n else return false;\n } else {\n return true;\n }\n }\n });\n return rewards;\n } catch (e) {\n throw e;\n }\n};\n\n/* HELPER #2 */\nexport const redeemReward = async (\n reward: IReward,\n params: IConsumeRewardParams,\n token: string\n): Promise => {\n if (process.env.MODE === \"DEMO\" || window[\"skipSeen\"]) {\n return await sleep({\n ...reward,\n seenStatus: \"CONSUME_SUCCESS\",\n status: \"redeemable-seen\",\n });\n } else {\n const url = `${process.env.HOST_ENV}/reward/v1.1/user/reward/seen`;\n try {\n const res = await post<{ reward: IReward; success: boolean }>(\n url,\n { rewardUserId: reward.rewardUserId, ...params },\n token\n );\n const body = res.parsedBody;\n\n if (!body || !body.success || !body.reward) {\n throw new Error(\"Error redeeming reward\");\n }\n const seenReward = body.reward;\n const newReward: IReward = {\n ...reward,\n experienceConsumed: seenReward.experienceConsumed,\n rewardProperties: seenReward.rewardProperties,\n seenStatus: \"CONSUME_SUCCESS\",\n status: \"redeemable-seen\",\n };\n return newReward;\n } catch (e) {\n throw e;\n }\n }\n};\n","export const sleep = async (result: any, time?: number): Promise => {\n const t = time || 0;\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n resolve(result);\n }, t);\n });\n};\n","import { Fragment, options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tif (\n\t\ttypeof vnode.type === 'function' &&\n\t\t!vnode._mask &&\n\t\tvnode.type !== Fragment\n\t) {\n\t\tvnode._mask =\n\t\t\t(vnode._parent && vnode._parent._mask ? vnode._parent._mask : '') +\n\t\t\t(vnode._parent && vnode._parent._children\n\t\t\t\t? vnode._parent._children.indexOf(vnode)\n\t\t\t\t: 0);\n\t} else if (!vnode._mask) {\n\t\tvnode._mask =\n\t\t\tvnode._parent && vnode._parent._mask ? vnode._parent._mask : '';\n\t}\n\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tconst prevScu = currentComponent.shouldComponentUpdate;\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\tcurrentComponent.shouldComponentUpdate = function(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t};\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nfunction hash(s) {\n\tlet h = 0,\n\t\ti = s.length;\n\twhile (i > 0) {\n\t\th = ((h << 5) - h + s.charCodeAt(--i)) | 0;\n\t}\n\treturn h;\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\tstate._value = 'P' + hash(currentComponent._vnode._mask) + currentIndex;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","import {\n popPageAction,\n popPageStartAction,\n pushPageAction,\n replacePageAction,\n} from \"../actions/router\";\nimport { IStoreAction } from \"../interfaces/all-store-actions\";\nimport {\n IActionHandler,\n ICtaV2,\n IStoreCtaV2,\n} from \"../interfaces/event-actions\";\nimport { IStatus } from \"../interfaces/status\";\nimport { useStatus } from \"../hooks/status\";\nimport { getStateValues } from \"../util/state-values\";\nimport { useQueryParameter } from \"./session\";\n\nexport const useActionEmitter = (\n actionHandlers: IActionHandler[],\n state: any,\n injectState?: boolean\n): [IStatus, typeof emitCta, typeof onAction] => {\n const platform = useQueryParameter(\"platform\");\n const [status, setStatus] = useStatus();\n\n const onAction: IActionHandler = (action, details) => {\n if (injectState) {\n if (details && details.state && details.state !== state) {\n details.state = { ...details.state, ...state };\n } else if (details) {\n details.state = state;\n } else {\n details = { state, analytics: null }\n }\n }\n for (let i = 0; i < actionHandlers.length; i++) {\n actionHandlers[i](action, details);\n }\n };\n\n const emitCta = (cta: ICtaV2, data?: { state: any }) => {\n setStatus({ state: \"LOADING\" });\n\n /* combine state */\n let ctaState = {};\n if (state) {\n ctaState = state;\n }\n if (data && data.state) {\n ctaState = { ...ctaState, ...data.state };\n }\n\n /* transform to store v2 */\n let storeCtaV2: IStoreCtaV2 = null;\n if (cta.target !== \"STORE_V2\") {\n storeCtaV2 = transformToStoreCtaV2(cta);\n } else {\n storeCtaV2 = cta;\n }\n\n /* get right action for the platform */\n const triggeringAction = getPlatformAction(storeCtaV2, platform);\n\n /* if action is an array */\n if (Array.isArray(triggeringAction)) {\n let index = 0;\n const sendNextAction = () => {\n const action = triggeringAction[index];\n index = index + 1;\n if (action)\n onAction(resolveActionPayload(ctaState, action, storeCtaV2), {\n state: ctaState,\n onComplete: sendNextAction,\n analytics: storeCtaV2.analytics,\n });\n else {\n console.log(\"action completed\");\n setStatus({ state: \"LOAD_SUCCESS\" });\n }\n };\n sendNextAction();\n } else {\n onAction(resolveActionPayload(ctaState, triggeringAction, storeCtaV2), {\n state: ctaState,\n onComplete: () => {\n console.log(\"action completed\");\n setStatus({ state: \"LOAD_SUCCESS\" });\n },\n analytics: storeCtaV2.analytics,\n });\n }\n };\n\n return [status, emitCta, onAction];\n};\n\nconst transformToStoreCtaV2 = (cta: ICtaV2): IStoreCtaV2 => {\n if (cta.target === \"STORE\") {\n try {\n if (\n cta.action.store === \"ROUTER\" &&\n cta.action.type === \"ROUTER_STORE PUSH PAGE\"\n ) {\n if (\n cta.action.payload[\"props\"] &&\n cta.action.payload[\"props\"][\"id\"] === \"REWARD_WRAPPER\"\n ) {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: pushPageAction({\n layout: {\n type_id: \"FULL_PAGE\",\n ui: {\n content: {\n animation: true,\n },\n css: {\n container: {},\n },\n },\n },\n content: {\n type_id: \"REWARD_WRAPPER\",\n fragment: {\n rootId: null,\n },\n filter: {\n campaignId: {\n [cta.action.payload[\"props\"][\"data\"][\"campaignId\"]]: true,\n },\n },\n },\n }),\n platform: null,\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (\n cta.action.payload?.content &&\n cta.action.payload?.content?.type_id === \"PROGRAM_WRAPPER\"\n ) {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: pushPageAction({\n layout: cta.action.payload.layout,\n content: cta.action.payload.content,\n }),\n platform: null,\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (\n cta.action.payload[\"props\"] &&\n cta.action.payload[\"props\"][\"id\"] === \"WALLET_WRAPPER\"\n ) {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: pushPageAction({\n layout: {\n type_id: \"FULL_PAGE\",\n ui: {\n content: {\n animation: true,\n },\n css: {\n container: {},\n },\n },\n },\n content: {\n type_id: \"WALLET_WRAPPER\",\n fragment: {\n rootId: null,\n },\n filter: {\n },\n },\n }),\n platform: null,\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n }\n } else if (\n cta.action.store === \"ROUTER\" &&\n cta.action.type === \"ROUTER_STORE POP PAGE START\"\n ) {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: popPageStartAction({\n isNative: cta.action.payload.isNative,\n }),\n platform: null,\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (\n cta.action.store === \"ROUTER\" &&\n cta.action.type === \"ROUTER_STORE POP PAGE\"\n ) {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: popPageAction(),\n platform: null,\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (\n cta.action.store === \"ROUTER\" &&\n cta.action.type === \"ROUTER_STORE REPLACE PAGE\"\n ) {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: replacePageAction({\n layout: cta.action?.payload?.layout,\n content: cta.action?.payload?.content,\n }),\n platform: null,\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n }\n } catch (e) {}\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: cta.action,\n platform: null,\n analytics: null,\n };\n } else if (cta.target === \"GAME_MASTER\") {\n if (cta.action === \"START\") {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: {\n store: \"REWARD_SCREEN\",\n type: \"REWARD_SCREEN CHANGE SCREEN\",\n payload: {\n screen: \"GAME\",\n },\n },\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (cta.action === \"RETRY\") {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: {\n store: \"REWARD\",\n type: \"UNCONSUME REWARD\",\n payload: {},\n },\n analytics: {\n eventName: \"TRY_AGAIN_CLICKED\",\n type: \"TRACK\",\n },\n };\n }\n } else if (cta.target === \"HREF\") {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: {\n store: \"EXTERNAL\",\n type: \"EXTERNAL OPEN_WEB_LINK\",\n payload: {\n link: cta.data.link,\n ...cta.data\n },\n },\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (cta.target === \"NATIVE\") {\n if (cta.event.eventName === \"OPEN_DEEPLINK\") {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: {\n store: \"EXTERNAL\",\n type: \"EXTERNAL OPEN_DEEPLINK\",\n payload: {\n ...cta.event.data,\n },\n },\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (cta.event.eventName === \"SHARE\") {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: {\n store: \"EXTERNAL\",\n type: \"EXTERNAL SHARE\",\n payload: {\n ...cta.event.data,\n },\n },\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n } else if (cta.event.eventName === \"CLOSE\") {\n return {\n target: \"STORE_V2\",\n name: cta.name,\n action: {\n store: \"EXTERNAL\",\n type: \"EXTERNAL CLOSE\",\n payload: null,\n },\n analytics: {\n eventName: \"BUTTON_CLICKED\",\n type: \"TRACK\",\n },\n };\n }\n }\n};\n\nconst getPlatformAction = (\n cta: IStoreCtaV2,\n platform?: string\n): IStoreAction | IStoreAction[] => {\n if (platform && cta.platform && cta.platform[platform]) {\n return cta.platform[platform].action;\n }\n return cta.action;\n};\n\nconst resolveActionPayload = (\n state: any,\n action: IStoreAction,\n cta: ICtaV2\n): IStoreAction => {\n if (cta && cta.name && !action.id) {\n action.id = cta.name;\n }\n if (action.payloadStateMap && state) {\n try {\n const newPayload = getStateValues(state, action.payloadStateMap);\n return {\n ...action,\n payload: {...action.payload, ...newPayload},\n };\n } catch (e) {\n console.log(e);\n throw new Error(\"error resolving stateMap for action\");\n }\n } else {\n return action;\n }\n};\n","import {\n CurrentPageContext,\n IPage,\n IRouterState,\n RouterContext,\n} from \"../contexts/router\";\nimport { IDispatch } from \"../interfaces/dispatch\";\nimport { useContext } from \"preact/hooks\";\nimport { IRouterAction } from \"../actions/router\";\nimport { IActionHandler } from \"../interfaces/event-actions\";\nimport { getStateValues } from \"../util/state-values\";\n\nexport function useRouter(): [IRouterState, IDispatch] {\n const context = useContext(RouterContext);\n if (context === undefined) {\n throw new Error(\"useContenxt must be used within a RouterProvider\");\n }\n return [context.state, context.dispatch];\n}\n\nexport interface ICurrentPage {\n page: IPage;\n isActive: boolean;\n}\n\nexport function useCurrentPage(): [ICurrentPage] {\n const context = useContext(CurrentPageContext);\n if (context === undefined) {\n throw new Error(\"useContenxt must be used within a CurrentPageProvider\");\n }\n return [context];\n}\n\nexport const useRouterActionHandler = (): [typeof onAction] => {\n const [state, dispatch] = useRouter();\n\n const onAction: IActionHandler = (action, details) => {\n if (action.store === \"ROUTER\") {\n try {\n if (action.payload && action.payload[\"page\"]) {\n action.payload = action.payload[\"page\"];\n }\n if(action.payloadStateMap && details?.state) {\n action.payload = {\n ...action.payload,\n ...getStateValues(details.state, action.payloadStateMap)\n }\n }\n } catch (e) {}\n dispatch(action);\n if (details && details.onComplete) {\n details.onComplete();\n }\n }\n };\n\n return [onAction];\n};\n","import { IPage } from \"../contexts/router\";\nimport { IStateMap, IStateMapGeneric } from \"../interfaces/state-map\";\nimport { IAction } from \"../interfaces/store-action\";\n\ntype IPushPageAction = IAction<\n \"ROUTER\",\n \"ROUTER_STORE PUSH PAGE\",\n IPage,\n IStateMapGeneric<\"page\">\n>;\nexport function pushPageAction(payload: IPage): IPushPageAction {\n return {\n store: \"ROUTER\",\n type: \"ROUTER_STORE PUSH PAGE\",\n payload,\n };\n}\n\ntype IPopPageAction = IAction<\"ROUTER\", \"ROUTER_STORE POP PAGE\", null>;\nexport function popPageAction(): IPopPageAction {\n return {\n store: \"ROUTER\",\n type: \"ROUTER_STORE POP PAGE\",\n payload: null,\n };\n}\n\ntype IReplacePageAction = IAction<\n \"ROUTER\",\n \"ROUTER_STORE REPLACE PAGE\",\n IPage,\n IStateMapGeneric<\"page\">\n>;\nexport function replacePageAction(payload: IPage): IReplacePageAction {\n return {\n store: \"ROUTER\",\n type: \"ROUTER_STORE REPLACE PAGE\",\n payload,\n };\n}\n\ntype IPopPageStartAction = IAction<\n \"ROUTER\",\n \"ROUTER_STORE POP PAGE START\",\n { isNative?: boolean }\n>;\nexport function popPageStartAction(payload: {\n isNative?: boolean;\n}): IPopPageStartAction {\n return {\n store: \"ROUTER\",\n type: \"ROUTER_STORE POP PAGE START\",\n payload: payload,\n };\n}\n\n/* legacy push page */\ninterface ILegacyPage {\n props: {\n id: \"REWARD_WRAPPER\";\n data: {\n idType:\n | \"REWARD_USER_ID\"\n | \"CAMPAIGN_ID\"\n | \"ACTIVTY_ID\"\n | \"EVENT_COMPLETED\";\n rewardUserId?: string;\n campaignId?: string;\n activityId?: string;\n eventCompleted?: string;\n };\n listen?: any;\n };\n config: {\n mode: \"FULL\";\n animation: boolean;\n hideClose?: boolean;\n confetti?: boolean;\n };\n}\ntype ILegacyPushPageAction = IAction<\n \"ROUTER\",\n \"ROUTER_STORE PUSH PAGE\",\n ILegacyPage\n>;\nexport function legacyPushPageAction(\n payload: ILegacyPage\n): ILegacyPushPageAction {\n return {\n store: \"ROUTER\",\n type: \"ROUTER_STORE PUSH PAGE\",\n payload,\n };\n}\n\nexport type IRouterAction =\n | IPushPageAction\n | IPopPageAction\n | IReplacePageAction\n | IPopPageStartAction;\n","import { ICSSBreakpoints, ICssPatch } from \"../interfaces/css\";\nimport { pluckValue } from \"../util/pluck\";\n\nlet SIZE: \"mobile\" | \"tablet\" | \"desktop\" = null;\nconst MAX_SIZE_BREAK_POINTS = {\n MOBILE: 480,\n TABLET: 800,\n};\n\nexport const useComponentContentStyleResolver = (ui: {\n content: any;\n css: any;\n cssBreakpoints?: ICSSBreakpoints;\n}) => {\n const { content, css, cssBreakpoints } = ui;\n\n try {\n if (cssBreakpoints && css && !css[\"__break_point_css_injected__\"]) {\n const size = getSize();\n if (cssBreakpoints[size]) {\n const breakPointStyles: ICssPatch[] = cssBreakpoints[size];\n for (let i = 0; i < breakPointStyles.length; i++) {\n const bp = breakPointStyles[i];\n const nestedTarget = pluckValue(css, bp.key);\n Object.assign(nestedTarget, bp.patchValue);\n console.log(\"here\");\n }\n }\n css[\"__break_point_css_injected__\"] = true;\n }\n } catch (e) {\n console.log(e);\n }\n\n return { content, css };\n};\n\nexport const getSize = () => {\n if (SIZE) return SIZE;\n SIZE = \"mobile\";\n if (window && window.innerWidth > MAX_SIZE_BREAK_POINTS.TABLET)\n SIZE = \"desktop\";\n else if (window && window.innerWidth > MAX_SIZE_BREAK_POINTS.MOBILE)\n SIZE = \"tablet\";\n return SIZE;\n};\n","import style from './style.css';\nimport { h } from 'preact';\n\nexport function LoadingSpinner({\n height,\n width,\n}: {\n height?: string;\n width?: string;\n}) {\n return (\n \n \n \n \n \n );\n}\n\nexport function CenterLoadingSpinner() {\n return (\n \n \n \n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"spinner\":\"spinner__TDbzi\",\"rotator\":\"rotator__IziI4\",\"path\":\"path__XxBuo\",\"dash\":\"dash__5mDJn\",\"colors\":\"colors__5OdYu\"};","interface HttpResponse extends Response {\n parsedBody?: T;\n}\n\nexport async function http(request: RequestInfo): Promise> {\n let response: HttpResponse;\n try {\n response = await fetch(request);\n // may error if there is no body\n const contentType = response.headers.get(\"content-type\");\n if (contentType && contentType.indexOf(\"application/json\") !== -1)\n response.parsedBody = await response.json();\n } catch (ex) {\n throw new Error(\"Network Error\");\n }\n\n if (!response.ok) {\n throw `API STATUS: ${response.status.toString()} ${ JSON.stringify(response?.parsedBody) }`;\n }\n return response;\n}\n\nexport async function post(\n path: string,\n body: any,\n token?: string\n): Promise> {\n const args: RequestInit = {\n method: \"post\",\n body: JSON.stringify(body),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n if (token) {\n args.headers[\"authorization\"] = `Bearer ${token}`;\n }\n return await http(new Request(path, args));\n}\n\nexport async function get(\n path: string,\n token?: string\n): Promise> {\n const args: RequestInit = {\n method: \"get\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n if (token) {\n args.headers[\"authorization\"] = `Bearer ${token}`;\n }\n return await http(new Request(path, args));\n}","import { ICSS } from \"src/interfaces/css\";\n\nexport function getChildren(\n properties: string[],\n map: { [key: string]: string[] },\n targetObject: ITargetType\n) {\n const r = pluckValue(targetObject, properties);\n return map[r] ? map[r] : [];\n}\n\nexport function getChildren2(\n content: {\n properties: string[];\n map: {\n [key: string]: string[];\n };\n else?: string[];\n },\n targetObject: ITargetType\n) {\n const r = pluckValue(targetObject, content.properties);\n if (content.map[r]) return content.map[r];\n else if (content.else) {\n return content.else;\n } else return [];\n}\n\nexport function pluckValue(targetObject: any, properties: string[]) {\n if (!targetObject || !properties.length) return null;\n let r = targetObject;\n properties.forEach((p) => {\n if (r) r = r[p];\n });\n return r;\n}\n\nexport interface IConditionalWrapperLayout {\n type_id: \"CONDITIONAL_WRAPPER\";\n ui: {\n content: {\n properties: string[];\n map: {\n [key: string]: string[];\n };\n else?: string[];\n };\n css: { container: ICSS };\n };\n}\n","import { IActivity, IBackendProgram, IProgram } from \"../interfaces\";\nimport { IBackendProgramLayout } from \"../interfaces/fragment\";\nimport {\n IReferralState,\n IReferralTier,\n IRewardLevel,\n ISelfReferral,\n ITier,\n IUserBReferral,\n} from \"../interfaces/referral\";\n\nconst LEGACY_experienceTypeMatch = {\n streak: \"streak_layout\",\n gamechallenge: \"game_challenge\",\n multiStep: \"multi_step_layout\",\n};\n\nexport function formatProgram(program: IBackendProgram): IProgram {\n let {\n stepsCompleted,\n activity,\n campaignId,\n status,\n experience,\n tier,\n userB,\n layout,\n accepted,\n checkAccepted,\n banner,\n programExpiry,\n } = program;\n\n let activities: IActivity[] =\n activity && activity.activities ? activity.activities : [];\n let programType:\n | \"referral\"\n | \"onBording\"\n | \"quiz\"\n | \"multiStep\"\n | \"streak\"\n | \"tiered-referral\"\n | \"gamechallenge\" = null;\n let isExpired: boolean = false;\n let isCompleted: boolean = false;\n let referral: IReferralState;\n\n if (programExpiry) {\n isExpired = programExpiry.expired;\n }\n\n isCompleted = status === \"completed\" ? true : false;\n\n if (experience === \"streak\") {\n programType = \"streak\";\n } else if (experience === \"referral\") {\n programType = \"referral\";\n referral = getReferralState(tier, userB);\n } else if (experience === \"multistep\") {\n programType = \"multiStep\";\n } else if (experience === \"gamechallenge\") {\n programType = \"gamechallenge\";\n if (activity && activity.activities && activity.activities.length) {\n activities = activity.activities.splice(1);\n }\n }\n\n if (!layout && program[\"fragmentMap\"]) {\n const fragment = program[\"fragmentMap\"][\"fragments\"][\"program\"];\n const newLayout: IBackendProgramLayout = {\n campaignId: campaignId,\n layout: null,\n programLayout: {\n type_id: null,\n challenge:\n fragment.programLayout[LEGACY_experienceTypeMatch[programType]],\n banner: fragment.bannerLayout,\n nudge: fragment[\"nudge\"] || fragment.programLayout[\"nudge\"],\n },\n analyticsMeta: {\n campaignName:\n program[\"fragmentMap\"][\"analyticsMeta\"] &&\n program[\"fragmentMap\"][\"analyticsMeta\"] &&\n program[\"fragmentMap\"][\"analyticsMeta\"][\"campaignName\"],\n },\n reportingVersion: program[\"fragmentMap\"][\"reportingVersion\"]\n };\n layout = { ...newLayout };\n }\n\n if (!layout) throw \"layout not found\";\n\n return {\n campaignId: campaignId,\n campaignName: banner?.title,\n status: status,\n isCompleted,\n isExpired,\n isAccepted: checkAccepted ? accepted : true,\n expiry: programExpiry?.expiry ? programExpiry.expiry * 1000 : null,\n activity: {\n stepsCompleted,\n activities,\n },\n programType,\n referral,\n layout,\n };\n}\n\nfunction getReferralState(tier: ITier, userB: IUserBReferral) {\n const state: IReferralState = {\n allIds: [],\n currentId: 0,\n title: {},\n rule: {},\n level: {},\n levelReward: {},\n selfReferral: getSelf(userB),\n otherReferrals: userB.others || [],\n };\n\n const tierCount = tier.tiers.length;\n const tiers: IReferralTier[] = tier.tiers;\n\n for (let i = 0; i < tierCount; i++) {\n if (!tiers[i]) continue;\n if (tiers[i].current) {\n state.currentId = i;\n break;\n }\n }\n\n for (let i = 0; i < tierCount; i++) {\n if (!tiers[i]) continue;\n state.allIds.push(i);\n state.level[i] = getLevel(tiers[i], i, state.currentId);\n }\n return state;\n}\n\nexport function getSelf(userB: IUserBReferral): ISelfReferral {\n if (!userB || !userB.self) return null;\n const self = userB.self;\n if (!self.valid) return null;\n const exp = new Date(self.expiresOn);\n const now = new Date();\n if (now.valueOf() >= exp.valueOf()) return null;\n let isCompleted = true;\n const activites = self.activity.activities;\n for (let i = 0; i < activites.length; i++) {\n if (activites[i].limits.campaign !== activites[i].completedCount.campaign) {\n isCompleted = false;\n break;\n }\n }\n return self;\n}\n\nexport function getLevel(\n tier: IReferralTier,\n index: number,\n currentId: number\n) {\n let level: IRewardLevel = {\n level: tier.level,\n cardImageSrc: \"\",\n body: \"\",\n totalSteps: tier.activity.activities[0].limits.campaign,\n completedSteps: tier.activity.activities[0].completedCount.campaign,\n subTitle: \"\",\n };\n\n if (index < currentId) level.subTitle = \"\";\n else if (index > currentId) level.subTitle = \"\";\n return level;\n}\n","import { IBackendProgram, IGetProgram, IProgramMap } from \"../interfaces\";\nimport { get, post } from \"../util/api\";\nimport { formatProgram } from \"../util/format-program\";\n\nexport async function fetchAllPrograms(\n token: string,\n campaignId?: string\n): Promise {\n let url = `${process.env.HOST_ENV}/reward/v1.1/user/program`;\n if (campaignId) {\n url = url + \"?campaignId=\" + campaignId;\n }\n try {\n let programs: IBackendProgram[] = [];\n if (process.env.MODE === \"DEMO\") {\n const urlParams = new URLSearchParams(window.location.href);\n const configParam = urlParams.get(\"config\");\n if(configParam){\n programs = [];\n }else{\n programs = await (await import(\"./mock/program\")).default();\n }\n \n } else {\n const res = await get(url, token);\n const body = res.parsedBody;\n if (!body || !body.success || !body.programs)\n throw `Invalid Response, ${\n body && body[\"message\"] ? \"cause: \" + body[\"message\"] : null\n }`;\n programs = body.programs;\n }\n\n const now = new Date();\n const cleanedPrograms = [];\n\n programs.forEach((p) => {\n try {\n const formattedProgram = formatProgram(p);\n cleanedPrograms.push(formattedProgram);\n } catch (e) {\n console.log(e);\n }\n });\n\n const programsMap: IProgramMap = {\n allIds: [],\n byId: {},\n };\n cleanedPrograms.forEach((p) => {\n programsMap.allIds.push(p.campaignId);\n programsMap.byId[p.campaignId] = p;\n });\n return programsMap;\n } catch (e) {\n throw e;\n }\n}\n\nexport async function checkInStreak(campaignId: string, token: string) {\n try {\n const res = await post(\n `${process.env.HOST_ENV}/state/v1.1/processEvents`,\n {\n event: \"CHECK_IN\",\n properties: {\n gluState: 1,\n },\n },\n token\n );\n const body = res.parsedBody;\n if (!body || !body[\"success\"]) throw \"checkin failed\";\n const programs = await fetchAllPrograms(token, campaignId);\n return programs;\n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n\nexport async function acceptChallenge(campaignId: string, token: string) {\n try {\n const url = `${process.env.HOST_ENV}/reward/v1.1/user/program/accept`;\n const res = await post(url, { campaignId, choice: \"accept\" }, token);\n\n const body = res.parsedBody;\n if (!body || !body[\"success\"]) throw \"accept failed\";\n const programs = await fetchAllPrograms(token, campaignId);\n return programs;\n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n","import { useContext, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { IProgram, IProgramMap } from \"../interfaces\";\nimport { IProgramFilter } from \"../interfaces/campaign-filter\";\nimport { IProgramsState, ProgramsContext } from \"../contexts/program\";\nimport { IStatus } from \"../interfaces/status\";\nimport { IDispatch } from \"../interfaces/dispatch\";\nimport { IProgramActions, setProgramsAction } from \"../actions/program\";\nimport { useSession } from \"./session\";\nimport { useStatus } from \"./status\";\nimport {\n acceptChallenge,\n checkInStreak,\n fetchAllPrograms,\n} from \"../network/program\";\nimport { IActionHandler } from \"../interfaces/event-actions\";\nimport { getVariableValue } from \"../util/state-variable-operation\";\nimport { checkCondition } from \"../util/conditional-operation\";\nimport { useAutoRefresh } from \"./auto-refresh\";\n\nexport function usePrograms(): [IProgramsState, IDispatch] {\n const context = useContext(ProgramsContext);\n if (context === undefined) {\n throw new Error(\"usePrograms must be used within a ProgramsProvider\");\n }\n return [context.state, context.dispatch];\n}\n\nexport const useProgramsFilter = (\n filter?: IProgramFilter\n): [IProgramMap, IStatus, typeof refresh] => {\n const [programState, programDispatch] = usePrograms();\n const [session] = useSession();\n const [status, setStatus] = useStatus();\n useAutoRefresh([refresh]);\n\n useEffect(() => {\n if (programState.allProgramsLoaded) {\n setStatus({ state: \"LOAD_SUCCESS\" });\n } else {\n requestPrograms();\n }\n }, [filter]);\n\n const requestPrograms = async (skipLoading?: boolean) => {\n try {\n if(!skipLoading) setStatus({ state: \"LOADING\" });\n let campaignId: string = null;\n if (filter) {\n campaignId = getSingleIdFromFilter(\"campaignId\", filter) as string;\n }\n const programMap: IProgramMap = await fetchAllPrograms(\n session.token,\n campaignId\n );\n programDispatch(\n setProgramsAction({\n programMap,\n allProgramsLoaded: filter ? false : true,\n })\n );\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"error loading programs\" });\n }\n };\n\n function refresh() {\n requestPrograms(true);\n }\n\n const matched: IProgramMap = useMemo(() => {\n if (filter) return filterPrograms(programState, filter);\n else return programState;\n }, [filter, programState.byId]);\n\n return [matched, status, refresh];\n};\n\nexport const useSingleProgramFilter = (\n filter: IProgramFilter\n): [IProgram | null, IStatus] => {\n if (!filter) throw new Error(\"Filter Missing\");\n const [session] = useSession();\n const [programState, programDispatch] = usePrograms();\n const [status, setStatus] = useStatus();\n useAutoRefresh([requestProgram]);\n\n useEffect(() => {\n const program = filterSingleProgram(programState, filter);\n if (program) {\n setStatus({ state: \"LOAD_SUCCESS\" });\n } else {\n requestProgram();\n }\n }, [filter]);\n\n async function requestProgram() {\n setStatus({ state: \"LOADING\" });\n try {\n const programMap: IProgramMap = await fetchAllPrograms(\n session.token,\n getSingleIdFromFilter(\"campaignId\", filter)\n );\n programDispatch(setProgramsAction({ programMap }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"error loading program\" });\n }\n }\n\n const matched: IProgram = useMemo(() => {\n if (filter) return filterSingleProgram(programState, filter);\n else return null;\n }, [filter, programState.byId]);\n\n let mainStatus: IStatus = status;\n if (matched)\n mainStatus = {\n state: \"LOAD_SUCCESS\",\n };\n\n return [matched, mainStatus];\n};\n\nexport const useProgramActionHandler = (): [IStatus, typeof onAction] => {\n const [status, setStatus] = useStatus();\n const [programState, programDispatch] = usePrograms();\n const [session] = useSession();\n\n const onAction: IActionHandler = async (action, details) => {\n if (action.store === \"PROGRAM\") {\n if (action.type === \"ACCEPT\") {\n setStatus({ state: \"LOADING\" });\n try {\n const programsMap = await acceptChallenge(\n action.payload.campaignId,\n session.token\n );\n programDispatch(setProgramsAction({ programMap: programsMap }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"failed to accept\" });\n }\n } else if (action.type === \"CHECK_IN\") {\n setStatus({ state: \"LOADING\" });\n try {\n const programsMap = await checkInStreak(\n action.payload.campaignId,\n session.token\n );\n programDispatch(setProgramsAction({ programMap: programsMap }));\n setStatus({ state: \"LOAD_SUCCESS\" });\n } catch (e) {\n console.log(e);\n setStatus({ state: \"LOAD_ERROR\", message: \"failed to accept\" });\n }\n } else if (action.type === \"SET PROGRAM\") {\n programDispatch(action);\n }\n }\n };\n\n return [status, onAction];\n};\n\nconst getSingleIdFromFilter = (property: string, filter: IProgramFilter) => {\n const obj = filter[property] as any;\n if (!obj) return null;\n const keys = Object.keys(obj);\n if (keys.length !== 1) return null;\n return keys[0];\n};\n\nconst didProgramMatch = (\n program: IProgram,\n filter: IProgramFilter\n): boolean => {\n if (!filter) return true;\n if (!program) throw new Error(\"program not passed\");\n if (filter.campaignId && !filter.campaignId[program.campaignId]) return false;\n if (filter.type && !filter.type[program.programType]) return false;\n if (\n filter.isAccepted !== undefined &&\n filter.isAccepted !== program.isAccepted\n )\n return false;\n if (\n filter.isAccepted !== undefined &&\n filter.isAccepted !== program.isAccepted\n )\n return false;\n if (\n filter.isCompleted !== undefined &&\n filter.isCompleted !== program.isCompleted\n )\n return false;\n if (filter.isExpired !== undefined && filter.isExpired !== program.isExpired)\n return false;\n\n if (filter.condition) {\n const condition = filter.condition;\n const leftValue = getVariableValue({ program }, condition.leftOperand);\n const rightValue = getVariableValue({ program }, condition.rightOperand);\n const didMatch = checkCondition(leftValue, rightValue, condition.operator);\n if (!didMatch) return false;\n }\n return true;\n};\n\nconst filterPrograms = (\n state: IProgramMap,\n filter: IProgramFilter\n): IProgramMap => {\n const matched: IProgramMap = { allIds: [], byId: {} };\n if (!filter) return matched;\n for (let i = 0; i < state.allIds.length; i++) {\n const p = state.byId[state.allIds[i]];\n if (didProgramMatch(p, filter)) {\n matched.allIds.push(p.campaignId);\n matched.byId[p.campaignId] = p;\n }\n }\n return matched;\n};\n\nconst filterSingleProgram = (\n state: IProgramMap,\n filter: IProgramFilter\n): IProgram | null => {\n if (filter.campaignId) {\n const keys = Object.keys(filter.campaignId);\n if (keys.length === 1 && state.byId[keys[0]]) {\n return state.byId[keys[0]];\n }\n }\n for (let i = 0; i < state.allIds.length; i++) {\n const p = state.byId[state.allIds[i]];\n if (didProgramMatch(p, filter)) {\n return p;\n }\n }\n return null;\n};\n","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","import { h, Component } from 'preact';\n\nconst PENDING = {};\n\n// Given a VNode, finds its previous element sibling\nfunction getPreviousSibling(vnode, inner) {\n\t// in an element parent with no preceeding siblings means we're the first child\n\tif (typeof vnode.type === 'string') return null;\n\tconst parent = vnode.__;\n\tif (!parent) return;\n\tlet children = parent.__k;\n\tif (children) {\n\t\tif (!Array.isArray(children)) children = [children];\n\t\t// only search previous children\n\t\tlet end = children.indexOf(vnode);\n\t\tif (end === -1) end = children.length;\n\t\tfor (let i=end; i--; ) {\n\t\t\tconst child = children[i];\n\t\t\tconst dom = child && child.__e || getPreviousSibling(child, true);\n\t\t\tif (dom) return dom;\n\t\t}\n\t}\n\tif (!inner) return getPreviousSibling(parent);\n}\n\nexport default function async(load) {\n\tlet component;\n\n\tfunction AsyncComponent() {\n\t\tComponent.call(this);\n\n\t\tif (!component) {\n\t\t\tthis.componentWillMount = () => {\n\t\t\t\tload((mod) => {\n\t\t\t\t\tcomponent = (mod && mod.default) || mod;\n\t\t\t\t\tthis.setState({});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis.shouldComponentUpdate = () => component != null;\n\t\t}\n\n\t\tthis.render = (props) => {\n\t\t\tif (component) {\n\t\t\t\treturn h(component, props);\n\t\t\t}\n\n\t\t\tconst prev = getPreviousSibling(this.__v);\n\t\t\tconst me = prev && prev.nextSibling || (this.__P || this._parentDom).firstChild;\n\n\t\t\treturn (\n\t\t\t\tme &&\n\t\t\t\th(me.localName, {\n\t\t\t\t\tdangerouslySetInnerHTML: PENDING,\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t}\n\n\tAsyncComponent.preload = load;\n\t(AsyncComponent.prototype = new Component()).constructor = AsyncComponent;\n\n\treturn AsyncComponent;\n}\n","\n\t\timport Async from \"../../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-activtiy-game-root-1\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../../../node_modules/@preact/async-loader/async.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tvar result = require(\"!!../../../../node_modules/babel-loader/lib/index.js??ref--4!./index.tsx\");\n\t\t\t\ttypeof cb === 'function' && cb(result);\n\t\t\t}, \"route-game-challenge-root-1\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {\n IAnalyticsConfig,\n IClientConfig,\n IThemeConfig,\n} from \"../interfaces/client-configurations\";\nimport { IAllErrorFragments, IAllLoadingFragments, IAllWalletFragments } from \"../interfaces/client-level-fragments\";\nimport { IAction } from \"../interfaces/store-action\";\n\ntype IUpdateClientConfigurations = IAction<\n \"CLIENT CONFIGURATIONS\",\n \"UPDATE CLIENT CONFIGURATIONS\",\n {\n client?: IClientConfig;\n wallet?: IAllWalletFragments;\n theme?: IThemeConfig;\n analytics?: IAnalyticsConfig;\n error?: IAllErrorFragments;\n loading?: IAllLoadingFragments;\n }\n>;\nexport function updateClientConfigurations(payload: {\n client?: IClientConfig;\n wallet?: IAllWalletFragments;\n theme?: IThemeConfig;\n analytics?: IAnalyticsConfig;\n error?: IAllErrorFragments;\n loading?: IAllLoadingFragments;\n}): IUpdateClientConfigurations {\n return {\n store: \"CLIENT CONFIGURATIONS\",\n type: \"UPDATE CLIENT CONFIGURATIONS\",\n payload,\n };\n}\n\nexport type IClientConfigurationsAction = IUpdateClientConfigurations;\n","import { IClientConfigurationState } from \"../contexts/client-configurations\";\nimport { IConfigurationResponse } from \"../interfaces/client-configurations\";\nimport { get } from \"../util/api\";\n\nexport async function fetchConfigurations(token: string, config: string[]) {\n let end_point = `${process.env.HOST_ENV}/reward/v1.1/client/config?`;\n end_point = end_point + \"config=\";\n config.map((value) => {\n end_point = end_point + value + \",\";\n });\n\n try {\n let body: IConfigurationResponse = null;\n if (process.env.MODE === \"DEMO\") {\n body = (await import(\"./mock/client-configurations\")).default();\n } else {\n try {\n const res = await get(end_point, token);\n body = res.parsedBody;\n if (!body || !body.success || !body.data) {\n throw `Invalid Response, ${\n body && body[\"message\"] ? \"cause: \" + body[\"message\"] : null\n }`;\n }\n } catch (e) {\n console.log(e);\n body = (await import(\"./mock/client-configurations\")).default();\n }\n }\n\n const configData = body?.data;\n\n const data: IClientConfigurationState = {\n client: configData?.client,\n analytics: configData?.analytics,\n wallet: configData?.wallet,\n theme: configData?.client?.theme,\n loading: configData?.loading,\n error: configData?.error,\n };\n\n if (!data.wallet && config.includes(\"wallet\")) {\n const mock = (await import(\"./mock/client-configurations\")).default();\n data.wallet = mock.data.wallet;\n }\n\n return data;\n } catch (e) {\n throw e;\n }\n}\n","import { useContext, useEffect } from \"preact/hooks\";\nimport {\n IClientConfigurationsAction,\n updateClientConfigurations,\n} from \"../actions/client-configurations\";\nimport {\n ClientConfigurationContext,\n IClientConfigurationState,\n} from \"../contexts/client-configurations\";\nimport { IAllWalletFragments, IClientFragments } from \"../interfaces/client-level-fragments\";\nimport { IDispatch } from \"../interfaces/dispatch\";\nimport { IStatus } from \"../interfaces/status\";\nimport { fetchConfigurations } from \"../network/client-configurations\";\nimport { getFromLocalStorage, setToLocalStorage } from \"../util/localstorage\";\nimport { useSession } from \"./session\";\nimport { useStatus } from \"./status\";\n\nexport function useClientConfigurations(): [\n IClientConfigurationState,\n IDispatch\n] {\n const context = useContext(ClientConfigurationContext);\n if (context === undefined) {\n throw new Error(\"initialise the client configuration context provoder\");\n }\n return [context.state, context.dispatch];\n}\n\nexport const useClientConfigurationsInitilizer = (): IStatus => {\n const [status, setStatus] = useStatus({ state: \"LOADING\" });\n const [session] = useSession();\n const [configState, configDispatch] = useClientConfigurations();\n\n useEffect(() => {\n if (session.token) {\n load();\n }\n }, [session.token]);\n\n const load = async () => {\n try {\n let localConfig: IClientConfigurationState = getFromLocalStorage(\n \"__GLU__CLIENT_CONFIG\"\n );\n if (localConfig && 0) {\n configDispatch(updateClientConfigurations(localConfig));\n setStatus({ state: \"LOAD_SUCCESS\" });\n try {\n setTimeout(async () => {\n const networkConfig = await fetchConfigurations(session.token, [\n \"wallet\",\n \"client\",\n \"analytics\",\n \"error\",\n \"loading\",\n ]);\n if (networkConfig) {\n setToLocalStorage(\"__GLU__CLIENT_CONFIG\", networkConfig, 5);\n }\n }, 3000);\n } catch (e) {}\n } else {\n const networkConfig = await fetchConfigurations(session.token, [\n \"wallet\",\n \"client\",\n \"analytics\",\n \"error\",\n \"loading\",\n ]);\n if (networkConfig) {\n configDispatch(updateClientConfigurations(networkConfig));\n setToLocalStorage(\"__GLU__CLIENT_CONFIG\", networkConfig, 5);\n setStatus({ state: \"LOAD_SUCCESS\" });\n } else {\n throw new Error(\"client configurations not found\");\n }\n }\n } catch (e) {\n setStatus({\n state: \"LOAD_ERROR\",\n message: \"failed to fetch client config\",\n });\n }\n };\n\n return status;\n};\n\nexport const useWalletConfig = (): [IAllWalletFragments] => {\n const [state] = useClientConfigurations();\n return [state.wallet];\n};\nexport const useBackButtonConfig = (): [IClientFragments]=> {\n const [state] = useClientConfigurations();\n return [state.client.backButton];\n};","interface IStorage {\n savedAt: Date;\n expiresAt: Date;\n data: any;\n version?: any;\n}\n\nexport const getFromLocalStorage = (key: string): T => {\n try {\n const storageDataString = localStorage.getItem(key);\n if (!storageDataString) return null;\n const storageData = JSON.parse(storageDataString) as IStorage;\n if (storageData.expiresAt) {\n const now = new Date();\n const exp = new Date(storageData.expiresAt);\n\n if (now.valueOf() > exp.valueOf()) return null;\n }\n return storageData.data;\n } catch (e) {\n return null;\n }\n};\n\nexport const setToLocalStorage = (key: string, data: any, expiry?: number) => {\n try {\n const now = new Date();\n let exp: Date = null;\n if (expiry) {\n exp = new Date();\n exp.setHours(exp.getHours() + expiry);\n }\n const storageData: IStorage = {\n savedAt: now,\n expiresAt: exp,\n data,\n };\n localStorage.setItem(key, JSON.stringify(storageData));\n } catch (e) {\n console.log(e);\n }\n};\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix