(function () { var TOKEN_KEYS = ["token", "access_token", "accessToken"]; var APP_CODE_KEYS = ["app_code", "appCode"]; var USER_READY_EVENT = "hyapp:user-ready"; var USER_ERROR_EVENT = "hyapp:user-error"; function query() { var params = new URLSearchParams(window.location.search); var hash = window.location.hash || ""; if (hash.indexOf("?") >= 0) { new URLSearchParams(hash.split("?").slice(1).join("?")).forEach(function (value, key) { if (!params.has(key)) params.set(key, value); }); } return params; } function first(params, keys) { for (var i = 0; i < keys.length; i += 1) { var value = params.get(keys[i]); if (value) return value; } return ""; } function parse() { var params = query(); var token = first(params, TOKEN_KEYS); var appCode = first(params, APP_CODE_KEYS) || window.localStorage.getItem("hyapp_app_code") || "lalu"; if (window.HyAppAPI) { if (token) window.HyAppAPI.setAccessToken(token); if (appCode) window.HyAppAPI.setAppCode(appCode); } return { token: token || (window.HyAppAPI && window.HyAppAPI.getAccessToken ? window.HyAppAPI.getAccessToken() : ""), app_code: appCode, raw: params }; } function emit(name, detail) { window.dispatchEvent(new CustomEvent(name, { detail: detail })); } function loadUser() { var current = parse(); if (!current.token || !window.HyAppAPI) { return Promise.resolve(null); } return window.HyAppAPI.get("/api/v1/users/me/overview").then(function (userInfo) { current.user = userInfo; window.HyAppParams.current = current; emit(USER_READY_EVENT, current); return current; }).catch(function (error) { current.error = error; window.HyAppParams.current = current; emit(USER_ERROR_EVENT, current); throw error; }); } window.HyAppParams = { parse: parse, loadUser: loadUser, current: parse(), USER_READY_EVENT: USER_READY_EVENT, USER_ERROR_EVENT: USER_ERROR_EVENT }; })();