woodsportal-client-sdk 4.1.2 → 5.0.0-beta.0

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.
Files changed (59) hide show
  1. package/dist/adapters/angular/index.d.ts +9 -2
  2. package/dist/adapters/angular/index.js +6 -6
  3. package/dist/adapters/angular/index.js.map +1 -1
  4. package/dist/adapters/native/index.d.ts +1 -1
  5. package/dist/adapters/native/index.js +5 -5
  6. package/dist/adapters/react/index.d.ts +9 -2
  7. package/dist/adapters/react/index.js +5 -5
  8. package/dist/adapters/vue/index.d.ts +9 -2
  9. package/dist/adapters/vue/index.js +6 -6
  10. package/dist/adapters/vue/index.js.map +1 -1
  11. package/dist/{auth-utils-P5IGNMTK.js → auth-utils-JGNW73IJ.js} +3 -3
  12. package/dist/{auth-utils-P5IGNMTK.js.map → auth-utils-JGNW73IJ.js.map} +1 -1
  13. package/dist/chunk-2OLIVT2F.js +343 -0
  14. package/dist/chunk-2OLIVT2F.js.map +1 -0
  15. package/dist/{chunk-JEQNFCQP.js → chunk-BXHEEGBF.js} +108 -28
  16. package/dist/chunk-BXHEEGBF.js.map +1 -0
  17. package/dist/chunk-CUVU6DCT.js +3 -0
  18. package/dist/{chunk-55MIERLJ.js.map → chunk-CUVU6DCT.js.map} +1 -1
  19. package/dist/{chunk-JWEA5HWX.js → chunk-D5GHE2CO.js} +6 -5
  20. package/dist/chunk-D5GHE2CO.js.map +1 -0
  21. package/dist/chunk-ITBMRGCP.js +16 -0
  22. package/dist/chunk-ITBMRGCP.js.map +1 -0
  23. package/dist/{chunk-ZZCYSW32.js → chunk-JSXP2F2H.js} +95 -73
  24. package/dist/chunk-JSXP2F2H.js.map +1 -0
  25. package/dist/{chunk-YGSPLKDC.js → chunk-MLBZ5FQA.js} +5 -5
  26. package/dist/{chunk-YGSPLKDC.js.map → chunk-MLBZ5FQA.js.map} +1 -1
  27. package/dist/{chunk-WJBWIUQM.js → chunk-OH7VT6MX.js} +6 -5
  28. package/dist/chunk-OH7VT6MX.js.map +1 -0
  29. package/dist/{chunk-JZ5BNYYH.js → chunk-VDMDWMMX.js} +15 -7
  30. package/dist/chunk-VDMDWMMX.js.map +1 -0
  31. package/dist/{chunk-JVJMM4SZ.js → chunk-XDYXEYDM.js} +35 -6
  32. package/dist/chunk-XDYXEYDM.js.map +1 -0
  33. package/dist/{cache-purge-CokkqLSk.d.ts → crmCacheRefresh-B9sAQzI7.d.ts} +31 -1
  34. package/dist/cross-tab-session-FCAQTXUB.js +11 -0
  35. package/dist/{cross-tab-session-VAOXHEZL.js.map → cross-tab-session-FCAQTXUB.js.map} +1 -1
  36. package/dist/entries/auth.d.ts +2 -2
  37. package/dist/entries/auth.js +5 -5
  38. package/dist/entries/auth.js.map +1 -1
  39. package/dist/entries/crm.d.ts +17 -3
  40. package/dist/entries/crm.js +11 -9
  41. package/dist/entries/crm.js.map +1 -1
  42. package/dist/index.d.ts +42 -50
  43. package/dist/index.js +15 -14
  44. package/dist/index.js.map +1 -1
  45. package/dist/{route-guard-contract-C6Gbvr5x.d.ts → route-guard-contract-CSJMmfDA.d.ts} +3 -1
  46. package/dist/{use-sync-B4xio81b.d.ts → use-sync-BQfzHacf.d.ts} +6 -1
  47. package/package.json +1 -1
  48. package/dist/chunk-55MIERLJ.js +0 -3
  49. package/dist/chunk-F43GSZXK.js +0 -110
  50. package/dist/chunk-F43GSZXK.js.map +0 -1
  51. package/dist/chunk-JEQNFCQP.js.map +0 -1
  52. package/dist/chunk-JVJMM4SZ.js.map +0 -1
  53. package/dist/chunk-JWEA5HWX.js.map +0 -1
  54. package/dist/chunk-JZ5BNYYH.js.map +0 -1
  55. package/dist/chunk-WJBWIUQM.js.map +0 -1
  56. package/dist/chunk-XQAVHI2F.js +0 -16
  57. package/dist/chunk-XQAVHI2F.js.map +0 -1
  58. package/dist/chunk-ZZCYSW32.js.map +0 -1
  59. package/dist/cross-tab-session-VAOXHEZL.js +0 -11
@@ -1,5 +1,5 @@
1
1
  import { F as FileState, M as MultiObjectTableState, U as UploaderState } from '../../use-file-BcO5l-Zf.js';
2
- import { E as EmailState, N as NoteState, S as SyncState, T as TableState, a as TableUiState, U as UserState } from '../../use-sync-B4xio81b.js';
2
+ import { E as EmailState, N as NoteState, O as ObjectState, S as SyncState, T as TableState, a as TableUiState, U as UserState } from '../../use-sync-BQfzHacf.js';
3
3
 
4
4
  declare const useTable: () => TableState & {
5
5
  setObjectsQueryParams(params: any): void;
@@ -63,6 +63,13 @@ declare const useMultiObjectActions: () => MultiObjectTableState & {
63
63
  clearLatestMultiObjectPrependData(hubspotObjectTypeId?: string): void;
64
64
  setMultiObjectPrependData(response: any, props?: any): Promise<void>;
65
65
  };
66
+ declare const useObject: () => ObjectState & {
67
+ setObjectData(response: any, payload?: any): void;
68
+ updateObjectData(response: any, payload?: any): any;
69
+ setObjectAssociationPrependData(response: any, props?: any): Promise<void>;
70
+ clearLatestObjectAssociationPrependData(props?: any): void;
71
+ clearObjectData(): void;
72
+ };
66
73
  declare const useNote: () => NoteState & {
67
74
  setListQueryParams(params: any): void;
68
75
  setNotes(response: any, payload: any): void;
@@ -100,4 +107,4 @@ declare const useFile: () => FileState & {
100
107
  clearFiles(): void;
101
108
  };
102
109
 
103
- export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser };
110
+ export { useEmail, useFile, useMultiObjectActions, useNote, useObject, useSync, useTable, useTableUi, useUploader, useUser };
@@ -1,8 +1,8 @@
1
1
  import { bindStoreWithActions } from '../../chunk-AYTO6ND7.js';
2
- import { createAdapterHooks } from '../../chunk-WJBWIUQM.js';
3
- import '../../chunk-F43GSZXK.js';
4
- import '../../chunk-ZZCYSW32.js';
5
- import '../../chunk-JVJMM4SZ.js';
2
+ import { createAdapterHooks } from '../../chunk-OH7VT6MX.js';
3
+ import '../../chunk-2OLIVT2F.js';
4
+ import '../../chunk-JSXP2F2H.js';
5
+ import '../../chunk-XDYXEYDM.js';
6
6
  import '../../chunk-32ERSTFY.js';
7
7
  import '../../chunk-DB6W3CJT.js';
8
8
  import '../../chunk-KGNMN7B3.js';
@@ -32,8 +32,8 @@ function createAngularStoreComposable(store, actions) {
32
32
  }
33
33
 
34
34
  // src/main/adapters/angular/index.ts
35
- var { useTable, useTableUi, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader, useFile } = createAdapterHooks(createAngularStoreComposable);
35
+ var { useTable, useTableUi, useMultiObjectActions, useObject, useNote, useEmail, useUser, useSync, useUploader, useFile } = createAdapterHooks(createAngularStoreComposable);
36
36
 
37
- export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser };
37
+ export { useEmail, useFile, useMultiObjectActions, useNote, useObject, useSync, useTable, useTableUi, useUploader, useUser };
38
38
  //# sourceMappingURL=index.js.map
