nerdagent-chat-widget-angular 1.0.15 → 1.0.17
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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:
|
|
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.
|
|
3
|
+
"version": "1.0.17",
|
|
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": "
|
|
43
|
+
"gitHead": "f46abd47a7632d8fc690b202bfc7c202bcb8b18f"
|
|
44
44
|
}
|