{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./contexts/program.tsx","webpack:///./util/state-variable-operation.ts","webpack:///./hooks/asset-loader.ts","webpack:///./hooks/user.ts","webpack:///./network/user.ts","webpack:///./actions/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","dispatch","useReducer","initialState","useMemo","ProgramsContext","Provider","children","referralLink","createContext","getVariableValue","variable","result","initialValue","initialOperand","type_id","constantValue","pluckValue","stateValue","operations","operation","replaceVariablesInText","Math","round","operand","JSON","stringify","replace","variableValues","map","replaceKeys","log","fallbackText","useAssetLoader","fragment","status","setStatus","useStatus","useEffect","loadImageAssets","srcs","complete","count","inc","forEach","img","Image","useUser","sessionState","useSession","context","useContext","UserContext","useUserInitilizer","userState","userDispatch","session","token","requestUser","async","user","res","body","parsedBody","success","fetchUser","store","useUserActionHandler","FlushPendingEvents","delayRequest","obj","reportingVersion","sendV3Analytics","analyticsObj","sendV4Analytics","pendingEvents","v3Helper","default","analyticObj","v4Helper","useAnalytics","rootTypeId","rootId","pageName","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","localStorage","getItem","fetchUserId","nanoid","setItem","generateUserId","reqBody","customAttributes","gluAttributes","post","requestUserToken","userIdentification","userAttributes","fetchBannerData","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","onAction","onRouterAction","useRouterActionHandler","onExternalAction","useExternalActionHandler","mainError","onCurrentAction","details","selectedFragment","root","screen","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","url","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","onComplete","newReward","params","generateConsumeRewardParams","seenReward","requestConsumeReward","generateConsumeGenerateRewardParams","requestGenerateConsumeReward","generateRetryRewardParams","requestRetryReward","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","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","fetch","contentType","headers","json","ex","ok","method","Request","getChildren2","targetObject","properties","else","formatProgram","referral","stepsCompleted","activity","tier","userB","accepted","checkAccepted","banner","programExpiry","activities","programType","isExpired","isCompleted","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","urlParams","cleanedPrograms","formattedProgram","programsMap","usePrograms","streak","gamechallenge","multiStep","useProgramsFilter","requestPrograms","programState","programDispatch","setProgramsAction","filterPrograms","useSingleProgramFilter","requestProgram","filterSingleProgram","mainStatus","useProgramActionHandler","choice","acceptChallenge","gluState","checkInStreak","didProgramMatch","crypto","getRandomValues","Uint8Array","reduce","byte","toUpperCase","getPreviousSibling","inner","__k","end","child","dom","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","configState","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","process","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","isValidElement","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","walletConfig","useWalletScreenManager","onAnalyticsAction","emit","RewardWrapper","rewardLoadStatus","onRewardScreenAction","setScreen","listener","game","intro","useRewardFragmentManager","onRewardAction","ThemeWrapper","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","variables","applyTheme","Portal","pop","pageStack","unshift","PageFrame","zIndex","PageContent","hidePreviousPages","resetError","Main","onRouterEvent","tokenStatus","confgStatus","userStatus","onUserAction","onSessionAction","isLoaded","useExternalEventListener","App","openInSameTab","open","getConditionalResult","caseMap","cases","singleCase","didMatch","conditions","defaultResult","nestedPropertyName","acceptProgramAction","LoadingWrapper","mainLoading","loadedFonts","loadFont","font","append","loadGoogleFont","fontFaces","variants","v","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","router"],"mappings":"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","file":"bundle.2655e.esm.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\":\"49b70\",\"1\":\"24566\",\"2\":\"c24b3\",\"3\":\"2f73b\",\"4\":\"dd5d6\",\"7\":\"438f8\",\"8\":\"8a0c4\",\"9\":\"92a2e\",\"10\":\"6ebc9\",\"11\":\"815dd\",\"12\":\"7293f\",\"13\":\"8d0b6\",\"14\":\"30bf5\",\"15\":\"cef85\",\"16\":\"d3c8c\",\"17\":\"af3a0\",\"18\":\"33d7e\",\"19\":\"e7830\",\"20\":\"ed39c\",\"21\":\"c2293\",\"22\":\"d1825\",\"23\":\"42fdc\",\"24\":\"5ad71\",\"25\":\"e5900\",\"26\":\"eea2c\",\"27\":\"1e1cf\",\"28\":\"c4a9c\",\"29\":\"dbe17\",\"30\":\"f912a\",\"31\":\"0b23c\",\"32\":\"3e188\",\"33\":\"8b905\",\"34\":\"52286\",\"35\":\"79688\",\"36\":\"15efb\",\"37\":\"62259\",\"38\":\"7a22e\",\"39\":\"04fb6\",\"40\":\"8585f\",\"41\":\"a771e\",\"42\":\"ec8c1\",\"43\":\"115b2\",\"44\":\"ae5ed\",\"45\":\"cddd7\",\"46\":\"bc136\",\"47\":\"e31be\",\"48\":\"74f65\",\"49\":\"c6d85\",\"50\":\"1db2c\",\"51\":\"2d717\",\"52\":\"b80a8\",\"53\":\"b9500\",\"54\":\"726c1\",\"55\":\"4a3b5\",\"56\":\"2ee71\",\"57\":\"357e5\",\"58\":\"83ffb\",\"59\":\"17e54\",\"60\":\"809ce\",\"61\":\"1d1b0\",\"62\":\"b246b\",\"63\":\"b9bbd\",\"64\":\"28322\",\"65\":\"32980\",\"66\":\"8b2ae\",\"67\":\"c96ac\",\"68\":\"3eff1\",\"69\":\"e2d58\",\"70\":\"c376a\",\"71\":\"a6500\",\"72\":\"1ed21\",\"73\":\"4d9f8\",\"74\":\"3cc7f\",\"75\":\"c1680\",\"76\":\"bd03c\",\"77\":\"052bb\",\"78\":\"def59\",\"79\":\"eb832\",\"80\":\"ed78c\",\"81\":\"8926c\",\"82\":\"1cbad\"}[chunkId] + \".esm.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 { 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 { 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 { 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 { 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