taxtank-core 0.32.119 → 0.32.121
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/esm2022/lib/collections/chat/chat.collection.mjs +1 -19
- package/esm2022/lib/services/http/chat/chat.service.mjs +5 -5
- package/esm2022/lib/services/http/chat/message.service.mjs +5 -1
- package/esm2022/lib/services/pdf/pdf-from-dom-element/file-settings.mjs +2 -1
- package/fesm2022/taxtank-core.mjs +32 -43
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/lib/collections/chat/chat.collection.d.ts +1 -5
- package/lib/services/http/chat/message.service.d.ts +2 -0
- package/package.json +1 -1
@@ -1,26 +1,8 @@
|
|
1
1
|
import { Collection } from '../collection';
|
2
|
-
import { Dictionary } from '../../models';
|
3
|
-
import { MessageCollection } from './message.collection';
|
4
|
-
import uniqBy from 'lodash/uniqBy';
|
5
|
-
import differenceBy from 'lodash/differenceBy';
|
6
2
|
import { ChatStatusEnum } from '../../db/Enums/chat-status.enum';
|
7
3
|
export class ChatCollection extends Collection {
|
8
|
-
/**
|
9
|
-
* Sort chats by last messages (newest first) + empty chats in the end
|
10
|
-
*/
|
11
|
-
getSortedByNewest(messages) {
|
12
|
-
const chatsById = new Dictionary(this.toArray());
|
13
|
-
// get chats array sorted from newest to oldest
|
14
|
-
const chats = uniqBy(new MessageCollection(messages)
|
15
|
-
.filterBy('chat.id', this.getIds())
|
16
|
-
.sortBy('createdAt')
|
17
|
-
.toArray()
|
18
|
-
.map((message) => chatsById.get(message.chat.id)), 'id');
|
19
|
-
const emptyChats = differenceBy(this.toArray(), chats, 'id');
|
20
|
-
return this.create([...chats, ...emptyChats]);
|
21
|
-
}
|
22
4
|
getActive() {
|
23
5
|
return this.filterBy('status', ChatStatusEnum.ACTIVE);
|
24
6
|
}
|
25
7
|
}
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NoYXQvY2hhdC5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBZ0I7SUFDbEQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IENoYXQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ2hhdFN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGF0LXN0YXR1cy5lbnVtJztcblxuZXhwb3J0IGNsYXNzIENoYXRDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxDaGF0PiB7XG4gIGdldEFjdGl2ZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgnc3RhdHVzJywgQ2hhdFN0YXR1c0VudW0uQUNUSVZFKTtcbiAgfVxufVxuIl19
|
@@ -65,12 +65,12 @@ export class ChatService extends RestService {
|
|
65
65
|
const message = messages[0];
|
66
66
|
const cache = this.cache.toArray();
|
67
67
|
const updatedChat = cache.find((chat) => chat?.id === message.chat?.id);
|
68
|
-
|
69
|
-
if (!updatedChat) {
|
68
|
+
if (!updatedChat || !cache.indexOf(updatedChat)) {
|
70
69
|
return;
|
71
70
|
}
|
72
|
-
|
73
|
-
|
71
|
+
// sort chats by the last message date
|
72
|
+
cache.unshift(cache.splice(cache.indexOf(updatedChat), 1)[0]);
|
73
|
+
this.setCache(cache, true);
|
74
74
|
}, ['post']);
|
75
75
|
}
|
76
76
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
85
85
|
type: Inject,
|
86
86
|
args: ['environment']
|
87
87
|
}] }]; } });
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvY2hhdC9jaGF0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVyQzs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFZLFNBQVEsV0FBMkM7SUFNMUUsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTDdELGVBQVUsR0FBZ0IsSUFBSSxDQUFDO1FBQy9CLG9CQUFlLEdBQTBCLGNBQWMsQ0FBQztRQUN4RCxnQkFBVyxHQUFHLE9BQU8sQ0FBQztRQUN0QixvQkFBZSxHQUFpQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFJaEcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQWUsSUFBSSxDQUFDLE1BQU07UUFDNUIs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QUUsTUFBTTtpQkFDbkI7OzBCQU9jLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhdCBhcyBDaGF0QmFzZSB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ2hhdCwgTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBDaGF0Q29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogU2VydmljZSBmb3Igd29yayB3aXRoIGNoYXRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXRTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8Q2hhdEJhc2UsIENoYXQsIENoYXRDb2xsZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIENoYXQgPSBDaGF0O1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDaGF0Q29sbGVjdGlvbiA9IENoYXRDb2xsZWN0aW9uO1xuICBlbmRwb2ludFVyaSA9ICdjaGF0cyc7XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydwb3N0JywgJ3Bvc3RCYXRjaCcsICdwdXQnLCAncHV0QmF0Y2gnLCAnZGVsZXRlJywgJ2RlbGV0ZUJhdGNoJ107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIHN1cGVyKGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCkge1xuICAgIHRoaXMubGlzdGVuQ2hhdHMoKTtcbiAgICB0aGlzLmxpc3Rlbk1lc3NhZ2VzKCk7XG4gIH1cblxuICBnZXQocGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPENoYXRDb2xsZWN0aW9uPiB7XG4gICAgLy8gdXNlcnMgY29udGFjdCB0dEFkdmlzb3IgdGhyb3VnaCBpbnRlcmNvbSBzdXBwb3J0XG4gICAgcmV0dXJuIHN1cGVyLmdldChwYXRoKS5waXBlKFxuICAgICAgbWFwKChjaGF0cykgPT4gY2hhdHMuZmlsdGVyKChjaGF0KSA9PiBjaGF0LmVtcGxveWVlLmVtYWlsICE9PSB0aGlzLmVudmlyb25tZW50LnR0QWR2aXNvcikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZWZhY3RvciB3aXRoIGxpc3RlblNTRSBtZXRob2RcbiAgICovXG4gIGxpc3RlbkNoYXRzKCk6IHZvaWQge1xuICAgIHRoaXMuc3NlU2VydmljZS5vbihgY2hhdHNgKS5zdWJzY3JpYmUoKGNoYXRCYXNlOiBDaGF0QmFzZSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgYXJyYXk6IENoYXRbXSA9IHRoaXMuY2FjaGUudG9BcnJheSgpO1xuICAgICAgLy8gY2hhdCBpbnN0YW5jZSBmcm9tIGV2ZW50XG4gICAgICBjb25zdCBldmVudENoYXQ6IENoYXQgPSBwbGFpblRvQ2xhc3MoQ2hhdCwgY2hhdEJhc2UpO1xuICAgICAgLy8gY2hhdCBpbnN0YW5jZSBmcm9tIGNhY2hlXG4gICAgICBjb25zdCBjYWNoZWRDaGF0OiBDaGF0ID0gYXJyYXkuZmluZCgoY2hhdDogQ2hhdCk6IGJvb2xlYW4gPT4gY2hhdC5pZCA9PT0gZXZlbnRDaGF0LmlkKTtcblxuICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgIC8vIGFkZCBuZXcgY2hhdFxuICAgICAgICBjYXNlICghY2FjaGVkQ2hhdCk6XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbZXZlbnRDaGF0XSwgJ3Bvc3QnKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICAvLyByZW1vdmUgZGVhY3RpdmF0ZWQgY2hhdFxuICAgICAgICBjYXNlICFldmVudENoYXQuaXNBY3RpdmUoKTpcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtldmVudENoYXRdLCAnZGVsZXRlJyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgLy8gdXBkYXRlIGNoYXQgd2l0aCBuZXcgZmlybSAocmVhc3NpZ24pXG4gICAgICAgIGNhc2UgZXZlbnRDaGF0LmVtcGxveWVlLmlkICE9PSBjYWNoZWRDaGF0LmVtcGxveWVlLmlkOlxuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW2V2ZW50Q2hhdF0sICdwdXQnKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICAvLyBAVE9ETyB0eXBpbmcgd29ya3MgYmFkIHdpdGggbWF0LXRhYnMgb24gdXNlci1hcmVhLiBOZWVkIHRvIHJlZmFjdG9yIHR5cGluZyBmdW5jdGlvbmFsaXR5XG4gICAgICAgIC8vIHVwZGF0ZSBjYWNoZSB3aXRoIHR5cGluZyB1c2VyXG4gICAgICAgIC8vIGRlZmF1bHQ6XG4gICAgICAgIC8vIGNhY2hlZENoYXQudHlwaW5nVXNlcnMucHVzaChuZXcgVXNlcihldmVudENoYXQudHlwaW5nVXNlcikpO1xuICAgICAgICAvLyByZXBsYWNlKGNhY2hlLCBfLmNsb25lKGNhY2hlZENoYXQpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2hhdCdzICd1cGRhdGVkQXQnIGZpZWxkIHdpdGggdGhlIGxhc3QgY2hhdCdzIG1lc3NhZ2UgZGF0ZSBmb3IgY2hhdCBsaXN0IHNvcnRpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuTWVzc2FnZXMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoTWVzc2FnZSwgKG1lc3NhZ2VzOiBNZXNzYWdlW10pID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2UgPSBtZXNzYWdlc1swXTtcbiAgICAgIGNvbnN0IGNhY2hlOiBDaGF0W10gPSB0aGlzLmNhY2hlLnRvQXJyYXkoKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRDaGF0OiBDaGF0ID0gY2FjaGUuZmluZCgoY2hhdDogQ2hhdCk6IGJvb2xlYW4gPT4gY2hhdD8uaWQgPT09IG1lc3NhZ2UuY2hhdD8uaWQpO1xuICAgICAgaWYgKCF1cGRhdGVkQ2hhdCB8fCAhY2FjaGUuaW5kZXhPZih1cGRhdGVkQ2hhdCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBzb3J0IGNoYXRzIGJ5IHRoZSBsYXN0IG1lc3NhZ2UgZGF0ZVxuICAgICAgY2FjaGUudW5zaGlmdChjYWNoZS5zcGxpY2UoY2FjaGUuaW5kZXhPZih1cGRhdGVkQ2hhdCksIDEpWzBdKTtcbiAgICAgIHRoaXMuc2V0Q2FjaGUoY2FjaGUsIHRydWUpO1xuICAgIH0sIFsncG9zdCddKTtcbiAgfVxufVxuIl19
|
@@ -2,6 +2,7 @@ import { Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { Message } from '../../../models';
|
3
3
|
import { RestService } from '../rest';
|
4
4
|
import { MessageCollection } from '../../../collections';
|
5
|
+
import { map } from 'rxjs/operators';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
/**
|
7
8
|
* Service for work with messages
|
@@ -20,6 +21,9 @@ export class MessageService extends RestService {
|
|
20
21
|
listenEvents() {
|
21
22
|
this.listenSSE();
|
22
23
|
}
|
24
|
+
getUnreadChatsAmount() {
|
25
|
+
return this.get().pipe(map((messages) => messages.getUnreadChatsAmount()));
|
26
|
+
}
|
23
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
24
28
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageService, providedIn: 'root' }); }
|
25
29
|
}
|
@@ -32,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
32
36
|
type: Inject,
|
33
37
|
args: ['environment']
|
34
38
|
}] }]; } });
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvY2hhdC9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVyQzs7R0FFRztBQUlILE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBb0Q7SUFPdEYsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTjdELGVBQVUsR0FBbUIsT0FBTyxDQUFDO1FBQ3JDLG9CQUFlLEdBQTZCLGlCQUFpQixDQUFDO1FBQzlELGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELGlCQUFZLEdBQUcsVUFBVSxDQUFDO1FBSXhCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDOytHQWxCVSxjQUFjLGtCQU9MLGFBQWE7bUhBUHRCLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlIGFzIE1lc3NhZ2VCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0JztcbmltcG9ydCB7IE1lc3NhZ2VDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB3b3JrIHdpdGggbWVzc2FnZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxNZXNzYWdlQmFzZSwgTWVzc2FnZSwgTWVzc2FnZUNvbGxlY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgTWVzc2FnZSA9IE1lc3NhZ2U7XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIE1lc3NhZ2VDb2xsZWN0aW9uID0gTWVzc2FnZUNvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ21lc3NhZ2VzJztcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3Bvc3RCYXRjaCcsICdwdXRCYXRjaCddO1xuICBtZXJjdXJlVG9waWMgPSAnbWVzc2FnZXMnO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLmxpc3RlblNTRSgpO1xuICB9XG5cbiAgZ2V0VW5yZWFkQ2hhdHNBbW91bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgobWVzc2FnZXMpID0+IG1lc3NhZ2VzLmdldFVucmVhZENoYXRzQW1vdW50KCkpKTtcbiAgfVxufVxuIl19
|
@@ -4,6 +4,7 @@
|
|
4
4
|
export const FILE_SETTINGS = {
|
5
5
|
margin: 10,
|
6
6
|
filename: 'export.pdf',
|
7
|
+
image: { type: 'jpeg', quality: 0.20 },
|
7
8
|
html2canvas: {
|
8
9
|
scale: 2,
|
9
10
|
useCORS: true,
|
@@ -18,4 +19,4 @@ export const FILE_SETTINGS = {
|
|
18
19
|
font: 'times'
|
19
20
|
}
|
20
21
|
};
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wZGYvcGRmLWZyb20tZG9tLWVsZW1lbnQvZmlsZS1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBMkI7SUFDbkQsTUFBTSxFQUFFLEVBQUU7SUFDVixRQUFRLEVBQUUsWUFBWTtJQUN0QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7SUFDdEMsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEVBQUUsSUFBSTtLQUNkO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLFdBQVc7S0FDbEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxJQUFJO1FBQ1osV0FBVyxFQUFFLFVBQVU7UUFDdkIsSUFBSSxFQUFFLE9BQU87S0FDZDtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNldHRpbmdzIGZvciBnZW5lcmF0ZWQgUERGIGZpbGUgZnJvbSBET00gZWxlbWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IEZJTEVfU0VUVElOR1M6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gIG1hcmdpbjogMTAsXG4gIGZpbGVuYW1lOiAnZXhwb3J0LnBkZicsXG4gIGltYWdlOiB7IHR5cGU6ICdqcGVnJywgcXVhbGl0eTogMC4yMCB9LFxuICBodG1sMmNhbnZhczoge1xuICAgIHNjYWxlOiAyLFxuICAgIHVzZUNPUlM6IHRydWUsXG4gIH0sXG4gIHBhZ2VicmVhazoge1xuICAgIG1vZGU6ICdhdm9pZC1hbGwnXG4gIH0sXG4gIGpzUERGOiB7XG4gICAgdW5pdDogJ21tJyxcbiAgICBmb3JtYXQ6ICdhMycsXG4gICAgb3JpZW50YXRpb246ICdwb3J0cmFpdCcsXG4gICAgZm9udDogJ3RpbWVzJ1xuICB9XG59XG4iXX0=
|
@@ -17,7 +17,6 @@ import uniqBy from 'lodash/uniqBy';
|
|
17
17
|
import first from 'lodash/first';
|
18
18
|
import last from 'lodash/last';
|
19
19
|
import orderBy from 'lodash/orderBy';
|
20
|
-
import differenceBy from 'lodash/differenceBy';
|
21
20
|
import uniq from 'lodash/uniq';
|
22
21
|
import moment from 'moment';
|
23
22
|
import { DateRange } from 'moment-range';
|
@@ -2102,6 +2101,30 @@ class Collection {
|
|
2102
2101
|
}
|
2103
2102
|
}
|
2104
2103
|
|
2104
|
+
var ChatStatusEnum;
|
2105
|
+
(function (ChatStatusEnum) {
|
2106
|
+
ChatStatusEnum[ChatStatusEnum["ACTIVE"] = 1] = "ACTIVE";
|
2107
|
+
ChatStatusEnum[ChatStatusEnum["INACTIVE"] = 2] = "INACTIVE";
|
2108
|
+
})(ChatStatusEnum || (ChatStatusEnum = {}));
|
2109
|
+
|
2110
|
+
class ChatCollection extends Collection {
|
2111
|
+
getActive() {
|
2112
|
+
return this.filterBy('status', ChatStatusEnum.ACTIVE);
|
2113
|
+
}
|
2114
|
+
}
|
2115
|
+
|
2116
|
+
/**
|
2117
|
+
* Collection of MessageDocument instances
|
2118
|
+
*/
|
2119
|
+
class MessageDocumentCollection extends Collection {
|
2120
|
+
/**
|
2121
|
+
* get list of documents which are not attached to any message
|
2122
|
+
*/
|
2123
|
+
getUnattached() {
|
2124
|
+
return new MessageDocumentCollection(this.items.filter((doc) => !doc.message));
|
2125
|
+
}
|
2126
|
+
}
|
2127
|
+
|
2105
2128
|
class MessageCollection extends Collection {
|
2106
2129
|
getFirstUnreadMessage(user) {
|
2107
2130
|
return this.items.find((message) => !message.isRead() && message.isFromEmployee() !== user.isEmployee());
|
@@ -2131,44 +2154,6 @@ class MessageCollection extends Collection {
|
|
2131
2154
|
}
|
2132
2155
|
}
|
2133
2156
|
|
2134
|
-
var ChatStatusEnum;
|
2135
|
-
(function (ChatStatusEnum) {
|
2136
|
-
ChatStatusEnum[ChatStatusEnum["ACTIVE"] = 1] = "ACTIVE";
|
2137
|
-
ChatStatusEnum[ChatStatusEnum["INACTIVE"] = 2] = "INACTIVE";
|
2138
|
-
})(ChatStatusEnum || (ChatStatusEnum = {}));
|
2139
|
-
|
2140
|
-
class ChatCollection extends Collection {
|
2141
|
-
/**
|
2142
|
-
* Sort chats by last messages (newest first) + empty chats in the end
|
2143
|
-
*/
|
2144
|
-
getSortedByNewest(messages) {
|
2145
|
-
const chatsById = new Dictionary(this.toArray());
|
2146
|
-
// get chats array sorted from newest to oldest
|
2147
|
-
const chats = uniqBy(new MessageCollection(messages)
|
2148
|
-
.filterBy('chat.id', this.getIds())
|
2149
|
-
.sortBy('createdAt')
|
2150
|
-
.toArray()
|
2151
|
-
.map((message) => chatsById.get(message.chat.id)), 'id');
|
2152
|
-
const emptyChats = differenceBy(this.toArray(), chats, 'id');
|
2153
|
-
return this.create([...chats, ...emptyChats]);
|
2154
|
-
}
|
2155
|
-
getActive() {
|
2156
|
-
return this.filterBy('status', ChatStatusEnum.ACTIVE);
|
2157
|
-
}
|
2158
|
-
}
|
2159
|
-
|
2160
|
-
/**
|
2161
|
-
* Collection of MessageDocument instances
|
2162
|
-
*/
|
2163
|
-
class MessageDocumentCollection extends Collection {
|
2164
|
-
/**
|
2165
|
-
* get list of documents which are not attached to any message
|
2166
|
-
*/
|
2167
|
-
getUnattached() {
|
2168
|
-
return new MessageDocumentCollection(this.items.filter((doc) => !doc.message));
|
2169
|
-
}
|
2170
|
-
}
|
2171
|
-
|
2172
2157
|
class ExportDataTable {
|
2173
2158
|
}
|
2174
2159
|
|
@@ -12095,12 +12080,12 @@ class ChatService extends RestService$1 {
|
|
12095
12080
|
const message = messages[0];
|
12096
12081
|
const cache = this.cache.toArray();
|
12097
12082
|
const updatedChat = cache.find((chat) => chat?.id === message.chat?.id);
|
12098
|
-
|
12099
|
-
if (!updatedChat) {
|
12083
|
+
if (!updatedChat || !cache.indexOf(updatedChat)) {
|
12100
12084
|
return;
|
12101
12085
|
}
|
12102
|
-
|
12103
|
-
|
12086
|
+
// sort chats by the last message date
|
12087
|
+
cache.unshift(cache.splice(cache.indexOf(updatedChat), 1)[0]);
|
12088
|
+
this.setCache(cache, true);
|
12104
12089
|
}, ['post']);
|
12105
12090
|
}
|
12106
12091
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChatService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
@@ -12133,6 +12118,9 @@ class MessageService extends RestService$1 {
|
|
12133
12118
|
listenEvents() {
|
12134
12119
|
this.listenSSE();
|
12135
12120
|
}
|
12121
|
+
getUnreadChatsAmount() {
|
12122
|
+
return this.get().pipe(map((messages) => messages.getUnreadChatsAmount()));
|
12123
|
+
}
|
12136
12124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
12137
12125
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageService, providedIn: 'root' }); }
|
12138
12126
|
}
|
@@ -18901,6 +18889,7 @@ class JsPdf extends jsPDF {
|
|
18901
18889
|
const FILE_SETTINGS$1 = {
|
18902
18890
|
margin: 10,
|
18903
18891
|
filename: 'export.pdf',
|
18892
|
+
image: { type: 'jpeg', quality: 0.20 },
|
18904
18893
|
html2canvas: {
|
18905
18894
|
scale: 2,
|
18906
18895
|
useCORS: true,
|