@symphony-talent/component-library 4.214.0 → 4.216.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/atoms/icon/icon.enum.mjs +3 -1
- package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +8 -8
- package/esm2020/lib/design-guide/icon-explorer/icon-explorer.helper.mjs +13 -1
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +3 -3
- package/esm2020/projects/component-library/lib/atoms/icon/icon.enum.mjs +3 -1
- package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +8 -8
- package/esm2020/projects/component-library/lib/design-guide/icon-explorer/icon-explorer.helper.mjs +13 -1
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +3 -3
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +22 -8
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2015/symphony-talent-component-library.mjs +22 -8
- package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +22 -8
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library.mjs +22 -8
- package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
- package/lib/atoms/icon/icon.enum.d.ts +3 -1
- package/package.json +1 -1
- package/projects/component-library/global-assets/iconography/library-fonts/library-icons.eot +0 -0
- package/projects/component-library/global-assets/iconography/library-fonts/library-icons.svg +2 -0
- package/projects/component-library/global-assets/iconography/library-fonts/library-icons.ttf +0 -0
- package/projects/component-library/global-assets/iconography/library-fonts/library-icons.woff +0 -0
- package/projects/component-library/global-assets/iconography/library-icons.css +11 -5
- package/projects/component-library/global-assets/iconography/{sfx icons-v11.json → sfx-icons-v12.json} +94 -29
- package/projects/component-library/lib/atoms/icon/icon.enum.d.ts +3 -1
|
@@ -178,10 +178,10 @@ export class AISearchAssistantDrawerComponent {
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
AISearchAssistantDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
-
AISearchAssistantDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AISearchAssistantDrawerComponent, selector: "symphony-ai-search-assistant-drawer", inputs: { model: "model", config: "config", contextId: "contextId" }, outputs: { startOverClicked: "startOverClicked", undoClicked: "undoClicked", redoClicked: "redoClicked", drawerClosed: "drawerClosed", promptSelected: "promptSelected", messageSent: "messageSent", inputChanged: "inputChanged", retryClicked: "retryClicked", taskCancelled: "taskCancelled", suggestionsToggled: "suggestionsToggled" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\"\n [id]=\"getPendoId('aiAssistantDrawer')\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close Tala Assistant' : 'Open Tala Assistant'\"\n [title]=\"model.isOpen ? 'Close Tala Assistant' : 'Tala Assisted Messaging'\"\n [id]=\"getPendoId('aiAssistantToggle')\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-title sfx-m-0\">\n Build your email with \n <span class=\"ai-drawer-title-highlight\">Tala</span>, Symphony Talent's AI-powered Talent Acquisition Assistant.\n </div>\n </div>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-ai-withoutBorder'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- AI Task Status (Progress Bar and Error Handling) -->\n\n <div \n *ngIf=\"model.aiTaskStatus\"\n class=\"ai-message-wrapper task-status-wrapper\"\n id=\"taskStatusMessage\">\n <symphony-task-status\n [taskStatusModel]=\"model.aiTaskStatus\"\n (cancelTask)=\"onCancelTask()\"\n (retryTask)=\"onRetryTask()\"\n [id]=\"getPendoId('aiTaskStatus')\">\n </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\"\n [showStartOverButton]=\"config.showStartOverButton\"\n [startOverDisabled]=\"false\"\n [startOverButtonId]=\"getPendoId('aiStartOverButton')\"\n [startOverButtonTitle]=\"'Start Again'\"\n (startOverClicked)=\"onStartOverClick()\"\n [showUndoRedoButtons]=\"config.showUndoRedoButtons\"\n [undoDisabled]=\"config.undoDisabled\"\n [undoButtonId]=\"getPendoId('aiUndoButton')\"\n [undoButtonTitle]=\"'Undo'\"\n (undoClicked)=\"onUndoClick()\"\n [redoDisabled]=\"config.redoDisabled\"\n [redoButtonId]=\"getPendoId('aiRedoButton')\"\n [redoButtonTitle]=\"'Redo'\"\n (redoClicked)=\"onRedoClick()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:.625rem .9375rem;border-bottom:1px solid #D2D8E5;background-color:#c5aeff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:18px;color:#000;text-align:center}.ai-drawer-header .ai-drawer-title-highlight{font-weight:700}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-top:2px;background:linear-gradient(90deg,#a21aff,#351cc1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i3.TaskStatusComponent, selector: "symphony-task-status", inputs: ["taskStatusModel"], outputs: ["cancelTask", "retryTask"] }, { type: i4.InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: ["placeholder", "isDisabled", "maxCharacterLimit", "showCharacterCount", "minRows", "maxRows", "sendButtonIcon", "sendButtonAriaLabel", "autoResize", "showStartOverButton", "showUndoRedoButtons", "startOverButtonId", "startOverDisabled", "startOverButtonIcon", "startOverButtonTitle", "undoButtonId", "undoDisabled", "undoButtonIcon", "undoButtonTitle", "redoButtonId", "redoDisabled", "redoButtonIcon", "redoButtonTitle"], outputs: ["sendClicked", "enterPressed", "valueChanged", "startOverClicked", "undoClicked", "redoClicked"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "newLineToBr": i7.NewLineToBrPipe } });
|
|
181
|
+
AISearchAssistantDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AISearchAssistantDrawerComponent, selector: "symphony-ai-search-assistant-drawer", inputs: { model: "model", config: "config", contextId: "contextId" }, outputs: { startOverClicked: "startOverClicked", undoClicked: "undoClicked", redoClicked: "redoClicked", drawerClosed: "drawerClosed", promptSelected: "promptSelected", messageSent: "messageSent", inputChanged: "inputChanged", retryClicked: "retryClicked", taskCancelled: "taskCancelled", suggestionsToggled: "suggestionsToggled" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\"\n [id]=\"getPendoId('aiAssistantDrawer')\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close Tala Assistant' : 'Open Tala Assistant'\"\n [title]=\"model.isOpen ? 'Close Tala Assistant' : 'Tala Assisted Messaging'\"\n [id]=\"getPendoId('aiAssistantToggle')\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-title sfx-m-0\">\n Build your email with \n <span class=\"ai-drawer-title-highlight\">Tala</span>, Symphony Talent's AI-powered Talent Acquisition Assistant.\n </div>\n </div>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-ai-withoutBorder'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- AI Task Status (Progress Bar and Error Handling) -->\n\n <div \n *ngIf=\"model.aiTaskStatus\"\n class=\"ai-message-wrapper task-status-wrapper\"\n id=\"taskStatusMessage\">\n <symphony-task-status\n [taskStatusModel]=\"model.aiTaskStatus\"\n (cancelTask)=\"onCancelTask()\"\n (retryTask)=\"onRetryTask()\"\n [id]=\"getPendoId('aiTaskStatus')\">\n </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\"\n [showStartOverButton]=\"config.showStartOverButton\"\n [startOverDisabled]=\"false\"\n [startOverButtonId]=\"getPendoId('aiStartOverButton')\"\n [startOverButtonTitle]=\"'Start Again'\"\n (startOverClicked)=\"onStartOverClick()\"\n [showUndoRedoButtons]=\"config.showUndoRedoButtons\"\n [undoDisabled]=\"config.undoDisabled\"\n [undoButtonId]=\"getPendoId('aiUndoButton')\"\n [undoButtonTitle]=\"'Restore Previous'\"\n (undoClicked)=\"onUndoClick()\"\n [redoDisabled]=\"config.redoDisabled\"\n [redoButtonId]=\"getPendoId('aiRedoButton')\"\n [redoButtonTitle]=\"'Restore Next'\"\n (redoClicked)=\"onRedoClick()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:.625rem .9375rem;border-bottom:1px solid #D2D8E5;background-color:#c5aeff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:18px;color:#000;text-align:center}.ai-drawer-header .ai-drawer-title-highlight{font-weight:700}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-top:2px;background:linear-gradient(90deg,#a21aff,#351cc1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i3.TaskStatusComponent, selector: "symphony-task-status", inputs: ["taskStatusModel"], outputs: ["cancelTask", "retryTask"] }, { type: i4.InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: ["placeholder", "isDisabled", "maxCharacterLimit", "showCharacterCount", "minRows", "maxRows", "sendButtonIcon", "sendButtonAriaLabel", "autoResize", "showStartOverButton", "showUndoRedoButtons", "startOverButtonId", "startOverDisabled", "startOverButtonIcon", "startOverButtonTitle", "undoButtonId", "undoDisabled", "undoButtonIcon", "undoButtonTitle", "redoButtonId", "redoDisabled", "redoButtonIcon", "redoButtonTitle"], outputs: ["sendClicked", "enterPressed", "valueChanged", "startOverClicked", "undoClicked", "redoClicked"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "newLineToBr": i7.NewLineToBrPipe } });
|
|
182
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, decorators: [{
|
|
183
183
|
type: Component,
|
|
184
|
-
args: [{ selector: 'symphony-ai-search-assistant-drawer', template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\"\n [id]=\"getPendoId('aiAssistantDrawer')\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close Tala Assistant' : 'Open Tala Assistant'\"\n [title]=\"model.isOpen ? 'Close Tala Assistant' : 'Tala Assisted Messaging'\"\n [id]=\"getPendoId('aiAssistantToggle')\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-title sfx-m-0\">\n Build your email with \n <span class=\"ai-drawer-title-highlight\">Tala</span>, Symphony Talent's AI-powered Talent Acquisition Assistant.\n </div>\n </div>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-ai-withoutBorder'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- AI Task Status (Progress Bar and Error Handling) -->\n\n <div \n *ngIf=\"model.aiTaskStatus\"\n class=\"ai-message-wrapper task-status-wrapper\"\n id=\"taskStatusMessage\">\n <symphony-task-status\n [taskStatusModel]=\"model.aiTaskStatus\"\n (cancelTask)=\"onCancelTask()\"\n (retryTask)=\"onRetryTask()\"\n [id]=\"getPendoId('aiTaskStatus')\">\n </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\"\n [showStartOverButton]=\"config.showStartOverButton\"\n [startOverDisabled]=\"false\"\n [startOverButtonId]=\"getPendoId('aiStartOverButton')\"\n [startOverButtonTitle]=\"'Start Again'\"\n (startOverClicked)=\"onStartOverClick()\"\n [showUndoRedoButtons]=\"config.showUndoRedoButtons\"\n [undoDisabled]=\"config.undoDisabled\"\n [undoButtonId]=\"getPendoId('aiUndoButton')\"\n [undoButtonTitle]=\"'Undo'\"\n (undoClicked)=\"onUndoClick()\"\n [redoDisabled]=\"config.redoDisabled\"\n [redoButtonId]=\"getPendoId('aiRedoButton')\"\n [redoButtonTitle]=\"'Redo'\"\n (redoClicked)=\"onRedoClick()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:.625rem .9375rem;border-bottom:1px solid #D2D8E5;background-color:#c5aeff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:18px;color:#000;text-align:center}.ai-drawer-header .ai-drawer-title-highlight{font-weight:700}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-top:2px;background:linear-gradient(90deg,#a21aff,#351cc1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
|
|
184
|
+
args: [{ selector: 'symphony-ai-search-assistant-drawer', template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\"\n [id]=\"getPendoId('aiAssistantDrawer')\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close Tala Assistant' : 'Open Tala Assistant'\"\n [title]=\"model.isOpen ? 'Close Tala Assistant' : 'Tala Assisted Messaging'\"\n [id]=\"getPendoId('aiAssistantToggle')\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <div class=\"ai-drawer-title sfx-m-0\">\n Build your email with \n <span class=\"ai-drawer-title-highlight\">Tala</span>, Symphony Talent's AI-powered Talent Acquisition Assistant.\n </div>\n </div>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-ai-withoutBorder'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- AI Task Status (Progress Bar and Error Handling) -->\n\n <div \n *ngIf=\"model.aiTaskStatus\"\n class=\"ai-message-wrapper task-status-wrapper\"\n id=\"taskStatusMessage\">\n <symphony-task-status\n [taskStatusModel]=\"model.aiTaskStatus\"\n (cancelTask)=\"onCancelTask()\"\n (retryTask)=\"onRetryTask()\"\n [id]=\"getPendoId('aiTaskStatus')\">\n </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\"\n [showStartOverButton]=\"config.showStartOverButton\"\n [startOverDisabled]=\"false\"\n [startOverButtonId]=\"getPendoId('aiStartOverButton')\"\n [startOverButtonTitle]=\"'Start Again'\"\n (startOverClicked)=\"onStartOverClick()\"\n [showUndoRedoButtons]=\"config.showUndoRedoButtons\"\n [undoDisabled]=\"config.undoDisabled\"\n [undoButtonId]=\"getPendoId('aiUndoButton')\"\n [undoButtonTitle]=\"'Restore Previous'\"\n (undoClicked)=\"onUndoClick()\"\n [redoDisabled]=\"config.redoDisabled\"\n [redoButtonId]=\"getPendoId('aiRedoButton')\"\n [redoButtonTitle]=\"'Restore Next'\"\n (redoClicked)=\"onRedoClick()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:.625rem .9375rem;border-bottom:1px solid #D2D8E5;background-color:#c5aeff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:18px;color:#000;text-align:center}.ai-drawer-header .ai-drawer-title-highlight{font-weight:700}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-top:2px;background:linear-gradient(90deg,#a21aff,#351cc1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
|
|
185
185
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
|
|
186
186
|
type: Input
|
|
187
187
|
}], config: [{
|
|
@@ -215,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
215
215
|
type: ViewChild,
|
|
216
216
|
args: ['messageInput']
|
|
217
217
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUzNJLE1BQU0sT0FBTyxnQ0FBZ0M7SUFnRDNDLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL0NqQyxVQUFLLEdBQTJCO1lBQ3ZDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLEVBQUU7WUFDWixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQzNDLENBQUM7UUFFTyxXQUFNLEdBQTRCO1lBQ3pDLGNBQWMsRUFBRSw2Q0FBNkM7WUFDN0QsV0FBVyxFQUFFLGNBQWM7WUFDM0IsV0FBVyxFQUFFLEdBQUc7WUFDaEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsc0JBQXNCLEVBQUUsSUFBSTtTQUM3QixDQUFDO1FBT1EscUJB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LFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDckIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7NkhBM01VLGdDQUFnQztpSEFBaEMsZ0NBQWdDLDZxQkNUN0Msb25PQW9MTzsyRkQzS00sZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLHFDQUFxQzt3R0FLdEMsS0FBSztzQkFBYixLQUFLO2dCQVVHLE1BQU07c0JBQWQsS0FBSztnQkFhRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBR0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUdHLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0MsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0NoZWNrZWQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCwgQ2hhdE1lc3NhZ2UsIFN1Z2dlc3RlZFByb21wdCwgQUlTZWFyY2hBc3Npc3RhbnRDb25maWcsIE1lc3NhZ2VFdmVudCB9IGZyb20gJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBtb2RlbDogQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCA9IHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBzdWdnZXN0ZWRQcm9tcHRzOiBbXSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlucHV0VmFsdWU6ICcnLFxuICAgIG1heENoYXJhY3RlckxpbWl0OiAxMDAwLFxuICAgIGlzU3VnZ2VzdGlvbnNPcGVuOiB0cnVlIC8vIERlZmF1bHQgdG8gb3BlblxuICB9O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogQUlTZWFyY2hBc3Npc3RhbnRDb25maWcgPSB7XG4gICAgd2VsY29tZU1lc3NhZ2U6ICdIZWxsbywgSVxcJ20gVGFsYS4gSG93IGNhbiBJIGhlbHAgeW91IHRvZGF5PycsXG4gICAgcGxhY2Vob2xkZXI6ICdNZXNzYWdlIFRhbGEnLFxuICAgIG1heE1lc3NhZ2VzOiAxMDAsXG4gICAgYXV0b1Njcm9sbDogdHJ1ZSxcbiAgICBzaG93VGltZXN0YW1wczogdHJ1ZSxcbiAgICBlbmFibGVTdWdnZXN0ZWRQcm9tcHRzOiB0cnVlXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnRleHQgaWRlbnRpZmllciBmb3IgZHluYW1pYyBQZW5kbyBJRHMgKGUuZy4sICdHZW5BSUJ1aWxkZXInLCAnRW1haWxDb21wb3NlcicpXG4gICAqIFRoaXMgYWxsb3dzIHRoZSBzYW1lIGNvbXBvbmVudCB0byBoYXZlIGRpZmZlcmVudCBQZW5kbyB0cmFja2luZyBiYXNlZCBvbiB3aGVyZSBpdCdzIHVzZWRcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRleHRJZD86IHN0cmluZztcbiAgQE91dHB1dCgpIHN0YXJ0T3ZlckNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB1bmRvQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHJlZG9DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8vIFNpbXBsZSBldmVudCBvdXRwdXRzIGZvbGxvd2luZyBTeW1waG9ueSBwYXR0ZXJuc1xuICBAT3V0cHV0KCkgZHJhd2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHJvbXB0U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3RlZFByb21wdD4oKTtcbiAgQE91dHB1dCgpIG1lc3NhZ2VTZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNZXNzYWdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbnB1dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJldHJ5Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50c1xuICBAT3V0cHV0KCkgdGFza0NhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIFN1Z2dlc3Rpb25zIHRvZ2dsZSBldmVudFxuICBAT3V0cHV0KCkgc3VnZ2VzdGlvbnNUb2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXRDb250YWluZXInKSBjaGF0Q29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ21lc3NhZ2VJbnB1dCcpIG1lc3NhZ2VJbnB1dCE6IElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudDtcblxuICBwcml2YXRlIHNob3VsZFNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzQWRkZWRXZWxjb21lTWVzc2FnZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGlmIGNvbmZpZ3VyZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgdGhpcy5hZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gJiYgdGhpcy5jb25maWcuYXV0b1Njcm9sbCkge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlNZXNzYWdlSWQoaW5kZXg6IG51bWJlciwgbWVzc2FnZTogQ2hhdE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBtZXNzYWdlLmlkO1xuICB9XG5cbiAgb25Ub2dnbGVEcmF3ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pc09wZW4gPSAhdGhpcy5tb2RlbC5pc09wZW47XG4gICAgaWYgKHRoaXMubW9kZWwuaXNPcGVuKSB7XG4gICAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGFzIGZpcnN0IG1lc3NhZ2UgaWYgbm90IGFscmVhZHkgYWRkZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgICB0aGlzLmFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTtcbiAgICAgIFxuICAgICAgLy8gRm9jdXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gb3BlbmluZ1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnB1dCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZUlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMCk7IC8vIFdhaXQgZm9yIGFuaW1hdGlvbiB0byBjb21wbGV0ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYXdlckNsb3NlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25Ub2dnbGVTdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID0gIXRoaXMubW9kZWwuaXNTdWdnZXN0aW9uc09wZW47XG4gICAgdGhpcy5zdWdnZXN0aW9uc1RvZ2dsZWQuZW1pdCh0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvblByb21wdENsaWNrKHByb21wdDogU3VnZ2VzdGVkUHJvbXB0KTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZWxlY3RlZC5lbWl0KHByb21wdCk7XG4gICAgLy8gQ29weSBwcm9tcHQgdGV4dCB0byBpbnB1dCBpbnN0ZWFkIG9mIGF1dG8tc2VuZGluZ1xuICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9IHByb21wdC50ZXh0O1xuICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQocHJvbXB0LnRleHQpO1xuICAgIFxuICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBmaWVsZCBmb3IgYmV0dGVyIFVYXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlSW5wdXQpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5wdXQuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuICBvblNlbmRNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1vZGVsLmlucHV0VmFsdWU/LnRyaW0oKTtcbiAgICBpZiAobWVzc2FnZSAmJiAhdGhpcy5tb2RlbC5pc0xvYWRpbmcgJiYgIXRoaXMubW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXIpIHtcbiAgICAgIC8vIENyZWF0ZSBnZW5lcmljIGV2ZW50IHBheWxvYWRcbiAgICAgIGNvbnN0IG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50ID0ge1xuICAgICAgICBjb250ZW50OiBtZXNzYWdlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLm1vZGVsLmNvbnRleHQgLy8gUGFzcyBhbnkgY29udGV4dCBkYXRhXG4gICAgICB9O1xuXG4gICAgICAvLyBDbGVhciBpbnB1dCBpbW1lZGlhdGVseSBmb3IgYmV0dGVyIFVYXG4gICAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMubWVzc2FnZUlucHV0LmNsZWFyKCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAvLyBFbWl0IGV2ZW50IGZvciBwYXJlbnQgdG8gaGFuZGxlXG4gICAgICB0aGlzLm1lc3NhZ2VTZW50LmVtaXQobWVzc2FnZUV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0Q2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50IGhhbmRsZXJzXG4gIG9uQ2FuY2VsVGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgb25SZXRyeVRhc2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXRyeUNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaGF0Q29udGFpbmVyKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jaGF0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGZvcm1hdHRlZCB0aW1lIHN0cmluZyBmb3IgbWVzc2FnZSB0aW1lc3RhbXBcbiAgICovXG4gIGdldE1lc3NhZ2VUaW1lKHRpbWVzdGFtcDogRGF0ZSB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZSA9IHR5cGVvZiB0aW1lc3RhbXAgPT09ICdzdHJpbmcnID8gbmV3IERhdGUodGltZXN0YW1wKSA6IHRpbWVzdGFtcDtcbiAgICBcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICBtb250aDogJ3Nob3J0JywgXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgaG91cjEyOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGlzcGxheSB0ZXh0IGZvciBtZXNzYWdlIHN0YXR1c1xuICAgKi9cbiAgZ2V0U3RhdHVzVGV4dChzdGF0dXM6ICdwZW5kaW5nJyB8ICdkZWxpdmVyZWQnIHwgJ2Vycm9yJyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzTWFwID0ge1xuICAgICAgJ3BlbmRpbmcnOiAnU2VuZGluZy4uLicsXG4gICAgICAnZGVsaXZlcmVkJzogJ0RlbGl2ZXJlZCcsXG4gICAgICAnZXJyb3InOiAnRmFpbGVkIHRvIHNlbmQnXG4gICAgfTtcbiAgICBcbiAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c10gfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgUGVuZG8gSUQgd2l0aCBvcHRpb25hbCBkeW5hbWljIGNvbnRleHRcbiAgICogQHBhcmFtIGJhc2VJZCAtIFRoZSBiYXNlIGlkZW50aWZpZXIgZm9yIHRoZSBlbGVtZW50XG4gICAqIEByZXR1cm5zIENvbXBsZXRlIFBlbmRvIElEIHN0cmluZ1xuICAgKi9cbiAgZ2V0UGVuZG9JZChiYXNlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dElkID8gYCR7YmFzZUlkfS0ke3RoaXMuY29udGV4dElkfWAgOiBiYXNlSWQ7XG4gIH1cblxuICBwcml2YXRlIGFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgJiYgdGhpcy5tb2RlbC5tZXNzYWdlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5jb25maWcud2VsY29tZU1lc3NhZ2UpIHtcbiAgICAgIHRoaXMubW9kZWwubWVzc2FnZXMucHVzaCh7XG4gICAgICAgIGlkOiAnd2VsY29tZS1tZXNzYWdlJyxcbiAgICAgICAgY29udGVudDogdGhpcy5jb25maWcud2VsY29tZU1lc3NhZ2UsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgdHlwZTogJ2FpJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25TdGFydE92ZXJDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0T3ZlckNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25VbmRvQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy51bmRvQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBvblJlZG9DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnJlZG9DbGlja2VkLmVtaXQoKTtcbiAgfVxufSBcbiIsIjwhLS0gRHJhd2VyIENvbnRhaW5lciAtLT5cbjxkaXYgXG4gIGNsYXNzPVwiYWktZHJhd2VyLWNvbnRhaW5lclwiIFxuICBbY2xhc3Mub3Blbl09XCJtb2RlbC5pc09wZW5cIlxuICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlBc3Npc3RhbnREcmF3ZXInKVwiPlxuICBcbiAgPCEtLSBFZGdlIFRvZ2dsZSBCdXR0b24gKGluc2lkZSBkcmF3ZXIgY29udGFpbmVyKSAtLT5cbiAgPGJ1dHRvbiBcbiAgICBjbGFzcz1cImFpLWRyYXdlci1lZGdlLXRvZ2dsZVwiXG4gICAgW2NsYXNzLmRyYXdlci1vcGVuXT1cIm1vZGVsLmlzT3BlblwiXG4gICAgKGNsaWNrKT1cIm9uVG9nZ2xlRHJhd2VyKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIFRhbGEgQXNzaXN0YW50JyA6ICdPcGVuIFRhbGEgQXNzaXN0YW50J1wiXG4gICAgW3RpdGxlXT1cIm1vZGVsLmlzT3BlbiA/ICdDbG9zZSBUYWxhIEFzc2lzdGFudCcgOiAnVGFsYSBBc3Npc3RlZCBNZXNzYWdpbmcnXCJcbiAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlBc3Npc3RhbnRUb2dnbGUnKVwiPlxuICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIm1vZGVsLmlzT3BlbiA/ICdzaS1hcnJvdy1uZXh0JyA6ICdzaS1hcnJvdy1wcmV2J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgPC9idXR0b24+XG4gIFxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1oZWFkZXJcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItaGVhZGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLXRpdGxlIHNmeC1tLTBcIj5cbiAgICAgIEJ1aWxkIHlvdXIgZW1haWwgd2l0aCBcbiAgICAgIDxzcGFuIGNsYXNzPVwiYWktZHJhd2VyLXRpdGxlLWhpZ2hsaWdodFwiPlRhbGE8L3NwYW4+LCBTeW1waG9ueSBUYWxlbnQncyBBSS1wb3dlcmVkIFRhbGVudCBBY3F1aXNpdGlvbiBBc3Npc3RhbnQuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIENoYXQgQ29udGFpbmVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWJvZHlcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gTWVzc2FnZXMgQXJlYSAtLT5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJhaS1jaGF0LWNvbnRhaW5lclwiIFxuICAgICAgI2NoYXRDb250YWluZXI+XG4gICAgICBcbiAgICAgIDwhLS0gTWVzc2FnZSBMaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtbGlzdCBzZngtbWItMjBcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtb2RlbC5tZXNzYWdlczsgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VJZFwiXG4gICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXdyYXBwZXJcIlxuICAgICAgICAgIFthdHRyLmRhdGEtbWVzc2FnZS10eXBlXT1cIm1lc3NhZ2UudHlwZVwiPlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gVGltZXN0YW1wIEFib3ZlIE1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS10aW1lc3RhbXAtY29udGFpbmVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnNob3dUaW1lc3RhbXBzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLW1lc3NhZ2UtdGltZXN0YW1wXCI+XG4gICAgICAgICAgICAgIHt7IGdldE1lc3NhZ2VUaW1lKG1lc3NhZ2UudGltZXN0YW1wKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBCdWJibGUgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1idWJibGVcIlxuICAgICAgICAgICAgW2NsYXNzLnVzZXItbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICd1c2VyJ1wiXG4gICAgICAgICAgICBbY2xhc3MuYWktbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICdhaSdcIlxuICAgICAgICAgICAgW2NsYXNzLnN5c3RlbS1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ3N5c3RlbSdcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBBSSBNZXNzYWdlIEljb24gLS0+XG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtaWNvblwiIFxuICAgICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ2FpJ1wiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktYWktd2l0aG91dEJvcmRlcidcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWNvbnRlbnQgc2Z4LW0tMFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLmNvbnRlbnQgfCBuZXdMaW5lVG9CclwiPlxuICAgICAgICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBTdGF0dXMgKGZvciB1c2VyIG1lc3NhZ2VzKSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXN0YXR1c1wiXG4gICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ3VzZXInICYmIG1lc3NhZ2Uuc3RhdHVzXCI+XG4gICAgICAgICAgICA8c3BhbiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1zdGF0dXMtdGV4dFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtZGVsaXZlcmVkXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAnZGVsaXZlcmVkJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtcGVuZGluZ109XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1lcnJvcl09XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ2Vycm9yJ1wiPlxuICAgICAgICAgICAgICB7eyBnZXRTdGF0dXNUZXh0KG1lc3NhZ2Uuc3RhdHVzKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFJIFRhc2sgU3RhdHVzIChQcm9ncmVzcyBCYXIgYW5kIEVycm9yIEhhbmRsaW5nKSAtLT5cblxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGVsLmFpVGFza1N0YXR1c1wiXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utd3JhcHBlciB0YXNrLXN0YXR1cy13cmFwcGVyXCJcbiAgICAgICAgICAgIGlkPVwidGFza1N0YXR1c01lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS10YXNrLXN0YXR1c1xuICAgICAgICAgICAgICBbdGFza1N0YXR1c01vZGVsXT1cIm1vZGVsLmFpVGFza1N0YXR1c1wiXG4gICAgICAgICAgICAgIChjYW5jZWxUYXNrKT1cIm9uQ2FuY2VsVGFzaygpXCJcbiAgICAgICAgICAgICAgKHJldHJ5VGFzayk9XCJvblJldHJ5VGFzaygpXCJcbiAgICAgICAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpVGFza1N0YXR1cycpXCI+XG4gICAgICAgICAgICA8L3N5bXBob255LXRhc2stc3RhdHVzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN1Z2dlc3RlZCBQcm9tcHRzIFNlY3Rpb24gLS0+XG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGVkLXByb21wdHMtc2VjdGlvblwiXG4gICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVTdWdnZXN0ZWRQcm9tcHRzICYmIG1vZGVsLnN1Z2dlc3RlZFByb21wdHMubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLXByb21wdHMtaW50cm8tcm93XCI+XG4gICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggY2xhc3M9XCJhaS1wcm9tcHRzLWludHJvIHNmeC1tYi0xNVwiPlxuICAgICAgICAgIHt7IG1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID8gJ0hlcmUgYXJlIGEgZmV3IHN1Z2dlc3RlZCBwcm9tcHRzIHRvIGdldCB5b3Ugc3RhcnRlZC4nIDogJ05lZWQgaGVscCBnZXR0aW5nIHN0YXJ0ZWQ/JyB9fVxuICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGlvbnMtdG9nZ2xlLWNvbXBhY3RcIlxuICAgICAgICAgIFtjbGFzcy5zdWdnZXN0aW9ucy1vcGVuXT1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVTdWdnZXN0aW9ucygpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID8gJ0hpZGUgc3VnZ2VzdGlvbnMnIDogJ1Nob3cgc3VnZ2VzdGlvbnMnXCJcbiAgICAgICAgICBbdGl0bGVdPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW4gPyAnSGlkZSBzdWdnZXN0aW9ucycgOiAnU2hvdyBzdWdnZXN0aW9ucydcIlxuICAgICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaVN1Z2dlc3Rpb25zVG9nZ2xlJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJtb2RlbC5pc0xvYWRpbmcgfHwgbW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktYXJyb3ctaGlkZS1yZXZlYWwnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJhaS1zdWdnZXN0ZWQtcHJvbXB0c1wiIFxuICAgICAgICAqbmdJZj1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuXCJcbiAgICAgICAgW2NsYXNzLm9wZW5dPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW5cIlxuICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlTdWdnZXN0ZWRQcm9tcHRzJylcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nIHx8IG1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wcm9tcHRzLWxpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvbXB0IG9mIG1vZGVsLnN1Z2dlc3RlZFByb21wdHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByb21wdENsaWNrKHByb21wdClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlQcm9tcHRCdXR0b24tJyArIGkpXCI+XG4gICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBcbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9tcHQuaWNvblwiIFxuICAgICAgICAgICAgICBbaWNvbl09XCInc2ktJyArIHByb21wdC5pY29uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtaWNvblwiPlxuICAgICAgICAgICAgPC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhaS1wcm9tcHQtdGV4dFwiPnt7IHByb21wdC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEZvb3RlciAvIElucHV0IEFyZWEgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItZm9vdGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICBcbiAgICA8IS0tIElucHV0IFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYWktaW5wdXQtcm93XCI+XG4gICAgICA8c3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kXG4gICAgICAgICNtZXNzYWdlSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5pbnB1dFZhbHVlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgIFttYXhDaGFyYWN0ZXJMaW1pdF09XCJtb2RlbC5tYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgIFtzaG93Q2hhcmFjdGVyQ291bnRdPVwiISFtb2RlbC5tYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgIChzZW5kQ2xpY2tlZCk9XCJvblNlbmRNZXNzYWdlKClcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChlbnRlclByZXNzZWQpPVwib25TZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpTWVzc2FnZUlucHV0JylcIlxuICAgICAgICBbc2hvd1N0YXJ0T3ZlckJ1dHRvbl09XCJjb25maWcuc2hvd1N0YXJ0T3ZlckJ1dHRvblwiXG4gICAgICAgIFtzdGFydE92ZXJEaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgIFtzdGFydE92ZXJCdXR0b25JZF09XCJnZXRQZW5kb0lkKCdhaVN0YXJ0T3ZlckJ1dHRvbicpXCJcbiAgICAgICAgW3N0YXJ0T3ZlckJ1dHRvblRpdGxlXT1cIidTdGFydCBBZ2FpbidcIlxuICAgICAgICAoc3RhcnRPdmVyQ2xpY2tlZCk9XCJvblN0YXJ0T3ZlckNsaWNrKClcIlxuICAgICAgICBbc2hvd1VuZG9SZWRvQnV0dG9uc109XCJjb25maWcuc2hvd1VuZG9SZWRvQnV0dG9uc1wiXG4gICAgICAgIFt1bmRvRGlzYWJsZWRdPVwiY29uZmlnLnVuZG9EaXNhYmxlZFwiXG4gICAgICAgIFt1bmRvQnV0dG9uSWRdPVwiZ2V0UGVuZG9JZCgnYWlVbmRvQnV0dG9uJylcIlxuICAgICAgICBbdW5kb0J1dHRvblRpdGxlXT1cIidVbmRvJ1wiXG4gICAgICAgICh1bmRvQ2xpY2tlZCk9XCJvblVuZG9DbGljaygpXCJcbiAgICAgICAgW3JlZG9EaXNhYmxlZF09XCJjb25maWcucmVkb0Rpc2FibGVkXCJcbiAgICAgICAgW3JlZG9CdXR0b25JZF09XCJnZXRQZW5kb0lkKCdhaVJlZG9CdXR0b24nKVwiXG4gICAgICAgIFtyZWRvQnV0dG9uVGl0bGVdPVwiJ1JlZG8nXCJcbiAgICAgICAgKHJlZG9DbGlja2VkKT1cIm9uUmVkb0NsaWNrKClcIj5cbiAgICAgIDwvc3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiAiXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUzNJLE1BQU0sT0FBTyxnQ0FBZ0M7SUFnRDNDLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL0NqQyxVQUFLLEdBQTJCO1lBQ3ZDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLEVBQUU7WUFDWixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1NBQzNDLENBQUM7UUFFTyxXQUFNLEdBQTRCO1lBQ3pDLGNBQWMsRUFBRSw2Q0FBNkM7WUFDN0QsV0FBVyxFQUFFLGNBQWM7WUFDM0IsV0FBVyxFQUFFLEdBQUc7WUFDaEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsc0JBQXNCLEVBQUUsSUFBSTtTQUM3QixDQUFDO1FBT1EscUJB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LFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDckIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7NkhBM01VLGdDQUFnQztpSEFBaEMsZ0NBQWdDLDZxQkNUN0Msd29PQW9MTzsyRkQzS00sZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLHFDQUFxQzt3R0FLdEMsS0FBSztzQkFBYixLQUFLO2dCQVVHLE1BQU07c0JBQWQsS0FBSztnQkFhRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBR0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUdHLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0MsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0NoZWNrZWQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCwgQ2hhdE1lc3NhZ2UsIFN1Z2dlc3RlZFByb21wdCwgQUlTZWFyY2hBc3Npc3RhbnRDb25maWcsIE1lc3NhZ2VFdmVudCB9IGZyb20gJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBtb2RlbDogQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCA9IHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBzdWdnZXN0ZWRQcm9tcHRzOiBbXSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlucHV0VmFsdWU6ICcnLFxuICAgIG1heENoYXJhY3RlckxpbWl0OiAxMDAwLFxuICAgIGlzU3VnZ2VzdGlvbnNPcGVuOiB0cnVlIC8vIERlZmF1bHQgdG8gb3BlblxuICB9O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogQUlTZWFyY2hBc3Npc3RhbnRDb25maWcgPSB7XG4gICAgd2VsY29tZU1lc3NhZ2U6ICdIZWxsbywgSVxcJ20gVGFsYS4gSG93IGNhbiBJIGhlbHAgeW91IHRvZGF5PycsXG4gICAgcGxhY2Vob2xkZXI6ICdNZXNzYWdlIFRhbGEnLFxuICAgIG1heE1lc3NhZ2VzOiAxMDAsXG4gICAgYXV0b1Njcm9sbDogdHJ1ZSxcbiAgICBzaG93VGltZXN0YW1wczogdHJ1ZSxcbiAgICBlbmFibGVTdWdnZXN0ZWRQcm9tcHRzOiB0cnVlXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnRleHQgaWRlbnRpZmllciBmb3IgZHluYW1pYyBQZW5kbyBJRHMgKGUuZy4sICdHZW5BSUJ1aWxkZXInLCAnRW1haWxDb21wb3NlcicpXG4gICAqIFRoaXMgYWxsb3dzIHRoZSBzYW1lIGNvbXBvbmVudCB0byBoYXZlIGRpZmZlcmVudCBQZW5kbyB0cmFja2luZyBiYXNlZCBvbiB3aGVyZSBpdCdzIHVzZWRcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRleHRJZD86IHN0cmluZztcbiAgQE91dHB1dCgpIHN0YXJ0T3ZlckNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB1bmRvQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHJlZG9DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8vIFNpbXBsZSBldmVudCBvdXRwdXRzIGZvbGxvd2luZyBTeW1waG9ueSBwYXR0ZXJuc1xuICBAT3V0cHV0KCkgZHJhd2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHJvbXB0U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3RlZFByb21wdD4oKTtcbiAgQE91dHB1dCgpIG1lc3NhZ2VTZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNZXNzYWdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbnB1dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJldHJ5Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50c1xuICBAT3V0cHV0KCkgdGFza0NhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIFN1Z2dlc3Rpb25zIHRvZ2dsZSBldmVudFxuICBAT3V0cHV0KCkgc3VnZ2VzdGlvbnNUb2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXRDb250YWluZXInKSBjaGF0Q29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ21lc3NhZ2VJbnB1dCcpIG1lc3NhZ2VJbnB1dCE6IElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudDtcblxuICBwcml2YXRlIHNob3VsZFNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzQWRkZWRXZWxjb21lTWVzc2FnZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGlmIGNvbmZpZ3VyZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgdGhpcy5hZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gJiYgdGhpcy5jb25maWcuYXV0b1Njcm9sbCkge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlNZXNzYWdlSWQoaW5kZXg6IG51bWJlciwgbWVzc2FnZTogQ2hhdE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBtZXNzYWdlLmlkO1xuICB9XG5cbiAgb25Ub2dnbGVEcmF3ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pc09wZW4gPSAhdGhpcy5tb2RlbC5pc09wZW47XG4gICAgaWYgKHRoaXMubW9kZWwuaXNPcGVuKSB7XG4gICAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGFzIGZpcnN0IG1lc3NhZ2UgaWYgbm90IGFscmVhZHkgYWRkZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgICB0aGlzLmFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTtcbiAgICAgIFxuICAgICAgLy8gRm9jdXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gb3BlbmluZ1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnB1dCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZUlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMCk7IC8vIFdhaXQgZm9yIGFuaW1hdGlvbiB0byBjb21wbGV0ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYXdlckNsb3NlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25Ub2dnbGVTdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID0gIXRoaXMubW9kZWwuaXNTdWdnZXN0aW9uc09wZW47XG4gICAgdGhpcy5zdWdnZXN0aW9uc1RvZ2dsZWQuZW1pdCh0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvblByb21wdENsaWNrKHByb21wdDogU3VnZ2VzdGVkUHJvbXB0KTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZWxlY3RlZC5lbWl0KHByb21wdCk7XG4gICAgLy8gQ29weSBwcm9tcHQgdGV4dCB0byBpbnB1dCBpbnN0ZWFkIG9mIGF1dG8tc2VuZGluZ1xuICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9IHByb21wdC50ZXh0O1xuICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQocHJvbXB0LnRleHQpO1xuICAgIFxuICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBmaWVsZCBmb3IgYmV0dGVyIFVYXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlSW5wdXQpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5wdXQuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuICBvblNlbmRNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1vZGVsLmlucHV0VmFsdWU/LnRyaW0oKTtcbiAgICBpZiAobWVzc2FnZSAmJiAhdGhpcy5tb2RlbC5pc0xvYWRpbmcgJiYgIXRoaXMubW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXIpIHtcbiAgICAgIC8vIENyZWF0ZSBnZW5lcmljIGV2ZW50IHBheWxvYWRcbiAgICAgIGNvbnN0IG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50ID0ge1xuICAgICAgICBjb250ZW50OiBtZXNzYWdlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLm1vZGVsLmNvbnRleHQgLy8gUGFzcyBhbnkgY29udGV4dCBkYXRhXG4gICAgICB9O1xuXG4gICAgICAvLyBDbGVhciBpbnB1dCBpbW1lZGlhdGVseSBmb3IgYmV0dGVyIFVYXG4gICAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMubWVzc2FnZUlucHV0LmNsZWFyKCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAvLyBFbWl0IGV2ZW50IGZvciBwYXJlbnQgdG8gaGFuZGxlXG4gICAgICB0aGlzLm1lc3NhZ2VTZW50LmVtaXQobWVzc2FnZUV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0Q2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50IGhhbmRsZXJzXG4gIG9uQ2FuY2VsVGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgb25SZXRyeVRhc2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXRyeUNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaGF0Q29udGFpbmVyKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jaGF0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGZvcm1hdHRlZCB0aW1lIHN0cmluZyBmb3IgbWVzc2FnZSB0aW1lc3RhbXBcbiAgICovXG4gIGdldE1lc3NhZ2VUaW1lKHRpbWVzdGFtcDogRGF0ZSB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZSA9IHR5cGVvZiB0aW1lc3RhbXAgPT09ICdzdHJpbmcnID8gbmV3IERhdGUodGltZXN0YW1wKSA6IHRpbWVzdGFtcDtcbiAgICBcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICBtb250aDogJ3Nob3J0JywgXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgaG91cjEyOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGlzcGxheSB0ZXh0IGZvciBtZXNzYWdlIHN0YXR1c1xuICAgKi9cbiAgZ2V0U3RhdHVzVGV4dChzdGF0dXM6ICdwZW5kaW5nJyB8ICdkZWxpdmVyZWQnIHwgJ2Vycm9yJyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzTWFwID0ge1xuICAgICAgJ3BlbmRpbmcnOiAnU2VuZGluZy4uLicsXG4gICAgICAnZGVsaXZlcmVkJzogJ0RlbGl2ZXJlZCcsXG4gICAgICAnZXJyb3InOiAnRmFpbGVkIHRvIHNlbmQnXG4gICAgfTtcbiAgICBcbiAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c10gfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgUGVuZG8gSUQgd2l0aCBvcHRpb25hbCBkeW5hbWljIGNvbnRleHRcbiAgICogQHBhcmFtIGJhc2VJZCAtIFRoZSBiYXNlIGlkZW50aWZpZXIgZm9yIHRoZSBlbGVtZW50XG4gICAqIEByZXR1cm5zIENvbXBsZXRlIFBlbmRvIElEIHN0cmluZ1xuICAgKi9cbiAgZ2V0UGVuZG9JZChiYXNlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dElkID8gYCR7YmFzZUlkfS0ke3RoaXMuY29udGV4dElkfWAgOiBiYXNlSWQ7XG4gIH1cblxuICBwcml2YXRlIGFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgJiYgdGhpcy5tb2RlbC5tZXNzYWdlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5jb25maWcud2VsY29tZU1lc3NhZ2UpIHtcbiAgICAgIHRoaXMubW9kZWwubWVzc2FnZXMucHVzaCh7XG4gICAgICAgIGlkOiAnd2VsY29tZS1tZXNzYWdlJyxcbiAgICAgICAgY29udGVudDogdGhpcy5jb25maWcud2VsY29tZU1lc3NhZ2UsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgdHlwZTogJ2FpJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25TdGFydE92ZXJDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0T3ZlckNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25VbmRvQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy51bmRvQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBvblJlZG9DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnJlZG9DbGlja2VkLmVtaXQoKTtcbiAgfVxufSBcbiIsIjwhLS0gRHJhd2VyIENvbnRhaW5lciAtLT5cbjxkaXYgXG4gIGNsYXNzPVwiYWktZHJhd2VyLWNvbnRhaW5lclwiIFxuICBbY2xhc3Mub3Blbl09XCJtb2RlbC5pc09wZW5cIlxuICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlBc3Npc3RhbnREcmF3ZXInKVwiPlxuICBcbiAgPCEtLSBFZGdlIFRvZ2dsZSBCdXR0b24gKGluc2lkZSBkcmF3ZXIgY29udGFpbmVyKSAtLT5cbiAgPGJ1dHRvbiBcbiAgICBjbGFzcz1cImFpLWRyYXdlci1lZGdlLXRvZ2dsZVwiXG4gICAgW2NsYXNzLmRyYXdlci1vcGVuXT1cIm1vZGVsLmlzT3BlblwiXG4gICAgKGNsaWNrKT1cIm9uVG9nZ2xlRHJhd2VyKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIFRhbGEgQXNzaXN0YW50JyA6ICdPcGVuIFRhbGEgQXNzaXN0YW50J1wiXG4gICAgW3RpdGxlXT1cIm1vZGVsLmlzT3BlbiA/ICdDbG9zZSBUYWxhIEFzc2lzdGFudCcgOiAnVGFsYSBBc3Npc3RlZCBNZXNzYWdpbmcnXCJcbiAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlBc3Npc3RhbnRUb2dnbGUnKVwiPlxuICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIm1vZGVsLmlzT3BlbiA/ICdzaS1hcnJvdy1uZXh0JyA6ICdzaS1hcnJvdy1wcmV2J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgPC9idXR0b24+XG4gIFxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1oZWFkZXJcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItaGVhZGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLXRpdGxlIHNmeC1tLTBcIj5cbiAgICAgIEJ1aWxkIHlvdXIgZW1haWwgd2l0aCBcbiAgICAgIDxzcGFuIGNsYXNzPVwiYWktZHJhd2VyLXRpdGxlLWhpZ2hsaWdodFwiPlRhbGE8L3NwYW4+LCBTeW1waG9ueSBUYWxlbnQncyBBSS1wb3dlcmVkIFRhbGVudCBBY3F1aXNpdGlvbiBBc3Npc3RhbnQuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIENoYXQgQ29udGFpbmVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWJvZHlcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gTWVzc2FnZXMgQXJlYSAtLT5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJhaS1jaGF0LWNvbnRhaW5lclwiIFxuICAgICAgI2NoYXRDb250YWluZXI+XG4gICAgICBcbiAgICAgIDwhLS0gTWVzc2FnZSBMaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtbGlzdCBzZngtbWItMjBcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtb2RlbC5tZXNzYWdlczsgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VJZFwiXG4gICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXdyYXBwZXJcIlxuICAgICAgICAgIFthdHRyLmRhdGEtbWVzc2FnZS10eXBlXT1cIm1lc3NhZ2UudHlwZVwiPlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gVGltZXN0YW1wIEFib3ZlIE1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS10aW1lc3RhbXAtY29udGFpbmVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnNob3dUaW1lc3RhbXBzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLW1lc3NhZ2UtdGltZXN0YW1wXCI+XG4gICAgICAgICAgICAgIHt7IGdldE1lc3NhZ2VUaW1lKG1lc3NhZ2UudGltZXN0YW1wKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBCdWJibGUgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1idWJibGVcIlxuICAgICAgICAgICAgW2NsYXNzLnVzZXItbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICd1c2VyJ1wiXG4gICAgICAgICAgICBbY2xhc3MuYWktbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICdhaSdcIlxuICAgICAgICAgICAgW2NsYXNzLnN5c3RlbS1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ3N5c3RlbSdcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBBSSBNZXNzYWdlIEljb24gLS0+XG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtaWNvblwiIFxuICAgICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ2FpJ1wiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktYWktd2l0aG91dEJvcmRlcidcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWNvbnRlbnQgc2Z4LW0tMFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLmNvbnRlbnQgfCBuZXdMaW5lVG9CclwiPlxuICAgICAgICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBTdGF0dXMgKGZvciB1c2VyIG1lc3NhZ2VzKSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXN0YXR1c1wiXG4gICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ3VzZXInICYmIG1lc3NhZ2Uuc3RhdHVzXCI+XG4gICAgICAgICAgICA8c3BhbiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1zdGF0dXMtdGV4dFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtZGVsaXZlcmVkXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAnZGVsaXZlcmVkJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtcGVuZGluZ109XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1lcnJvcl09XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ2Vycm9yJ1wiPlxuICAgICAgICAgICAgICB7eyBnZXRTdGF0dXNUZXh0KG1lc3NhZ2Uuc3RhdHVzKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFJIFRhc2sgU3RhdHVzIChQcm9ncmVzcyBCYXIgYW5kIEVycm9yIEhhbmRsaW5nKSAtLT5cblxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGVsLmFpVGFza1N0YXR1c1wiXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utd3JhcHBlciB0YXNrLXN0YXR1cy13cmFwcGVyXCJcbiAgICAgICAgICAgIGlkPVwidGFza1N0YXR1c01lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS10YXNrLXN0YXR1c1xuICAgICAgICAgICAgICBbdGFza1N0YXR1c01vZGVsXT1cIm1vZGVsLmFpVGFza1N0YXR1c1wiXG4gICAgICAgICAgICAgIChjYW5jZWxUYXNrKT1cIm9uQ2FuY2VsVGFzaygpXCJcbiAgICAgICAgICAgICAgKHJldHJ5VGFzayk9XCJvblJldHJ5VGFzaygpXCJcbiAgICAgICAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpVGFza1N0YXR1cycpXCI+XG4gICAgICAgICAgICA8L3N5bXBob255LXRhc2stc3RhdHVzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN1Z2dlc3RlZCBQcm9tcHRzIFNlY3Rpb24gLS0+XG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGVkLXByb21wdHMtc2VjdGlvblwiXG4gICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVTdWdnZXN0ZWRQcm9tcHRzICYmIG1vZGVsLnN1Z2dlc3RlZFByb21wdHMubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLXByb21wdHMtaW50cm8tcm93XCI+XG4gICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggY2xhc3M9XCJhaS1wcm9tcHRzLWludHJvIHNmeC1tYi0xNVwiPlxuICAgICAgICAgIHt7IG1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID8gJ0hlcmUgYXJlIGEgZmV3IHN1Z2dlc3RlZCBwcm9tcHRzIHRvIGdldCB5b3Ugc3RhcnRlZC4nIDogJ05lZWQgaGVscCBnZXR0aW5nIHN0YXJ0ZWQ/JyB9fVxuICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGlvbnMtdG9nZ2xlLWNvbXBhY3RcIlxuICAgICAgICAgIFtjbGFzcy5zdWdnZXN0aW9ucy1vcGVuXT1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVTdWdnZXN0aW9ucygpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID8gJ0hpZGUgc3VnZ2VzdGlvbnMnIDogJ1Nob3cgc3VnZ2VzdGlvbnMnXCJcbiAgICAgICAgICBbdGl0bGVdPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW4gPyAnSGlkZSBzdWdnZXN0aW9ucycgOiAnU2hvdyBzdWdnZXN0aW9ucydcIlxuICAgICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaVN1Z2dlc3Rpb25zVG9nZ2xlJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJtb2RlbC5pc0xvYWRpbmcgfHwgbW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktYXJyb3ctaGlkZS1yZXZlYWwnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJhaS1zdWdnZXN0ZWQtcHJvbXB0c1wiIFxuICAgICAgICAqbmdJZj1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuXCJcbiAgICAgICAgW2NsYXNzLm9wZW5dPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW5cIlxuICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlTdWdnZXN0ZWRQcm9tcHRzJylcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nIHx8IG1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wcm9tcHRzLWxpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvbXB0IG9mIG1vZGVsLnN1Z2dlc3RlZFByb21wdHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByb21wdENsaWNrKHByb21wdClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlQcm9tcHRCdXR0b24tJyArIGkpXCI+XG4gICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBcbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9tcHQuaWNvblwiIFxuICAgICAgICAgICAgICBbaWNvbl09XCInc2ktJyArIHByb21wdC5pY29uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtaWNvblwiPlxuICAgICAgICAgICAgPC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhaS1wcm9tcHQtdGV4dFwiPnt7IHByb21wdC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEZvb3RlciAvIElucHV0IEFyZWEgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItZm9vdGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICBcbiAgICA8IS0tIElucHV0IFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYWktaW5wdXQtcm93XCI+XG4gICAgICA8c3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kXG4gICAgICAgICNtZXNzYWdlSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5pbnB1dFZhbHVlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgIFttYXhDaGFyYWN0ZXJMaW1pdF09XCJtb2RlbC5tYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgIFtzaG93Q2hhcmFjdGVyQ291bnRdPVwiISFtb2RlbC5tYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgIChzZW5kQ2xpY2tlZCk9XCJvblNlbmRNZXNzYWdlKClcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChlbnRlclByZXNzZWQpPVwib25TZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpTWVzc2FnZUlucHV0JylcIlxuICAgICAgICBbc2hvd1N0YXJ0T3ZlckJ1dHRvbl09XCJjb25maWcuc2hvd1N0YXJ0T3ZlckJ1dHRvblwiXG4gICAgICAgIFtzdGFydE92ZXJEaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgIFtzdGFydE92ZXJCdXR0b25JZF09XCJnZXRQZW5kb0lkKCdhaVN0YXJ0T3ZlckJ1dHRvbicpXCJcbiAgICAgICAgW3N0YXJ0T3ZlckJ1dHRvblRpdGxlXT1cIidTdGFydCBBZ2FpbidcIlxuICAgICAgICAoc3RhcnRPdmVyQ2xpY2tlZCk9XCJvblN0YXJ0T3ZlckNsaWNrKClcIlxuICAgICAgICBbc2hvd1VuZG9SZWRvQnV0dG9uc109XCJjb25maWcuc2hvd1VuZG9SZWRvQnV0dG9uc1wiXG4gICAgICAgIFt1bmRvRGlzYWJsZWRdPVwiY29uZmlnLnVuZG9EaXNhYmxlZFwiXG4gICAgICAgIFt1bmRvQnV0dG9uSWRdPVwiZ2V0UGVuZG9JZCgnYWlVbmRvQnV0dG9uJylcIlxuICAgICAgICBbdW5kb0J1dHRvblRpdGxlXT1cIidSZXN0b3JlIFByZXZpb3VzJ1wiXG4gICAgICAgICh1bmRvQ2xpY2tlZCk9XCJvblVuZG9DbGljaygpXCJcbiAgICAgICAgW3JlZG9EaXNhYmxlZF09XCJjb25maWcucmVkb0Rpc2FibGVkXCJcbiAgICAgICAgW3JlZG9CdXR0b25JZF09XCJnZXRQZW5kb0lkKCdhaVJlZG9CdXR0b24nKVwiXG4gICAgICAgIFtyZWRvQnV0dG9uVGl0bGVdPVwiJ1Jlc3RvcmUgTmV4dCdcIlxuICAgICAgICAocmVkb0NsaWNrZWQpPVwib25SZWRvQ2xpY2soKVwiPlxuICAgICAgPC9zeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+ICJdfQ==
|