@athoscommerce/snap-store-mobx 1.2.3-beta.1 → 1.3.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.
- package/dist/cjs/Autocomplete/AutocompleteStore.js +2 -2
- package/dist/cjs/Search/Stores/index.d.ts +1 -1
- package/dist/cjs/Search/Stores/index.d.ts.map +1 -1
- package/dist/cjs/Search/Stores/index.js +1 -2
- package/dist/cjs/index.d.ts +0 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -5
- package/dist/cjs/types.d.ts +2 -13
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteStore.js +1 -1
- package/dist/esm/Search/Stores/index.d.ts +1 -1
- package/dist/esm/Search/Stores/index.d.ts.map +1 -1
- package/dist/esm/Search/Stores/index.js +1 -1
- package/dist/esm/index.d.ts +0 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/types.d.ts +2 -13
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/cjs/Chat/ChatStore.d.ts +0 -55
- package/dist/cjs/Chat/ChatStore.d.ts.map +0 -1
- package/dist/cjs/Chat/ChatStore.js +0 -368
- package/dist/cjs/Chat/Stores/ChatAttachmentStore.d.ts +0 -98
- package/dist/cjs/Chat/Stores/ChatAttachmentStore.d.ts.map +0 -1
- package/dist/cjs/Chat/Stores/ChatAttachmentStore.js +0 -312
- package/dist/cjs/Chat/Stores/ChatCompareStore.d.ts +0 -14
- package/dist/cjs/Chat/Stores/ChatCompareStore.d.ts.map +0 -1
- package/dist/cjs/Chat/Stores/ChatCompareStore.js +0 -63
- package/dist/cjs/Chat/Stores/ChatSessionStore.d.ts +0 -103
- package/dist/cjs/Chat/Stores/ChatSessionStore.d.ts.map +0 -1
- package/dist/cjs/Chat/Stores/ChatSessionStore.js +0 -612
- package/dist/esm/Chat/ChatStore.d.ts +0 -55
- package/dist/esm/Chat/ChatStore.d.ts.map +0 -1
- package/dist/esm/Chat/ChatStore.js +0 -309
- package/dist/esm/Chat/Stores/ChatAttachmentStore.d.ts +0 -98
- package/dist/esm/Chat/Stores/ChatAttachmentStore.d.ts.map +0 -1
- package/dist/esm/Chat/Stores/ChatAttachmentStore.js +0 -220
- package/dist/esm/Chat/Stores/ChatCompareStore.d.ts +0 -14
- package/dist/esm/Chat/Stores/ChatCompareStore.d.ts.map +0 -1
- package/dist/esm/Chat/Stores/ChatCompareStore.js +0 -49
- package/dist/esm/Chat/Stores/ChatSessionStore.d.ts +0 -103
- package/dist/esm/Chat/Stores/ChatSessionStore.d.ts.map +0 -1
- package/dist/esm/Chat/Stores/ChatSessionStore.js +0 -581
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { computed, makeObservable, observable } from 'mobx';
|
|
2
|
-
export class ChatCompareStore {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.items = [];
|
|
5
|
-
this.committedItems = [];
|
|
6
|
-
this.maxItems = 4;
|
|
7
|
-
makeObservable(this, {
|
|
8
|
-
items: observable,
|
|
9
|
-
committedItems: observable,
|
|
10
|
-
maxItems: observable,
|
|
11
|
-
compared: computed,
|
|
12
|
-
committed: computed,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
// add, remove, reset methods
|
|
16
|
-
add(item) {
|
|
17
|
-
// prevent adding the same product to the comparison twice
|
|
18
|
-
if (item.result?.id && this.items.some((existing) => existing.result?.id === item.result.id)) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (this.items.length >= this.maxItems) {
|
|
22
|
-
// handle max items reached, e.g. remove the oldest item
|
|
23
|
-
this.items.shift();
|
|
24
|
-
}
|
|
25
|
-
this.items.push(item);
|
|
26
|
-
}
|
|
27
|
-
remove(itemId) {
|
|
28
|
-
this.items = this.items.filter((item) => item.result?.id !== itemId);
|
|
29
|
-
}
|
|
30
|
-
reset() {
|
|
31
|
-
this.items = [];
|
|
32
|
-
}
|
|
33
|
-
resetCommitted() {
|
|
34
|
-
this.committedItems = [];
|
|
35
|
-
}
|
|
36
|
-
// move the current items to the committed list and clear items
|
|
37
|
-
commit() {
|
|
38
|
-
if (this.items.length > 0) {
|
|
39
|
-
this.committedItems = this.items.slice();
|
|
40
|
-
this.items = [];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
get compared() {
|
|
44
|
-
return this.items;
|
|
45
|
-
}
|
|
46
|
-
get committed() {
|
|
47
|
-
return this.committedItems;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import type { ChatResponseModel, ChatRequestModel, ChatResponseTextData, ChatResponseProductSearchResultData, ChatResponseInspirationResultData, ChatResponseContentData, ChatResponseProductAnswerData, ChatResponseProductComparisonData, ChatResponseProductRecommendationData, ChatResponseErrorData, ChatResponseTopicDriftData } from '@athoscommerce/snap-client';
|
|
2
|
-
import { ChatAttachmentAddAttachment, ChatAttachmentStore } from '../Stores/ChatAttachmentStore';
|
|
3
|
-
import type { StorageStore } from '../../Storage/StorageStore';
|
|
4
|
-
import { MetaResponseModel } from '@athoscommerce/snapi-types';
|
|
5
|
-
import { ChatCompareStore } from './ChatCompareStore';
|
|
6
|
-
export type ChatFeedbacks = {
|
|
7
|
-
messageId: string;
|
|
8
|
-
rating: 'UP' | 'DOWN';
|
|
9
|
-
};
|
|
10
|
-
export type ChatSessionFeedback = {
|
|
11
|
-
rating: 'UP' | 'DOWN';
|
|
12
|
-
};
|
|
13
|
-
export type ChatUserMessage = {
|
|
14
|
-
id: string;
|
|
15
|
-
messageType: 'user';
|
|
16
|
-
text: string;
|
|
17
|
-
attachments?: string[];
|
|
18
|
-
requestType?: string;
|
|
19
|
-
};
|
|
20
|
-
export type ChatProductQueryMessageData = {
|
|
21
|
-
id: string;
|
|
22
|
-
messageType: 'productQuery';
|
|
23
|
-
sourceProduct: any;
|
|
24
|
-
sourceMessageId?: string;
|
|
25
|
-
};
|
|
26
|
-
export type ChatSystemMessage = ChatResponseTextData | ChatResponseContentData | ChatResponseProductSearchResultData | ChatResponseInspirationResultData | ChatResponseProductAnswerData | ChatResponseProductComparisonData | ChatResponseProductRecommendationData | ChatResponseErrorData | ChatResponseTopicDriftData | ChatProductQueryMessageData;
|
|
27
|
-
export type ChatMessage = ChatUserMessage | ChatSystemMessage;
|
|
28
|
-
type ChatSessionStoreConfig = {
|
|
29
|
-
data?: {
|
|
30
|
-
id?: string;
|
|
31
|
-
sessionId?: string;
|
|
32
|
-
chat?: ChatMessage[];
|
|
33
|
-
attachments?: ChatAttachmentAddAttachment[];
|
|
34
|
-
actions?: ChatActions;
|
|
35
|
-
feedbacks?: ChatFeedbacks[];
|
|
36
|
-
sessionFeedback?: ChatSessionFeedback | null;
|
|
37
|
-
feedbackDismissed?: boolean;
|
|
38
|
-
createdAt?: Date;
|
|
39
|
-
committedComparisons?: any[];
|
|
40
|
-
};
|
|
41
|
-
stores: {
|
|
42
|
-
storage: StorageStore;
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
export type FacetsData = {
|
|
46
|
-
type: 'facets';
|
|
47
|
-
data: any;
|
|
48
|
-
};
|
|
49
|
-
export type ActionsData = {
|
|
50
|
-
type: 'actions';
|
|
51
|
-
data: any;
|
|
52
|
-
};
|
|
53
|
-
export type ChatActions = (FacetsData | ActionsData)[];
|
|
54
|
-
export declare class ChatSessionStore {
|
|
55
|
-
chat: ChatMessage[];
|
|
56
|
-
actions: ChatActions;
|
|
57
|
-
id: string;
|
|
58
|
-
sessionId?: string;
|
|
59
|
-
attachments: ChatAttachmentStore;
|
|
60
|
-
comparisons: ChatCompareStore;
|
|
61
|
-
storage: StorageStore;
|
|
62
|
-
feedbacks: ChatFeedbacks[];
|
|
63
|
-
sessionFeedback: ChatSessionFeedback | null;
|
|
64
|
-
feedbackDismissed: boolean;
|
|
65
|
-
feedbackJustGiven: boolean;
|
|
66
|
-
createdAt: Date;
|
|
67
|
-
requestType: string;
|
|
68
|
-
dismissedSideChatMessageId: string | null;
|
|
69
|
-
activeMessageId: string | null;
|
|
70
|
-
sessionLimitReached: boolean;
|
|
71
|
-
/** Whether raw stored results have been hydrated into Product/SearchResultStore instances. */
|
|
72
|
-
hydrated: boolean;
|
|
73
|
-
constructor(params: ChatSessionStoreConfig);
|
|
74
|
-
dismissSideChat(): void;
|
|
75
|
-
setActiveMessage(id: string): void;
|
|
76
|
-
pushProductQueryMessage(result: any): void;
|
|
77
|
-
popProductQueryMessage(restoreActiveMessageId?: string): void;
|
|
78
|
-
get isExpired(): boolean;
|
|
79
|
-
get topicDrift(): ChatResponseTopicDriftData | null;
|
|
80
|
-
get activeMessage(): ChatMessage | null;
|
|
81
|
-
dismissTopicDrift(): void;
|
|
82
|
-
handleTopicDrift(): string | undefined;
|
|
83
|
-
reset(): void;
|
|
84
|
-
private saveTimerId;
|
|
85
|
-
/** Persist the session to storage immediately (synchronous). */
|
|
86
|
-
saveImmediate(): void;
|
|
87
|
-
/**
|
|
88
|
-
* Schedule a save — multiple calls within the debounce window are coalesced
|
|
89
|
-
* into a single localStorage write.
|
|
90
|
-
*/
|
|
91
|
-
save(): void;
|
|
92
|
-
/** Remove oldest stored sessions when exceeding the limit. */
|
|
93
|
-
static pruneStoredSessions(storage: StorageStore, maxSessions?: number): void;
|
|
94
|
-
/** Re-wrap raw stored results as Product / SearchResultStore instances. */
|
|
95
|
-
hydrateResults(meta: MetaResponseModel): void;
|
|
96
|
-
request(request: ChatRequestModel): void;
|
|
97
|
-
update(data: {
|
|
98
|
-
chat: ChatResponseModel;
|
|
99
|
-
meta: MetaResponseModel;
|
|
100
|
-
}): void;
|
|
101
|
-
}
|
|
102
|
-
export {};
|
|
103
|
-
//# sourceMappingURL=ChatSessionStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSessionStore.d.ts","sourceRoot":"","sources":["../../../../src/Chat/Stores/ChatSessionStore.ts"],"names":[],"mappings":"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"}
|