nerdagent-chat-widget-angular 1.0.13 → 1.0.14

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.
@@ -1,10 +1,6 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class ChatWidgetComponent {
4
- elementRef;
5
- constructor(elementRef) {
6
- this.elementRef = elementRef;
7
- }
8
4
  apikey = '';
9
5
  agentId = '';
10
6
  agentName = 'Support Agent';
@@ -24,48 +20,9 @@ export class ChatWidgetComponent {
24
20
  messageSent = new EventEmitter();
25
21
  widgetOpened = new EventEmitter();
26
22
  widgetClosed = new EventEmitter();
27
- eventListeners = [];
28
- ngAfterViewInit() {
29
- // Use setTimeout to ensure the custom element is fully initialized
30
- setTimeout(() => {
31
- const chatWidget = this.elementRef.nativeElement.querySelector('nerd-chat-widget');
32
- if (chatWidget) {
33
- this.setupEventListeners(chatWidget);
34
- }
35
- }, 0);
36
- }
37
- ngOnDestroy() {
38
- this.removeEventListeners();
39
- }
40
- setupEventListeners(widget) {
41
- const messageSentListener = (event) => {
42
- this.messageSent.emit(event.detail);
43
- };
44
- const widgetOpenedListener = (event) => {
45
- this.widgetOpened.emit();
46
- };
47
- const widgetClosedListener = (event) => {
48
- this.widgetClosed.emit();
49
- };
50
- widget.addEventListener('messageSent', messageSentListener);
51
- widget.addEventListener('widgetOpened', widgetOpenedListener);
52
- widget.addEventListener('widgetClosed', widgetClosedListener);
53
- // Store cleanup functions
54
- this.eventListeners = [
55
- () => widget.removeEventListener('messageSent', messageSentListener),
56
- () => widget.removeEventListener('widgetOpened', widgetOpenedListener),
57
- () => widget.removeEventListener('widgetClosed', widgetClosedListener),
58
- ];
59
- }
60
- removeEventListeners() {
61
- this.eventListeners.forEach(cleanup => cleanup());
62
- this.eventListeners = [];
63
- }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
65
24
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatWidgetComponent, selector: "nerd-chat-widget", inputs: { apikey: "apikey", agentId: "agentId", agentName: "agentName", agentRole: "agentRole", primaryColor: "primaryColor", accentColor: "accentColor", welcomeMessage: "welcomeMessage", placeholderText: "placeholderText", position: "position", width: "width", height: "height", showMinimizeButton: "showMinimizeButton", showTimestamps: "showTimestamps", enableFileUpload: "enableFileUpload", enableSpeech: "enableSpeech", showPoweredBy: "showPoweredBy" }, outputs: { messageSent: "messageSent", widgetOpened: "widgetOpened", widgetClosed: "widgetClosed" }, ngImport: i0, template: `
66
- <div
67
- #chatWidget
68
- nerd-chat-widget
25
+ <nerd-chat-widget
69
26
  [attr.apikey]="apikey"
70
27
  [attr.agent-id]="agentId"
71
28
  [attr.agent-name]="agentName"
@@ -82,15 +39,13 @@ export class ChatWidgetComponent {
82
39
  [attr.enable-file-upload]="enableFileUpload?.toString()"
83
40
  [attr.enable-speech]="enableSpeech?.toString()"
84
41
  [attr.show-powered-by]="showPoweredBy?.toString()">
85
- </div>
86
- `, isInline: true });
42
+ </nerd-chat-widget>
43
+ `, isInline: true, dependencies: [{ kind: "component", type: ChatWidgetComponent, selector: "nerd-chat-widget", inputs: ["apikey", "agentId", "agentName", "agentRole", "primaryColor", "accentColor", "welcomeMessage", "placeholderText", "position", "width", "height", "showMinimizeButton", "showTimestamps", "enableFileUpload", "enableSpeech", "showPoweredBy"], outputs: ["messageSent", "widgetOpened", "widgetClosed"] }] });
87
44
  }
88
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, decorators: [{
89
46
  type: Component,
90
47
  args: [{ selector: 'nerd-chat-widget', template: `
