nerdagent-chat-widget-angular 1.0.15 → 1.0.16

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,6 +1,12 @@
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
+ renderer;
6
+ constructor(elementRef, renderer) {
7
+ this.elementRef = elementRef;
8
+ this.renderer = renderer;
9
+ }
4
10
  apikey = '';
5
11
  agentId = '';
6
12
  agentName = 'Support Agent';
@@ -20,53 +26,33 @@ export class ChatWidgetComponent {
20
26
  messageSent = new EventEmitter();
21
27
  widgetOpened = new EventEmitter();
22
28
  widgetClosed = new EventEmitter();
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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: `
25
- <div
26
- nerd-chat-widget
27
- [attr.apikey]="apikey"
28
- [attr.agent-id]="agentId"
29
- [attr.agent-name]="agentName"
30
- [attr.agent-role]="agentRole"
31
- [attr.primary-color]="primaryColor"
32
- [attr.accent-color]="accentColor"
33
- [attr.welcome-message]="welcomeMessage"
34
- [attr.placeholder-text]="placeholderText"
35
- [attr.position]="position"
36
- [attr.width]="width"
37
- [attr.height]="height"
38
- [attr.show-minimize-button]="showMinimizeButton?.toString()"
39
- [attr.show-timestamps]="showTimestamps?.toString()"
40
- [attr.enable-file-upload]="enableFileUpload?.toString()"
41
- [attr.enable-speech]="enableSpeech?.toString()"
42
- [attr.show-powered-by]="showPoweredBy?.toString()">
43
- </div>
44
- `, isInline: true });
29
+ ngAfterViewInit() {
30
+ // Set all attributes on the host element
31
+ const element = this.elementRef.nativeElement;
32
+ this.renderer.setAttribute(element, 'apikey', this.apikey || '');
33
+ this.renderer.setAttribute(element, 'agent-id', this.agentId || '');
34
+ this.renderer.setAttribute(element, 'agent-name', this.agentName || '');
35
+ this.renderer.setAttribute(element, 'agent-role', this.agentRole || '');
36
+ this.renderer.setAttribute(element, 'primary-color', this.primaryColor || '');
37
+ this.renderer.setAttribute(element, 'accent-color', this.accentColor || '');
38
+ this.renderer.setAttribute(element, 'welcome-message', this.welcomeMessage || '');
39
+ this.renderer.setAttribute(element, 'placeholder-text', this.placeholderText || '');
40
+ this.renderer.setAttribute(element, 'position', this.position || '');
41
+ this.renderer.setAttribute(element, 'width', this.width || '');
42
+ this.renderer.setAttribute(element, 'height', this.height || '');
43
+ this.renderer.setAttribute(element, 'show-minimize-button', this.showMinimizeButton?.toString() || 'false');
44
+ this.renderer.setAttribute(element, 'show-timestamps', this.showTimestamps?.toString() || 'false');
45
+ this.renderer.setAttribute(element, 'enable-file-upload', this.enableFileUpload?.toString() || 'false');
46
+ this.renderer.setAttribute(element, 'enable-speech', this.enableSpeech?.toString() || 'false');
47
+ this.renderer.setAttribute(element, 'show-powered-by', this.showPoweredBy?.toString() || 'false');
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
50
+ 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: '', isInline: true });
45
51
  }
