woodsportal-client-sdk 1.1.4-dev.42 → 1.1.4-dev.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/angular/index.d.ts +6 -2
- package/dist/adapters/angular/index.js +4 -4
- package/dist/adapters/angular/index.js.map +1 -1
- package/dist/adapters/react/index.d.ts +6 -2
- package/dist/adapters/react/index.js +4 -4
- package/dist/adapters/react/index.js.map +1 -1
- package/dist/adapters/vue/index.d.ts +6 -2
- package/dist/adapters/vue/index.js +4 -4
- package/dist/adapters/vue/index.js.map +1 -1
- package/dist/{chunk-MFA4HYJU.js → chunk-A5LK4PTO.js} +68 -19
- package/dist/chunk-A5LK4PTO.js.map +1 -0
- package/dist/chunk-S7IOA4GI.js +17 -0
- package/dist/chunk-S7IOA4GI.js.map +1 -0
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/{use-sync-DYUphuPn.d.ts → use-uploader-dlc_3esL.d.ts} +14 -1
- package/package.json +1 -1
- package/dist/chunk-MFA4HYJU.js.map +0 -1
- package/dist/chunk-QKXHSA24.js +0 -16
- package/dist/chunk-QKXHSA24.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState } from '../../use-
|
|
1
|
+
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState } from '../../use-uploader-dlc_3esL.js';
|
|
2
2
|
|
|
3
3
|
declare const useTable: () => TableState & {
|
|
4
4
|
setObjectsData(response: any): Promise<void>;
|
|
@@ -30,5 +30,9 @@ declare const useSync: () => SyncState & {
|
|
|
30
30
|
setApiSync(status: boolean): void;
|
|
31
31
|
setSyncDisable(status: boolean): void;
|
|
32
32
|
};
|
|
33
|
+
declare const useUploader: () => UploaderState & {
|
|
34
|
+
setAttachment(response: any): void;
|
|
35
|
+
clearAttachments(): void;
|
|
36
|
+
};
|
|
33
37
|
|
|
34
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable };
|
|
38
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bindStoreWithActions } from '../../chunk-Y5MRAAGK.js';
|
|
2
|
-
import { createAdapterHooks } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
import { createAdapterHooks } from '../../chunk-S7IOA4GI.js';
|
|
3
|
+
import '../../chunk-A5LK4PTO.js';
|
|
4
4
|
import '../../chunk-NB7AINV4.js';
|
|
5
5
|
import { inject, DestroyRef, signal } from '@angular/core';
|
|
6
6
|
|
|
@@ -27,8 +27,8 @@ function createAngularStoreComposable(store, actions) {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/adapters/angular/index.ts
|
|
30
|
-
var { useTable, useMultiObjectActions, useNote, useEmail, useSync } = createAdapterHooks(createAngularStoreComposable);
|
|
30
|
+
var { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createAngularStoreComposable);
|
|
31
31
|
|
|
32
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable };
|
|
32
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
33
33
|
//# sourceMappingURL=index.js.map
|
|
34
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/shared/createAngularComposable.ts","../../../src/adapters/angular/index.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,4BAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,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;;;ACzBO,IAAM,EAAE,UAAU,qBAAA,EAAuB,OAAA,EAAS,UAAU,OAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/shared/createAngularComposable.ts","../../../src/adapters/angular/index.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,4BAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,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;;;ACzBO,IAAM,EAAE,UAAU,qBAAA,EAAuB,OAAA,EAAS,UAAU,OAAA,EAAS,WAAA,EAAY,GAAI,kBAAA,CAAmB,4BAA4B","file":"index.js","sourcesContent":["import { DestroyRef, inject, signal } from \"@angular/core\";\nimport { bindStoreWithActions, type SubscribableStore } from \"./bindStoreWithActions\";\n\nexport function createAngularStoreComposable<\n TState extends object,\n TActions extends object,\n>(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, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createAngularStoreComposable);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState } from '../../use-
|
|
1
|
+
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState } from '../../use-uploader-dlc_3esL.js';
|
|
2
2
|
|
|
3
3
|
declare const useTable: () => TableState & {
|
|
4
4
|
setObjectsData(response: any): Promise<void>;
|
|
@@ -30,5 +30,9 @@ declare const useSync: () => SyncState & {
|
|
|
30
30
|
setApiSync(status: boolean): void;
|
|
31
31
|
setSyncDisable(status: boolean): void;
|
|
32
32
|
};
|
|
33
|
+
declare const useUploader: () => UploaderState & {
|
|
34
|
+
setAttachment(response: any): void;
|
|
35
|
+
clearAttachments(): void;
|
|
36
|
+
};
|
|
33
37
|
|
|
34
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable };
|
|
38
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createAdapterHooks } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
import { createAdapterHooks } from '../../chunk-S7IOA4GI.js';
|
|
2
|
+
import '../../chunk-A5LK4PTO.js';
|
|
3
3
|
import '../../chunk-NB7AINV4.js';
|
|
4
4
|
import { useSyncExternalStore } from 'react';
|
|
5
5
|
|
|
@@ -11,8 +11,8 @@ function createReactStoreComposable(store, actions) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
// src/adapters/react/index.ts
|
|
14
|
-
var { useTable, useMultiObjectActions, useNote, useEmail, useSync } = createAdapterHooks(createReactStoreComposable);
|
|
14
|
+
var { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createReactStoreComposable);
|
|
15
15
|
|
|
16
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable };
|
|
16
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/shared/createReactComposable.ts","../../../src/adapters/react/index.ts"],"names":[],"mappings":";;;;;AAGO,SAAS,0BAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,QAAQ,oBAAA,CAAqB,KAAA,CAAM,WAAW,KAAA,CAAM,QAAA,EAAU,MAAM,QAAQ,CAAA;AAClF,IAAA,OAAO,EAAE,GAAG,KAAA,EAAO,GAAG,OAAA,EAAQ;AAAA,EAClC,CAAA;AACJ;;;ACRO,IAAM,EAAE,UAAU,qBAAA,EAAuB,OAAA,EAAS,UAAU,OAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/shared/createReactComposable.ts","../../../src/adapters/react/index.ts"],"names":[],"mappings":";;;;;AAGO,SAAS,0BAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,QAAQ,oBAAA,CAAqB,KAAA,CAAM,WAAW,KAAA,CAAM,QAAA,EAAU,MAAM,QAAQ,CAAA;AAClF,IAAA,OAAO,EAAE,GAAG,KAAA,EAAO,GAAG,OAAA,EAAQ;AAAA,EAClC,CAAA;AACJ;;;ACRO,IAAM,EAAE,UAAU,qBAAA,EAAuB,OAAA,EAAS,UAAU,OAAA,EAAS,WAAA,EAAY,GAAI,kBAAA,CAAmB,0BAA0B","file":"index.js","sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport type { SubscribableStore } from \"./bindStoreWithActions\";\n\nexport function createReactStoreComposable<\n TState extends object,\n TActions extends object,\n>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const state = useSyncExternalStore(store.subscribe, store.getState, store.getState);\n return { ...state, ...actions };\n };\n}\n","import { createAdapterHooks } from \"../shared/createAdapterHooks\";\nimport { createReactStoreComposable } from \"../shared/createReactComposable\";\n\nexport const { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createReactStoreComposable);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState } from '../../use-
|
|
1
|
+
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState } from '../../use-uploader-dlc_3esL.js';
|
|
2
2
|
|
|
3
3
|
declare const useTable: () => TableState & {
|
|
4
4
|
setObjectsData(response: any): Promise<void>;
|
|
@@ -30,5 +30,9 @@ declare const useSync: () => SyncState & {
|
|
|
30
30
|
setApiSync(status: boolean): void;
|
|
31
31
|
setSyncDisable(status: boolean): void;
|
|
32
32
|
};
|
|
33
|
+
declare const useUploader: () => UploaderState & {
|
|
34
|
+
setAttachment(response: any): void;
|
|
35
|
+
clearAttachments(): void;
|
|
36
|
+
};
|
|
33
37
|
|
|
34
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable };
|
|
38
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { bindStoreWithActions } from '../../chunk-Y5MRAAGK.js';
|
|
2
|
-
import { createAdapterHooks } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
import { createAdapterHooks } from '../../chunk-S7IOA4GI.js';
|
|
3
|
+
import '../../chunk-A5LK4PTO.js';
|
|
4
4
|
import '../../chunk-NB7AINV4.js';
|
|
5
5
|
import { reactive, onScopeDispose } from 'vue';
|
|
6
6
|
|
|
@@ -18,8 +18,8 @@ function createVueStoreComposable(store, actions) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// src/adapters/vue/index.ts
|
|
21
|
-
var { useTable, useMultiObjectActions, useNote, useEmail, useSync } = createAdapterHooks(createVueStoreComposable);
|
|
21
|
+
var { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createVueStoreComposable);
|
|
22
22
|
|
|
23
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable };
|
|
23
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
25
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/shared/createVueComposable.ts","../../../src/adapters/vue/index.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,wBAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,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;;;AChBO,IAAM,EAAE,UAAU,qBAAA,EAAuB,OAAA,EAAS,UAAU,OAAA,
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/shared/createVueComposable.ts","../../../src/adapters/vue/index.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,wBAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,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;;;AChBO,IAAM,EAAE,UAAU,qBAAA,EAAuB,OAAA,EAAS,UAAU,OAAA,EAAS,WAAA,EAAY,GAAI,kBAAA,CAAmB,wBAAwB","file":"index.js","sourcesContent":["import { onScopeDispose, reactive } from \"vue\";\nimport { bindStoreWithActions, type SubscribableStore } from \"./bindStoreWithActions\";\n\nexport function createVueStoreComposable<\n TState extends object,\n TActions extends object,\n>(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, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createVueStoreComposable);\n"]}
|
|
@@ -896,13 +896,48 @@ var actions = {
|
|
|
896
896
|
}
|
|
897
897
|
};
|
|
898
898
|
|
|
899
|
+
// src/store2/use-uploader.ts
|
|
900
|
+
var uploaderStore = createStore2({
|
|
901
|
+
attachments: []
|
|
902
|
+
});
|
|
903
|
+
function toAttachmentSummary(attachment) {
|
|
904
|
+
return {
|
|
905
|
+
createdAt: attachment.createdAt,
|
|
906
|
+
id: attachment.id,
|
|
907
|
+
name: attachment.name,
|
|
908
|
+
size: attachment.size,
|
|
909
|
+
type: attachment.type,
|
|
910
|
+
updatedAt: attachment.updatedAt
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
function resolveAttachmentsFromIds(attachmentIds, storedAttachments) {
|
|
914
|
+
const raw = typeof attachmentIds === "object" && attachmentIds !== null && "value" in attachmentIds ? attachmentIds.value : attachmentIds;
|
|
915
|
+
const ids = String(raw ?? "").split(";").map((id) => id.trim()).filter(Boolean);
|
|
916
|
+
return ids.map((id) => storedAttachments.find((a) => String(a.id) === id)).filter((a) => a != null).map(toAttachmentSummary);
|
|
917
|
+
}
|
|
918
|
+
var actions2 = {
|
|
919
|
+
setAttachment(response) {
|
|
920
|
+
const data = response?.data;
|
|
921
|
+
if (!data?.id) return;
|
|
922
|
+
const state = uploaderStore.getState();
|
|
923
|
+
const id = String(data.id);
|
|
924
|
+
const existing = state.attachments;
|
|
925
|
+
const index = existing.findIndex((item) => String(item.id) === id);
|
|
926
|
+
const attachments = index >= 0 ? existing.map((item, i) => i === index ? data : item) : [...existing, data];
|
|
927
|
+
uploaderStore.setState({ attachments });
|
|
928
|
+
},
|
|
929
|
+
clearAttachments() {
|
|
930
|
+
uploaderStore.setState({ attachments: [] });
|
|
931
|
+
}
|
|
932
|
+
};
|
|
933
|
+
|
|
899
934
|
// src/store2/use-note.ts
|
|
900
935
|
var noteStore = createStore2({
|
|
901
936
|
notes: [],
|
|
902
937
|
prependNotes: [],
|
|
903
938
|
id: ""
|
|
904
939
|
});
|
|
905
|
-
var
|
|
940
|
+
var actions3 = {
|
|
906
941
|
setNotes(response, payload) {
|
|
907
942
|
const state = noteStore.getState();
|
|
908
943
|
const rows = response?.data?.results?.rows ?? [];
|
|
@@ -942,11 +977,17 @@ var actions2 = {
|
|
|
942
977
|
prependNotes: []
|
|
943
978
|
});
|
|
944
979
|
}
|
|
945
|
-
const
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
980
|
+
const storedAttachments = uploaderStore.getState().attachments;
|
|
981
|
+
const row = Object.fromEntries(
|
|
982
|
+
Object.entries(data).map(([key, value]) => {
|
|
983
|
+
if (key === "hs_attachment_ids") {
|
|
984
|
+
return [
|
|
985
|
+
key,
|
|
986
|
+
resolveAttachmentsFromIds(value, storedAttachments)
|
|
987
|
+
];
|
|
988
|
+
}
|
|
989
|
+
return [key, value?.value ?? value];
|
|
990
|
+
})
|
|
950
991
|
);
|
|
951
992
|
rows = [...state.prependNotes];
|
|
952
993
|
if (rows.length > 0) {
|
|
@@ -963,6 +1004,7 @@ var actions2 = {
|
|
|
963
1004
|
noteStore.setState({
|
|
964
1005
|
prependNotes: []
|
|
965
1006
|
});
|
|
1007
|
+
actions2.clearAttachments();
|
|
966
1008
|
},
|
|
967
1009
|
async updatePrependNote(response) {
|
|
968
1010
|
const state = noteStore.getState();
|
|
@@ -991,7 +1033,7 @@ var emailStore = createStore2({
|
|
|
991
1033
|
prependEmails: [],
|
|
992
1034
|
id: ""
|
|
993
1035
|
});
|
|
994
|
-
var
|
|
1036
|
+
var actions4 = {
|
|
995
1037
|
setEmails(response, payload) {
|
|
996
1038
|
const state = emailStore.getState();
|
|
997
1039
|
const rows = response?.data?.results?.rows ?? [];
|
|
@@ -1031,11 +1073,17 @@ var actions3 = {
|
|
|
1031
1073
|
prependEmails: []
|
|
1032
1074
|
});
|
|
1033
1075
|
}
|
|
1034
|
-
const
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1076
|
+
const storedAttachments = uploaderStore.getState().attachments;
|
|
1077
|
+
const row = Object.fromEntries(
|
|
1078
|
+
Object.entries(data).map(([key, value]) => {
|
|
1079
|
+
if (key === "hs_attachment_ids") {
|
|
1080
|
+
return [
|
|
1081
|
+
key,
|
|
1082
|
+
resolveAttachmentsFromIds(value, storedAttachments)
|
|
1083
|
+
];
|
|
1084
|
+
}
|
|
1085
|
+
return [key, value?.value ?? value];
|
|
1086
|
+
})
|
|
1039
1087
|
);
|
|
1040
1088
|
rows = [...state.prependEmails];
|
|
1041
1089
|
if (rows.length > 0) {
|
|
@@ -1052,6 +1100,7 @@ var actions3 = {
|
|
|
1052
1100
|
emailStore.setState({
|
|
1053
1101
|
prependEmails: []
|
|
1054
1102
|
});
|
|
1103
|
+
actions2.clearAttachments();
|
|
1055
1104
|
},
|
|
1056
1105
|
async updatePrependEmail(response) {
|
|
1057
1106
|
const state = emailStore.getState();
|
|
@@ -1081,7 +1130,7 @@ var syncStore = createStore2({
|
|
|
1081
1130
|
isSyncLoading: false,
|
|
1082
1131
|
isSyncDisable: false
|
|
1083
1132
|
});
|
|
1084
|
-
var
|
|
1133
|
+
var actions5 = {
|
|
1085
1134
|
setIsSyncLoading(status) {
|
|
1086
1135
|
syncStore.setState({
|
|
1087
1136
|
isSyncLoading: status,
|
|
@@ -1109,8 +1158,8 @@ var actions4 = {
|
|
|
1109
1158
|
};
|
|
1110
1159
|
var resetAllStore = () => {
|
|
1111
1160
|
actions.clearTablePrependData();
|
|
1112
|
-
|
|
1113
|
-
|
|
1161
|
+
actions3.clearPrependNotes();
|
|
1162
|
+
actions4.clearPrependEmails();
|
|
1114
1163
|
};
|
|
1115
1164
|
|
|
1116
1165
|
// src/store2/use-multi-object.ts
|
|
@@ -1122,7 +1171,7 @@ var multiObjectStore = createStore2({
|
|
|
1122
1171
|
function getObjectKey(payload) {
|
|
1123
1172
|
return String(payload?.hubspotObjectTypeId ?? "");
|
|
1124
1173
|
}
|
|
1125
|
-
var
|
|
1174
|
+
var actions6 = {
|
|
1126
1175
|
setMultiObjectData(response, payload) {
|
|
1127
1176
|
const key = getObjectKey(payload);
|
|
1128
1177
|
const state = multiObjectStore.getState();
|
|
@@ -1208,6 +1257,6 @@ var actions5 = {
|
|
|
1208
1257
|
}
|
|
1209
1258
|
};
|
|
1210
1259
|
|
|
1211
|
-
export { actions, actions2, actions3, actions4, actions5, breadcrumbStage, decodeToBase64, emailStore, generatePath, generateUrl, getParam, getParamDetails, getPath, getRouteDetails, getRouteMenu, isMessingParent, isMessingParentLastItem, multiObjectStore, noteStore, resetAllStore, syncStore, tableStore2 as tableStore, useTable, useUpdateLink };
|
|
1212
|
-
//# sourceMappingURL=chunk-
|
|
1213
|
-
//# sourceMappingURL=chunk-
|
|
1260
|
+
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 };
|
|
1261
|
+
//# sourceMappingURL=chunk-A5LK4PTO.js.map
|
|
1262
|
+
//# sourceMappingURL=chunk-A5LK4PTO.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-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-A5LK4PTO.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\"];\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 { useTable } from \"../store/use-table\";\nimport { createStore } from \"./store\";\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 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 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 const hubspotObjectTypeId = payload?.hubspotObjectTypeId;\n const selectedPipeline = payload?.selectedPipeline;\n const viewType = response?.info?.viewType;\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 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 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\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?.data?.total > 1) {\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 state: any = noteStore.getState();\n const prependNotes = state.prependNotes || [];\n\n const note = response.data || null;\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 key,\n value?.value ?? value,\n ])\n ),\n }\n : item\n );\n\n noteStore.setState({\n prependNotes: notes\n });\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 state: any = emailStore.getState();\n const prependEmails = state.prependEmails || [];\n\n const email = response.data || null;\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 key,\n value?.value ?? value,\n ])\n ),\n }\n : item\n );\n\n emailStore.setState({\n prependEmails: emails\n });\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"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { uploaderStore, actions2, syncStore, actions5, emailStore, actions4, noteStore, actions3, multiObjectStore, actions6, tableStore, actions } from './chunk-A5LK4PTO.js';
|
|
2
|
+
|
|
3
|
+
// src/adapters/shared/createAdapterHooks.ts
|
|
4
|
+
function createAdapterHooks(createComposable) {
|
|
5
|
+
return {
|
|
6
|
+
useTable: createComposable(tableStore, actions),
|
|
7
|
+
useMultiObjectActions: createComposable(multiObjectStore, actions6),
|
|
8
|
+
useNote: createComposable(noteStore, actions3),
|
|
9
|
+
useEmail: createComposable(emailStore, actions4),
|
|
10
|
+
useSync: createComposable(syncStore, actions5),
|
|
11
|
+
useUploader: createComposable(uploaderStore, actions2)
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { createAdapterHooks };
|
|
16
|
+
//# sourceMappingURL=chunk-S7IOA4GI.js.map
|
|
17
|
+
//# sourceMappingURL=chunk-S7IOA4GI.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,EAAY,OAAY,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-S7IOA4GI.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"]}
|