woodsportal-client-sdk 1.1.4-dev.51 → 1.1.4-dev.52

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.
@@ -1,6 +1,6 @@
1
1
  import { bindStoreWithActions } from '../../chunk-Y5MRAAGK.js';
2
- import { createAdapterHooks } from '../../chunk-YTS4YVJV.js';
3
- import '../../chunk-B4J3MT7F.js';
2
+ import { createAdapterHooks } from '../../chunk-6P2KET6B.js';
3
+ import '../../chunk-UULYOTUL.js';
4
4
  import '../../chunk-T4ORQSB3.js';
5
5
  import { inject, DestroyRef, signal } from '@angular/core';
6
6
 
@@ -1,5 +1,5 @@
1
- import { createAdapterHooks } from '../../chunk-YTS4YVJV.js';
2
- import '../../chunk-B4J3MT7F.js';
1
+ import { createAdapterHooks } from '../../chunk-6P2KET6B.js';
2
+ import '../../chunk-UULYOTUL.js';
3
3
  import '../../chunk-T4ORQSB3.js';
4
4
  import { useSyncExternalStore } from 'react';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { bindStoreWithActions } from '../../chunk-Y5MRAAGK.js';
2
- import { createAdapterHooks } from '../../chunk-YTS4YVJV.js';
3
- import '../../chunk-B4J3MT7F.js';
2
+ import { createAdapterHooks } from '../../chunk-6P2KET6B.js';
3
+ import '../../chunk-UULYOTUL.js';
4
4
  import '../../chunk-T4ORQSB3.js';
5
5
  import { reactive, onScopeDispose } from 'vue';
6
6
 
@@ -0,0 +1,17 @@
1
+ import { uploaderStore, actions3, syncStore, actions6, emailStore, actions5, noteStore, actions4, multiObjectStore, actions7, tableStore, actions2 } from './chunk-UULYOTUL.js';
2
+
3
+ // src/adapters/shared/createAdapterHooks.ts
4
+ function createAdapterHooks(createComposable) {
5
+ return {
6
+ useTable: createComposable(tableStore, actions2),
7
+ useMultiObjectActions: createComposable(multiObjectStore, actions7),
8
+ useNote: createComposable(noteStore, actions4),
9
+ useEmail: createComposable(emailStore, actions5),
10
+ useSync: createComposable(syncStore, actions6),
11
+ useUploader: createComposable(uploaderStore, actions3)
12
+ };
13
+ }
14
+
15
+ export { createAdapterHooks };
16
+ //# sourceMappingURL=chunk-6P2KET6B.js.map
17
+ //# sourceMappingURL=chunk-6P2KET6B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/adapters/shared/createAdapterHooks.ts"],"names":["actions"],"mappings":";;;AA0BO,SAAS,mBAAmB,gBAAA,EAAqC;AACpE,EAAA,OAAO;AAAA,IACH,QAAA,EAAU,gBAAA,CAAkD,UAAA,EAAYA,QAAY,CAAA;AAAA,IACpF,qBAAA,EAAuB,gBAAA,CAAiB,gBAAA,EAAkBA,QAAkB,CAAA;AAAA,IAC5E,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW,CAAA;AAAA,IAC/E,QAAA,EAAU,gBAAA,CAAkD,UAAA,EAAYA,QAAY,CAAA;AAAA,IACpF,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW,CAAA;AAAA,IAC/E,WAAA,EAAa,gBAAA,CAAwD,aAAA,EAAeA,QAAe;AAAA,GACvG;AACJ","file":"chunk-6P2KET6B.js","sourcesContent":["import type { SubscribableStore } from \"./bindStoreWithActions\";\nimport {\n tableStore,\n tableActions,\n type TableState,\n multiObjectStore,\n multiObjectActions,\n noteStore,\n noteActions,\n type NoteState,\n emailStore,\n emailActions,\n type EmailState,\n syncStore,\n syncActions,\n type SyncState,\n uploaderStore,\n uploaderActions,\n type UploaderState,\n} from \"./stores\";\n\ntype ComposableFactory = <TState extends object, TActions extends object>(\n store: SubscribableStore<TState>,\n actions: TActions,\n) => () => TState & TActions;\n\nexport function createAdapterHooks(createComposable: ComposableFactory) {\n return {\n useTable: createComposable<TableState, typeof tableActions>(tableStore, tableActions),\n useMultiObjectActions: createComposable(multiObjectStore, multiObjectActions),\n useNote: createComposable<NoteState, typeof noteActions>(noteStore, noteActions),\n useEmail: createComposable<EmailState, typeof emailActions>(emailStore, emailActions),\n useSync: createComposable<SyncState, typeof syncActions>(syncStore, syncActions),\n useUploader: createComposable<UploaderState, typeof uploaderActions>(uploaderStore, uploaderActions),\n };\n}\n"]}
@@ -653,6 +653,23 @@ function createStore2(initialState) {
653
653
  };
654
654
  }
655
655
 
656
+ // src/store2/use-form.ts
657
+ var formStore = createStore2({
658
+ form: null
659
+ });
660
+ var actions = {
661
+ setFormData(response) {
662
+ formStore.setState({
663
+ form: response
664
+ });
665
+ },
666
+ clearFormData() {
667
+ formStore.setState({
668
+ form: null
669
+ });
670
+ }
671
+ };
672
+
656
673
  // src/store2/use-table.ts
