woodsportal-client-sdk 1.1.4-dev.8 → 1.1.4-dev.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -816,7 +816,7 @@ var Client = {
|
|
|
816
816
|
resetPasswordVerifyToken: (data) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD_VERIFY_TOKEN, data),
|
|
817
817
|
resetPassword: (data) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD, data),
|
|
818
818
|
forgetPassword: (data) => AuthHttpClient.post(API_ENDPOINTS.FORGET_PASSWORD, data),
|
|
819
|
-
registerExistingUser: (data) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),
|
|
819
|
+
registerExistingUser: (data) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data?.payload),
|
|
820
820
|
verifyEmailResend: (data) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),
|
|
821
821
|
resendEmail: (data) => AuthHttpClient.post(API_ENDPOINTS.RESEND_EMAIL, data),
|
|
822
822
|
logout: () => HttpClient.post(API_ENDPOINTS.LOGOUT, null)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/constants.ts","../src/utils/cookie.ts","../src/clint/auth-utils.ts","../src/clint/token-store.ts","../src/utils/config.ts","../src/utils/localStoraget.ts","../src/utils/generateApiUrl.ts","../src/clint/api-endpoints.ts","../src/clint/http-clint.ts","../src/clint/config.ts","../src/data/user.ts","../src/utils/compress.ts","../src/breadcrumb/url-utils.ts","../src/breadcrumb/key-map.ts","../src/utils/param.ts","../src/breadcrumb/param.ts","../src/breadcrumb/url.ts","../src/clint/index.ts","../src/mutation/createMutation.ts","../src/apis/authentication.ts","../src/apis/sso.ts","../src/apis/users.ts","../src/store/index.ts","../src/utils/getCookieData.ts","../src/store/use-table.ts","../src/apis/pipeline.ts","../src/apis/stage.ts","../src/apis/object.ts","../src/apis/note.ts","../src/apis/email.ts","../src/apis/uploader.ts","../src/apis/file.ts","../src/index.ts","../src/breadcrumb/breadcrumbs.ts","../src/breadcrumb/generate-url.ts"],"names":["getRefreshToken","url","config","keyMap","getDeep","list","create","update","details","lastItem"],"mappings":"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","file":"index.js","sourcesContent":["// cookies\nexport const LOGIN_DETAILS = \"loginDetails\";\nexport const REFRESH_TOKEN = \"refreshToken\";\nexport const PORTAL = \"portal\";\nexport const SUBSCRIPTION_TYPE = \"ssubscriptionType\";\n\n// variables\nexport const HUBSPOT_DATA = \"hubSpotData\";\nexport const HUB_ID = \"hubId\";\nexport const DEV_PORTAL_ID = \"devPortalId\";\nexport const PORTAL_ID = \"portalId\";\n","import Cookies from 'js-cookie';\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: 'none',\n secure: true,\n });\n}\n\nexport const getCookie: any = (key: any) => {\n return Cookies.get(key);\n}\n\nexport const removeCookie = (key: any) => {\n return Cookies.remove(key);\n}\n\nexport const removeAllCookie = () => {\n Object.keys(Cookies.get()).forEach((cookieName) => {\n Cookies.remove(cookieName);\n });\n}\n\n// export const isCookieExpired = (key: string): boolean => {\n// const value = Cookies.get(key);\n// return value === undefined; // true means expired or never set\n// };\n\n\nexport const isCookieExpired = (key: string): boolean => {\n const value: any = Cookies.get(key);\n try {\n const { expiresAt } = JSON.parse(value);\n return Date.now() > expiresAt ? true : false;\n } catch {\n return false; // if invalid format, treat as valid\n }\n};","/**\n * Authentication utility functions\n * These handle refresh token management\n */\n\nimport { LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE } from '../utils/constants';\nimport { setCookie, getCookie } from '../utils/cookie';\nimport { storAccessToken } from './token-store';\n\n// Set data\nexport const setLoggedInDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(LOGIN_DETAILS, JSON.stringify(data));\n resolve();\n });\n};\n\nexport function setRefreshToken(token: string, expiresAt: number) {\n return new Promise((resolve: any) => {\n setCookie(REFRESH_TOKEN, JSON.stringify(token), expiresAt);\n resolve();\n });\n}\n\nexport function setAccessToken(token: string, expiresIn?: number) {\n return new Promise((resolve: any) => {\n storAccessToken(token, expiresIn);\n resolve();\n });\n}\n\nexport const setPortal = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(PORTAL, JSON.stringify(data));\n resolve();\n });\n};\n\nexport const setSubscriptionType = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(SUBSCRIPTION_TYPE, JSON.stringify(data));\n resolve();\n });\n};\n\n// Get data\nexport function getProfile(): string | null {\n return JSON.parse(getCookie(LOGIN_DETAILS || null) || null);\n}\n\nexport function getRefreshToken(): string | null {\n return JSON.parse(getCookie(REFRESH_TOKEN || null) || null);\n}\n\nexport function getPortal(): any | null {\n return JSON.parse(getCookie(PORTAL || null) || null);\n}\n\nexport function getSubscriptionType(): string | null {\n return JSON.parse(getCookie(SUBSCRIPTION_TYPE || null) || null);\n}\n\n// Remove data\n// export const removeAllCookies = () => {\n// const cookies = document.cookie.split(\"; \");\n// cookies.forEach((cookie) => {\n// const name = cookie.split(\"=\")[0];\n// removeCookie(name);\n// });\n// };","/**\n * Token storage utilities\n * These functions handle access token management\n */\n\nimport { isCookieExpired } from '../utils/cookie.js';\nimport { REFRESH_TOKEN } from '../utils/constants';\n\nlet accessToken: string | null = null;\nlet tokenExpiresAt: number | null = null;\nlet refreshCallback: ((refreshToken: string) => Promise<{ token: string | null; success: boolean }>) | null = null;\n\nexport function getAccessToken(): string | null {\n return accessToken;\n}\n\nexport function storAccessToken(token: string, expiresIn?: number): void {\n accessToken = token;\n if (expiresIn) {\n tokenExpiresAt = Date.now() + expiresIn * 1000;\n } else {\n tokenExpiresAt = null;\n }\n}\n\nexport function clearAccessToken(): void {\n accessToken = null;\n tokenExpiresAt = null;\n}\n\nexport function isExpiresAccessToken(): boolean {\n if (!tokenExpiresAt) return true;\n return Date.now() >= tokenExpiresAt;\n}\n\n/**\n * Set the refresh callback function\n * This is called by the HTTP client during initialization\n */\nexport function setRefreshCallback(callback: (refreshToken: string) => Promise<{ token: string | null; success: boolean }>): void {\n refreshCallback = callback;\n}\n\n/**\n * Ensures the access token is valid, refreshing if necessary\n */\nexport async function ensureValidRefresh(): Promise<void> {\n if (isExpiresAccessToken() && refreshCallback) {\n const { getRefreshToken } = await import('./auth-utils.js');\n const refreshToken = getRefreshToken();\n if (refreshToken) {\n await refreshCallback(refreshToken);\n }\n }\n}\n\nexport function isAuthenticateApp() {\n if (isCookieExpired(REFRESH_TOKEN) || isExpiresAccessToken()) {\n return false;\n }\n return true;\n}","import { Config, HubspotStorage } from \"../types\";\nimport { HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID, PORTAL_ID } from \"./constants\";\nimport { storage } from \"./localStoraget\";\n\nexport const config = {\n get hubId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[HUB_ID] || \"\";\n },\n get devPortalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[DEV_PORTAL_ID] || \"\";\n },\n get portalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[PORTAL_ID] || \"\";\n },\n} satisfies Config;\n\nexport const setConfig = {\n setDevPortalId(portalId: string) {\n const existing = storage.get<HubspotStorage>(HUBSPOT_DATA) || {};\n\n storage.set(HUBSPOT_DATA, {\n ...existing,\n [PORTAL_ID]: portalId,\n });\n },\n};","// export const setLocalStorage = (key: string, value: string) => {\n// return localStorage.setItem(key, JSON.stringify(value));\n// }\n\n// export const getLocalStorage: any = (key: any) => {\n// let data = null;\n// const storedUser = localStorage.getItem(key);\n// if (storedUser) {\n// data = JSON.parse(storedUser);\n// }\n// return data\n// }\n\n// export const removeLocalStorage = (key: any) => {\n// return Cookies.remove(key);\n// }\n\n// export const removeAllLocalStorage = () => {\n// Object.keys(Cookies.get()).forEach((cookieName) => {\n// Cookies.remove(cookieName);\n// });\n// }\n\nexport const storage = {\n set: (key: string, value: any) => {\n localStorage.setItem(key, JSON.stringify(value));\n },\n\n get: <T>(key: string): T | null => {\n const item = localStorage.getItem(key);\n return item ? JSON.parse(item) : null;\n },\n\n remove: (key: string) => {\n localStorage.removeItem(key);\n },\n};","import { config } from '../utils/config'\n\nexport const generateApiUrl = ({\n route,\n params = {},\n queryParams = '',\n}: {\n route: string;\n params?: Object;\n queryParams?: any;\n}) => {\n const defaultParams = {\n hubId: config.hubId,\n portalId: config.portalId,\n };\n\n params = { ...defaultParams, ...params };\n const url = replaceParams(route, params)\n\n let queryString = '';\n if (queryParams && typeof queryParams === 'object') {\n const cleanedParams = Object.entries(queryParams)\n .filter(([_, value]) => value !== null && value !== undefined)\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n\n queryString = new URLSearchParams(cleanedParams).toString();\n }\n\n return queryString ? `${url}?${queryString}` : url;\n}\n\nfunction replaceParams(\n template: string,\n values: any\n) {\n return template.replace(/\\$\\{(\\w+)\\}/g, (_, key) =>\n key in values ? String(values[key]) : `\\${${key}}`\n );\n}","export const API_ENDPOINTS: any = {\n // Auth\n PRE_LOGIN: \"/api/auth/pre-login\",\n LOGIN: \"/api/auth/login\",\n AUTH_REFRESH: \"/api/auth/refresh\",\n FORGET_PASSWORD: \"/api/auth/forget-password\",\n RESET_PASSWORD_VERIFY_TOKEN: \"/api/auth/token/validate\",\n RESET_PASSWORD: \"/api/auth/reset-password\",\n VERIFY_EMAIL: \"/api/auth/verify-email\",\n REGISTER_EXISTING_USER: \"/api/auth/existing-user-register\",\n RESEND_EMAIL: \"/api/auth/resend-email\",\n LOGOUT: \"/api/auth/logout\",\n\n // SSO\n SSO_DETAILS: \"/api/auth/sso/active\",\n SSO_URL: \"/api/auth/sso/authorize\",\n SSO_CALLBACK: \"/api/auth/sso/callback\",\n\n // User\n ME: \"/api/auth/me\",\n PROFILE: \"/api/${hubId}/${portalId}/profiles\",\n CHANGE_PASSWORD: \"/api/auth/change-password\",\n\n // Pipeline\n PIPELINES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${hubspotObjectTypeId}\",\n\n // Stage\n STAGES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${objectTypeId}/${pipelineId}/stages\",\n\n // Object\n OBJECTS: \"api/${hubId}/${portalId}/hubspot-object-data/${hubspotObjectTypeId}\",\n OBJECTS_FORM: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_FORM_OPTIONS: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromRecordId/:fromObjectTypeId\",\n OBJECTS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_CREATE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/associations/:toObjectTypeId\",\n OBJECTS_REMOVE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/disassociate/:toObjectTypeId\",\n OBJECTS_DETAILS: \"api/${hubId}/${portalId}/hubspot-object-data/${objectId}/${id}\",\n OBJECTS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${objectId}/properties/${id}\",\n\n // Note\n NOTES: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_CREATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}/${note_id}\",\n NOTES_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/images/${objectId}/${id}\",\n NOTES_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/attachments/${objectId}/${id}\",\n\n // Email\n EMAILS: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}/${note_id}\",\n EMAILS_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/images/${objectId}/${id}\",\n EMAILS_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/attachments/${objectId}/${id}\",\n\n // File\n FILES: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILE: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}/${rowId}\",\n FILES_CREATE_FOLDER: \"api/${hubId}/${portalId}/hubspot-object-folders/${objectId}/${id}\",\n FILES_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILES_DELETE: \"api/feature-data/files/${me.hubspotPortals.templateName}${path}/${postId}/${fileId}\",\n};","import axios from \"axios\";\n// import type { AxiosError, AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig } from \"axios\";\nimport type { AxiosError, AxiosInstance, InternalAxiosRequestConfig } from \"axios\";\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { getAccessToken, ensureValidRefresh, setRefreshCallback } from './token-store';\nimport { config as defaultConfig } from './config';\nimport { config as storConfig } from '../utils/config'\nimport { generateApiUrl } from \"../utils/generateApiUrl\";\nimport { setAccessToken, setRefreshToken } from \"./auth-utils\";\n\nexport interface HttpClientConfig {\n /**\n * Base URL for API requests\n */\n baseURL?: string;\n\n /**\n * Request timeout in milliseconds\n */\n timeout?: number;\n\n /**\n * Custom headers to include in all requests\n */\n headers?: Record<string, string>;\n\n /**\n * Function to check if current path should skip auth error handling\n * Returns true if auth errors should be handled (redirect to login)\n */\n skipCurrentPublicPath?: () => boolean;\n\n /**\n * Routes configuration object with route paths\n */\n routes?: {\n unauthorized?: string;\n login?: string;\n };\n\n /**\n * Hub ID for API requests\n */\n hubId?: string;\n\n /**\n * Dev Portal ID for API requests\n */\n devPortalId?: string;\n\n /**\n * Function to handle logout\n */\n onLogout?: () => void | Promise<void>;\n}\n\nlet axiosInstance: AxiosInstance | null = null;\nlet config: HttpClientConfig = {};\n\n/**\n * Initialize the HTTP client with configuration\n */\nexport function initializeHttpClient(clientConfig: HttpClientConfig): void {\n config = clientConfig;\n\n const baseURL = config.baseURL ?? defaultConfig.baseURL;\n const timeout = config.timeout ?? 50000;\n\n axiosInstance = axios.create({\n baseURL,\n timeout,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n // Set up refresh callback to avoid circular dependency\n setRefreshCallback(getAuthRefreshToken);\n\n // Request interceptor: inject auth token if available\n axiosInstance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const token = getAccessToken();\n if (token) {\n config.headers.set('Authorization', `Bearer ${token}`);\n }\n return config;\n });\n\n // Response interceptor: handle errors\n axiosInstance.interceptors.response.use(\n (response) => response,\n (error: AxiosError) => {\n if (error.response && error.response.status === 401) {\n const shouldHandleAuthError = config.skipCurrentPublicPath?.() ?? false;\n\n if (shouldHandleAuthError) {\n // const payload = error.response.data as any ?? {};\n // const data = {\n // errorCode: payload.errorCode,\n // errorMessage: payload.errorMessage,\n // detailedMessage: payload.detailedMessage,\n // correlationId: payload.correlationId,\n // ts: Date.now(),\n // };\n\n // if (typeof window !== 'undefined' && window.sessionStorage) {\n // sessionStorage.setItem('authError', JSON.stringify(data));\n // }\n\n // if (config.routes?.unauthorized && typeof window !== 'undefined') {\n // window.location.replace(`#${config.routes.unauthorized}`);\n // }\n }\n }\n return Promise.reject(error);\n },\n );\n}\n\n/**\n * Get the axios instance (creates default if not initialized)\n */\nfunction getAxiosInstance(): AxiosInstance {\n if (!axiosInstance) {\n // Create default instance if not initialized\n initializeHttpClient({\n baseURL: defaultConfig.baseURL,\n timeout: 50000,\n });\n }\n return axiosInstance!;\n}\n\nfunction formatBooleanSearchParam(key: string, value: boolean): string {\n return value ? `${key}:1` : `${key}:`;\n}\n\nexport class HttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().put<T>(url, data);\n return response.data;\n }\n\n static async delete<T>(url: string): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().delete<T>(url);\n return response.data;\n }\n\n static formatSearchParams(params: Partial<any>): string {\n return Object.entries(params)\n .filter(([, value]) => Boolean(value))\n .map(([k, v]) =>\n [\n 'type',\n 'categories',\n 'tags',\n 'author',\n 'manufacturer',\n 'shops',\n 'refund_reason',\n ].includes(k)\n ? `${k}.slug:${v}`\n : ['is_approved'].includes(k)\n ? formatBooleanSearchParam(k, v as boolean)\n : `${k}:${v}`,\n )\n .join(';');\n }\n}\n\nexport class AuthHttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().put<T>(url, data, options);\n return response.data;\n }\n}\n\nexport function getFormErrors(error: unknown): string | null {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.message ?? null;\n }\n return null;\n}\n\nexport function getFieldErrors(error: unknown): any {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.errors ?? null;\n }\n return null;\n}\n\nexport async function getAuthRefreshToken(refreshToken: string | null): Promise<{\n token: string | null;\n success: boolean;\n}> {\n try {\n // const hubId = config.hubId ?? '';\n const headers: Record<string, string> = {};\n\n if (storConfig.devPortalId) {\n headers['X-Dev-Portal-Id'] = storConfig.devPortalId;\n }\n\n const api_url = generateApiUrl({ route: API_ENDPOINTS.AUTH_REFRESH, queryParams: { hubId: storConfig.hubId } })\n\n const response = await getAxiosInstance().post(\n api_url,\n { refreshToken },\n { headers }\n );\n\n const maybeData = response?.data?.data || response?.data;\n const tokenData = maybeData?.tokenData || maybeData || {} as any;\n const newRefreshToken = tokenData?.refreshToken as string;\n const token = tokenData?.token as string | undefined;\n const expiresIn = tokenData?.expiresIn as number | undefined;\n const rExpiresIn = tokenData?.refreshExpiresIn as number | undefined;\n const rExpiresAt = tokenData?.refreshExpiresAt as number | undefined; // epoch seconds\n\n if (typeof newRefreshToken === 'string') {\n let rExpires = 0;\n if (typeof rExpiresIn === 'number') {\n rExpires = Date.now() + rExpiresIn * 1000;\n } else if (typeof rExpiresAt === 'number') {\n rExpires = rExpiresAt * 1000;\n }\n setRefreshToken(newRefreshToken, rExpires);\n }\n\n if (typeof token === 'string') {\n setAccessToken(token, typeof expiresIn === 'number' ? expiresIn : undefined);\n return { token, success: true };\n }\n\n return { token: null, success: false };\n } catch {\n return { token: null, success: false };\n }\n}\n\n// Export the axios instance getter for advanced usage\nexport { getAxiosInstance };\n","export interface Config {\n /**\n * Base URL for API requests\n */\n baseURL: string;\n}\n\nexport const config: Config = {\n baseURL: 'https://api.dev.woodsportal.com',\n};\n\n","export let PROFILE: any = null\n\nexport const setProfileData = (data: any) => {\n PROFILE = data\n}\n\nexport const getProfileData = () => {\n return PROFILE\n}","import pako from 'pako'\nimport { Base64 } from 'js-base64'\n\nexport function convertToBase64(obj: unknown): string {\n try {\n if (!obj) return \"\"\n const json = JSON.stringify(obj)\n const compressed = pako.deflate(json) // returns Uint8Array\n const base64 = Base64.fromUint8Array(compressed, true) // URL-safe\n\n return base64\n } catch (error) {\n console.error('Failed to encode object:', error)\n return ''\n }\n}\n\nexport function decodeToBase64(encoded: string): any {\n try {\n if (!encoded) return null\n\n const uint8Array = Base64.toUint8Array(encoded)\n const decompressed = pako.inflate(uint8Array, { to: 'string' })\n\n return JSON.parse(decompressed)\n } catch (error) {\n console.error('Failed to decode object:', error)\n return null\n }\n}\n","import { convertToBase64 } from \"../utils/compress\"\n\n// map Keys\nexport function mapKeysDeep(obj: any, keyMap: Record<string, string>): any {\n if (Array.isArray(obj)) {\n return obj.map((item) => mapKeysDeep(item, keyMap));\n } else if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const mappedKey = keyMap[key] || key; // rename if matched\n acc[mappedKey] = mapKeysDeep(value, keyMap); // recurse into nested\n return acc;\n }, {} as Record<string, any>);\n }\n return obj;\n}\n\n// check parent is messing\nexport function isMessingParent(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n let lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n return (lastItem?.o_r_id && (!lastItem2?.o_r_id && lastItem2?.o_t_id) && lastItem3?.o_r_id) ? true : false\n}\n\n// check parent last item if messing\nexport function isMessingParentLastItem(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n\n return (!lastItem?.o_t_id && (lastItem2?.o_r_id && lastItem2?.o_t_id)) ? false : true\n}\n\n// check breadcrumb position, return root, root_details, child\nexport function breadcrumbStage(breadcrumbItems: any) {\n let breadcrumbType: string = 'child'\n\n if (breadcrumbItems.length === 1) {\n breadcrumbType = 'root'\n } else if (breadcrumbItems.length === 2) {\n breadcrumbType = 'root_details'\n }\n\n return breadcrumbType;\n}\n\n// generate link url\nexport const generateUrl = (props: any, breadcrumbs: any) => {\n const newBase64 = convertToBase64(breadcrumbs)\n let url = ''\n if (props?.objectTypeId && props?.recordId) {\n url = `/${props?.recordId}/${props?.objectTypeId}/${props?.recordId}?b=${newBase64}`\n } else {\n url = `/association/${props?.objectTypeId}?b=${newBase64}`\n }\n return url\n}\n\n// get total parent\nexport function getTotalParentLength(data: any) {\n return data.filter((item: any) =>\n (item.pt || item.o_t_id) && !item.o_r_id\n ).length;\n}\n\n// only for generate path\nexport const generatePath = (breadcrumbs: any, breadcrumb: any, index: any) => {\n const bc = convertToBase64(breadcrumbs.slice(0, index + 1))\n if (index === 0) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.pt || breadcrumb?.o_t_id}?b=${bc}`,\n }\n } else if (index === 1) {\n if (breadcrumb?.isHome) { // its for home side bard card data\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n if (breadcrumb?.o_t_id && breadcrumb?.o_r_id && !breadcrumb?.isHome) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n }\n}","export const keyMap: Record<string, string> = {\n dp: 'defPermissions',\n n: 'name',\n sort: 'sort',\n o_t_id: 'objectTypeId',\n s: 'search',\n fPn: 'filterPropertyName',\n fO: 'filterOperator',\n fV: 'filterValue',\n c: 'cache',\n isPC: 'isPrimaryCompany',\n v: 'view',\n l: 'limit',\n pt: 'path',\n p: 'page',\n a: 'after',\n aPip: 'activePipeline',\n aT: 'activeTab',\n cT: 'create',\n dP: 'display',\n dL: 'display_label',\n pId: 'pipeline_id',\n }","import { getUrlPathName } from '../utils/url';\n\nexport function getParam(paramName: string): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n const hashWithoutHash = hash.startsWith('#') ? hash.substring(1) : hash;\n\n const queryString = hashWithoutHash.split('?')[1];\n if (!queryString) return null;\n\n const params = new URLSearchParams(queryString);\n return params.get(paramName);\n}\n\nexport function getPath(): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n return hash\n .slice(1) // remove \"#\"\n .split(\"?\")[0]; // remove query params\n}\n\nexport const generateParam = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n\nexport const getHubId = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n","import { getTotalParentLength, mapKeysDeep } from \"./url-utils\";\nimport { decodeToBase64 } from \"../utils/compress\"\nimport { keyMap } from \"./key-map\";\nimport { getParam } from \"../utils/param\";\n\nexport const getRouteMenu = (path: string) => {\n // Use globalThis for cross-environment compatibility and to fix 'window' not defined error\n const apiRoutes = (globalThis as any)?.apiRoutes || [];\n return apiRoutes.find((menu: any) => menu?.path === path);\n}\n\nexport const getRouteDetails = () => {\n // const router = useRouter();\n // const search: any = router.state.location.search;\n const search: any = getParam(\"b\");\n\n const breadcrumbs = decodeToBase64(search) || [];\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n const mapped = lastItem ? mapKeysDeep(lastItem, keyMap) : null;\n\n return { routeDetails: mapped };\n};\n\n// return current route details\nexport const getParamDetails = (props?: any, isDetailsPage: boolean = false) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length > 0 && breadcrumbs?.[0]?.isHome) { // skip 1st breadcrumb for home page sidebar data\n breadcrumbs = breadcrumbs.slice(1)\n }\n\n let mediatorObjectTypeId = ''\n let mediatorObjectRecordId = ''\n let parentObjectTypeId = ''\n let parentObjectRecordId = ''\n // let bParams = ''\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n if (isDetailsPage === true && lastItem && \"prm\" in lastItem) { // if details page then dont deent prm key\n delete lastItem.prm;\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n // bParams = lastItem?.p || ''\n } else {\n if (breadcrumbs.length > 2) {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n }\n\n if (!lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem3?.o_t_id || ''\n parentObjectRecordId = lastItem3?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem2?.o_t_id === '0-5' && !parentObjectTypeId && !parentObjectRecordId) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n\n }\n }\n let paramsObject: any = {}\n\n // if isPrimaryCompany\n // const arr = Array.from(new URLSearchParams(lastItem?.p))\n // const map = new Map(arr)\n // if (map.get('isPrimaryCompany') === 'true') {\n // paramsObject['isPrimaryCompany'] = true\n // } else {\n // // if not isPrimaryCompany\n // if (parentObjectTypeId && parentObjectRecordId) {\n // paramsObject['parentObjectTypeId'] = parentObjectTypeId\n // paramsObject['parentObjectRecordId'] = parentObjectRecordId\n // }\n // if (mediatorObjectTypeId && mediatorObjectRecordId) {\n // paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n // paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n // }\n // }\n\n if (breadcrumbs[0]?.prm?.isPC || breadcrumbs[1]?.prm?.isPC || lastItem?.prm?.isPC) { // 1st check fot normal object, 2dn & 3rd and check for db associated data\n paramsObject['isPrimaryCompany'] = true\n }\n\n\n if (parentObjectTypeId && parentObjectRecordId) {\n paramsObject['parentObjectTypeId'] = parentObjectTypeId\n paramsObject['parentObjectRecordId'] = parentObjectRecordId\n }\n if (mediatorObjectTypeId && mediatorObjectRecordId) {\n paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n }\n\n const mappedLastItemParam = Object.fromEntries(\n Object.entries(lastItem?.prm || {}).map(([key, value]) => [\n keyMap[key] || key, // use mapped name if exists, else keep original\n value,\n ])\n );\n\n let queryString = null\n\n if (props?.type === 'association') { // if association association then don't need mappedLastItemParam \n queryString = new URLSearchParams({ ...paramsObject, ...{ cache: false } } as any).toString()\n // } else if (breadcrumbs.length < 2) { // if root path then don't need paramsObject \n // paramsObject = {}\n // queryString = new URLSearchParams({...mappedLastItemParam} as any).toString()\n } else {\n queryString = new URLSearchParams({ ...paramsObject, ...mappedLastItemParam } as any).toString()\n }\n\n\n\n\n // let params = bParams ? `${bParams}&${queryString}` : `?${queryString}`\n let params: any = queryString ? `?${queryString}` : ''\n\n // if (breadcrumbs.length < 2 && map.get('isPrimaryCompany') != 'true')\n\n // if (breadcrumbs.length < 2 && !breadcrumbs[0]?.prm?.isPC)\n // params = ''\n\n // const mParamsObject: any = {\n // ...paramsObject,\n // ...(params ? { params } : {}),\n // };\n\n const totalParentLength = getTotalParentLength(breadcrumbs)\n let parentAccessLabel = false\n\n // param for GF, F, SON to GF relation\n if (\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 2) || // company object\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 3) || // normal object\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 1 && props?.type === 'ticket') || // company ticket\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 2 && props?.type === 'ticket') // normal ticket\n ) {\n parentAccessLabel = true\n }\n\n return {\n breadcrumbs,\n // paramsObject: Object.keys(mParamsObject).length === 0 ? null : mParamsObject,\n paramsObject: paramsObject,\n params,\n parentAccessLabel\n }\n}\n","import { convertToBase64, decodeToBase64 } from \"../utils/compress\";\nimport { getParam, getPath } from \"../utils/param\";\nimport { keyMap } from \"./key-map\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useUpdateLink = () => {\n const updateLink = async (props: any, displayName: string = \"prm\") => {\n const search: any = getParam(\"b\");\n const pathname: any = getPath()\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) {\n // const { pathname } = router.state.location;\n const routeMenu: any = getRouteMenu(pathname);\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ];\n }\n\n // Get the last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = await getDeep(lastBreadcrumb, displayName) || {}\n\n await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props,\n });\n } else {\n await Object.assign(lastBreadcrumb, props);\n }\n const newBase64 = convertToBase64(breadcrumbs);\n updateBParam(newBase64);\n };\n\n // --- Helpers ---\n\n function setDeep(obj: any, path: string, value: any) {\n const keys = path.split(\".\");\n let curr = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!curr[keys[i]] || typeof curr[keys[i]] !== \"object\") {\n curr[keys[i]] = {};\n }\n curr = curr[keys[i]];\n }\n curr[keys[keys.length - 1]] = value;\n return curr\n }\n\n function getDeep(obj: any, path: string) {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n }\n\n\n // const filterParams = (displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n // if (breadcrumbs.length < 1) return null\n // const lastItem = breadcrumbs[breadcrumbs.length - 1]\n // const expandKeys = (obj: Record<string, any>) => {\n // return Object.fromEntries(\n // Object.entries(obj).map(([key, value]) => [\n // keyMap[key] || key, // map if exists, else keep original\n // value,\n // ]),\n // )\n // }\n // const output = displayName && lastItem[displayName] ? expandKeys(lastItem[displayName]) : lastItem\n // return output\n // }\n\n const getLinkParams = (displayName: string = \"prm\") => { // for API param\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : null;\n\n return output;\n };\n\n const filterParams = (displayName: string = \"prm\") => { // for select old value\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : expandKeys(lastItem);\n\n return output;\n };\n\n return { updateLink, getLinkParams, filterParams }\n}\n\nconst updateBParam = (newValue: string): void => {\n // const currentSearch = router.state.location.search || {}\n\n // router.navigate({\n // to: router.state.location.pathname, // stay on same path\n // search: {\n // ...currentSearch,\n // b: newValue, // add or replace `b`\n // },\n // replace: true, // don't push new history entry\n // })\n\n // If running in a non-browser environment, do nothing\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return;\n\n const hash: string = (globalThis as any).location.hash || '';\n // \"#/0-3-796859474?b=eJxNjkEL\"\n\n if (!hash.startsWith(\"#/\")) return;\n\n const withoutHash = hash.slice(2); // remove \"#/\"\n const [path, queryString] = withoutHash.split(\"?\");\n\n const params = new URLSearchParams(queryString || \"\");\n params.set(\"b\", newValue); // add or replace `b`\n\n const newHash = `#/${path}?${params.toString()}`;\n\n // ✅ same as router.navigate({ replace: true })\n if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n (globalThis as any).history.replaceState(null, \"\", newHash);\n }\n}\n","import { generateApiUrl } from '../utils/generateApiUrl';\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { AuthHttpClient, HttpClient } from './http-clint';\nimport { config } from '../utils/config'\nimport { PreLoginPayload, LoginPayload, ForgetPasswordPayload, ChangePasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { getProfileData } from '../data/user';\nimport { routeParam } from '..';\n// import { routeParam, url } from '..';\nimport { getParamDetails } from '../breadcrumb/param';\n// import { getPortal } from './auth-utils';\nimport { useUpdateLink } from \"../breadcrumb/url\";\n// import { getSubscriptionType } from './auth-utils';\n\nexport const Client = {\n authentication: {\n preLogin: (data: PreLoginPayload) => AuthHttpClient.post(API_ENDPOINTS.PRE_LOGIN, data),\n login: (data: LoginPayload) => {\n const queryParams = config.hubId ? { hubId: config.hubId } : null;\n return AuthHttpClient.post(\n generateApiUrl({ route: API_ENDPOINTS.LOGIN, queryParams: queryParams }),\n data,\n config?.devPortalId && {\n headers: {\n 'X-Dev-Portal-Id': config.devPortalId,\n },\n }\n )\n },\n verifyEmail: (data: VerifyEmailPayload) => AuthHttpClient.post(API_ENDPOINTS.VERIFY_EMAIL, data),\n resetPasswordVerifyToken: (data: ResetPasswordVerifyTokenPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD_VERIFY_TOKEN, data),\n resetPassword: (data: ResetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD, data),\n forgetPassword: (data: ForgetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.FORGET_PASSWORD, data),\n registerExistingUser: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n verifyEmailResend: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n resendEmail: (data: any) => AuthHttpClient.post(API_ENDPOINTS.RESEND_EMAIL, data),\n logout: () => HttpClient.post(API_ENDPOINTS.LOGOUT, null),\n },\n sso: {\n getSsoDetails: () => AuthHttpClient.get(API_ENDPOINTS.SSO_DETAILS),\n generateSsoUrl: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_URL, queryParams: payload?.queryParams })),\n ssoCallback: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_CALLBACK, queryParams: payload?.queryParams })),\n },\n user: {\n me: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.ME })),\n profile: (payload: any) => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.PROFILE, queryParams: payload })),\n changePassword: (data: ChangePasswordPayload) => HttpClient.post(API_ENDPOINTS.CHANGE_PASSWORD, data),\n },\n pipeline: {\n list: (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n // console.log(\"getProfileData\", getProfileData())\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n const apiParams: any = {}\n\n if (paramsObject?.parentObjectTypeId) {\n apiParams.parentObjectTypeId = paramsObject?.parentObjectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && !param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = userData?.data?.info?.objectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = \"0-2\";\n }\n // setParentObjectTypeId(apiParams?.parentObjectTypeId || \"\")\n\n apiParams.isPrimaryCompany = param?.isPrimaryCompany;\n apiParams.cache = payload?.cache;\n\n console.log(\"payload\", payload)\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams })\n return HttpClient.get(apiUrl)\n },\n },\n stage: {\n list: (props: any = null) => {\n // const portalId = config.devPortalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectTypeId: props?.params?.objectTypeId,\n pipelineId: props?.params?.pipelineId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.STAGES, params })\n return HttpClient.get(apiUrl)\n },\n },\n object: {\n list: async (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n\n param.cache = payload.cache\n\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n // const { useUpdateLink: useUpdateLink2 } = url\n // const { updateLink, getLinkParams } = useUpdateLink2();\n const { updateLink, getLinkParams } = useUpdateLink();\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject, parentAccessLabel } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n // console.log(\"payload\", payload)\n\n // const { pipeline, mPipelines } = payload?.variables;\n const pipeline = payload?.variables?.pipeline;\n const mPipelines = payload?.variables?.mPipelines;\n\n const mSelectedPipeline = pipeline !== undefined ? pipeline : payload?.selectedPipeline;\n\n // console.log(\"mSelectedPipeline\", mSelectedPipeline)\n\n\n if (mSelectedPipeline) {\n param.filterValue = mSelectedPipeline\n } else if (payload?.specPipeLine && payload?.pipeLineId) {\n param.filterValue = payload?.pipeLineId\n }\n else if (payload?.hubspotObjectTypeId != \"0-3\" || payload?.hubspotObjectTypeId != \"0-5\") {\n param.filterValue = ''\n }\n\n\n // const API_ENDPOINT = apis.tableAPI;\n\n const fParams = getLinkParams()\n\n param = { ...(payload?.isFristTimeLoadData && fParams && !payload?.isHome ? fParams : param), ...paramsObject }\n\n // console.log(\"payload?.isFristTimeLoadData\", payload?.isFristTimeLoadData)\n // console.log(\"paramsObject\", paramsObject)\n // console.log(\"fParams\", fParams)\n // console.log(\"param\", param)\n\n\n if (!payload?.isFristTimeLoadData || !fParams) {\n await updateLink({\n \"sort\": param?.sort,\n \"s\": param?.search,\n \"fPn\": param?.filterPropertyName,\n \"fO\": param?.filterOperator,\n \"fV\": param?.filterValue,\n \"c\": param?.cache,\n \"isPC\": param?.isPrimaryCompany,\n \"v\": param?.view,\n \"l\": param?.limit,\n \"p\": param?.page,\n \"a\": param?.after,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 0 && !payload?.specPipeLine) { // if pipelines empty then set filter value is empty (n-a)\n param.filterValue = \"\"\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 1 && !payload?.specPipeLine && mSelectedPipeline != null) { // if pipelines length is 0 then forcefully set 0 index pipeline\n param.filterValue = mPipelines[0].pipelineId\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (payload?.isHome) { // Only for home tickets\n let parentObjectTypeId = \"\"\n if (userData?.info?.objectTypeId && !param?.isPrimaryCompany) {\n parentObjectTypeId = userData?.info?.objectTypeId\n } else if (userData?.info?.objectTypeId && param?.isPrimaryCompany) {\n parentObjectTypeId = \"0-2\"\n }\n param.parentObjectTypeId = parentObjectTypeId\n // setParentObjectTypeId(parentObjectTypeId)\n }\n\n param.parentAccessLabel = parentAccessLabel\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n return HttpClient.get(apiUrl)\n },\n sideBarList: async (payload: any = null) => {\n const hubspotObjectTypeId = payload?.hubspotObjectTypeId\n const params = { hubspotObjectTypeId }\n const queryParams = payload.param\n // const subscriptionType = getSubscriptionType()\n\n // const { useUpdateLink: useUpdateLink } = url\n // const { updateLink, filterParams } = useUpdateLink();\n\n // const tab = filterParams(`tabs.a.${hubspotObjectTypeId}`)\n\n // let param: any = {};\n\n // const baseParams: any = {\n // sort: payload?.sortConfig,\n // filterValue: payload?.filterValue,\n // cache: payload?.cache,\n // isPrimaryCompany: payload?.isPrimaryCompany,\n // };\n\n // if (subscriptionType === \"FREE\") {\n // param = {\n // ...baseParams,\n // ...({ after: payload?.isFristTimeLoadData && tab?.page ? tab?.page : payload?.currentPage }),\n // };\n // } else {\n // param = {\n // ...baseParams,\n // ...({\n // limit: payload?.itemsPerPage || 10,\n // page: payload?.isFristTimeLoadData && tab?.page ? tab?.page : payload?.currentPage,\n // ...(payload?.after && payload?.after.length > 0 && { after: payload?.after }),\n // }),\n // };\n // }\n\n // updateLink(param);\n // if (payload?.isPrimaryCompany) param.mediatorObjectTypeId = '0-2';\n\n // const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams })\n return HttpClient.get(apiUrl)\n },\n form: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n objectFormOptions: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_FORM_OPTIONS, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n createExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n removeExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_REMOVE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n details: (props: any = null) => {\n const { paramsObject: urlParam, parentAccessLabel } = getParamDetails(\"\", true)\n\n // const portalId = config.devPortalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const queryParams = {\n parentAccessLabel: parentAccessLabel,\n ...props?.queryParams,\n ...urlParam\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS, params, queryParams })\n return HttpClient.get(apiUrl)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n }\n },\n note: {\n list: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n email: {\n list: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n file: {\n list: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n console.log(\"params_0\", params)\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n details: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n rowId: props?.params?.rowId,\n }\n console.log(\"params_1\", params)\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n addFolder: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_CREATE_FOLDER, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n addFile: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n }\n}","import { MutationOptions } from \"../types\";\n\n/**\n * Shared mutation helper used across `api.*` factories.\n *\n * - **Concurrency:** overlapping `mutate()` calls keep loading true until all finish.\n * - **Errors:** `onError` runs for failures; the promise still rejects so callers can `try/catch`.\n */\nexport function createMutation<TPayload, TSuccess, TError = unknown>(\n mutationFn: (payload?: TPayload) => Promise<TSuccess>,\n options?: MutationOptions<TSuccess, TError>\n) {\n let inFlight = 0;\n let lastReportedLoading: boolean | null = null;\n\n const syncLoading = () => {\n const active = inFlight > 0;\n if (lastReportedLoading === active) return;\n lastReportedLoading = active;\n options?.onLoadingChange?.(active);\n };\n\n const mutate = async (payload?: TPayload) => {\n inFlight += 1;\n syncLoading();\n try {\n const response = await mutationFn(payload);\n await options?.onSuccess?.(response, payload);\n return response;\n } catch (error) {\n options?.onError?.(error as TError, payload);\n throw error;\n } finally {\n inFlight -= 1;\n syncLoading();\n }\n };\n\n return {\n mutate,\n isLoading: () => inFlight > 0,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { LoginPayload, MutationOptions, PreLoginPayload, ForgetPasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setPortal, setSubscriptionType, setAccessToken, setRefreshToken, setLoggedInDetails } from \"../clint/auth-utils\";\nimport { getParam } from \"../utils/param\";\nimport { removeAllCookie } from \"../utils/cookie\";\nimport { clearAccessToken } from \"../clint/token-store\";\nimport { setConfig } from \"../utils/config\";\n\nexport function preLogin(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.preLogin(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function login(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<LoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.login(payload);\n\n const tokenData: any = response?.data?.tokenData || {}\n const loggedInDetails: any = response?.data?.loggedInDetails || {}\n const currentPortal: any = response?.data?.loggedInDetails?.currentPortal || {}\n const currentPortalId: any = currentPortal?.portalId || null\n const SubscriptionType = loggedInDetails?.subscriptionType || \"BASIC\";\n\n const token = tokenData?.token;\n const refreshToken = tokenData?.refreshToken;\n const expiresIn = tokenData?.expiresIn;\n const rExpiresIn = tokenData?.refreshExpiresIn;\n\n setPortal(currentPortal);\n setSubscriptionType(SubscriptionType);\n await setAccessToken(token, expiresIn);\n\n await setRefreshToken(refreshToken, rExpiresIn);\n await setLoggedInDetails(response.data);\n\n setConfig.setDevPortalId(currentPortalId);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<VerifyEmailPayload, any>(\n async (payload: any) => {\n const verifyEmailPayload: VerifyEmailPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!verifyEmailPayload?.token) verifyEmailPayload.token = token;\n const response: any = await Client.authentication.verifyEmail(verifyEmailPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmail: mutate,\n isLoading,\n };\n}\n\nexport function resetPasswordVerifyToken(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordVerifyTokenPayload, any>(\n async (payload: any) => {\n const resetPasswordVerifyTokenPayload: ResetPasswordVerifyTokenPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token;\n const response: any = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPasswordVerifyToken: mutate,\n isLoading,\n };\n}\n\nexport function resetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPassword: mutate,\n isLoading,\n };\n}\n\nexport function forgetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ForgetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.forgetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n forgetPassword: mutate,\n isLoading,\n };\n}\n\nexport function logout(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.authentication.logout();\n\n clearAccessToken()\n removeAllCookie()\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n logout: mutate,\n isLoading,\n };\n}\n\nexport function registerExistingUser(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.registerExistingUser(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n registerExistingUser: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmailResend(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.verifyEmailResend(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmailResend: mutate,\n isLoading,\n };\n}\n\nexport function resendEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resendEmail(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resendEmail: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions, PreLoginPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\n\nexport function getSsoDetails(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.sso.getSsoDetails();\n return response;\n },\n options\n );\n\n return {\n mutate,\n getSsoDetails: mutate,\n isLoading,\n };\n}\n\nexport function generateSsoUrl(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.generateSsoUrl(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n generateSsoUrl: mutate,\n isLoading,\n };\n}\n\nexport function ssoCallback(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.ssoCallback(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n ssoCallback: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { ChangePasswordPayload, MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setProfileData } from \"../data/user\";\n\n\nexport function me(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.user.me();\n return response;\n },\n options\n );\n\n return {\n mutate,\n me: mutate,\n isLoading,\n };\n}\n\nexport function profile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async (paylaod: any) => {\n const response: any = await Client.user.profile(paylaod);\n setProfileData(response)\n return response;\n },\n options\n );\n\n return {\n mutate,\n profile: mutate,\n isLoading,\n };\n}\n\n\nexport function changePassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ChangePasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.user.changePassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n changePassword: mutate,\n isLoading,\n };\n}","// // store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n\n// // atom-like usage\n// use: () => [T, (value: T | ((prev: T) => T)) => void, (listener: Listener<T>) => () => void];\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) {\n// listeners.splice(index, 1);\n// }\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const use = () => {\n// return [get(), set, subscribe];\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// use,\n// };\n// }\n\n\n\n// store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((l) => l(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) listeners.splice(index, 1);\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((l) => l(state));\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// };\n// }\n\n\ntype Listener<T> = (state: T, prevState: T) => void;\n\ntype PartialState<T> =\n | Partial<T>\n | ((state: T) => Partial<T>);\n\nexport function createStore<T>(\n initializer: (\n set: (partial: PartialState<T>) => void,\n get: () => T\n ) => T\n) {\n let state: T;\n const listeners = new Set<Listener<T>>();\n\n const get = () => state;\n\n const set = (partial: PartialState<T>) => {\n const prevState = state;\n\n const partialState =\n typeof partial === \"function\"\n ? partial(state)\n : partial;\n\n state = {\n ...state,\n ...partialState,\n };\n\n listeners.forEach((listener) =>\n listener(state, prevState)\n );\n };\n\n const subscribe = (listener: Listener<T>) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n\n state = initializer(set, get);\n\n return {\n getState: get,\n setState: set,\n subscribe,\n };\n}","import { getCookie } from \"./cookie\"\n\nexport const getAuthSubscriptionType = () => {\n return getCookie(\"subscriptionType\")\n}","import { createStore } from \"./\";\nimport { getAuthSubscriptionType } from \"../utils/getCookieData\";\nimport { useUpdateLink } from \"../breadcrumb/url\";\n\nconst pageLimit = 10;\n\nconst tableStore = createStore((set, get) => ({\n // ==============================\n // STATE\n // ==============================\n\n tableUniqueId: null as string | null,\n gridData: [],\n sort: \"-hs_createdate\",\n limit: 10,\n after: \"\",\n page: 1 as number | string,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null as boolean | null,\n view: null as string | null,\n selectedPipeline: \"\",\n tableParam: {},\n tableDefPermissions: {},\n\n // ==============================\n // BASIC SETTERS\n // ==============================\n\n setTableUniqueId: (v: string | null) => set({ tableUniqueId: v }),\n setSort: (v: string) => set({ sort: v }),\n setLimit: (v: number) => set({ limit: v }),\n setAfter: (v: string) => set({ after: v }),\n setPage: (v: number | string) => set({ page: v }),\n setTotalItems: (v: number) => set({ totalItems: v }),\n setNumOfPages: (v: number) => set({ numOfPages: v }),\n setCurrentPage: (v: number) => set({ currentPage: v }),\n setSearch: (v: string) => set({ search: v }),\n setFilterPropertyName: (v: string) => set({ filterPropertyName: v }),\n setFilterOperator: (v: string) => set({ filterOperator: v }),\n setFilterValue: (v: string) => set({ filterValue: v }),\n setIsPrimaryCompany: (v: boolean | null) =>\n set({ isPrimaryCompany: v }),\n\n // ==============================\n // VIEW\n // ==============================\n\n setView: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n view: mView,\n });\n },\n\n // ==============================\n // PIPELINE\n // ==============================\n\n changePipeline: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n selectedPipeline: mView || \"\",\n });\n },\n\n setSelectedPipeline: (\n // hubspotObjectTypeId: string,\n pipelines: any[],\n pipeLineId?: string\n ) => {\n let filterValue = \"\";\n\n if (pipeLineId) {\n const pipelineSingle = pipelines.find(\n (pipeline) =>\n pipeline.pipelineId === pipeLineId\n );\n\n filterValue =\n pipelineSingle?.pipelineId || \"\";\n }\n\n set({\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue,\n selectedPipeline: filterValue,\n });\n },\n\n // ==============================\n // RESET\n // ==============================\n\n resetTableParam: () => {\n set({\n sort: \"-hs_createdate\",\n limit: pageLimit,\n after: \"\",\n page:\n getAuthSubscriptionType() === \"FREE\"\n ? \"\"\n : 1,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null,\n selectedPipeline: \"\",\n });\n },\n\n // ==============================\n // PARAM BUILDER\n // ==============================\n\n getTableParam: (\n companyAsMediator?: boolean,\n currentPageOverride?: number\n ) => {\n const state: any = get();\n\n const baseParams: any = {\n sort: state.sort,\n search: state.search,\n filterPropertyName:\n state.filterPropertyName,\n filterOperator: state.filterOperator,\n filterValue: state.selectedPipeline,\n cache: true,\n isPrimaryCompany:\n companyAsMediator || false,\n view: state.view,\n };\n\n if (\n getAuthSubscriptionType() === \"FREE\"\n ) {\n return {\n ...baseParams,\n after: state.page,\n };\n }\n\n return {\n ...baseParams,\n limit: state.limit,\n page:\n currentPageOverride ||\n state.page,\n ...(state.after && {\n after: state.after,\n }),\n };\n },\n\n // ==============================\n // GRID DATA\n // ==============================\n\n setGridData: async (\n type: string,\n deals: any[]\n ) => {\n if (type === \"reset\") {\n set({ gridData: [] });\n return;\n }\n\n if (type === \"directly\") {\n set({ gridData: deals });\n return;\n }\n\n const finalData = await deals.map(\n (deal) => {\n const cards =\n deal?.data?.results?.rows?.map(\n (row: any) => ({\n id: row?.hs_object_id,\n ...row,\n hubspotObjectTypeId:\n type === \"deals\"\n ? \"0-3\"\n : \"0-5\",\n })\n ) || [];\n\n return {\n id: deal.id,\n name: deal.label,\n count: deal?.data?.total,\n ...deal,\n cards,\n };\n }\n );\n\n await set({ gridData: finalData });\n return finalData\n },\n\n // ==============================\n // DEFAULT PIPELINE\n // ==============================\n\n setDefaultPipeline(\n data: any,\n hubspotObjectTypeId: string,\n // companyAsMediator?: boolean\n ) {\n if (!data) {\n set({ selectedPipeline: \"\" });\n return \"\";\n }\n\n // const { useUpdateLink } = url;\n const { updateLink, filterParams } = useUpdateLink();\n\n const params = filterParams();\n const excludedIds = [\"0-1\", \"0-2\", \"0-3\", \"0-4\", \"0-5\"];\n\n const state: any = get();\n const view = state.view;\n const selectedPipeline = state.selectedPipeline;\n\n let defaultPipelineId = \"\";\n let mFilterValue: any = \"\";\n\n const defaultPipeline = data?.data?.[0];\n\n if (excludedIds.includes(hubspotObjectTypeId)) {\n defaultPipelineId = defaultPipeline?.pipelineId || \"\";\n }\n\n if (\n params &&\n params?.filterPropertyName === \"hs_pipeline\" &&\n params?.filterValue\n ) {\n mFilterValue = params.filterValue;\n } else {\n if (view === \"BOARD\" && !selectedPipeline) {\n mFilterValue = defaultPipelineId;\n\n updateLink({\n fV: defaultPipelineId,\n });\n } else if (!excludedIds.includes(hubspotObjectTypeId)) {\n mFilterValue = selectedPipeline || null;\n } else {\n mFilterValue =\n data.data.length === 1\n ? defaultPipelineId\n : selectedPipeline;\n }\n }\n\n set({ selectedPipeline: mFilterValue });\n return mFilterValue;\n },\n}));\n\n// ==============================\n// USAGE HELPER\n// ==============================\nexport function useTable() {\n const tableState: any = tableStore.getState()\n return {\n ...tableState, ...{ listeners: { subscribe: tableStore.subscribe } }\n }\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.pipeline.list(payload, param);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getPipelines: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.stage.list(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getStages: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.object.list(payload, param);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjects: mutate,\n isLoading,\n };\n}\n\nexport function sideBarList(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.sideBarList(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getSideBarObjects: mutate,\n isLoading,\n };\n}\n\n\nexport function form(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.form(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsForm: mutate,\n isLoading,\n };\n}\n\nexport function objectFormOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.objectFormOptions(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n objectFormOptions: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createObject: mutate,\n isLoading,\n };\n}\n\nexport function createExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.createExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createExistingObject: mutate,\n isLoading,\n };\n}\n\n\nexport function removeExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.removeExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n removeExisting: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsDetails: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateObjectsDetails: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.note.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getNotes: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.note.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createNote: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n // let params: any = makeParam()\n // let mParams: any = { cache: !!params?.cache, isPrimaryCompany: params?.isPrimaryCompany, limit: params?.limit || 5 }\n\n // if (getAuthSubscriptionType() === 'FREE') {\n // mParams.after = params?.after || \"\";\n // } else {\n // mParams.limit = params?.limit || \"\";\n // mParams.page = params?.page || \"\";\n // }\n\n\n const response: any = await Client.note.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateNote: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getEmails: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.email.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createEmail: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.update(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateEmail: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function imageUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.image(payload) : await Client.note.image(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n imageUpload: mutate,\n isLoading,\n };\n}\n\nexport function attachmentUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.attachment(payload) : await Client.note.attachment(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n attachmentUpload: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFiles: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFile: mutate,\n isLoading,\n };\n}\n\nexport function addFolder(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFolder(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFolder: mutate,\n isLoading,\n };\n}\n\nexport function addFile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFile(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFile: mutate,\n isLoading,\n };\n}","/**\n * WoodsPortal client SDK — public entry module.\n *\n * Configure HTTP once with {@link initializeHttpClient} in production, then use\n * {@link api}, {@link store}, {@link url}, {@link routeParam}, and {@link breadcrumbsDetails}.\n */\nimport { preLogin, login, verifyEmail, forgetPassword, logout, resetPasswordVerifyToken, resetPassword, registerExistingUser, verifyEmailResend, resendEmail } from \"./apis/authentication\";\nimport { getSsoDetails, generateSsoUrl, ssoCallback } from \"./apis/sso\";\nimport { changePassword, me, profile } from \"./apis/users\";\nimport { list as pipelines } from \"./apis/pipeline\";\nimport { list as stages } from \"./apis/stage\";\nimport { list as objects, sideBarList as sideBarObjects, form as objectsForm, create as createObject, createExisting as createExistingObject, removeExisting as removeExistingObject, details as objectsDetails, update as updateObjectsDetails, objectFormOptions } from \"./apis/object\";\nimport { list as notes, create as createNote, update as updateNote } from \"./apis/note\";\nimport { list as emails, create as createEmail, update as updateEmail } from \"./apis/email\";\nimport { imageUpload, attachmentUpload } from \"./apis/uploader\";\nimport { list as files, addFolder, addFile, details as file } from \"./apis/file\";\nimport { getRefreshToken } from \"./clint/auth-utils\";\nimport { getAuthRefreshToken } from \"./clint/http-clint\";\nimport { getAccessToken, isAuthenticateApp, isExpiresAccessToken } from \"./clint/token-store\";\nimport { isCookieExpired } from \"./utils/cookie\";\nimport { useUpdateLink } from \"./breadcrumb/url\";\nimport { getParamDetails, getRouteDetails } from \"./breadcrumb/param\";\nimport { getBreadcrumbs, getFormTitle, getTableTitle } from \"./breadcrumb/breadcrumbs\";\nimport { useMakeLink } from \"./breadcrumb/generate-url\";\nimport { useTable } from \"./store/use-table\";\nimport { storage } from \"./utils/localStoraget\";\n\n/** Axios setup, error helpers, and {@link HttpClientConfig}. */\nexport { initializeHttpClient, getFormErrors, getFieldErrors } from \"./clint/http-clint\";\nexport type { HttpClientConfig } from \"./clint/http-clint\";\n\nexport type {\n Config,\n MutationOptions,\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n} from \"./types\";\n\n/**\n * API facades (auth, SSO, users, CRM objects, files, uploads, token helpers).\n * Most methods return `{ mutate, isLoading }` from {@link createMutation}; see README.\n */\nexport const api = {\n preLogin,\n login,\n verifyEmail,\n resetPasswordVerifyToken,\n resetPassword,\n registerExistingUser,\n verifyEmailResend,\n resendEmail,\n getSsoDetails,\n generateSsoUrl,\n ssoCallback,\n forgetPassword,\n logout,\n me,\n profile,\n changePassword,\n pipelines,\n stages,\n objects,\n sideBarObjects,\n objectsForm,\n createObject,\n createExistingObject,\n removeExistingObject,\n objectsDetails,\n updateObjectsDetails,\n objectFormOptions,\n notes,\n createNote,\n updateNote,\n emails,\n createEmail,\n updateEmail,\n imageUpload,\n attachmentUpload,\n files,\n file,\n addFolder,\n addFile,\n getRefreshToken,\n getAuthRefreshToken,\n isCookieExpired,\n isExpiresAccessToken,\n isAuthenticateApp,\n getAccessToken,\n};\n\n/** Lightweight storage helpers and table UI state. */\nexport const store = {\n storage,\n useTable\n};\n\n/** Breadcrumb copy helpers for list/form chrome. */\nexport const breadcrumbsDetails = {\n getBreadcrumbs,\n getTableTitle,\n getFormTitle\n};\n\n/** URL builders that read query/path context (not React hooks despite the `use*` names). */\nexport const url = {\n useMakeLink,\n useUpdateLink\n};\n\n/** Route and query-param introspection for embedded HubSpot-style navigation. */\nexport const routeParam = {\n getRouteDetails,\n getParamDetails\n};\n","import { decodeToBase64 } from \"../utils/compress\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\nimport { generatePath } from \"./url-utils\"\n\nexport const getBreadcrumbs = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || []\n\n if (!breadcrumbs && breadcrumbs.length < 1) return []\n\n const updated = breadcrumbs.map((breadcrumb: any, index: any) => {\n return generatePath(breadcrumbs, breadcrumb, index)\n })\n\n if (updated.length < 1) {\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n return [\n {\n name: routeMenu?.title,\n path: routeMenu?.path,\n },\n ]\n }\n return updated\n}\n\n\nexport const getTableTitle = (\n componentName: string,\n title: string,\n ticketTableTitle: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let associatedtableTitleSingular: any = ''\n let tableTitle: any = ''\n let singularTableTitle: any = ''\n\n if (breadcrumbs && breadcrumbs.length > 0) {\n const lastItem: any = breadcrumbs[breadcrumbs.length - 1]\n const last: any = lastItem ? generatePath(breadcrumbs, lastItem, breadcrumbs.length - 1) : null\n const previousItem: any = breadcrumbs[breadcrumbs.length - 2]\n const previous: any = previousItem ? generatePath(breadcrumbs, previousItem, breadcrumbs.length - 2) : null\n const singularLastName = last?.name\n\n associatedtableTitleSingular = singularLastName\n if (componentName != 'ticket') {\n tableTitle = previous?.name\n ? { last: last, previous: previous }\n : { last: last }\n singularTableTitle = previous?.name\n ? `${singularLastName} with ${previous?.name}`\n : singularLastName\n } else {\n const ticketTableTitleSingular = ticketTableTitle.endsWith('s')\n ? ticketTableTitle.slice(0, -1)\n : ticketTableTitle\n tableTitle = { last: { name: title } }\n\n singularTableTitle = previous?.name\n ? `${ticketTableTitleSingular} with ${singularLastName} `\n : ticketTableTitleSingular\n }\n }\n return { associatedtableTitleSingular, tableTitle, singularTableTitle }\n}\n\n\nexport const getFormTitle = (\n type: string,\n title: string,\n activeTab: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let objectName: any = ''\n let puralObjectName: any = ''\n let dialogTitle: any = ''\n\n if (breadcrumbs && breadcrumbs?.length > 0) {\n const last: any = breadcrumbs[breadcrumbs?.length - 1]\n const lastName = last?.n\n const mTitle = title\n if (type === 'association' && breadcrumbs && breadcrumbs?.length > 0) {\n objectName = title\n puralObjectName = title\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle} for ${nameTrancate(lastName)}` : `Associate an Existing ${mTitle} with ${nameTrancate(lastName)}`}`\n } else {\n const singularLastName = typeof lastName === 'string' && lastName?.endsWith('s')\n ? lastName.slice(0, -1)\n : lastName\n objectName = singularLastName\n puralObjectName = lastName\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle?.includes('with') ? nameTrancate(mTitle?.replace('with', 'for')) : nameTrancate(mTitle)}` : `Associate an Existing ${nameTrancate(mTitle)}`}`\n }\n }\n return { objectName, puralObjectName, dialogTitle }\n}\n\nconst nameTrancate = (name: any) => {\n return name?.length > 30 ? `${name?.slice(0, 30) + '...'}` : name\n}","import { decodeToBase64 } from \"../utils/compress\"\nimport { breadcrumbStage, generateUrl, isMessingParent, isMessingParentLastItem } from \"./url-utils\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useMakeLink = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\")\n\n // const makeLink = (props: any) => {\n // if (!search.b || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n // return buildParentRoute(props, search, router) // pure helper\n // } else {\n // const breadcrumbItems = decodeToBase64(search?.b) || []\n // return buildChildRoute(props, search, breadcrumbItems) // pure helper\n // }\n // }\n\n const makeLink = (props: any) => {\n if (!search || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n return buildParentRoute(props)\n } else {\n const breadcrumbItems = decodeToBase64(search) || []\n return buildChildRoute(props, breadcrumbItems)\n }\n }\n\n return { makeLink }\n}\n\n// if 0 index iths mean have no parent then add this\nconst buildParentRoute = (props: any) => {\n // const { pathname } = router.state.location\n // const routeMenu: any = getRouteMenu(pathname)\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n const breadcrumbItems: any = [\n {\n n: routeMenu?.title,\n o_t_id: routeMenu?.path,\n isHome: props?.isHome || false,\n },\n ]\n // return buildChildRoute(props, search, breadcrumbItems)\n return buildChildRoute(props, breadcrumbItems)\n}\n\n// if hav parent then add this\nconst buildChildRoute = (props: any, breadcrumbItems: any) => {\n \n let breadcrumbs = [...breadcrumbItems]\n // let breadcrumbType: string = 'child'\n\n // if (breadcrumbItems.length === 1) {\n // breadcrumbType = 'root'\n // } else if (breadcrumbItems.length === 2) {\n // breadcrumbType = 'root_details'\n // }\n let breadcrumbType = breadcrumbStage(breadcrumbItems)\n\n if (props?.isHome && isMessingParentLastItem(breadcrumbItems)) { // its for home side bard card data\n const parent: any = {\n n: props?.title || \"\",\n o_t_id: props?.objectTypeId,\n \"pt\": `/association/${props?.objectTypeId}`,\n isHome: props?.isHome || false,\n \"prm\": {\n \"sort\": \"-hs_createdate\",\n \"s\": \"\",\n \"fPn\": \"hs_pipeline\",\n \"fO\": \"eq\",\n \"fV\": \"\",\n \"c\": true,\n \"isPC\": props?.isPC,\n \"v\": \"LIST\",\n \"l\": \"10\",\n \"p\": 1\n }\n }\n\n breadcrumbs.push(parent)\n\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n breadcrumbs.push(newCrumb)\n } else if (breadcrumbType === 'root') {\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n if ((props?.objectTypeId != '0-5' && breadcrumbs.length > 2) && // check for only association ticket object\n (!isMessingParent(breadcrumbItems) && lastItem?.o_t_id === props?.objectTypeId) && // check for all associated object and check isMessingParent for skip parent to child and child to parent association data \n (props?.isHome && !isMessingParentLastItem(breadcrumbItems))) { // check home side bar child last item is messing parent then skip\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n // if associated data have no parent\n const parent: any = {\n n: props?.associationLabel || props?.name,\n o_t_id: props?.objectTypeId,\n }\n\n if (props?.tableParam) {\n parent.prm = props?.tableParam\n }\n\n if (props?.defPermissions) {\n parent.dp = props?.defPermissions\n }\n\n if (lastItem?.o_t_id && lastItem?.o_r_id) { // check if last item have no parent\n breadcrumbs.push(parent) // association list data\n }\n // end\n\n if (props?.recordId) { // association single data\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n }\n }\n }\n return generateUrl(props, breadcrumbs)\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/constants.ts","../src/utils/cookie.ts","../src/clint/auth-utils.ts","../src/clint/token-store.ts","../src/utils/config.ts","../src/utils/localStoraget.ts","../src/utils/generateApiUrl.ts","../src/clint/api-endpoints.ts","../src/clint/http-clint.ts","../src/clint/config.ts","../src/data/user.ts","../src/utils/compress.ts","../src/breadcrumb/url-utils.ts","../src/breadcrumb/key-map.ts","../src/utils/param.ts","../src/breadcrumb/param.ts","../src/breadcrumb/url.ts","../src/clint/index.ts","../src/mutation/createMutation.ts","../src/apis/authentication.ts","../src/apis/sso.ts","../src/apis/users.ts","../src/store/index.ts","../src/utils/getCookieData.ts","../src/store/use-table.ts","../src/apis/pipeline.ts","../src/apis/stage.ts","../src/apis/object.ts","../src/apis/note.ts","../src/apis/email.ts","../src/apis/uploader.ts","../src/apis/file.ts","../src/index.ts","../src/breadcrumb/breadcrumbs.ts","../src/breadcrumb/generate-url.ts"],"names":["getRefreshToken","url","config","keyMap","getDeep","list","create","update","details","lastItem"],"mappings":"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","file":"index.js","sourcesContent":["// cookies\nexport const LOGIN_DETAILS = \"loginDetails\";\nexport const REFRESH_TOKEN = \"refreshToken\";\nexport const PORTAL = \"portal\";\nexport const SUBSCRIPTION_TYPE = \"ssubscriptionType\";\n\n// variables\nexport const HUBSPOT_DATA = \"hubSpotData\";\nexport const HUB_ID = \"hubId\";\nexport const DEV_PORTAL_ID = \"devPortalId\";\nexport const PORTAL_ID = \"portalId\";\n","import Cookies from 'js-cookie';\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: 'none',\n secure: true,\n });\n}\n\nexport const getCookie: any = (key: any) => {\n return Cookies.get(key);\n}\n\nexport const removeCookie = (key: any) => {\n return Cookies.remove(key);\n}\n\nexport const removeAllCookie = () => {\n Object.keys(Cookies.get()).forEach((cookieName) => {\n Cookies.remove(cookieName);\n });\n}\n\n// export const isCookieExpired = (key: string): boolean => {\n// const value = Cookies.get(key);\n// return value === undefined; // true means expired or never set\n// };\n\n\nexport const isCookieExpired = (key: string): boolean => {\n const value: any = Cookies.get(key);\n try {\n const { expiresAt } = JSON.parse(value);\n return Date.now() > expiresAt ? true : false;\n } catch {\n return false; // if invalid format, treat as valid\n }\n};","/**\n * Authentication utility functions\n * These handle refresh token management\n */\n\nimport { LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE } from '../utils/constants';\nimport { setCookie, getCookie } from '../utils/cookie';\nimport { storAccessToken } from './token-store';\n\n// Set data\nexport const setLoggedInDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(LOGIN_DETAILS, JSON.stringify(data));\n resolve();\n });\n};\n\nexport function setRefreshToken(token: string, expiresAt: number) {\n return new Promise((resolve: any) => {\n setCookie(REFRESH_TOKEN, JSON.stringify(token), expiresAt);\n resolve();\n });\n}\n\nexport function setAccessToken(token: string, expiresIn?: number) {\n return new Promise((resolve: any) => {\n storAccessToken(token, expiresIn);\n resolve();\n });\n}\n\nexport const setPortal = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(PORTAL, JSON.stringify(data));\n resolve();\n });\n};\n\nexport const setSubscriptionType = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(SUBSCRIPTION_TYPE, JSON.stringify(data));\n resolve();\n });\n};\n\n// Get data\nexport function getProfile(): string | null {\n return JSON.parse(getCookie(LOGIN_DETAILS || null) || null);\n}\n\nexport function getRefreshToken(): string | null {\n return JSON.parse(getCookie(REFRESH_TOKEN || null) || null);\n}\n\nexport function getPortal(): any | null {\n return JSON.parse(getCookie(PORTAL || null) || null);\n}\n\nexport function getSubscriptionType(): string | null {\n return JSON.parse(getCookie(SUBSCRIPTION_TYPE || null) || null);\n}\n\n// Remove data\n// export const removeAllCookies = () => {\n// const cookies = document.cookie.split(\"; \");\n// cookies.forEach((cookie) => {\n// const name = cookie.split(\"=\")[0];\n// removeCookie(name);\n// });\n// };","/**\n * Token storage utilities\n * These functions handle access token management\n */\n\nimport { isCookieExpired } from '../utils/cookie.js';\nimport { REFRESH_TOKEN } from '../utils/constants';\n\nlet accessToken: string | null = null;\nlet tokenExpiresAt: number | null = null;\nlet refreshCallback: ((refreshToken: string) => Promise<{ token: string | null; success: boolean }>) | null = null;\n\nexport function getAccessToken(): string | null {\n return accessToken;\n}\n\nexport function storAccessToken(token: string, expiresIn?: number): void {\n accessToken = token;\n if (expiresIn) {\n tokenExpiresAt = Date.now() + expiresIn * 1000;\n } else {\n tokenExpiresAt = null;\n }\n}\n\nexport function clearAccessToken(): void {\n accessToken = null;\n tokenExpiresAt = null;\n}\n\nexport function isExpiresAccessToken(): boolean {\n if (!tokenExpiresAt) return true;\n return Date.now() >= tokenExpiresAt;\n}\n\n/**\n * Set the refresh callback function\n * This is called by the HTTP client during initialization\n */\nexport function setRefreshCallback(callback: (refreshToken: string) => Promise<{ token: string | null; success: boolean }>): void {\n refreshCallback = callback;\n}\n\n/**\n * Ensures the access token is valid, refreshing if necessary\n */\nexport async function ensureValidRefresh(): Promise<void> {\n if (isExpiresAccessToken() && refreshCallback) {\n const { getRefreshToken } = await import('./auth-utils.js');\n const refreshToken = getRefreshToken();\n if (refreshToken) {\n await refreshCallback(refreshToken);\n }\n }\n}\n\nexport function isAuthenticateApp() {\n if (isCookieExpired(REFRESH_TOKEN) || isExpiresAccessToken()) {\n return false;\n }\n return true;\n}","import { Config, HubspotStorage } from \"../types\";\nimport { HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID, PORTAL_ID } from \"./constants\";\nimport { storage } from \"./localStoraget\";\n\nexport const config = {\n get hubId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[HUB_ID] || \"\";\n },\n get devPortalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[DEV_PORTAL_ID] || \"\";\n },\n get portalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[PORTAL_ID] || \"\";\n },\n} satisfies Config;\n\nexport const setConfig = {\n setDevPortalId(portalId: string) {\n const existing = storage.get<HubspotStorage>(HUBSPOT_DATA) || {};\n\n storage.set(HUBSPOT_DATA, {\n ...existing,\n [PORTAL_ID]: portalId,\n });\n },\n};","// export const setLocalStorage = (key: string, value: string) => {\n// return localStorage.setItem(key, JSON.stringify(value));\n// }\n\n// export const getLocalStorage: any = (key: any) => {\n// let data = null;\n// const storedUser = localStorage.getItem(key);\n// if (storedUser) {\n// data = JSON.parse(storedUser);\n// }\n// return data\n// }\n\n// export const removeLocalStorage = (key: any) => {\n// return Cookies.remove(key);\n// }\n\n// export const removeAllLocalStorage = () => {\n// Object.keys(Cookies.get()).forEach((cookieName) => {\n// Cookies.remove(cookieName);\n// });\n// }\n\nexport const storage = {\n set: (key: string, value: any) => {\n localStorage.setItem(key, JSON.stringify(value));\n },\n\n get: <T>(key: string): T | null => {\n const item = localStorage.getItem(key);\n return item ? JSON.parse(item) : null;\n },\n\n remove: (key: string) => {\n localStorage.removeItem(key);\n },\n};","import { config } from '../utils/config'\n\nexport const generateApiUrl = ({\n route,\n params = {},\n queryParams = '',\n}: {\n route: string;\n params?: Object;\n queryParams?: any;\n}) => {\n const defaultParams = {\n hubId: config.hubId,\n portalId: config.portalId,\n };\n\n params = { ...defaultParams, ...params };\n const url = replaceParams(route, params)\n\n let queryString = '';\n if (queryParams && typeof queryParams === 'object') {\n const cleanedParams = Object.entries(queryParams)\n .filter(([_, value]) => value !== null && value !== undefined)\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n\n queryString = new URLSearchParams(cleanedParams).toString();\n }\n\n return queryString ? `${url}?${queryString}` : url;\n}\n\nfunction replaceParams(\n template: string,\n values: any\n) {\n return template.replace(/\\$\\{(\\w+)\\}/g, (_, key) =>\n key in values ? String(values[key]) : `\\${${key}}`\n );\n}","export const API_ENDPOINTS: any = {\n // Auth\n PRE_LOGIN: \"/api/auth/pre-login\",\n LOGIN: \"/api/auth/login\",\n AUTH_REFRESH: \"/api/auth/refresh\",\n FORGET_PASSWORD: \"/api/auth/forget-password\",\n RESET_PASSWORD_VERIFY_TOKEN: \"/api/auth/token/validate\",\n RESET_PASSWORD: \"/api/auth/reset-password\",\n VERIFY_EMAIL: \"/api/auth/verify-email\",\n REGISTER_EXISTING_USER: \"/api/auth/existing-user-register\",\n RESEND_EMAIL: \"/api/auth/resend-email\",\n LOGOUT: \"/api/auth/logout\",\n\n // SSO\n SSO_DETAILS: \"/api/auth/sso/active\",\n SSO_URL: \"/api/auth/sso/authorize\",\n SSO_CALLBACK: \"/api/auth/sso/callback\",\n\n // User\n ME: \"/api/auth/me\",\n PROFILE: \"/api/${hubId}/${portalId}/profiles\",\n CHANGE_PASSWORD: \"/api/auth/change-password\",\n\n // Pipeline\n PIPELINES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${hubspotObjectTypeId}\",\n\n // Stage\n STAGES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${objectTypeId}/${pipelineId}/stages\",\n\n // Object\n OBJECTS: \"api/${hubId}/${portalId}/hubspot-object-data/${hubspotObjectTypeId}\",\n OBJECTS_FORM: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_FORM_OPTIONS: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromRecordId/:fromObjectTypeId\",\n OBJECTS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_CREATE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/associations/:toObjectTypeId\",\n OBJECTS_REMOVE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/disassociate/:toObjectTypeId\",\n OBJECTS_DETAILS: \"api/${hubId}/${portalId}/hubspot-object-data/${objectId}/${id}\",\n OBJECTS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${objectId}/properties/${id}\",\n\n // Note\n NOTES: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_CREATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}/${note_id}\",\n NOTES_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/images/${objectId}/${id}\",\n NOTES_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/attachments/${objectId}/${id}\",\n\n // Email\n EMAILS: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}/${note_id}\",\n EMAILS_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/images/${objectId}/${id}\",\n EMAILS_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/attachments/${objectId}/${id}\",\n\n // File\n FILES: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILE: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}/${rowId}\",\n FILES_CREATE_FOLDER: \"api/${hubId}/${portalId}/hubspot-object-folders/${objectId}/${id}\",\n FILES_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILES_DELETE: \"api/feature-data/files/${me.hubspotPortals.templateName}${path}/${postId}/${fileId}\",\n};","import axios from \"axios\";\n// import type { AxiosError, AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig } from \"axios\";\nimport type { AxiosError, AxiosInstance, InternalAxiosRequestConfig } from \"axios\";\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { getAccessToken, ensureValidRefresh, setRefreshCallback } from './token-store';\nimport { config as defaultConfig } from './config';\nimport { config as storConfig } from '../utils/config'\nimport { generateApiUrl } from \"../utils/generateApiUrl\";\nimport { setAccessToken, setRefreshToken } from \"./auth-utils\";\n\nexport interface HttpClientConfig {\n /**\n * Base URL for API requests\n */\n baseURL?: string;\n\n /**\n * Request timeout in milliseconds\n */\n timeout?: number;\n\n /**\n * Custom headers to include in all requests\n */\n headers?: Record<string, string>;\n\n /**\n * Function to check if current path should skip auth error handling\n * Returns true if auth errors should be handled (redirect to login)\n */\n skipCurrentPublicPath?: () => boolean;\n\n /**\n * Routes configuration object with route paths\n */\n routes?: {\n unauthorized?: string;\n login?: string;\n };\n\n /**\n * Hub ID for API requests\n */\n hubId?: string;\n\n /**\n * Dev Portal ID for API requests\n */\n devPortalId?: string;\n\n /**\n * Function to handle logout\n */\n onLogout?: () => void | Promise<void>;\n}\n\nlet axiosInstance: AxiosInstance | null = null;\nlet config: HttpClientConfig = {};\n\n/**\n * Initialize the HTTP client with configuration\n */\nexport function initializeHttpClient(clientConfig: HttpClientConfig): void {\n config = clientConfig;\n\n const baseURL = config.baseURL ?? defaultConfig.baseURL;\n const timeout = config.timeout ?? 50000;\n\n axiosInstance = axios.create({\n baseURL,\n timeout,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n // Set up refresh callback to avoid circular dependency\n setRefreshCallback(getAuthRefreshToken);\n\n // Request interceptor: inject auth token if available\n axiosInstance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const token = getAccessToken();\n if (token) {\n config.headers.set('Authorization', `Bearer ${token}`);\n }\n return config;\n });\n\n // Response interceptor: handle errors\n axiosInstance.interceptors.response.use(\n (response) => response,\n (error: AxiosError) => {\n if (error.response && error.response.status === 401) {\n const shouldHandleAuthError = config.skipCurrentPublicPath?.() ?? false;\n\n if (shouldHandleAuthError) {\n // const payload = error.response.data as any ?? {};\n // const data = {\n // errorCode: payload.errorCode,\n // errorMessage: payload.errorMessage,\n // detailedMessage: payload.detailedMessage,\n // correlationId: payload.correlationId,\n // ts: Date.now(),\n // };\n\n // if (typeof window !== 'undefined' && window.sessionStorage) {\n // sessionStorage.setItem('authError', JSON.stringify(data));\n // }\n\n // if (config.routes?.unauthorized && typeof window !== 'undefined') {\n // window.location.replace(`#${config.routes.unauthorized}`);\n // }\n }\n }\n return Promise.reject(error);\n },\n );\n}\n\n/**\n * Get the axios instance (creates default if not initialized)\n */\nfunction getAxiosInstance(): AxiosInstance {\n if (!axiosInstance) {\n // Create default instance if not initialized\n initializeHttpClient({\n baseURL: defaultConfig.baseURL,\n timeout: 50000,\n });\n }\n return axiosInstance!;\n}\n\nfunction formatBooleanSearchParam(key: string, value: boolean): string {\n return value ? `${key}:1` : `${key}:`;\n}\n\nexport class HttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().put<T>(url, data);\n return response.data;\n }\n\n static async delete<T>(url: string): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().delete<T>(url);\n return response.data;\n }\n\n static formatSearchParams(params: Partial<any>): string {\n return Object.entries(params)\n .filter(([, value]) => Boolean(value))\n .map(([k, v]) =>\n [\n 'type',\n 'categories',\n 'tags',\n 'author',\n 'manufacturer',\n 'shops',\n 'refund_reason',\n ].includes(k)\n ? `${k}.slug:${v}`\n : ['is_approved'].includes(k)\n ? formatBooleanSearchParam(k, v as boolean)\n : `${k}:${v}`,\n )\n .join(';');\n }\n}\n\nexport class AuthHttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().put<T>(url, data, options);\n return response.data;\n }\n}\n\nexport function getFormErrors(error: unknown): string | null {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.message ?? null;\n }\n return null;\n}\n\nexport function getFieldErrors(error: unknown): any {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.errors ?? null;\n }\n return null;\n}\n\nexport async function getAuthRefreshToken(refreshToken: string | null): Promise<{\n token: string | null;\n success: boolean;\n}> {\n try {\n // const hubId = config.hubId ?? '';\n const headers: Record<string, string> = {};\n\n if (storConfig.devPortalId) {\n headers['X-Dev-Portal-Id'] = storConfig.devPortalId;\n }\n\n const api_url = generateApiUrl({ route: API_ENDPOINTS.AUTH_REFRESH, queryParams: { hubId: storConfig.hubId } })\n\n const response = await getAxiosInstance().post(\n api_url,\n { refreshToken },\n { headers }\n );\n\n const maybeData = response?.data?.data || response?.data;\n const tokenData = maybeData?.tokenData || maybeData || {} as any;\n const newRefreshToken = tokenData?.refreshToken as string;\n const token = tokenData?.token as string | undefined;\n const expiresIn = tokenData?.expiresIn as number | undefined;\n const rExpiresIn = tokenData?.refreshExpiresIn as number | undefined;\n const rExpiresAt = tokenData?.refreshExpiresAt as number | undefined; // epoch seconds\n\n if (typeof newRefreshToken === 'string') {\n let rExpires = 0;\n if (typeof rExpiresIn === 'number') {\n rExpires = Date.now() + rExpiresIn * 1000;\n } else if (typeof rExpiresAt === 'number') {\n rExpires = rExpiresAt * 1000;\n }\n setRefreshToken(newRefreshToken, rExpires);\n }\n\n if (typeof token === 'string') {\n setAccessToken(token, typeof expiresIn === 'number' ? expiresIn : undefined);\n return { token, success: true };\n }\n\n return { token: null, success: false };\n } catch {\n return { token: null, success: false };\n }\n}\n\n// Export the axios instance getter for advanced usage\nexport { getAxiosInstance };\n","export interface Config {\n /**\n * Base URL for API requests\n */\n baseURL: string;\n}\n\nexport const config: Config = {\n baseURL: 'https://api.dev.woodsportal.com',\n};\n\n","export let PROFILE: any = null\n\nexport const setProfileData = (data: any) => {\n PROFILE = data\n}\n\nexport const getProfileData = () => {\n return PROFILE\n}","import pako from 'pako'\nimport { Base64 } from 'js-base64'\n\nexport function convertToBase64(obj: unknown): string {\n try {\n if (!obj) return \"\"\n const json = JSON.stringify(obj)\n const compressed = pako.deflate(json) // returns Uint8Array\n const base64 = Base64.fromUint8Array(compressed, true) // URL-safe\n\n return base64\n } catch (error) {\n console.error('Failed to encode object:', error)\n return ''\n }\n}\n\nexport function decodeToBase64(encoded: string): any {\n try {\n if (!encoded) return null\n\n const uint8Array = Base64.toUint8Array(encoded)\n const decompressed = pako.inflate(uint8Array, { to: 'string' })\n\n return JSON.parse(decompressed)\n } catch (error) {\n console.error('Failed to decode object:', error)\n return null\n }\n}\n","import { convertToBase64 } from \"../utils/compress\"\n\n// map Keys\nexport function mapKeysDeep(obj: any, keyMap: Record<string, string>): any {\n if (Array.isArray(obj)) {\n return obj.map((item) => mapKeysDeep(item, keyMap));\n } else if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const mappedKey = keyMap[key] || key; // rename if matched\n acc[mappedKey] = mapKeysDeep(value, keyMap); // recurse into nested\n return acc;\n }, {} as Record<string, any>);\n }\n return obj;\n}\n\n// check parent is messing\nexport function isMessingParent(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n let lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n return (lastItem?.o_r_id && (!lastItem2?.o_r_id && lastItem2?.o_t_id) && lastItem3?.o_r_id) ? true : false\n}\n\n// check parent last item if messing\nexport function isMessingParentLastItem(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n\n return (!lastItem?.o_t_id && (lastItem2?.o_r_id && lastItem2?.o_t_id)) ? false : true\n}\n\n// check breadcrumb position, return root, root_details, child\nexport function breadcrumbStage(breadcrumbItems: any) {\n let breadcrumbType: string = 'child'\n\n if (breadcrumbItems.length === 1) {\n breadcrumbType = 'root'\n } else if (breadcrumbItems.length === 2) {\n breadcrumbType = 'root_details'\n }\n\n return breadcrumbType;\n}\n\n// generate link url\nexport const generateUrl = (props: any, breadcrumbs: any) => {\n const newBase64 = convertToBase64(breadcrumbs)\n let url = ''\n if (props?.objectTypeId && props?.recordId) {\n url = `/${props?.recordId}/${props?.objectTypeId}/${props?.recordId}?b=${newBase64}`\n } else {\n url = `/association/${props?.objectTypeId}?b=${newBase64}`\n }\n return url\n}\n\n// get total parent\nexport function getTotalParentLength(data: any) {\n return data.filter((item: any) =>\n (item.pt || item.o_t_id) && !item.o_r_id\n ).length;\n}\n\n// only for generate path\nexport const generatePath = (breadcrumbs: any, breadcrumb: any, index: any) => {\n const bc = convertToBase64(breadcrumbs.slice(0, index + 1))\n if (index === 0) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.pt || breadcrumb?.o_t_id}?b=${bc}`,\n }\n } else if (index === 1) {\n if (breadcrumb?.isHome) { // its for home side bard card data\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n if (breadcrumb?.o_t_id && breadcrumb?.o_r_id && !breadcrumb?.isHome) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n }\n}","export const keyMap: Record<string, string> = {\n dp: 'defPermissions',\n n: 'name',\n sort: 'sort',\n o_t_id: 'objectTypeId',\n s: 'search',\n fPn: 'filterPropertyName',\n fO: 'filterOperator',\n fV: 'filterValue',\n c: 'cache',\n isPC: 'isPrimaryCompany',\n v: 'view',\n l: 'limit',\n pt: 'path',\n p: 'page',\n a: 'after',\n aPip: 'activePipeline',\n aT: 'activeTab',\n cT: 'create',\n dP: 'display',\n dL: 'display_label',\n pId: 'pipeline_id',\n }","import { getUrlPathName } from '../utils/url';\n\nexport function getParam(paramName: string): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n const hashWithoutHash = hash.startsWith('#') ? hash.substring(1) : hash;\n\n const queryString = hashWithoutHash.split('?')[1];\n if (!queryString) return null;\n\n const params = new URLSearchParams(queryString);\n return params.get(paramName);\n}\n\nexport function getPath(): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n return hash\n .slice(1) // remove \"#\"\n .split(\"?\")[0]; // remove query params\n}\n\nexport const generateParam = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n\nexport const getHubId = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n","import { getTotalParentLength, mapKeysDeep } from \"./url-utils\";\nimport { decodeToBase64 } from \"../utils/compress\"\nimport { keyMap } from \"./key-map\";\nimport { getParam } from \"../utils/param\";\n\nexport const getRouteMenu = (path: string) => {\n // Use globalThis for cross-environment compatibility and to fix 'window' not defined error\n const apiRoutes = (globalThis as any)?.apiRoutes || [];\n return apiRoutes.find((menu: any) => menu?.path === path);\n}\n\nexport const getRouteDetails = () => {\n // const router = useRouter();\n // const search: any = router.state.location.search;\n const search: any = getParam(\"b\");\n\n const breadcrumbs = decodeToBase64(search) || [];\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n const mapped = lastItem ? mapKeysDeep(lastItem, keyMap) : null;\n\n return { routeDetails: mapped };\n};\n\n// return current route details\nexport const getParamDetails = (props?: any, isDetailsPage: boolean = false) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length > 0 && breadcrumbs?.[0]?.isHome) { // skip 1st breadcrumb for home page sidebar data\n breadcrumbs = breadcrumbs.slice(1)\n }\n\n let mediatorObjectTypeId = ''\n let mediatorObjectRecordId = ''\n let parentObjectTypeId = ''\n let parentObjectRecordId = ''\n // let bParams = ''\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n if (isDetailsPage === true && lastItem && \"prm\" in lastItem) { // if details page then dont deent prm key\n delete lastItem.prm;\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n // bParams = lastItem?.p || ''\n } else {\n if (breadcrumbs.length > 2) {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n }\n\n if (!lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem3?.o_t_id || ''\n parentObjectRecordId = lastItem3?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem2?.o_t_id === '0-5' && !parentObjectTypeId && !parentObjectRecordId) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n\n }\n }\n let paramsObject: any = {}\n\n // if isPrimaryCompany\n // const arr = Array.from(new URLSearchParams(lastItem?.p))\n // const map = new Map(arr)\n // if (map.get('isPrimaryCompany') === 'true') {\n // paramsObject['isPrimaryCompany'] = true\n // } else {\n // // if not isPrimaryCompany\n // if (parentObjectTypeId && parentObjectRecordId) {\n // paramsObject['parentObjectTypeId'] = parentObjectTypeId\n // paramsObject['parentObjectRecordId'] = parentObjectRecordId\n // }\n // if (mediatorObjectTypeId && mediatorObjectRecordId) {\n // paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n // paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n // }\n // }\n\n if (breadcrumbs[0]?.prm?.isPC || breadcrumbs[1]?.prm?.isPC || lastItem?.prm?.isPC) { // 1st check fot normal object, 2dn & 3rd and check for db associated data\n paramsObject['isPrimaryCompany'] = true\n }\n\n\n if (parentObjectTypeId && parentObjectRecordId) {\n paramsObject['parentObjectTypeId'] = parentObjectTypeId\n paramsObject['parentObjectRecordId'] = parentObjectRecordId\n }\n if (mediatorObjectTypeId && mediatorObjectRecordId) {\n paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n }\n\n const mappedLastItemParam = Object.fromEntries(\n Object.entries(lastItem?.prm || {}).map(([key, value]) => [\n keyMap[key] || key, // use mapped name if exists, else keep original\n value,\n ])\n );\n\n let queryString = null\n\n if (props?.type === 'association') { // if association association then don't need mappedLastItemParam \n queryString = new URLSearchParams({ ...paramsObject, ...{ cache: false } } as any).toString()\n // } else if (breadcrumbs.length < 2) { // if root path then don't need paramsObject \n // paramsObject = {}\n // queryString = new URLSearchParams({...mappedLastItemParam} as any).toString()\n } else {\n queryString = new URLSearchParams({ ...paramsObject, ...mappedLastItemParam } as any).toString()\n }\n\n\n\n\n // let params = bParams ? `${bParams}&${queryString}` : `?${queryString}`\n let params: any = queryString ? `?${queryString}` : ''\n\n // if (breadcrumbs.length < 2 && map.get('isPrimaryCompany') != 'true')\n\n // if (breadcrumbs.length < 2 && !breadcrumbs[0]?.prm?.isPC)\n // params = ''\n\n // const mParamsObject: any = {\n // ...paramsObject,\n // ...(params ? { params } : {}),\n // };\n\n const totalParentLength = getTotalParentLength(breadcrumbs)\n let parentAccessLabel = false\n\n // param for GF, F, SON to GF relation\n if (\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 2) || // company object\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 3) || // normal object\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 1 && props?.type === 'ticket') || // company ticket\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 2 && props?.type === 'ticket') // normal ticket\n ) {\n parentAccessLabel = true\n }\n\n return {\n breadcrumbs,\n // paramsObject: Object.keys(mParamsObject).length === 0 ? null : mParamsObject,\n paramsObject: paramsObject,\n params,\n parentAccessLabel\n }\n}\n","import { convertToBase64, decodeToBase64 } from \"../utils/compress\";\nimport { getParam, getPath } from \"../utils/param\";\nimport { keyMap } from \"./key-map\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useUpdateLink = () => {\n const updateLink = async (props: any, displayName: string = \"prm\") => {\n const search: any = getParam(\"b\");\n const pathname: any = getPath()\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) {\n // const { pathname } = router.state.location;\n const routeMenu: any = getRouteMenu(pathname);\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ];\n }\n\n // Get the last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = await getDeep(lastBreadcrumb, displayName) || {}\n\n await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props,\n });\n } else {\n await Object.assign(lastBreadcrumb, props);\n }\n const newBase64 = convertToBase64(breadcrumbs);\n updateBParam(newBase64);\n };\n\n // --- Helpers ---\n\n function setDeep(obj: any, path: string, value: any) {\n const keys = path.split(\".\");\n let curr = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!curr[keys[i]] || typeof curr[keys[i]] !== \"object\") {\n curr[keys[i]] = {};\n }\n curr = curr[keys[i]];\n }\n curr[keys[keys.length - 1]] = value;\n return curr\n }\n\n function getDeep(obj: any, path: string) {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n }\n\n\n // const filterParams = (displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n // if (breadcrumbs.length < 1) return null\n // const lastItem = breadcrumbs[breadcrumbs.length - 1]\n // const expandKeys = (obj: Record<string, any>) => {\n // return Object.fromEntries(\n // Object.entries(obj).map(([key, value]) => [\n // keyMap[key] || key, // map if exists, else keep original\n // value,\n // ]),\n // )\n // }\n // const output = displayName && lastItem[displayName] ? expandKeys(lastItem[displayName]) : lastItem\n // return output\n // }\n\n const getLinkParams = (displayName: string = \"prm\") => { // for API param\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : null;\n\n return output;\n };\n\n const filterParams = (displayName: string = \"prm\") => { // for select old value\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : expandKeys(lastItem);\n\n return output;\n };\n\n return { updateLink, getLinkParams, filterParams }\n}\n\nconst updateBParam = (newValue: string): void => {\n // const currentSearch = router.state.location.search || {}\n\n // router.navigate({\n // to: router.state.location.pathname, // stay on same path\n // search: {\n // ...currentSearch,\n // b: newValue, // add or replace `b`\n // },\n // replace: true, // don't push new history entry\n // })\n\n // If running in a non-browser environment, do nothing\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return;\n\n const hash: string = (globalThis as any).location.hash || '';\n // \"#/0-3-796859474?b=eJxNjkEL\"\n\n if (!hash.startsWith(\"#/\")) return;\n\n const withoutHash = hash.slice(2); // remove \"#/\"\n const [path, queryString] = withoutHash.split(\"?\");\n\n const params = new URLSearchParams(queryString || \"\");\n params.set(\"b\", newValue); // add or replace `b`\n\n const newHash = `#/${path}?${params.toString()}`;\n\n // ✅ same as router.navigate({ replace: true })\n if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n (globalThis as any).history.replaceState(null, \"\", newHash);\n }\n}\n","import { generateApiUrl } from '../utils/generateApiUrl';\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { AuthHttpClient, HttpClient } from './http-clint';\nimport { config } from '../utils/config'\nimport { PreLoginPayload, LoginPayload, ForgetPasswordPayload, ChangePasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { getProfileData } from '../data/user';\nimport { routeParam } from '..';\n// import { routeParam, url } from '..';\nimport { getParamDetails } from '../breadcrumb/param';\n// import { getPortal } from './auth-utils';\nimport { useUpdateLink } from \"../breadcrumb/url\";\n// import { getSubscriptionType } from './auth-utils';\n\nexport const Client = {\n authentication: {\n preLogin: (data: PreLoginPayload) => AuthHttpClient.post(API_ENDPOINTS.PRE_LOGIN, data),\n login: (data: LoginPayload) => {\n const queryParams = config.hubId ? { hubId: config.hubId } : null;\n return AuthHttpClient.post(\n generateApiUrl({ route: API_ENDPOINTS.LOGIN, queryParams: queryParams }),\n data,\n config?.devPortalId && {\n headers: {\n 'X-Dev-Portal-Id': config.devPortalId,\n },\n }\n )\n },\n verifyEmail: (data: VerifyEmailPayload) => AuthHttpClient.post(API_ENDPOINTS.VERIFY_EMAIL, data),\n resetPasswordVerifyToken: (data: ResetPasswordVerifyTokenPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD_VERIFY_TOKEN, data),\n resetPassword: (data: ResetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD, data),\n forgetPassword: (data: ForgetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.FORGET_PASSWORD, data),\n registerExistingUser: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data?.payload),\n verifyEmailResend: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n resendEmail: (data: any) => AuthHttpClient.post(API_ENDPOINTS.RESEND_EMAIL, data),\n logout: () => HttpClient.post(API_ENDPOINTS.LOGOUT, null),\n },\n sso: {\n getSsoDetails: () => AuthHttpClient.get(API_ENDPOINTS.SSO_DETAILS),\n generateSsoUrl: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_URL, queryParams: payload?.queryParams })),\n ssoCallback: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_CALLBACK, queryParams: payload?.queryParams })),\n },\n user: {\n me: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.ME })),\n profile: (payload: any) => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.PROFILE, queryParams: payload })),\n changePassword: (data: ChangePasswordPayload) => HttpClient.post(API_ENDPOINTS.CHANGE_PASSWORD, data),\n },\n pipeline: {\n list: (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n // console.log(\"getProfileData\", getProfileData())\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n const apiParams: any = {}\n\n if (paramsObject?.parentObjectTypeId) {\n apiParams.parentObjectTypeId = paramsObject?.parentObjectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && !param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = userData?.data?.info?.objectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = \"0-2\";\n }\n // setParentObjectTypeId(apiParams?.parentObjectTypeId || \"\")\n\n apiParams.isPrimaryCompany = param?.isPrimaryCompany;\n apiParams.cache = payload?.cache;\n\n console.log(\"payload\", payload)\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams })\n return HttpClient.get(apiUrl)\n },\n },\n stage: {\n list: (props: any = null) => {\n // const portalId = config.devPortalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectTypeId: props?.params?.objectTypeId,\n pipelineId: props?.params?.pipelineId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.STAGES, params })\n return HttpClient.get(apiUrl)\n },\n },\n object: {\n list: async (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n\n param.cache = payload.cache\n\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n // const { useUpdateLink: useUpdateLink2 } = url\n // const { updateLink, getLinkParams } = useUpdateLink2();\n const { updateLink, getLinkParams } = useUpdateLink();\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject, parentAccessLabel } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n // console.log(\"payload\", payload)\n\n // const { pipeline, mPipelines } = payload?.variables;\n const pipeline = payload?.variables?.pipeline;\n const mPipelines = payload?.variables?.mPipelines;\n\n const mSelectedPipeline = pipeline !== undefined ? pipeline : payload?.selectedPipeline;\n\n // console.log(\"mSelectedPipeline\", mSelectedPipeline)\n\n\n if (mSelectedPipeline) {\n param.filterValue = mSelectedPipeline\n } else if (payload?.specPipeLine && payload?.pipeLineId) {\n param.filterValue = payload?.pipeLineId\n }\n else if (payload?.hubspotObjectTypeId != \"0-3\" || payload?.hubspotObjectTypeId != \"0-5\") {\n param.filterValue = ''\n }\n\n\n // const API_ENDPOINT = apis.tableAPI;\n\n const fParams = getLinkParams()\n\n param = { ...(payload?.isFristTimeLoadData && fParams && !payload?.isHome ? fParams : param), ...paramsObject }\n\n // console.log(\"payload?.isFristTimeLoadData\", payload?.isFristTimeLoadData)\n // console.log(\"paramsObject\", paramsObject)\n // console.log(\"fParams\", fParams)\n // console.log(\"param\", param)\n\n\n if (!payload?.isFristTimeLoadData || !fParams) {\n await updateLink({\n \"sort\": param?.sort,\n \"s\": param?.search,\n \"fPn\": param?.filterPropertyName,\n \"fO\": param?.filterOperator,\n \"fV\": param?.filterValue,\n \"c\": param?.cache,\n \"isPC\": param?.isPrimaryCompany,\n \"v\": param?.view,\n \"l\": param?.limit,\n \"p\": param?.page,\n \"a\": param?.after,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 0 && !payload?.specPipeLine) { // if pipelines empty then set filter value is empty (n-a)\n param.filterValue = \"\"\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 1 && !payload?.specPipeLine && mSelectedPipeline != null) { // if pipelines length is 0 then forcefully set 0 index pipeline\n param.filterValue = mPipelines[0].pipelineId\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (payload?.isHome) { // Only for home tickets\n let parentObjectTypeId = \"\"\n if (userData?.info?.objectTypeId && !param?.isPrimaryCompany) {\n parentObjectTypeId = userData?.info?.objectTypeId\n } else if (userData?.info?.objectTypeId && param?.isPrimaryCompany) {\n parentObjectTypeId = \"0-2\"\n }\n param.parentObjectTypeId = parentObjectTypeId\n // setParentObjectTypeId(parentObjectTypeId)\n }\n\n param.parentAccessLabel = parentAccessLabel\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n return HttpClient.get(apiUrl)\n },\n sideBarList: async (payload: any = null) => {\n const hubspotObjectTypeId = payload?.hubspotObjectTypeId\n const params = { hubspotObjectTypeId }\n const queryParams = payload.param\n // const subscriptionType = getSubscriptionType()\n\n // const { useUpdateLink: useUpdateLink } = url\n // const { updateLink, filterParams } = useUpdateLink();\n\n // const tab = filterParams(`tabs.a.${hubspotObjectTypeId}`)\n\n // let param: any = {};\n\n // const baseParams: any = {\n // sort: payload?.sortConfig,\n // filterValue: payload?.filterValue,\n // cache: payload?.cache,\n // isPrimaryCompany: payload?.isPrimaryCompany,\n // };\n\n // if (subscriptionType === \"FREE\") {\n // param = {\n // ...baseParams,\n // ...({ after: payload?.isFristTimeLoadData && tab?.page ? tab?.page : payload?.currentPage }),\n // };\n // } else {\n // param = {\n // ...baseParams,\n // ...({\n // limit: payload?.itemsPerPage || 10,\n // page: payload?.isFristTimeLoadData && tab?.page ? tab?.page : payload?.currentPage,\n // ...(payload?.after && payload?.after.length > 0 && { after: payload?.after }),\n // }),\n // };\n // }\n\n // updateLink(param);\n // if (payload?.isPrimaryCompany) param.mediatorObjectTypeId = '0-2';\n\n // const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams })\n return HttpClient.get(apiUrl)\n },\n form: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n objectFormOptions: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_FORM_OPTIONS, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n createExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n removeExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_REMOVE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n details: (props: any = null) => {\n const { paramsObject: urlParam, parentAccessLabel } = getParamDetails(\"\", true)\n\n // const portalId = config.devPortalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const queryParams = {\n parentAccessLabel: parentAccessLabel,\n ...props?.queryParams,\n ...urlParam\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS, params, queryParams })\n return HttpClient.get(apiUrl)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n }\n },\n note: {\n list: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n email: {\n list: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n file: {\n list: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n console.log(\"params_0\", params)\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n details: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n rowId: props?.params?.rowId,\n }\n console.log(\"params_1\", params)\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n addFolder: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_CREATE_FOLDER, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n addFile: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n }\n}","import { MutationOptions } from \"../types\";\n\n/**\n * Shared mutation helper used across `api.*` factories.\n *\n * - **Concurrency:** overlapping `mutate()` calls keep loading true until all finish.\n * - **Errors:** `onError` runs for failures; the promise still rejects so callers can `try/catch`.\n */\nexport function createMutation<TPayload, TSuccess, TError = unknown>(\n mutationFn: (payload?: TPayload) => Promise<TSuccess>,\n options?: MutationOptions<TSuccess, TError>\n) {\n let inFlight = 0;\n let lastReportedLoading: boolean | null = null;\n\n const syncLoading = () => {\n const active = inFlight > 0;\n if (lastReportedLoading === active) return;\n lastReportedLoading = active;\n options?.onLoadingChange?.(active);\n };\n\n const mutate = async (payload?: TPayload) => {\n inFlight += 1;\n syncLoading();\n try {\n const response = await mutationFn(payload);\n await options?.onSuccess?.(response, payload);\n return response;\n } catch (error) {\n options?.onError?.(error as TError, payload);\n throw error;\n } finally {\n inFlight -= 1;\n syncLoading();\n }\n };\n\n return {\n mutate,\n isLoading: () => inFlight > 0,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { LoginPayload, MutationOptions, PreLoginPayload, ForgetPasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setPortal, setSubscriptionType, setAccessToken, setRefreshToken, setLoggedInDetails } from \"../clint/auth-utils\";\nimport { getParam } from \"../utils/param\";\nimport { removeAllCookie } from \"../utils/cookie\";\nimport { clearAccessToken } from \"../clint/token-store\";\nimport { setConfig } from \"../utils/config\";\n\nexport function preLogin(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.preLogin(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function login(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<LoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.login(payload);\n\n const tokenData: any = response?.data?.tokenData || {}\n const loggedInDetails: any = response?.data?.loggedInDetails || {}\n const currentPortal: any = response?.data?.loggedInDetails?.currentPortal || {}\n const currentPortalId: any = currentPortal?.portalId || null\n const SubscriptionType = loggedInDetails?.subscriptionType || \"BASIC\";\n\n const token = tokenData?.token;\n const refreshToken = tokenData?.refreshToken;\n const expiresIn = tokenData?.expiresIn;\n const rExpiresIn = tokenData?.refreshExpiresIn;\n\n setPortal(currentPortal);\n setSubscriptionType(SubscriptionType);\n await setAccessToken(token, expiresIn);\n\n await setRefreshToken(refreshToken, rExpiresIn);\n await setLoggedInDetails(response.data);\n\n setConfig.setDevPortalId(currentPortalId);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<VerifyEmailPayload, any>(\n async (payload: any) => {\n const verifyEmailPayload: VerifyEmailPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!verifyEmailPayload?.token) verifyEmailPayload.token = token;\n const response: any = await Client.authentication.verifyEmail(verifyEmailPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmail: mutate,\n isLoading,\n };\n}\n\nexport function resetPasswordVerifyToken(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordVerifyTokenPayload, any>(\n async (payload: any) => {\n const resetPasswordVerifyTokenPayload: ResetPasswordVerifyTokenPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token;\n const response: any = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPasswordVerifyToken: mutate,\n isLoading,\n };\n}\n\nexport function resetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPassword: mutate,\n isLoading,\n };\n}\n\nexport function forgetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ForgetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.forgetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n forgetPassword: mutate,\n isLoading,\n };\n}\n\nexport function logout(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.authentication.logout();\n\n clearAccessToken()\n removeAllCookie()\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n logout: mutate,\n isLoading,\n };\n}\n\nexport function registerExistingUser(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.registerExistingUser(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n registerExistingUser: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmailResend(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.verifyEmailResend(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmailResend: mutate,\n isLoading,\n };\n}\n\nexport function resendEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resendEmail(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resendEmail: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions, PreLoginPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\n\nexport function getSsoDetails(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.sso.getSsoDetails();\n return response;\n },\n options\n );\n\n return {\n mutate,\n getSsoDetails: mutate,\n isLoading,\n };\n}\n\nexport function generateSsoUrl(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.generateSsoUrl(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n generateSsoUrl: mutate,\n isLoading,\n };\n}\n\nexport function ssoCallback(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.ssoCallback(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n ssoCallback: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { ChangePasswordPayload, MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setProfileData } from \"../data/user\";\n\n\nexport function me(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.user.me();\n return response;\n },\n options\n );\n\n return {\n mutate,\n me: mutate,\n isLoading,\n };\n}\n\nexport function profile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async (paylaod: any) => {\n const response: any = await Client.user.profile(paylaod);\n setProfileData(response)\n return response;\n },\n options\n );\n\n return {\n mutate,\n profile: mutate,\n isLoading,\n };\n}\n\n\nexport function changePassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ChangePasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.user.changePassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n changePassword: mutate,\n isLoading,\n };\n}","// // store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n\n// // atom-like usage\n// use: () => [T, (value: T | ((prev: T) => T)) => void, (listener: Listener<T>) => () => void];\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) {\n// listeners.splice(index, 1);\n// }\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const use = () => {\n// return [get(), set, subscribe];\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// use,\n// };\n// }\n\n\n\n// store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((l) => l(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) listeners.splice(index, 1);\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((l) => l(state));\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// };\n// }\n\n\ntype Listener<T> = (state: T, prevState: T) => void;\n\ntype PartialState<T> =\n | Partial<T>\n | ((state: T) => Partial<T>);\n\nexport function createStore<T>(\n initializer: (\n set: (partial: PartialState<T>) => void,\n get: () => T\n ) => T\n) {\n let state: T;\n const listeners = new Set<Listener<T>>();\n\n const get = () => state;\n\n const set = (partial: PartialState<T>) => {\n const prevState = state;\n\n const partialState =\n typeof partial === \"function\"\n ? partial(state)\n : partial;\n\n state = {\n ...state,\n ...partialState,\n };\n\n listeners.forEach((listener) =>\n listener(state, prevState)\n );\n };\n\n const subscribe = (listener: Listener<T>) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n\n state = initializer(set, get);\n\n return {\n getState: get,\n setState: set,\n subscribe,\n };\n}","import { getCookie } from \"./cookie\"\n\nexport const getAuthSubscriptionType = () => {\n return getCookie(\"subscriptionType\")\n}","import { createStore } from \"./\";\nimport { getAuthSubscriptionType } from \"../utils/getCookieData\";\nimport { useUpdateLink } from \"../breadcrumb/url\";\n\nconst pageLimit = 10;\n\nconst tableStore = createStore((set, get) => ({\n // ==============================\n // STATE\n // ==============================\n\n tableUniqueId: null as string | null,\n gridData: [],\n sort: \"-hs_createdate\",\n limit: 10,\n after: \"\",\n page: 1 as number | string,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null as boolean | null,\n view: null as string | null,\n selectedPipeline: \"\",\n tableParam: {},\n tableDefPermissions: {},\n\n // ==============================\n // BASIC SETTERS\n // ==============================\n\n setTableUniqueId: (v: string | null) => set({ tableUniqueId: v }),\n setSort: (v: string) => set({ sort: v }),\n setLimit: (v: number) => set({ limit: v }),\n setAfter: (v: string) => set({ after: v }),\n setPage: (v: number | string) => set({ page: v }),\n setTotalItems: (v: number) => set({ totalItems: v }),\n setNumOfPages: (v: number) => set({ numOfPages: v }),\n setCurrentPage: (v: number) => set({ currentPage: v }),\n setSearch: (v: string) => set({ search: v }),\n setFilterPropertyName: (v: string) => set({ filterPropertyName: v }),\n setFilterOperator: (v: string) => set({ filterOperator: v }),\n setFilterValue: (v: string) => set({ filterValue: v }),\n setIsPrimaryCompany: (v: boolean | null) =>\n set({ isPrimaryCompany: v }),\n\n // ==============================\n // VIEW\n // ==============================\n\n setView: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n view: mView,\n });\n },\n\n // ==============================\n // PIPELINE\n // ==============================\n\n changePipeline: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n selectedPipeline: mView || \"\",\n });\n },\n\n setSelectedPipeline: (\n // hubspotObjectTypeId: string,\n pipelines: any[],\n pipeLineId?: string\n ) => {\n let filterValue = \"\";\n\n if (pipeLineId) {\n const pipelineSingle = pipelines.find(\n (pipeline) =>\n pipeline.pipelineId === pipeLineId\n );\n\n filterValue =\n pipelineSingle?.pipelineId || \"\";\n }\n\n set({\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue,\n selectedPipeline: filterValue,\n });\n },\n\n // ==============================\n // RESET\n // ==============================\n\n resetTableParam: () => {\n set({\n sort: \"-hs_createdate\",\n limit: pageLimit,\n after: \"\",\n page:\n getAuthSubscriptionType() === \"FREE\"\n ? \"\"\n : 1,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null,\n selectedPipeline: \"\",\n });\n },\n\n // ==============================\n // PARAM BUILDER\n // ==============================\n\n getTableParam: (\n companyAsMediator?: boolean,\n currentPageOverride?: number\n ) => {\n const state: any = get();\n\n const baseParams: any = {\n sort: state.sort,\n search: state.search,\n filterPropertyName:\n state.filterPropertyName,\n filterOperator: state.filterOperator,\n filterValue: state.selectedPipeline,\n cache: true,\n isPrimaryCompany:\n companyAsMediator || false,\n view: state.view,\n };\n\n if (\n getAuthSubscriptionType() === \"FREE\"\n ) {\n return {\n ...baseParams,\n after: state.page,\n };\n }\n\n return {\n ...baseParams,\n limit: state.limit,\n page:\n currentPageOverride ||\n state.page,\n ...(state.after && {\n after: state.after,\n }),\n };\n },\n\n // ==============================\n // GRID DATA\n // ==============================\n\n setGridData: async (\n type: string,\n deals: any[]\n ) => {\n if (type === \"reset\") {\n set({ gridData: [] });\n return;\n }\n\n if (type === \"directly\") {\n set({ gridData: deals });\n return;\n }\n\n const finalData = await deals.map(\n (deal) => {\n const cards =\n deal?.data?.results?.rows?.map(\n (row: any) => ({\n id: row?.hs_object_id,\n ...row,\n hubspotObjectTypeId:\n type === \"deals\"\n ? \"0-3\"\n : \"0-5\",\n })\n ) || [];\n\n return {\n id: deal.id,\n name: deal.label,\n count: deal?.data?.total,\n ...deal,\n cards,\n };\n }\n );\n\n await set({ gridData: finalData });\n return finalData\n },\n\n // ==============================\n // DEFAULT PIPELINE\n // ==============================\n\n setDefaultPipeline(\n data: any,\n hubspotObjectTypeId: string,\n // companyAsMediator?: boolean\n ) {\n if (!data) {\n set({ selectedPipeline: \"\" });\n return \"\";\n }\n\n // const { useUpdateLink } = url;\n const { updateLink, filterParams } = useUpdateLink();\n\n const params = filterParams();\n const excludedIds = [\"0-1\", \"0-2\", \"0-3\", \"0-4\", \"0-5\"];\n\n const state: any = get();\n const view = state.view;\n const selectedPipeline = state.selectedPipeline;\n\n let defaultPipelineId = \"\";\n let mFilterValue: any = \"\";\n\n const defaultPipeline = data?.data?.[0];\n\n if (excludedIds.includes(hubspotObjectTypeId)) {\n defaultPipelineId = defaultPipeline?.pipelineId || \"\";\n }\n\n if (\n params &&\n params?.filterPropertyName === \"hs_pipeline\" &&\n params?.filterValue\n ) {\n mFilterValue = params.filterValue;\n } else {\n if (view === \"BOARD\" && !selectedPipeline) {\n mFilterValue = defaultPipelineId;\n\n updateLink({\n fV: defaultPipelineId,\n });\n } else if (!excludedIds.includes(hubspotObjectTypeId)) {\n mFilterValue = selectedPipeline || null;\n } else {\n mFilterValue =\n data.data.length === 1\n ? defaultPipelineId\n : selectedPipeline;\n }\n }\n\n set({ selectedPipeline: mFilterValue });\n return mFilterValue;\n },\n}));\n\n// ==============================\n// USAGE HELPER\n// ==============================\nexport function useTable() {\n const tableState: any = tableStore.getState()\n return {\n ...tableState, ...{ listeners: { subscribe: tableStore.subscribe } }\n }\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.pipeline.list(payload, param);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getPipelines: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.stage.list(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getStages: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.object.list(payload, param);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjects: mutate,\n isLoading,\n };\n}\n\nexport function sideBarList(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.sideBarList(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getSideBarObjects: mutate,\n isLoading,\n };\n}\n\n\nexport function form(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.form(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsForm: mutate,\n isLoading,\n };\n}\n\nexport function objectFormOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.objectFormOptions(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n objectFormOptions: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createObject: mutate,\n isLoading,\n };\n}\n\nexport function createExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.createExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createExistingObject: mutate,\n isLoading,\n };\n}\n\n\nexport function removeExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.removeExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n removeExisting: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsDetails: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateObjectsDetails: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.note.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getNotes: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.note.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createNote: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n // let params: any = makeParam()\n // let mParams: any = { cache: !!params?.cache, isPrimaryCompany: params?.isPrimaryCompany, limit: params?.limit || 5 }\n\n // if (getAuthSubscriptionType() === 'FREE') {\n // mParams.after = params?.after || \"\";\n // } else {\n // mParams.limit = params?.limit || \"\";\n // mParams.page = params?.page || \"\";\n // }\n\n\n const response: any = await Client.note.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateNote: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getEmails: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.email.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createEmail: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.update(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateEmail: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function imageUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.image(payload) : await Client.note.image(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n imageUpload: mutate,\n isLoading,\n };\n}\n\nexport function attachmentUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.attachment(payload) : await Client.note.attachment(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n attachmentUpload: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFiles: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFile: mutate,\n isLoading,\n };\n}\n\nexport function addFolder(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFolder(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFolder: mutate,\n isLoading,\n };\n}\n\nexport function addFile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFile(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFile: mutate,\n isLoading,\n };\n}","/**\n * WoodsPortal client SDK — public entry module.\n *\n * Configure HTTP once with {@link initializeHttpClient} in production, then use\n * {@link api}, {@link store}, {@link url}, {@link routeParam}, and {@link breadcrumbsDetails}.\n */\nimport { preLogin, login, verifyEmail, forgetPassword, logout, resetPasswordVerifyToken, resetPassword, registerExistingUser, verifyEmailResend, resendEmail } from \"./apis/authentication\";\nimport { getSsoDetails, generateSsoUrl, ssoCallback } from \"./apis/sso\";\nimport { changePassword, me, profile } from \"./apis/users\";\nimport { list as pipelines } from \"./apis/pipeline\";\nimport { list as stages } from \"./apis/stage\";\nimport { list as objects, sideBarList as sideBarObjects, form as objectsForm, create as createObject, createExisting as createExistingObject, removeExisting as removeExistingObject, details as objectsDetails, update as updateObjectsDetails, objectFormOptions } from \"./apis/object\";\nimport { list as notes, create as createNote, update as updateNote } from \"./apis/note\";\nimport { list as emails, create as createEmail, update as updateEmail } from \"./apis/email\";\nimport { imageUpload, attachmentUpload } from \"./apis/uploader\";\nimport { list as files, addFolder, addFile, details as file } from \"./apis/file\";\nimport { getRefreshToken } from \"./clint/auth-utils\";\nimport { getAuthRefreshToken } from \"./clint/http-clint\";\nimport { getAccessToken, isAuthenticateApp, isExpiresAccessToken } from \"./clint/token-store\";\nimport { isCookieExpired } from \"./utils/cookie\";\nimport { useUpdateLink } from \"./breadcrumb/url\";\nimport { getParamDetails, getRouteDetails } from \"./breadcrumb/param\";\nimport { getBreadcrumbs, getFormTitle, getTableTitle } from \"./breadcrumb/breadcrumbs\";\nimport { useMakeLink } from \"./breadcrumb/generate-url\";\nimport { useTable } from \"./store/use-table\";\nimport { storage } from \"./utils/localStoraget\";\n\n/** Axios setup, error helpers, and {@link HttpClientConfig}. */\nexport { initializeHttpClient, getFormErrors, getFieldErrors } from \"./clint/http-clint\";\nexport type { HttpClientConfig } from \"./clint/http-clint\";\n\nexport type {\n Config,\n MutationOptions,\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n} from \"./types\";\n\n/**\n * API facades (auth, SSO, users, CRM objects, files, uploads, token helpers).\n * Most methods return `{ mutate, isLoading }` from {@link createMutation}; see README.\n */\nexport const api = {\n preLogin,\n login,\n verifyEmail,\n resetPasswordVerifyToken,\n resetPassword,\n registerExistingUser,\n verifyEmailResend,\n resendEmail,\n getSsoDetails,\n generateSsoUrl,\n ssoCallback,\n forgetPassword,\n logout,\n me,\n profile,\n changePassword,\n pipelines,\n stages,\n objects,\n sideBarObjects,\n objectsForm,\n createObject,\n createExistingObject,\n removeExistingObject,\n objectsDetails,\n updateObjectsDetails,\n objectFormOptions,\n notes,\n createNote,\n updateNote,\n emails,\n createEmail,\n updateEmail,\n imageUpload,\n attachmentUpload,\n files,\n file,\n addFolder,\n addFile,\n getRefreshToken,\n getAuthRefreshToken,\n isCookieExpired,\n isExpiresAccessToken,\n isAuthenticateApp,\n getAccessToken,\n};\n\n/** Lightweight storage helpers and table UI state. */\nexport const store = {\n storage,\n useTable\n};\n\n/** Breadcrumb copy helpers for list/form chrome. */\nexport const breadcrumbsDetails = {\n getBreadcrumbs,\n getTableTitle,\n getFormTitle\n};\n\n/** URL builders that read query/path context (not React hooks despite the `use*` names). */\nexport const url = {\n useMakeLink,\n useUpdateLink\n};\n\n/** Route and query-param introspection for embedded HubSpot-style navigation. */\nexport const routeParam = {\n getRouteDetails,\n getParamDetails\n};\n","import { decodeToBase64 } from \"../utils/compress\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\nimport { generatePath } from \"./url-utils\"\n\nexport const getBreadcrumbs = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || []\n\n if (!breadcrumbs && breadcrumbs.length < 1) return []\n\n const updated = breadcrumbs.map((breadcrumb: any, index: any) => {\n return generatePath(breadcrumbs, breadcrumb, index)\n })\n\n if (updated.length < 1) {\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n return [\n {\n name: routeMenu?.title,\n path: routeMenu?.path,\n },\n ]\n }\n return updated\n}\n\n\nexport const getTableTitle = (\n componentName: string,\n title: string,\n ticketTableTitle: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let associatedtableTitleSingular: any = ''\n let tableTitle: any = ''\n let singularTableTitle: any = ''\n\n if (breadcrumbs && breadcrumbs.length > 0) {\n const lastItem: any = breadcrumbs[breadcrumbs.length - 1]\n const last: any = lastItem ? generatePath(breadcrumbs, lastItem, breadcrumbs.length - 1) : null\n const previousItem: any = breadcrumbs[breadcrumbs.length - 2]\n const previous: any = previousItem ? generatePath(breadcrumbs, previousItem, breadcrumbs.length - 2) : null\n const singularLastName = last?.name\n\n associatedtableTitleSingular = singularLastName\n if (componentName != 'ticket') {\n tableTitle = previous?.name\n ? { last: last, previous: previous }\n : { last: last }\n singularTableTitle = previous?.name\n ? `${singularLastName} with ${previous?.name}`\n : singularLastName\n } else {\n const ticketTableTitleSingular = ticketTableTitle.endsWith('s')\n ? ticketTableTitle.slice(0, -1)\n : ticketTableTitle\n tableTitle = { last: { name: title } }\n\n singularTableTitle = previous?.name\n ? `${ticketTableTitleSingular} with ${singularLastName} `\n : ticketTableTitleSingular\n }\n }\n return { associatedtableTitleSingular, tableTitle, singularTableTitle }\n}\n\n\nexport const getFormTitle = (\n type: string,\n title: string,\n activeTab: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let objectName: any = ''\n let puralObjectName: any = ''\n let dialogTitle: any = ''\n\n if (breadcrumbs && breadcrumbs?.length > 0) {\n const last: any = breadcrumbs[breadcrumbs?.length - 1]\n const lastName = last?.n\n const mTitle = title\n if (type === 'association' && breadcrumbs && breadcrumbs?.length > 0) {\n objectName = title\n puralObjectName = title\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle} for ${nameTrancate(lastName)}` : `Associate an Existing ${mTitle} with ${nameTrancate(lastName)}`}`\n } else {\n const singularLastName = typeof lastName === 'string' && lastName?.endsWith('s')\n ? lastName.slice(0, -1)\n : lastName\n objectName = singularLastName\n puralObjectName = lastName\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle?.includes('with') ? nameTrancate(mTitle?.replace('with', 'for')) : nameTrancate(mTitle)}` : `Associate an Existing ${nameTrancate(mTitle)}`}`\n }\n }\n return { objectName, puralObjectName, dialogTitle }\n}\n\nconst nameTrancate = (name: any) => {\n return name?.length > 30 ? `${name?.slice(0, 30) + '...'}` : name\n}","import { decodeToBase64 } from \"../utils/compress\"\nimport { breadcrumbStage, generateUrl, isMessingParent, isMessingParentLastItem } from \"./url-utils\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useMakeLink = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\")\n\n // const makeLink = (props: any) => {\n // if (!search.b || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n // return buildParentRoute(props, search, router) // pure helper\n // } else {\n // const breadcrumbItems = decodeToBase64(search?.b) || []\n // return buildChildRoute(props, search, breadcrumbItems) // pure helper\n // }\n // }\n\n const makeLink = (props: any) => {\n if (!search || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n return buildParentRoute(props)\n } else {\n const breadcrumbItems = decodeToBase64(search) || []\n return buildChildRoute(props, breadcrumbItems)\n }\n }\n\n return { makeLink }\n}\n\n// if 0 index iths mean have no parent then add this\nconst buildParentRoute = (props: any) => {\n // const { pathname } = router.state.location\n // const routeMenu: any = getRouteMenu(pathname)\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n const breadcrumbItems: any = [\n {\n n: routeMenu?.title,\n o_t_id: routeMenu?.path,\n isHome: props?.isHome || false,\n },\n ]\n // return buildChildRoute(props, search, breadcrumbItems)\n return buildChildRoute(props, breadcrumbItems)\n}\n\n// if hav parent then add this\nconst buildChildRoute = (props: any, breadcrumbItems: any) => {\n \n let breadcrumbs = [...breadcrumbItems]\n // let breadcrumbType: string = 'child'\n\n // if (breadcrumbItems.length === 1) {\n // breadcrumbType = 'root'\n // } else if (breadcrumbItems.length === 2) {\n // breadcrumbType = 'root_details'\n // }\n let breadcrumbType = breadcrumbStage(breadcrumbItems)\n\n if (props?.isHome && isMessingParentLastItem(breadcrumbItems)) { // its for home side bard card data\n const parent: any = {\n n: props?.title || \"\",\n o_t_id: props?.objectTypeId,\n \"pt\": `/association/${props?.objectTypeId}`,\n isHome: props?.isHome || false,\n \"prm\": {\n \"sort\": \"-hs_createdate\",\n \"s\": \"\",\n \"fPn\": \"hs_pipeline\",\n \"fO\": \"eq\",\n \"fV\": \"\",\n \"c\": true,\n \"isPC\": props?.isPC,\n \"v\": \"LIST\",\n \"l\": \"10\",\n \"p\": 1\n }\n }\n\n breadcrumbs.push(parent)\n\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n breadcrumbs.push(newCrumb)\n } else if (breadcrumbType === 'root') {\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n if ((props?.objectTypeId != '0-5' && breadcrumbs.length > 2) && // check for only association ticket object\n (!isMessingParent(breadcrumbItems) && lastItem?.o_t_id === props?.objectTypeId) && // check for all associated object and check isMessingParent for skip parent to child and child to parent association data \n (props?.isHome && !isMessingParentLastItem(breadcrumbItems))) { // check home side bar child last item is messing parent then skip\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n // if associated data have no parent\n const parent: any = {\n n: props?.associationLabel || props?.name,\n o_t_id: props?.objectTypeId,\n }\n\n if (props?.tableParam) {\n parent.prm = props?.tableParam\n }\n\n if (props?.defPermissions) {\n parent.dp = props?.defPermissions\n }\n\n if (lastItem?.o_t_id && lastItem?.o_r_id) { // check if last item have no parent\n breadcrumbs.push(parent) // association list data\n }\n // end\n\n if (props?.recordId) { // association single data\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n }\n }\n }\n return generateUrl(props, breadcrumbs)\n}\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "woodsportal-client-sdk",
|
|
3
|
-
"version": "1.1.4-dev.
|
|
3
|
+
"version": "1.1.4-dev.9",
|
|
4
4
|
"description": "Official TypeScript/JavaScript SDK for WoodsPortal API - Authentication, user management, pipelines, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|