46
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, decorators: [{
47
53
  type: Component,
48
- args: [{ selector: 'nerd-chat-widget', template: `
49
- <div
50
- nerd-chat-widget
51
- [attr.apikey]="apikey"
52
- [attr.agent-id]="agentId"
53
- [attr.agent-name]="agentName"
54
- [attr.agent-role]="agentRole"
55
- [attr.primary-color]="primaryColor"
56
- [attr.accent-color]="accentColor"
57
- [attr.welcome-message]="welcomeMessage"
58
- [attr.placeholder-text]="placeholderText"
59
- [attr.position]="position"
60
- [attr.width]="width"
61
- [attr.height]="height"
62
- [attr.show-minimize-button]="showMinimizeButton?.toString()"
63
- [attr.show-timestamps]="showTimestamps?.toString()"
64
- [attr.enable-file-upload]="enableFileUpload?.toString()"
65
- [attr.enable-speech]="enableSpeech?.toString()"
66
- [attr.show-powered-by]="showPoweredBy?.toString()">
67
- </div>
68
- ` }]
69
- }], propDecorators: { apikey: [{
54
+ args: [{ selector: 'nerd-chat-widget', template: '' }]
55
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { apikey: [{
70
56
  type: Input
71
57
  }], agentId: [{
72
58
  type: Input
@@ -105,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
105
91
  }], widgetClosed: [{
106
92
  type: Output
107
93
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jaGF0LXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUE0QnZFLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLFNBQVMsR0FBVyxlQUFlLENBQUM7SUFDcEMsU0FBUyxHQUFXLGtCQUFrQixDQUFDO0lBQ3ZDLFlBQVksR0FBVyxTQUFTLENBQUM7SUFDakMsV0FBVyxHQUFXLFNBQVMsQ0FBQztJQUNoQyxjQUFjLEdBQVcscUJBQXFCLENBQUM7SUFDL0MsZUFBZSxHQUFXLHNCQUFzQixDQUFDO0lBQ2pELFFBQVEsR0FBbUIsY0FBYyxDQUFDO0lBQzFDLEtBQUssR0FBVyxLQUFLLENBQUM7SUFDdEIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixrQkFBa0IsR0FBWSxJQUFJLENBQUM7SUFDbkMsY0FBYyxHQUFZLElBQUksQ0FBQztJQUMvQixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUM5QixhQUFhLEdBQVksSUFBSSxDQUFDO0lBRTdCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztJQUN2RSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN4QyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQzt3R0FwQnZDLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHVtQkF2QnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVDs7NEZBR1UsbUJBQW1CO2tCQXpCL0IsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JUOzhCQUlRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0UG9zaXRpb24gfSBmcm9tICcuL2NoYXQtd2lkZ2V0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmVyZC1jaGF0LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgbmVyZC1jaGF0LXdpZGdldFxuICAgICAgW2F0dHIuYXBpa2V5XT1cImFwaWtleVwiXG4gICAgICBbYXR0ci5hZ2VudC1pZF09XCJhZ2VudElkXCJcbiAgICAgIFthdHRyLmFnZW50LW5hbWVdPVwiYWdlbnROYW1lXCJcbiAgICAgIFthdHRyLmFnZW50LXJvbGVdPVwiYWdlbnRSb2xlXCJcbiAgICAgIFthdHRyLnByaW1hcnktY29sb3JdPVwicHJpbWFyeUNvbG9yXCJcbiAgICAgIFthdHRyLmFjY2VudC1jb2xvcl09XCJhY2NlbnRDb2xvclwiXG4gICAgICBbYXR0ci53ZWxjb21lLW1lc3NhZ2VdPVwid2VsY29tZU1lc3NhZ2VcIlxuICAgICAgW2F0dHIucGxhY2Vob2xkZXItdGV4dF09XCJwbGFjZWhvbGRlclRleHRcIlxuICAgICAgW2F0dHIucG9zaXRpb25dPVwicG9zaXRpb25cIlxuICAgICAgW2F0dHIud2lkdGhdPVwid2lkdGhcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgICBbYXR0ci5zaG93LW1pbmltaXplLWJ1dHRvbl09XCJzaG93TWluaW1pemVCdXR0b24/LnRvU3RyaW5nKClcIlxuICAgICAgW2F0dHIuc2hvdy10aW1lc3RhbXBzXT1cInNob3dUaW1lc3RhbXBzPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLmVuYWJsZS1maWxlLXVwbG9hZF09XCJlbmFibGVGaWxlVXBsb2FkPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLmVuYWJsZS1zcGVlY2hdPVwiZW5hYmxlU3BlZWNoPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLnNob3ctcG93ZXJlZC1ieV09XCJzaG93UG93ZXJlZEJ5Py50b1N0cmluZygpXCI+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhdFdpZGdldENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGFwaWtleTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGFnZW50SWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBhZ2VudE5hbWU6IHN0cmluZyA9ICdTdXBwb3J0IEFnZW50JztcbiAgQElucHV0KCkgYWdlbnRSb2xlOiBzdHJpbmcgPSAnQ3VzdG9tZXIgU3VwcG9ydCc7XG4gIEBJbnB1dCgpIHByaW1hcnlDb2xvcjogc3RyaW5nID0gJyMyZDNlNTAnO1xuICBASW5wdXQoKSBhY2NlbnRDb2xvcjogc3RyaW5nID0gJyM0ZThjZmYnO1xuICBASW5wdXQoKSB3ZWxjb21lTWVzc2FnZTogc3RyaW5nID0gJ0hpISBIb3cgY2FuIEkgaGVscD8nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlclRleHQ6IHN0cmluZyA9ICdUeXBlIHlvdXIgbWVzc2FnZS4uLic7XG4gIEBJbnB1dCgpIHBvc2l0aW9uOiBXaWRnZXRQb3NpdGlvbiA9ICdib3R0b20tcmlnaHQnO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJzM1MCc7XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gJzUwMCc7XG4gIEBJbnB1dCgpIHNob3dNaW5pbWl6ZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dUaW1lc3RhbXBzOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZW5hYmxlRmlsZVVwbG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVTcGVlY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1Bvd2VyZWRCeTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG1lc3NhZ2VTZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1lc3NhZ2U6IHN0cmluZzsgdGltZXN0YW1wOiBEYXRlIH0+KCk7XG4gIEBPdXRwdXQoKSB3aWRnZXRPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB3aWRnZXRDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jaGF0LXdpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBd0MsTUFBTSxlQUFlLENBQUM7O0FBUTdHLE1BQU0sT0FBTyxtQkFBbUI7SUFFcEI7SUFDQTtJQUZWLFlBQ1UsVUFBc0IsRUFDdEIsUUFBbUI7UUFEbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQzFCLENBQUM7SUFDSyxNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckIsU0FBUyxHQUFXLGVBQWUsQ0FBQztJQUNwQyxTQUFTLEdBQVcsa0JBQWtCLENBQUM7SUFDdkMsWUFBWSxHQUFXLFNBQVMsQ0FBQztJQUNqQyxXQUFXLEdBQVcsU0FBUyxDQUFDO0lBQ2hDLGNBQWMsR0FBVyxxQkFBcUIsQ0FBQztJQUMvQyxlQUFlLEdBQVcsc0JBQXNCLENBQUM7SUFDakQsUUFBUSxHQUFtQixjQUFjLENBQUM7SUFDMUMsS0FBSyxHQUFXLEtBQUssQ0FBQztJQUN0QixNQUFNLEdBQVcsS0FBSyxDQUFDO0lBQ3ZCLGtCQUFrQixHQUFZLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQVksSUFBSSxDQUFDO0lBQy9CLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFN0IsV0FBVyxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO0lBQ3ZFLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ3hDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWxELGVBQWU7UUFDYix5Q0FBeUM7UUFD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QUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0UG9zaXRpb24gfSBmcm9tICcuL2NoYXQtd2lkZ2V0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmVyZC1jaGF0LXdpZGdldCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBDaGF0V2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuICBASW5wdXQoKSBhcGlrZXk6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBhZ2VudElkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYWdlbnROYW1lOiBzdHJpbmcgPSAnU3VwcG9ydCBBZ2VudCc7XG4gIEBJbnB1dCgpIGFnZW50Um9sZTogc3RyaW5nID0gJ0N1c3RvbWVyIFN1cHBvcnQnO1xuICBASW5wdXQoKSBwcmltYXJ5Q29sb3I6IHN0cmluZyA9ICcjMmQzZTUwJztcbiAgQElucHV0KCkgYWNjZW50Q29sb3I6IHN0cmluZyA9ICcjNGU4Y2ZmJztcbiAgQElucHV0KCkgd2VsY29tZU1lc3NhZ2U6IHN0cmluZyA9ICdIaSEgSG93IGNhbiBJIGhlbHA/JztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXJUZXh0OiBzdHJpbmcgPSAnVHlwZSB5b3VyIG1lc3NhZ2UuLi4nO1xuICBASW5wdXQoKSBwb3NpdGlvbjogV2lkZ2V0UG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICczNTAnO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICc1MDAnO1xuICBASW5wdXQoKSBzaG93TWluaW1pemVCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93VGltZXN0YW1wczogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGVuYWJsZUZpbGVVcGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlU3BlZWNoOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQb3dlcmVkQnk6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBtZXNzYWdlU2VudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmc7IHRpbWVzdGFtcDogRGF0ZSB9PigpO1xuICBAT3V0cHV0KCkgd2lkZ2V0T3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgd2lkZ2V0Q2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBTZXQgYWxsIGF0dHJpYnV0ZXMgb24gdGhlIGhvc3QgZWxlbWVudFxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXBpa2V5JywgdGhpcy5hcGlrZXkgfHwgJycpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdhZ2VudC1pZCcsIHRoaXMuYWdlbnRJZCB8fCAnJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2FnZW50LW5hbWUnLCB0aGlzLmFnZW50TmFtZSB8fCAnJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2FnZW50LXJvbGUnLCB0aGlzLmFnZW50Um9sZSB8fCAnJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ3ByaW1hcnktY29sb3InLCB0aGlzLnByaW1hcnlDb2xvciB8fCAnJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2FjY2VudC1jb2xvcicsIHRoaXMuYWNjZW50Q29sb3IgfHwgJycpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICd3ZWxjb21lLW1lc3NhZ2UnLCB0aGlzLndlbGNvbWVNZXNzYWdlIHx8ICcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAncGxhY2Vob2xkZXItdGV4dCcsIHRoaXMucGxhY2Vob2xkZXJUZXh0IHx8ICcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAncG9zaXRpb24nLCB0aGlzLnBvc2l0aW9uIHx8ICcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnd2lkdGgnLCB0aGlzLndpZHRoIHx8ICcnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnaGVpZ2h0JywgdGhpcy5oZWlnaHQgfHwgJycpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdzaG93LW1pbmltaXplLWJ1dHRvbicsIHRoaXMuc2hvd01pbmltaXplQnV0dG9uPy50b1N0cmluZygpIHx8ICdmYWxzZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdzaG93LXRpbWVzdGFtcHMnLCB0aGlzLnNob3dUaW1lc3RhbXBzPy50b1N0cmluZygpIHx8ICdmYWxzZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdlbmFibGUtZmlsZS11cGxvYWQnLCB0aGlzLmVuYWJsZUZpbGVVcGxvYWQ/LnRvU3RyaW5nKCkgfHwgJ2ZhbHNlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2VuYWJsZS1zcGVlY2gnLCB0aGlzLmVuYWJsZVNwZWVjaD8udG9TdHJpbmcoKSB8fCAnZmFsc2UnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnc2hvdy1wb3dlcmVkLWJ5JywgdGhpcy5zaG93UG93ZXJlZEJ5Py50b1N0cmluZygpIHx8ICdmYWxzZScpO1xuICB9XG59XG4iXX0=
@@ -4,6 +4,12 @@ import { CommonModule } from '@angular/common';
4
4
  import { defineCustomElements } from 'nerdagent-chat-widget/loader';
5
5
 
6
6
  class ChatWidgetComponent {
7
+ elementRef;
8
+ renderer;
9
+ constructor(elementRef, renderer) {
10
+ this.elementRef = elementRef;
11
+ this.renderer = renderer;
12
+ }
7
13
  apikey = '';
8
14
  agentId = '';
9
15
  agentName = 'Support Agent';
@@ -23,53 +29,33 @@ class ChatWidgetComponent {
23
29
  messageSent = new EventEmitter();
24
30
  widgetOpened = new EventEmitter();
25
31
  widgetClosed = new EventEmitter();
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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: `
28
- <div
29
- nerd-chat-widget
30
- [attr.apikey]="apikey"
31
- [attr.agent-id]="agentId"
32
- [attr.agent-name]="agentName"
33
- [attr.agent-role]="agentRole"
34
- [attr.primary-color]="primaryColor"
35
- [attr.accent-color]="accentColor"
36
- [attr.welcome-message]="welcomeMessage"
37
- [attr.placeholder-text]="placeholderText"
38
- [attr.position]="position"
39
- [attr.width]="width"
40
- [attr.height]="height"
41
- [attr.show-minimize-button]="showMinimizeButton?.toString()"
42
- [attr.show-timestamps]="showTimestamps?.toString()"
43
- [attr.enable-file-upload]="enableFileUpload?.toString()"
44
- [attr.enable-speech]="enableSpeech?.toString()"
45
- [attr.show-powered-by]="showPoweredBy?.toString()">
46
- </div>
47
- `, isInline: true });
32
+ ngAfterViewInit() {
33
+ // Set all attributes on the host element
34
+ const element = this.elementRef.nativeElement;
35
+ this.renderer.setAttribute(element, 'apikey', this.apikey || '');
36
+ this.renderer.setAttribute(element, 'agent-id', this.agentId || '');
37
+ this.renderer.setAttribute(element, 'agent-name', this.agentName || '');
38
+ this.renderer.setAttribute(element, 'agent-role', this.agentRole || '');
39
+ this.renderer.setAttribute(element, 'primary-color', this.primaryColor || '');
40
+ this.renderer.setAttribute(element, 'accent-color', this.accentColor || '');
41
+ this.renderer.setAttribute(element, 'welcome-message', this.welcomeMessage || '');
42
+ this.renderer.setAttribute(element, 'placeholder-text', this.placeholderText || '');
43
+ this.renderer.setAttribute(element, 'position', this.position || '');
44
+ this.renderer.setAttribute(element, 'width', this.width || '');
45
+ this.renderer.setAttribute(element, 'height', this.height || '');
46
+ this.renderer.setAttribute(element, 'show-minimize-button', this.showMinimizeButton?.toString() || 'false');
47
+ this.renderer.setAttribute(element, 'show-timestamps', this.showTimestamps?.toString() || 'false');
48
+ this.renderer.setAttribute(element, 'enable-file-upload', this.enableFileUpload?.toString() || 'false');
49
+ this.renderer.setAttribute(element, 'enable-speech', this.enableSpeech?.toString() || 'false');
50
+ this.renderer.setAttribute(element, 'show-powered-by', this.showPoweredBy?.toString() || 'false');
51
+ }
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
53
+ 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: '', isInline: true });
48
54
  }
49
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWidgetComponent, decorators: [{
50
56
  type: Component,
51
- args: [{ selector: 'nerd-chat-widget', template: `
52
- <div
53
- nerd-chat-widget
54
- [attr.apikey]="apikey"
55
- [attr.agent-id]="agentId"
56
- [attr.agent-name]="agentName"
57
- [attr.agent-role]="agentRole"
58
- [attr.primary-color]="primaryColor"
59
- [attr.accent-color]="accentColor"
60
- [attr.welcome-message]="welcomeMessage"
61
- [attr.placeholder-text]="placeholderText"
62
- [attr.position]="position"
63
- [attr.width]="width"
64
- [attr.height]="height"
65
- [attr.show-minimize-button]="showMinimizeButton?.toString()"
66
- [attr.show-timestamps]="showTimestamps?.toString()"
67
- [attr.enable-file-upload]="enableFileUpload?.toString()"
68
- [attr.enable-speech]="enableSpeech?.toString()"
69
- [attr.show-powered-by]="showPoweredBy?.toString()">
70
- </div>
71
- ` }]
72
- }], propDecorators: { apikey: [{
57
+ args: [{ selector: 'nerd-chat-widget', template: '' }]
58
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { apikey: [{
73
59
  type: Input
74
60
  }], agentId: [{
75
61
  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 } from '@angular/core';\nimport { WidgetPosition } from './chat-widget.types';\n\n@Component({\n selector: 'nerd-chat-widget',\n template: `\n <div\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 {\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
+ {"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, Renderer2 } from '@angular/core';\nimport { WidgetPosition } from './chat-widget.types';\n\n@Component({\n selector: 'nerd-chat-widget',\n template: '',\n styles: []\n})\nexport class ChatWidgetComponent implements AfterViewInit {\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\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 ngAfterViewInit() {\n // Set all attributes on the host element\n const element = this.elementRef.nativeElement;\n \n this.renderer.setAttribute(element, 'apikey', this.apikey || '');\n this.renderer.setAttribute(element, 'agent-id', this.agentId || '');\n this.renderer.setAttribute(element, 'agent-name', this.agentName || '');\n this.renderer.setAttribute(element, 'agent-role', this.agentRole || '');\n this.renderer.setAttribute(element, 'primary-color', this.primaryColor || '');\n this.renderer.setAttribute(element, 'accent-color', this.accentColor || '');\n this.renderer.setAttribute(element, 'welcome-message', this.welcomeMessage || '');\n this.renderer.setAttribute(element, 'placeholder-text', this.placeholderText || '');\n this.renderer.setAttribute(element, 'position', this.position || '');\n this.renderer.setAttribute(element, 'width', this.width || '');\n this.renderer.setAttribute(element, 'height', this.height || '');\n this.renderer.setAttribute(element, 'show-minimize-button', this.showMinimizeButton?.toString() || 'false');\n this.renderer.setAttribute(element, 'show-timestamps', this.showTimestamps?.toString() || 'false');\n this.renderer.setAttribute(element, 'enable-file-upload', this.enableFileUpload?.toString() || 'false');\n this.renderer.setAttribute(element, 'enable-speech', this.enableSpeech?.toString() || 'false');\n this.renderer.setAttribute(element, 'show-powered-by', this.showPoweredBy?.toString() || 'false');\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,7 +1,10 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, ElementRef, AfterViewInit, Renderer2 } from '@angular/core';
2
2
  import { WidgetPosition } from './chat-widget.types';
3
3
  import * as i0 from "@angular/core";
4
- export declare class ChatWidgetComponent {
4
+ export declare class ChatWidgetComponent implements AfterViewInit {
5
+ private elementRef;
6
+ private renderer;
7
+ constructor(elementRef: ElementRef, renderer: Renderer2);
5
8
  apikey: string;
6
9
  agentId: string;
7
10
  agentName: string;
@@ -24,6 +27,7 @@ export declare class ChatWidgetComponent {
24
27
  }>;
25
28
  widgetOpened: EventEmitter<void>;
26
29
  widgetClosed: EventEmitter<void>;
30
+ ngAfterViewInit(): void;
27
31
  static ɵfac: i0.ɵɵFactoryDeclaration<ChatWidgetComponent, never>;
28
32
  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>;
29
33
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nerdagent-chat-widget-angular",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
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": "2eabaac95fff1d713aaad4878beacdfdbb72e401"
43
+ "gitHead": "5a7ca6bcb233aeec42cf3d63503668784b4afaf7"
44
44
  }