@arthakosh/chat-widget 0.2.60 → 0.3.2
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/chat-launcher/chat-launcher.component.mjs +5 -4
- package/esm2022/lib/chat-widget-notification/chat-widget-notification.component.mjs +8 -27
- package/esm2022/lib/chat-widget.module.mjs +4 -23
- package/esm2022/lib/chat-widget.service.mjs +9 -7
- package/esm2022/lib/chat-window/chat-window.component.mjs +24 -4
- package/esm2022/lib/core/services/chat.service.mjs +1 -5
- package/esm2022/lib/core/services/socket.service.mjs +5 -2
- package/fesm2022/arthakosh-chat-widget.mjs +44 -109
- package/fesm2022/arthakosh-chat-widget.mjs.map +1 -1
- package/lib/chat-widget-notification/chat-widget-notification.component.d.ts +4 -9
- package/lib/chat-widget.module.d.ts +0 -2
- package/lib/chat-widget.service.d.ts +4 -2
- package/lib/core/services/chat.service.d.ts +0 -1
- package/lib/core/services/socket.service.d.ts +2 -0
- package/package.json +1 -1
- package/esm2022/lib/core/services/chat_widget_bootstrap.service.mjs +0 -37
- package/esm2022/lib/core/services/notification.service.mjs +0 -21
- package/lib/core/services/chat_widget_bootstrap.service.d.ts +0 -13
- package/lib/core/services/notification.service.d.ts +0 -11
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
1
|
+
import { inject, Inject, Injectable } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { CHAT_CONFIG } from "../config/chat.tokens";
|
|
4
|
+
import { ChatService } from "./chat.service";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class SocketService {
|
|
6
7
|
constructor(config) {
|
|
7
8
|
this.config = config;
|
|
8
9
|
this.listeners = new Map();
|
|
9
10
|
this.isConnected = false;
|
|
11
|
+
this.chatService = inject(ChatService);
|
|
10
12
|
this.connect();
|
|
11
13
|
}
|
|
12
14
|
connect() {
|
|
@@ -16,6 +18,7 @@ export class SocketService {
|
|
|
16
18
|
this.socket.onopen = () => {
|
|
17
19
|
this.isConnected = true;
|
|
18
20
|
console.log('[WS] Connected');
|
|
21
|
+
this.joinUserChannel(this.chatService.currentUser().userId);
|
|
19
22
|
};
|
|
20
23
|
this.socket.onmessage = (event) => {
|
|
21
24
|
const message = JSON.parse(event.data);
|
|
@@ -77,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
77
80
|
type: Inject,
|
|
78
81
|
args: [CHAT_CONFIG]
|
|
79
82
|
}] }] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NvcmUvc2VydmljZXMvc29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRWxELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGFBQWE7SUFPdEIsWUFBeUMsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUpuRCxjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFDdkQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDNUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFHOUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxPQUFPO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxNQUFNLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXZDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNoRCxNQUFNLE9BQU8sR0FBSyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFFbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFL0MsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUdGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQztZQUNwRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYSxFQUFFLElBQVU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0QsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBR0QsUUFBUSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBNEM7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELEVBQUUsQ0FBSSxLQUFhO1FBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixNQUFNLE9BQU8sR0FBRyxDQUFDLElBQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFekMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F0RlEsYUFBYSxrQkFPRixXQUFXO21IQVB0QixhQUFhLGNBREQsTUFBTTs7NEZBQ2xCLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFRZixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtDSEFUX0NPTkZJR30gZnJvbSBcIi4uL2NvbmZpZy9jaGF0LnRva2Vuc1wiO1xyXG5pbXBvcnQge0NoYXRDb25maWd9IGZyb20gXCIuLi9jb25maWcvY2hhdC1jb25maWdcIjtcclxuaW1wb3J0IHtDaGF0U2VydmljZX0gZnJvbSBcIi4vY2hhdC5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIFNvY2tldFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgc29ja2V0ITogV2ViU29ja2V0O1xyXG4gICAgcHJpdmF0ZSBsaXN0ZW5lcnMgPSBuZXcgTWFwPHN0cmluZywgKChkYXRhOiBhbnkpID0+IHZvaWQpW10+KCk7XHJcbiAgICBwcml2YXRlIGlzQ29ubmVjdGVkID0gZmFsc2U7XHJcbiAgICBjaGF0U2VydmljZSA9IGluamVjdChDaGF0U2VydmljZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChDSEFUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IENoYXRDb25maWcpIHtcclxuICAgICAgICB0aGlzLmNvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbm5lY3QoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQoYCR7dGhpcy5jb25maWcud3NCYXNlVXJsfS93cy9gKTtcclxuXHJcbiAgICAgICAgdGhpcy5zb2NrZXQub25vcGVuID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tXU10gQ29ubmVjdGVkJyk7XHJcbiAgICAgICAgICAgIHRoaXMuam9pblVzZXJDaGFubmVsKHRoaXMuY2hhdFNlcnZpY2UuY3VycmVudFVzZXIoKS51c2VySWQpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50VHlwZSA9IG1lc3NhZ2UudHlwZSB8fCBtZXNzYWdlLmV2ZW50O1xyXG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkICAgPSBtZXNzYWdlLnBheWxvYWQgPz8gbWVzc2FnZS5kYXRhO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLmxpc3RlbmVycy5nZXQoZXZlbnRUeXBlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChoYW5kbGVycyAmJiBoYW5kbGVycy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goaCA9PiBoKHBheWxvYWQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG5cclxuICAgICAgICB0aGlzLnNvY2tldC5vbmVycm9yID0gKGVycikgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbV1NdIEVycm9yJywgZXJyKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnNvY2tldC5vbmNsb3NlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW1dTXSBEaXNjb25uZWN0ZWQg4oCTIHJlY29ubmVjdGluZy4uLicpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29ubmVjdCgpLCAyMDAwKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGVtaXQoZXZlbnQ6IHN0cmluZywgZGF0YT86IGFueSkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCB8fCB0aGlzLnNvY2tldC5yZWFkeVN0YXRlICE9PSBXZWJTb2NrZXQuT1BFTikge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tXU10gTm90IGNvbm5lY3RlZC4gRHJvcHBpbmcgZXZlbnQ6JywgZXZlbnQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNvY2tldC5zZW5kKEpTT04uc3RyaW5naWZ5KHsgZXZlbnQsIGRhdGEgfSkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBqb2luUm9vbShyb29tSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZW1pdCgnam9pblJvb20nLCByb29tSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGpvaW5Vc2VyQ2hhbm5lbCh1c2VySWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZW1pdCgnam9pblVzZXJDaGFubmVsJywgdXNlcklkKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kTWVzc2FnZShkYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmVtaXQoJ3NlbmRNZXNzYWdlJywgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgbWVzc2FnZVNlZW4oZGF0YTogeyBjaGF0Um9vbUlkOiBzdHJpbmc7IHVzZXJJZDogc3RyaW5nIH0pIHtcclxuICAgICAgICB0aGlzLmVtaXQoJ21lc3NhZ2VTZWVuJywgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgb248VD4oZXZlbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWIgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGRhdGE6IFQpID0+IHN1Yi5uZXh0KGRhdGEpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmxpc3RlbmVycy5oYXMoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoZXZlbnQsIFtdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5nZXQoZXZlbnQpIS5wdXNoKGhhbmRsZXIpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFyciA9IHRoaXMubGlzdGVuZXJzLmdldChldmVudCkgfHwgW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoZXZlbnQsIGFyci5maWx0ZXIoaCA9PiBoICE9PSBoYW5kbGVyKSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gb25OZXdNZXNzYWdlKGNiOiAobXNnOiBhbnkpID0+IHZvaWQpIHtcclxuICAgIC8vICAgICB0aGlzLmFkZExpc3RlbmVyKCduZXdNZXNzYWdlJywgY2IpO1xyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIG9mZk5ld01lc3NhZ2UoY2I/OiAobXNnOiBhbnkpID0+IHZvaWQpIHtcclxuICAgIC8vICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKCduZXdNZXNzYWdlJywgY2IpO1xyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIG9uTWVzc2FnZVNlZW4oY2I6IChkYXRhOiB7IGNoYXRSb29tSWQ6IHN0cmluZzsgdXNlcklkOiBzdHJpbmcgfSkgPT4gdm9pZCkge1xyXG4gICAgLy8gICAgIHRoaXMuYWRkTGlzdGVuZXIoJ21lc3NhZ2VTZWVuJywgY2IpO1xyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIG9mZk1lc3NhZ2VTZWVuKGNiPzogKGRhdGE6IGFueSkgPT4gdm9pZCkge1xyXG4gICAgLy8gICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ21lc3NhZ2VTZWVuJywgY2IpO1xyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIHByaXZhdGUgYWRkTGlzdGVuZXIoZXZlbnQ6IHN0cmluZywgY2I6IChkYXRhOiBhbnkpID0+IHZvaWQpIHtcclxuICAgIC8vICAgICBpZiAoIXRoaXMubGlzdGVuZXJzLmhhcyhldmVudCkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5saXN0ZW5lcnMuc2V0KGV2ZW50LCBbXSk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMubGlzdGVuZXJzLmdldChldmVudCkhLnB1c2goY2IpO1xyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXIoZXZlbnQ6IHN0cmluZywgY2I/OiAoZGF0YTogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAvLyAgICAgaWYgKCFjYikge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmxpc3RlbmVycy5kZWxldGUoZXZlbnQpO1xyXG4gICAgLy8gICAgICAgICByZXR1cm47XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNvbnN0IGFyciA9IHRoaXMubGlzdGVuZXJzLmdldChldmVudCkgfHwgW107XHJcbiAgICAvLyAgICAgdGhpcy5saXN0ZW5lcnMuc2V0KGV2ZW50LCBhcnIuZmlsdGVyKGggPT4gaCAhPT0gY2IpKTtcclxuICAgIC8vIH1cclxufVxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Inject, Injectable, signal, EventEmitter, input,
|
|
2
|
+
import { InjectionToken, inject, Inject, Injectable, signal, EventEmitter, input, ViewChild, Output, Input, Component, effect, ViewEncapsulation, computed, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/forms';
|
|
@@ -35,6 +35,7 @@ class SocketService {
|
|
|
35
35
|
this.config = config;
|
|
36
36
|
this.listeners = new Map();
|
|
37
37
|
this.isConnected = false;
|
|
38
|
+
this.chatService = inject(ChatService);
|
|
38
39
|
this.connect();
|
|
39
40
|
}
|
|
40
41
|
connect() {
|
|
@@ -44,6 +45,7 @@ class SocketService {
|
|
|
44
45
|
this.socket.onopen = () => {
|
|
45
46
|
this.isConnected = true;
|
|
46
47
|
console.log('[WS] Connected');
|
|
48
|
+
this.joinUserChannel(this.chatService.currentUser().userId);
|
|
47
49
|
};
|
|
48
50
|
this.socket.onmessage = (event) => {
|
|
49
51
|
const message = JSON.parse(event.data);
|
|
@@ -248,10 +250,6 @@ class ChatService {
|
|
|
248
250
|
this.hasNewNotification.set(false);
|
|
249
251
|
}, 1200);
|
|
250
252
|
}
|
|
251
|
-
handleIncomingMessage(msg) {
|
|
252
|
-
this.notifications.update(n => [...n, msg]);
|
|
253
|
-
this.hasNewNotification.set(true);
|
|
254
|
-
}
|
|
255
253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatService, deps: [{ token: i1.HttpClient }, { token: CHAT_CONFIG }, { token: SocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
256
254
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatService, providedIn: 'root' }); }
|
|
257
255
|
}
|
|
@@ -288,9 +286,7 @@ class ChatWindowComponent {
|
|
|
288
286
|
this.hoveredReactionUsers = [];
|
|
289
287
|
}
|
|
290
288
|
ngOnInit() {
|
|
291
|
-
|
|
292
|
-
this.socket.joinRoom(this.chatRoomId);
|
|
293
|
-
}
|
|
289
|
+
this.socket.joinRoom(this.chatRoomId);
|
|
294
290
|
this.loadUsers();
|
|
295
291
|
this.loadMessages();
|
|
296
292
|
this.listenSocket();
|
|
@@ -315,10 +311,24 @@ class ChatWindowComponent {
|
|
|
315
311
|
if (msg.chatRoomId === this.chatRoomId) {
|
|
316
312
|
this.messages.update(list => [...list, msg]);
|
|
317
313
|
}
|
|
314
|
+
// if (msg.senderId !== this.chatService.currentUser().userId) {
|
|
315
|
+
// this.messageService.add({
|
|
316
|
+
// severity: 'info',
|
|
317
|
+
// summary: this.header,
|
|
318
|
+
// detail: msg.content ?? 'New message',
|
|
319
|
+
// life: 2500
|
|
320
|
+
// });
|
|
321
|
+
// }
|
|
318
322
|
});
|
|
319
323
|
this.socket.on('roomUserAdded').subscribe((msg) => {
|
|
320
324
|
if (msg.chatRoomId === this.chatRoomId) {
|
|
321
325
|
this.loadUsers();
|
|
326
|
+
// this.messageService.add({
|
|
327
|
+
// severity: 'info',
|
|
328
|
+
// summary: 'User Added',
|
|
329
|
+
// detail: msg.user?.userName,
|
|
330
|
+
// life: 2500
|
|
331
|
+
// });
|
|
322
332
|
}
|
|
323
333
|
});
|
|
324
334
|
this.socket.on('addedToRoom').subscribe((msg) => {
|
|
@@ -328,6 +338,14 @@ class ChatWindowComponent {
|
|
|
328
338
|
}
|
|
329
339
|
});
|
|
330
340
|
this.socket.on('userAlreadyInRoom').subscribe((msg) => {
|
|
341
|
+
// if (msg.chatRoomId === this.chatRoomId) {
|
|
342
|
+
// this.messageService.add({
|
|
343
|
+
// severity: 'info',
|
|
344
|
+
// summary: 'User Already Added',
|
|
345
|
+
// detail: msg.user?.userName,
|
|
346
|
+
// life: 2500
|
|
347
|
+
// });
|
|
348
|
+
// }
|
|
331
349
|
});
|
|
332
350
|
}
|
|
333
351
|
send() {
|
|
@@ -465,6 +483,7 @@ class ChatLauncherComponent {
|
|
|
465
483
|
}, { allowSignalWrites: true });
|
|
466
484
|
}
|
|
467
485
|
ngOnInit() {
|
|
486
|
+
console.log('ChatLauncher initialized');
|
|
468
487
|
}
|
|
469
488
|
openNewRoom(roomId, roomHeader, metadata, userId, username, chatUsers) {
|
|
470
489
|
this.isVisible.set(true);
|
|
@@ -482,21 +501,21 @@ class ChatLauncherComponent {
|
|
|
482
501
|
}
|
|
483
502
|
const newIndex = windows.length;
|
|
484
503
|
this.openWindows.update(ws => [...ws, { roomId, header, metadata }]);
|
|
504
|
+
// ✅ force real change: -1 → 0
|
|
485
505
|
setTimeout(() => {
|
|
486
506
|
this.activeIndex.set(newIndex);
|
|
487
507
|
}, 500);
|
|
488
508
|
}
|
|
489
509
|
closeWindow(roomId) {
|
|
490
510
|
this.openWindows.update(ws => ws.filter(w => w.roomId !== roomId));
|
|
491
|
-
const windows = this.openWindows();
|
|
492
|
-
const newIndex = windows.length;
|
|
493
|
-
this.activeIndex.set(newIndex);
|
|
494
511
|
}
|
|
495
512
|
setActive(i) {
|
|
496
513
|
this.activeIndex.set(i);
|
|
497
514
|
}
|
|
498
515
|
closeAll() {
|
|
499
516
|
this.openWindows.set([]);
|
|
517
|
+
// this.lastOpenedRoom.set(null);
|
|
518
|
+
// this.activeIndex.set(0);
|
|
500
519
|
this.isVisible.set(false);
|
|
501
520
|
}
|
|
502
521
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatLauncherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -613,103 +632,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
613
632
|
type: Output
|
|
614
633
|
}] } });
|
|
615
634
|
|
|
616
|
-
class NotificationService {
|
|
617
|
-
constructor(socketService) {
|
|
618
|
-
this.socketService = socketService;
|
|
619
|
-
}
|
|
620
|
-
notifications$() {
|
|
621
|
-
return this.socketService.on('notifications');
|
|
622
|
-
}
|
|
623
|
-
getTotalCount(notifications) {
|
|
624
|
-
return notifications.reduce((sum, n) => sum + (n.count || 0), 0);
|
|
625
|
-
}
|
|
626
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationService, deps: [{ token: SocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
627
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
|
|
628
|
-
}
|
|
629
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificationService, decorators: [{
|
|
630
|
-
type: Injectable,
|
|
631
|
-
args: [{ providedIn: 'root' }]
|
|
632
|
-
}], ctorParameters: () => [{ type: SocketService }] });
|
|
633
|
-
|
|
634
635
|
class ChatWidgetNotificationComponent {
|
|
635
636
|
constructor() {
|
|
636
637
|
this.open = false;
|
|
637
638
|
this.chatService = inject(ChatService);
|
|
638
|
-
this.
|
|
639
|
-
this.
|
|
640
|
-
this.
|
|
641
|
-
this.totalCount = 0;
|
|
642
|
-
this.user = input(null);
|
|
643
|
-
}
|
|
644
|
-
ngOnInit() {
|
|
645
|
-
if (!this.user) {
|
|
646
|
-
console.error('user is required');
|
|
647
|
-
return;
|
|
648
|
-
}
|
|
649
|
-
this.notificationService.notifications$()
|
|
650
|
-
.subscribe((notifications) => {
|
|
651
|
-
this.notifications = notifications;
|
|
652
|
-
this.totalCount =
|
|
653
|
-
this.notificationService.getTotalCount(notifications);
|
|
654
|
-
});
|
|
639
|
+
this.notifications = this.chatService.notifications;
|
|
640
|
+
this.hasNew = this.chatService.hasNewNotification;
|
|
641
|
+
this.totalCount = computed(() => this.notifications().reduce((a, b) => a + b.unreadCount, 0));
|
|
655
642
|
}
|
|
656
643
|
toggle() {
|
|
657
644
|
this.open = !this.open;
|
|
658
645
|
}
|
|
659
646
|
openRoom(n) {
|
|
647
|
+
// this.chatLauncher.openRoom(n.roomId);
|
|
660
648
|
this.chatService.clearRoom(n.roomId);
|
|
661
649
|
this.open = false;
|
|
662
|
-
// this.http.post(
|
|
663
|
-
// `/api/chat/notifications/${notification.id}/read`,
|
|
664
|
-
// { userId: this.currentUserId }
|
|
665
|
-
// ).subscribe();
|
|
666
650
|
}
|
|
667
651
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
668
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChatWidgetNotificationComponent, isStandalone: true, selector: "chat-widget-notification",
|
|
652
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChatWidgetNotificationComponent, isStandalone: true, selector: "chat-widget-notification", ngImport: i0, template: "<div (click)=\"toggle()\" class=\"notif-icon\">\r\n <i class=\"pi pi-bell\" [class.pulse]=\"hasNew()\"></i>\r\n\r\n @if (totalCount() > 0) {\r\n <span class=\"dot\"></span>\r\n <span class=\"badge\">{{ totalCount() }}</span>\r\n }\r\n</div>\r\n\r\n@if (open) {\r\n <div class=\"notif-panel\">\r\n<!-- <div class=\"notif-header\">Notifications</div>-->\r\n\r\n <div class=\"notif-list\">\r\n @for (n of notifications(); track n.roomId) {\r\n <div class=\"notif-item\" (click)=\"openRoom(n)\">\r\n <div class=\"notif-left\">\r\n <i class=\"pi pi-comments\"></i>\r\n </div>\r\n\r\n <div class=\"notif-body\">\r\n <div class=\"notif-title\">{{ n.roomName }}</div>\r\n <div class=\"notif-text\">\r\n {{ n.lastMessage || 'You were added to this room' }}\r\n </div>\r\n </div>\r\n\r\n <span class=\"count\">{{ n.unreadCount }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [".notif-icon{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center}.notif-icon i{font-size:1.4rem;color:#444}.pulse{animation:pulse 1.2s ease-out}@keyframes pulse{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.dot{position:absolute;top:2px;right:4px;width:8px;height:8px;background:#e53935;border-radius:50%}.badge{position:absolute;top:-6px;right:-10px;background:#e53935;color:#fff;font-size:.65rem;min-width:18px;height:18px;padding:0 5px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-panel{position:absolute;top:42px;right:0;width:320px;background:#fff;border-radius:8px;box-shadow:0 12px 28px #00000026;z-index:9999;overflow:hidden;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.notif-header{padding:12px 16px;font-weight:600;font-size:.9rem;border-bottom:1px solid #eee}.notif-list{max-height:360px;overflow-y:auto}.notif-item{display:flex;align-items:center;padding:12px 14px;cursor:pointer;transition:background .15s ease}.notif-item:hover{background:#f5f7fa}.notif-left{width:36px;height:36px;border-radius:50%;background:#e3f2fd;color:#1976d2;display:flex;align-items:center;justify-content:center;margin-right:12px}.notif-body{flex:1;min-width:0}.notif-title{font-size:.85rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-text{font-size:.75rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.count{background:#1976d2;color:#fff;font-size:.65rem;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-item{background:#f0f6ff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
669
653
|
}
|
|
670
654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetNotificationComponent, decorators: [{
|
|
671
655
|
type: Component,
|
|
672
656
|
args: [{ selector: 'chat-widget-notification', standalone: true, imports: [
|
|
673
657
|
CommonModule,
|
|
674
658
|
FormsModule
|
|
675
|
-
], template: "<div (click)=\"toggle()\" class=\"notif-icon\">\r\n <i class=\"pi pi-bell\" [class.pulse]=\"
|
|
659
|
+
], template: "<div (click)=\"toggle()\" class=\"notif-icon\">\r\n <i class=\"pi pi-bell\" [class.pulse]=\"hasNew()\"></i>\r\n\r\n @if (totalCount() > 0) {\r\n <span class=\"dot\"></span>\r\n <span class=\"badge\">{{ totalCount() }}</span>\r\n }\r\n</div>\r\n\r\n@if (open) {\r\n <div class=\"notif-panel\">\r\n<!-- <div class=\"notif-header\">Notifications</div>-->\r\n\r\n <div class=\"notif-list\">\r\n @for (n of notifications(); track n.roomId) {\r\n <div class=\"notif-item\" (click)=\"openRoom(n)\">\r\n <div class=\"notif-left\">\r\n <i class=\"pi pi-comments\"></i>\r\n </div>\r\n\r\n <div class=\"notif-body\">\r\n <div class=\"notif-title\">{{ n.roomName }}</div>\r\n <div class=\"notif-text\">\r\n {{ n.lastMessage || 'You were added to this room' }}\r\n </div>\r\n </div>\r\n\r\n <span class=\"count\">{{ n.unreadCount }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [".notif-icon{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center}.notif-icon i{font-size:1.4rem;color:#444}.pulse{animation:pulse 1.2s ease-out}@keyframes pulse{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.dot{position:absolute;top:2px;right:4px;width:8px;height:8px;background:#e53935;border-radius:50%}.badge{position:absolute;top:-6px;right:-10px;background:#e53935;color:#fff;font-size:.65rem;min-width:18px;height:18px;padding:0 5px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-panel{position:absolute;top:42px;right:0;width:320px;background:#fff;border-radius:8px;box-shadow:0 12px 28px #00000026;z-index:9999;overflow:hidden;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.notif-header{padding:12px 16px;font-weight:600;font-size:.9rem;border-bottom:1px solid #eee}.notif-list{max-height:360px;overflow-y:auto}.notif-item{display:flex;align-items:center;padding:12px 14px;cursor:pointer;transition:background .15s ease}.notif-item:hover{background:#f5f7fa}.notif-left{width:36px;height:36px;border-radius:50%;background:#e3f2fd;color:#1976d2;display:flex;align-items:center;justify-content:center;margin-right:12px}.notif-body{flex:1;min-width:0}.notif-title{font-size:.85rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-text{font-size:.75rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.count{background:#1976d2;color:#fff;font-size:.65rem;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-item{background:#f0f6ff}\n"] }]
|
|
676
660
|
}], ctorParameters: () => [] });
|
|
677
661
|
|
|
678
|
-
class ChatWidgetBootstrapService {
|
|
679
|
-
constructor(socketService, chatService, config) {
|
|
680
|
-
this.socketService = socketService;
|
|
681
|
-
this.chatService = chatService;
|
|
682
|
-
this.config = config;
|
|
683
|
-
this.initialized = false;
|
|
684
|
-
effect(() => {
|
|
685
|
-
const user = this.chatService.currentUser();
|
|
686
|
-
if (!user?.userId || this.initialized)
|
|
687
|
-
return;
|
|
688
|
-
console.log('[ChatWidget] user available → join channel', user.userId);
|
|
689
|
-
this.initialized = true;
|
|
690
|
-
setTimeout(() => {
|
|
691
|
-
this.socketService.joinUserChannel(user.userId);
|
|
692
|
-
}, 800);
|
|
693
|
-
this.socketService.on('notifications').subscribe(msg => {
|
|
694
|
-
console.log('[ChatWidget] new notification', msg);
|
|
695
|
-
this.chatService.handleIncomingMessage(msg);
|
|
696
|
-
});
|
|
697
|
-
});
|
|
698
|
-
}
|
|
699
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetBootstrapService, deps: [{ token: SocketService }, { token: ChatService }, { token: CHAT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
700
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetBootstrapService, providedIn: 'root' }); }
|
|
701
|
-
}
|
|
702
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetBootstrapService, decorators: [{
|
|
703
|
-
type: Injectable,
|
|
704
|
-
args: [{ providedIn: 'root' }]
|
|
705
|
-
}], ctorParameters: () => [{ type: SocketService }, { type: ChatService }, { type: undefined, decorators: [{
|
|
706
|
-
type: Inject,
|
|
707
|
-
args: [CHAT_CONFIG]
|
|
708
|
-
}] }] });
|
|
709
|
-
|
|
710
|
-
function chatWidgetInitializer(bootstrap) {
|
|
711
|
-
return () => { };
|
|
712
|
-
}
|
|
713
662
|
class ChatWidgetModule {
|
|
714
663
|
static forRoot(config) {
|
|
715
664
|
return {
|
|
@@ -728,14 +677,7 @@ class ChatWidgetModule {
|
|
|
728
677
|
ChatWindowComponent,
|
|
729
678
|
AllChatsComponent,
|
|
730
679
|
ChatWidgetNotificationComponent], exports: [ChatLauncherComponent] }); }
|
|
731
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetModule,
|
|
732
|
-
{
|
|
733
|
-
provide: APP_INITIALIZER,
|
|
734
|
-
useFactory: chatWidgetInitializer,
|
|
735
|
-
deps: [ChatWidgetBootstrapService],
|
|
736
|
-
multi: true
|
|
737
|
-
}
|
|
738
|
-
], imports: [CommonModule,
|
|
680
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetModule, imports: [CommonModule,
|
|
739
681
|
ChatLauncherComponent,
|
|
740
682
|
ChatWindowComponent,
|
|
741
683
|
AllChatsComponent,
|
|
@@ -752,21 +694,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
752
694
|
AllChatsComponent,
|
|
753
695
|
ChatWidgetNotificationComponent
|
|
754
696
|
],
|
|
755
|
-
exports: [ChatLauncherComponent]
|
|
756
|
-
providers: [
|
|
757
|
-
{
|
|
758
|
-
provide: APP_INITIALIZER,
|
|
759
|
-
useFactory: chatWidgetInitializer,
|
|
760
|
-
deps: [ChatWidgetBootstrapService],
|
|
761
|
-
multi: true
|
|
762
|
-
}
|
|
763
|
-
]
|
|
697
|
+
exports: [ChatLauncherComponent]
|
|
764
698
|
}]
|
|
765
699
|
}] });
|
|
766
700
|
|
|
767
701
|
class ChatWidgetService {
|
|
768
|
-
constructor(
|
|
769
|
-
this.chatService =
|
|
702
|
+
constructor() {
|
|
703
|
+
this.chatService = inject(ChatService);
|
|
704
|
+
this.socketService = inject(SocketService);
|
|
770
705
|
}
|
|
771
706
|
initUser(user) {
|
|
772
707
|
this.chatService.currentUser.set({
|
|
@@ -775,13 +710,13 @@ class ChatWidgetService {
|
|
|
775
710
|
name: user.name
|
|
776
711
|
});
|
|
777
712
|
}
|
|
778
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, deps: [
|
|
713
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
779
714
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, providedIn: 'root' }); }
|
|
780
715
|
}
|
|
781
716
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, decorators: [{
|
|
782
717
|
type: Injectable,
|
|
783
718
|
args: [{ providedIn: 'root' }]
|
|
784
|
-
}], ctorParameters: () => [
|
|
719
|
+
}], ctorParameters: () => [] });
|
|
785
720
|
|
|
786
721
|
/*
|
|
787
722
|
* Public API Surface of chat-widget
|
|
@@ -791,5 +726,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
791
726
|
* Generated bundle index. Do not edit.
|
|
792
727
|
*/
|
|
793
728
|
|
|
794
|
-
export { AllChatsComponent, ChatLauncherComponent, ChatWidgetModule, ChatWidgetNotificationComponent, ChatWidgetService
|
|
729
|
+
export { AllChatsComponent, ChatLauncherComponent, ChatWidgetModule, ChatWidgetNotificationComponent, ChatWidgetService };
|
|
795
730
|
//# sourceMappingURL=arthakosh-chat-widget.mjs.map
|