91
- <div
92
- #chatWidget
93
- nerd-chat-widget
48
+ <nerd-chat-widget
94
49
  [attr.apikey]="apikey"
95
50
  [attr.agent-id]="agentId"
96
51
  [attr.agent-name]="agentName"
@@ -107,9 +62,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
107
62
  [attr.enable-file-upload]="enableFileUpload?.toString()"
108
63
  [attr.enable-speech]="enableSpeech?.toString()"
109
64
  [attr.show-powered-by]="showPoweredBy?.toString()">
110
- </div>
65
+ </nerd-chat-widget>
111
66
  ` }]
112
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { apikey: [{
67
+ }], propDecorators: { apikey: [{
113
68
  type: Input
114
69
  }], agentId: [{
115
70
  type: Input
@@ -148,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
148
103
  }], widgetClosed: [{
149
104
  type: Output
150
105
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jaGF0LXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0MsTUFBTSxlQUFlLENBQUM7O0FBNkI3RyxNQUFNLE9BQU8sbUJBQW1CO0lBQ1Y7SUFBcEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFckMsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLFNBQVMsR0FBVyxlQUFlLENBQUM7SUFDcEMsU0FBUyxHQUFXLGtCQUFrQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxTQUFTLENBQUM7SUFDakMsV0FBVyxHQUFXLFNBQVMsQ0FBQztJQUNoQyxjQUFjLEdBQVcscUJBQXFCLENBQUM7SUFDL0MsZUFBZSxHQUFXLHNCQUFzQixDQUFDO0lBQ2pELFFBQVEsR0FBbUIsY0FBYyxDQUFDO0lBQzFDLEtBQUssR0FBVyxLQUFLLENBQUM7SUFDdEIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixrQkFBa0IsR0FBWSxJQUFJLENBQUM7SUFDbkMsY0FBYyxHQUFZLElBQUksQ0FBQztJQUMvQixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUM5QixhQUFhLEdBQVksSUFBSSxDQUFDO0lBRTdCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztJQUN2RSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN4QyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUUxQyxjQUFjLEdBQXNCLEVBQUUsQ0FBQztJQUUvQyxlQUFlO1FBQ2IsbUVBQW1FO1FBQ25FLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNuRixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBbUI7UUFFN0MsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDO1FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQztRQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLG1CQUFvQyxDQUFDLENBQUM7UUFDN0UsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxvQkFBcUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsb0JBQXFDLENBQUMsQ0FBQztRQUUvRSwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLG1CQUFvQyxDQUFDO1lBQ3JGLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsb0JBQXFDLENBQUM7WUFDdkYsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxvQkFBcUMsQ0FBQztTQUN4RixDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0FyRVUsbUJBQW1COzRGQUFuQixtQkFBbUIsdW1CQXhCcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDs7NEZBR1UsbUJBQW1CO2tCQTFCL0IsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDsrRUFNUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0UG9zaXRpb24gfSBmcm9tICcuL2NoYXQtd2lkZ2V0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmVyZC1jaGF0LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgI2NoYXRXaWRnZXRcbiAgICAgIG5lcmQtY2hhdC13aWRnZXRcbiAgICAgIFthdHRyLmFwaWtleV09XCJhcGlrZXlcIlxuICAgICAgW2F0dHIuYWdlbnQtaWRdPVwiYWdlbnRJZFwiXG4gICAgICBbYXR0ci5hZ2VudC1uYW1lXT1cImFnZW50TmFtZVwiXG4gICAgICBbYXR0ci5hZ2VudC1yb2xlXT1cImFnZW50Um9sZVwiXG4gICAgICBbYXR0ci5wcmltYXJ5LWNvbG9yXT1cInByaW1hcnlDb2xvclwiXG4gICAgICBbYXR0ci5hY2NlbnQtY29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgICAgW2F0dHIud2VsY29tZS1tZXNzYWdlXT1cIndlbGNvbWVNZXNzYWdlXCJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyLXRleHRdPVwicGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFthdHRyLnBvc2l0aW9uXT1cInBvc2l0aW9uXCJcbiAgICAgIFthdHRyLndpZHRoXT1cIndpZHRoXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJoZWlnaHRcIlxuICAgICAgW2F0dHIuc2hvdy1taW5pbWl6ZS1idXR0b25dPVwic2hvd01pbmltaXplQnV0dG9uPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLnNob3ctdGltZXN0YW1wc109XCJzaG93VGltZXN0YW1wcz8udG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5lbmFibGUtZmlsZS11cGxvYWRdPVwiZW5hYmxlRmlsZVVwbG9hZD8udG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5lbmFibGUtc3BlZWNoXT1cImVuYWJsZVNwZWVjaD8udG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5zaG93LXBvd2VyZWQtYnldPVwic2hvd1Bvd2VyZWRCeT8udG9TdHJpbmcoKVwiPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIENoYXRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgQElucHV0KCkgYXBpa2V5OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYWdlbnRJZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGFnZW50TmFtZTogc3RyaW5nID0gJ1N1cHBvcnQgQWdlbnQnO1xuICBASW5wdXQoKSBhZ2VudFJvbGU6IHN0cmluZyA9ICdDdXN0b21lciBTdXBwb3J0JztcbiAgQElucHV0KCkgcHJpbWFyeUNvbG9yOiBzdHJpbmcgPSAnIzJkM2U1MCc7XG4gIEBJbnB1dCgpIGFjY2VudENvbG9yOiBzdHJpbmcgPSAnIzRlOGNmZic7XG4gIEBJbnB1dCgpIHdlbGNvbWVNZXNzYWdlOiBzdHJpbmcgPSAnSGkhIEhvdyBjYW4gSSBoZWxwPyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyVGV4dDogc3RyaW5nID0gJ1R5cGUgeW91ciBtZXNzYWdlLi4uJztcbiAgQElucHV0KCkgcG9zaXRpb246IFdpZGdldFBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCc7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMzUwJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnNTAwJztcbiAgQElucHV0KCkgc2hvd01pbmltaXplQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1RpbWVzdGFtcHM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBlbmFibGVGaWxlVXBsb2FkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZVNwZWVjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UG93ZXJlZEJ5OiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgbWVzc2FnZVNlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbWVzc2FnZTogc3RyaW5nOyB0aW1lc3RhbXA6IERhdGUgfT4oKTtcbiAgQE91dHB1dCgpIHdpZGdldE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHdpZGdldENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBVc2Ugc2V0VGltZW91dCB0byBlbnN1cmUgdGhlIGN1c3RvbSBlbGVtZW50IGlzIGZ1bGx5IGluaXRpYWxpemVkXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBjaGF0V2lkZ2V0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignbmVyZC1jaGF0LXdpZGdldCcpO1xuICAgICAgaWYgKGNoYXRXaWRnZXQpIHtcbiAgICAgICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKGNoYXRXaWRnZXQpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEV2ZW50TGlzdGVuZXJzKHdpZGdldDogSFRNTEVsZW1lbnQpIHtcblxuICAgIGNvbnN0IG1lc3NhZ2VTZW50TGlzdGVuZXIgPSAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZW50LmVtaXQoZXZlbnQuZGV0YWlsKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgd2lkZ2V0T3BlbmVkTGlzdGVuZXIgPSAoZXZlbnQ6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLndpZGdldE9wZW5lZC5lbWl0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHdpZGdldENsb3NlZExpc3RlbmVyID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgdGhpcy53aWRnZXRDbG9zZWQuZW1pdCgpO1xuICAgIH07XG5cbiAgICB3aWRnZXQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZVNlbnQnLCBtZXNzYWdlU2VudExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgIHdpZGdldC5hZGRFdmVudExpc3RlbmVyKCd3aWRnZXRPcGVuZWQnLCB3aWRnZXRPcGVuZWRMaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICB3aWRnZXQuYWRkRXZlbnRMaXN0ZW5lcignd2lkZ2V0Q2xvc2VkJywgd2lkZ2V0Q2xvc2VkTGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lcik7XG5cbiAgICAvLyBTdG9yZSBjbGVhbnVwIGZ1bmN0aW9uc1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBbXG4gICAgICAoKSA9PiB3aWRnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZVNlbnQnLCBtZXNzYWdlU2VudExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIpLFxuICAgICAgKCkgPT4gd2lkZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dpZGdldE9wZW5lZCcsIHdpZGdldE9wZW5lZExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIpLFxuICAgICAgKCkgPT4gd2lkZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dpZGdldENsb3NlZCcsIHdpZGdldENsb3NlZExpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIpLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaChjbGVhbnVwID0+IGNsZWFudXAoKSk7XG4gICAgdGhpcy5ldmVudExpc3RlbmVycyA9IFtdO1xuICB9XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jaGF0LXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUEyQnZFLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLFNBQVMsR0FBVyxlQUFlLENBQUM7SUFDcEMsU0FBUyxHQUFXLGtCQUFrQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxTQUFTLENBQUM7SUFDakMsV0FBVyxHQUFXLFNBQVMsQ0FBQztJQUNoQyxjQUFjLEdBQVcscUJBQXFCLENBQUM7SUFDL0MsZUFBZSxHQUFXLHNCQUFzQixDQUFDO0lBQ2pELFFBQVEsR0FBbUIsY0FBYyxDQUFDO0lBQzFDLEtBQUssR0FBVyxLQUFLLENBQUM7SUFDdEIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixrQkFBa0IsR0FBWSxJQUFJLENBQUM7SUFDbkMsY0FBYyxHQUFZLElBQUksQ0FBQztJQUMvQixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUM5QixhQUFhLEdBQVksSUFBSSxDQUFDO0lBRTdCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztJQUN2RSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN4QyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQzt3R0FwQnZDLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHVtQkF0QnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDREQUdVLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkF4Qi9CLFNBQVM7K0JBQ0Usa0JBQWtCLFlBQ2xCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUOzhCQUlRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0UG9zaXRpb24gfSBmcm9tICcuL2NoYXQtd2lkZ2V0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmVyZC1jaGF0LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5lcmQtY2hhdC13aWRnZXRcbiAgICAgIFthdHRyLmFwaWtleV09XCJhcGlrZXlcIlxuICAgICAgW2F0dHIuYWdlbnQtaWRdPVwiYWdlbnRJZFwiXG4gICAgICBbYXR0ci5hZ2VudC1uYW1lXT1cImFnZW50TmFtZVwiXG4gICAgICBbYXR0ci5hZ2VudC1yb2xlXT1cImFnZW50Um9sZVwiXG4gICAgICBbYXR0ci5wcmltYXJ5LWNvbG9yXT1cInByaW1hcnlDb2xvclwiXG4gICAgICBbYXR0ci5hY2NlbnQtY29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgICAgW2F0dHIud2VsY29tZS1tZXNzYWdlXT1cIndlbGNvbWVNZXNzYWdlXCJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyLXRleHRdPVwicGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgIFthdHRyLnBvc2l0aW9uXT1cInBvc2l0aW9uXCJcbiAgICAgIFthdHRyLndpZHRoXT1cIndpZHRoXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJoZWlnaHRcIlxuICAgICAgW2F0dHIuc2hvdy1taW5pbWl6ZS1idXR0b25dPVwic2hvd01pbmltaXplQnV0dG9uPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLnNob3ctdGltZXN0YW1wc109XCJzaG93VGltZXN0YW1wcz8udG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5lbmFibGUtZmlsZS11cGxvYWRdPVwiZW5hYmxlRmlsZVVwbG9hZD8udG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5lbmFibGUtc3BlZWNoXT1cImVuYWJsZVNwZWVjaD8udG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5zaG93LXBvd2VyZWQtYnldPVwic2hvd1Bvd2VyZWRCeT8udG9TdHJpbmcoKVwiPlxuICAgIDwvbmVyZC1jaGF0LXdpZGdldD5cbiAgYCxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBDaGF0V2lkZ2V0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgYXBpa2V5OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYWdlbnRJZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGFnZW50TmFtZTogc3RyaW5nID0gJ1N1cHBvcnQgQWdlbnQnO1xuICBASW5wdXQoKSBhZ2VudFJvbGU6IHN0cmluZyA9ICdDdXN0b21lciBTdXBwb3J0JztcbiAgQElucHV0KCkgcHJpbWFyeUNvbG9yOiBzdHJpbmcgPSAnIzJkM2U1MCc7XG4gIEBJbnB1dCgpIGFjY2VudENvbG9yOiBzdHJpbmcgPSAnIzRlOGNmZic7XG4gIEBJbnB1dCgpIHdlbGNvbWVNZXNzYWdlOiBzdHJpbmcgPSAnSGkhIEhvdyBjYW4gSSBoZWxwPyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyVGV4dDogc3RyaW5nID0gJ1R5cGUgeW91ciBtZXNzYWdlLi4uJztcbiAgQElucHV0KCkgcG9zaXRpb246IFdpZGdldFBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCc7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMzUwJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnNTAwJztcbiAgQElucHV0KCkgc2hvd01pbmltaXplQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1RpbWVzdGFtcHM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBlbmFibGVGaWxlVXBsb2FkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZVNwZWVjaDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UG93ZXJlZEJ5OiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgbWVzc2FnZVNlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbWVzc2FnZTogc3RyaW5nOyB0aW1lc3RhbXA6IERhdGUgfT4oKTtcbiAgQE91dHB1dCgpIHdpZGdldE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHdpZGdldENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiJdfQ==
@@ -4,10 +4,6 @@ import { CommonModule } from '@angular/common';
4
4
  import { defineCustomElements } from 'nerdagent-chat-widget/loader';
5
5
 
6
6
  class ChatWidgetComponent {
7
- elementRef;
8
- constructor(elementRef) {
9
- this.elementRef = elementRef;
10
- }
11
7
  apikey = '';
12
8
  agentId = '';
13
9
  agentName = 'Support Agent';
@@ -27,48 +23,9 @@ class ChatWidgetComponent {
27
23
  messageSent = new EventEmitter();
28
24
  widgetOpened = new EventEmitter();
29
25
  widgetClosed = new EventEmitter();
30
- eventListeners = [];
31
- ngAfterViewInit() {
32
- // Use setTimeout to ensure the custom element is fully initialized
33
- setTimeout(() => {
34
- const chatWidget = this.elementRef.nativeElement.querySelector('nerd-chat-widget');
35
- if (chatWidget) {
36
- this.setupEventListeners(chatWidget);
37
- }
38
- }, 0);
39
- }
40
- ngOnDestroy() {
41
- this.removeEventListeners();
42
- }
43
- setupEventListeners(widget) {
44
- const messageSentListener = (event) => {
45
- this.messageSent.emit(event.detail);
46
- };
47
- const widgetOpenedListener = (event) => {
48
- this.widgetOpened.emit();
49
- };
50
- const widgetClosedListener = (event) => {
51
- this.widgetClosed.emit();
52
- };
53
- widget.addEventListener('messageSent', messageSentListener);
54
- widget.addEventListener('widgetOpened', widgetOpenedListener);
55
- widget.addEventListener('widgetClosed', widgetClosedListener);
56
- // Store cleanup functions
57
- this.eventListeners = [
58
- () => widget.removeEventListener('messageSent', messageSentListener),
59
- () => widget.removeEventListener('widgetOpened', widgetOpenedListener),
60
- () => widget.removeEventListener('widgetClosed', widgetClosedListener),
61
- ];
62
- }
63
- removeEventListeners() {
64
- this.eventListeners.forEach(cleanup => cleanup());
65
- this.eventListeners = [];
66
- }
67
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
27
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatWidgetComponent, selector: "nerd-chat-widget", inputs: { apikey: "apikey", agentId: "agentId", agentName: "agentName", agentRole: "agentRole", primaryColor: "primaryColor", accentColor: "accentColor", welcomeMessage: "welcomeMessage", placeholderText: "placeholderText", position: "position", width: "width", height: "height", showMinimizeButton: "showMinimizeButton", showTimestamps: "showTimestamps", enableFileUpload: "enableFileUpload", enableSpeech: "enableSpeech", showPoweredBy: "showPoweredBy" }, outputs: { messageSent: "messageSent", widgetOpened: "widgetOpened", widgetClosed: "widgetClosed" }, ngImport: i0, template: `
69
- <div
70
- #chatWidget
71
- nerd-chat-widget
28
+ <nerd-chat-widget
72
29
  [attr.apikey]="apikey"
