woodsportal-client-sdk 1.1.4-dev.1 → 1.1.4-dev.3

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.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  interface Config {
2
2
  hubId: string;
3
3
  devPortalId: string;
4
+ portalId: string;
4
5
  }
5
6
  interface MutationOptions<TSuccess, TError = unknown> {
6
7
  onSuccess?: (data: TSuccess, payload: any) => void | Promise<void>;
@@ -334,7 +335,7 @@ declare const url: {
334
335
  makeLink: (props: any) => string;
335
336
  };
336
337
  useUpdateLink: () => {
337
- updateLink: (props: any, displayName?: string) => void;
338
+ updateLink: (props: any, displayName?: string) => Promise<void>;
338
339
  getLinkParams: (displayName?: string) => {
339
340
  [k: string]: any;
340
341
  } | null;
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ var __esm = (fn, res) => function __init() {
9
9
  };
10
10
 
11
11
  // src/utils/constants.ts
12
- var LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE, HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID;
12
+ var LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE, HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID, PORTAL_ID;
13
13
  var init_constants = __esm({
14
14
  "src/utils/constants.ts"() {
15
15
  LOGIN_DETAILS = "loginDetails";
@@ -19,6 +19,7 @@ var init_constants = __esm({
19
19
  HUBSPOT_DATA = "hubSpotData";
20
20
  HUB_ID = "hubId";
21
21
  DEV_PORTAL_ID = "devPortalId";
22
+ PORTAL_ID = "portalId";
22
23
  }
23
24
  });
24
25
  var setCookie, getCookie, removeAllCookie, isCookieExpired;
@@ -159,6 +160,19 @@ var config = {
159
160
  get devPortalId() {
160
161
  const hubSpotData = storage.get(HUBSPOT_DATA);
161
162
  return hubSpotData?.[DEV_PORTAL_ID] || "";
163
+ },
164
+ get portalId() {
165
+ const hubSpotData = storage.get(HUBSPOT_DATA);
166
+ return hubSpotData?.[PORTAL_ID] || "";
167
+ }
168
+ };
169
+ var setConfig = {
170
+ setDevPortalId(portalId) {
171
+ const existing = storage.get(HUBSPOT_DATA) || {};
172
+ storage.set(HUBSPOT_DATA, {
173
+ ...existing,
174
+ [PORTAL_ID]: portalId
175
+ });
162
176
  }
163
177
  };
164
178
 
@@ -170,7 +184,7 @@ var generateApiUrl = ({
170
184
  }) => {
171
185
  const defaultParams = {
172
186
  hubId: config.hubId,
173
- portalId: config.devPortalId
187
+ portalId: config.portalId
174
188
  };
175
189
  params = { ...defaultParams, ...params };
176
190
  const url2 = replaceParams(route, params);
@@ -611,9 +625,9 @@ init_auth_utils();
611
625
 
612
626
  // src/breadcrumb/url.ts
613
627
  var useUpdateLink = () => {
614
- const search = getParam("b");
615
- const pathname = getPath();
616
- const updateLink = (props, displayName = "prm") => {
628
+ const updateLink = async (props, displayName = "prm") => {
629
+ const search = getParam("b");
630
+ const pathname = getPath();
617
631
  let breadcrumbs = decodeToBase64(search) || [];
618
632
  if (breadcrumbs.length < 1) {
619
633
  const routeMenu = getRouteMenu(pathname);
@@ -625,14 +639,17 @@ var useUpdateLink = () => {
625
639
  ];
626
640
  }
627
641
  const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];
642
+ let udatedBreadcrumb = null;
628
643
  if (displayName) {
629
- setDeep(lastBreadcrumb, displayName, {
630
- ...getDeep(lastBreadcrumb, displayName) || {},
644
+ const ex = await getDeep(lastBreadcrumb, displayName) || {};
645
+ udatedBreadcrumb = await setDeep(lastBreadcrumb, displayName, {
646
+ ...ex,
631
647
  ...props
632
648
  });
633
649
  } else {
634
- Object.assign(lastBreadcrumb, props);
650
+ udatedBreadcrumb = Object.assign(lastBreadcrumb, props);
635
651
  }
652
+ breadcrumbs[breadcrumbs.length - 1] = udatedBreadcrumb;
636
653
  const newBase64 = convertToBase64(breadcrumbs);
637
654
  updateBParam(newBase64);
638
655
  };
@@ -646,11 +663,13 @@ var useUpdateLink = () => {
646
663
  curr = curr[keys[i]];
647
664
  }
648
665
  curr[keys[keys.length - 1]] = value;
666
+ return curr;
649
667
  }
650
668
  function getDeep(obj, path) {
651
669
  return path.split(".").reduce((acc, key) => acc?.[key], obj);
652
670
  }
653
671
  const getLinkParams = (displayName = "prm") => {
672
+ const search = getParam("b");
654
673
  let breadcrumbs = decodeToBase64(search) || [];
655
674
  if (breadcrumbs.length < 1) return null;
656
675
  const lastItem = breadcrumbs[breadcrumbs.length - 1];
@@ -671,6 +690,7 @@ var useUpdateLink = () => {
671
690
  return output;
672
691
  };
673
692
  const filterParams = (displayName = "prm") => {
693
+ const search = getParam("b");
674
694
  let breadcrumbs = decodeToBase64(search) || [];
675
695
  if (breadcrumbs.length < 1) return null;
676
696
  const lastItem = breadcrumbs[breadcrumbs.length - 1];
@@ -775,7 +795,7 @@ var Client = {
775
795
  }
776
796
  },
777
797
  object: {
778
- list: (payload = null, param = null) => {
798
+ list: async (payload = null, param = null) => {
779
799
  const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId };
780
800
  const { updateLink, getLinkParams } = useUpdateLink();
781
801
  const { getParamDetails: getParamDetails2 } = routeParam;
@@ -794,7 +814,7 @@ var Client = {
794
814
  const fParams = getLinkParams();
795
815
  param = { ...payload?.isFristTimeLoadData && fParams && !payload?.isHome ? fParams : param, ...paramsObject };
796
816
  if (!payload?.isFristTimeLoadData || !fParams) {
797
- updateLink({
817
+ await updateLink({
798
818
  "sort": param?.sort,
799
819
  "s": param?.search,
800
820
  "fPn": param?.filterPropertyName,
@@ -810,13 +830,13 @@ var Client = {
810
830
  }
811
831
  if (mPipelines != void 0 && mPipelines?.length === 0 && !payload?.specPipeLine) {
812
832
  param.filterValue = "";
813
- updateLink({
833
+ await updateLink({
814
834
  "fV": param?.filterValue
815
835
  });
816
836
  }
817
837
  if (mPipelines != void 0 && mPipelines?.length === 1 && !payload?.specPipeLine && mSelectedPipeline != null) {
818
838
  param.filterValue = mPipelines[0].pipelineId;
819
- updateLink({
839
+ await updateLink({
820
840
  "fV": param?.filterValue
821
841
  });
822
842
  }
@@ -1115,6 +1135,7 @@ function login(options) {
1115
1135
  const tokenData = response?.data?.tokenData || {};
1116
1136
  const loggedInDetails = response?.data?.loggedInDetails || {};
1117
1137
  const currentPortal = response?.data?.loggedInDetails?.currentPortal || {};
1138
+ const currentPortalId = currentPortal?.portalId || null;
1118
1139
  const SubscriptionType = loggedInDetails?.subscriptionType || "BASIC";
1119
1140
  const token = tokenData?.token;
1120
1141
  const refreshToken = tokenData?.refreshToken;
@@ -1125,6 +1146,7 @@ function login(options) {
1125
1146
  await setAccessToken(token, expiresIn);
1126
1147
  await setRefreshToken(refreshToken, rExpiresIn);
1127
1148
  await setLoggedInDetails(response.data);
1149
+ setConfig.setDevPortalId(currentPortalId);
1128
1150
  return response;
1129
1151
  },
1130
1152
  options
@@ -1588,7 +1610,7 @@ function list(options) {
1588
1610
  } = useTable();
1589
1611
  const { mutate, isLoading } = createMutation(
1590
1612
  async (payload) => {
1591
- const param = getTableParam(payload?.companyAsMediator);
1613
+ const param = await getTableParam(payload?.companyAsMediator);
1592
1614
  const response = await Client.pipeline.list(payload, param);
1593
1615
  return response;
1594
1616
  },
@@ -1624,7 +1646,7 @@ function list3(options) {
1624
1646
  } = useTable();
1625
1647
  const { mutate, isLoading } = createMutation(
1626
1648
  async (payload) => {
1627
- const param = getTableParam(payload?.companyAsMediator);
1649
+ const param = await getTableParam(payload?.companyAsMediator);
1628
1650
  const response = await Client.object.list(payload, param);
1629
1651
  return response;
1630
1652
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/constants.ts","../src/utils/cookie.ts","../src/clint/token-store.ts","../src/clint/auth-utils.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/clint/index.ts","../src/breadcrumb/url.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":["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\";\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 * 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}","/**\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// };","import { Config } from \"../types\";\nimport { HUBSPOT_DATA, HUB_ID, DEV_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} satisfies Config;\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.devPortalId,\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 { generateApiUrl } from '../utils/generateApiUrl';\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { AuthHttpClient } 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 '..';\nimport { getParamDetails } from '../breadcrumb/param';\nimport { getPortal } from './auth-utils';\nimport { useUpdateLink } from \"../breadcrumb/url\";\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 }),\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: () => AuthHttpClient.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: () => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.ME })),\n profile: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.PROFILE, queryParams: payload })),\n changePassword: (data: ChangePasswordPayload) => AuthHttpClient.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?.sync ? false : true;\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams })\n return AuthHttpClient.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 AuthHttpClient.get(apiUrl)\n },\n },\n object: {\n list: (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\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 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 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 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 // console.log(\"params\", params)\n // console.log(\"param\", param)\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n return AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams })\n return AuthHttpClient.get(apiUrl)\n },\n details: (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 rowId: props?.params?.rowId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams })\n return AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\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 router = useRouter()\n const search: any = getParam(\"b\");\n const pathname: any = getPath()\n\n // const updateLink = (props: any, displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\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 // p: routeMenu?.path,\n // },\n // ]\n // }\n\n // if (displayName) {\n // breadcrumbs[breadcrumbs.length - 1][displayName] = {...breadcrumbs[breadcrumbs.length - 1][displayName], ...props}\n // } else {\n // breadcrumbs[breadcrumbs.length - 1] = {...breadcrumbs[breadcrumbs.length - 1], ...props}\n // }\n // const newBase64 = convertToBase64(JSON.stringify(breadcrumbs))\n // updateBParam(router, newBase64)\n // }\n\n const updateLink = (props: any, displayName: string = \"prm\") => {\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\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 setDeep(lastBreadcrumb, displayName, {\n ...(getDeep(lastBreadcrumb, displayName) || {}),\n ...props,\n });\n } else {\n Object.assign(lastBreadcrumb, props);\n }\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 }\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 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 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 { 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\";\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 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 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 = 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 = 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 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 console.log(\"payload\", payload)\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, 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 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/token-store.ts","../src/clint/auth-utils.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/clint/index.ts","../src/breadcrumb/url.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":["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 * 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}","/**\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// };","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 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 { generateApiUrl } from '../utils/generateApiUrl';\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { AuthHttpClient } 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 '..';\nimport { getParamDetails } from '../breadcrumb/param';\nimport { getPortal } from './auth-utils';\nimport { useUpdateLink } from \"../breadcrumb/url\";\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 }),\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: () => AuthHttpClient.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: () => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.ME })),\n profile: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.PROFILE, queryParams: payload })),\n changePassword: (data: ChangePasswordPayload) => AuthHttpClient.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?.sync ? false : true;\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams })\n return AuthHttpClient.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 AuthHttpClient.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 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 // console.log(\"params\", params)\n // console.log(\"param\", param)\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n return AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.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 const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams })\n return AuthHttpClient.get(apiUrl)\n },\n details: (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 rowId: props?.params?.rowId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams })\n return AuthHttpClient.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 AuthHttpClient.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 AuthHttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\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 let udatedBreadcrumb = null\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = await getDeep(lastBreadcrumb, displayName) || {}\n\n udatedBreadcrumb = await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props,\n });\n } else {\n udatedBreadcrumb = Object.assign(lastBreadcrumb, props);\n }\n breadcrumbs[breadcrumbs.length - 1] = udatedBreadcrumb\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 { 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 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 console.log(\"payload\", payload)\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, 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 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.1",
3
+ "version": "1.1.4-dev.3",
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",