657
674
  var tableStore2 = createStore2({
658
675
  objectsData: null,
@@ -662,7 +679,7 @@ var tableStore2 = createStore2({
662
679
  selectedPipeline: "",
663
680
  viewType: ""
664
681
  });
665
- var actions = {
682
+ var actions2 = {
666
683
  async setObjectsData(response) {
667
684
  const state = tableStore2.getState();
668
685
  if (response?.info?.viewType == "LIST") {
@@ -820,11 +837,12 @@ var actions = {
820
837
  },
821
838
  async setTablePrependData(response, props) {
822
839
  const state = tableStore2.getState();
840
+ const formState = formStore.getState();
823
841
  let rows = [];
824
842
  if (state.tableData?.info?.viewType == "BOARD") {
825
843
  if (response === "loading") {
826
844
  const responseData = state.tableData?.data?.results ?? [];
827
- const pipelineStage = props?.payload?.propertyPayload?.hs_pipeline_stage || props?.payload?.propertyPayload?.dealstage;
845
+ const pipelineStage = props?.payload?.propertyPayload?.hs_pipeline_stage || props?.payload?.propertyPayload?.dealstage || formState?.form?.data?.pipelineDefaults?.defaultStage?.id;
828
846
  rows = responseData.map(
829
847
  ({ id, data }) => {
830
848
  const matchedPrepend = state.tablePrependData.find(
@@ -947,7 +965,7 @@ function resolveAttachmentsFromIds(attachmentIds, storedAttachments) {
947
965
  const ids = String(raw ?? "").split(";").map((id) => id.trim()).filter(Boolean);
948
966
  return ids.map((id) => storedAttachments.find((a) => String(a.id) === id)).filter((a) => a != null).map(toAttachmentSummary);
949
967
  }
950
- var actions2 = {
968
+ var actions3 = {
951
969
  setAttachment(response) {
952
970
  const data = response?.data;
953
971
  if (!data?.id) return;
@@ -969,7 +987,7 @@ var noteStore = createStore2({
969
987
  prependNotes: [],
970
988
  id: ""
971
989
  });
972
- var actions3 = {
990
+ var actions4 = {
973
991
  setNotes(response, payload) {
974
992
  const state = noteStore.getState();
975
993
  const rows = response?.data?.results?.rows ?? [];
@@ -1036,7 +1054,7 @@ var actions3 = {
1036
1054
  noteStore.setState({
1037
1055
  prependNotes: []
1038
1056
  });
1039
- actions2.clearAttachments();
1057
+ actions3.clearAttachments();
1040
1058
  },
1041
1059
  async updatePrependNote(response) {
1042
1060
  const responseData = { ...response };
@@ -1120,7 +1138,7 @@ var emailStore = createStore2({
1120
1138
  prependEmails: [],
1121
1139
  id: ""
1122
1140
  });
1123
- var actions4 = {
1141
+ var actions5 = {
1124
1142
  setEmails(response, payload) {
1125
1143
  const state = emailStore.getState();
1126
1144
  const rows = response?.data?.results?.rows ?? [];
@@ -1187,7 +1205,7 @@ var actions4 = {
1187
1205
  emailStore.setState({
1188
1206
  prependEmails: []
1189
1207
  });
1190
- actions2.clearAttachments();
1208
+ actions3.clearAttachments();
1191
1209
  },
1192
1210
  async updatePrependEmail(response) {
1193
1211
  const responseData = { ...response };
@@ -1272,7 +1290,7 @@ var syncStore = createStore2({
1272
1290
  isSyncLoading: false,
1273
1291
  isSyncDisable: false
1274
1292
  });
1275
- var actions5 = {
1293
+ var actions6 = {
1276
1294
  setIsSyncLoading(status) {
1277
1295
  syncStore.setState({
1278
1296
  isSyncLoading: status,
@@ -1299,9 +1317,9 @@ var actions5 = {
1299
1317
  }
1300
1318
  };
1301
1319
  var resetAllStore = () => {
1302
- actions.clearTablePrependData();
1303
- actions3.clearPrependNotes();
1304
- actions4.clearPrependEmails();
1320
+ actions2.clearTablePrependData();
1321
+ actions4.clearPrependNotes();
1322
+ actions5.clearPrependEmails();
1305
1323
  };
1306
1324
 
1307
1325
  // src/store2/use-multi-object.ts
@@ -1313,7 +1331,7 @@ var multiObjectStore = createStore2({
1313
1331
  function getObjectKey(payload) {
1314
1332
  return String(payload?.hubspotObjectTypeId ?? "");
1315
1333
  }
1316
- var actions6 = {
1334
+ var actions7 = {
1317
1335
  setMultiObjectData(response, payload) {
1318
1336
  const key = getObjectKey(payload);
1319
1337
  const state = multiObjectStore.getState();
@@ -1399,6 +1417,6 @@ var actions6 = {
1399
1417
  }
1400
1418
  };
1401
1419
 
1402
- export { actions, actions2, actions3, actions4, actions5, actions6, breadcrumbStage, decodeToBase64, emailStore, generatePath, generateUrl, getParam, getParamDetails, getPath, getRouteDetails, getRouteMenu, isMessingParent, isMessingParentLastItem, multiObjectStore, noteStore, resetAllStore, syncStore, tableStore2 as tableStore, uploaderStore, useTable, useUpdateLink };
1403
- //# sourceMappingURL=chunk-B4J3MT7F.js.map
1404
- //# sourceMappingURL=chunk-B4J3MT7F.js.map
1420
+ export { actions, actions2, actions3, actions4, actions5, actions6, actions7, breadcrumbStage, decodeToBase64, emailStore, generatePath, generateUrl, getParam, getParamDetails, getPath, getRouteDetails, getRouteMenu, isMessingParent, isMessingParentLastItem, multiObjectStore, noteStore, resetAllStore, syncStore, tableStore2 as tableStore, uploaderStore, useTable, useUpdateLink };
1421
+ //# sourceMappingURL=chunk-UULYOTUL.js.map
1422
+ //# sourceMappingURL=chunk-UULYOTUL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/compress.ts","../src/breadcrumb/url-utils.ts","../src/breadcrumb/key-map.ts","../src/utils/param.ts","../src/breadcrumb/param.ts","../src/breadcrumb/url.ts","../src/store/index.ts","../src/utils/getCookieData.ts","../src/store/use-table.ts","../src/store2/store.ts","../src/store2/use-form.ts","../src/store2/use-table.ts","../src/store2/use-uploader.ts","../src/store2/use-note.ts","../src/store2/use-email.ts","../src/store2/use-sync.ts","../src/store2/use-multi-object.ts"],"names":["keyMap","getDeep","createStore","tableStore","actions","id"],"mappings":"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","file":"chunk-UULYOTUL.js","sourcesContent":["import pako from 'pako'\nimport { Base64 } from 'js-base64'\n\nexport function convertToBase64(obj: unknown): string {\n try {\n if (!obj) return \"\"\n const json = JSON.stringify(obj)\n const compressed = pako.deflate(json) // returns Uint8Array\n const base64 = Base64.fromUint8Array(compressed, true) // URL-safe\n\n return base64\n } catch (error) {\n console.error('Failed to encode object:', error)\n return ''\n }\n}\n\nexport function decodeToBase64(encoded: string): any {\n try {\n if (!encoded) return null\n\n const uint8Array = Base64.toUint8Array(encoded)\n const decompressed = pako.inflate(uint8Array, { to: 'string' })\n\n return JSON.parse(decompressed)\n } catch (error) {\n console.error('Failed to decode object:', error)\n return null\n }\n}\n","import { convertToBase64 } from \"../utils/compress\"\n\n// map Keys\nexport function mapKeysDeep(obj: any, keyMap: Record<string, string>): any {\n if (Array.isArray(obj)) {\n return obj.map((item) => mapKeysDeep(item, keyMap));\n } else if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const mappedKey = keyMap[key] || key; // rename if matched\n acc[mappedKey] = mapKeysDeep(value, keyMap); // recurse into nested\n return acc;\n }, {} as Record<string, any>);\n }\n return obj;\n}\n\n// check parent is messing\nexport function isMessingParent(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n let lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n return (lastItem?.o_r_id && (!lastItem2?.o_r_id && lastItem2?.o_t_id) && lastItem3?.o_r_id) ? true : false\n}\n\n// check parent last item if messing\nexport function isMessingParentLastItem(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n\n return (!lastItem?.o_t_id && (lastItem2?.o_r_id && lastItem2?.o_t_id)) ? false : true\n}\n\n// check breadcrumb position, return root, root_details, child\nexport function breadcrumbStage(breadcrumbItems: any) {\n let breadcrumbType: string = 'child'\n\n if (breadcrumbItems.length === 1) {\n breadcrumbType = 'root'\n } else if (breadcrumbItems.length === 2) {\n breadcrumbType = 'root_details'\n }\n\n return breadcrumbType;\n}\n\n// generate link url\nexport const generateUrl = (props: any, breadcrumbs: any) => {\n const newBase64 = convertToBase64(breadcrumbs)\n let url = ''\n if (props?.objectTypeId && props?.recordId) {\n url = `/${props?.recordId}/${props?.objectTypeId}/${props?.recordId}?b=${newBase64}`\n } else {\n url = `/association/${props?.objectTypeId}?b=${newBase64}`\n }\n return url\n}\n\n// get total parent\nexport function getTotalParentLength(data: any) {\n return data.filter((item: any) =>\n (item.pt || item.o_t_id) && !item.o_r_id\n ).length;\n}\n\n// only for generate path\nexport const generatePath = (breadcrumbs: any, breadcrumb: any, index: any) => {\n const bc = convertToBase64(breadcrumbs.slice(0, index + 1))\n if (index === 0) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.pt || breadcrumb?.o_t_id}?b=${bc}`,\n }\n } else if (index === 1) {\n if (breadcrumb?.isHome) { // its for home side bard card data\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n if (breadcrumb?.o_t_id && breadcrumb?.o_r_id && !breadcrumb?.isHome) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n }\n}","export const keyMap: Record<string, string> = {\n dp: 'defPermissions',\n n: 'name',\n sort: 'sort',\n o_t_id: 'objectTypeId',\n s: 'search',\n fPn: 'filterPropertyName',\n fO: 'filterOperator',\n fV: 'filterValue',\n c: 'cache',\n isPC: 'isPrimaryCompany',\n v: 'view',\n l: 'limit',\n pt: 'path',\n p: 'page',\n a: 'after',\n aPip: 'activePipeline',\n aT: 'activeTab',\n cT: 'create',\n dP: 'display',\n dL: 'display_label',\n pId: 'pipeline_id',\n }","import { getUrlPathName } from '../utils/url';\n\nexport function getParam(paramName: string): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n const hashWithoutHash = hash.startsWith('#') ? hash.substring(1) : hash;\n\n const queryString = hashWithoutHash.split('?')[1];\n if (!queryString) return null;\n\n const params = new URLSearchParams(queryString);\n return params.get(paramName);\n}\n\nexport function getPath(): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n return hash\n .slice(1) // remove \"#\"\n .split(\"?\")[0]; // remove query params\n}\n\nexport const generateParam = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n\nexport const getHubId = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n","import { getTotalParentLength, mapKeysDeep } from \"./url-utils\";\nimport { decodeToBase64 } from \"../utils/compress\"\nimport { keyMap } from \"./key-map\";\nimport { getParam } from \"../utils/param\";\n\nexport const getRouteMenu = (path: string) => {\n // Use globalThis for cross-environment compatibility and to fix 'window' not defined error\n const apiRoutes = (globalThis as any)?.apiRoutes || [];\n return apiRoutes.find((menu: any) => menu?.path === path);\n}\n\nexport const getRouteDetails = () => {\n // const router = useRouter();\n // const search: any = router.state.location.search;\n const search: any = getParam(\"b\");\n\n const breadcrumbs = decodeToBase64(search) || [];\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n const mapped = lastItem ? mapKeysDeep(lastItem, keyMap) : null;\n\n return { routeDetails: mapped };\n};\n\n// return current route details\nexport const getParamDetails = (props?: any, isDetailsPage: boolean = false) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length > 0 && breadcrumbs?.[0]?.isHome) { // skip 1st breadcrumb for home page sidebar data\n breadcrumbs = breadcrumbs.slice(1)\n }\n\n let mediatorObjectTypeId = ''\n let mediatorObjectRecordId = ''\n let parentObjectTypeId = ''\n let parentObjectRecordId = ''\n // let bParams = ''\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n if (isDetailsPage === true && lastItem && \"prm\" in lastItem) { // if details page then dont deent prm key\n delete lastItem.prm;\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n // bParams = lastItem?.p || ''\n } else {\n if (breadcrumbs.length > 2) {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n }\n\n if (!lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem3?.o_t_id || ''\n parentObjectRecordId = lastItem3?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem2?.o_t_id === '0-5' && !parentObjectTypeId && !parentObjectRecordId) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n\n }\n }\n let paramsObject: any = {}\n\n // if isPrimaryCompany\n // const arr = Array.from(new URLSearchParams(lastItem?.p))\n // const map = new Map(arr)\n // if (map.get('isPrimaryCompany') === 'true') {\n // paramsObject['isPrimaryCompany'] = true\n // } else {\n // // if not isPrimaryCompany\n // if (parentObjectTypeId && parentObjectRecordId) {\n // paramsObject['parentObjectTypeId'] = parentObjectTypeId\n // paramsObject['parentObjectRecordId'] = parentObjectRecordId\n // }\n // if (mediatorObjectTypeId && mediatorObjectRecordId) {\n // paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n // paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n // }\n // }\n\n if (breadcrumbs[0]?.prm?.isPC || breadcrumbs[1]?.prm?.isPC || lastItem?.prm?.isPC) { // 1st check fot normal object, 2dn & 3rd and check for db associated data\n paramsObject['isPrimaryCompany'] = true\n }\n\n\n if (parentObjectTypeId && parentObjectRecordId) {\n paramsObject['parentObjectTypeId'] = parentObjectTypeId\n paramsObject['parentObjectRecordId'] = parentObjectRecordId\n }\n if (mediatorObjectTypeId && mediatorObjectRecordId) {\n paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n }\n\n const mappedLastItemParam = Object.fromEntries(\n Object.entries(lastItem?.prm || {}).map(([key, value]) => [\n keyMap[key] || key, // use mapped name if exists, else keep original\n value,\n ])\n );\n\n let queryString = null\n\n if (props?.type === 'association') { // if association association then don't need mappedLastItemParam \n queryString = new URLSearchParams({ ...paramsObject, ...{ cache: false } } as any).toString()\n // } else if (breadcrumbs.length < 2) { // if root path then don't need paramsObject \n // paramsObject = {}\n // queryString = new URLSearchParams({...mappedLastItemParam} as any).toString()\n } else {\n queryString = new URLSearchParams({ ...paramsObject, ...mappedLastItemParam } as any).toString()\n }\n\n\n\n\n // let params = bParams ? `${bParams}&${queryString}` : `?${queryString}`\n let params: any = queryString ? `?${queryString}` : ''\n\n // if (breadcrumbs.length < 2 && map.get('isPrimaryCompany') != 'true')\n\n // if (breadcrumbs.length < 2 && !breadcrumbs[0]?.prm?.isPC)\n // params = ''\n\n // const mParamsObject: any = {\n // ...paramsObject,\n // ...(params ? { params } : {}),\n // };\n\n const totalParentLength = getTotalParentLength(breadcrumbs)\n let parentAccessLabel = false\n\n // param for GF, F, SON to GF relation\n if (\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 2) || // company object\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 3) || // normal object\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 1 && props?.type === 'ticket') || // company ticket\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 2 && props?.type === 'ticket') // normal ticket\n ) {\n parentAccessLabel = true\n }\n\n return {\n breadcrumbs,\n // paramsObject: Object.keys(mParamsObject).length === 0 ? null : mParamsObject,\n paramsObject: paramsObject,\n params,\n parentAccessLabel\n }\n}\n","import { convertToBase64, decodeToBase64 } from \"../utils/compress\";\nimport { getParam, getPath } from \"../utils/param\";\nimport { keyMap } from \"./key-map\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useUpdateLink = () => {\n const updateLink = async (props: any, displayName: string = \"prm\") => {\n const search: any = getParam(\"b\");\n const pathname: any = getPath()\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) {\n // const { pathname } = router.state.location;\n const routeMenu: any = getRouteMenu(pathname);\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ];\n }\n\n // Get the last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = await getDeep(lastBreadcrumb, displayName) || {}\n\n await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props,\n });\n } else {\n await Object.assign(lastBreadcrumb, props);\n }\n const newBase64 = convertToBase64(breadcrumbs);\n updateBParam(newBase64);\n };\n\n // --- Helpers ---\n\n function setDeep(obj: any, path: string, value: any) {\n const keys = path.split(\".\");\n let curr = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!curr[keys[i]] || typeof curr[keys[i]] !== \"object\") {\n curr[keys[i]] = {};\n }\n curr = curr[keys[i]];\n }\n curr[keys[keys.length - 1]] = value;\n return curr\n }\n\n function getDeep(obj: any, path: string) {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n }\n\n\n // const filterParams = (displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n // if (breadcrumbs.length < 1) return null\n // const lastItem = breadcrumbs[breadcrumbs.length - 1]\n // const expandKeys = (obj: Record<string, any>) => {\n // return Object.fromEntries(\n // Object.entries(obj).map(([key, value]) => [\n // keyMap[key] || key, // map if exists, else keep original\n // value,\n // ]),\n // )\n // }\n // const output = displayName && lastItem[displayName] ? expandKeys(lastItem[displayName]) : lastItem\n // return output\n // }\n\n const getLinkParams = (displayName: string = \"prm\") => { // for API param\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : null;\n\n return output;\n };\n\n const filterParams = (displayName: string = \"prm\") => { // for select old value\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : expandKeys(lastItem);\n\n return output;\n };\n\n return { updateLink, getLinkParams, filterParams }\n}\n\nconst updateBParam = (newValue: string): void => {\n // const currentSearch = router.state.location.search || {}\n\n // router.navigate({\n // to: router.state.location.pathname, // stay on same path\n // search: {\n // ...currentSearch,\n // b: newValue, // add or replace `b`\n // },\n // replace: true, // don't push new history entry\n // })\n\n // If running in a non-browser environment, do nothing\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return;\n\n const hash: string = (globalThis as any).location.hash || '';\n // \"#/0-3-796859474?b=eJxNjkEL\"\n\n if (!hash.startsWith(\"#/\")) return;\n\n const withoutHash = hash.slice(2); // remove \"#/\"\n const [path, queryString] = withoutHash.split(\"?\");\n\n const params = new URLSearchParams(queryString || \"\");\n params.set(\"b\", newValue); // add or replace `b`\n\n const newHash = `#/${path}?${params.toString()}`;\n\n // ✅ same as router.navigate({ replace: true })\n if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n (globalThis as any).history.replaceState(null, \"\", newHash);\n }\n}\n","// // 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 nextPage: 1 as number | string,\n stageId: \"\",\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 tableData: [],\n tablePrependData: [],\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 setNextPage: (v: number | string) => set({ nextPage: v }),\n setStageId: (v: number | string) => set({ stageId: 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 await set({ gridData: [] });\n return [];\n }\n\n if (type === \"directly\") {\n await set({ gridData: deals });\n return deals;\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\", \"home\"];\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 setTableData: (\n response: any,\n ) => {\n set({\n tableData: response\n });\n },\n\n setTablePrependData: async (\n response: any,\n ) => {\n const state: any = get();\n let rows = [];\n\n if (response === 'loading') { // set empty loading columns\n const row = await state.tableData?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.tablePrependData];\n } else { // set real columns data\n\n const data = response?.data\n if (!data) {\n set({\n tablePrependData: []\n });\n }\n\n const row = await Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => [\n key,\n value?.value ?? value,\n ])\n );\n\n rows = [...state.tablePrependData];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n\n set({\n tablePrependData: rows\n });\n return rows\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}","type Listener<T> = (state: T) => void;\n\nexport function createStore<T>(initialState: T) {\n let state = initialState;\n\n const listeners = new Set<Listener<T>>();\n\n return {\n getState() {\n return state;\n },\n\n setState(partial: Partial<T>) {\n state = {\n ...state,\n ...partial,\n };\n\n listeners.forEach((listener) =>\n listener(state)\n );\n },\n\n subscribe(listener: Listener<T>) {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n },\n };\n}","import { createStore } from \"./store\";\n\nexport interface FormState {\n form: any;\n}\n\nexport const formStore = createStore<FormState>({\n form: null,\n});\n\nexport const actions = {\n setFormData(response: any) {\n formStore.setState({\n form: response,\n });\n },\n\n clearFormData() {\n formStore.setState({\n form: null,\n });\n },\n};\n","import { useTable } from \"../store/use-table\";\nimport { createStore } from \"./store\";\nimport { formStore } from \"./use-form\";\n\nexport interface TableState {\n objectsData: any;\n tableData: any;\n tablePrependData: any[];\n hubspotObjectTypeId: string;\n selectedPipeline: string;\n viewType: string;\n}\n\nexport const tableStore = createStore<TableState>({\n objectsData: null,\n tableData: [],\n tablePrependData: [],\n hubspotObjectTypeId: \"\",\n selectedPipeline: \"\",\n viewType: \"\",\n});\n\nexport const actions = {\n\n async setObjectsData(\n response: any\n ) {\n const state = tableStore.getState();\n \n if(response?.info?.viewType == \"LIST\") {\n tableStore.setState({\n objectsData: response,\n });\n }\n\n if(response?.info?.viewType == \"BOARD\") {\n\n const {\n stageId,\n }: any = useTable();\n if(stageId){\n\n const boardData = {...state.objectsData};\n\n\n const updatedBoardData = await {\n ...boardData,\n data: {\n ...boardData.data,\n results: boardData.data.results.map((item: any) =>\n String(item.id) === String(stageId)\n ? {\n ...item,\n data: {\n ...item.data,\n results: {\n ...item.data.results,\n rows: [\n ...(item?.data?.results?.rows ?? []), // keep existing rows\n ...(response?.data?.results?.rows ?? []), // prepend new rows\n ],\n },\n },\n }\n : item\n ),\n },\n };\n\n tableStore.setState({\n objectsData: updatedBoardData,\n });\n } else {\n tableStore.setState({\n objectsData: response,\n });\n }\n }\n },\n\n setTableData(\n response: any,\n payload: any\n ) {\n const state = tableStore.getState();\n const viewType = response?.info?.viewType;\n let newTablePrependData;\n\n if (viewType === \"BOARD\") {\n const stages = response?.data?.results ?? [];\n\n newTablePrependData = state.tablePrependData.map((prependStage: any) => {\n const matchingStage = stages.find(\n (stage: any) => String(stage.id) === String(prependStage.id)\n );\n const rows = matchingStage?.data?.results?.rows ?? [];\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== \"\")\n .map((id: unknown) => String(id))\n );\n\n const filteredRows = (prependStage?.data?.results?.rows ?? []).filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id;\n if (itemId == null || itemId === \"\") return true;\n return !rowIds.has(String(itemId));\n });\n\n return {\n ...prependStage,\n data: {\n ...prependStage.data,\n results: {\n ...prependStage.data?.results,\n rows: filteredRows,\n },\n },\n };\n });\n } else {\n const rows = response?.data?.results?.rows ?? [];\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== \"\")\n .map((id: unknown) => String(id))\n );\n\n newTablePrependData = state.tablePrependData.filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id;\n if (itemId == null || itemId === \"\") return true;\n return !rowIds.has(String(itemId));\n });\n }\n\n const hubspotObjectTypeId = payload?.hubspotObjectTypeId;\n const selectedPipeline = payload?.selectedPipeline;\n\n if (response?.data?.total < 1 || payload?.componentName) { // no response data or have component name means (object details ticket) then reset prepend data\n newTablePrependData = [];\n }\n\n if (state.viewType && (state.viewType != viewType)) {\n newTablePrependData = [];\n }\n\n if (state.hubspotObjectTypeId && (state.hubspotObjectTypeId != hubspotObjectTypeId)) {\n newTablePrependData = [];\n }\n\n if (state.selectedPipeline && (state.selectedPipeline != selectedPipeline)) {\n newTablePrependData = [];\n }\n \n if (payload.isFristTimeLoadData) {\n newTablePrependData = [];\n }\n\n tableStore.setState({\n tableData: response,\n tablePrependData: newTablePrependData || [],\n hubspotObjectTypeId: hubspotObjectTypeId,\n viewType: viewType,\n });\n },\n\n modifiedObjectsData (results: any) {\n const state = tableStore.getState();\n const tablePrependData = state.tablePrependData;\n\n const modifiedData = results.map((result: any) => {\n // match prepend data by id\n const matchedPrepend = tablePrependData.find(\n (item: any) => String(item?.id) === String(result?.id)\n );\n \n // no match\n if (!matchedPrepend) {\n return result;\n }\n \n const prependRows = matchedPrepend?.data?.results?.rows ?? [];\n \n // convert prepend rows to cards format\n const prependCards = prependRows.map((row: any) => ({\n id: row.hs_object_id,\n ...row\n }));\n \n return {\n ...result,\n \n // prepend in results.rows\n data: {\n ...result.data,\n results: {\n ...result.data.results,\n rows: [\n ...prependRows,\n ...(result?.data?.results?.rows ?? []),\n ],\n },\n },\n \n // prepend in cards\n cards: [\n ...prependCards,\n ...(result?.cards ?? []),\n ],\n };\n });\n\n tableStore.setState({\n objectsData: modifiedData\n });\n },\n\n clearTablePrependData() {\n tableStore.setState({\n tablePrependData: [],\n });\n },\n\n async setTablePrependData(\n response: any,\n props?: any\n ) {\n const state: any = tableStore.getState();\n const formState: any = formStore.getState();\n\n let rows: any = [];\n\n if (state.tableData?.info?.viewType == \"BOARD\") {\n if (response === 'loading') { // set empty loading columns\n\n const responseData = state.tableData?.data?.results ?? [];\n const pipelineStage = props?.payload?.propertyPayload?.hs_pipeline_stage || props?.payload?.propertyPayload?.dealstage || formState?.form?.data?.pipelineDefaults?.defaultStage?.id\n\n rows = responseData.map(\n ({ id, data }: any) => {\n // existing rows\n\n // match prepend data\n const matchedPrepend = state.tablePrependData.find(\n (item: any) => String(item.id) === String(id)\n );\n\n // existing prepend rows\n const prependRows = matchedPrepend?.data?.results?.rows ?? [];\n\n // create new loading row\n const newRow =\n String(id) === String(pipelineStage)\n ? [\n (data?.results?.columns ?? []).reduce(\n (obj: Record<string, string>, column: any) => {\n obj[column.key] = \"loading\";\n return obj;\n },\n {}\n ),\n ]\n : [];\n\n return {\n id,\n data: {\n results: {\n columns: data?.results?.columns ?? [],\n\n // prepend loading row + prepend rows\n rows: [\n ...newRow,\n ...prependRows\n ],\n },\n },\n };\n }\n );\n\n } else {\n\n const data = response?.data\n const hs_pipeline_stage = data?.hs_pipeline_stage?.value?.value || data?.dealstage?.value?.value\n\n if (!data) {\n tableStore.setState({\n tablePrependData: []\n });\n }\n\n rows = state?.tablePrependData.map((row: any) => {\n\n // match prepend data\n const matchedPrepend = state.tablePrependData.find(\n (item: any) => String(item.id) === String(row.id)\n );\n\n // existing prepend rows\n const prependRows = matchedPrepend?.data?.results?.rows ?? [];\n\n // match row id with hs_pipeline_stage\n if (String(row.id) === String(hs_pipeline_stage)) {\n // create object from columns\n const updatedRow = (row?.data?.results?.columns ?? []).reduce(\n (obj: any, column: any) => {\n const key = column.key;\n\n // set actual data value\n obj[key] = data?.[key]?.value ?? data?.[key] ?? \"\";\n\n return obj;\n },\n {}\n );\n\n prependRows[0] = updatedRow; // replace loading row\n\n return {\n ...row,\n data: {\n ...row.data,\n results: {\n ...row.data.results,\n rows: prependRows,\n },\n },\n };\n }\n\n return row;\n });\n }\n } else if (state.tableData?.info?.viewType == \"LIST\") {\n if (response === 'loading') { // set empty loading columns\n const row = await state.tableData?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.tablePrependData];\n } else if (response?.data) { // set real columns data\n\n const data = response?.data\n if (!data) {\n tableStore.setState({\n tablePrependData: []\n });\n }\n\n const row = await Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => [\n key,\n value?.value ?? value,\n ])\n );\n\n rows = [...state.tablePrependData];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n }\n\n tableStore.setState({\n tablePrependData: rows\n });\n }\n}","import { createStore } from \"./store\";\n\nexport interface AttachmentData {\n createdAt?: string;\n id: string;\n name?: string;\n size?: string;\n type?: string;\n updatedAt?: string;\n [key: string]: unknown;\n}\n\nexport interface UploaderState {\n attachments: AttachmentData[];\n}\n\nexport const uploaderStore = createStore<UploaderState>({\n attachments: [],\n});\n\nfunction toAttachmentSummary(attachment: AttachmentData) {\n return {\n createdAt: attachment.createdAt,\n id: attachment.id,\n name: attachment.name,\n size: attachment.size,\n type: attachment.type,\n updatedAt: attachment.updatedAt,\n };\n}\n\nexport function resolveAttachmentsFromIds(\n attachmentIds: unknown,\n storedAttachments: AttachmentData[]\n) {\n const raw =\n typeof attachmentIds === \"object\" &&\n attachmentIds !== null &&\n \"value\" in (attachmentIds as object)\n ? (attachmentIds as { value: unknown }).value\n : attachmentIds;\n\n const ids = String(raw ?? \"\")\n .split(\";\")\n .map((id) => id.trim())\n .filter(Boolean);\n\n return ids\n .map((id) => storedAttachments.find((a) => String(a.id) === id))\n .filter((a): a is AttachmentData => a != null)\n .map(toAttachmentSummary);\n}\n\nexport const actions = {\n setAttachment(response: any) {\n const data = response?.data;\n if (!data?.id) return;\n\n const state = uploaderStore.getState();\n const id = String(data.id);\n const existing = state.attachments;\n const index = existing.findIndex((item) => String(item.id) === id);\n\n const attachments =\n index >= 0\n ? existing.map((item, i) => (i === index ? data : item))\n : [...existing, data];\n\n uploaderStore.setState({ attachments });\n },\n\n clearAttachments() {\n uploaderStore.setState({ attachments: [] });\n },\n};\n","import { createStore } from \"./store\";\nimport { actions as uploaderActions, resolveAttachmentsFromIds, uploaderStore } from \"./use-uploader\";\n\nexport interface NoteState {\n notes: any;\n prependNotes: any[];\n id: string;\n}\n\nexport const noteStore = createStore<NoteState>({\n notes: [],\n prependNotes: [],\n id: \"\"\n});\n\nexport const actions = {\n\n setNotes(\n response: any,\n payload: any\n ) {\n const state = noteStore.getState();\n const rows = response?.data?.results?.rows ?? [];\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== \"\")\n .map((id: unknown) => String(id))\n );\n\n let newPrependNotes = state.prependNotes.filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id;\n if (itemId == null || itemId === \"\") return true;\n return !rowIds.has(String(itemId));\n });\n\n const id = payload?.params?.id;\n\n if(state.id && (state.id != id)) {\n newPrependNotes = [];\n }\n\n noteStore.setState({\n notes: response,\n prependNotes: newPrependNotes,\n id: id,\n });\n },\n\n async setPrependNote(\n response: any\n ) {\n const state: any = noteStore.getState();\n let rows: any = [];\n\n if (response === 'loading') { // set empty loading columns\n const row = await state.notes?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.prependNotes];\n } else if (response?.data) { // set real columns data\n\n const data = response?.data\n if (!data) {\n noteStore.setState({\n prependNotes: []\n });\n }\n\n // Populated by attachmentUpload (setAttachment) during compose, before create returns.\n const storedAttachments = uploaderStore.getState().attachments;\n\n const row = Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => {\n // API returns \"id1;id2\" — resolve to attachment summaries for the prepend row UI.\n if (key === \"hs_attachment_ids\") {\n return [\n key,\n resolveAttachmentsFromIds(value, storedAttachments),\n ];\n }\n return [key, value?.value ?? value];\n })\n );\n\n rows = [...state.prependNotes];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n\n noteStore.setState({\n prependNotes: rows\n });\n },\n\n clearPrependNotes() {\n noteStore.setState({\n prependNotes: [],\n });\n // Drop staged uploads when the compose session ends (e.g. sync / navigation).\n uploaderActions.clearAttachments();\n },\n\n async updatePrependNote (response: any) {\n const responseData = {...response};\n const state: any = noteStore.getState();\n const prependNotes = state.prependNotes || [];\n\n const note = response.data || null;\n\n const storedAttachments = uploaderStore.getState().attachments;\n\n const notes = prependNotes.map((item: any) =>\n item?.hs_object_id === note?.hs_object_id?.value\n ? {\n ...item,\n ...Object.fromEntries(\n Object.entries(note).map(([key, value]: [string, any]) => {\n if (key === \"hs_attachment_ids\") {\n return [\n key,\n resolveAttachmentsFromIds(value, storedAttachments),\n ];\n }\n return [key, value?.value ?? value];\n })\n ),\n }\n : item\n );\n\n noteStore.setState({\n prependNotes: notes\n });\n\n // Update returns only newly uploaded attachment IDs — merge them with\n // attachments already shown in the list / prepend row, then sync store + response.\n if (responseData?.data?.hs_attachment_ids != null) {\n const noteObjectId = note?.hs_object_id?.value;\n const rows = state.notes?.data?.results?.rows ?? [];\n\n // Prefer the persisted list row; fall back to the prepend snapshot captured\n // before the update above (prependNotes), so existing files are not lost.\n const matchingRow = rows.find(\n (row: any) => String(row.hs_object_id) === String(noteObjectId)\n );\n const originalPrependItem = prependNotes.find(\n (item: any) => String(item?.hs_object_id) === String(noteObjectId)\n );\n const existingAttachments =\n matchingRow?.hs_attachment_ids ?? originalPrependItem?.hs_attachment_ids ?? [];\n\n // API returns \"id1;id2\" — resolve staged uploads to attachment summaries.\n const newAttachments = resolveAttachmentsFromIds(\n responseData.data.hs_attachment_ids,\n storedAttachments\n );\n\n const mergedAttachments = [\n ...existingAttachments,\n ...newAttachments.filter(\n (attachment) =>\n !existingAttachments.some(\n (existing: any) => String(existing.id) === String(attachment.id)\n )\n ),\n ];\n\n const stateUpdates: Partial<NoteState> = {};\n\n if (matchingRow && state.notes?.data?.results) {\n stateUpdates.notes = {\n ...state.notes,\n data: {\n ...state.notes.data,\n results: {\n ...state.notes.data.results,\n rows: rows.map((row: any) =>\n String(row.hs_object_id) === String(noteObjectId)\n ? { ...row, hs_attachment_ids: mergedAttachments }\n : row\n ),\n },\n },\n };\n }\n\n // Overwrite the prepend row set above so it shows the full attachment list.\n if (originalPrependItem) {\n stateUpdates.prependNotes = prependNotes.map((item: any) =>\n String(item?.hs_object_id) === String(noteObjectId)\n ? { ...item, hs_attachment_ids: mergedAttachments }\n : item\n );\n }\n\n if (Object.keys(stateUpdates).length > 0) {\n noteStore.setState(stateUpdates);\n }\n\n // Caller / UI expects resolved attachment objects, not raw ID strings.\n responseData.data.hs_attachment_ids = mergedAttachments;\n }\n return responseData;\n }\n}","import { createStore } from \"./store\";\nimport { actions as uploaderActions, resolveAttachmentsFromIds, uploaderStore } from \"./use-uploader\";\n\nexport interface EmailState {\n emails: any;\n prependEmails: any[];\n id: string;\n}\n\nexport const emailStore = createStore<EmailState>({\n emails: [],\n prependEmails: [],\n id: \"\",\n});\n\nexport const actions = {\n\n setEmails(\n response: any,\n payload: any\n ) {\n const state = emailStore.getState();\n const rows = response?.data?.results?.rows ?? [];\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== \"\")\n .map((id: unknown) => String(id))\n );\n\n let newPrependEmails = state.prependEmails.filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id;\n if (itemId == null || itemId === \"\") return true;\n return !rowIds.has(String(itemId));\n });\n\n const id = payload?.params?.id;\n\n if(state.id && (state.id != id)) {\n newPrependEmails = [];\n }\n\n emailStore.setState({\n emails: response,\n prependEmails: newPrependEmails,\n id: id,\n });\n },\n\n async setPrependEmail(\n response: any\n ) {\n const state: any = emailStore.getState();\n let rows: any = [];\n\n if (response === 'loading') { // set empty loading columns\n const row = await state.emails?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.prependEmails];\n } else if (response?.data) { // set real columns data\n\n const data = response?.data\n if (!data) {\n emailStore.setState({\n prependEmails: []\n });\n }\n\n // Populated by attachmentUpload (setAttachment) during compose, before create returns.\n const storedAttachments = uploaderStore.getState().attachments;\n\n const row = Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => {\n // API returns \"id1;id2\" — resolve to attachment summaries for the prepend row UI.\n if (key === \"hs_attachment_ids\") {\n return [\n key,\n resolveAttachmentsFromIds(value, storedAttachments),\n ];\n }\n return [key, value?.value ?? value];\n })\n );\n\n rows = [...state.prependEmails];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n\n emailStore.setState({\n prependEmails: rows\n });\n },\n\n clearPrependEmails() {\n emailStore.setState({\n prependEmails: [],\n });\n // Drop staged uploads when the compose session ends (e.g. sync / navigation).\n uploaderActions.clearAttachments();\n },\n\n async updatePrependEmail (response: any) {\n const responseData = {...response};\n const state: any = emailStore.getState();\n const prependEmails = state.prependEmails || [];\n\n const email = response.data || null;\n\n const storedAttachments = uploaderStore.getState().attachments;\n\n const emails = prependEmails.map((item: any) =>\n item?.hs_object_id === email?.hs_object_id?.value\n ? {\n ...item,\n ...Object.fromEntries(\n Object.entries(email).map(([key, value]: [string, any]) => {\n if (key === \"hs_attachment_ids\") {\n return [\n key,\n resolveAttachmentsFromIds(value, storedAttachments),\n ];\n }\n return [key, value?.value ?? value];\n })\n ),\n }\n : item\n );\n\n emailStore.setState({\n prependEmails: emails\n });\n\n // Update returns only newly uploaded attachment IDs — merge them with\n // attachments already shown in the list / prepend row, then sync store + response.\n if (responseData?.data?.hs_attachment_ids != null) {\n const emailObjectId = email?.hs_object_id?.value;\n const rows = state.emails?.data?.results?.rows ?? [];\n\n // Prefer the persisted list row; fall back to the prepend snapshot captured\n // before the update above (prependEmails), so existing files are not lost.\n const matchingRow = rows.find(\n (row: any) => String(row.hs_object_id) === String(emailObjectId)\n );\n const originalPrependItem = prependEmails.find(\n (item: any) => String(item?.hs_object_id) === String(emailObjectId)\n );\n const existingAttachments =\n matchingRow?.hs_attachment_ids ?? originalPrependItem?.hs_attachment_ids ?? [];\n\n // API returns \"id1;id2\" — resolve staged uploads to attachment summaries.\n const newAttachments = resolveAttachmentsFromIds(\n responseData.data.hs_attachment_ids,\n storedAttachments\n );\n\n const mergedAttachments = [\n ...existingAttachments,\n ...newAttachments.filter(\n (attachment) =>\n !existingAttachments.some(\n (existing: any) => String(existing.id) === String(attachment.id)\n )\n ),\n ];\n\n const stateUpdates: Partial<EmailState> = {};\n\n if (matchingRow && state.emails?.data?.results) {\n stateUpdates.emails = {\n ...state.emails,\n data: {\n ...state.emails.data,\n results: {\n ...state.emails.data.results,\n rows: rows.map((row: any) =>\n String(row.hs_object_id) === String(emailObjectId)\n ? { ...row, hs_attachment_ids: mergedAttachments }\n : row\n ),\n },\n },\n };\n }\n\n // Overwrite the prepend row set above so it shows the full attachment list.\n if (originalPrependItem) {\n stateUpdates.prependEmails = prependEmails.map((item: any) =>\n String(item?.hs_object_id) === String(emailObjectId)\n ? { ...item, hs_attachment_ids: mergedAttachments }\n : item\n );\n }\n\n if (Object.keys(stateUpdates).length > 0) {\n emailStore.setState(stateUpdates);\n }\n\n // Caller / UI expects resolved attachment objects, not raw ID strings.\n responseData.data.hs_attachment_ids = mergedAttachments;\n }\n return responseData;\n }\n}","import { createStore } from \"./store\";\nimport { actions as tableActions } from \"./use-table\";\nimport { actions as noteActions } from \"./use-note\";\nimport { actions as emailActions } from \"./use-email\";\n\nexport interface SyncState {\n apiSync: boolean;\n sync: boolean;\n isSyncLoading: boolean;\n isSyncDisable: boolean;\n}\n\nexport const syncStore = createStore<SyncState>({\n apiSync: false,\n sync: false,\n isSyncLoading: false,\n isSyncDisable: false,\n});\n\nexport const actions = {\n setIsSyncLoading(status: boolean) {\n syncStore.setState({\n isSyncLoading: status,\n sync: status,\n });\n },\n\n setSync(status: boolean) {\n resetAllStore()\n syncStore.setState({\n isSyncLoading: status,\n sync: status,\n });\n },\n\n setApiSync(status: boolean) {\n syncStore.setState({\n isSyncLoading: status,\n apiSync: status,\n });\n },\n\n setSyncDisable(status: boolean) {\n syncStore.setState({\n isSyncDisable: status,\n });\n },\n};\n\nconst resetAllStore = () => {\n tableActions.clearTablePrependData();\n noteActions.clearPrependNotes();\n emailActions.clearPrependEmails();\n};\n\nexport { resetAllStore };","import { createStore } from \"./store\";\n\nexport interface MultiObjectTableState {\n objects: Record<string, any>;\n objectsPrependData: Record<string, any[]>;\n meta: Record<string, { selectedPipeline: string; viewType: string }>;\n}\n\nexport const multiObjectStore = createStore<MultiObjectTableState>({\n objects: {},\n objectsPrependData: {},\n meta: {},\n});\n\nfunction getObjectKey(payload: any): string {\n return String(payload?.hubspotObjectTypeId ?? \"\");\n}\n\nexport const actions = {\n setMultiObjectData(response: any, payload: any) {\n const key = getObjectKey(payload);\n const state = multiObjectStore.getState();\n\n const rows = response?.data?.results?.rows ?? [];\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== \"\")\n .map((id: unknown) => String(id))\n );\n\n let newPrependForKey = (state.objectsPrependData[key] ?? []).filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id;\n if (itemId == null || itemId === \"\") return true;\n return !rowIds.has(String(itemId));\n });\n\n const selectedPipeline = payload?.selectedPipeline ?? \"\";\n const viewType = response?.info?.viewType ?? \"\";\n const prevMeta = state.meta[key];\n\n if (response?.data?.total < 1 || payload?.componentName) {\n newPrependForKey = [];\n }\n\n if (prevMeta?.viewType && prevMeta.viewType !== viewType) {\n newPrependForKey = [];\n }\n\n if (prevMeta?.selectedPipeline && prevMeta.selectedPipeline !== selectedPipeline) {\n newPrependForKey = [];\n }\n\n multiObjectStore.setState({\n objects: { ...state.objects, [key]: response },\n objectsPrependData: { ...state.objectsPrependData, [key]: newPrependForKey },\n meta: {\n ...state.meta,\n [key]: { selectedPipeline, viewType },\n },\n });\n },\n\n clearMultiObjectPrependData(hubspotObjectTypeId?: string) {\n const state = multiObjectStore.getState();\n\n if (!hubspotObjectTypeId) {\n multiObjectStore.setState({ objectsPrependData: {} });\n return;\n }\n\n const key = String(hubspotObjectTypeId);\n const { [key]: _, ...rest } = state.objectsPrependData;\n multiObjectStore.setState({ objectsPrependData: rest });\n },\n\n async setMultiObjectPrependData(response: any, props?: any) {\n const key = getObjectKey(props);\n const state = multiObjectStore.getState();\n const tableResponse = state.objects[key];\n let rows: any[] = state.objectsPrependData[key] ?? [];\n\n if (tableResponse?.data?.total > 1) {\n if (response === \"loading\") {\n const row = tableResponse?.data?.results?.columns.reduce(\n (acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n },\n {}\n );\n rows = [row, ...rows];\n } else if (response?.data) {\n const data = response?.data;\n if (!data) {\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: [] },\n });\n return;\n }\n\n const row = Object.fromEntries(\n Object.entries(data).map(([k, value]: any) => [k, value?.value ?? value])\n );\n\n rows = [...rows];\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n }\n\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: rows },\n });\n },\n};\n"]}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getParamDetails, useUpdateLink, useTable, getRouteDetails, actions, actions6, actions3, actions4, getParam, decodeToBase64, generatePath, getPath, getRouteMenu, breadcrumbStage, isMessingParentLastItem, isMessingParent, generateUrl, resetAllStore, actions2 } from './chunk-B4J3MT7F.js';
1
+ import { getParamDetails, useUpdateLink, useTable, getRouteDetails, actions2, actions7, actions, actions4, actions5, getParam, decodeToBase64, generatePath, getPath, getRouteMenu, breadcrumbStage, isMessingParentLastItem, isMessingParent, generateUrl, resetAllStore, actions3 } from './chunk-UULYOTUL.js';
2
2
  import { ensureValidRefresh, HUBSPOT_DATA, PORTAL_ID, DEV_PORTAL_ID, HUB_ID, setRefreshCallback, getAccessToken, setRefreshToken, setAccessToken, isAuthenticateApp, isExpiresAccessToken, getRefreshToken, DEV_API_URL, setPortal, setSubscriptionType, setLoggedInDetails, clearAccessToken } from './chunk-A3N3Z2XW.js';
3
3
  import { __export, isCookieExpired, removeAllCookie } from './chunk-T4ORQSB3.js';
4
4
  import axios from 'axios';
@@ -1128,7 +1128,7 @@ function list2(options) {
1128
1128
  // src/apis/object.ts
1129
1129
  function list3(options) {
1130
1130
  const { getTableParam } = useTable();
1131
- const { setObjectsData, setTableData } = actions;
1131
+ const { setObjectsData, setTableData } = actions2;
1132
1132
  const { mutate, isLoading } = createMutation(
1133
1133
  async (payload) => {
1134
1134
  const param = await getTableParam(payload?.companyAsMediator);
@@ -1146,7 +1146,7 @@ function list3(options) {
1146
1146
  };
1147
1147
  }
1148
1148
  function sideBarList(options) {
1149
- const { setMultiObjectData } = actions6;
1149
+ const { setMultiObjectData } = actions7;
1150
1150
  const { mutate, isLoading } = createMutation(
1151
1151
  async (payload) => {
1152
1152
  const response = await Client.object.sideBarList(payload);
@@ -1162,9 +1162,11 @@ function sideBarList(options) {
1162
1162
  };
1163
1163
  }
1164
1164
  function form(options) {
1165
+ const { setFormData } = actions;
1165
1166
  const { mutate, isLoading } = createMutation(
1166
1167
  async (payload) => {
1167
1168
  const response = await Client.object.form(payload);
1169
+ setFormData(response);
1168
1170
  return response;
1169
1171
  },
1170
1172
  options
@@ -1190,8 +1192,8 @@ function objectFormOptions(options) {
1190
1192
  };
1191
1193
  }
1192
1194
  function create(options) {
1193
- const { setTablePrependData } = actions;
1194
- const { setMultiObjectPrependData } = actions6;
1195
+ const { setTablePrependData } = actions2;
1196
+ const { setMultiObjectPrependData } = actions7;
1195
1197
  const { mutate, isLoading } = createMutation(
1196
1198
  async (props) => {
1197
1199
  if (props?.componentName === "sidebarTable") await setMultiObjectPrependData("loading", props);
@@ -1268,7 +1270,7 @@ function update(options) {
1268
1270
 
1269
1271
  // src/apis/note.ts
1270
1272
  function list4(options) {
1271
- const { setNotes } = actions3;
1273
+ const { setNotes } = actions4;
1272
1274
  const { mutate, isLoading } = createMutation(
1273
1275
  async (payload) => {
1274
1276
  const response = await Client.note.list(payload);
@@ -1284,7 +1286,7 @@ function list4(options) {
1284
1286
  };
1285
1287
  }
1286
1288
  function create2(options) {
1287
- const { setPrependNote } = actions3;
1289
+ const { setPrependNote } = actions4;
1288
1290
  const { mutate, isLoading } = createMutation(
1289
1291
  async (props) => {
1290
1292
  await setPrependNote("loading");
@@ -1301,7 +1303,7 @@ function create2(options) {
1301
1303
  };
1302
1304
  }
1303
1305
  function update2(options) {
1304
- const { updatePrependNote } = actions3;
1306
+ const { updatePrependNote } = actions4;
1305
1307
  const { mutate, isLoading } = createMutation(
1306
1308
  async (payload) => {
1307
1309
  const response = await Client.note.update(payload);
@@ -1318,7 +1320,7 @@ function update2(options) {
1318
1320
 
1319
1321
  // src/apis/email.ts
1320
1322
  function list5(options) {
1321
- const { setEmails } = actions4;
1323
+ const { setEmails } = actions5;
1322
1324
  const { mutate, isLoading } = createMutation(
1323
1325
  async (payload) => {
1324
1326
  const response = await Client.email.list(payload);
@@ -1334,7 +1336,7 @@ function list5(options) {
1334
1336
  };
1335
1337
  }
1336
1338
  function create3(options) {
1337
- const { setPrependEmail } = actions4;
1339
+ const { setPrependEmail } = actions5;
1338
1340
  const { mutate, isLoading } = createMutation(
1339
1341
  async (props) => {
1340
1342
  await setPrependEmail("loading");
@@ -1351,7 +1353,7 @@ function create3(options) {
1351
1353
  };
1352
1354
  }
1353
1355
  function update3(options) {
1354
- const { updatePrependEmail } = actions4;
1356
+ const { updatePrependEmail } = actions5;
1355
1357
  const { mutate, isLoading } = createMutation(
1356
1358
  async (payload) => {
1357
1359
  const response = await Client.email.update(payload);
@@ -1385,7 +1387,7 @@ function attachmentUpload(options) {
1385
1387
  const { mutate, isLoading } = createMutation(
1386
1388
  async (payload) => {
1387
1389
  const response = payload?.type === "email" ? await Client.email.attachment(payload) : await Client.note.attachment(payload);
1388
- actions2.setAttachment(response);
1390
+ actions3.setAttachment(response);
1389
1391
  return response;
1390
1392
  },
1391
1393
  options