73
30
  [attr.agent-id]="agentId"
74
31
  [attr.agent-name]="agentName"
@@ -85,15 +42,13 @@ class ChatWidgetComponent {
85
42
  [attr.enable-file-upload]="enableFileUpload?.toString()"
86
43
  [attr.enable-speech]="enableSpeech?.toString()"
87
44
  [attr.show-powered-by]="showPoweredBy?.toString()">
88
- </div>
89
- `, isInline: true });
45
+ </nerd-chat-widget>
46
+ `, isInline: true, dependencies: [{ kind: "component", type: ChatWidgetComponent, selector: "nerd-chat-widget", inputs: ["apikey", "agentId", "agentName", "agentRole", "primaryColor", "accentColor", "welcomeMessage", "placeholderText", "position", "width", "height", "showMinimizeButton", "showTimestamps", "enableFileUpload", "enableSpeech", "showPoweredBy"], outputs: ["messageSent", "widgetOpened", "widgetClosed"] }] });
90
47
  }
91
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, decorators: [{
92
49
  type: Component,
93
50
  args: [{ selector: 'nerd-chat-widget', template: `
94
- <div
95
- #chatWidget
96
- nerd-chat-widget
51
+ <nerd-chat-widget
97
52
  [attr.apikey]="apikey"
98
53
  [attr.agent-id]="agentId"
99
54
  [attr.agent-name]="agentName"
@@ -110,9 +65,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
110
65
  [attr.enable-file-upload]="enableFileUpload?.toString()"
111
66
  [attr.enable-speech]="enableSpeech?.toString()"
112
67
  [attr.show-powered-by]="showPoweredBy?.toString()">
113
- </div>
68
+ </nerd-chat-widget>
114
69
  ` }]
115
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { apikey: [{
70
+ }], propDecorators: { apikey: [{
116
71
  type: Input
117
72
  }], agentId: [{
118
73
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"nerdagent-chat-widget-angular.mjs","sources":["../../src/lib/chat-widget.component.ts","../../src/lib/chat-widget.module.ts","../../src/nerdagent-chat-widget-angular.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\nimport { WidgetPosition } from './chat-widget.types';\n\n@Component({\n selector: 'nerd-chat-widget',\n template: `\n <div\n #chatWidget\n nerd-chat-widget\n [attr.apikey]=\"apikey\"\n [attr.agent-id]=\"agentId\"\n [attr.agent-name]=\"agentName\"\n [attr.agent-role]=\"agentRole\"\n [attr.primary-color]=\"primaryColor\"\n [attr.accent-color]=\"accentColor\"\n [attr.welcome-message]=\"welcomeMessage\"\n [attr.placeholder-text]=\"placeholderText\"\n [attr.position]=\"position\"\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n [attr.show-minimize-button]=\"showMinimizeButton?.toString()\"\n [attr.show-timestamps]=\"showTimestamps?.toString()\"\n [attr.enable-file-upload]=\"enableFileUpload?.toString()\"\n [attr.enable-speech]=\"enableSpeech?.toString()\"\n [attr.show-powered-by]=\"showPoweredBy?.toString()\">\n </div>\n `,\n styles: []\n})\nexport class ChatWidgetComponent implements AfterViewInit, OnDestroy {\n constructor(private elementRef: ElementRef) {}\n\n @Input() apikey: string = '';\n @Input() agentId: string = '';\n @Input() agentName: string = 'Support Agent';\n @Input() agentRole: string = 'Customer Support';\n @Input() primaryColor: string = '#2d3e50';\n @Input() accentColor: string = '#4e8cff';\n @Input() welcomeMessage: string = 'Hi! How can I help?';\n @Input() placeholderText: string = 'Type your message...';\n @Input() position: WidgetPosition = 'bottom-right';\n @Input() width: string = '350';\n @Input() height: string = '500';\n @Input() showMinimizeButton: boolean = true;\n @Input() showTimestamps: boolean = true;\n @Input() enableFileUpload: boolean = false;\n @Input() enableSpeech: boolean = false;\n @Input() showPoweredBy: boolean = true;\n\n @Output() messageSent = new EventEmitter<{ message: string; timestamp: Date }>();\n @Output() widgetOpened = new EventEmitter<void>();\n @Output() widgetClosed = new EventEmitter<void>();\n\n private eventListeners: Array<() => void> = [];\n\n ngAfterViewInit() {\n // Use setTimeout to ensure the custom element is fully initialized\n setTimeout(() => {\n const chatWidget = this.elementRef.nativeElement.querySelector('nerd-chat-widget');\n if (chatWidget) {\n this.setupEventListeners(chatWidget);\n }\n }, 0);\n }\n\n ngOnDestroy() {\n this.removeEventListeners();\n }\n\n private setupEventListeners(widget: HTMLElement) {\n\n const messageSentListener = (event: CustomEvent) => {\n this.messageSent.emit(event.detail);\n };\n\n const widgetOpenedListener = (event: CustomEvent) => {\n this.widgetOpened.emit();\n };\n\n const widgetClosedListener = (event: CustomEvent) => {\n this.widgetClosed.emit();\n };\n\n widget.addEventListener('messageSent', messageSentListener as EventListener);\n widget.addEventListener('widgetOpened', widgetOpenedListener as EventListener);\n widget.addEventListener('widgetClosed', widgetClosedListener as EventListener);\n\n // Store cleanup functions\n this.eventListeners = [\n () => widget.removeEventListener('messageSent', messageSentListener as EventListener),\n () => widget.removeEventListener('widgetOpened', widgetOpenedListener as EventListener),\n () => widget.removeEventListener('widgetClosed', widgetClosedListener as EventListener),\n ];\n }\n\n private removeEventListeners() {\n this.eventListeners.forEach(cleanup => cleanup());\n this.eventListeners = [];\n }\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChatWidgetComponent } from './chat-widget.component';\n\n// Import and define custom elements\nimport { defineCustomElements } from 'nerdagent-chat-widget/loader';\n\n// Define custom elements when module is imported\ndefineCustomElements();\n\n@NgModule({\n declarations: [\n ChatWidgetComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ChatWidgetComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class NerdChatWidgetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nerdagent-chat-widget-angular.mjs","sources":["../../src/lib/chat-widget.component.ts","../../src/lib/chat-widget.module.ts","../../src/nerdagent-chat-widget-angular.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { WidgetPosition } from './chat-widget.types';\n\n@Component({\n selector: 'nerd-chat-widget',\n template: `\n <nerd-chat-widget\n [attr.apikey]=\"apikey\"\n [attr.agent-id]=\"agentId\"\n [attr.agent-name]=\"agentName\"\n [attr.agent-role]=\"agentRole\"\n [attr.primary-color]=\"primaryColor\"\n [attr.accent-color]=\"accentColor\"\n [attr.welcome-message]=\"welcomeMessage\"\n [attr.placeholder-text]=\"placeholderText\"\n [attr.position]=\"position\"\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n [attr.show-minimize-button]=\"showMinimizeButton?.toString()\"\n [attr.show-timestamps]=\"showTimestamps?.toString()\"\n [attr.enable-file-upload]=\"enableFileUpload?.toString()\"\n [attr.enable-speech]=\"enableSpeech?.toString()\"\n [attr.show-powered-by]=\"showPoweredBy?.toString()\">\n </nerd-chat-widget>\n `,\n styles: []\n})\nexport class ChatWidgetComponent {\n @Input() apikey: string = '';\n @Input() agentId: string = '';\n @Input() agentName: string = 'Support Agent';\n @Input() agentRole: string = 'Customer Support';\n @Input() primaryColor: string = '#2d3e50';\n @Input() accentColor: string = '#4e8cff';\n @Input() welcomeMessage: string = 'Hi! How can I help?';\n @Input() placeholderText: string = 'Type your message...';\n @Input() position: WidgetPosition = 'bottom-right';\n @Input() width: string = '350';\n @Input() height: string = '500';\n @Input() showMinimizeButton: boolean = true;\n @Input() showTimestamps: boolean = true;\n @Input() enableFileUpload: boolean = false;\n @Input() enableSpeech: boolean = false;\n @Input() showPoweredBy: boolean = true;\n\n @Output() messageSent = new EventEmitter<{ message: string; timestamp: Date }>();\n @Output() widgetOpened = new EventEmitter<void>();\n @Output() widgetClosed = new EventEmitter<void>();\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChatWidgetComponent } from './chat-widget.component';\n\n// Import and define custom elements\nimport { defineCustomElements } from 'nerdagent-chat-widget/loader';\n\n// Define custom elements when module is imported\ndefineCustomElements();\n\n@NgModule({\n declarations: [\n ChatWidgetComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ChatWidgetComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class NerdChatWidgetModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
- import { EventEmitter, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';
1
+ import { EventEmitter } from '@angular/core';
2
2
  import { WidgetPosition } from './chat-widget.types';
3
3
  import * as i0 from "@angular/core";
4
- export declare class ChatWidgetComponent implements AfterViewInit, OnDestroy {
5
- private elementRef;
6
- constructor(elementRef: ElementRef);
4
+ export declare class ChatWidgetComponent {
7
5
  apikey: string;
8
6
  agentId: string;
9
7
  agentName: string;
@@ -26,11 +24,6 @@ export declare class ChatWidgetComponent implements AfterViewInit, OnDestroy {
26
24
  }>;
27
25
  widgetOpened: EventEmitter<void>;
28
26
  widgetClosed: EventEmitter<void>;
29
- private eventListeners;
30
- ngAfterViewInit(): void;
31
- ngOnDestroy(): void;
32
- private setupEventListeners;
33
- private removeEventListeners;
34
27
  static ɵfac: i0.ɵɵFactoryDeclaration<ChatWidgetComponent, never>;
35
28
  static ɵcmp: i0.ɵɵComponentDeclaration<ChatWidgetComponent, "nerd-chat-widget", never, { "apikey": { "alias": "apikey"; "required": false; }; "agentId": { "alias": "agentId"; "required": false; }; "agentName": { "alias": "agentName"; "required": false; }; "agentRole": { "alias": "agentRole"; "required": false; }; "primaryColor": { "alias": "primaryColor"; "required": false; }; "accentColor": { "alias": "accentColor"; "required": false; }; "welcomeMessage": { "alias": "welcomeMessage"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "position": { "alias": "position"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "showMinimizeButton": { "alias": "showMinimizeButton"; "required": false; }; "showTimestamps": { "alias": "showTimestamps"; "required": false; }; "enableFileUpload": { "alias": "enableFileUpload"; "required": false; }; "enableSpeech": { "alias": "enableSpeech"; "required": false; }; "showPoweredBy": { "alias": "showPoweredBy"; "required": false; }; }, { "messageSent": "messageSent"; "widgetOpened": "widgetOpened"; "widgetClosed": "widgetClosed"; }, never, never, false, never>;
36
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nerdagent-chat-widget-angular",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "NerdAgent Chat Widget for Angular",
5
5
  "main": "dist/fesm2022/nerdagent-chat-widget-angular.mjs",
6
6
  "module": "dist/fesm2022/nerdagent-chat-widget-angular.mjs",
@@ -40,5 +40,5 @@
40
40
  "url": "https://github.com/nerdagent/chat-widget.git",
41
41
  "directory": "packages/angular"
42
42
  },
43
- "gitHead": "a57f929b053dd8f0affeda5643b01292d0a25640"
43
+ "gitHead": "8afd7fbd61082648c02e89e5533bf284c6f5e6ec"
44
44
  }