@testgorilla/tgo-ui 8.9.1 → 8.11.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/components/prompt/index.d.ts +22 -2
- package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +50 -5
- package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +2 -2
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +1 -1
- package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
- package/mcp/catalog.json +1 -1
- package/mcp/server.mjs +224 -5
- package/package.json +1 -1
- package/projects/tgo-canopy-ui/theme/_typography.scss +1 -1
|
@@ -37,6 +37,12 @@ interface PromptActionTag {
|
|
|
37
37
|
disabled?: boolean;
|
|
38
38
|
acceptedFileTypes?: string;
|
|
39
39
|
}
|
|
40
|
+
interface PromptDropdownItem {
|
|
41
|
+
/** Unique id; used as the dropdown @for track key. */
|
|
42
|
+
id: number;
|
|
43
|
+
label: string;
|
|
44
|
+
icon?: IconName;
|
|
45
|
+
}
|
|
40
46
|
|
|
41
47
|
declare class PromptComponent implements ControlValueAccessor, OnInit, AfterViewInit {
|
|
42
48
|
private disabledState;
|
|
@@ -57,6 +63,10 @@ declare class PromptComponent implements ControlValueAccessor, OnInit, AfterView
|
|
|
57
63
|
* Custom error message displayed below the prompt.
|
|
58
64
|
*/
|
|
59
65
|
errorMessage: _angular_core.InputSignal<string>;
|
|
66
|
+
/** Items for the built-in dropdown; opens on focus, filters by label as the user types. */
|
|
67
|
+
dropdownItems: _angular_core.InputSignal<PromptDropdownItem[]>;
|
|
68
|
+
dropdownHeading: _angular_core.InputSignal<string>;
|
|
69
|
+
showDropdownClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
60
70
|
/**
|
|
61
71
|
* Whether the prompt is disabled.
|
|
62
72
|
* @type {boolean}
|
|
@@ -66,6 +76,8 @@ declare class PromptComponent implements ControlValueAccessor, OnInit, AfterView
|
|
|
66
76
|
set disabled(value: boolean);
|
|
67
77
|
promptData: _angular_core.OutputEmitterRef<PromptData>;
|
|
68
78
|
actionTagFileSelected: _angular_core.OutputEmitterRef<File>;
|
|
79
|
+
dropdownItemSelected: _angular_core.OutputEmitterRef<PromptDropdownItem>;
|
|
80
|
+
dropdownClosed: _angular_core.OutputEmitterRef<void>;
|
|
69
81
|
promptFilesList: _angular_core.WritableSignal<File[]>;
|
|
70
82
|
promptTextValue: _angular_core.WritableSignal<string>;
|
|
71
83
|
fileListMenuConfig: _angular_core.WritableSignal<OverflowMenuButtonsType[]>;
|
|
@@ -73,8 +85,11 @@ declare class PromptComponent implements ControlValueAccessor, OnInit, AfterView
|
|
|
73
85
|
tagsInDropdown: _angular_core.WritableSignal<PromptTag[]>;
|
|
74
86
|
autocompleteSuggestion: _angular_core.WritableSignal<string>;
|
|
75
87
|
isDropdownOpened: _angular_core.WritableSignal<boolean>;
|
|
88
|
+
private keepDropdownClosed;
|
|
76
89
|
isFieldHovered: _angular_core.WritableSignal<boolean>;
|
|
77
90
|
isFieldFocused: _angular_core.WritableSignal<boolean>;
|
|
91
|
+
filteredDropdownItems: _angular_core.Signal<PromptDropdownItem[]>;
|
|
92
|
+
itemsDropdownVisible: _angular_core.Signal<boolean>;
|
|
78
93
|
isHighlighted: _angular_core.Signal<boolean>;
|
|
79
94
|
fileInputAccept: _angular_core.Signal<string>;
|
|
80
95
|
isLocked: _angular_core.Signal<boolean>;
|
|
@@ -84,6 +99,7 @@ declare class PromptComponent implements ControlValueAccessor, OnInit, AfterView
|
|
|
84
99
|
fileDrop: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
85
100
|
tagDropdown: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
86
101
|
fieldComponentRef: _angular_core.Signal<FieldComponent>;
|
|
102
|
+
private promptContainer;
|
|
87
103
|
readonly dropdownPositions: ConnectedPosition[];
|
|
88
104
|
ngOnInit(): void;
|
|
89
105
|
ngAfterViewInit(): void;
|
|
@@ -93,6 +109,10 @@ declare class PromptComponent implements ControlValueAccessor, OnInit, AfterView
|
|
|
93
109
|
selectTag(tag: PromptTag, event: Event): void;
|
|
94
110
|
onTextareaTab(event: Event): void;
|
|
95
111
|
dropdownOutsideClick(): void;
|
|
112
|
+
onFieldBlur(): void;
|
|
113
|
+
itemsDropdownOutsideClick(event: MouseEvent): void;
|
|
114
|
+
closeItemsDropdown(): void;
|
|
115
|
+
selectDropdownItem(item: PromptDropdownItem, event: Event): void;
|
|
96
116
|
toggleDropdown(): void;
|
|
97
117
|
focusTagDropdown(): void;
|
|
98
118
|
private syncInputChange;
|
|
@@ -110,7 +130,7 @@ declare class PromptComponent implements ControlValueAccessor, OnInit, AfterView
|
|
|
110
130
|
private handleActionTagFile;
|
|
111
131
|
private emitValue;
|
|
112
132
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PromptComponent, never>;
|
|
113
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PromptComponent, "ui-prompt", never, { "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "actionTag": { "alias": "actionTag"; "required": false; "isSignal": true; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; "isSignal": true; }; "supportedFileTypes": { "alias": "supportedFileTypes"; "required": false; "isSignal": true; }; "autoClear": { "alias": "autoClear"; "required": false; "isSignal": true; }; "showSendButton": { "alias": "showSendButton"; "required": false; "isSignal": true; }; "sendButtonDisabled": { "alias": "sendButtonDisabled"; "required": false; "isSignal": true; }; "enableFileUpload": { "alias": "enableFileUpload"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "promptData": "promptData"; "actionTagFileSelected": "actionTagFileSelected"; }, never, never, false, never>;
|
|
133
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PromptComponent, "ui-prompt", never, { "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "actionTag": { "alias": "actionTag"; "required": false; "isSignal": true; }; "maxCharacters": { "alias": "maxCharacters"; "required": false; "isSignal": true; }; "supportedFileTypes": { "alias": "supportedFileTypes"; "required": false; "isSignal": true; }; "autoClear": { "alias": "autoClear"; "required": false; "isSignal": true; }; "showSendButton": { "alias": "showSendButton"; "required": false; "isSignal": true; }; "sendButtonDisabled": { "alias": "sendButtonDisabled"; "required": false; "isSignal": true; }; "enableFileUpload": { "alias": "enableFileUpload"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "dropdownItems": { "alias": "dropdownItems"; "required": false; "isSignal": true; }; "dropdownHeading": { "alias": "dropdownHeading"; "required": false; "isSignal": true; }; "showDropdownClose": { "alias": "showDropdownClose"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "promptData": "promptData"; "actionTagFileSelected": "actionTagFileSelected"; "dropdownItemSelected": "dropdownItemSelected"; "dropdownClosed": "dropdownClosed"; }, never, never, false, never>;
|
|
114
134
|
static ngAcceptInputType_disabled: unknown;
|
|
115
135
|
}
|
|
116
136
|
|
|
@@ -121,4 +141,4 @@ declare class PromptModule {
|
|
|
121
141
|
}
|
|
122
142
|
|
|
123
143
|
export { PromptComponent, PromptModule };
|
|
124
|
-
export type { PromptActionTag, PromptData, PromptTag };
|
|
144
|
+
export type { PromptActionTag, PromptData, PromptDropdownItem, PromptTag };
|
|
@@ -20,11 +20,11 @@ class MediaCardComponent {
|
|
|
20
20
|
this.showTitleTooltip = false;
|
|
21
21
|
}
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.20", ngImport: i0, type: MediaCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.20", type: MediaCardComponent, isStandalone: true, selector: "ui-media-card", inputs: { title: "title", description: "description", image: "image", buttonLabel: "buttonLabel" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<img [attr.src]=\"image\" alt=\"card image\" />\n\n<div class=\"media-card-content\">\n <div\n class=\"media-card-title\"\n [isMultiline]=\"true\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n uiEllipseText\n (onChangeTextState)=\"showTitleTooltip = $event\"\n >\n {{ title }}\n </div>\n\n <div class=\"media-card-description\">\n {{ description }}\n </div>\n</div>\n\n<ui-divider [size]=\"'small'\"></ui-divider>\n\n<div class=\"media-card-action\">\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}h1,h2,h3,.h1,.h2,.h3{font-weight:400;margin:0}h4,h5,h6,.h4,:host .media-card-content .media-card-title,.h5,.h6{font-weight:700;margin:0}h1,.h1{font-size:40px;line-height:60px;font-weight:700}h2,.h2{font-size:24px;line-height:36px}h2.bold,.h2.bold{font-weight:700}h3,.h3{font-size:20px;line-height:28px}h3.bold,.h3.bold{font-weight:700}h4,.h4,:host .media-card-content .media-card-title{font-size:16px;line-height:24px}h5,.h5{font-size:14px;line-height:20px}h6,.h6{font-size:12px;line-height:16px;text-transform:uppercase}body{font-size:14px;line-height:20px}strong,b{font-weight:700!important}.featured{font-size:16px;line-height:24px}p .semibold,.featured .semibold,.caption .semibold{font-weight:600;color:#
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.20", type: MediaCardComponent, isStandalone: true, selector: "ui-media-card", inputs: { title: "title", description: "description", image: "image", buttonLabel: "buttonLabel" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<img [attr.src]=\"image\" alt=\"card image\" />\n\n<div class=\"media-card-content\">\n <div\n class=\"media-card-title\"\n [isMultiline]=\"true\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n uiEllipseText\n (onChangeTextState)=\"showTitleTooltip = $event\"\n >\n {{ title }}\n </div>\n\n <div class=\"media-card-description\">\n {{ description }}\n </div>\n</div>\n\n<ui-divider [size]=\"'small'\"></ui-divider>\n\n<div class=\"media-card-action\">\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}h1,h2,h3,.h1,.h2,.h3{font-weight:400;margin:0}h4,h5,h6,.h4,:host .media-card-content .media-card-title,.h5,.h6{font-weight:700;margin:0}h1,.h1{font-size:40px;line-height:60px;font-weight:700}h2,.h2{font-size:24px;line-height:36px}h2.bold,.h2.bold{font-weight:700}h3,.h3{font-size:20px;line-height:28px}h3.bold,.h3.bold{font-weight:700}h4,.h4,:host .media-card-content .media-card-title{font-size:16px;line-height:24px}h5,.h5{font-size:14px;line-height:20px}h6,.h6{font-size:12px;line-height:16px;text-transform:uppercase}body{font-size:14px;line-height:20px}strong,b{font-weight:700!important}.featured{font-size:16px;line-height:24px}p .semibold,.featured .semibold,.caption .semibold{font-weight:600;color:#d410aa}small{font-size:8px;line-height:12px}caption,.caption{font-size:12px;line-height:16px;display:inline-block}*[theme=dark] h1,*[theme=dark] .h1,*[theme=light] h1,*[theme=light] .h1{color:#242424;font-size:32px;line-height:48px;font-weight:400}*[theme=dark] h1.black,*[theme=dark] .h1.black,*[theme=light] h1.black,*[theme=light] .h1.black{font-family:ModernGothic,sans-serif!important;font-weight:900}*[theme=dark] h2,*[theme=dark] .h2,*[theme=light] h2,*[theme=light] .h2{color:#242424;font-size:24px;line-height:30px;font-weight:900;font-family:ModernGothic,sans-serif!important}*[theme=dark] h3,*[theme=dark] .h3,*[theme=light] h3,*[theme=light] .h3{font-size:20px;line-height:26px;font-weight:400;color:#242424}*[theme=dark] h3.bold,*[theme=dark] .h3.bold,*[theme=light] h3.bold,*[theme=light] .h3.bold{font-family:ModernGothic,sans-serif!important;font-weight:700}*[theme=dark] h4,*[theme=dark] .h4,:host *[theme=dark] .media-card-content .media-card-title,:host .media-card-content *[theme=dark] .media-card-title,*[theme=light] h4,*[theme=light] .h4,:host *[theme=light] .media-card-content .media-card-title,:host .media-card-content *[theme=light] .media-card-title{font-size:16px;line-height:20px;font-weight:700;color:#242424;font-family:ModernGothic,sans-serif!important}*[theme=dark] h5,*[theme=dark] .h5,*[theme=light] h5,*[theme=light] .h5{font-size:14px;line-height:18px;font-weight:700;color:#242424;font-family:ModernGothic,sans-serif!important}*[theme=dark] .body-large,*[theme=light] .body-large{font-weight:700;font-size:14px;line-height:22px}*[theme=dark] .body-large-bold,*[theme=light] .body-large-bold{font-weight:700;font-size:16px;line-height:24px}*[theme=dark] .body-large-regular,*[theme=light] .body-large-regular{font-weight:400;font-size:16px;line-height:24px}*[theme=dark] .body-small-bold,*[theme=light] .body-small-bold{font-weight:700;font-size:12px;line-height:16px}*[theme=dark] .body-small-regular,*[theme=light] .body-small-regular{font-weight:400;font-size:12px;line-height:16px}*[theme=dark] .hyperlink-large,*[theme=light] .hyperlink-large{font-weight:500;font-size:16px;line-height:24px}*[theme=dark] .hyperlink,*[theme=light] .hyperlink{font-weight:500;font-size:14px;line-height:22px}*[theme=dark] .hyperlink-small,*[theme=light] .hyperlink-small{font-weight:500;font-size:12px;line-height:16px}*[theme=dark] .button-label,*[theme=light] .button-label{font-weight:500;font-size:14px;font-feature-settings:\"capb\"}*[theme=dark] .label,*[theme=light] .label{font-weight:400;font-size:14px;font-feature-settings:\"capb\"}*[theme=dark] .large-hover-state,*[theme=light] .large-hover-state{font-weight:700;text-decoration:underline;font-size:16px;line-height:24px}*[theme=dark] .hover-state,*[theme=light] .hover-state{font-weight:700;text-decoration:underline;font-size:14px;line-height:22px}*[theme=dark] h1,*[theme=dark] .h1,*[theme=dark] h2,*[theme=dark] .h2,*[theme=dark] h3,*[theme=dark] .h3,*[theme=dark] h4,*[theme=dark] .h4,:host *[theme=dark] .media-card-content .media-card-title,:host .media-card-content *[theme=dark] .media-card-title,*[theme=dark] h5,*[theme=dark] .h5{color:#fff}:host{display:flex;flex-direction:column;border:1px solid #d3d3d3;border-radius:10px;max-width:568px;min-width:288px;background:#fff}:host img{aspect-ratio:19.5/9;width:100%;border-radius:10px 10px 0 0}:host .media-card-content{display:flex;flex-direction:column;padding:24px 24px 24px 16px;height:100%}:host .media-card-content .media-card-title{overflow:hidden;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;color:#242424;margin-bottom:8px}:host .media-card-content .media-card-description{height:62px;color:#666;font-size:14px;overflow:auto}:host .media-card-action{display:flex;justify-content:flex-end;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: DividerComponentModule }, { kind: "component", type: i1.DividerComponent, selector: "ui-divider", inputs: ["size", "companyColor", "applicationTheme", "label"] }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i2.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "directive", type: EllipseTextDirective, selector: "[uiEllipseText]", inputs: ["isMultiline", "maxDiffPixels", "refresh"], outputs: ["onChangeTextState"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
24
24
|
}
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.20", ngImport: i0, type: MediaCardComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'ui-media-card', imports: [DividerComponentModule, ButtonComponentModule, EllipseTextDirective, MatTooltipModule], template: "<img [attr.src]=\"image\" alt=\"card image\" />\n\n<div class=\"media-card-content\">\n <div\n class=\"media-card-title\"\n [isMultiline]=\"true\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n uiEllipseText\n (onChangeTextState)=\"showTitleTooltip = $event\"\n >\n {{ title }}\n </div>\n\n <div class=\"media-card-description\">\n {{ description }}\n </div>\n</div>\n\n<ui-divider [size]=\"'small'\"></ui-divider>\n\n<div class=\"media-card-action\">\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}h1,h2,h3,.h1,.h2,.h3{font-weight:400;margin:0}h4,h5,h6,.h4,:host .media-card-content .media-card-title,.h5,.h6{font-weight:700;margin:0}h1,.h1{font-size:40px;line-height:60px;font-weight:700}h2,.h2{font-size:24px;line-height:36px}h2.bold,.h2.bold{font-weight:700}h3,.h3{font-size:20px;line-height:28px}h3.bold,.h3.bold{font-weight:700}h4,.h4,:host .media-card-content .media-card-title{font-size:16px;line-height:24px}h5,.h5{font-size:14px;line-height:20px}h6,.h6{font-size:12px;line-height:16px;text-transform:uppercase}body{font-size:14px;line-height:20px}strong,b{font-weight:700!important}.featured{font-size:16px;line-height:24px}p .semibold,.featured .semibold,.caption .semibold{font-weight:600;color:#
|
|
27
|
+
args: [{ selector: 'ui-media-card', imports: [DividerComponentModule, ButtonComponentModule, EllipseTextDirective, MatTooltipModule], template: "<img [attr.src]=\"image\" alt=\"card image\" />\n\n<div class=\"media-card-content\">\n <div\n class=\"media-card-title\"\n [isMultiline]=\"true\"\n [matTooltip]=\"showTitleTooltip ? title : ''\"\n uiEllipseText\n (onChangeTextState)=\"showTitleTooltip = $event\"\n >\n {{ title }}\n </div>\n\n <div class=\"media-card-description\">\n {{ description }}\n </div>\n</div>\n\n<ui-divider [size]=\"'small'\"></ui-divider>\n\n<div class=\"media-card-action\">\n <ui-button [variant]=\"'ghost'\" [label]=\"buttonLabel\" (buttonClickEvent)=\"buttonClick.emit()\"></ui-button>\n</div>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}h1,h2,h3,.h1,.h2,.h3{font-weight:400;margin:0}h4,h5,h6,.h4,:host .media-card-content .media-card-title,.h5,.h6{font-weight:700;margin:0}h1,.h1{font-size:40px;line-height:60px;font-weight:700}h2,.h2{font-size:24px;line-height:36px}h2.bold,.h2.bold{font-weight:700}h3,.h3{font-size:20px;line-height:28px}h3.bold,.h3.bold{font-weight:700}h4,.h4,:host .media-card-content .media-card-title{font-size:16px;line-height:24px}h5,.h5{font-size:14px;line-height:20px}h6,.h6{font-size:12px;line-height:16px;text-transform:uppercase}body{font-size:14px;line-height:20px}strong,b{font-weight:700!important}.featured{font-size:16px;line-height:24px}p .semibold,.featured .semibold,.caption .semibold{font-weight:600;color:#d410aa}small{font-size:8px;line-height:12px}caption,.caption{font-size:12px;line-height:16px;display:inline-block}*[theme=dark] h1,*[theme=dark] .h1,*[theme=light] h1,*[theme=light] .h1{color:#242424;font-size:32px;line-height:48px;font-weight:400}*[theme=dark] h1.black,*[theme=dark] .h1.black,*[theme=light] h1.black,*[theme=light] .h1.black{font-family:ModernGothic,sans-serif!important;font-weight:900}*[theme=dark] h2,*[theme=dark] .h2,*[theme=light] h2,*[theme=light] .h2{color:#242424;font-size:24px;line-height:30px;font-weight:900;font-family:ModernGothic,sans-serif!important}*[theme=dark] h3,*[theme=dark] .h3,*[theme=light] h3,*[theme=light] .h3{font-size:20px;line-height:26px;font-weight:400;color:#242424}*[theme=dark] h3.bold,*[theme=dark] .h3.bold,*[theme=light] h3.bold,*[theme=light] .h3.bold{font-family:ModernGothic,sans-serif!important;font-weight:700}*[theme=dark] h4,*[theme=dark] .h4,:host *[theme=dark] .media-card-content .media-card-title,:host .media-card-content *[theme=dark] .media-card-title,*[theme=light] h4,*[theme=light] .h4,:host *[theme=light] .media-card-content .media-card-title,:host .media-card-content *[theme=light] .media-card-title{font-size:16px;line-height:20px;font-weight:700;color:#242424;font-family:ModernGothic,sans-serif!important}*[theme=dark] h5,*[theme=dark] .h5,*[theme=light] h5,*[theme=light] .h5{font-size:14px;line-height:18px;font-weight:700;color:#242424;font-family:ModernGothic,sans-serif!important}*[theme=dark] .body-large,*[theme=light] .body-large{font-weight:700;font-size:14px;line-height:22px}*[theme=dark] .body-large-bold,*[theme=light] .body-large-bold{font-weight:700;font-size:16px;line-height:24px}*[theme=dark] .body-large-regular,*[theme=light] .body-large-regular{font-weight:400;font-size:16px;line-height:24px}*[theme=dark] .body-small-bold,*[theme=light] .body-small-bold{font-weight:700;font-size:12px;line-height:16px}*[theme=dark] .body-small-regular,*[theme=light] .body-small-regular{font-weight:400;font-size:12px;line-height:16px}*[theme=dark] .hyperlink-large,*[theme=light] .hyperlink-large{font-weight:500;font-size:16px;line-height:24px}*[theme=dark] .hyperlink,*[theme=light] .hyperlink{font-weight:500;font-size:14px;line-height:22px}*[theme=dark] .hyperlink-small,*[theme=light] .hyperlink-small{font-weight:500;font-size:12px;line-height:16px}*[theme=dark] .button-label,*[theme=light] .button-label{font-weight:500;font-size:14px;font-feature-settings:\"capb\"}*[theme=dark] .label,*[theme=light] .label{font-weight:400;font-size:14px;font-feature-settings:\"capb\"}*[theme=dark] .large-hover-state,*[theme=light] .large-hover-state{font-weight:700;text-decoration:underline;font-size:16px;line-height:24px}*[theme=dark] .hover-state,*[theme=light] .hover-state{font-weight:700;text-decoration:underline;font-size:14px;line-height:22px}*[theme=dark] h1,*[theme=dark] .h1,*[theme=dark] h2,*[theme=dark] .h2,*[theme=dark] h3,*[theme=dark] .h3,*[theme=dark] h4,*[theme=dark] .h4,:host *[theme=dark] .media-card-content .media-card-title,:host .media-card-content *[theme=dark] .media-card-title,*[theme=dark] h5,*[theme=dark] .h5{color:#fff}:host{display:flex;flex-direction:column;border:1px solid #d3d3d3;border-radius:10px;max-width:568px;min-width:288px;background:#fff}:host img{aspect-ratio:19.5/9;width:100%;border-radius:10px 10px 0 0}:host .media-card-content{display:flex;flex-direction:column;padding:24px 24px 24px 16px;height:100%}:host .media-card-content .media-card-title{overflow:hidden;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;color:#242424;margin-bottom:8px}:host .media-card-content .media-card-description{height:62px;color:#666;font-size:14px;overflow:auto}:host .media-card-action{display:flex;justify-content:flex-end;padding:16px 24px}\n"] }]
|
|
28
28
|
}], propDecorators: { title: [{
|
|
29
29
|
type: Input,
|
|
30
30
|
args: [{ required: true }]
|
|
@@ -49,8 +49,14 @@ class PromptComponent {
|
|
|
49
49
|
* Custom error message displayed below the prompt.
|
|
50
50
|
*/
|
|
51
51
|
this.errorMessage = input('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
|
|
52
|
+
/** Items for the built-in dropdown; opens on focus, filters by label as the user types. */
|
|
53
|
+
this.dropdownItems = input([], ...(ngDevMode ? [{ debugName: "dropdownItems" }] : []));
|
|
54
|
+
this.dropdownHeading = input('', ...(ngDevMode ? [{ debugName: "dropdownHeading" }] : []));
|
|
55
|
+
this.showDropdownClose = input(false, ...(ngDevMode ? [{ debugName: "showDropdownClose", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
52
56
|
this.promptData = output();
|
|
53
57
|
this.actionTagFileSelected = output();
|
|
58
|
+
this.dropdownItemSelected = output();
|
|
59
|
+
this.dropdownClosed = output();
|
|
54
60
|
this.promptFilesList = signal([], ...(ngDevMode ? [{ debugName: "promptFilesList" }] : []));
|
|
55
61
|
this.promptTextValue = signal('', ...(ngDevMode ? [{ debugName: "promptTextValue" }] : []));
|
|
56
62
|
this.fileListMenuConfig = signal([], ...(ngDevMode ? [{ debugName: "fileListMenuConfig" }] : []));
|
|
@@ -58,8 +64,18 @@ class PromptComponent {
|
|
|
58
64
|
this.tagsInDropdown = signal([], ...(ngDevMode ? [{ debugName: "tagsInDropdown" }] : []));
|
|
59
65
|
this.autocompleteSuggestion = signal('', ...(ngDevMode ? [{ debugName: "autocompleteSuggestion" }] : []));
|
|
60
66
|
this.isDropdownOpened = signal(false, ...(ngDevMode ? [{ debugName: "isDropdownOpened" }] : []));
|
|
67
|
+
this.keepDropdownClosed = signal(false, ...(ngDevMode ? [{ debugName: "keepDropdownClosed" }] : []));
|
|
61
68
|
this.isFieldHovered = signal(false, ...(ngDevMode ? [{ debugName: "isFieldHovered" }] : []));
|
|
62
69
|
this.isFieldFocused = signal(false, ...(ngDevMode ? [{ debugName: "isFieldFocused" }] : []));
|
|
70
|
+
this.filteredDropdownItems = computed(() => {
|
|
71
|
+
const query = this.promptTextValue().trim().toLowerCase();
|
|
72
|
+
return this.dropdownItems().filter(item => {
|
|
73
|
+
const label = item.label.toLowerCase();
|
|
74
|
+
return label !== query && (!query || label.includes(query));
|
|
75
|
+
});
|
|
76
|
+
}, ...(ngDevMode ? [{ debugName: "filteredDropdownItems" }] : []));
|
|
77
|
+
// Derived from focus so blur closes the overlay for free.
|
|
78
|
+
this.itemsDropdownVisible = computed(() => this.isFieldFocused() && !this.keepDropdownClosed() && this.filteredDropdownItems().length > 0 && !this.isLocked(), ...(ngDevMode ? [{ debugName: "itemsDropdownVisible" }] : []));
|
|
63
79
|
this.isHighlighted = computed(() => this.isFieldHovered() || this.isFieldFocused(), ...(ngDevMode ? [{ debugName: "isHighlighted" }] : []));
|
|
64
80
|
this.fileInputAccept = computed(() => this.actionTag()?.acceptedFileTypes ?? this.supportedFileTypes(), ...(ngDevMode ? [{ debugName: "fileInputAccept" }] : []));
|
|
65
81
|
this.isLocked = computed(() => this.disabledState() || this.loading(), ...(ngDevMode ? [{ debugName: "isLocked" }] : []));
|
|
@@ -76,6 +92,7 @@ class PromptComponent {
|
|
|
76
92
|
this.fileDrop = viewChild('fileDropRef', ...(ngDevMode ? [{ debugName: "fileDrop" }] : []));
|
|
77
93
|
this.tagDropdown = viewChild('tagDropdown', ...(ngDevMode ? [{ debugName: "tagDropdown" }] : []));
|
|
78
94
|
this.fieldComponentRef = viewChild.required('textarea');
|
|
95
|
+
this.promptContainer = viewChild.required('promptContainerRef');
|
|
79
96
|
this.dropdownPositions = [
|
|
80
97
|
{
|
|
81
98
|
originX: 'start',
|
|
@@ -160,6 +177,33 @@ class PromptComponent {
|
|
|
160
177
|
dropdownOutsideClick() {
|
|
161
178
|
this.isDropdownOpened.set(false);
|
|
162
179
|
}
|
|
180
|
+
onFieldBlur() {
|
|
181
|
+
this.isFieldFocused.set(false);
|
|
182
|
+
}
|
|
183
|
+
itemsDropdownOutsideClick(event) {
|
|
184
|
+
if (this.promptContainer().nativeElement.contains(event.target)) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
this.isFieldFocused.set(false);
|
|
188
|
+
this.dropdownClosed.emit();
|
|
189
|
+
}
|
|
190
|
+
closeItemsDropdown() {
|
|
191
|
+
this.keepDropdownClosed.set(true);
|
|
192
|
+
this.dropdownClosed.emit();
|
|
193
|
+
}
|
|
194
|
+
selectDropdownItem(item, event) {
|
|
195
|
+
if (this.isLocked()) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
event.stopPropagation();
|
|
199
|
+
event.preventDefault();
|
|
200
|
+
this.keepDropdownClosed.set(true);
|
|
201
|
+
this.promptTextValue.set(item.label);
|
|
202
|
+
this.autocompleteSuggestion.set('');
|
|
203
|
+
this.fieldComponentRef().field.nativeElement.focus();
|
|
204
|
+
this.dropdownItemSelected.emit(item);
|
|
205
|
+
this.emitValue();
|
|
206
|
+
}
|
|
163
207
|
toggleDropdown() {
|
|
164
208
|
if (this.isLocked()) {
|
|
165
209
|
return;
|
|
@@ -178,6 +222,7 @@ class PromptComponent {
|
|
|
178
222
|
fromEvent(this.fieldComponentRef().field.nativeElement, 'input')
|
|
179
223
|
.pipe(takeUntilDestroyed(this.destroyRef), map((event) => event.target.value), debounceTime(200), filter(value => typeof value === 'string'), tap(value => {
|
|
180
224
|
this.promptTextValue.set(value);
|
|
225
|
+
this.keepDropdownClosed.set(false);
|
|
181
226
|
if (this.autocompleteSuggestion()) {
|
|
182
227
|
this.autocompleteSuggestion.set('');
|
|
183
228
|
}
|
|
@@ -255,14 +300,14 @@ class PromptComponent {
|
|
|
255
300
|
this.onTouch();
|
|
256
301
|
}
|
|
257
302
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.20", ngImport: i0, type: PromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
258
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.20", type: PromptComponent, isStandalone: false, selector: "ui-prompt", inputs: { tags: { classPropertyName: "tags", publicName: "tags", isSignal: true, isRequired: false, transformFunction: null }, actionTag: { classPropertyName: "actionTag", publicName: "actionTag", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, supportedFileTypes: { classPropertyName: "supportedFileTypes", publicName: "supportedFileTypes", isSignal: true, isRequired: false, transformFunction: null }, autoClear: { classPropertyName: "autoClear", publicName: "autoClear", isSignal: true, isRequired: false, transformFunction: null }, showSendButton: { classPropertyName: "showSendButton", publicName: "showSendButton", isSignal: true, isRequired: false, transformFunction: null }, sendButtonDisabled: { classPropertyName: "sendButtonDisabled", publicName: "sendButtonDisabled", isSignal: true, isRequired: false, transformFunction: null }, enableFileUpload: { classPropertyName: "enableFileUpload", publicName: "enableFileUpload", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { promptData: "promptData", actionTagFileSelected: "actionTagFileSelected" }, providers: [
|
|
303
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.20", type: PromptComponent, isStandalone: false, selector: "ui-prompt", inputs: { tags: { classPropertyName: "tags", publicName: "tags", isSignal: true, isRequired: false, transformFunction: null }, actionTag: { classPropertyName: "actionTag", publicName: "actionTag", isSignal: true, isRequired: false, transformFunction: null }, maxCharacters: { classPropertyName: "maxCharacters", publicName: "maxCharacters", isSignal: true, isRequired: false, transformFunction: null }, supportedFileTypes: { classPropertyName: "supportedFileTypes", publicName: "supportedFileTypes", isSignal: true, isRequired: false, transformFunction: null }, autoClear: { classPropertyName: "autoClear", publicName: "autoClear", isSignal: true, isRequired: false, transformFunction: null }, showSendButton: { classPropertyName: "showSendButton", publicName: "showSendButton", isSignal: true, isRequired: false, transformFunction: null }, sendButtonDisabled: { classPropertyName: "sendButtonDisabled", publicName: "sendButtonDisabled", isSignal: true, isRequired: false, transformFunction: null }, enableFileUpload: { classPropertyName: "enableFileUpload", publicName: "enableFileUpload", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, dropdownItems: { classPropertyName: "dropdownItems", publicName: "dropdownItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownHeading: { classPropertyName: "dropdownHeading", publicName: "dropdownHeading", isSignal: true, isRequired: false, transformFunction: null }, showDropdownClose: { classPropertyName: "showDropdownClose", publicName: "showDropdownClose", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { promptData: "promptData", actionTagFileSelected: "actionTagFileSelected", dropdownItemSelected: "dropdownItemSelected", dropdownClosed: "dropdownClosed" }, providers: [
|
|
259
304
|
UiTranslatePipe,
|
|
260
305
|
{
|
|
261
306
|
provide: NG_VALUE_ACCESSOR,
|
|
262
307
|
useExisting: forwardRef(() => PromptComponent),
|
|
263
308
|
multi: true,
|
|
264
309
|
},
|
|
265
|
-
], viewQueries: [{ propertyName: "fileDrop", first: true, predicate: ["fileDropRef"], descendants: true, isSignal: true }, { propertyName: "tagDropdown", first: true, predicate: ["tagDropdown"], descendants: true, isSignal: true }, { propertyName: "fieldComponentRef", first: true, predicate: ["textarea"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container>\n <div\n class=\"prompt-container\"\n [class.has-error]=\"!!errorMessage()\"\n [class.disabled]=\"isLocked()\"\n [attr.aria-disabled]=\"isLocked()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n cdkOverlayOrigin\n #promptOrigin=\"cdkOverlayOrigin\"\n #promptContainerRef\n [ngClass]=\"{ 'prompt-container-focused': isHighlighted() && !loading() }\"\n >\n @if (loading()) {\n <div class=\"prompt-loading\" aria-hidden=\"true\">\n <ui-skeleton [theme]=\"{ width: '100%', height: '20px', margin: '0' }\"></ui-skeleton>\n <ui-skeleton [theme]=\"{ width: '30%', height: '20px', margin: '0' }\"></ui-skeleton>\n </div>\n }\n <div class=\"prompt-autocomplete\" [hidden]=\"loading()\">\n <textarea tabindex=\"-1\" class=\"ghost\" id=\"autocomplete\" [value]=\"autocompleteSuggestion()\" readonly></textarea>\n\n @let showIcon = !isFieldFocused() && !textarea.value;\n @if (showIcon) {\n <ui-icon\n class=\"prompt-icon\"\n [color]=\"'inherit'\"\n [class.hovered]=\"isFieldHovered()\"\n [name]=\"'Sparkle-in-line'\"\n ></ui-icon>\n }\n <ui-field\n #textarea\n class=\"prompt-text\"\n [class.show-icon]=\"showIcon\"\n role=\"input\"\n [showBottomContent]=\"false\"\n [borderless]=\"true\"\n [type]=\"'multi-line'\"\n [autosizableTextarea]=\"true\"\n [maxCharacters]=\"maxCharacters()\"\n [placeholder]=\"showIcon ? placeholder() || ('PROMPT.ASK_ANYTHING' | uiTranslate | async)! : ''\"\n [value]=\"promptTextValue() || ''\"\n [hasTextAreaCounter]=\"false\"\n [disabled]=\"disabled\"\n (mouseenter)=\"isFieldHovered.set(true)\"\n (mouseleave)=\"isFieldHovered.set(false)\"\n (focusin)=\"isFieldFocused.set(true)\"\n (fieldBlur)=\"isFieldFocused.set(false)\"\n (keydown.tab)=\"onTextareaTab($event)\"\n ></ui-field>\n </div>\n <div class=\"prompt-footer flex-container\">\n <div class=\"flex-container\">\n @if (actionTag(); as at) {\n <ui-tag\n [label]=\"at.label\"\n [icon]=\"at.icon ?? 'Plus'\"\n [ariaLabel]=\"at.ariaLabel ?? at.label\"\n [isDisabled]=\"isLocked() || !!at.disabled\"\n (press)=\"onActionTagPress()\"\n ></ui-tag>\n } @else if (enableFileUpload()) {\n <ui-button\n [variant]=\"'icon-button'\"\n [tooltip]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [ariaLabel]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [iconName]=\"'Plus'\"\n [disabled]=\"isLocked()\"\n (click)=\"fileDrop()?.nativeElement?.click()\"\n ></ui-button>\n\n @if (promptFilesList().length) {\n <div class=\"menu\">\n <ui-badge\n [notificationsAmount]=\"promptFilesList().length\"\n [variant]=\"'notification'\"\n class=\"menu-badge\"\n ></ui-badge>\n <ui-overflow-menu\n [matTooltip]=\"('PROMPT.FILES' | uiTranslate | async)!\"\n [matTooltipPosition]=\"'above'\"\n [buttonSize]=\"'medium'\"\n [iconTrigger]=\"'Document'\"\n [buttonVariant]=\"'ghost'\"\n [buttons]=\"fileListMenuConfig()\"\n [isDynamicMenu]=\"true\"\n [withRemovableOption]=\"true\"\n (selectItem)=\"selectedMenuOption($event)\"\n ></ui-overflow-menu>\n </div>\n }\n }\n\n @if (actionTag() || enableFileUpload()) {\n <input\n [tabIndex]=\"-1\"\n class=\"form-control\"\n #fileDropRef\n type=\"file\"\n id=\"file-upload\"\n [accept]=\"fileInputAccept()\"\n [disabled]=\"isLocked()\"\n (change)=\"onFileSelected($event)\"\n />\n }\n </div>\n\n @if (tags()?.length && !promptTextValue()) {\n <div class=\"flex-container carousel\">\n <div class=\"tag-container flex-container\" role=\"list\" #tagsScrollContainer>\n @for (tag of tagsVisible(); track tag) {\n <ui-tag\n [label]=\"tag.label\"\n role=\"listitem\"\n [ariaLabel]=\"tag.label\"\n [isDisabled]=\"isLocked()\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n ></ui-tag>\n }\n\n @if (tagsInDropdown().length) {\n <ui-button\n class=\"view-more\"\n variant=\"text-inline\"\n [label]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [ariaLabel]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked()\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"focusTagDropdown()\"\n cdkOverlayOrigin\n #dropdownTrigger=\"cdkOverlayOrigin\"\n ></ui-button>\n }\n </div>\n\n <div class=\"flex-container\">\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [ariaLabel]=\"'Scroll left button'\"\n [iconName]=\"'Arrow-chevron-left-in-line'\"\n [disabled]=\"isLocked() || tagsScrollContainer.scrollLeft === 0\"\n (click)=\"tagsScrollContainer.scrollBy({ left: -100, behavior: 'smooth' })\"\n ></ui-button>\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [iconName]=\"'Arrow-chevron-right-in-line'\"\n [ariaLabel]=\"'Scroll right button'\"\n [disabled]=\"\n isLocked() ||\n tagsScrollContainer.scrollLeft + tagsScrollContainer.clientWidth >= tagsScrollContainer.scrollWidth\n \"\n (click)=\"tagsScrollContainer.scrollBy({ left: 100, behavior: 'smooth' })\"\n ></ui-button>\n </div>\n </div>\n }\n\n @if (showSendButton()) {\n <ui-button\n class=\"send-button\"\n [variant]=\"'secondary'\"\n [iconName]=\"'Arrow-up-in-line'\"\n [tooltip]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked() || sendButtonDisabled() || (!promptTextValue() && !promptFilesList().length)\"\n (click)=\"sendPromptData()\"\n ></ui-button>\n }\n </div>\n </div>\n\n @if (errorMessage()) {\n <div class=\"prompt-error\">\n <ui-icon [name]=\"'Error'\" color=\"red\"></ui-icon>\n <span>{{ errorMessage() }}</span>\n </div>\n }\n\n <!-- Dropdown for hidden tags -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"promptOrigin\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpened() && !isLocked()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayWidth]=\"promptContainerRef?.offsetWidth || 0\"\n (overlayOutsideClick)=\"dropdownOutsideClick()\"\n >\n <div class=\"dropdown-container\" role=\"list\" #tagDropdown tabindex=\"0\">\n @for (tag of tagsInDropdown(); track tag) {\n <div\n class=\"dropdown-tag\"\n tabindex=\"0\"\n [attr.aria-label]=\"tag.label\"\n role=\"listitem\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n >\n {{ tag.label }}\n </div>\n }\n </div>\n </ng-template>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host ::ng-deep ui-field.prompt-text>mat-form-field{vertical-align:top}:host ::ng-deep ui-field.prompt-text .mat-mdc-text-field-wrapper{border-radius:10px!important}:host ::ng-deep ui-field.prompt-text .mat-mdc-form-field.keyboard-focused .mat-mdc-text-field-wrapper:after{outline:2px solid black}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper{background:transparent}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix{padding-bottom:0!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea{max-height:220px!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea:focus{border:2px solid black}:host ::ng-deep ui-button.send-button .rounded-icon .mdc-button{width:48px!important;height:48px!important}:host ::ng-deep ui-overflow-menu button.mat-mdc-unelevated-button.ghost.light-theme.only-icon{border:none}.prompt-container{border:1px solid #919191;border-radius:10px;background-color:#fff}.prompt-container-focused{border:1px solid black;outline:1px solid black}.prompt-container.disabled{border:1px solid #d3d3d3}.prompt-container.disabled.prompt-container-focused{outline:none}.prompt-container.disabled .prompt-icon{color:#d3d3d3}ui-field.show-icon{padding-left:24px}.prompt-icon{position:absolute;top:14px;left:16px;color:#666}.prompt-icon.hovered{color:#000}.dropdown-container{width:100%}.dropdown-tag{padding:16px;background-color:#fff}.dropdown-tag:hover,.dropdown-tag:focus{background-color:#fff2fc;cursor:pointer}.carousel{flex-grow:1;min-width:0}.tag-container{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin:0 8px}.tag-container::-webkit-scrollbar{display:none}#file-upload{display:none}.prompt-footer,.flex-container{display:flex;flex-flow:row nowrap;align-items:center}.prompt-footer{justify-content:space-between;padding:8px 16px}@media(max-width:600px){.prompt-footer{padding:8px}}@media(max-width:320px){.prompt-footer{padding:8px}}.menu{display:flex;flex-flow:column nowrap;position:relative}.menu .menu-badge{position:absolute;right:0;z-index:1000}.view-more{margin-left:4px;white-space:nowrap}.view-more ::ng-deep button.mat-mdc-unelevated-button .label{white-space:nowrap}.prompt-container{position:relative}.prompt-container.has-error{border:1px solid #e02800;outline:1px solid #e02800}.prompt-error{margin-top:4px;align-items:center;display:flex;color:#e02800;font-size:12px;line-height:16px}.prompt-error ui-icon{margin-right:4px}.prompt-loading{display:flex;flex-direction:column;gap:4px;padding:12px 16px 0}.prompt-loading ui-skeleton{height:20px}.ghost{position:absolute;top:0;left:0;bottom:16px;color:#888;border:none;pointer-events:none;background:transparent;width:100%;padding:12px 16px;font-size:inherit;line-height:22px;letter-spacing:inherit;font-weight:inherit;font-family:ModernGothic,sans-serif;resize:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "autosizableTextarea", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i4.OverflowMenuComponent, selector: "ui-overflow-menu", inputs: ["buttons", "iconTrigger", "menuLabel", "applicationTheme", "ariaLabel", "ariaRequired", "describedby", "contentTemplateRef", "buttonVariant", "buttonSize", "menuConfig", "isDynamicMenu", "withRemovableOption"], outputs: ["selectItem", "menuOpened", "menuClosed"] }, { kind: "component", type: i5.TagComponent, selector: "ui-tag", inputs: ["label", "icon", "allowClose", "readOnly", "isSelected", "showIconWhenSelected", "isDisabled", "applicationTheme", "ariaLabel", "ariaRequired", "showBadge", "notificationsAmount"], outputs: ["isSelectedChange", "close", "press"] }, { kind: "component", type: i6.BadgeComponent, selector: "ui-badge", inputs: ["label", "staticLabel", "icon", "iconColor", "trailingIcon", "trailingIconColor", "color", "variant", "notificationsAmount", "applicationTheme", "rebrandColor", "truncateLabel", "enableAnimation"] }, { kind: "directive", type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i9.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i10.SkeletonComponent, selector: "ui-skeleton", inputs: ["count", "theme", "appearance", "isAiTheme", "applicationTheme"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
310
|
+
], viewQueries: [{ propertyName: "fileDrop", first: true, predicate: ["fileDropRef"], descendants: true, isSignal: true }, { propertyName: "tagDropdown", first: true, predicate: ["tagDropdown"], descendants: true, isSignal: true }, { propertyName: "fieldComponentRef", first: true, predicate: ["textarea"], descendants: true, isSignal: true }, { propertyName: "promptContainer", first: true, predicate: ["promptContainerRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container>\n <div\n class=\"prompt-container\"\n [class.has-error]=\"!!errorMessage()\"\n [class.disabled]=\"isLocked()\"\n [attr.aria-disabled]=\"isLocked()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n cdkOverlayOrigin\n #promptOrigin=\"cdkOverlayOrigin\"\n #promptContainerRef\n [ngClass]=\"{ 'prompt-container-focused': isHighlighted() && !loading() }\"\n >\n @if (loading()) {\n <div class=\"prompt-loading\" aria-hidden=\"true\">\n <ui-skeleton [theme]=\"{ width: '100%', height: '20px', margin: '0' }\"></ui-skeleton>\n <ui-skeleton [theme]=\"{ width: '30%', height: '20px', margin: '0' }\"></ui-skeleton>\n </div>\n }\n <div class=\"prompt-autocomplete\" [hidden]=\"loading()\">\n <textarea tabindex=\"-1\" class=\"ghost\" id=\"autocomplete\" [value]=\"autocompleteSuggestion()\" readonly></textarea>\n\n @let showIcon = !isFieldFocused() && !textarea.value;\n @if (showIcon) {\n <ui-icon\n class=\"prompt-icon\"\n [color]=\"'inherit'\"\n [class.hovered]=\"isFieldHovered()\"\n [name]=\"'Sparkle-in-line'\"\n ></ui-icon>\n }\n <ui-field\n #textarea\n class=\"prompt-text\"\n [class.show-icon]=\"showIcon\"\n role=\"input\"\n [showBottomContent]=\"false\"\n [borderless]=\"true\"\n [type]=\"'multi-line'\"\n [autosizableTextarea]=\"true\"\n [maxCharacters]=\"maxCharacters()\"\n [placeholder]=\"showIcon ? placeholder() || ('PROMPT.ASK_ANYTHING' | uiTranslate | async)! : ''\"\n [value]=\"promptTextValue() || ''\"\n [hasTextAreaCounter]=\"false\"\n [disabled]=\"disabled\"\n (mouseenter)=\"isFieldHovered.set(true)\"\n (mouseleave)=\"isFieldHovered.set(false)\"\n (focusin)=\"isFieldFocused.set(true)\"\n (fieldBlur)=\"onFieldBlur()\"\n (keydown.tab)=\"onTextareaTab($event)\"\n ></ui-field>\n </div>\n <div class=\"prompt-footer flex-container\">\n <div class=\"flex-container\">\n @if (actionTag(); as at) {\n <ui-tag\n [label]=\"at.label\"\n [icon]=\"at.icon ?? 'Plus'\"\n [ariaLabel]=\"at.ariaLabel ?? at.label\"\n [isDisabled]=\"isLocked() || !!at.disabled\"\n (press)=\"onActionTagPress()\"\n ></ui-tag>\n } @else if (enableFileUpload()) {\n <ui-button\n [variant]=\"'icon-button'\"\n [tooltip]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [ariaLabel]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [iconName]=\"'Plus'\"\n [disabled]=\"isLocked()\"\n (click)=\"fileDrop()?.nativeElement?.click()\"\n ></ui-button>\n\n @if (promptFilesList().length) {\n <div class=\"menu\">\n <ui-badge\n [notificationsAmount]=\"promptFilesList().length\"\n [variant]=\"'notification'\"\n class=\"menu-badge\"\n ></ui-badge>\n <ui-overflow-menu\n [matTooltip]=\"('PROMPT.FILES' | uiTranslate | async)!\"\n [matTooltipPosition]=\"'above'\"\n [buttonSize]=\"'medium'\"\n [iconTrigger]=\"'Document'\"\n [buttonVariant]=\"'ghost'\"\n [buttons]=\"fileListMenuConfig()\"\n [isDynamicMenu]=\"true\"\n [withRemovableOption]=\"true\"\n (selectItem)=\"selectedMenuOption($event)\"\n ></ui-overflow-menu>\n </div>\n }\n }\n\n @if (actionTag() || enableFileUpload()) {\n <input\n [tabIndex]=\"-1\"\n class=\"form-control\"\n #fileDropRef\n type=\"file\"\n id=\"file-upload\"\n [accept]=\"fileInputAccept()\"\n [disabled]=\"isLocked()\"\n (change)=\"onFileSelected($event)\"\n />\n }\n </div>\n\n @if (tags()?.length && !promptTextValue()) {\n <div class=\"flex-container carousel\">\n <div class=\"tag-container flex-container\" role=\"list\" #tagsScrollContainer>\n @for (tag of tagsVisible(); track tag) {\n <ui-tag\n [label]=\"tag.label\"\n role=\"listitem\"\n [ariaLabel]=\"tag.label\"\n [isDisabled]=\"isLocked()\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n ></ui-tag>\n }\n\n @if (tagsInDropdown().length) {\n <ui-button\n class=\"view-more\"\n variant=\"text-inline\"\n [label]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [ariaLabel]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked()\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"focusTagDropdown()\"\n cdkOverlayOrigin\n #dropdownTrigger=\"cdkOverlayOrigin\"\n ></ui-button>\n }\n </div>\n\n <div class=\"flex-container\">\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [ariaLabel]=\"'Scroll left button'\"\n [iconName]=\"'Arrow-chevron-left-in-line'\"\n [disabled]=\"isLocked() || tagsScrollContainer.scrollLeft === 0\"\n (click)=\"tagsScrollContainer.scrollBy({ left: -100, behavior: 'smooth' })\"\n ></ui-button>\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [iconName]=\"'Arrow-chevron-right-in-line'\"\n [ariaLabel]=\"'Scroll right button'\"\n [disabled]=\"\n isLocked() ||\n tagsScrollContainer.scrollLeft + tagsScrollContainer.clientWidth >= tagsScrollContainer.scrollWidth\n \"\n (click)=\"tagsScrollContainer.scrollBy({ left: 100, behavior: 'smooth' })\"\n ></ui-button>\n </div>\n </div>\n }\n\n @if (showSendButton()) {\n <ui-button\n class=\"send-button\"\n [variant]=\"'secondary'\"\n [iconName]=\"'Arrow-up-in-line'\"\n [tooltip]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked() || sendButtonDisabled() || (!promptTextValue() && !promptFilesList().length)\"\n (click)=\"sendPromptData()\"\n ></ui-button>\n }\n </div>\n </div>\n\n @if (errorMessage()) {\n <div class=\"prompt-error\">\n <ui-icon [name]=\"'Error'\" color=\"red\"></ui-icon>\n <span>{{ errorMessage() }}</span>\n </div>\n }\n\n <!-- Dropdown for hidden tags -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"promptOrigin\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpened() && !isLocked()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayWidth]=\"promptContainerRef?.offsetWidth || 0\"\n (overlayOutsideClick)=\"dropdownOutsideClick()\"\n >\n <div class=\"dropdown-container\" role=\"list\" #tagDropdown tabindex=\"0\">\n @for (tag of tagsInDropdown(); track tag) {\n <div\n class=\"dropdown-tag\"\n tabindex=\"0\"\n [attr.aria-label]=\"tag.label\"\n role=\"listitem\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n >\n {{ tag.label }}\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Built-in items dropdown (UI-877) \u2014 opens on focus, typing filters by label -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"promptOrigin\"\n [cdkConnectedOverlayOpen]=\"itemsDropdownVisible()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayWidth]=\"promptContainerRef?.offsetWidth || 0\"\n (overlayOutsideClick)=\"itemsDropdownOutsideClick($event)\"\n >\n <div class=\"dropdown-container custom-dropdown-container\" (mousedown)=\"$event.preventDefault()\">\n @if (dropdownHeading() || showDropdownClose()) {\n <div class=\"dropdown-header\">\n @if (dropdownHeading()) {\n <span class=\"dropdown-heading\">{{ dropdownHeading() }}</span>\n }\n @if (showDropdownClose()) {\n <ui-button\n class=\"dropdown-close\"\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [iconName]=\"'Close-in-line'\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [ariaLabel]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n (click)=\"closeItemsDropdown()\"\n ></ui-button>\n }\n </div>\n }\n <div role=\"list\">\n @for (item of filteredDropdownItems(); track item.id) {\n <div\n class=\"dropdown-tag dropdown-item\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-label]=\"item.label\"\n (click)=\"selectDropdownItem(item, $event)\"\n (keydown.enter)=\"selectDropdownItem(item, $event)\"\n (keydown.space)=\"selectDropdownItem(item, $event)\"\n >\n @if (item.icon) {\n <ui-icon class=\"dropdown-item-icon\" [name]=\"item.icon\" [color]=\"'inherit'\"></ui-icon>\n }\n <span class=\"dropdown-item-label\">{{ item.label }}</span>\n <ui-icon class=\"dropdown-item-chevron\" [name]=\"'Arrow-chevron-right-in-line'\" [color]=\"'inherit'\"></ui-icon>\n </div>\n }\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host ::ng-deep ui-field.prompt-text>mat-form-field{vertical-align:top}:host ::ng-deep ui-field.prompt-text .mat-mdc-text-field-wrapper{border-radius:10px!important}:host ::ng-deep ui-field.prompt-text .mat-mdc-form-field.keyboard-focused .mat-mdc-text-field-wrapper:after{outline:2px solid black}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper{background:transparent}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix{padding-bottom:0!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea{max-height:220px!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea:focus{border:2px solid black}:host ::ng-deep ui-button.send-button .rounded-icon .mdc-button{width:48px!important;height:48px!important}:host ::ng-deep ui-overflow-menu button.mat-mdc-unelevated-button.ghost.light-theme.only-icon{border:none}.prompt-container{border:1px solid #919191;border-radius:10px;background-color:#fff}.prompt-container-focused{border:1px solid black;outline:1px solid black}.prompt-container.disabled{border:1px solid #d3d3d3}.prompt-container.disabled.prompt-container-focused{outline:none}.prompt-container.disabled .prompt-icon{color:#d3d3d3}ui-field.show-icon{padding-left:24px}.prompt-icon{position:absolute;top:14px;left:16px;color:#666}.prompt-icon.hovered{color:#000}.dropdown-container{width:100%}.custom-dropdown-container{overflow:hidden;background-color:#fff;border-radius:0 0 8px 8px;box-shadow:0 8px 16px #00000014}.dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}.dropdown-heading{font-weight:700}.dropdown-close{margin-left:auto}.dropdown-item{display:flex;gap:12px;align-items:center}.dropdown-item-icon,.dropdown-item-chevron{flex-shrink:0}.dropdown-item-label{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dropdown-tag{padding:16px;background-color:#fff}.dropdown-tag:hover,.dropdown-tag:focus{background-color:#fff2fc;cursor:pointer}.carousel{flex-grow:1;min-width:0}.tag-container{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin:0 8px}.tag-container::-webkit-scrollbar{display:none}#file-upload{display:none}.prompt-footer,.flex-container{display:flex;flex-flow:row nowrap;align-items:center}.prompt-footer{justify-content:space-between;padding:8px 16px}@media(max-width:600px){.prompt-footer{padding:8px}}@media(max-width:320px){.prompt-footer{padding:8px}}.menu{display:flex;flex-flow:column nowrap;position:relative}.menu .menu-badge{position:absolute;right:0;z-index:1000}.view-more{margin-left:4px;white-space:nowrap}.view-more ::ng-deep button.mat-mdc-unelevated-button .label{white-space:nowrap}.prompt-container{position:relative}.prompt-container.has-error{border:1px solid #e02800;outline:1px solid #e02800}.prompt-error{margin-top:4px;align-items:center;display:flex;color:#e02800;font-size:12px;line-height:16px}.prompt-error ui-icon{margin-right:4px}.prompt-loading{display:flex;flex-direction:column;gap:4px;padding:12px 16px 0}.prompt-loading ui-skeleton{height:20px}.ghost{position:absolute;top:0;left:0;bottom:16px;color:#888;border:none;pointer-events:none;background:transparent;width:100%;padding:12px 16px;font-size:inherit;line-height:22px;letter-spacing:inherit;font-weight:inherit;font-family:ModernGothic,sans-serif;resize:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.FieldComponent, selector: "ui-field", inputs: ["fullWidth", "fullHeight", "label", "labelHtml", "labelIcon", "fieldName", "placeholder", "id", "value", "badgeVariant", "errors", "disabled", "required", "readOnly", "hintMessage", "type", "updateOnBlur", "allowOnlyDigits", "isAutocompleteOff", "allowNegative", "showBottomContent", "applicationTheme", "ariaLabel", "loading", "isValid", "maxCharacters", "trimOnBlur", "trimOnSubmit", "maxRows", "hasTextAreaCounter", "hideBuiltInErrors", "hideLabelInErrors", "max", "min", "textareaHeight", "borderless", "autosizableTextarea", "isAIVariant", "ariaLabelledby", "ariaDescribedby", "hasError"], outputs: ["validateEvent", "fieldBlur"] }, { kind: "component", type: i3.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "component", type: i4.OverflowMenuComponent, selector: "ui-overflow-menu", inputs: ["buttons", "iconTrigger", "menuLabel", "applicationTheme", "ariaLabel", "ariaRequired", "describedby", "contentTemplateRef", "buttonVariant", "buttonSize", "menuConfig", "isDynamicMenu", "withRemovableOption"], outputs: ["selectItem", "menuOpened", "menuClosed"] }, { kind: "component", type: i5.TagComponent, selector: "ui-tag", inputs: ["label", "icon", "allowClose", "readOnly", "isSelected", "showIconWhenSelected", "isDisabled", "applicationTheme", "ariaLabel", "ariaRequired", "showBadge", "notificationsAmount"], outputs: ["isSelectedChange", "close", "press"] }, { kind: "component", type: i6.BadgeComponent, selector: "ui-badge", inputs: ["label", "staticLabel", "icon", "iconColor", "trailingIcon", "trailingIconColor", "color", "variant", "notificationsAmount", "applicationTheme", "rebrandColor", "truncateLabel", "enableAnimation"] }, { kind: "directive", type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i9.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i10.SkeletonComponent, selector: "ui-skeleton", inputs: ["count", "theme", "appearance", "isAiTheme", "applicationTheme"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
266
311
|
}
|
|
267
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.20", ngImport: i0, type: PromptComponent, decorators: [{
|
|
268
313
|
type: Component,
|
|
@@ -273,11 +318,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.20", ngImpo
|
|
|
273
318
|
useExisting: forwardRef(() => PromptComponent),
|
|
274
319
|
multi: true,
|
|
275
320
|
},
|
|
276
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container>\n <div\n class=\"prompt-container\"\n [class.has-error]=\"!!errorMessage()\"\n [class.disabled]=\"isLocked()\"\n [attr.aria-disabled]=\"isLocked()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n cdkOverlayOrigin\n #promptOrigin=\"cdkOverlayOrigin\"\n #promptContainerRef\n [ngClass]=\"{ 'prompt-container-focused': isHighlighted() && !loading() }\"\n >\n @if (loading()) {\n <div class=\"prompt-loading\" aria-hidden=\"true\">\n <ui-skeleton [theme]=\"{ width: '100%', height: '20px', margin: '0' }\"></ui-skeleton>\n <ui-skeleton [theme]=\"{ width: '30%', height: '20px', margin: '0' }\"></ui-skeleton>\n </div>\n }\n <div class=\"prompt-autocomplete\" [hidden]=\"loading()\">\n <textarea tabindex=\"-1\" class=\"ghost\" id=\"autocomplete\" [value]=\"autocompleteSuggestion()\" readonly></textarea>\n\n @let showIcon = !isFieldFocused() && !textarea.value;\n @if (showIcon) {\n <ui-icon\n class=\"prompt-icon\"\n [color]=\"'inherit'\"\n [class.hovered]=\"isFieldHovered()\"\n [name]=\"'Sparkle-in-line'\"\n ></ui-icon>\n }\n <ui-field\n #textarea\n class=\"prompt-text\"\n [class.show-icon]=\"showIcon\"\n role=\"input\"\n [showBottomContent]=\"false\"\n [borderless]=\"true\"\n [type]=\"'multi-line'\"\n [autosizableTextarea]=\"true\"\n [maxCharacters]=\"maxCharacters()\"\n [placeholder]=\"showIcon ? placeholder() || ('PROMPT.ASK_ANYTHING' | uiTranslate | async)! : ''\"\n [value]=\"promptTextValue() || ''\"\n [hasTextAreaCounter]=\"false\"\n [disabled]=\"disabled\"\n (mouseenter)=\"isFieldHovered.set(true)\"\n (mouseleave)=\"isFieldHovered.set(false)\"\n (focusin)=\"isFieldFocused.set(true)\"\n (fieldBlur)=\"isFieldFocused.set(false)\"\n (keydown.tab)=\"onTextareaTab($event)\"\n ></ui-field>\n </div>\n <div class=\"prompt-footer flex-container\">\n <div class=\"flex-container\">\n @if (actionTag(); as at) {\n <ui-tag\n [label]=\"at.label\"\n [icon]=\"at.icon ?? 'Plus'\"\n [ariaLabel]=\"at.ariaLabel ?? at.label\"\n [isDisabled]=\"isLocked() || !!at.disabled\"\n (press)=\"onActionTagPress()\"\n ></ui-tag>\n } @else if (enableFileUpload()) {\n <ui-button\n [variant]=\"'icon-button'\"\n [tooltip]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [ariaLabel]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [iconName]=\"'Plus'\"\n [disabled]=\"isLocked()\"\n (click)=\"fileDrop()?.nativeElement?.click()\"\n ></ui-button>\n\n @if (promptFilesList().length) {\n <div class=\"menu\">\n <ui-badge\n [notificationsAmount]=\"promptFilesList().length\"\n [variant]=\"'notification'\"\n class=\"menu-badge\"\n ></ui-badge>\n <ui-overflow-menu\n [matTooltip]=\"('PROMPT.FILES' | uiTranslate | async)!\"\n [matTooltipPosition]=\"'above'\"\n [buttonSize]=\"'medium'\"\n [iconTrigger]=\"'Document'\"\n [buttonVariant]=\"'ghost'\"\n [buttons]=\"fileListMenuConfig()\"\n [isDynamicMenu]=\"true\"\n [withRemovableOption]=\"true\"\n (selectItem)=\"selectedMenuOption($event)\"\n ></ui-overflow-menu>\n </div>\n }\n }\n\n @if (actionTag() || enableFileUpload()) {\n <input\n [tabIndex]=\"-1\"\n class=\"form-control\"\n #fileDropRef\n type=\"file\"\n id=\"file-upload\"\n [accept]=\"fileInputAccept()\"\n [disabled]=\"isLocked()\"\n (change)=\"onFileSelected($event)\"\n />\n }\n </div>\n\n @if (tags()?.length && !promptTextValue()) {\n <div class=\"flex-container carousel\">\n <div class=\"tag-container flex-container\" role=\"list\" #tagsScrollContainer>\n @for (tag of tagsVisible(); track tag) {\n <ui-tag\n [label]=\"tag.label\"\n role=\"listitem\"\n [ariaLabel]=\"tag.label\"\n [isDisabled]=\"isLocked()\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n ></ui-tag>\n }\n\n @if (tagsInDropdown().length) {\n <ui-button\n class=\"view-more\"\n variant=\"text-inline\"\n [label]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [ariaLabel]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked()\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"focusTagDropdown()\"\n cdkOverlayOrigin\n #dropdownTrigger=\"cdkOverlayOrigin\"\n ></ui-button>\n }\n </div>\n\n <div class=\"flex-container\">\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [ariaLabel]=\"'Scroll left button'\"\n [iconName]=\"'Arrow-chevron-left-in-line'\"\n [disabled]=\"isLocked() || tagsScrollContainer.scrollLeft === 0\"\n (click)=\"tagsScrollContainer.scrollBy({ left: -100, behavior: 'smooth' })\"\n ></ui-button>\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [iconName]=\"'Arrow-chevron-right-in-line'\"\n [ariaLabel]=\"'Scroll right button'\"\n [disabled]=\"\n isLocked() ||\n tagsScrollContainer.scrollLeft + tagsScrollContainer.clientWidth >= tagsScrollContainer.scrollWidth\n \"\n (click)=\"tagsScrollContainer.scrollBy({ left: 100, behavior: 'smooth' })\"\n ></ui-button>\n </div>\n </div>\n }\n\n @if (showSendButton()) {\n <ui-button\n class=\"send-button\"\n [variant]=\"'secondary'\"\n [iconName]=\"'Arrow-up-in-line'\"\n [tooltip]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked() || sendButtonDisabled() || (!promptTextValue() && !promptFilesList().length)\"\n (click)=\"sendPromptData()\"\n ></ui-button>\n }\n </div>\n </div>\n\n @if (errorMessage()) {\n <div class=\"prompt-error\">\n <ui-icon [name]=\"'Error'\" color=\"red\"></ui-icon>\n <span>{{ errorMessage() }}</span>\n </div>\n }\n\n <!-- Dropdown for hidden tags -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"promptOrigin\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpened() && !isLocked()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayWidth]=\"promptContainerRef?.offsetWidth || 0\"\n (overlayOutsideClick)=\"dropdownOutsideClick()\"\n >\n <div class=\"dropdown-container\" role=\"list\" #tagDropdown tabindex=\"0\">\n @for (tag of tagsInDropdown(); track tag) {\n <div\n class=\"dropdown-tag\"\n tabindex=\"0\"\n [attr.aria-label]=\"tag.label\"\n role=\"listitem\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n >\n {{ tag.label }}\n </div>\n }\n </div>\n </ng-template>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host ::ng-deep ui-field.prompt-text>mat-form-field{vertical-align:top}:host ::ng-deep ui-field.prompt-text .mat-mdc-text-field-wrapper{border-radius:10px!important}:host ::ng-deep ui-field.prompt-text .mat-mdc-form-field.keyboard-focused .mat-mdc-text-field-wrapper:after{outline:2px solid black}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper{background:transparent}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix{padding-bottom:0!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea{max-height:220px!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea:focus{border:2px solid black}:host ::ng-deep ui-button.send-button .rounded-icon .mdc-button{width:48px!important;height:48px!important}:host ::ng-deep ui-overflow-menu button.mat-mdc-unelevated-button.ghost.light-theme.only-icon{border:none}.prompt-container{border:1px solid #919191;border-radius:10px;background-color:#fff}.prompt-container-focused{border:1px solid black;outline:1px solid black}.prompt-container.disabled{border:1px solid #d3d3d3}.prompt-container.disabled.prompt-container-focused{outline:none}.prompt-container.disabled .prompt-icon{color:#d3d3d3}ui-field.show-icon{padding-left:24px}.prompt-icon{position:absolute;top:14px;left:16px;color:#666}.prompt-icon.hovered{color:#000}.dropdown-container{width:100%}.dropdown-tag{padding:16px;background-color:#fff}.dropdown-tag:hover,.dropdown-tag:focus{background-color:#fff2fc;cursor:pointer}.carousel{flex-grow:1;min-width:0}.tag-container{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin:0 8px}.tag-container::-webkit-scrollbar{display:none}#file-upload{display:none}.prompt-footer,.flex-container{display:flex;flex-flow:row nowrap;align-items:center}.prompt-footer{justify-content:space-between;padding:8px 16px}@media(max-width:600px){.prompt-footer{padding:8px}}@media(max-width:320px){.prompt-footer{padding:8px}}.menu{display:flex;flex-flow:column nowrap;position:relative}.menu .menu-badge{position:absolute;right:0;z-index:1000}.view-more{margin-left:4px;white-space:nowrap}.view-more ::ng-deep button.mat-mdc-unelevated-button .label{white-space:nowrap}.prompt-container{position:relative}.prompt-container.has-error{border:1px solid #e02800;outline:1px solid #e02800}.prompt-error{margin-top:4px;align-items:center;display:flex;color:#e02800;font-size:12px;line-height:16px}.prompt-error ui-icon{margin-right:4px}.prompt-loading{display:flex;flex-direction:column;gap:4px;padding:12px 16px 0}.prompt-loading ui-skeleton{height:20px}.ghost{position:absolute;top:0;left:0;bottom:16px;color:#888;border:none;pointer-events:none;background:transparent;width:100%;padding:12px 16px;font-size:inherit;line-height:22px;letter-spacing:inherit;font-weight:inherit;font-family:ModernGothic,sans-serif;resize:none}\n"] }]
|
|
277
|
-
}], propDecorators: { tags: [{ type: i0.Input, args: [{ isSignal: true, alias: "tags", required: false }] }], actionTag: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionTag", required: false }] }], maxCharacters: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxCharacters", required: false }] }], supportedFileTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportedFileTypes", required: false }] }], autoClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoClear", required: false }] }], showSendButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSendButton", required: false }] }], sendButtonDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "sendButtonDisabled", required: false }] }], enableFileUpload: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableFileUpload", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], errorMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessage", required: false }] }], disabled: [{
|
|
321
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container>\n <div\n class=\"prompt-container\"\n [class.has-error]=\"!!errorMessage()\"\n [class.disabled]=\"isLocked()\"\n [attr.aria-disabled]=\"isLocked()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n cdkOverlayOrigin\n #promptOrigin=\"cdkOverlayOrigin\"\n #promptContainerRef\n [ngClass]=\"{ 'prompt-container-focused': isHighlighted() && !loading() }\"\n >\n @if (loading()) {\n <div class=\"prompt-loading\" aria-hidden=\"true\">\n <ui-skeleton [theme]=\"{ width: '100%', height: '20px', margin: '0' }\"></ui-skeleton>\n <ui-skeleton [theme]=\"{ width: '30%', height: '20px', margin: '0' }\"></ui-skeleton>\n </div>\n }\n <div class=\"prompt-autocomplete\" [hidden]=\"loading()\">\n <textarea tabindex=\"-1\" class=\"ghost\" id=\"autocomplete\" [value]=\"autocompleteSuggestion()\" readonly></textarea>\n\n @let showIcon = !isFieldFocused() && !textarea.value;\n @if (showIcon) {\n <ui-icon\n class=\"prompt-icon\"\n [color]=\"'inherit'\"\n [class.hovered]=\"isFieldHovered()\"\n [name]=\"'Sparkle-in-line'\"\n ></ui-icon>\n }\n <ui-field\n #textarea\n class=\"prompt-text\"\n [class.show-icon]=\"showIcon\"\n role=\"input\"\n [showBottomContent]=\"false\"\n [borderless]=\"true\"\n [type]=\"'multi-line'\"\n [autosizableTextarea]=\"true\"\n [maxCharacters]=\"maxCharacters()\"\n [placeholder]=\"showIcon ? placeholder() || ('PROMPT.ASK_ANYTHING' | uiTranslate | async)! : ''\"\n [value]=\"promptTextValue() || ''\"\n [hasTextAreaCounter]=\"false\"\n [disabled]=\"disabled\"\n (mouseenter)=\"isFieldHovered.set(true)\"\n (mouseleave)=\"isFieldHovered.set(false)\"\n (focusin)=\"isFieldFocused.set(true)\"\n (fieldBlur)=\"onFieldBlur()\"\n (keydown.tab)=\"onTextareaTab($event)\"\n ></ui-field>\n </div>\n <div class=\"prompt-footer flex-container\">\n <div class=\"flex-container\">\n @if (actionTag(); as at) {\n <ui-tag\n [label]=\"at.label\"\n [icon]=\"at.icon ?? 'Plus'\"\n [ariaLabel]=\"at.ariaLabel ?? at.label\"\n [isDisabled]=\"isLocked() || !!at.disabled\"\n (press)=\"onActionTagPress()\"\n ></ui-tag>\n } @else if (enableFileUpload()) {\n <ui-button\n [variant]=\"'icon-button'\"\n [tooltip]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [ariaLabel]=\"('PROMPT.ADD_FILES' | uiTranslate | async)!\"\n [iconName]=\"'Plus'\"\n [disabled]=\"isLocked()\"\n (click)=\"fileDrop()?.nativeElement?.click()\"\n ></ui-button>\n\n @if (promptFilesList().length) {\n <div class=\"menu\">\n <ui-badge\n [notificationsAmount]=\"promptFilesList().length\"\n [variant]=\"'notification'\"\n class=\"menu-badge\"\n ></ui-badge>\n <ui-overflow-menu\n [matTooltip]=\"('PROMPT.FILES' | uiTranslate | async)!\"\n [matTooltipPosition]=\"'above'\"\n [buttonSize]=\"'medium'\"\n [iconTrigger]=\"'Document'\"\n [buttonVariant]=\"'ghost'\"\n [buttons]=\"fileListMenuConfig()\"\n [isDynamicMenu]=\"true\"\n [withRemovableOption]=\"true\"\n (selectItem)=\"selectedMenuOption($event)\"\n ></ui-overflow-menu>\n </div>\n }\n }\n\n @if (actionTag() || enableFileUpload()) {\n <input\n [tabIndex]=\"-1\"\n class=\"form-control\"\n #fileDropRef\n type=\"file\"\n id=\"file-upload\"\n [accept]=\"fileInputAccept()\"\n [disabled]=\"isLocked()\"\n (change)=\"onFileSelected($event)\"\n />\n }\n </div>\n\n @if (tags()?.length && !promptTextValue()) {\n <div class=\"flex-container carousel\">\n <div class=\"tag-container flex-container\" role=\"list\" #tagsScrollContainer>\n @for (tag of tagsVisible(); track tag) {\n <ui-tag\n [label]=\"tag.label\"\n role=\"listitem\"\n [ariaLabel]=\"tag.label\"\n [isDisabled]=\"isLocked()\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n ></ui-tag>\n }\n\n @if (tagsInDropdown().length) {\n <ui-button\n class=\"view-more\"\n variant=\"text-inline\"\n [label]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [ariaLabel]=\"('PROMPT.VIEW_MORE' | uiTranslate | async)!\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked()\"\n (click)=\"toggleDropdown()\"\n (keydown.enter)=\"focusTagDropdown()\"\n cdkOverlayOrigin\n #dropdownTrigger=\"cdkOverlayOrigin\"\n ></ui-button>\n }\n </div>\n\n <div class=\"flex-container\">\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [ariaLabel]=\"'Scroll left button'\"\n [iconName]=\"'Arrow-chevron-left-in-line'\"\n [disabled]=\"isLocked() || tagsScrollContainer.scrollLeft === 0\"\n (click)=\"tagsScrollContainer.scrollBy({ left: -100, behavior: 'smooth' })\"\n ></ui-button>\n <ui-button\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [iconName]=\"'Arrow-chevron-right-in-line'\"\n [ariaLabel]=\"'Scroll right button'\"\n [disabled]=\"\n isLocked() ||\n tagsScrollContainer.scrollLeft + tagsScrollContainer.clientWidth >= tagsScrollContainer.scrollWidth\n \"\n (click)=\"tagsScrollContainer.scrollBy({ left: 100, behavior: 'smooth' })\"\n ></ui-button>\n </div>\n </div>\n }\n\n @if (showSendButton()) {\n <ui-button\n class=\"send-button\"\n [variant]=\"'secondary'\"\n [iconName]=\"'Arrow-up-in-line'\"\n [tooltip]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.SEND' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [size]=\"'medium'\"\n [disabled]=\"isLocked() || sendButtonDisabled() || (!promptTextValue() && !promptFilesList().length)\"\n (click)=\"sendPromptData()\"\n ></ui-button>\n }\n </div>\n </div>\n\n @if (errorMessage()) {\n <div class=\"prompt-error\">\n <ui-icon [name]=\"'Error'\" color=\"red\"></ui-icon>\n <span>{{ errorMessage() }}</span>\n </div>\n }\n\n <!-- Dropdown for hidden tags -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"promptOrigin\"\n [cdkConnectedOverlayOpen]=\"isDropdownOpened() && !isLocked()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayWidth]=\"promptContainerRef?.offsetWidth || 0\"\n (overlayOutsideClick)=\"dropdownOutsideClick()\"\n >\n <div class=\"dropdown-container\" role=\"list\" #tagDropdown tabindex=\"0\">\n @for (tag of tagsInDropdown(); track tag) {\n <div\n class=\"dropdown-tag\"\n tabindex=\"0\"\n [attr.aria-label]=\"tag.label\"\n role=\"listitem\"\n (click)=\"selectTag(tag, $event)\"\n (keyup.enter)=\"selectTag(tag, $event)\"\n (keyup.space)=\"selectTag(tag, $event)\"\n >\n {{ tag.label }}\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Built-in items dropdown (UI-877) \u2014 opens on focus, typing filters by label -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"promptOrigin\"\n [cdkConnectedOverlayOpen]=\"itemsDropdownVisible()\"\n [cdkConnectedOverlayPositions]=\"dropdownPositions\"\n [cdkConnectedOverlayWidth]=\"promptContainerRef?.offsetWidth || 0\"\n (overlayOutsideClick)=\"itemsDropdownOutsideClick($event)\"\n >\n <div class=\"dropdown-container custom-dropdown-container\" (mousedown)=\"$event.preventDefault()\">\n @if (dropdownHeading() || showDropdownClose()) {\n <div class=\"dropdown-header\">\n @if (dropdownHeading()) {\n <span class=\"dropdown-heading\">{{ dropdownHeading() }}</span>\n }\n @if (showDropdownClose()) {\n <ui-button\n class=\"dropdown-close\"\n [variant]=\"'icon-button'\"\n [size]=\"'small'\"\n [iconName]=\"'Close-in-line'\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [tooltipPosition]=\"'above'\"\n [ariaLabel]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n (click)=\"closeItemsDropdown()\"\n ></ui-button>\n }\n </div>\n }\n <div role=\"list\">\n @for (item of filteredDropdownItems(); track item.id) {\n <div\n class=\"dropdown-tag dropdown-item\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-label]=\"item.label\"\n (click)=\"selectDropdownItem(item, $event)\"\n (keydown.enter)=\"selectDropdownItem(item, $event)\"\n (keydown.space)=\"selectDropdownItem(item, $event)\"\n >\n @if (item.icon) {\n <ui-icon class=\"dropdown-item-icon\" [name]=\"item.icon\" [color]=\"'inherit'\"></ui-icon>\n }\n <span class=\"dropdown-item-label\">{{ item.label }}</span>\n <ui-icon class=\"dropdown-item-chevron\" [name]=\"'Arrow-chevron-right-in-line'\" [color]=\"'inherit'\"></ui-icon>\n </div>\n }\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host ::ng-deep ui-field.prompt-text>mat-form-field{vertical-align:top}:host ::ng-deep ui-field.prompt-text .mat-mdc-text-field-wrapper{border-radius:10px!important}:host ::ng-deep ui-field.prompt-text .mat-mdc-form-field.keyboard-focused .mat-mdc-text-field-wrapper:after{outline:2px solid black}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper{background:transparent}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-infix{padding-bottom:0!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea{max-height:220px!important}:host ::ng-deep .ui-field .mat-mdc-form-field.multi-line-textarea.mat-mdc-form-field-type-mat-input.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper textarea:focus{border:2px solid black}:host ::ng-deep ui-button.send-button .rounded-icon .mdc-button{width:48px!important;height:48px!important}:host ::ng-deep ui-overflow-menu button.mat-mdc-unelevated-button.ghost.light-theme.only-icon{border:none}.prompt-container{border:1px solid #919191;border-radius:10px;background-color:#fff}.prompt-container-focused{border:1px solid black;outline:1px solid black}.prompt-container.disabled{border:1px solid #d3d3d3}.prompt-container.disabled.prompt-container-focused{outline:none}.prompt-container.disabled .prompt-icon{color:#d3d3d3}ui-field.show-icon{padding-left:24px}.prompt-icon{position:absolute;top:14px;left:16px;color:#666}.prompt-icon.hovered{color:#000}.dropdown-container{width:100%}.custom-dropdown-container{overflow:hidden;background-color:#fff;border-radius:0 0 8px 8px;box-shadow:0 8px 16px #00000014}.dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}.dropdown-heading{font-weight:700}.dropdown-close{margin-left:auto}.dropdown-item{display:flex;gap:12px;align-items:center}.dropdown-item-icon,.dropdown-item-chevron{flex-shrink:0}.dropdown-item-label{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dropdown-tag{padding:16px;background-color:#fff}.dropdown-tag:hover,.dropdown-tag:focus{background-color:#fff2fc;cursor:pointer}.carousel{flex-grow:1;min-width:0}.tag-container{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin:0 8px}.tag-container::-webkit-scrollbar{display:none}#file-upload{display:none}.prompt-footer,.flex-container{display:flex;flex-flow:row nowrap;align-items:center}.prompt-footer{justify-content:space-between;padding:8px 16px}@media(max-width:600px){.prompt-footer{padding:8px}}@media(max-width:320px){.prompt-footer{padding:8px}}.menu{display:flex;flex-flow:column nowrap;position:relative}.menu .menu-badge{position:absolute;right:0;z-index:1000}.view-more{margin-left:4px;white-space:nowrap}.view-more ::ng-deep button.mat-mdc-unelevated-button .label{white-space:nowrap}.prompt-container{position:relative}.prompt-container.has-error{border:1px solid #e02800;outline:1px solid #e02800}.prompt-error{margin-top:4px;align-items:center;display:flex;color:#e02800;font-size:12px;line-height:16px}.prompt-error ui-icon{margin-right:4px}.prompt-loading{display:flex;flex-direction:column;gap:4px;padding:12px 16px 0}.prompt-loading ui-skeleton{height:20px}.ghost{position:absolute;top:0;left:0;bottom:16px;color:#888;border:none;pointer-events:none;background:transparent;width:100%;padding:12px 16px;font-size:inherit;line-height:22px;letter-spacing:inherit;font-weight:inherit;font-family:ModernGothic,sans-serif;resize:none}\n"] }]
|
|
322
|
+
}], propDecorators: { tags: [{ type: i0.Input, args: [{ isSignal: true, alias: "tags", required: false }] }], actionTag: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionTag", required: false }] }], maxCharacters: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxCharacters", required: false }] }], supportedFileTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportedFileTypes", required: false }] }], autoClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoClear", required: false }] }], showSendButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSendButton", required: false }] }], sendButtonDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "sendButtonDisabled", required: false }] }], enableFileUpload: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableFileUpload", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], errorMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorMessage", required: false }] }], dropdownItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownItems", required: false }] }], dropdownHeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownHeading", required: false }] }], showDropdownClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDropdownClose", required: false }] }], disabled: [{
|
|
278
323
|
type: Input,
|
|
279
324
|
args: [{ transform: booleanAttribute }]
|
|
280
|
-
}], promptData: [{ type: i0.Output, args: ["promptData"] }], actionTagFileSelected: [{ type: i0.Output, args: ["actionTagFileSelected"] }], fileDrop: [{ type: i0.ViewChild, args: ['fileDropRef', { isSignal: true }] }], tagDropdown: [{ type: i0.ViewChild, args: ['tagDropdown', { isSignal: true }] }], fieldComponentRef: [{ type: i0.ViewChild, args: ['textarea', { isSignal: true }] }] } });
|
|
325
|
+
}], promptData: [{ type: i0.Output, args: ["promptData"] }], actionTagFileSelected: [{ type: i0.Output, args: ["actionTagFileSelected"] }], dropdownItemSelected: [{ type: i0.Output, args: ["dropdownItemSelected"] }], dropdownClosed: [{ type: i0.Output, args: ["dropdownClosed"] }], fileDrop: [{ type: i0.ViewChild, args: ['fileDropRef', { isSignal: true }] }], tagDropdown: [{ type: i0.ViewChild, args: ['tagDropdown', { isSignal: true }] }], fieldComponentRef: [{ type: i0.ViewChild, args: ['textarea', { isSignal: true }] }], promptContainer: [{ type: i0.ViewChild, args: ['promptContainerRef', { isSignal: true }] }] } });
|
|
281
326
|
|
|
282
327
|
class PromptModule {
|
|
283
328
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.20", ngImport: i0, type: PromptModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|