@symphony-talent/component-library 4.179.0 → 4.181.0
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/esm2020/lib/atoms/atoms.module.mjs +5 -1
- package/esm2020/lib/atoms/input-search-checkbox-dropdown/input-search-checkbox-dropdown.component.mjs +6 -4
- package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +156 -0
- package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.mjs +36 -0
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +172 -0
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +2 -0
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.mjs +60 -0
- package/esm2020/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.mjs +22 -0
- package/esm2020/lib/organisms/organisms.module.mjs +12 -4
- package/esm2020/projects/component-library/lib/atoms/atoms.module.mjs +5 -1
- package/esm2020/projects/component-library/lib/atoms/input-search-checkbox-dropdown/input-search-checkbox-dropdown.component.mjs +6 -4
- package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +156 -0
- package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.mjs +36 -0
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +172 -0
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +2 -0
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.mjs +60 -0
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.mjs +22 -0
- package/esm2020/projects/component-library/lib/organisms/organisms.module.mjs +12 -4
- package/esm2020/projects/component-library/public-api.mjs +6 -1
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +428 -9
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2015/symphony-talent-component-library.mjs +428 -9
- package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +425 -9
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library.mjs +425 -9
- package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
- package/lib/atoms/atoms.module.d.ts +13 -12
- package/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +38 -0
- package/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.d.ts +10 -0
- package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +39 -0
- package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +53 -0
- package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.d.ts +16 -0
- package/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.d.ts +7 -0
- package/lib/organisms/organisms.module.d.ts +2 -1
- package/package.json +1 -1
- package/projects/component-library/lib/atoms/atoms.module.d.ts +13 -12
- package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +38 -0
- package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.d.ts +10 -0
- package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +39 -0
- package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +53 -0
- package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.d.ts +16 -0
- package/projects/component-library/lib/organisms/ai-search-assistant-drawer/pipes/new-line-to-br.pipe.d.ts +7 -0
- package/projects/component-library/lib/organisms/organisms.module.d.ts +2 -1
- package/projects/component-library/public-api.d.ts +5 -0
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, forwardRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../icon/icon.component";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class InputTextareaWithSendComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.placeholder = 'Type your message...';
|
|
9
|
+
this.isDisabled = false;
|
|
10
|
+
this.showCharacterCount = false;
|
|
11
|
+
this.minRows = 1;
|
|
12
|
+
this.maxRows = 6;
|
|
13
|
+
this.sendButtonIcon = 'si-arrow-next';
|
|
14
|
+
this.sendButtonAriaLabel = 'Send message';
|
|
15
|
+
this.autoResize = true;
|
|
16
|
+
this.sendClicked = new EventEmitter();
|
|
17
|
+
this.enterPressed = new EventEmitter();
|
|
18
|
+
this.valueChanged = new EventEmitter();
|
|
19
|
+
this.value = '';
|
|
20
|
+
this.currentRows = 1;
|
|
21
|
+
this.onChange = (value) => { };
|
|
22
|
+
this.onTouched = () => { };
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
if (this.autoResize) {
|
|
26
|
+
this.adjustTextareaHeight();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// ControlValueAccessor implementation
|
|
30
|
+
writeValue(value) {
|
|
31
|
+
this.value = value || '';
|
|
32
|
+
if (this.autoResize) {
|
|
33
|
+
setTimeout(() => this.adjustTextareaHeight(), 0);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
registerOnChange(fn) {
|
|
37
|
+
this.onChange = fn;
|
|
38
|
+
}
|
|
39
|
+
registerOnTouched(fn) {
|
|
40
|
+
this.onTouched = fn;
|
|
41
|
+
}
|
|
42
|
+
setDisabledState(isDisabled) {
|
|
43
|
+
this.isDisabled = isDisabled;
|
|
44
|
+
}
|
|
45
|
+
onInputChange(event) {
|
|
46
|
+
const target = event.target;
|
|
47
|
+
this.value = target.value;
|
|
48
|
+
this.onChange(this.value);
|
|
49
|
+
this.valueChanged.emit(this.value);
|
|
50
|
+
if (this.autoResize) {
|
|
51
|
+
this.adjustTextareaHeight();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
onInputKeyPress(event) {
|
|
55
|
+
if (event.key === 'Enter' && !event.shiftKey) {
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
if (this.canSend()) {
|
|
58
|
+
this.onSendClick();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
onSendClick() {
|
|
63
|
+
if (this.canSend()) {
|
|
64
|
+
this.sendClicked.emit(this.value);
|
|
65
|
+
this.enterPressed.emit(this.value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
adjustTextareaHeight() {
|
|
69
|
+
if (!this.textareaElement)
|
|
70
|
+
return;
|
|
71
|
+
const textarea = this.textareaElement.nativeElement;
|
|
72
|
+
// Reset height to auto to get the scroll height
|
|
73
|
+
textarea.style.height = 'auto';
|
|
74
|
+
// Calculate the number of lines
|
|
75
|
+
const lineHeight = 24; // Base line height in pixels
|
|
76
|
+
const padding = 16; // Top + bottom padding
|
|
77
|
+
const minHeight = this.minRows * lineHeight + padding;
|
|
78
|
+
const maxHeight = this.maxRows * lineHeight + padding;
|
|
79
|
+
let newHeight = Math.max(textarea.scrollHeight, minHeight);
|
|
80
|
+
newHeight = Math.min(newHeight, maxHeight);
|
|
81
|
+
textarea.style.height = newHeight + 'px';
|
|
82
|
+
// Update current rows for styling purposes
|
|
83
|
+
this.currentRows = Math.ceil((newHeight - padding) / lineHeight);
|
|
84
|
+
}
|
|
85
|
+
canSend() {
|
|
86
|
+
const trimmedValue = this.value?.trim();
|
|
87
|
+
const hasValue = !!trimmedValue;
|
|
88
|
+
const withinLimit = !this.maxCharacterLimit || this.value.length <= this.maxCharacterLimit;
|
|
89
|
+
return !this.isDisabled && hasValue && withinLimit;
|
|
90
|
+
}
|
|
91
|
+
getCharacterCount() {
|
|
92
|
+
return this.value?.length || 0;
|
|
93
|
+
}
|
|
94
|
+
isCharacterLimitExceeded() {
|
|
95
|
+
return !!this.maxCharacterLimit && this.getCharacterCount() > this.maxCharacterLimit;
|
|
96
|
+
}
|
|
97
|
+
focus() {
|
|
98
|
+
if (this.textareaElement) {
|
|
99
|
+
this.textareaElement.nativeElement.focus();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
clear() {
|
|
103
|
+
this.value = '';
|
|
104
|
+
this.onChange('');
|
|
105
|
+
this.valueChanged.emit('');
|
|
106
|
+
if (this.autoResize) {
|
|
107
|
+
setTimeout(() => this.adjustTextareaHeight(), 0);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
InputTextareaWithSendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
InputTextareaWithSendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: { placeholder: "placeholder", isDisabled: "isDisabled", maxCharacterLimit: "maxCharacterLimit", showCharacterCount: "showCharacterCount", minRows: "minRows", maxRows: "maxRows", sendButtonIcon: "sendButtonIcon", sendButtonAriaLabel: "sendButtonAriaLabel", autoResize: "autoResize" }, outputs: { sendClicked: "sendClicked", enterPressed: "enterPressed", valueChanged: "valueChanged" }, providers: [
|
|
113
|
+
{
|
|
114
|
+
provide: NG_VALUE_ACCESSOR,
|
|
115
|
+
useExisting: forwardRef(() => InputTextareaWithSendComponent),
|
|
116
|
+
multi: true
|
|
117
|
+
}
|
|
118
|
+
], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-textarea-with-send-container\">\n <!-- Character Counter -->\n <div \n class=\"character-counter sfx-mb-10\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span \n class=\"counter-text\"\n [class.counter-exceeded]=\"isCharacterLimitExceeded()\">\n {{ getCharacterCount() }} / {{ maxCharacterLimit }}\n </span>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSend()\"\n [class.disabled]=\"!canSend()\"\n [disabled]=\"!canSend()\"\n (click)=\"onSendClick()\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.character-counter{text-align:right}.character-counter .counter-text{font-size:.75rem;color:#5b6d80}.character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ selector: 'symphony-input-textarea-with-send', providers: [
|
|
122
|
+
{
|
|
123
|
+
provide: NG_VALUE_ACCESSOR,
|
|
124
|
+
useExisting: forwardRef(() => InputTextareaWithSendComponent),
|
|
125
|
+
multi: true
|
|
126
|
+
}
|
|
127
|
+
], template: "<div class=\"input-textarea-with-send-container\">\n <!-- Character Counter -->\n <div \n class=\"character-counter sfx-mb-10\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span \n class=\"counter-text\"\n [class.counter-exceeded]=\"isCharacterLimitExceeded()\">\n {{ getCharacterCount() }} / {{ maxCharacterLimit }}\n </span>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSend()\"\n [class.disabled]=\"!canSend()\"\n [disabled]=\"!canSend()\"\n (click)=\"onSendClick()\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.character-counter{text-align:right}.character-counter .counter-text{font-size:.75rem;color:#5b6d80}.character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"] }]
|
|
128
|
+
}], propDecorators: { placeholder: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], isDisabled: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], maxCharacterLimit: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], showCharacterCount: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], minRows: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], maxRows: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], sendButtonIcon: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], sendButtonAriaLabel: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], autoResize: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], sendClicked: [{
|
|
147
|
+
type: Output
|
|
148
|
+
}], enterPressed: [{
|
|
149
|
+
type: Output
|
|
150
|
+
}], valueChanged: [{
|
|
151
|
+
type: Output
|
|
152
|
+
}], textareaElement: [{
|
|
153
|
+
type: ViewChild,
|
|
154
|
+
args: ['textareaElement']
|
|
155
|
+
}] } });
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQVozQztRQWFXLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXBELFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxDQUFDLENB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QUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQzs7MkhBaklVLDhCQUE4QjsrR0FBOUIsOEJBQThCLHFjQVI5QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO1lBQzdELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiw4SUNiSCw2ckNBdUNPOzJGRHhCTSw4QkFBOEI7a0JBWjFDLFNBQVM7K0JBQ0UsbUNBQW1DLGFBR2xDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDOzRCQUM3RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFHUSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRXVCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdUeXBlIHlvdXIgbWVzc2FnZS4uLic7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVyTGltaXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW5Sb3dzOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBtYXhSb3dzOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSBzZW5kQnV0dG9uSWNvbjogc3RyaW5nID0gJ3NpLWFycm93LW5leHQnO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmcgPSAnU2VuZCBtZXNzYWdlJztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHNlbmRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBlbnRlclByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhRWxlbWVudCcpIHRleHRhcmVhRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBjdXJyZW50Um93czogbnVtYmVyID0gMTtcbiAgXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IHN0cmluZykgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICB0aGlzLnZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICBcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5jYW5TZW5kKCkpIHtcbiAgICAgICAgdGhpcy5vblNlbmRDbGljaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VuZENsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhblNlbmQoKSkge1xuICAgICAgdGhpcy5zZW5kQ2xpY2tlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lbnRlclByZXNzZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRleHRhcmVhSGVpZ2h0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0YXJlYUVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBcbiAgICAvLyBSZXNldCBoZWlnaHQgdG8gYXV0byB0byBnZXQgdGhlIHNjcm9sbCBoZWlnaHRcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbGluZXNcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gMjQ7IC8vIEJhc2UgbGluZSBoZWlnaHQgaW4gcGl4ZWxzXG4gICAgY29uc3QgcGFkZGluZyA9IDE2OyAvLyBUb3AgKyBib3R0b20gcGFkZGluZ1xuICAgIGNvbnN0IG1pbkhlaWdodCA9IHRoaXMubWluUm93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMubWF4Um93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIFxuICAgIGxldCBuZXdIZWlnaHQgPSBNYXRoLm1heCh0ZXh0YXJlYS5zY3JvbGxIZWlnaHQsIG1pbkhlaWdodCk7XG4gICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4obmV3SGVpZ2h0LCBtYXhIZWlnaHQpO1xuICAgIFxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IG5ld0hlaWdodCArICdweCc7XG4gICAgXG4gICAgLy8gVXBkYXRlIGN1cnJlbnQgcm93cyBmb3Igc3R5bGluZyBwdXJwb3Nlc1xuICAgIHRoaXMuY3VycmVudFJvd3MgPSBNYXRoLmNlaWwoKG5ld0hlaWdodCAtIHBhZGRpbmcpIC8gbGluZUhlaWdodCk7XG4gIH1cblxuICBjYW5TZW5kKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHRoaXMudmFsdWU/LnRyaW0oKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9ICEhdHJpbW1lZFZhbHVlO1xuICAgIGNvbnN0IHdpdGhpbkxpbWl0ID0gIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgfHwgdGhpcy52YWx1ZS5sZW5ndGggPD0gdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdDtcbiAgICBcbiAgICByZXR1cm4gIXRoaXMuaXNEaXNhYmxlZCAmJiBoYXNWYWx1ZSAmJiB3aXRoaW5MaW1pdDtcbiAgfVxuXG4gIGdldENoYXJhY3RlckNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgaXNDaGFyYWN0ZXJMaW1pdEV4Y2VlZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgJiYgdGhpcy5nZXRDaGFyYWN0ZXJDb3VudCgpID4gdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdDtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRleHRhcmVhRWxlbWVudCkge1xuICAgICAgdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KCcnKTtcbiAgICBcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKSwgMCk7XG4gICAgfVxuICB9XG59ICIsIjxkaXYgY2xhc3M9XCJpbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQtY29udGFpbmVyXCI+XG4gIDwhLS0gQ2hhcmFjdGVyIENvdW50ZXIgLS0+XG4gIDxkaXYgXG4gICAgY2xhc3M9XCJjaGFyYWN0ZXItY291bnRlciBzZngtbWItMTBcIlxuICAgICpuZ0lmPVwic2hvd0NoYXJhY3RlckNvdW50ICYmIG1heENoYXJhY3RlckxpbWl0XCI+XG4gICAgPHNwYW4gXG4gICAgICBjbGFzcz1cImNvdW50ZXItdGV4dFwiXG4gICAgICBbY2xhc3MuY291bnRlci1leGNlZWRlZF09XCJpc0NoYXJhY3RlckxpbWl0RXhjZWVkZWQoKVwiPlxuICAgICAge3sgZ2V0Q2hhcmFjdGVyQ291bnQoKSB9fSAvIHt7IG1heENoYXJhY3RlckxpbWl0IH19XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cblxuICA8IS0tIElucHV0IHdpdGggU2VuZCBCdXR0b24gLS0+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+XG4gICAgPHRleHRhcmVhXG4gICAgICAjdGV4dGFyZWFFbGVtZW50XG4gICAgICBjbGFzcz1cInRleHRhcmVhLWlucHV0XCJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgW21heExlbmd0aF09XCJtYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uSW5wdXRLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcbiAgICAgIHJvd3M9XCIxXCI+XG4gICAgPC90ZXh0YXJlYT5cbiAgICBcbiAgICA8IS0tIFNlbmQgQnV0dG9uIC0tPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJzZW5kLWJ1dHRvblwiXG4gICAgICBbY2xhc3MuZW5hYmxlZF09XCJjYW5TZW5kKClcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFjYW5TZW5kKClcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TZW5kKClcIlxuICAgICAgKGNsaWNrKT1cIm9uU2VuZENsaWNrKClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZW5kQnV0dG9uQXJpYUxhYmVsXCI+XG4gICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCJzZW5kQnV0dG9uSWNvblwiIFtzaXplXT1cIicxMHB4J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj4gIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
// Atomic components
|
|
5
|
+
import { IconModule } from '../icon/icon.module';
|
|
6
|
+
// Component
|
|
7
|
+
import { InputTextareaWithSendComponent } from './input-textarea-with-send.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class InputTextareaWithSendModule {
|
|
10
|
+
}
|
|
11
|
+
InputTextareaWithSendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
InputTextareaWithSendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, declarations: [InputTextareaWithSendComponent], imports: [CommonModule,
|
|
13
|
+
FormsModule,
|
|
14
|
+
IconModule], exports: [InputTextareaWithSendComponent] });
|
|
15
|
+
InputTextareaWithSendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, imports: [[
|
|
16
|
+
CommonModule,
|
|
17
|
+
FormsModule,
|
|
18
|
+
IconModule
|
|
19
|
+
]] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
declarations: [
|
|
24
|
+
InputTextareaWithSendComponent
|
|
25
|
+
],
|
|
26
|
+
imports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
FormsModule,
|
|
29
|
+
IconModule
|
|
30
|
+
],
|
|
31
|
+
exports: [
|
|
32
|
+
InputTextareaWithSendComponent
|
|
33
|
+
]
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsWUFBWTtBQUNaLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQWV0RixNQUFNLE9BQU8sMkJBQTJCOzt3SEFBM0IsMkJBQTJCO3lIQUEzQiwyQkFBMkIsaUJBWHBDLDhCQUE4QixhQUc5QixZQUFZO1FBQ1osV0FBVztRQUNYLFVBQVUsYUFHViw4QkFBOEI7eUhBR3JCLDJCQUEyQixZQVQ3QjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsVUFBVTtTQUNYOzJGQUtVLDJCQUEyQjtrQkFidkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osOEJBQThCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFVBQVU7cUJBQ1g7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDhCQUE4QjtxQkFDL0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vLyBBdG9taWMgY29tcG9uZW50c1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xuXG4vLyBDb21wb25lbnRcbmltcG9ydCB7IElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEljb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dGFyZWFXaXRoU2VuZE1vZHVsZSB7IH0gIl19
|
package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../atoms/icon/icon.component";
|
|
4
|
+
import * as i2 from "../../atoms/h3/h3.component";
|
|
5
|
+
import * as i3 from "../../atoms/paragraph/paragraph.component";
|
|
6
|
+
import * as i4 from "../../atoms/sfx-loader/sfx-loader.component";
|
|
7
|
+
import * as i5 from "../../atoms/button-v2/button.component";
|
|
8
|
+
import * as i6 from "../../atoms/input-textarea-with-send/input-textarea-with-send.component";
|
|
9
|
+
import * as i7 from "@angular/common";
|
|
10
|
+
import * as i8 from "@angular/forms";
|
|
11
|
+
import * as i9 from "./pipes/new-line-to-br.pipe";
|
|
12
|
+
export class AISearchAssistantDrawerComponent {
|
|
13
|
+
constructor(cdr) {
|
|
14
|
+
this.cdr = cdr;
|
|
15
|
+
this.model = {
|
|
16
|
+
isOpen: false,
|
|
17
|
+
messages: [],
|
|
18
|
+
suggestedPrompts: [],
|
|
19
|
+
isLoading: false,
|
|
20
|
+
hasError: false,
|
|
21
|
+
inputValue: '',
|
|
22
|
+
maxCharacterLimit: 1000
|
|
23
|
+
};
|
|
24
|
+
this.config = {
|
|
25
|
+
welcomeMessage: 'Hello! I\'m your AI Writing Assistant. How can I help you today?',
|
|
26
|
+
placeholder: 'Message AI Assistant',
|
|
27
|
+
maxMessages: 100,
|
|
28
|
+
autoScroll: true,
|
|
29
|
+
showTimestamps: true,
|
|
30
|
+
enableSuggestedPrompts: true
|
|
31
|
+
};
|
|
32
|
+
// Simple event outputs following Symphony patterns
|
|
33
|
+
this.drawerClosed = new EventEmitter();
|
|
34
|
+
this.promptSelected = new EventEmitter();
|
|
35
|
+
this.messageSent = new EventEmitter();
|
|
36
|
+
this.inputChanged = new EventEmitter();
|
|
37
|
+
this.retryClicked = new EventEmitter();
|
|
38
|
+
this.shouldScrollToBottom = false;
|
|
39
|
+
this.hasAddedWelcomeMessage = false;
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
// Add welcome message if configured and no messages exist
|
|
43
|
+
this.addWelcomeMessageIfNeeded();
|
|
44
|
+
}
|
|
45
|
+
ngAfterViewChecked() {
|
|
46
|
+
if (this.shouldScrollToBottom && this.config.autoScroll) {
|
|
47
|
+
this.scrollToBottom();
|
|
48
|
+
this.shouldScrollToBottom = false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
trackByMessageId(index, message) {
|
|
52
|
+
return message.id;
|
|
53
|
+
}
|
|
54
|
+
onToggleDrawer() {
|
|
55
|
+
this.model.isOpen = !this.model.isOpen;
|
|
56
|
+
if (this.model.isOpen) {
|
|
57
|
+
// Add welcome message as first message if not already added and no messages exist
|
|
58
|
+
this.addWelcomeMessageIfNeeded();
|
|
59
|
+
// Focus the input field when opening
|
|
60
|
+
setTimeout(() => {
|
|
61
|
+
if (this.messageInput) {
|
|
62
|
+
this.messageInput.focus();
|
|
63
|
+
}
|
|
64
|
+
}, 300); // Wait for animation to complete
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.drawerClosed.emit();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onPromptClick(prompt) {
|
|
71
|
+
this.promptSelected.emit(prompt);
|
|
72
|
+
// Copy prompt text to input instead of auto-sending
|
|
73
|
+
this.model.inputValue = prompt.text;
|
|
74
|
+
this.inputChanged.emit(prompt.text);
|
|
75
|
+
// Focus the input field for better UX
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
if (this.messageInput) {
|
|
78
|
+
this.messageInput.focus();
|
|
79
|
+
}
|
|
80
|
+
}, 100);
|
|
81
|
+
}
|
|
82
|
+
onSendMessage() {
|
|
83
|
+
const message = this.model.inputValue?.trim();
|
|
84
|
+
if (message && !this.model.isLoading) {
|
|
85
|
+
// Create generic event payload
|
|
86
|
+
const messageEvent = {
|
|
87
|
+
content: message,
|
|
88
|
+
context: this.model.context // Pass any context data
|
|
89
|
+
};
|
|
90
|
+
// Clear input immediately for better UX
|
|
91
|
+
this.model.inputValue = '';
|
|
92
|
+
// Emit event for parent to handle
|
|
93
|
+
this.messageSent.emit(messageEvent);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
onInputChange(value) {
|
|
97
|
+
this.model.inputValue = value;
|
|
98
|
+
this.inputChanged.emit(value);
|
|
99
|
+
}
|
|
100
|
+
onRetry() {
|
|
101
|
+
this.retryClicked.emit();
|
|
102
|
+
}
|
|
103
|
+
scrollToBottom() {
|
|
104
|
+
if (this.chatContainer) {
|
|
105
|
+
const element = this.chatContainer.nativeElement;
|
|
106
|
+
element.scrollTop = element.scrollHeight;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Gets formatted time string for message timestamp
|
|
111
|
+
*/
|
|
112
|
+
getMessageTime(timestamp) {
|
|
113
|
+
const date = typeof timestamp === 'string' ? new Date(timestamp) : timestamp;
|
|
114
|
+
return date.toLocaleString('en-US', {
|
|
115
|
+
month: 'short',
|
|
116
|
+
day: 'numeric',
|
|
117
|
+
hour: 'numeric',
|
|
118
|
+
minute: '2-digit',
|
|
119
|
+
hour12: true
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Gets the display text for message status
|
|
124
|
+
*/
|
|
125
|
+
getStatusText(status) {
|
|
126
|
+
const statusMap = {
|
|
127
|
+
'pending': 'Sending...',
|
|
128
|
+
'delivered': 'Delivered',
|
|
129
|
+
'error': 'Failed to send'
|
|
130
|
+
};
|
|
131
|
+
return statusMap[status] || '';
|
|
132
|
+
}
|
|
133
|
+
addWelcomeMessageIfNeeded() {
|
|
134
|
+
if (!this.hasAddedWelcomeMessage && this.model.messages.length === 0 && this.config.welcomeMessage) {
|
|
135
|
+
this.model.messages.push({
|
|
136
|
+
id: 'welcome-message',
|
|
137
|
+
content: this.config.welcomeMessage,
|
|
138
|
+
timestamp: new Date(),
|
|
139
|
+
type: 'ai'
|
|
140
|
+
});
|
|
141
|
+
this.hasAddedWelcomeMessage = true;
|
|
142
|
+
this.shouldScrollToBottom = true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
AISearchAssistantDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
147
|
+
AISearchAssistantDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AISearchAssistantDrawerComponent, selector: "symphony-ai-search-assistant-drawer", inputs: { model: "model", config: "config" }, outputs: { drawerClosed: "drawerClosed", promptSelected: "promptSelected", messageSent: "messageSent", inputChanged: "inputChanged", retryClicked: "retryClicked" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"model.isOpen = !model.isOpen; onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI Assisted Messaging'\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- Loading Message -->\n <div \n class=\"ai-message-wrapper ai-loading-message\"\n *ngIf=\"model.isLoading\">\n <div class=\"ai-message-bubble ai-message\">\n <div class=\"ai-message-icon\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n <div class=\"ai-loading-content\">\n <symphony-sfx-loader size=\"small\"></symphony-sfx-loader>\n <symphony-paragraph class=\"ai-loading-text sfx-m-0\">\n AI is thinking...\n </symphony-paragraph>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Error State -->\n <div \n class=\"ai-error-container sfx-mt-15\"\n *ngIf=\"model.hasError\">\n <symphony-paragraph class=\"ai-error-message sfx-m-0\">\n {{ model.errorMessage }}\n </symphony-paragraph>\n <symphony-button-v2 \n variant=\"secondary\"\n size=\"small\"\n (click)=\"onRetry()\">\n Try Again\n </symphony-button-v2>\n </div>\n </div>\n\n <!-- Suggested Prompts -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-error-container{display:flex;flex-direction:column;align-items:center;gap:.625rem;padding:.9375rem;background-color:#fdf2f2;border:1px solid #AC4463;border-radius:8px}.ai-error-container .ai-error-message{color:#ac4463;text-align:center}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i5.ButtonV2Component, selector: "symphony-button-v2" }, { type: i6.InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: ["placeholder", "isDisabled", "maxCharacterLimit", "showCharacterCount", "minRows", "maxRows", "sendButtonIcon", "sendButtonAriaLabel", "autoResize"], outputs: ["sendClicked", "enterPressed", "valueChanged"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "newLineToBr": i9.NewLineToBrPipe } });
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, decorators: [{
|
|
149
|
+
type: Component,
|
|
150
|
+
args: [{ selector: 'symphony-ai-search-assistant-drawer', template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"model.isOpen = !model.isOpen; onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI Assisted Messaging'\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- Loading Message -->\n <div \n class=\"ai-message-wrapper ai-loading-message\"\n *ngIf=\"model.isLoading\">\n <div class=\"ai-message-bubble ai-message\">\n <div class=\"ai-message-icon\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n <div class=\"ai-loading-content\">\n <symphony-sfx-loader size=\"small\"></symphony-sfx-loader>\n <symphony-paragraph class=\"ai-loading-text sfx-m-0\">\n AI is thinking...\n </symphony-paragraph>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Error State -->\n <div \n class=\"ai-error-container sfx-mt-15\"\n *ngIf=\"model.hasError\">\n <symphony-paragraph class=\"ai-error-message sfx-m-0\">\n {{ model.errorMessage }}\n </symphony-paragraph>\n <symphony-button-v2 \n variant=\"secondary\"\n size=\"small\"\n (click)=\"onRetry()\">\n Try Again\n </symphony-button-v2>\n </div>\n </div>\n\n <!-- Suggested Prompts -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-error-container{display:flex;flex-direction:column;align-items:center;gap:.625rem;padding:.9375rem;background-color:#fdf2f2;border:1px solid #AC4463;border-radius:8px}.ai-error-container .ai-error-message{color:#ac4463;text-align:center}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
|
|
151
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], config: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], drawerClosed: [{
|
|
156
|
+
type: Output
|
|
157
|
+
}], promptSelected: [{
|
|
158
|
+
type: Output
|
|
159
|
+
}], messageSent: [{
|
|
160
|
+
type: Output
|
|
161
|
+
}], inputChanged: [{
|
|
162
|
+
type: Output
|
|
163
|
+
}], retryClicked: [{
|
|
164
|
+
type: Output
|
|
165
|
+
}], chatContainer: [{
|
|
166
|
+
type: ViewChild,
|
|
167
|
+
args: ['chatContainer']
|
|
168
|
+
}], messageInput: [{
|
|
169
|
+
type: ViewChild,
|
|
170
|
+
args: ['messageInput']
|
|
171
|
+
}] } });
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFTM0ksTUFBTSxPQUFPLGdDQUFnQztJQWlDM0MsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQ2pDLFVBQUssR0FBMkI7WUFDdkMsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsRUFBRTtZQUNaLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsRUFBRTtZQUNkLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQztRQUVPLFdBQU0sR0FBNEI7WUFDekMsY0FBYyxFQUFFLGtFQUFrRTtZQUNsRixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQztRQUVGLG1EQUFtRDtRQUN6QyxpQkFBWSxHQUFHLElB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QUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDckIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDSCxDQUFDOzs2SEExSlUsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsNmVDVDdDLDRnTEE2Sk87MkZEcEpNLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSxxQ0FBcUM7d0dBS3RDLEtBQUs7c0JBQWIsS0FBSztnQkFVRyxNQUFNO3NCQUFkLEtBQUs7Z0JBVUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0MsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0NoZWNrZWQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCwgQ2hhdE1lc3NhZ2UsIFN1Z2dlc3RlZFByb21wdCwgQUlTZWFyY2hBc3Npc3RhbnRDb25maWcsIE1lc3NhZ2VFdmVudCB9IGZyb20gJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBtb2RlbDogQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCA9IHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBzdWdnZXN0ZWRQcm9tcHRzOiBbXSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGhhc0Vycm9yOiBmYWxzZSxcbiAgICBpbnB1dFZhbHVlOiAnJyxcbiAgICBtYXhDaGFyYWN0ZXJMaW1pdDogMTAwMFxuICB9O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogQUlTZWFyY2hBc3Npc3RhbnRDb25maWcgPSB7XG4gICAgd2VsY29tZU1lc3NhZ2U6ICdIZWxsbyEgSVxcJ20geW91ciBBSSBXcml0aW5nIEFzc2lzdGFudC4gSG93IGNhbiBJIGhlbHAgeW91IHRvZGF5PycsXG4gICAgcGxhY2Vob2xkZXI6ICdNZXNzYWdlIEFJIEFzc2lzdGFudCcsXG4gICAgbWF4TWVzc2FnZXM6IDEwMCxcbiAgICBhdXRvU2Nyb2xsOiB0cnVlLFxuICAgIHNob3dUaW1lc3RhbXBzOiB0cnVlLFxuICAgIGVuYWJsZVN1Z2dlc3RlZFByb21wdHM6IHRydWVcbiAgfTtcblxuICAvLyBTaW1wbGUgZXZlbnQgb3V0cHV0cyBmb2xsb3dpbmcgU3ltcGhvbnkgcGF0dGVybnNcbiAgQE91dHB1dCgpIGRyYXdlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHByb21wdFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTdWdnZXN0ZWRQcm9tcHQ+KCk7XG4gIEBPdXRwdXQoKSBtZXNzYWdlU2VudCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVzc2FnZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZXRyeUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY2hhdENvbnRhaW5lcicpIGNoYXRDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnbWVzc2FnZUlucHV0JykgbWVzc2FnZUlucHV0ITogSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2hvdWxkU2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcbiAgcHJpdmF0ZSBoYXNBZGRlZFdlbGNvbWVNZXNzYWdlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEFkZCB3ZWxjb21lIG1lc3NhZ2UgaWYgY29uZmlndXJlZCBhbmQgbm8gbWVzc2FnZXMgZXhpc3RcbiAgICB0aGlzLmFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSAmJiB0aGlzLmNvbmZpZy5hdXRvU2Nyb2xsKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgICB0aGlzLnNob3VsZFNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeU1lc3NhZ2VJZChpbmRleDogbnVtYmVyLCBtZXNzYWdlOiBDaGF0TWVzc2FnZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG1lc3NhZ2UuaWQ7XG4gIH1cblxuICBvblRvZ2dsZURyYXdlcigpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlzT3BlbiA9ICF0aGlzLm1vZGVsLmlzT3BlbjtcbiAgICBpZiAodGhpcy5tb2RlbC5pc09wZW4pIHtcbiAgICAgIC8vIEFkZCB3ZWxjb21lIG1lc3NhZ2UgYXMgZmlyc3QgbWVzc2FnZSBpZiBub3QgYWxyZWFkeSBhZGRlZCBhbmQgbm8gbWVzc2FnZXMgZXhpc3RcbiAgICAgIHRoaXMuYWRkV2VsY29tZU1lc3NhZ2VJZk5lZWRlZCgpO1xuICAgICAgXG4gICAgICAvLyBGb2N1cyB0aGUgaW5wdXQgZmllbGQgd2hlbiBvcGVuaW5nXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZUlucHV0KSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlSW5wdXQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMzAwKTsgLy8gV2FpdCBmb3IgYW5pbWF0aW9uIHRvIGNvbXBsZXRlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJhd2VyQ2xvc2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblByb21wdENsaWNrKHByb21wdDogU3VnZ2VzdGVkUHJvbXB0KTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZWxlY3RlZC5lbWl0KHByb21wdCk7XG4gICAgLy8gQ29weSBwcm9tcHQgdGV4dCB0byBpbnB1dCBpbnN0ZWFkIG9mIGF1dG8tc2VuZGluZ1xuICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9IHByb21wdC50ZXh0O1xuICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQocHJvbXB0LnRleHQpO1xuICAgIFxuICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBmaWVsZCBmb3IgYmV0dGVyIFVYXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlSW5wdXQpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5wdXQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25TZW5kTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tb2RlbC5pbnB1dFZhbHVlPy50cmltKCk7XG4gICAgaWYgKG1lc3NhZ2UgJiYgIXRoaXMubW9kZWwuaXNMb2FkaW5nKSB7XG4gICAgICAvLyBDcmVhdGUgZ2VuZXJpYyBldmVudCBwYXlsb2FkXG4gICAgICBjb25zdCBtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCA9IHtcbiAgICAgICAgY29udGVudDogbWVzc2FnZSxcbiAgICAgICAgY29udGV4dDogdGhpcy5tb2RlbC5jb250ZXh0IC8vIFBhc3MgYW55IGNvbnRleHQgZGF0YVxuICAgICAgfTtcblxuICAgICAgLy8gQ2xlYXIgaW5wdXQgaW1tZWRpYXRlbHkgZm9yIGJldHRlciBVWFxuICAgICAgdGhpcy5tb2RlbC5pbnB1dFZhbHVlID0gJyc7XG4gICAgICBcbiAgICAgIC8vIEVtaXQgZXZlbnQgZm9yIHBhcmVudCB0byBoYW5kbGVcbiAgICAgIHRoaXMubWVzc2FnZVNlbnQuZW1pdChtZXNzYWdlRXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgb25SZXRyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnJldHJ5Q2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoYXRDb250YWluZXIpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNoYXRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIGVsZW1lbnQuc2Nyb2xsVG9wID0gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZm9ybWF0dGVkIHRpbWUgc3RyaW5nIGZvciBtZXNzYWdlIHRpbWVzdGFtcFxuICAgKi9cbiAgZ2V0TWVzc2FnZVRpbWUodGltZXN0YW1wOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gdHlwZW9mIHRpbWVzdGFtcCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZSh0aW1lc3RhbXApIDogdGltZXN0YW1wO1xuICAgIFxuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgIG1vbnRoOiAnc2hvcnQnLCBcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICBob3VyMTI6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkaXNwbGF5IHRleHQgZm9yIG1lc3NhZ2Ugc3RhdHVzXG4gICAqL1xuICBnZXRTdGF0dXNUZXh0KHN0YXR1czogJ3BlbmRpbmcnIHwgJ2RlbGl2ZXJlZCcgfCAnZXJyb3InKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGF0dXNNYXAgPSB7XG4gICAgICAncGVuZGluZyc6ICdTZW5kaW5nLi4uJyxcbiAgICAgICdkZWxpdmVyZWQnOiAnRGVsaXZlcmVkJyxcbiAgICAgICdlcnJvcic6ICdGYWlsZWQgdG8gc2VuZCdcbiAgICB9O1xuICAgIFxuICAgIHJldHVybiBzdGF0dXNNYXBbc3RhdHVzXSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgYWRkV2VsY29tZU1lc3NhZ2VJZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWRkZWRXZWxjb21lTWVzc2FnZSAmJiB0aGlzLm1vZGVsLm1lc3NhZ2VzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmNvbmZpZy53ZWxjb21lTWVzc2FnZSkge1xuICAgICAgdGhpcy5tb2RlbC5tZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgaWQ6ICd3ZWxjb21lLW1lc3NhZ2UnLFxuICAgICAgICBjb250ZW50OiB0aGlzLmNvbmZpZy53ZWxjb21lTWVzc2FnZSxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICB0eXBlOiAnYWknXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaGFzQWRkZWRXZWxjb21lTWVzc2FnZSA9IHRydWU7XG4gICAgICB0aGlzLnNob3VsZFNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn0gIiwiPCEtLSBEcmF3ZXIgQ29udGFpbmVyIC0tPlxuPGRpdiBcbiAgY2xhc3M9XCJhaS1kcmF3ZXItY29udGFpbmVyXCIgXG4gIFtjbGFzcy5vcGVuXT1cIm1vZGVsLmlzT3BlblwiPlxuICBcbiAgPCEtLSBFZGdlIFRvZ2dsZSBCdXR0b24gKGluc2lkZSBkcmF3ZXIgY29udGFpbmVyKSAtLT5cbiAgPGJ1dHRvbiBcbiAgICBjbGFzcz1cImFpLWRyYXdlci1lZGdlLXRvZ2dsZVwiXG4gICAgW2NsYXNzLmRyYXdlci1vcGVuXT1cIm1vZGVsLmlzT3BlblwiXG4gICAgKGNsaWNrKT1cIm1vZGVsLmlzT3BlbiA9ICFtb2RlbC5pc09wZW47IG9uVG9nZ2xlRHJhd2VyKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIEFJIEFzc2lzdGFudCcgOiAnT3BlbiBBSSBBc3Npc3RhbnQnXCJcbiAgICBbdGl0bGVdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIEFJIEFzc2lzdGFudCcgOiAnQUkgQXNzaXN0ZWQgTWVzc2FnaW5nJ1wiPlxuICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIm1vZGVsLmlzT3BlbiA/ICdzaS1hcnJvdy1uZXh0JyA6ICdzaS1hcnJvdy1wcmV2J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgPC9idXR0b24+XG4gIFxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1oZWFkZXJcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIDxzeW1waG9ueS1oMyBjbGFzcz1cImFpLWRyYXdlci10aXRsZSBzZngtbS0wXCI+QUkgV3JpdGluZyBBc3Npc3RhbnQ8L3N5bXBob255LWgzPlxuICA8L2Rpdj5cblxuICA8IS0tIENoYXQgQ29udGFpbmVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWJvZHlcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gTWVzc2FnZXMgQXJlYSAtLT5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJhaS1jaGF0LWNvbnRhaW5lclwiIFxuICAgICAgI2NoYXRDb250YWluZXI+XG4gICAgICBcbiAgICAgIDwhLS0gTWVzc2FnZSBMaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtbGlzdCBzZngtbWItMjBcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtb2RlbC5tZXNzYWdlczsgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VJZFwiXG4gICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXdyYXBwZXJcIlxuICAgICAgICAgIFthdHRyLmRhdGEtbWVzc2FnZS10eXBlXT1cIm1lc3NhZ2UudHlwZVwiPlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gVGltZXN0YW1wIEFib3ZlIE1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS10aW1lc3RhbXAtY29udGFpbmVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnNob3dUaW1lc3RhbXBzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLW1lc3NhZ2UtdGltZXN0YW1wXCI+XG4gICAgICAgICAgICAgIHt7IGdldE1lc3NhZ2VUaW1lKG1lc3NhZ2UudGltZXN0YW1wKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBCdWJibGUgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1idWJibGVcIlxuICAgICAgICAgICAgW2NsYXNzLnVzZXItbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICd1c2VyJ1wiXG4gICAgICAgICAgICBbY2xhc3MuYWktbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICdhaSdcIlxuICAgICAgICAgICAgW2NsYXNzLnN5c3RlbS1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ3N5c3RlbSdcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBBSSBNZXNzYWdlIEljb24gLS0+XG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtaWNvblwiIFxuICAgICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ2FpJ1wiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktY2hhdGJvdCdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWNvbnRlbnQgc2Z4LW0tMFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLmNvbnRlbnQgfCBuZXdMaW5lVG9CclwiPlxuICAgICAgICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBTdGF0dXMgKGZvciB1c2VyIG1lc3NhZ2VzKSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXN0YXR1c1wiXG4gICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ3VzZXInICYmIG1lc3NhZ2Uuc3RhdHVzXCI+XG4gICAgICAgICAgICA8c3BhbiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1zdGF0dXMtdGV4dFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtZGVsaXZlcmVkXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAnZGVsaXZlcmVkJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtcGVuZGluZ109XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1lcnJvcl09XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ2Vycm9yJ1wiPlxuICAgICAgICAgICAgICB7eyBnZXRTdGF0dXNUZXh0KG1lc3NhZ2Uuc3RhdHVzKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIExvYWRpbmcgTWVzc2FnZSAtLT5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utd3JhcHBlciBhaS1sb2FkaW5nLW1lc3NhZ2VcIlxuICAgICAgICAgICpuZ0lmPVwibW9kZWwuaXNMb2FkaW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtYnViYmxlIGFpLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1tZXNzYWdlLWljb25cIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWNoYXRib3QnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWktbG9hZGluZy1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1zZngtbG9hZGVyIHNpemU9XCJzbWFsbFwiPjwvc3ltcGhvbnktc2Z4LWxvYWRlcj5cbiAgICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cImFpLWxvYWRpbmctdGV4dCBzZngtbS0wXCI+XG4gICAgICAgICAgICAgICAgQUkgaXMgdGhpbmtpbmcuLi5cbiAgICAgICAgICAgICAgPC9zeW1waG9ueS1wYXJhZ3JhcGg+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBFcnJvciBTdGF0ZSAtLT5cbiAgICAgIDxkaXYgXG4gICAgICAgIGNsYXNzPVwiYWktZXJyb3ItY29udGFpbmVyIHNmeC1tdC0xNVwiXG4gICAgICAgICpuZ0lmPVwibW9kZWwuaGFzRXJyb3JcIj5cbiAgICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cImFpLWVycm9yLW1lc3NhZ2Ugc2Z4LW0tMFwiPlxuICAgICAgICAgIHt7IG1vZGVsLmVycm9yTWVzc2FnZSB9fVxuICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgPHN5bXBob255LWJ1dHRvbi12MiBcbiAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIChjbGljayk9XCJvblJldHJ5KClcIj5cbiAgICAgICAgICBUcnkgQWdhaW5cbiAgICAgICAgPC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU3VnZ2VzdGVkIFByb21wdHMgLS0+XG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGVkLXByb21wdHNcIlxuICAgICAgKm5nSWY9XCJjb25maWcuZW5hYmxlU3VnZ2VzdGVkUHJvbXB0cyAmJiBtb2RlbC5zdWdnZXN0ZWRQcm9tcHRzLmxlbmd0aCA+IDBcIj5cbiAgICAgIFxuICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cImFpLXByb21wdHMtaW50cm8gc2Z4LW1iLTE1XCI+XG4gICAgICAgIE5lZWQgaGVscCB3cml0aW5nIGFuIGVtYWlsPyBIZXJlIGFyZSBhIGZldyBzdWdnZXN0ZWQgcHJvbXB0cyB0byBnZXQgeW91IHN0YXJ0ZWQuXG4gICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImFpLXByb21wdHMtbGlzdFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb21wdCBvZiBtb2RlbC5zdWdnZXN0ZWRQcm9tcHRzXCJcbiAgICAgICAgICBjbGFzcz1cImFpLXByb21wdC1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvblByb21wdENsaWNrKHByb21wdClcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaWNvbiBcbiAgICAgICAgICAgICpuZ0lmPVwicHJvbXB0Lmljb25cIiBcbiAgICAgICAgICAgIFtpY29uXT1cIidzaS0nICsgcHJvbXB0Lmljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtaWNvblwiPlxuICAgICAgICAgIDwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLXByb21wdC10ZXh0XCI+e3sgcHJvbXB0LnRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyIC8gSW5wdXQgQXJlYSAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1mb290ZXJcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gSW5wdXQgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJhaS1pbnB1dC1yb3dcIj5cbiAgICAgIDxzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmRcbiAgICAgICAgI21lc3NhZ2VJbnB1dFxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmlucHV0VmFsdWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nXCJcbiAgICAgICAgW21heENoYXJhY3RlckxpbWl0XT1cIm1vZGVsLm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgICAgW3Nob3dDaGFyYWN0ZXJDb3VudF09XCIhIW1vZGVsLm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgICAgKHNlbmRDbGlja2VkKT1cIm9uU2VuZE1lc3NhZ2UoKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGVudGVyUHJlc3NlZCk9XCJvblNlbmRNZXNzYWdlKClcIj5cbiAgICAgIDwvc3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiAiXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDaGF0TWVzc2FnZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6ICd1c2VyJyB8ICdhaScgfCAnc3lzdGVtJztcbiAgY29udGVudDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IERhdGUgfCBzdHJpbmc7XG4gIHN0YXR1cz86ICdwZW5kaW5nJyB8ICdkZWxpdmVyZWQnIHwgJ2Vycm9yJztcbiAgLy8gR2VuZXJpYyBmaWVsZHMgZm9yIGFueSBBUEkgaW50ZWdyYXRpb25cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3RlZFByb21wdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgLy8gR2VuZXJpYyBtZXRhZGF0YSBmb3IgYW55IHByb21wdCBzeXN0ZW1cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbkluZm8ge1xuICBpZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBEYXRlIHwgc3RyaW5nO1xuICBzdGF0dXM6ICdwZW5kaW5nJyB8ICdkZWxpdmVyZWQnIHwgJ2Vycm9yJztcbiAgcmVuZGVyU3RhdHVzPzogYm9vbGVhbjtcbiAgbGFzdE1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVNlYXJjaEFzc2lzdGFudE1vZGVsIHtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBtZXNzYWdlczogQ2hhdE1lc3NhZ2VbXTtcbiAgc3VnZ2VzdGVkUHJvbXB0czogU3VnZ2VzdGVkUHJvbXB0W107XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaGFzRXJyb3I6IGJvb2xlYW47XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgaW5wdXRWYWx1ZT86IHN0cmluZztcbiAgbWF4Q2hhcmFjdGVyTGltaXQ/OiBudW1iZXI7XG4gIC8vIEdlbmVyaWMgY29udGV4dCB0aGF0IGNhbiBob2xkIGFueSBkYXRhIHN0cnVjdHVyZVxuICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVNlYXJjaEFzc2lzdGFudENvbmZpZyB7XG4gIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWF4TWVzc2FnZXM/OiBudW1iZXI7XG4gIGF1dG9TY3JvbGw/OiBib29sZWFuO1xuICBzaG93VGltZXN0YW1wcz86IGJvb2xlYW47XG4gIGVuYWJsZVN1Z2dlc3RlZFByb21wdHM/OiBib29sZWFuO1xuICAvLyBHZW5lcmljIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICBmZWF0dXJlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xufVxuXG4vLyBHZW5lcmljIGV2ZW50IHBheWxvYWQgaW50ZXJmYWNlc1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlRXZlbnQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkV2ZW50IHtcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZVR5cGUgPSAndXNlcicgfCAnYWknIHwgJ3N5c3RlbSc7XG5leHBvcnQgdHlwZSBNZXNzYWdlU3RhdHVzID0gJ3BlbmRpbmcnIHwgJ2RlbGl2ZXJlZCcgfCAnZXJyb3InOyAiXX0=
|
package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.module.mjs
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
// Component Library imports
|
|
5
|
+
import { H3Module } from '../../atoms/h3/h3.module';
|
|
6
|
+
import { IconModule } from '../../atoms/icon/icon.module';
|
|
7
|
+
import { ParagraphModule } from '../../atoms/paragraph/paragraph.module';
|
|
8
|
+
import { ButtonV2Module } from '../../atoms/button-v2/button.module';
|
|
9
|
+
import { SfxLoaderModule } from '../../atoms/sfx-loader/sfx-loader.module';
|
|
10
|
+
import { InputTextareaWithSendModule } from '../../atoms/input-textarea-with-send/input-textarea-with-send.module';
|
|
11
|
+
// Custom pipes
|
|
12
|
+
import { NewLineToBrPipe } from './pipes/new-line-to-br.pipe';
|
|
13
|
+
// Main component
|
|
14
|
+
import { AISearchAssistantDrawerComponent } from './ai-search-assistant-drawer.component';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
export class AISearchAssistantDrawerModule {
|
|
17
|
+
}
|
|
18
|
+
AISearchAssistantDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
AISearchAssistantDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, declarations: [AISearchAssistantDrawerComponent,
|
|
20
|
+
NewLineToBrPipe], imports: [CommonModule,
|
|
21
|
+
FormsModule,
|
|
22
|
+
H3Module,
|
|
23
|
+
IconModule,
|
|
24
|
+
ParagraphModule,
|
|
25
|
+
ButtonV2Module,
|
|
26
|
+
SfxLoaderModule,
|
|
27
|
+
InputTextareaWithSendModule], exports: [AISearchAssistantDrawerComponent] });
|
|
28
|
+
AISearchAssistantDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, imports: [[
|
|
29
|
+
CommonModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
H3Module,
|
|
32
|
+
IconModule,
|
|
33
|
+
ParagraphModule,
|
|
34
|
+
ButtonV2Module,
|
|
35
|
+
SfxLoaderModule,
|
|
36
|
+
InputTextareaWithSendModule
|
|
37
|
+
]] });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerModule, decorators: [{
|
|
39
|
+
type: NgModule,
|
|
40
|
+
args: [{
|
|
41
|
+
declarations: [
|
|
42
|
+
AISearchAssistantDrawerComponent,
|
|
43
|
+
NewLineToBrPipe
|
|
44
|
+
],
|
|
45
|
+
imports: [
|
|
46
|
+
CommonModule,
|
|
47
|
+
FormsModule,
|
|
48
|
+
H3Module,
|
|
49
|
+
IconModule,
|
|
50
|
+
ParagraphModule,
|
|
51
|
+
ButtonV2Module,
|
|
52
|
+
SfxLoaderModule,
|
|
53
|
+
InputTextareaWithSendModule
|
|
54
|
+
],
|
|
55
|
+
exports: [
|
|
56
|
+
AISearchAssistantDrawerComponent
|
|
57
|
+
]
|
|
58
|
+
}]
|
|
59
|
+
}] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3Qyw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUVuSCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTlELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFxQjFGLE1BQU0sT0FBTyw2QkFBNkI7OzBIQUE3Qiw2QkFBNkI7MkhBQTdCLDZCQUE2QixpQkFqQnRDLGdDQUFnQztRQUNoQyxlQUFlLGFBR2YsWUFBWTtRQUNaLFdBQVc7UUFDWCxRQUFRO1FBQ1IsVUFBVTtRQUNWLGVBQWU7UUFDZixjQUFjO1FBQ2QsZUFBZTtRQUNmLDJCQUEyQixhQUczQixnQ0FBZ0M7MkhBR3ZCLDZCQUE2QixZQWQvQjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsUUFBUTtZQUNSLFVBQVU7WUFDVixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZiwyQkFBMkI7U0FDNUI7MkZBS1UsNkJBQTZCO2tCQW5CekMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0NBQWdDO3dCQUNoQyxlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFFBQVE7d0JBQ1IsVUFBVTt3QkFDVixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQ0FBZ0M7cUJBQ2pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gQ29tcG9uZW50IExpYnJhcnkgaW1wb3J0c1xuaW1wb3J0IHsgSDNNb2R1bGUgfSBmcm9tICcuLi8uLi9hdG9tcy9oMy9oMy5tb2R1bGUnO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2F0b21zL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgUGFyYWdyYXBoTW9kdWxlIH0gZnJvbSAnLi4vLi4vYXRvbXMvcGFyYWdyYXBoL3BhcmFncmFwaC5tb2R1bGUnO1xuaW1wb3J0IHsgQnV0dG9uVjJNb2R1bGUgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24tdjIvYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBTZnhMb2FkZXJNb2R1bGUgfSBmcm9tICcuLi8uLi9hdG9tcy9zZngtbG9hZGVyL3NmeC1sb2FkZXIubW9kdWxlJztcbmltcG9ydCB7IElucHV0VGV4dGFyZWFXaXRoU2VuZE1vZHVsZSB9IGZyb20gJy4uLy4uL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQubW9kdWxlJztcblxuLy8gQ3VzdG9tIHBpcGVzXG5pbXBvcnQgeyBOZXdMaW5lVG9CclBpcGUgfSBmcm9tICcuL3BpcGVzL25ldy1saW5lLXRvLWJyLnBpcGUnO1xuXG4vLyBNYWluIGNvbXBvbmVudFxuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFJU2VhcmNoQXNzaXN0YW50RHJhd2VyQ29tcG9uZW50LFxuICAgIE5ld0xpbmVUb0JyUGlwZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEgzTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgUGFyYWdyYXBoTW9kdWxlLFxuICAgIEJ1dHRvblYyTW9kdWxlLFxuICAgIFNmeExvYWRlck1vZHVsZSxcbiAgICBJbnB1dFRleHRhcmVhV2l0aFNlbmRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFJU2VhcmNoQXNzaXN0YW50RHJhd2VyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJNb2R1bGUgeyB9ICJdfQ==
|