39
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/adapters/shared/createAngularComposable.ts","../../../src/main/adapters/angular/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAGO,SAAS,4BAAA,CAA6E,OAAkC,OAAA,EAAmB;AAC9I,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,UAAA,GAAa,OAAO,UAAU,CAAA;AACpC,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,KAAA,EAAO,OAAO,CAAA;AACnD,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAE7C,IAAA,UAAA,CAAW,SAAA;AAAA,MACP,OAAA,CAAQ,UAAU,MAAM;AACpB,QAAA,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,WAAA,EAAa,CAAA;AAAA,MACtC,CAAC;AAAA,KACL;AAEA,IAAA,OAAO,IAAI,KAAA,CAAM,EAAC,EAAwB;AAAA,MACtC,GAAA,CAAI,SAAS,IAAA,EAAM;AACf,QAAA,MAAM,GAAA,GAAM,OAAO,IAAI,CAAA;AACvB,QAAA,IAAI,OAAO,OAAA,EAAS;AAChB,UAAA,OAAQ,QAAoC,GAAG,CAAA;AAAA,QACnD;AACA,QAAA,OAAO,QAAA,GAAW,GAAmB,CAAA;AAAA,MACzC;AAAA,KACH,CAAA;AAAA,EACL,CAAA;AACJ;;;ACtBO,IAAM,EAAE,QAAA,EAAU,UAAA,EAAY,qBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAQ,GAClH,kBAAA,CAAmB,4BAA4B","file":"index.js","sourcesContent":["import { DestroyRef, inject, signal } from '@angular/core'\nimport { bindStoreWithActions, type SubscribableStore } from './bindStoreWithActions'\n\nexport function createAngularStoreComposable<TState extends object, TActions extends object>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const destroyRef = inject(DestroyRef)\n const binding = bindStoreWithActions(store, actions)\n const snapshot = signal(binding.getSnapshot())\n\n destroyRef.onDestroy(\n binding.subscribe(() => {\n snapshot.set(binding.getSnapshot())\n })\n )\n\n return new Proxy({} as TState & TActions, {\n get(_target, prop) {\n const key = String(prop)\n if (key in actions) {\n return (actions as Record<string, unknown>)[key]\n }\n return snapshot()[key as keyof TState]\n }\n })\n }\n}\n","import { createAdapterHooks } from '../shared/createAdapterHooks'\nimport { createAngularStoreComposable } from '../shared/createAngularComposable'\n\nexport const { useTable, useTableUi, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader, useFile } =\n createAdapterHooks(createAngularStoreComposable)\n"]}
1
+ {"version":3,"sources":["../../../src/main/adapters/shared/createAngularComposable.ts","../../../src/main/adapters/angular/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAGO,SAAS,4BAAA,CAA6E,OAAkC,OAAA,EAAmB;AAC9I,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,UAAA,GAAa,OAAO,UAAU,CAAA;AACpC,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,KAAA,EAAO,OAAO,CAAA;AACnD,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAE7C,IAAA,UAAA,CAAW,SAAA;AAAA,MACP,OAAA,CAAQ,UAAU,MAAM;AACpB,QAAA,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,WAAA,EAAa,CAAA;AAAA,MACtC,CAAC;AAAA,KACL;AAEA,IAAA,OAAO,IAAI,KAAA,CAAM,EAAC,EAAwB;AAAA,MACtC,GAAA,CAAI,SAAS,IAAA,EAAM;AACf,QAAA,MAAM,GAAA,GAAM,OAAO,IAAI,CAAA;AACvB,QAAA,IAAI,OAAO,OAAA,EAAS;AAChB,UAAA,OAAQ,QAAoC,GAAG,CAAA;AAAA,QACnD;AACA,QAAA,OAAO,QAAA,GAAW,GAAmB,CAAA;AAAA,MACzC;AAAA,KACH,CAAA;AAAA,EACL,CAAA;AACJ;;;ACtBO,IAAM,EAAE,QAAA,EAAU,UAAA,EAAY,qBAAA,EAAuB,SAAA,EAAW,OAAA,EAAS,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAQ,GAC7H,mBAAmB,4BAA4B","file":"index.js","sourcesContent":["import { DestroyRef, inject, signal } from '@angular/core'\nimport { bindStoreWithActions, type SubscribableStore } from './bindStoreWithActions'\n\nexport function createAngularStoreComposable<TState extends object, TActions extends object>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const destroyRef = inject(DestroyRef)\n const binding = bindStoreWithActions(store, actions)\n const snapshot = signal(binding.getSnapshot())\n\n destroyRef.onDestroy(\n binding.subscribe(() => {\n snapshot.set(binding.getSnapshot())\n })\n )\n\n return new Proxy({} as TState & TActions, {\n get(_target, prop) {\n const key = String(prop)\n if (key in actions) {\n return (actions as Record<string, unknown>)[key]\n }\n return snapshot()[key as keyof TState]\n }\n })\n }\n}\n","import { createAdapterHooks } from '../shared/createAdapterHooks'\nimport { createAngularStoreComposable } from '../shared/createAngularComposable'\n\nexport const { useTable, useTableUi, useMultiObjectActions, useObject, useNote, useEmail, useUser, useSync, useUploader, useFile } =\n createAdapterHooks(createAngularStoreComposable)\n"]}
@@ -1,3 +1,3 @@
1
1
  export { useTable, useTableUi, useUser } from '../react/index.js';
2
2
  import '../../use-file-BcO5l-Zf.js';
3
- import '../../use-sync-B4xio81b.js';
3
+ import '../../use-sync-BQfzHacf.js';
@@ -1,8 +1,8 @@
1
- export { useTable, useTableUi, useUser } from '../../chunk-XQAVHI2F.js';
2
- import '../../chunk-WJBWIUQM.js';
3
- import '../../chunk-F43GSZXK.js';
4
- import '../../chunk-ZZCYSW32.js';
5
- import '../../chunk-JVJMM4SZ.js';
1
+ export { useTable, useTableUi, useUser } from '../../chunk-ITBMRGCP.js';
2
+ import '../../chunk-OH7VT6MX.js';
3
+ import '../../chunk-2OLIVT2F.js';
4
+ import '../../chunk-JSXP2F2H.js';
5
+ import '../../chunk-XDYXEYDM.js';
6
6
  import '../../chunk-32ERSTFY.js';
7
7
  import '../../chunk-DB6W3CJT.js';
8
8
  import '../../chunk-KGNMN7B3.js';
@@ -1,5 +1,5 @@
1
1
  import { F as FileState, M as MultiObjectTableState, U as UploaderState } from '../../use-file-BcO5l-Zf.js';
2
- import { T as TableState, a as TableUiState, U as UserState, E as EmailState, N as NoteState, S as SyncState } from '../../use-sync-B4xio81b.js';
2
+ import { T as TableState, a as TableUiState, U as UserState, E as EmailState, N as NoteState, O as ObjectState, S as SyncState } from '../../use-sync-BQfzHacf.js';
3
3
 
4
4
  declare const useTable: () => TableState & {
5
5
  setObjectsQueryParams(params: any): void;
@@ -63,6 +63,13 @@ declare const useMultiObjectActions: () => MultiObjectTableState & {
63
63
  clearLatestMultiObjectPrependData(hubspotObjectTypeId?: string): void;
64
64
  setMultiObjectPrependData(response: any, props?: any): Promise<void>;
65
65
  };
66
+ declare const useObject: () => ObjectState & {
67
+ setObjectData(response: any, payload?: any): void;
68
+ updateObjectData(response: any, payload?: any): any;
69
+ setObjectAssociationPrependData(response: any, props?: any): Promise<void>;
70
+ clearLatestObjectAssociationPrependData(props?: any): void;
71
+ clearObjectData(): void;
72
+ };
66
73
  declare const useNote: () => NoteState & {
67
74
  setListQueryParams(params: any): void;
68
75
  setNotes(response: any, payload: any): void;
@@ -100,4 +107,4 @@ declare const useFile: () => FileState & {
100
107
  clearFiles(): void;
101
108
  };
102
109
 
103
- export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser };
110
+ export { useEmail, useFile, useMultiObjectActions, useNote, useObject, useSync, useTable, useTableUi, useUploader, useUser };
@@ -1,8 +1,8 @@
1
- export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser } from '../../chunk-XQAVHI2F.js';
2
- import '../../chunk-WJBWIUQM.js';
3
- import '../../chunk-F43GSZXK.js';
4
- import '../../chunk-ZZCYSW32.js';
5
- import '../../chunk-JVJMM4SZ.js';
1
+ export { useEmail, useFile, useMultiObjectActions, useNote, useObject, useSync, useTable, useTableUi, useUploader, useUser } from '../../chunk-ITBMRGCP.js';
2
+ import '../../chunk-OH7VT6MX.js';
3
+ import '../../chunk-2OLIVT2F.js';
4
+ import '../../chunk-JSXP2F2H.js';
5
+ import '../../chunk-XDYXEYDM.js';
6
6
  import '../../chunk-32ERSTFY.js';
7
7
  import '../../chunk-DB6W3CJT.js';
8
8
  import '../../chunk-KGNMN7B3.js';
@@ -1,5 +1,5 @@
1
1
  import { F as FileState, M as MultiObjectTableState, U as UploaderState } from '../../use-file-BcO5l-Zf.js';
2
- import { E as EmailState, N as NoteState, S as SyncState, T as TableState, a as TableUiState, U as UserState } from '../../use-sync-B4xio81b.js';
2
+ import { E as EmailState, N as NoteState, O as ObjectState, S as SyncState, T as TableState, a as TableUiState, U as UserState } from '../../use-sync-BQfzHacf.js';
3
3
 
4
4
  declare const useTable: () => TableState & {
5
5
  setObjectsQueryParams(params: any): void;
@@ -63,6 +63,13 @@ declare const useMultiObjectActions: () => MultiObjectTableState & {
63
63
  clearLatestMultiObjectPrependData(hubspotObjectTypeId?: string): void;
64
64
  setMultiObjectPrependData(response: any, props?: any): Promise<void>;
65
65
  };
66
+ declare const useObject: () => ObjectState & {
67
+ setObjectData(response: any, payload?: any): void;
68
+ updateObjectData(response: any, payload?: any): any;
69
+ setObjectAssociationPrependData(response: any, props?: any): Promise<void>;
70
+ clearLatestObjectAssociationPrependData(props?: any): void;
71
+ clearObjectData(): void;
72
+ };
66
73
  declare const useNote: () => NoteState & {
67
74
  setListQueryParams(params: any): void;
68
75
  setNotes(response: any, payload: any): void;
@@ -100,4 +107,4 @@ declare const useFile: () => FileState & {
100
107
  clearFiles(): void;
101
108
  };
102
109
 
103
- export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser };
110
+ export { useEmail, useFile, useMultiObjectActions, useNote, useObject, useSync, useTable, useTableUi, useUploader, useUser };
@@ -1,8 +1,8 @@
1
1
  import { bindStoreWithActions } from '../../chunk-AYTO6ND7.js';
2
- import { createAdapterHooks } from '../../chunk-WJBWIUQM.js';
3
- import '../../chunk-F43GSZXK.js';
4
- import '../../chunk-ZZCYSW32.js';
5
- import '../../chunk-JVJMM4SZ.js';
2
+ import { createAdapterHooks } from '../../chunk-OH7VT6MX.js';
3
+ import '../../chunk-2OLIVT2F.js';
4
+ import '../../chunk-JSXP2F2H.js';
5
+ import '../../chunk-XDYXEYDM.js';
6
6
  import '../../chunk-32ERSTFY.js';
7
7
  import '../../chunk-DB6W3CJT.js';
8
8
  import '../../chunk-KGNMN7B3.js';
@@ -23,8 +23,8 @@ function createVueStoreComposable(store, actions) {
23
23
  }
24
24
 
25
25
  // src/main/adapters/vue/index.ts
26
- var { useTable, useTableUi, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader, useFile } = createAdapterHooks(createVueStoreComposable);
26
+ var { useTable, useTableUi, useMultiObjectActions, useObject, useNote, useEmail, useUser, useSync, useUploader, useFile } = createAdapterHooks(createVueStoreComposable);
27
27
 
28
- export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser };
28
+ export { useEmail, useFile, useMultiObjectActions, useNote, useObject, useSync, useTable, useTableUi, useUploader, useUser };
29
29
  //# sourceMappingURL=index.js.map
30
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/adapters/shared/createVueComposable.ts","../../../src/main/adapters/vue/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAGO,SAAS,wBAAA,CAAyE,OAAkC,OAAA,EAAmB;AAC1I,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,KAAA,EAAO,OAAO,CAAA;AACnD,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,WAAA,EAAa,CAAA;AAE5C,IAAA,cAAA;AAAA,MACI,OAAA,CAAQ,UAAU,MAAM;AACpB,QAAA,MAAA,CAAO,MAAA,CAAO,KAAA,EAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAAA,MAC9C,CAAC;AAAA,KACL;AAEA,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AACJ;;;ACbO,IAAM,EAAE,QAAA,EAAU,UAAA,EAAY,qBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAQ,GAClH,kBAAA,CAAmB,wBAAwB","file":"index.js","sourcesContent":["import { onScopeDispose, reactive } from 'vue'\nimport { bindStoreWithActions, type SubscribableStore } from './bindStoreWithActions'\n\nexport function createVueStoreComposable<TState extends object, TActions extends object>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const binding = bindStoreWithActions(store, actions)\n const state = reactive(binding.getSnapshot()) as TState & TActions\n\n onScopeDispose(\n binding.subscribe(() => {\n Object.assign(state, binding.getSnapshot())\n })\n )\n\n return state\n }\n}\n","import { createAdapterHooks } from '../shared/createAdapterHooks'\nimport { createVueStoreComposable } from '../shared/createVueComposable'\n\nexport const { useTable, useTableUi, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader, useFile } =\n createAdapterHooks(createVueStoreComposable)\n"]}
1
+ {"version":3,"sources":["../../../src/main/adapters/shared/createVueComposable.ts","../../../src/main/adapters/vue/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAGO,SAAS,wBAAA,CAAyE,OAAkC,OAAA,EAAmB;AAC1I,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,KAAA,EAAO,OAAO,CAAA;AACnD,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,WAAA,EAAa,CAAA;AAE5C,IAAA,cAAA;AAAA,MACI,OAAA,CAAQ,UAAU,MAAM;AACpB,QAAA,MAAA,CAAO,MAAA,CAAO,KAAA,EAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAAA,MAC9C,CAAC;AAAA,KACL;AAEA,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AACJ;;;ACbO,IAAM,EAAE,QAAA,EAAU,UAAA,EAAY,qBAAA,EAAuB,SAAA,EAAW,OAAA,EAAS,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAQ,GAC7H,mBAAmB,wBAAwB","file":"index.js","sourcesContent":["import { onScopeDispose, reactive } from 'vue'\nimport { bindStoreWithActions, type SubscribableStore } from './bindStoreWithActions'\n\nexport function createVueStoreComposable<TState extends object, TActions extends object>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const binding = bindStoreWithActions(store, actions)\n const state = reactive(binding.getSnapshot()) as TState & TActions\n\n onScopeDispose(\n binding.subscribe(() => {\n Object.assign(state, binding.getSnapshot())\n })\n )\n\n return state\n }\n}\n","import { createAdapterHooks } from '../shared/createAdapterHooks'\nimport { createVueStoreComposable } from '../shared/createVueComposable'\n\nexport const { useTable, useTableUi, useMultiObjectActions, useObject, useNote, useEmail, useUser, useSync, useUploader, useFile } =\n createAdapterHooks(createVueStoreComposable)\n"]}
@@ -1,7 +1,7 @@
1
- export { clearAdapterSessionData, clearRefreshToken, getPortal, getProfile, getRefreshToken, getSubscriptionType, setAccessToken, setLoggedInDetails, setPortal, setProfileDetails, setRefreshToken, setSubscriptionType } from './chunk-JVJMM4SZ.js';
1
+ export { clearAdapterSessionData, clearRefreshToken, getPortal, getProfile, getRefreshToken, getSubscriptionType, setAccessToken, setLoggedInDetails, setPortal, setProfileDetails, setRefreshToken, setSubscriptionType } from './chunk-XDYXEYDM.js';
2
2
  import './chunk-32ERSTFY.js';
3
3
  import './chunk-DB6W3CJT.js';
4
4
  import './chunk-KGNMN7B3.js';
5
5
  import './chunk-COHBSTHF.js';
6
- //# sourceMappingURL=auth-utils-P5IGNMTK.js.map
7
- //# sourceMappingURL=auth-utils-P5IGNMTK.js.map
6
+ //# sourceMappingURL=auth-utils-JGNW73IJ.js.map
7
+ //# sourceMappingURL=auth-utils-JGNW73IJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-P5IGNMTK.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-JGNW73IJ.js"}
@@ -0,0 +1,343 @@
1
+ import { createStore, isLoadingPrependRow } from './chunk-JSXP2F2H.js';
2
+
3
+ // src/main/state/crm/use-object.ts
4
+ var OBJECT_DATA_META_KEYS = /* @__PURE__ */ new Set(["createdAt", "updatedAt", "id"]);
5
+ var objectStore = createStore({
6
+ object: null,
7
+ id: ""
8
+ });
9
+ function resolveRecordId(source, data) {
10
+ const fromSource = source?.params?.id ?? source?.recordId ?? source?.id;
11
+ if (fromSource != null && fromSource !== "") {
12
+ return String(fromSource);
13
+ }
14
+ const fromData = data?.id ?? data?.hs_object_id?.value ?? data?.hs_object_id;
15
+ if (fromData != null && fromData !== "") {
16
+ return String(fromData);
17
+ }
18
+ return "";
19
+ }
20
+ function isObjectField(key, value) {
21
+ if (OBJECT_DATA_META_KEYS.has(key) || key === "associations") {
22
+ return false;
23
+ }
24
+ if (value == null || typeof value !== "object" || Array.isArray(value)) {
25
+ return false;
26
+ }
27
+ const field = value;
28
+ return "fieldType" in field || "isEditableField" in field || "isPrimaryDisplayProperty" in field || "value" in field;
29
+ }
30
+ function mergeObjectFields(existing, data) {
31
+ const next = { ...existing };
32
+ for (const [key, value] of Object.entries(data)) {
33
+ if (!isObjectField(key, value)) {
34
+ continue;
35
+ }
36
+ const existingField = existing[key];
37
+ next[key] = existingField != null && typeof existingField === "object" && !Array.isArray(existingField) ? { ...existingField, ...value } : value;
38
+ }
39
+ return next;
40
+ }
41
+ function patchAssociationRecord(associations, recordId, data) {
42
+ for (const [key, group] of Object.entries(associations)) {
43
+ const rows = group?.data;
44
+ if (!Array.isArray(rows)) {
45
+ continue;
46
+ }
47
+ const index = rows.findIndex((row) => resolveRecordId(row, row) === recordId);
48
+ if (index === -1) {
49
+ continue;
50
+ }
51
+ const nextRows = [...rows];
52
+ nextRows[index] = mergeObjectFields(rows[index] ?? {}, data);
53
+ return {
54
+ ...associations,
55
+ [key]: {
56
+ ...group,
57
+ data: nextRows
58
+ }
59
+ };
60
+ }
61
+ return null;
62
+ }
63
+ function resolveAssociationObjectTypeId(props) {
64
+ const objectTypeId = props?.params?.hubspotObjectTypeId ?? props?.hubspotObjectTypeId;
65
+ return objectTypeId != null && objectTypeId !== "" ? String(objectTypeId) : "";
66
+ }
67
+ function findAssociationGroupKey(associations, objectTypeId) {
68
+ for (const [key, group] of Object.entries(associations)) {
69
+ if (group?.objectTypeId != null && String(group.objectTypeId) === objectTypeId) {
70
+ return key;
71
+ }
72
+ }
73
+ for (const key of Object.keys(associations)) {
74
+ if (key === objectTypeId || key.startsWith(`${objectTypeId}_`)) {
75
+ return key;
76
+ }
77
+ }
78
+ return void 0;
79
+ }
80
+ function isLoadingAssociationRow(row) {
81
+ if (!row || typeof row !== "object") {
82
+ return false;
83
+ }
84
+ const values = Object.values(row);
85
+ if (values.length === 0) {
86
+ return false;
87
+ }
88
+ return values.every((value) => value === "loading" || value != null && typeof value === "object" && !Array.isArray(value) && value.value === "loading");
89
+ }
90
+ function toLoadingAssociationRow(template) {
91
+ if (template != null && typeof template === "object" && !Array.isArray(template)) {
92
+ return Object.fromEntries(
93
+ Object.entries(template).map(([key, value]) => {
94
+ if (value != null && typeof value === "object" && !Array.isArray(value) && "value" in value) {
95
+ return [key, { ...value, value: "loading" }];
96
+ }
97
+ return [key, "loading"];
98
+ })
99
+ );
100
+ }
101
+ return { name: { value: "loading" } };
102
+ }
103
+ function toAssociationRow(data) {
104
+ const row = {};
105
+ for (const [key, value] of Object.entries(data)) {
106
+ if (!isObjectField(key, value)) {
107
+ continue;
108
+ }
109
+ row[key] = value;
110
+ }
111
+ return row;
112
+ }
113
+ function setAssociationGroup(state, associations, key, group, rows, total) {
114
+ objectStore.setState({
115
+ object: {
116
+ ...state.object,
117
+ data: {
118
+ ...state.object.data,
119
+ associations: {
120
+ ...associations,
121
+ [key]: {
122
+ ...group,
123
+ data: rows,
124
+ ...total != null ? { total } : {}
125
+ }
126
+ }
127
+ }
128
+ }
129
+ });
130
+ }
131
+ var actions = {
132
+ setObjectData(response, payload) {
133
+ const data = response?.data;
134
+ const id = resolveRecordId(payload, data);
135
+ objectStore.setState({
136
+ object: response ?? null,
137
+ id
138
+ });
139
+ },
140
+ updateObjectData(response, payload) {
141
+ const data = response?.data;
142
+ const recordId = resolveRecordId(payload, data);
143
+ const state = objectStore.getState();
144
+ if (!data || !state.object) {
145
+ return response;
146
+ }
147
+ const existingData = state.object.data ?? {};
148
+ const associations = existingData.associations;
149
+ const isParentRecordUpdate = !state.id || !recordId || state.id === recordId;
150
+ if (!isParentRecordUpdate) {
151
+ const nextAssociations = associations && typeof associations === "object" ? patchAssociationRecord(associations, recordId, data) : null;
152
+ if (!nextAssociations) {
153
+ return response;
154
+ }
155
+ objectStore.setState({
156
+ object: {
157
+ ...state.object,
158
+ data: {
159
+ ...existingData,
160
+ associations: nextAssociations
161
+ }
162
+ }
163
+ });
164
+ return response;
165
+ }
166
+ const nextData = mergeObjectFields(existingData, data);
167
+ objectStore.setState({
168
+ object: {
169
+ ...state.object,
170
+ data: nextData,
171
+ ...response?.configurations != null ? { configurations: response.configurations } : {},
172
+ ...response?.info != null ? { info: response.info } : {}
173
+ },
174
+ id: state.id || recordId
175
+ });
176
+ return response;
177
+ },
178
+ async setObjectAssociationPrependData(response, props) {
179
+ const state = objectStore.getState();
180
+ const associations = state.object?.data?.associations;
181
+ const objectTypeId = resolveAssociationObjectTypeId(props);
182
+ if (!associations || typeof associations !== "object" || !objectTypeId) {
183
+ return;
184
+ }
185
+ const key = findAssociationGroupKey(associations, objectTypeId);
186
+ if (!key) {
187
+ return;
188
+ }
189
+ const group = associations[key];
190
+ const rows = Array.isArray(group?.data) ? [...group.data] : [];
191
+ if (response === "loading") {
192
+ rows.unshift(toLoadingAssociationRow(rows[0]));
193
+ setAssociationGroup(state, associations, key, group, rows);
194
+ return;
195
+ }
196
+ const data = response?.data;
197
+ if (!data) {
198
+ return;
199
+ }
200
+ const hadLoading = isLoadingAssociationRow(rows[0]);
201
+ const row = toAssociationRow(data);
202
+ if (hadLoading) {
203
+ rows[0] = row;
204
+ } else {
205
+ rows.unshift(row);
206
+ }
207
+ const baseTotal = typeof group?.total === "number" ? group.total : Math.max((Array.isArray(group?.data) ? group.data.length : 0) - (hadLoading ? 1 : 0), 0);
208
+ setAssociationGroup(state, associations, key, group, rows, baseTotal + 1);
209
+ },
210
+ clearLatestObjectAssociationPrependData(props) {
211
+ const state = objectStore.getState();
212
+ const associations = state.object?.data?.associations;
213
+ const objectTypeId = resolveAssociationObjectTypeId(props);
214
+ if (!associations || typeof associations !== "object" || !objectTypeId) {
215
+ return;
216
+ }
217
+ const key = findAssociationGroupKey(associations, objectTypeId);
218
+ if (!key) {
219
+ return;
220
+ }
221
+ const group = associations[key];
222
+ const rows = Array.isArray(group?.data) ? group.data : [];
223
+ if (rows.length === 0 || !isLoadingAssociationRow(rows[0])) {
224
+ return;
225
+ }
226
+ setAssociationGroup(state, associations, key, group, rows.slice(1));
227
+ },
228
+ clearObjectData() {
229
+ objectStore.setState({
230
+ object: null,
231
+ id: ""
232
+ });
233
+ }
234
+ };
235
+
236
+ // src/main/state/crm/use-multi-object.ts
237
+ var multiObjectStore = createStore({
238
+ objects: {},
239
+ objectsPrependData: {},
240
+ meta: {}
241
+ });
242
+ function getObjectKey(payload) {
243
+ return String(payload?.params?.hubspotObjectTypeId ?? "");
244
+ }
245
+ var actions2 = {
246
+ setMultiObjectData(response, payload) {
247
+ const key = getObjectKey(payload);
248
+ const state = multiObjectStore.getState();
249
+ const rows = response?.data?.results?.rows ?? [];
250
+ const rowIds = new Set(
251
+ rows.map((row) => row.id ?? row.hs_object_id).filter((id) => id != null && id !== "").map((id) => String(id))
252
+ );
253
+ let newPrependForKey = (state.objectsPrependData[key] ?? []).filter((item) => {
254
+ const itemId = item.id ?? item.hs_object_id;
255
+ if (itemId == null || itemId === "") return true;
256
+ return !rowIds.has(String(itemId));
257
+ });
258
+ const selectedPipeline = payload?.queryParams?.selectedPipeline ?? "";
259
+ const viewType = response?.info?.viewType ?? "";
260
+ const prevMeta = state.meta[key];
261
+ if (response?.data?.total < 1 || payload?.queryParams?.componentName) {
262
+ newPrependForKey = [];
263
+ }
264
+ if (prevMeta?.viewType && prevMeta.viewType !== viewType) {
265
+ newPrependForKey = [];
266
+ }
267
+ if (prevMeta?.selectedPipeline && prevMeta.selectedPipeline !== selectedPipeline) {
268
+ newPrependForKey = [];
269
+ }
270
+ multiObjectStore.setState({
271
+ objects: { ...state.objects, [key]: response },
272
+ objectsPrependData: { ...state.objectsPrependData, [key]: newPrependForKey },
273
+ meta: {
274
+ ...state.meta,
275
+ [key]: { selectedPipeline, viewType }
276
+ }
277
+ });
278
+ },
279
+ clearMultiObjectPrependData(hubspotObjectTypeId) {
280
+ const state = multiObjectStore.getState();
281
+ if (!hubspotObjectTypeId) {
282
+ multiObjectStore.setState({ objectsPrependData: {} });
283
+ return;
284
+ }
285
+ const key = String(hubspotObjectTypeId);
286
+ const { [key]: _, ...rest } = state.objectsPrependData;
287
+ multiObjectStore.setState({ objectsPrependData: rest });
288
+ },
289
+ clearLatestMultiObjectPrependData(hubspotObjectTypeId) {
290
+ if (!hubspotObjectTypeId) {
291
+ return;
292
+ }
293
+ const key = String(hubspotObjectTypeId);
294
+ const state = multiObjectStore.getState();
295
+ const prependRows = state.objectsPrependData[key] ?? [];
296
+ const latest = prependRows[0];
297
+ if (!latest || !isLoadingPrependRow(latest)) {
298
+ return;
299
+ }
300
+ multiObjectStore.setState({
301
+ objectsPrependData: { ...state.objectsPrependData, [key]: prependRows.slice(1) }
302
+ });
303
+ },
304
+ async setMultiObjectPrependData(response, props) {
305
+ const key = getObjectKey(props);
306
+ const state = multiObjectStore.getState();
307
+ const tableResponse = state.objects[key];
308
+ let rows = state.objectsPrependData[key] ?? [];
309
+ if (tableResponse?.data?.total > 1) {
310
+ if (response === "loading") {
311
+ const row = tableResponse?.data?.results?.columns.reduce((acc, item) => {
312
+ if (!item.hidden) {
313
+ acc[item.key] = "loading";
314
+ }
315
+ return acc;
316
+ }, {});
317
+ rows = [row, ...rows];
318
+ } else if (response?.data) {
319
+ const data = response?.data;
320
+ if (!data) {
321
+ multiObjectStore.setState({
322
+ objectsPrependData: { ...state.objectsPrependData, [key]: [] }
323
+ });
324
+ return;
325
+ }
326
+ const row = Object.fromEntries(Object.entries(data).map(([k, value]) => [k, value?.value ?? value]));
327
+ rows = [...rows];
328
+ if (rows.length > 0) {
329
+ rows[0] = row;
330
+ } else {
331
+ rows.push(row);
332
+ }
333
+ }
334
+ }
335
+ multiObjectStore.setState({
336
+ objectsPrependData: { ...state.objectsPrependData, [key]: rows }
337
+ });
338
+ }
339
+ };
340
+
341
+ export { actions2 as actions, actions as actions2, multiObjectStore, objectStore };
342
+ //# sourceMappingURL=chunk-2OLIVT2F.js.map
343
+ //# sourceMappingURL=chunk-2OLIVT2F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/state/crm/use-object.ts","../src/main/state/crm/use-multi-object.ts"],"names":["actions"],"mappings":";;;AAOA,IAAM,wCAAwB,IAAI,GAAA,CAAI,CAAC,WAAA,EAAa,WAAA,EAAa,IAAI,CAAC,CAAA;AAE/D,IAAM,cAAc,WAAA,CAAyB;AAAA,EAChD,MAAA,EAAQ,IAAA;AAAA,EACR,EAAA,EAAI;AACR,CAAC;AAED,SAAS,eAAA,CAAgB,QAAa,IAAA,EAAoB;AACtD,EAAA,MAAM,aAAa,MAAA,EAAQ,MAAA,EAAQ,EAAA,IAAM,MAAA,EAAQ,YAAY,MAAA,EAAQ,EAAA;AACrE,EAAA,IAAI,UAAA,IAAc,IAAA,IAAQ,UAAA,KAAe,EAAA,EAAI;AACzC,IAAA,OAAO,OAAO,UAAU,CAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,WAAW,IAAA,EAAM,EAAA,IAAM,IAAA,EAAM,YAAA,EAAc,SAAS,IAAA,EAAM,YAAA;AAChE,EAAA,IAAI,QAAA,IAAY,IAAA,IAAQ,QAAA,KAAa,EAAA,EAAI;AACrC,IAAA,OAAO,OAAO,QAAQ,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,EAAA;AACX;AAEA,SAAS,aAAA,CAAc,KAAa,KAAA,EAAyB;AACzD,EAAA,IAAI,qBAAA,CAAsB,GAAA,CAAI,GAAG,CAAA,IAAK,QAAQ,cAAA,EAAgB;AAC1D,IAAA,OAAO,KAAA;AAAA,EACX;AAEA,EAAA,IAAI,KAAA,IAAS,QAAQ,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACpE,IAAA,OAAO,KAAA;AAAA,EACX;AAEA,EAAA,MAAM,KAAA,GAAQ,KAAA;AACd,EAAA,OAAO,eAAe,KAAA,IAAS,iBAAA,IAAqB,KAAA,IAAS,0BAAA,IAA8B,SAAS,OAAA,IAAW,KAAA;AACnH;AAEA,SAAS,iBAAA,CAAkB,UAA+B,IAAA,EAAgD;AACtG,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,QAAA,EAAS;AAE3B,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC7C,IAAA,IAAI,CAAC,aAAA,CAAc,GAAA,EAAK,KAAK,CAAA,EAAG;AAC5B,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,aAAA,GAAgB,SAAS,GAAG,CAAA;AAClC,IAAA,IAAA,CAAK,GAAG,CAAA,GACJ,aAAA,IAAiB,IAAA,IAAQ,OAAO,kBAAkB,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,aAAa,CAAA,GACpF,EAAE,GAAG,aAAA,EAAe,GAAI,OAAkC,GAC1D,KAAA;AAAA,EACd;AAEA,EAAA,OAAO,IAAA;AACX;AAEA,SAAS,sBAAA,CAAuB,YAAA,EAAmC,QAAA,EAAkB,IAAA,EAAuD;AACxI,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA,EAAG;AACrD,IAAA,MAAM,OAAO,KAAA,EAAO,IAAA;AACpB,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACtB,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,KAAA,GAAQ,KAAK,SAAA,CAAU,CAAC,QAAa,eAAA,CAAgB,GAAA,EAAK,GAAG,CAAA,KAAM,QAAQ,CAAA;AACjF,IAAA,IAAI,UAAU,EAAA,EAAI;AACd,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,QAAA,GAAW,CAAC,GAAG,IAAI,CAAA;AACzB,IAAA,QAAA,CAAS,KAAK,IAAI,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,IAAK,IAAI,IAAI,CAAA;AAE3D,IAAA,OAAO;AAAA,MACH,GAAG,YAAA;AAAA,MACH,CAAC,GAAG,GAAG;AAAA,QACH,GAAG,KAAA;AAAA,QACH,IAAA,EAAM;AAAA;AACV,KACJ;AAAA,EACJ;AAEA,EAAA,OAAO,IAAA;AACX;AAEA,SAAS,+BAA+B,KAAA,EAAqB;AACzD,EAAA,MAAM,YAAA,GAAe,KAAA,EAAO,MAAA,EAAQ,mBAAA,IAAuB,KAAA,EAAO,mBAAA;AAClE,EAAA,OAAO,gBAAgB,IAAA,IAAQ,YAAA,KAAiB,EAAA,GAAK,MAAA,CAAO,YAAY,CAAA,GAAI,EAAA;AAChF;AAEA,SAAS,uBAAA,CAAwB,cAAmC,YAAA,EAA0C;AAC1G,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA,EAAG;AACrD,IAAA,IAAI,OAAO,YAAA,IAAgB,IAAA,IAAQ,OAAO,KAAA,CAAM,YAAY,MAAM,YAAA,EAAc;AAC5E,MAAA,OAAO,GAAA;AAAA,IACX;AAAA,EACJ;AAEA,EAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,EAAG;AACzC,IAAA,IAAI,QAAQ,YAAA,IAAgB,GAAA,CAAI,WAAW,CAAA,EAAG,YAAY,GAAG,CAAA,EAAG;AAC5D,MAAA,OAAO,GAAA;AAAA,IACX;AAAA,EACJ;AAEA,EAAA,OAAO,MAAA;AACX;AAEA,SAAS,wBAAwB,GAAA,EAAmB;AAChD,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,GAAA,KAAQ,QAAA,EAAU;AACjC,IAAA,OAAO,KAAA;AAAA,EACX;AAEA,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,GAAG,CAAA;AAChC,EAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACrB,IAAA,OAAO,KAAA;AAAA,EACX;AAEA,EAAA,OAAO,OAAO,KAAA,CAAM,CAAC,UAAU,KAAA,KAAU,SAAA,IAAc,SAAS,IAAA,IAAQ,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAM,KAAA,CAAc,UAAU,SAAU,CAAA;AACrK;AAEA,SAAS,wBAAwB,QAAA,EAAqC;AAClE,EAAA,IAAI,QAAA,IAAY,QAAQ,OAAO,QAAA,KAAa,YAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC9E,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACV,MAAA,CAAO,QAAQ,QAAQ,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC3C,QAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,OAAA,IAAY,KAAA,EAAkB;AACrG,UAAA,OAAO,CAAC,GAAA,EAAK,EAAE,GAAI,KAAA,EAAmC,KAAA,EAAO,WAAW,CAAA;AAAA,QAC5E;AAEA,QAAA,OAAO,CAAC,KAAK,SAAS,CAAA;AAAA,MAC1B,CAAC;AAAA,KACL;AAAA,EACJ;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,EAAE,KAAA,EAAO,WAAU,EAAE;AACxC;AAEA,SAAS,iBAAiB,IAAA,EAAgD;AACtE,EAAA,MAAM,MAA2B,EAAC;AAElC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,EAAG;AAC7C,IAAA,IAAI,CAAC,aAAA,CAAc,GAAA,EAAK,KAAK,CAAA,EAAG;AAC5B,MAAA;AAAA,IACJ;AAEA,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA;AAAA,EACf;AAEA,EAAA,OAAO,GAAA;AACX;AAEA,SAAS,oBAAoB,KAAA,EAAoB,YAAA,EAAmC,GAAA,EAAa,KAAA,EAAY,MAAa,KAAA,EAAgB;AACtI,EAAA,WAAA,CAAY,QAAA,CAAS;AAAA,IACjB,MAAA,EAAQ;AAAA,MACJ,GAAG,KAAA,CAAM,MAAA;AAAA,MACT,IAAA,EAAM;AAAA,QACF,GAAG,MAAM,MAAA,CAAO,IAAA;AAAA,QAChB,YAAA,EAAc;AAAA,UACV,GAAG,YAAA;AAAA,UACH,CAAC,GAAG,GAAG;AAAA,YACH,GAAG,KAAA;AAAA,YACH,IAAA,EAAM,IAAA;AAAA,YACN,GAAI,KAAA,IAAS,IAAA,GAAO,EAAE,KAAA,KAAU;AAAC;AACrC;AACJ;AACJ;AACJ,GACH,CAAA;AACL;AAEO,IAAM,OAAA,GAAU;AAAA,EACnB,aAAA,CAAc,UAAe,OAAA,EAAe;AACxC,IAAA,MAAM,OAAO,QAAA,EAAU,IAAA;AACvB,IAAA,MAAM,EAAA,GAAK,eAAA,CAAgB,OAAA,EAAS,IAAI,CAAA;AAExC,IAAA,WAAA,CAAY,QAAA,CAAS;AAAA,MACjB,QAAQ,QAAA,IAAY,IAAA;AAAA,MACpB;AAAA,KACH,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,gBAAA,CAAiB,UAAe,OAAA,EAAe;AAC3C,IAAA,MAAM,OAAO,QAAA,EAAU,IAAA;AACvB,IAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,OAAA,EAAS,IAAI,CAAA;AAC9C,IAAA,MAAM,KAAA,GAAQ,YAAY,QAAA,EAAS;AAEnC,IAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,KAAA,CAAM,MAAA,EAAQ;AACxB,MAAA,OAAO,QAAA;AAAA,IACX;AAEA,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,MAAA,CAAO,IAAA,IAAQ,EAAC;AAC3C,IAAA,MAAM,eAAe,YAAA,CAAa,YAAA;AAClC,IAAA,MAAM,uBAAuB,CAAC,KAAA,CAAM,MAAM,CAAC,QAAA,IAAY,MAAM,EAAA,KAAO,QAAA;AAEpE,IAAA,IAAI,CAAC,oBAAA,EAAsB;AACvB,MAAA,MAAM,gBAAA,GAAmB,gBAAgB,OAAO,YAAA,KAAiB,WAAW,sBAAA,CAAuB,YAAA,EAAc,QAAA,EAAU,IAAI,CAAA,GAAI,IAAA;AAEnI,MAAA,IAAI,CAAC,gBAAA,EAAkB;AACnB,QAAA,OAAO,QAAA;AAAA,MACX;AAEA,MAAA,WAAA,CAAY,QAAA,CAAS;AAAA,QACjB,MAAA,EAAQ;AAAA,UACJ,GAAG,KAAA,CAAM,MAAA;AAAA,UACT,IAAA,EAAM;AAAA,YACF,GAAG,YAAA;AAAA,YACH,YAAA,EAAc;AAAA;AAClB;AACJ,OACH,CAAA;AAED,MAAA,OAAO,QAAA;AAAA,IACX;AAEA,IAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,YAAA,EAAc,IAAI,CAAA;AAErD,IAAA,WAAA,CAAY,QAAA,CAAS;AAAA,MACjB,MAAA,EAAQ;AAAA,QACJ,GAAG,KAAA,CAAM,MAAA;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,GAAI,UAAU,cAAA,IAAkB,IAAA,GAAO,EAAE,cAAA,EAAgB,QAAA,CAAS,cAAA,EAAe,GAAI,EAAC;AAAA,QACtF,GAAI,UAAU,IAAA,IAAQ,IAAA,GAAO,EAAE,IAAA,EAAM,QAAA,CAAS,IAAA,EAAK,GAAI;AAAC,OAC5D;AAAA,MACA,EAAA,EAAI,MAAM,EAAA,IAAM;AAAA,KACnB,CAAA;AAED,IAAA,OAAO,QAAA;AAAA,EACX,CAAA;AAAA,EAEA,MAAM,+BAAA,CAAgC,QAAA,EAAe,KAAA,EAAa;AAC9D,IAAA,MAAM,KAAA,GAAQ,YAAY,QAAA,EAAS;AACnC,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,MAAA,EAAQ,IAAA,EAAM,YAAA;AACzC,IAAA,MAAM,YAAA,GAAe,+BAA+B,KAAK,CAAA;AAEzD,IAAA,IAAI,CAAC,YAAA,IAAgB,OAAO,YAAA,KAAiB,QAAA,IAAY,CAAC,YAAA,EAAc;AACpE,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,GAAA,GAAM,uBAAA,CAAwB,YAAA,EAAc,YAAY,CAAA;AAC9D,IAAA,IAAI,CAAC,GAAA,EAAK;AACN,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,KAAA,GAAQ,aAAa,GAAG,CAAA;AAC9B,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAA,GAAI,CAAC,GAAG,KAAA,CAAM,IAAI,CAAA,GAAI,EAAC;AAE7D,IAAA,IAAI,aAAa,SAAA,EAAW;AACxB,MAAA,IAAA,CAAK,OAAA,CAAQ,uBAAA,CAAwB,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAC7C,MAAA,mBAAA,CAAoB,KAAA,EAAO,YAAA,EAAc,GAAA,EAAK,KAAA,EAAO,IAAI,CAAA;AACzD,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,OAAO,QAAA,EAAU,IAAA;AACvB,IAAA,IAAI,CAAC,IAAA,EAAM;AACP,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,UAAA,GAAa,uBAAA,CAAwB,IAAA,CAAK,CAAC,CAAC,CAAA;AAClD,IAAA,MAAM,GAAA,GAAM,iBAAiB,IAAI,CAAA;AACjC,IAAA,IAAI,UAAA,EAAY;AACZ,MAAA,IAAA,CAAK,CAAC,CAAA,GAAI,GAAA;AAAA,IACd,CAAA,MAAO;AACH,MAAA,IAAA,CAAK,QAAQ,GAAG,CAAA;AAAA,IACpB;AAEA,IAAA,MAAM,SAAA,GAAY,OAAO,KAAA,EAAO,KAAA,KAAU,WAAW,KAAA,CAAM,KAAA,GAAQ,KAAK,GAAA,CAAA,CAAK,KAAA,CAAM,QAAQ,KAAA,EAAO,IAAI,IAAI,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA,KAAM,UAAA,GAAa,CAAA,GAAI,CAAA,CAAA,EAAI,CAAC,CAAA;AAC1J,IAAA,mBAAA,CAAoB,OAAO,YAAA,EAAc,GAAA,EAAK,KAAA,EAAO,IAAA,EAAM,YAAY,CAAC,CAAA;AAAA,EAC5E,CAAA;AAAA,EAEA,wCAAwC,KAAA,EAAa;AACjD,IAAA,MAAM,KAAA,GAAQ,YAAY,QAAA,EAAS;AACnC,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,MAAA,EAAQ,IAAA,EAAM,YAAA;AACzC,IAAA,MAAM,YAAA,GAAe,+BAA+B,KAAK,CAAA;AAEzD,IAAA,IAAI,CAAC,YAAA,IAAgB,OAAO,YAAA,KAAiB,QAAA,IAAY,CAAC,YAAA,EAAc;AACpE,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,GAAA,GAAM,uBAAA,CAAwB,YAAA,EAAc,YAAY,CAAA;AAC9D,IAAA,IAAI,CAAC,GAAA,EAAK;AACN,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,KAAA,GAAQ,aAAa,GAAG,CAAA;AAC9B,IAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAA,GAAI,KAAA,CAAM,OAAO,EAAC;AACxD,IAAA,IAAI,IAAA,CAAK,WAAW,CAAA,IAAK,CAAC,wBAAwB,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG;AACxD,MAAA;AAAA,IACJ;AAEA,IAAA,mBAAA,CAAoB,OAAO,YAAA,EAAc,GAAA,EAAK,OAAO,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,EACtE,CAAA;AAAA,EAEA,eAAA,GAAkB;AACd,IAAA,WAAA,CAAY,QAAA,CAAS;AAAA,MACjB,MAAA,EAAQ,IAAA;AAAA,MACR,EAAA,EAAI;AAAA,KACP,CAAA;AAAA,EACL;AACJ;;;AChSO,IAAM,mBAAmB,WAAA,CAAmC;AAAA,EAC/D,SAAS,EAAC;AAAA,EACV,oBAAoB,EAAC;AAAA,EACrB,MAAM;AACV,CAAC;AAED,SAAS,aAAa,OAAA,EAAsB;AACxC,EAAA,OAAO,MAAA,CAAO,OAAA,EAAS,MAAA,EAAQ,mBAAA,IAAuB,EAAE,CAAA;AAC5D;AAEO,IAAMA,QAAAA,GAAU;AAAA,EACnB,kBAAA,CAAmB,UAAe,OAAA,EAAc;AAC5C,IAAA,MAAM,GAAA,GAAM,aAAa,OAAO,CAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,iBAAiB,QAAA,EAAS;AAExC,IAAA,MAAM,IAAA,GAAO,QAAA,EAAU,IAAA,EAAM,OAAA,EAAS,QAAQ,EAAC;AAC/C,IAAA,MAAM,SAAS,IAAI,GAAA;AAAA,MACf,IAAA,CACK,IAAI,CAAC,GAAA,KAAa,IAAI,EAAA,IAAM,GAAA,CAAI,YAAY,CAAA,CAC5C,MAAA,CAAO,CAAC,OAAgB,EAAA,IAAM,IAAA,IAAQ,OAAO,EAAE,CAAA,CAC/C,IAAI,CAAC,EAAA,KAAgB,MAAA,CAAO,EAAE,CAAC;AAAA,KACxC;AAEA,IAAA,IAAI,gBAAA,GAAA,CAAoB,MAAM,kBAAA,CAAmB,GAAG,KAAK,EAAC,EAAG,MAAA,CAAO,CAAC,IAAA,KAAc;AAC/E,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,EAAA,IAAM,IAAA,CAAK,YAAA;AAC/B,MAAA,IAAI,MAAA,IAAU,IAAA,IAAQ,MAAA,KAAW,EAAA,EAAI,OAAO,IAAA;AAC5C,MAAA,OAAO,CAAC,MAAA,CAAO,GAAA,CAAI,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,IACrC,CAAC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,OAAA,EAAS,WAAA,EAAa,gBAAA,IAAoB,EAAA;AACnE,IAAA,MAAM,QAAA,GAAW,QAAA,EAAU,IAAA,EAAM,QAAA,IAAY,EAAA;AAC7C,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;AAE/B,IAAA,IAAI,UAAU,IAAA,EAAM,KAAA,GAAQ,CAAA,IAAK,OAAA,EAAS,aAAa,aAAA,EAAe;AAClE,MAAA,gBAAA,GAAmB,EAAC;AAAA,IACxB;AAEA,IAAA,IAAI,QAAA,EAAU,QAAA,IAAY,QAAA,CAAS,QAAA,KAAa,QAAA,EAAU;AACtD,MAAA,gBAAA,GAAmB,EAAC;AAAA,IACxB;AAEA,IAAA,IAAI,QAAA,EAAU,gBAAA,IAAoB,QAAA,CAAS,gBAAA,KAAqB,gBAAA,EAAkB;AAC9E,MAAA,gBAAA,GAAmB,EAAC;AAAA,IACxB;AAEA,IAAA,gBAAA,CAAiB,QAAA,CAAS;AAAA,MACtB,OAAA,EAAS,EAAE,GAAG,KAAA,CAAM,SAAS,CAAC,GAAG,GAAG,QAAA,EAAS;AAAA,MAC7C,kBAAA,EAAoB,EAAE,GAAG,KAAA,CAAM,oBAAoB,CAAC,GAAG,GAAG,gBAAA,EAAiB;AAAA,MAC3E,IAAA,EAAM;AAAA,QACF,GAAG,KAAA,CAAM,IAAA;AAAA,QACT,CAAC,GAAG,GAAG,EAAE,kBAAkB,QAAA;AAAS;AACxC,KACH,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,4BAA4B,mBAAA,EAA8B;AACtD,IAAA,MAAM,KAAA,GAAQ,iBAAiB,QAAA,EAAS;AAExC,IAAA,IAAI,CAAC,mBAAA,EAAqB;AACtB,MAAA,gBAAA,CAAiB,QAAA,CAAS,EAAE,kBAAA,EAAoB,IAAI,CAAA;AACpD,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,GAAA,GAAM,OAAO,mBAAmB,CAAA;AACtC,IAAA,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAA,KAAS,KAAA,CAAM,kBAAA;AACpC,IAAA,gBAAA,CAAiB,QAAA,CAAS,EAAE,kBAAA,EAAoB,IAAA,EAAM,CAAA;AAAA,EAC1D,CAAA;AAAA,EAEA,kCAAkC,mBAAA,EAA8B;AAC5D,IAAA,IAAI,CAAC,mBAAA,EAAqB;AACtB,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,GAAA,GAAM,OAAO,mBAAmB,CAAA;AACtC,IAAA,MAAM,KAAA,GAAQ,iBAAiB,QAAA,EAAS;AACxC,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,kBAAA,CAAmB,GAAG,KAAK,EAAC;AACtD,IAAA,MAAM,MAAA,GAAS,YAAY,CAAC,CAAA;AAE5B,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,mBAAA,CAAoB,MAAM,CAAA,EAAG;AACzC,MAAA;AAAA,IACJ;AAEA,IAAA,gBAAA,CAAiB,QAAA,CAAS;AAAA,MACtB,kBAAA,EAAoB,EAAE,GAAG,KAAA,CAAM,kBAAA,EAAoB,CAAC,GAAG,GAAG,WAAA,CAAY,KAAA,CAAM,CAAC,CAAA;AAAE,KAClF,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,MAAM,yBAAA,CAA0B,QAAA,EAAe,KAAA,EAAa;AACxD,IAAA,MAAM,GAAA,GAAM,aAAa,KAAK,CAAA;AAC9B,IAAA,MAAM,KAAA,GAAQ,iBAAiB,QAAA,EAAS;AACxC,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AACvC,IAAA,IAAI,IAAA,GAAc,KAAA,CAAM,kBAAA,CAAmB,GAAG,KAAK,EAAC;AAEpD,IAAA,IAAI,aAAA,EAAe,IAAA,EAAM,KAAA,GAAQ,CAAA,EAAG;AAChC,MAAA,IAAI,aAAa,SAAA,EAAW;AACxB,QAAA,MAAM,GAAA,GAAM,eAAe,IAAA,EAAM,OAAA,EAAS,QAAQ,MAAA,CAAO,CAAC,KAAU,IAAA,KAAc;AAC9E,UAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AACd,YAAA,GAAA,CAAI,IAAA,CAAK,GAAG,CAAA,GAAI,SAAA;AAAA,UACpB;AACA,UAAA,OAAO,GAAA;AAAA,QACX,CAAA,EAAG,EAAE,CAAA;AACL,QAAA,IAAA,GAAO,CAAC,GAAA,EAAK,GAAG,IAAI,CAAA;AAAA,MACxB,CAAA,MAAA,IAAW,UAAU,IAAA,EAAM;AACvB,QAAA,MAAM,OAAO,QAAA,EAAU,IAAA;AACvB,QAAA,IAAI,CAAC,IAAA,EAAM;AACP,UAAA,gBAAA,CAAiB,QAAA,CAAS;AAAA,YACtB,kBAAA,EAAoB,EAAE,GAAG,KAAA,CAAM,oBAAoB,CAAC,GAAG,GAAG,EAAC;AAAE,WAChE,CAAA;AACD,UAAA;AAAA,QACJ;AAEA,QAAA,MAAM,MAAM,MAAA,CAAO,WAAA,CAAY,OAAO,OAAA,CAAQ,IAAI,EAAE,GAAA,CAAI,CAAC,CAAC,CAAA,EAAG,KAAK,MAAW,CAAC,CAAA,EAAG,OAAO,KAAA,IAAS,KAAK,CAAC,CAAC,CAAA;AAExG,QAAA,IAAA,GAAO,CAAC,GAAG,IAAI,CAAA;AACf,QAAA,IAAI,IAAA,CAAK,SAAS,CAAA,EAAG;AACjB,UAAA,IAAA,CAAK,CAAC,CAAA,GAAI,GAAA;AAAA,QACd,CAAA,MAAO;AACH,UAAA,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,QACjB;AAAA,MACJ;AAAA,IACJ;AAEA,IAAA,gBAAA,CAAiB,QAAA,CAAS;AAAA,MACtB,kBAAA,EAAoB,EAAE,GAAG,KAAA,CAAM,oBAAoB,CAAC,GAAG,GAAG,IAAA;AAAK,KAClE,CAAA;AAAA,EACL;AACJ","file":"chunk-2OLIVT2F.js","sourcesContent":["import { createStore } from './store'\n\nexport interface ObjectState {\n object: any\n id: string\n}\n\nconst OBJECT_DATA_META_KEYS = new Set(['createdAt', 'updatedAt', 'id'])\n\nexport const objectStore = createStore<ObjectState>({\n object: null,\n id: ''\n})\n\nfunction resolveRecordId(source: any, data?: any): string {\n const fromSource = source?.params?.id ?? source?.recordId ?? source?.id\n if (fromSource != null && fromSource !== '') {\n return String(fromSource)\n }\n\n const fromData = data?.id ?? data?.hs_object_id?.value ?? data?.hs_object_id\n if (fromData != null && fromData !== '') {\n return String(fromData)\n }\n\n return ''\n}\n\nfunction isObjectField(key: string, value: unknown): boolean {\n if (OBJECT_DATA_META_KEYS.has(key) || key === 'associations') {\n return false\n }\n\n if (value == null || typeof value !== 'object' || Array.isArray(value)) {\n return false\n }\n\n const field = value as Record<string, unknown>\n return 'fieldType' in field || 'isEditableField' in field || 'isPrimaryDisplayProperty' in field || 'value' in field\n}\n\nfunction mergeObjectFields(existing: Record<string, any>, data: Record<string, any>): Record<string, any> {\n const next = { ...existing }\n\n for (const [key, value] of Object.entries(data)) {\n if (!isObjectField(key, value)) {\n continue\n }\n\n const existingField = existing[key]\n next[key] =\n existingField != null && typeof existingField === 'object' && !Array.isArray(existingField)\n ? { ...existingField, ...(value as Record<string, unknown>) }\n : value\n }\n\n return next\n}\n\nfunction patchAssociationRecord(associations: Record<string, any>, recordId: string, data: Record<string, any>): Record<string, any> | null {\n for (const [key, group] of Object.entries(associations)) {\n const rows = group?.data\n if (!Array.isArray(rows)) {\n continue\n }\n\n const index = rows.findIndex((row: any) => resolveRecordId(row, row) === recordId)\n if (index === -1) {\n continue\n }\n\n const nextRows = [...rows]\n nextRows[index] = mergeObjectFields(rows[index] ?? {}, data)\n\n return {\n ...associations,\n [key]: {\n ...group,\n data: nextRows\n }\n }\n }\n\n return null\n}\n\nfunction resolveAssociationObjectTypeId(props?: any): string {\n const objectTypeId = props?.params?.hubspotObjectTypeId ?? props?.hubspotObjectTypeId\n return objectTypeId != null && objectTypeId !== '' ? String(objectTypeId) : ''\n}\n\nfunction findAssociationGroupKey(associations: Record<string, any>, objectTypeId: string): string | undefined {\n for (const [key, group] of Object.entries(associations)) {\n if (group?.objectTypeId != null && String(group.objectTypeId) === objectTypeId) {\n return key\n }\n }\n\n for (const key of Object.keys(associations)) {\n if (key === objectTypeId || key.startsWith(`${objectTypeId}_`)) {\n return key\n }\n }\n\n return undefined\n}\n\nfunction isLoadingAssociationRow(row: any): boolean {\n if (!row || typeof row !== 'object') {\n return false\n }\n\n const values = Object.values(row)\n if (values.length === 0) {\n return false\n }\n\n return values.every((value) => value === 'loading' || (value != null && typeof value === 'object' && !Array.isArray(value) && (value as any).value === 'loading'))\n}\n\nfunction toLoadingAssociationRow(template?: any): Record<string, any> {\n if (template != null && typeof template === 'object' && !Array.isArray(template)) {\n return Object.fromEntries(\n Object.entries(template).map(([key, value]) => {\n if (value != null && typeof value === 'object' && !Array.isArray(value) && 'value' in (value as object)) {\n return [key, { ...(value as Record<string, unknown>), value: 'loading' }]\n }\n\n return [key, 'loading']\n })\n )\n }\n\n return { name: { value: 'loading' } }\n}\n\nfunction toAssociationRow(data: Record<string, any>): Record<string, any> {\n const row: Record<string, any> = {}\n\n for (const [key, value] of Object.entries(data)) {\n if (!isObjectField(key, value)) {\n continue\n }\n\n row[key] = value\n }\n\n return row\n}\n\nfunction setAssociationGroup(state: ObjectState, associations: Record<string, any>, key: string, group: any, rows: any[], total?: number) {\n objectStore.setState({\n object: {\n ...state.object,\n data: {\n ...state.object.data,\n associations: {\n ...associations,\n [key]: {\n ...group,\n data: rows,\n ...(total != null ? { total } : {})\n }\n }\n }\n }\n })\n}\n\nexport const actions = {\n setObjectData(response: any, payload?: any) {\n const data = response?.data\n const id = resolveRecordId(payload, data)\n\n objectStore.setState({\n object: response ?? null,\n id\n })\n },\n\n updateObjectData(response: any, payload?: any) {\n const data = response?.data\n const recordId = resolveRecordId(payload, data)\n const state = objectStore.getState()\n\n if (!data || !state.object) {\n return response\n }\n\n const existingData = state.object.data ?? {}\n const associations = existingData.associations\n const isParentRecordUpdate = !state.id || !recordId || state.id === recordId\n\n if (!isParentRecordUpdate) {\n const nextAssociations = associations && typeof associations === 'object' ? patchAssociationRecord(associations, recordId, data) : null\n\n if (!nextAssociations) {\n return response\n }\n\n objectStore.setState({\n object: {\n ...state.object,\n data: {\n ...existingData,\n associations: nextAssociations\n }\n }\n })\n\n return response\n }\n\n const nextData = mergeObjectFields(existingData, data)\n\n objectStore.setState({\n object: {\n ...state.object,\n data: nextData,\n ...(response?.configurations != null ? { configurations: response.configurations } : {}),\n ...(response?.info != null ? { info: response.info } : {})\n },\n id: state.id || recordId\n })\n\n return response\n },\n\n async setObjectAssociationPrependData(response: any, props?: any) {\n const state = objectStore.getState()\n const associations = state.object?.data?.associations\n const objectTypeId = resolveAssociationObjectTypeId(props)\n\n if (!associations || typeof associations !== 'object' || !objectTypeId) {\n return\n }\n\n const key = findAssociationGroupKey(associations, objectTypeId)\n if (!key) {\n return\n }\n\n const group = associations[key]\n const rows = Array.isArray(group?.data) ? [...group.data] : []\n\n if (response === 'loading') {\n rows.unshift(toLoadingAssociationRow(rows[0]))\n setAssociationGroup(state, associations, key, group, rows)\n return\n }\n\n const data = response?.data\n if (!data) {\n return\n }\n\n const hadLoading = isLoadingAssociationRow(rows[0])\n const row = toAssociationRow(data)\n if (hadLoading) {\n rows[0] = row\n } else {\n rows.unshift(row)\n }\n\n const baseTotal = typeof group?.total === 'number' ? group.total : Math.max((Array.isArray(group?.data) ? group.data.length : 0) - (hadLoading ? 1 : 0), 0)\n setAssociationGroup(state, associations, key, group, rows, baseTotal + 1)\n },\n\n clearLatestObjectAssociationPrependData(props?: any) {\n const state = objectStore.getState()\n const associations = state.object?.data?.associations\n const objectTypeId = resolveAssociationObjectTypeId(props)\n\n if (!associations || typeof associations !== 'object' || !objectTypeId) {\n return\n }\n\n const key = findAssociationGroupKey(associations, objectTypeId)\n if (!key) {\n return\n }\n\n const group = associations[key]\n const rows = Array.isArray(group?.data) ? group.data : []\n if (rows.length === 0 || !isLoadingAssociationRow(rows[0])) {\n return\n }\n\n setAssociationGroup(state, associations, key, group, rows.slice(1))\n },\n\n clearObjectData() {\n objectStore.setState({\n object: null,\n id: ''\n })\n }\n}\n","import { createStore } from './store'\nimport { isLoadingPrependRow } from './prepend-row'\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?.params?.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?.queryParams?.selectedPipeline ?? ''\n const viewType = response?.info?.viewType ?? ''\n const prevMeta = state.meta[key]\n\n if (response?.data?.total < 1 || payload?.queryParams?.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 clearLatestMultiObjectPrependData(hubspotObjectTypeId?: string) {\n if (!hubspotObjectTypeId) {\n return\n }\n\n const key = String(hubspotObjectTypeId)\n const state = multiObjectStore.getState()\n const prependRows = state.objectsPrependData[key] ?? []\n const latest = prependRows[0]\n\n if (!latest || !isLoadingPrependRow(latest)) {\n return\n }\n\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: prependRows.slice(1) }\n })\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((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = 'loading'\n }\n return acc\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(Object.entries(data).map(([k, value]: any) => [k, value?.value ?? value]))\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"]}