@symphony-talent/component-library 4.182.0 → 4.184.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.
Files changed (53) hide show
  1. package/esm2020/lib/atoms/icon-wrapper/icon-wrapper.component.mjs +6 -3
  2. package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +3 -3
  3. package/esm2020/lib/molecules/additional-information-card/additional-information-card.component.mjs +1 -1
  4. package/esm2020/lib/molecules/document-management-item/document-management-item.component.mjs +1 -1
  5. package/esm2020/lib/molecules/filter-tabs/filter-tabs.component.mjs +9 -3
  6. package/esm2020/lib/molecules/filter-tabs/filter-tabs.model.mjs +1 -1
  7. package/esm2020/lib/molecules/filter-tabs-v2/filter-tabs.component.mjs +1 -1
  8. package/esm2020/lib/molecules/icon-swatch/icon-swatch.component.mjs +1 -1
  9. package/esm2020/lib/molecules/task-status/task-status.component.mjs +1 -1
  10. package/esm2020/lib/organisms/action-bar/action-bar.component.mjs +1 -1
  11. package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +13 -3
  12. package/esm2020/lib/organisms/assigned-to-widget/assigned-to-widget.component.mjs +1 -1
  13. package/esm2020/lib/organisms/document-management-list/document-management-list.component.mjs +1 -1
  14. package/esm2020/lib/organisms/grid-controls/grid-controls.component.mjs +1 -1
  15. package/esm2020/lib/organisms/grid-download/grid-download.component.mjs +1 -1
  16. package/esm2020/lib/pages/events-settings-page/events-settings-page.component.mjs +1 -1
  17. package/esm2020/lib/pages/feedback-detail-page/feedback-detail-page.component.mjs +1 -1
  18. package/esm2020/lib/pages/job-list-page/job-list-page.component.mjs +1 -1
  19. package/esm2020/projects/component-library/lib/atoms/icon-wrapper/icon-wrapper.component.mjs +6 -3
  20. package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +3 -3
  21. package/esm2020/projects/component-library/lib/molecules/additional-information-card/additional-information-card.component.mjs +1 -1
  22. package/esm2020/projects/component-library/lib/molecules/document-management-item/document-management-item.component.mjs +1 -1
  23. package/esm2020/projects/component-library/lib/molecules/filter-tabs/filter-tabs.component.mjs +9 -3
  24. package/esm2020/projects/component-library/lib/molecules/filter-tabs/filter-tabs.model.mjs +1 -1
  25. package/esm2020/projects/component-library/lib/molecules/filter-tabs-v2/filter-tabs.component.mjs +1 -1
  26. package/esm2020/projects/component-library/lib/molecules/icon-swatch/icon-swatch.component.mjs +1 -1
  27. package/esm2020/projects/component-library/lib/molecules/task-status/task-status.component.mjs +1 -1
  28. package/esm2020/projects/component-library/lib/organisms/action-bar/action-bar.component.mjs +1 -1
  29. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +13 -3
  30. package/esm2020/projects/component-library/lib/organisms/assigned-to-widget/assigned-to-widget.component.mjs +1 -1
  31. package/esm2020/projects/component-library/lib/organisms/document-management-list/document-management-list.component.mjs +1 -1
  32. package/esm2020/projects/component-library/lib/organisms/grid-controls/grid-controls.component.mjs +1 -1
  33. package/esm2020/projects/component-library/lib/organisms/grid-download/grid-download.component.mjs +1 -1
  34. package/esm2020/projects/component-library/lib/pages/events-settings-page/events-settings-page.component.mjs +1 -1
  35. package/esm2020/projects/component-library/lib/pages/feedback-detail-page/feedback-detail-page.component.mjs +1 -1
  36. package/esm2020/projects/component-library/lib/pages/job-list-page/job-list-page.component.mjs +1 -1
  37. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +40 -21
  38. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  39. package/fesm2015/symphony-talent-component-library.mjs +40 -21
  40. package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
  41. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +40 -21
  42. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  43. package/fesm2020/symphony-talent-component-library.mjs +40 -21
  44. package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
  45. package/lib/atoms/icon-wrapper/icon-wrapper.component.d.ts +2 -1
  46. package/lib/molecules/filter-tabs/filter-tabs.component.d.ts +3 -1
  47. package/lib/molecules/filter-tabs/filter-tabs.model.d.ts +2 -0
  48. package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +12 -1
  49. package/package.json +1 -1
  50. package/projects/component-library/lib/atoms/icon-wrapper/icon-wrapper.component.d.ts +2 -1
  51. package/projects/component-library/lib/molecules/filter-tabs/filter-tabs.component.d.ts +3 -1
  52. package/projects/component-library/lib/molecules/filter-tabs/filter-tabs.model.d.ts +2 -0
  53. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +12 -1
@@ -14,7 +14,7 @@ export class IconSwatchComponent {
14
14
  }
15
15
  }
16
16
  IconSwatchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: IconSwatchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- IconSwatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: IconSwatchComponent, selector: "symphony-icon-swatch", inputs: { iconSwatchModel: "iconSwatchModel", isInverse: "isInverse" }, ngImport: i0, template: "<div class=\"sfx-icon-swatch\">\n <div\n class=\"sfx-icon-wrapper\"\n [ngClass]=\"{\n 'mt-0': iconSwatchModel.hasBorder\n }\"\n >\n <symphony-icon-wrapper\n *ngIf=\"iconSwatchModel.hasBorder\"\n [isInverse]=\"isInverse\"\n >\n <symphony-icon [icon]=\"iconSwatchModel.icon\"></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-icon\n *ngIf=\"!iconSwatchModel.hasBorder\"\n [icon]=\"iconSwatchModel.icon\"\n ></symphony-icon>\n </div>\n <div class=\"sfx-icon-description-wrapper\">\n <symphony-h5 [text]=\"iconSwatchModel.iconName\"></symphony-h5>\n\n <symphony-paragraph [text]=\"iconSwatchModel.iconClass\"></symphony-paragraph>\n </div>\n</div>\n", styles: ["*{font-family:neuzeit-grotesk,sans-serif!important}.sfx-icon-wrapper{display:inline-block;vertical-align:top;margin-top:10px;margin-right:10px;text-align:center}.mt-0{margin-top:0}.sfx-icon-description-wrapper{display:inline-block}\n"], components: [{ type: i1.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i4.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
+ IconSwatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: IconSwatchComponent, selector: "symphony-icon-swatch", inputs: { iconSwatchModel: "iconSwatchModel", isInverse: "isInverse" }, ngImport: i0, template: "<div class=\"sfx-icon-swatch\">\n <div\n class=\"sfx-icon-wrapper\"\n [ngClass]=\"{\n 'mt-0': iconSwatchModel.hasBorder\n }\"\n >\n <symphony-icon-wrapper\n *ngIf=\"iconSwatchModel.hasBorder\"\n [isInverse]=\"isInverse\"\n >\n <symphony-icon [icon]=\"iconSwatchModel.icon\"></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-icon\n *ngIf=\"!iconSwatchModel.hasBorder\"\n [icon]=\"iconSwatchModel.icon\"\n ></symphony-icon>\n </div>\n <div class=\"sfx-icon-description-wrapper\">\n <symphony-h5 [text]=\"iconSwatchModel.iconName\"></symphony-h5>\n\n <symphony-paragraph [text]=\"iconSwatchModel.iconClass\"></symphony-paragraph>\n </div>\n</div>\n", styles: ["*{font-family:neuzeit-grotesk,sans-serif!important}.sfx-icon-wrapper{display:inline-block;vertical-align:top;margin-top:10px;margin-right:10px;text-align:center}.mt-0{margin-top:0}.sfx-icon-description-wrapper{display:inline-block}\n"], components: [{ type: i1.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i4.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: IconSwatchComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{ selector: 'symphony-icon-swatch', template: "<div class=\"sfx-icon-swatch\">\n <div\n class=\"sfx-icon-wrapper\"\n [ngClass]=\"{\n 'mt-0': iconSwatchModel.hasBorder\n }\"\n >\n <symphony-icon-wrapper\n *ngIf=\"iconSwatchModel.hasBorder\"\n [isInverse]=\"isInverse\"\n >\n <symphony-icon [icon]=\"iconSwatchModel.icon\"></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-icon\n *ngIf=\"!iconSwatchModel.hasBorder\"\n [icon]=\"iconSwatchModel.icon\"\n ></symphony-icon>\n </div>\n <div class=\"sfx-icon-description-wrapper\">\n <symphony-h5 [text]=\"iconSwatchModel.iconName\"></symphony-h5>\n\n <symphony-paragraph [text]=\"iconSwatchModel.iconClass\"></symphony-paragraph>\n </div>\n</div>\n", styles: ["*{font-family:neuzeit-grotesk,sans-serif!important}.sfx-icon-wrapper{display:inline-block;vertical-align:top;margin-top:10px;margin-right:10px;text-align:center}.mt-0{margin-top:0}.sfx-icon-description-wrapper{display:inline-block}\n"] }]
@@ -50,7 +50,7 @@ export class TaskStatusComponent {
50
50
  }
51
51
  }
52
52
  TaskStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
- TaskStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: TaskStatusComponent, selector: "symphony-task-status", inputs: { taskStatusModel: "taskStatusModel" }, outputs: { cancelTask: "cancelTask", retryTask: "retryTask" }, ngImport: i0, template: "<!-- Task Status - Card-based Design -->\n<div class=\"task-status\" *ngIf=\"taskStatusModel\">\n <!-- Task Status Card -->\n <div class=\"task-card\" \n [class.success-state]=\"taskStatusModel.showCompleted\"\n [class.error-state]=\"taskStatusModel.hasError\"\n [class.progress-state]=\"taskStatusModel.showProgressBar\">\n \n <!-- Card Header -->\n <div class=\"task-header\">\n <!-- Status Icon -->\n <div class=\"task-icon-container\">\n <!-- Success Icon (completion state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCompleted\"\n class=\"task-icon success-icon\"\n [icon]=\"'si-confirmation'\"\n ></symphony-icon>\n \n <!-- Error Icon (error state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.hasError\"\n class=\"task-icon error-icon\"\n [icon]=\"'si-pending-incomplete'\"\n ></symphony-icon>\n \n <!-- Processing Icon (progress state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"task-icon processing-icon\"\n [icon]=\"taskStatusModel.processingIcon || 'si-chatbot'\"\n ></symphony-icon>\n </div>\n \n <!-- Status Text and Task Name -->\n <div class=\"task-content\">\n <symphony-h4 class=\"task-status-text\">\n {{ getTaskStatusText() }}\n </symphony-h4>\n <symphony-paragraph class=\"task-name\">\n {{ getTaskName() }}\n </symphony-paragraph>\n </div>\n \n <!-- Progress Percentage or Actions -->\n <div class=\"task-actions\">\n <!-- Progress Percentage -->\n <symphony-paragraph\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"progress-text\">\n {{ getProgressText() }}\n </symphony-paragraph>\n \n <!-- Cancel Button (only during progress) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCancel && !taskStatusModel.showCompleted && !taskStatusModel.hasError\"\n class=\"cancel-btn\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancelTask()\">\n </symphony-icon>\n </div>\n </div>\n \n <!-- Card Body -->\n <div class=\"task-body\">\n <!-- Progress Bar -->\n <symphony-sfx-progress-bar\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n [progress]=\"taskStatusModel.progress\"\n class=\"progress-bar\">\n </symphony-sfx-progress-bar>\n \n <!-- Error Message -->\n <div *ngIf=\"taskStatusModel.hasError\" class=\"error-content\">\n <symphony-paragraph class=\"error-message\">\n {{ getErrorMessage() }}\n </symphony-paragraph>\n <symphony-icon-wrapper \n *ngIf=\"shouldShowRetry()\"\n class=\"retry-icon\"\n (clicked)=\"onRetryTask()\">\n <symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\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}.task-status .task-card{background:#F1F2F5;border:1px solid #D2D8E5;border-radius:8px;padding:16px;margin:8px 0;transition:all .3s ease;min-height:80px}.task-status .task-card.success-state{border-color:#2cb45f;background:#f8fff9}.task-status .task-card.error-state{border-color:#ac4463;background:#fff8f8}.task-status .task-card.progress-state{border-color:#2b8ff3;background:#f8f9ff}.task-status .task-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.task-status .task-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .task-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .success-icon{color:#2cb45f;background:#d2f4de}.task-status .task-icon-container .error-icon{color:#ac4463;background:#f4e2e7}.task-status .task-icon-container .processing-icon{color:#2b8ff3;background:white}.task-status .task-content{flex:1;min-width:0}.task-status .task-content .task-status-text{margin:0 0 4px;font-weight:600;font-size:.875rem;color:#08203e}.task-status .task-content .task-name{margin:0;font-size:.75rem;color:#5b6d80;line-height:1.4;word-wrap:break-word}.task-status .task-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.task-status .task-actions .progress-text{margin:0;font-weight:600;font-size:.75rem;color:#2b8ff3;min-width:35px;text-align:right}.task-status .task-actions .cancel-btn{cursor:pointer;font-size:16px;color:#5b6d80;transition:color .2s ease;padding:4px}.task-status .task-actions .cancel-btn:hover{color:#ac4463}.task-status .task-body .progress-bar{margin:0}.task-status .task-body .error-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-status .task-body .error-content .error-message{margin:0;font-size:.75rem;color:#ac4463;line-height:1.4;flex:1}.task-status .task-body .error-content .retry-icon{flex-shrink:0;width:32px;height:32px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper{width:32px;height:32px;border:1px solid #AC4463;color:#ac4463;padding:6px;font-size:14px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper:hover{background:#AC4463;color:#fff}.task-status symphony-sfx-progress-bar{transition:all .3s ease;float:none}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.SfxProgressBarComponent, selector: "symphony-sfx-progress-bar", inputs: ["progress"] }, { type: i5.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
53
+ TaskStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: TaskStatusComponent, selector: "symphony-task-status", inputs: { taskStatusModel: "taskStatusModel" }, outputs: { cancelTask: "cancelTask", retryTask: "retryTask" }, ngImport: i0, template: "<!-- Task Status - Card-based Design -->\n<div class=\"task-status\" *ngIf=\"taskStatusModel\">\n <!-- Task Status Card -->\n <div class=\"task-card\" \n [class.success-state]=\"taskStatusModel.showCompleted\"\n [class.error-state]=\"taskStatusModel.hasError\"\n [class.progress-state]=\"taskStatusModel.showProgressBar\">\n \n <!-- Card Header -->\n <div class=\"task-header\">\n <!-- Status Icon -->\n <div class=\"task-icon-container\">\n <!-- Success Icon (completion state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCompleted\"\n class=\"task-icon success-icon\"\n [icon]=\"'si-confirmation'\"\n ></symphony-icon>\n \n <!-- Error Icon (error state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.hasError\"\n class=\"task-icon error-icon\"\n [icon]=\"'si-pending-incomplete'\"\n ></symphony-icon>\n \n <!-- Processing Icon (progress state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"task-icon processing-icon\"\n [icon]=\"taskStatusModel.processingIcon || 'si-chatbot'\"\n ></symphony-icon>\n </div>\n \n <!-- Status Text and Task Name -->\n <div class=\"task-content\">\n <symphony-h4 class=\"task-status-text\">\n {{ getTaskStatusText() }}\n </symphony-h4>\n <symphony-paragraph class=\"task-name\">\n {{ getTaskName() }}\n </symphony-paragraph>\n </div>\n \n <!-- Progress Percentage or Actions -->\n <div class=\"task-actions\">\n <!-- Progress Percentage -->\n <symphony-paragraph\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"progress-text\">\n {{ getProgressText() }}\n </symphony-paragraph>\n \n <!-- Cancel Button (only during progress) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCancel && !taskStatusModel.showCompleted && !taskStatusModel.hasError\"\n class=\"cancel-btn\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancelTask()\">\n </symphony-icon>\n </div>\n </div>\n \n <!-- Card Body -->\n <div class=\"task-body\">\n <!-- Progress Bar -->\n <symphony-sfx-progress-bar\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n [progress]=\"taskStatusModel.progress\"\n class=\"progress-bar\">\n </symphony-sfx-progress-bar>\n \n <!-- Error Message -->\n <div *ngIf=\"taskStatusModel.hasError\" class=\"error-content\">\n <symphony-paragraph class=\"error-message\">\n {{ getErrorMessage() }}\n </symphony-paragraph>\n <symphony-icon-wrapper \n *ngIf=\"shouldShowRetry()\"\n class=\"retry-icon\"\n (clicked)=\"onRetryTask()\">\n <symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\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}.task-status .task-card{background:#F1F2F5;border:1px solid #D2D8E5;border-radius:8px;padding:16px;margin:8px 0;transition:all .3s ease;min-height:80px}.task-status .task-card.success-state{border-color:#2cb45f;background:#f8fff9}.task-status .task-card.error-state{border-color:#ac4463;background:#fff8f8}.task-status .task-card.progress-state{border-color:#2b8ff3;background:#f8f9ff}.task-status .task-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.task-status .task-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .task-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .success-icon{color:#2cb45f;background:#d2f4de}.task-status .task-icon-container .error-icon{color:#ac4463;background:#f4e2e7}.task-status .task-icon-container .processing-icon{color:#2b8ff3;background:white}.task-status .task-content{flex:1;min-width:0}.task-status .task-content .task-status-text{margin:0 0 4px;font-weight:600;font-size:.875rem;color:#08203e}.task-status .task-content .task-name{margin:0;font-size:.75rem;color:#5b6d80;line-height:1.4;word-wrap:break-word}.task-status .task-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.task-status .task-actions .progress-text{margin:0;font-weight:600;font-size:.75rem;color:#2b8ff3;min-width:35px;text-align:right}.task-status .task-actions .cancel-btn{cursor:pointer;font-size:16px;color:#5b6d80;transition:color .2s ease;padding:4px}.task-status .task-actions .cancel-btn:hover{color:#ac4463}.task-status .task-body .progress-bar{margin:0}.task-status .task-body .error-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-status .task-body .error-content .error-message{margin:0;font-size:.75rem;color:#ac4463;line-height:1.4;flex:1}.task-status .task-body .error-content .retry-icon{flex-shrink:0;width:32px;height:32px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper{width:32px;height:32px;border:1px solid #AC4463;color:#ac4463;padding:6px;font-size:14px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper:hover{background:#AC4463;color:#fff}.task-status symphony-sfx-progress-bar{transition:all .3s ease;float:none}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.SfxProgressBarComponent, selector: "symphony-sfx-progress-bar", inputs: ["progress"] }, { type: i5.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TaskStatusComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: 'symphony-task-status', template: "<!-- Task Status - Card-based Design -->\n<div class=\"task-status\" *ngIf=\"taskStatusModel\">\n <!-- Task Status Card -->\n <div class=\"task-card\" \n [class.success-state]=\"taskStatusModel.showCompleted\"\n [class.error-state]=\"taskStatusModel.hasError\"\n [class.progress-state]=\"taskStatusModel.showProgressBar\">\n \n <!-- Card Header -->\n <div class=\"task-header\">\n <!-- Status Icon -->\n <div class=\"task-icon-container\">\n <!-- Success Icon (completion state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCompleted\"\n class=\"task-icon success-icon\"\n [icon]=\"'si-confirmation'\"\n ></symphony-icon>\n \n <!-- Error Icon (error state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.hasError\"\n class=\"task-icon error-icon\"\n [icon]=\"'si-pending-incomplete'\"\n ></symphony-icon>\n \n <!-- Processing Icon (progress state) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"task-icon processing-icon\"\n [icon]=\"taskStatusModel.processingIcon || 'si-chatbot'\"\n ></symphony-icon>\n </div>\n \n <!-- Status Text and Task Name -->\n <div class=\"task-content\">\n <symphony-h4 class=\"task-status-text\">\n {{ getTaskStatusText() }}\n </symphony-h4>\n <symphony-paragraph class=\"task-name\">\n {{ getTaskName() }}\n </symphony-paragraph>\n </div>\n \n <!-- Progress Percentage or Actions -->\n <div class=\"task-actions\">\n <!-- Progress Percentage -->\n <symphony-paragraph\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n class=\"progress-text\">\n {{ getProgressText() }}\n </symphony-paragraph>\n \n <!-- Cancel Button (only during progress) -->\n <symphony-icon\n *ngIf=\"taskStatusModel.showCancel && !taskStatusModel.showCompleted && !taskStatusModel.hasError\"\n class=\"cancel-btn\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancelTask()\">\n </symphony-icon>\n </div>\n </div>\n \n <!-- Card Body -->\n <div class=\"task-body\">\n <!-- Progress Bar -->\n <symphony-sfx-progress-bar\n *ngIf=\"taskStatusModel.showProgressBar && !taskStatusModel.hasError\"\n [progress]=\"taskStatusModel.progress\"\n class=\"progress-bar\">\n </symphony-sfx-progress-bar>\n \n <!-- Error Message -->\n <div *ngIf=\"taskStatusModel.hasError\" class=\"error-content\">\n <symphony-paragraph class=\"error-message\">\n {{ getErrorMessage() }}\n </symphony-paragraph>\n <symphony-icon-wrapper \n *ngIf=\"shouldShowRetry()\"\n class=\"retry-icon\"\n (clicked)=\"onRetryTask()\">\n <symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\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}.task-status .task-card{background:#F1F2F5;border:1px solid #D2D8E5;border-radius:8px;padding:16px;margin:8px 0;transition:all .3s ease;min-height:80px}.task-status .task-card.success-state{border-color:#2cb45f;background:#f8fff9}.task-status .task-card.error-state{border-color:#ac4463;background:#fff8f8}.task-status .task-card.progress-state{border-color:#2b8ff3;background:#f8f9ff}.task-status .task-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.task-status .task-icon-container{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .task-icon{font-size:18px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.task-status .task-icon-container .success-icon{color:#2cb45f;background:#d2f4de}.task-status .task-icon-container .error-icon{color:#ac4463;background:#f4e2e7}.task-status .task-icon-container .processing-icon{color:#2b8ff3;background:white}.task-status .task-content{flex:1;min-width:0}.task-status .task-content .task-status-text{margin:0 0 4px;font-weight:600;font-size:.875rem;color:#08203e}.task-status .task-content .task-name{margin:0;font-size:.75rem;color:#5b6d80;line-height:1.4;word-wrap:break-word}.task-status .task-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.task-status .task-actions .progress-text{margin:0;font-weight:600;font-size:.75rem;color:#2b8ff3;min-width:35px;text-align:right}.task-status .task-actions .cancel-btn{cursor:pointer;font-size:16px;color:#5b6d80;transition:color .2s ease;padding:4px}.task-status .task-actions .cancel-btn:hover{color:#ac4463}.task-status .task-body .progress-bar{margin:0}.task-status .task-body .error-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-status .task-body .error-content .error-message{margin:0;font-size:.75rem;color:#ac4463;line-height:1.4;flex:1}.task-status .task-body .error-content .retry-icon{flex-shrink:0;width:32px;height:32px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper{width:32px;height:32px;border:1px solid #AC4463;color:#ac4463;padding:6px;font-size:14px}.task-status .task-body .error-content .retry-icon ::ng-deep .icon-wrapper:hover{background:#AC4463;color:#fff}.task-status symphony-sfx-progress-bar{transition:all .3s ease;float:none}\n"] }]
@@ -15,7 +15,7 @@ export class ActionBarComponent {
15
15
  }
16
16
  }
17
17
  ActionBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- ActionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ActionBarComponent, selector: "symphony-action-bar", inputs: { isToggled: "isToggled", hasActionToggle: "hasActionToggle", hasSelectionCounter: "hasSelectionCounter", hasSeparator: "hasSeparator", model: "model" }, outputs: { toggleClick: "toggleClick" }, ngImport: i0, template: "<div class=\"sfx-title-wrap sfx-pb-30 sfx-action-bar\">\n <div class=\"col-xs-12 col-sm-6 col-md-4 col-lg-3 sfx-p-0 sfx-action-button\">\n <div class=\"max-contentwidth\" (click)=\"toggleClicked()\" *ngIf=\"hasActionToggle\">\n <symphony-icon-wrapper\n [ngClass]=\"{ 'action-arrow-down': isToggled }\"\n class=\"sfx-d-inline-block\"\n ><symphony-icon\n [icon]=\"'si-arrow-bold-next'\"\n [size]=\"'13px'\"\n ></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-paragraph class=\"sfx-d-inline-block sfx-ml-20\"\n >Actions</symphony-paragraph\n >\n </div>\n <symphony-action-bar-selection-counter *ngIf=\"hasSelectionCounter\" [hasSeparator]=\"hasSeparator\" [model]=\"model\"></symphony-action-bar-selection-counter>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-8 col-lg-9 sfx-p-0\">\n <div class=\"pull-right sfx-actions-controls\">\n <ng-content select=\"[grid-controls]\"></ng-content>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"isToggled\"\n class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-border-bottom-gray-1 sfx-p-0\"\n>\n <div class=\"col-xs-11 col-sm-11 col-md-11 col-lg-11 sfx-pl-0 sfx-actions-items\">\n <ng-content select=\"[grid-actions]\"></ng-content>\n </div>\n</div>\n", styles: [".sfx-action-bar{display:inline-block;width:100%;border-bottom:2px solid #000000}.sfx-action-bar .sfx-action-button,.sfx-action-bar .sfx-action-button .max-contentwidth{display:flex;align-items:center}.sfx-action-bar .sfx-action-button .icon-wrapper{padding:10px 0}.sfx-action-bar .sfx-action-button .icon-wrapper i{font-weight:600;margin-left:1px}.sfx-action-bar .sfx-action-button .action-arrow-down{transform:rotate(90deg)}.sfx-action-bar .sfx-action-button .action-arrow-down i{margin-left:0}.sfx-actions-items{margin-top:1.875rem;padding-bottom:1.25rem}\n"], components: [{ type: i1.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ActionBarSelectionCounterComponent, selector: "symphony-action-bar-selection-counter", inputs: ["model", "hasSeparator"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
18
+ ActionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ActionBarComponent, selector: "symphony-action-bar", inputs: { isToggled: "isToggled", hasActionToggle: "hasActionToggle", hasSelectionCounter: "hasSelectionCounter", hasSeparator: "hasSeparator", model: "model" }, outputs: { toggleClick: "toggleClick" }, ngImport: i0, template: "<div class=\"sfx-title-wrap sfx-pb-30 sfx-action-bar\">\n <div class=\"col-xs-12 col-sm-6 col-md-4 col-lg-3 sfx-p-0 sfx-action-button\">\n <div class=\"max-contentwidth\" (click)=\"toggleClicked()\" *ngIf=\"hasActionToggle\">\n <symphony-icon-wrapper\n [ngClass]=\"{ 'action-arrow-down': isToggled }\"\n class=\"sfx-d-inline-block\"\n ><symphony-icon\n [icon]=\"'si-arrow-bold-next'\"\n [size]=\"'13px'\"\n ></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-paragraph class=\"sfx-d-inline-block sfx-ml-20\"\n >Actions</symphony-paragraph\n >\n </div>\n <symphony-action-bar-selection-counter *ngIf=\"hasSelectionCounter\" [hasSeparator]=\"hasSeparator\" [model]=\"model\"></symphony-action-bar-selection-counter>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-8 col-lg-9 sfx-p-0\">\n <div class=\"pull-right sfx-actions-controls\">\n <ng-content select=\"[grid-controls]\"></ng-content>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"isToggled\"\n class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-border-bottom-gray-1 sfx-p-0\"\n>\n <div class=\"col-xs-11 col-sm-11 col-md-11 col-lg-11 sfx-pl-0 sfx-actions-items\">\n <ng-content select=\"[grid-actions]\"></ng-content>\n </div>\n</div>\n", styles: [".sfx-action-bar{display:inline-block;width:100%;border-bottom:2px solid #000000}.sfx-action-bar .sfx-action-button,.sfx-action-bar .sfx-action-button .max-contentwidth{display:flex;align-items:center}.sfx-action-bar .sfx-action-button .icon-wrapper{padding:10px 0}.sfx-action-bar .sfx-action-button .icon-wrapper i{font-weight:600;margin-left:1px}.sfx-action-bar .sfx-action-button .action-arrow-down{transform:rotate(90deg)}.sfx-action-bar .sfx-action-button .action-arrow-down i{margin-left:0}.sfx-actions-items{margin-top:1.875rem;padding-bottom:1.25rem}\n"], components: [{ type: i1.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ActionBarSelectionCounterComponent, selector: "symphony-action-bar-selection-counter", inputs: ["model", "hasSeparator"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ActionBarComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'symphony-action-bar', encapsulation: ViewEncapsulation.None, template: "<div class=\"sfx-title-wrap sfx-pb-30 sfx-action-bar\">\n <div class=\"col-xs-12 col-sm-6 col-md-4 col-lg-3 sfx-p-0 sfx-action-button\">\n <div class=\"max-contentwidth\" (click)=\"toggleClicked()\" *ngIf=\"hasActionToggle\">\n <symphony-icon-wrapper\n [ngClass]=\"{ 'action-arrow-down': isToggled }\"\n class=\"sfx-d-inline-block\"\n ><symphony-icon\n [icon]=\"'si-arrow-bold-next'\"\n [size]=\"'13px'\"\n ></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-paragraph class=\"sfx-d-inline-block sfx-ml-20\"\n >Actions</symphony-paragraph\n >\n </div>\n <symphony-action-bar-selection-counter *ngIf=\"hasSelectionCounter\" [hasSeparator]=\"hasSeparator\" [model]=\"model\"></symphony-action-bar-selection-counter>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-8 col-lg-9 sfx-p-0\">\n <div class=\"pull-right sfx-actions-controls\">\n <ng-content select=\"[grid-controls]\"></ng-content>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"isToggled\"\n class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-border-bottom-gray-1 sfx-p-0\"\n>\n <div class=\"col-xs-11 col-sm-11 col-md-11 col-lg-11 sfx-pl-0 sfx-actions-items\">\n <ng-content select=\"[grid-actions]\"></ng-content>\n </div>\n</div>\n", styles: [".sfx-action-bar{display:inline-block;width:100%;border-bottom:2px solid #000000}.sfx-action-bar .sfx-action-button,.sfx-action-bar .sfx-action-button .max-contentwidth{display:flex;align-items:center}.sfx-action-bar .sfx-action-button .icon-wrapper{padding:10px 0}.sfx-action-bar .sfx-action-button .icon-wrapper i{font-weight:600;margin-left:1px}.sfx-action-bar .sfx-action-button .action-arrow-down{transform:rotate(90deg)}.sfx-action-bar .sfx-action-button .action-arrow-down i{margin-left:0}.sfx-actions-items{margin-top:1.875rem;padding-bottom:1.25rem}\n"] }]
@@ -134,6 +134,14 @@ export class AISearchAssistantDrawerComponent {
134
134
  };
135
135
  return statusMap[status] || '';
136
136
  }
137
+ /**
138
+ * Generates a Pendo ID with optional dynamic context
139
+ * @param baseId - The base identifier for the element
140
+ * @returns Complete Pendo ID string
141
+ */
142
+ getPendoId(baseId) {
143
+ return this.contextId ? `${baseId}-${this.contextId}` : baseId;
144
+ }
137
145
  addWelcomeMessageIfNeeded() {
138
146
  if (!this.hasAddedWelcomeMessage && this.model.messages.length === 0 && this.config.welcomeMessage) {
139
147
  this.model.messages.push({
@@ -148,14 +156,16 @@ export class AISearchAssistantDrawerComponent {
148
156
  }
149
157
  }
150
158
  AISearchAssistantDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
151
- AISearchAssistantDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AISearchAssistantDrawerComponent, selector: "symphony-ai-search-assistant-drawer", inputs: { model: "model", config: "config" }, outputs: { drawerClosed: "drawerClosed", promptSelected: "promptSelected", messageSent: "messageSent", inputChanged: "inputChanged", retryClicked: "retryClicked", taskCancelled: "taskCancelled" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI Assisted Messaging'\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- 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 </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.TaskStatusComponent, selector: "symphony-task-status", inputs: ["taskStatusModel"], outputs: ["cancelTask", "retryTask"] }, { type: i5.InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: ["placeholder", "isDisabled", "maxCharacterLimit", "showCharacterCount", "minRows", "maxRows", "sendButtonIcon", "sendButtonAriaLabel", "autoResize"], outputs: ["sendClicked", "enterPressed", "valueChanged"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "newLineToBr": i8.NewLineToBrPipe } });
159
+ 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: { drawerClosed: "drawerClosed", promptSelected: "promptSelected", messageSent: "messageSent", inputChanged: "inputChanged", retryClicked: "retryClicked", taskCancelled: "taskCancelled" }, 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 AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI 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 <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- 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 -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; 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\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 </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.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}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.TaskStatusComponent, selector: "symphony-task-status", inputs: ["taskStatusModel"], outputs: ["cancelTask", "retryTask"] }, { type: i5.InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: ["placeholder", "isDisabled", "maxCharacterLimit", "showCharacterCount", "minRows", "maxRows", "sendButtonIcon", "sendButtonAriaLabel", "autoResize"], outputs: ["sendClicked", "enterPressed", "valueChanged"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "newLineToBr": i8.NewLineToBrPipe } });
152
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, decorators: [{
153
161
  type: Component,
154
- args: [{ selector: 'symphony-ai-search-assistant-drawer', template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI Assisted Messaging'\">\n <symphony-icon [icon]=\"model.isOpen ? 'si-arrow-next' : 'si-arrow-prev'\"></symphony-icon>\n </button>\n \n <!-- Header -->\n <div class=\"ai-drawer-header\" *ngIf=\"model.isOpen\">\n <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- 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 </symphony-task-status>\n </div>\n </div>\n </div>\n\n <!-- Suggested Prompts -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\">\n </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
162
+ 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 AI Assistant' : 'Open AI Assistant'\"\n [title]=\"model.isOpen ? 'Close AI Assistant' : 'AI 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 <symphony-h3 class=\"ai-drawer-title sfx-m-0\">AI Writing Assistant</symphony-h3>\n </div>\n\n <!-- Chat Container -->\n <div class=\"ai-drawer-body\" *ngIf=\"model.isOpen\">\n \n <!-- Messages Area -->\n <div \n class=\"ai-chat-container\" \n #chatContainer>\n \n <!-- Message List -->\n <div class=\"ai-message-list sfx-mb-20\">\n <div \n *ngFor=\"let message of model.messages; trackBy: trackByMessageId\"\n class=\"ai-message-wrapper\"\n [attr.data-message-type]=\"message.type\">\n \n <!-- Timestamp Above Message -->\n <div \n class=\"ai-message-timestamp-container\"\n *ngIf=\"config.showTimestamps\">\n <span class=\"ai-message-timestamp\">\n {{ getMessageTime(message.timestamp) }}\n </span>\n </div>\n \n <!-- Message Bubble -->\n <div \n class=\"ai-message-bubble\"\n [class.user-message]=\"message.type === 'user'\"\n [class.ai-message]=\"message.type === 'ai'\"\n [class.system-message]=\"message.type === 'system'\">\n \n <!-- AI Message Icon -->\n <div \n class=\"ai-message-icon\" \n *ngIf=\"message.type === 'ai'\">\n <symphony-icon [icon]=\"'si-chatbot'\"></symphony-icon>\n </div>\n \n <div class=\"ai-message-content-wrapper\">\n <symphony-paragraph \n class=\"ai-message-content sfx-m-0\"\n [innerHTML]=\"message.content | newLineToBr\">\n </symphony-paragraph>\n </div>\n </div>\n \n <!-- Message Status (for user messages) -->\n <div \n class=\"ai-message-status\"\n *ngIf=\"message.type === 'user' && message.status\">\n <span \n class=\"ai-status-text\"\n [class.status-delivered]=\"message.status === 'delivered'\"\n [class.status-pending]=\"message.status === 'pending'\"\n [class.status-error]=\"message.status === 'error'\">\n {{ getStatusText(message.status) }}\n </span>\n </div>\n </div>\n\n <!-- 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 -->\n <div \n class=\"ai-suggested-prompts\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n \n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n Need help writing an email? Here are a few suggested prompts to get you started.\n </symphony-paragraph>\n \n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; 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\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 </symphony-input-textarea-with-send>\n </div>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.ai-drawer-container{position:absolute;top:0;right:0;width:100%;max-width:500px;height:100%;background-color:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:9999;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ai-drawer-container.open{transform:translate(0)}@media (max-width: 768px){.ai-drawer-container{width:100%;box-shadow:none}}.ai-drawer-edge-toggle{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:48px;height:48px;border:1px solid #D2D8E5;border-radius:8px 0 0 8px;background-color:#2b8ff3;color:#fff;cursor:pointer;box-shadow:-2px 0 8px rgba(0,0,0,.15);z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.ai-drawer-edge-toggle:hover{background-color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.2);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle:focus{outline:2px solid #2B8FF3;outline-offset:2px}.ai-drawer-edge-toggle symphony-icon{font-size:20px;transition:transform .2s ease;display:block;line-height:1;color:#fff}.ai-drawer-edge-toggle.drawer-open{left:-35px;background-color:#fff;color:#2b8ff3;border-color:#d2d8e5;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(0,0,0,.1)}.ai-drawer-edge-toggle.drawer-open:hover{background-color:#f1f2f5;color:#0d76de;box-shadow:-4px 0 12px rgba(0,0,0,.15);transform:translateY(-50%) scale(1.02)}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:18px;color:#2b8ff3}@media (max-width: 768px){.ai-drawer-edge-toggle{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle symphony-icon{font-size:18px}.ai-drawer-edge-toggle.drawer-open{left:-40px;width:40px;height:40px}.ai-drawer-edge-toggle.drawer-open symphony-icon{font-size:16px}}.ai-drawer-header{display:flex;align-items:center;justify-content:center;padding:1.25rem 1.5625rem;border-bottom:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-drawer-header .ai-drawer-title{font-size:1.125rem;font-weight:600;color:#08203e}.ai-drawer-body{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1}.ai-chat-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:.9375rem 1.5625rem}.ai-chat-container::-webkit-scrollbar{width:6px}.ai-chat-container::-webkit-scrollbar-track{background:#F1F2F5}.ai-chat-container::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:3px}.ai-chat-container::-webkit-scrollbar-thumb:hover{background:#5B6D80}.ai-message-list{display:flex;flex-direction:column;gap:.9375rem}.ai-message-wrapper{display:flex;flex-direction:column}.ai-message-wrapper[data-message-type=user]{align-items:flex-end}.ai-message-wrapper[data-message-type=ai],.ai-message-wrapper[data-message-type=system],.ai-message-wrapper.ai-loading-message{align-items:flex-start}.ai-message-timestamp-container{margin-bottom:.625rem;text-align:center;width:100%;align-self:center}.ai-message-timestamp-container .ai-message-timestamp{font-size:.75rem;color:#82919f;font-weight:500}.ai-message-bubble{max-width:80%;border-radius:12px;word-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-message-bubble.ai-message .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-message-bubble.ai-message .ai-message-content-wrapper{flex:1;display:flex;flex-direction:column}.ai-message-bubble.system-message{background-color:#f1f2f5;border:1px solid #E4E7EF;color:#5b6d80;border-radius:8px;text-align:center;max-width:90%;padding:.625rem .9375rem;justify-content:center}.ai-message-bubble.system-message .ai-message-content{font-size:.875rem}@media (max-width: 768px){.ai-message-bubble{max-width:90%}}.ai-message-status{margin-top:.3rem;text-align:right}.ai-message-status .ai-status-text{display:inline-flex;gap:4px;font-size:.75rem;font-weight:500}.ai-message-status .ai-status-text.status-delivered{color:#5b6d80}.ai-message-status .ai-status-text.status-delivered .ai-status-icon{color:#2cb45f;font-size:12px}.ai-message-status .ai-status-text.status-pending{color:#5b6d80}.ai-message-status .ai-status-text.status-pending .ai-status-loader{width:12px;height:12px}.ai-message-status .ai-status-text.status-error{color:#ac4463}.ai-message-status .ai-status-text.status-error .ai-status-icon{color:#ac4463;font-size:12px}.ai-loading-message .ai-message-bubble .ai-message-icon{flex:0 0 auto;width:24px;height:24px;background-color:#f0f8ff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.ai-loading-message .ai-message-bubble .ai-message-icon symphony-icon{color:#2b8ff3;font-size:.875rem}.ai-loading-message .ai-message-bubble .ai-loading-content{display:flex;align-items:center;gap:.625rem;flex:1}.ai-loading-message .ai-message-bubble .ai-loading-text{font-style:italic;color:#5b6d80;font-size:.875rem}.ai-suggested-prompts{padding:1.25rem 1.5625rem;border-top:1px solid #E4E7EF;background-color:#f1f2f5}.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}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
155
163
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
156
164
  type: Input
157
165
  }], config: [{
158
166
  type: Input
167
+ }], contextId: [{
168
+ type: Input
159
169
  }], drawerClosed: [{
160
170
  type: Output
161
171
  }], promptSelected: [{
@@ -175,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
175
185
  type: ViewChild,
176
186
  args: ['messageInput']
177
187
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVMzSSxNQUFNLE9BQU8sZ0NBQWdDO0lBbUMzQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWxDakMsVUFBSyxHQUEyQjtZQUN2QyxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsRUFBRTtZQUNkLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQztRQUVPLFdBQU0sR0FBNEI7WUFDekMsY0FBYyxFQUFFLGtFQUFrRTtZQUNsRixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQztRQUVGLG1EQUFtRDtRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxF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QyxJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUNsRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDckIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDSCxDQUFDOzs2SEFqS1UsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsNmdCQ1Q3QywwNUpBMElPOzJGRGpJTSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UscUNBQXFDO3dHQUt0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBU0csTUFBTTtzQkFBZCxLQUFLO2dCQVVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFHRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0MsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0NoZWNrZWQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCwgQ2hhdE1lc3NhZ2UsIFN1Z2dlc3RlZFByb21wdCwgQUlTZWFyY2hBc3Npc3RhbnRDb25maWcsIE1lc3NhZ2VFdmVudCB9IGZyb20gJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBtb2RlbDogQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCA9IHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBzdWdnZXN0ZWRQcm9tcHRzOiBbXSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlucHV0VmFsdWU6ICcnLFxuICAgIG1heENoYXJhY3RlckxpbWl0OiAxMDAwXG4gIH07XG5cbiAgQElucHV0KCkgY29uZmlnOiBBSVNlYXJjaEFzc2lzdGFudENvbmZpZyA9IHtcbiAgICB3ZWxjb21lTWVzc2FnZTogJ0hlbGxvISBJXFwnbSB5b3VyIEFJIFdyaXRpbmcgQXNzaXN0YW50LiBIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/JyxcbiAgICBwbGFjZWhvbGRlcjogJ01lc3NhZ2UgQUkgQXNzaXN0YW50JyxcbiAgICBtYXhNZXNzYWdlczogMTAwLFxuICAgIGF1dG9TY3JvbGw6IHRydWUsXG4gICAgc2hvd1RpbWVzdGFtcHM6IHRydWUsXG4gICAgZW5hYmxlU3VnZ2VzdGVkUHJvbXB0czogdHJ1ZVxuICB9O1xuXG4gIC8vIFNpbXBsZSBldmVudCBvdXRwdXRzIGZvbGxvd2luZyBTeW1waG9ueSBwYXR0ZXJuc1xuICBAT3V0cHV0KCkgZHJhd2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHJvbXB0U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3RlZFByb21wdD4oKTtcbiAgQE91dHB1dCgpIG1lc3NhZ2VTZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNZXNzYWdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbnB1dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJldHJ5Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50c1xuICBAT3V0cHV0KCkgdGFza0NhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdjaGF0Q29udGFpbmVyJykgY2hhdENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdtZXNzYWdlSW5wdXQnKSBtZXNzYWdlSW5wdXQhOiBJbnB1dFRleHRhcmVhV2l0aFNlbmRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzaG91bGRTY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICBwcml2YXRlIGhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQWRkIHdlbGNvbWUgbWVzc2FnZSBpZiBjb25maWd1cmVkIGFuZCBubyBtZXNzYWdlcyBleGlzdFxuICAgIHRoaXMuYWRkV2VsY29tZU1lc3NhZ2VJZk5lZWRlZCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3VsZFNjcm9sbFRvQm90dG9tICYmIHRoaXMuY29uZmlnLmF1dG9TY3JvbGwpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgIHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5TWVzc2FnZUlkKGluZGV4OiBudW1iZXIsIG1lc3NhZ2U6IENoYXRNZXNzYWdlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWVzc2FnZS5pZDtcbiAgfVxuXG4gIG9uVG9nZ2xlRHJhd2VyKCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwuaXNPcGVuID0gIXRoaXMubW9kZWwuaXNPcGVuO1xuICAgIGlmICh0aGlzLm1vZGVsLmlzT3Blbikge1xuICAgICAgLy8gQWRkIHdlbGNvbWUgbWVzc2FnZSBhcyBmaXJzdCBtZXNzYWdlIGlmIG5vdCBhbHJlYWR5IGFkZGVkIGFuZCBubyBtZXNzYWdlcyBleGlzdFxuICAgICAgdGhpcy5hZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk7XG4gICAgICBcbiAgICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBmaWVsZCB3aGVuIG9wZW5pbmdcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tZXNzYWdlSW5wdXQpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9LCAzMDApOyAvLyBXYWl0IGZvciBhbmltYXRpb24gdG8gY29tcGxldGVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcmF3ZXJDbG9zZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uUHJvbXB0Q2xpY2socHJvbXB0OiBTdWdnZXN0ZWRQcm9tcHQpOiB2b2lkIHtcbiAgICB0aGlzLnByb21wdFNlbGVjdGVkLmVtaXQocHJvbXB0KTtcbiAgICAvLyBDb3B5IHByb21wdCB0ZXh0IHRvIGlucHV0IGluc3RlYWQgb2YgYXV0by1zZW5kaW5nXG4gICAgdGhpcy5tb2RlbC5pbnB1dFZhbHVlID0gcHJvbXB0LnRleHQ7XG4gICAgdGhpcy5pbnB1dENoYW5nZWQuZW1pdChwcm9tcHQudGV4dCk7XG4gICAgXG4gICAgLy8gRm9jdXMgdGhlIGlucHV0IGZpZWxkIGZvciBiZXR0ZXIgVVhcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnB1dCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuICBvblNlbmRNZXNzYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLm1vZGVsLmlucHV0VmFsdWU/LnRyaW0oKTtcbiAgICBpZiAobWVzc2FnZSAmJiAhdGhpcy5tb2RlbC5pc0xvYWRpbmcgJiYgIXRoaXMubW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXIpIHtcbiAgICAgIC8vIENyZWF0ZSBnZW5lcmljIGV2ZW50IHBheWxvYWRcbiAgICAgIGNvbnN0IG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50ID0ge1xuICAgICAgICBjb250ZW50OiBtZXNzYWdlLFxuICAgICAgICBjb250ZXh0OiB0aGlzLm1vZGVsLmNvbnRleHQgLy8gUGFzcyBhbnkgY29udGV4dCBkYXRhXG4gICAgICB9O1xuXG4gICAgICAvLyBDbGVhciBpbnB1dCBpbW1lZGlhdGVseSBmb3IgYmV0dGVyIFVYXG4gICAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIFxuICAgICAgLy8gRW1pdCBldmVudCBmb3IgcGFyZW50IHRvIGhhbmRsZVxuICAgICAgdGhpcy5tZXNzYWdlU2VudC5lbWl0KG1lc3NhZ2VFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAvLyBBSSBUYXNrIFN0YXR1cyBldmVudCBoYW5kbGVyc1xuICBvbkNhbmNlbFRhc2soKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ2FuY2VsbGVkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUmV0cnlUYXNrKCk6IHZvaWQge1xuICAgIHRoaXMucmV0cnlDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hhdENvbnRhaW5lcikge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY2hhdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSBlbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBmb3JtYXR0ZWQgdGltZSBzdHJpbmcgZm9yIG1lc3NhZ2UgdGltZXN0YW1wXG4gICAqL1xuICBnZXRNZXNzYWdlVGltZSh0aW1lc3RhbXA6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSB0eXBlb2YgdGltZXN0YW1wID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKHRpbWVzdGFtcCkgOiB0aW1lc3RhbXA7XG4gICAgXG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xuICAgICAgbW9udGg6ICdzaG9ydCcsIFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXIxMjogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgdGV4dCBmb3IgbWVzc2FnZSBzdGF0dXNcbiAgICovXG4gIGdldFN0YXR1c1RleHQoc3RhdHVzOiAncGVuZGluZycgfCAnZGVsaXZlcmVkJyB8ICdlcnJvcicpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXR1c01hcCA9IHtcbiAgICAgICdwZW5kaW5nJzogJ1NlbmRpbmcuLi4nLFxuICAgICAgJ2RlbGl2ZXJlZCc6ICdEZWxpdmVyZWQnLFxuICAgICAgJ2Vycm9yJzogJ0ZhaWxlZCB0byBzZW5kJ1xuICAgIH07XG4gICAgXG4gICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNBZGRlZFdlbGNvbWVNZXNzYWdlICYmIHRoaXMubW9kZWwubWVzc2FnZXMubGVuZ3RoID09PSAwICYmIHRoaXMuY29uZmlnLndlbGNvbWVNZXNzYWdlKSB7XG4gICAgICB0aGlzLm1vZGVsLm1lc3NhZ2VzLnB1c2goe1xuICAgICAgICBpZDogJ3dlbGNvbWUtbWVzc2FnZScsXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuY29uZmlnLndlbGNvbWVNZXNzYWdlLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgIHR5cGU6ICdhaSdcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYXNBZGRlZFdlbGNvbWVNZXNzYWdlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gPSB0cnVlO1xuICAgIH1cbiAgfVxufSAiLCI8IS0tIERyYXdlciBDb250YWluZXIgLS0+XG48ZGl2IFxuICBjbGFzcz1cImFpLWRyYXdlci1jb250YWluZXJcIiBcbiAgW2NsYXNzLm9wZW5dPVwibW9kZWwuaXNPcGVuXCI+XG4gIFxuICA8IS0tIEVkZ2UgVG9nZ2xlIEJ1dHRvbiAoaW5zaWRlIGRyYXdlciBjb250YWluZXIpIC0tPlxuICA8YnV0dG9uIFxuICAgIGNsYXNzPVwiYWktZHJhd2VyLWVkZ2UtdG9nZ2xlXCJcbiAgICBbY2xhc3MuZHJhd2VyLW9wZW5dPVwibW9kZWwuaXNPcGVuXCJcbiAgICAoY2xpY2spPVwib25Ub2dnbGVEcmF3ZXIoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtb2RlbC5pc09wZW4gPyAnQ2xvc2UgQUkgQXNzaXN0YW50JyA6ICdPcGVuIEFJIEFzc2lzdGFudCdcIlxuICAgIFt0aXRsZV09XCJtb2RlbC5pc09wZW4gPyAnQ2xvc2UgQUkgQXNzaXN0YW50JyA6ICdBSSBBc3Npc3RlZCBNZXNzYWdpbmcnXCI+XG4gICAgPHN5bXBob255LWljb24gW2ljb25dPVwibW9kZWwuaXNPcGVuID8gJ3NpLWFycm93LW5leHQnIDogJ3NpLWFycm93LXByZXYnXCI+PC9zeW1waG9ueS1pY29uPlxuICA8L2J1dHRvbj5cbiAgXG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWhlYWRlclwiICpuZ0lmPVwibW9kZWwuaXNPcGVuXCI+XG4gICAgPHN5bXBob255LWgzIGNsYXNzPVwiYWktZHJhd2VyLXRpdGxlIHNmeC1tLTBcIj5BSSBXcml0aW5nIEFzc2lzdGFudDwvc3ltcGhvbnktaDM+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2hhdCBDb250YWluZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItYm9keVwiICpuZ0lmPVwibW9kZWwuaXNPcGVuXCI+XG4gICAgXG4gICAgPCEtLSBNZXNzYWdlcyBBcmVhIC0tPlxuICAgIDxkaXYgXG4gICAgICBjbGFzcz1cImFpLWNoYXQtY29udGFpbmVyXCIgXG4gICAgICAjY2hhdENvbnRhaW5lcj5cbiAgICAgIFxuICAgICAgPCEtLSBNZXNzYWdlIExpc3QgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWktbWVzc2FnZS1saXN0IHNmeC1tYi0yMFwiPlxuICAgICAgICA8ZGl2IFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1vZGVsLm1lc3NhZ2VzOyB0cmFja0J5OiB0cmFja0J5TWVzc2FnZUlkXCJcbiAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utd3JhcHBlclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1tZXNzYWdlLXR5cGVdPVwibWVzc2FnZS50eXBlXCI+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBUaW1lc3RhbXAgQWJvdmUgTWVzc2FnZSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXRpbWVzdGFtcC1jb250YWluZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuc2hvd1RpbWVzdGFtcHNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWktbWVzc2FnZS10aW1lc3RhbXBcIj5cbiAgICAgICAgICAgICAge3sgZ2V0TWVzc2FnZVRpbWUobWVzc2FnZS50aW1lc3RhbXApIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBNZXNzYWdlIEJ1YmJsZSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWJ1YmJsZVwiXG4gICAgICAgICAgICBbY2xhc3MudXNlci1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ3VzZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5haS1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ2FpJ1wiXG4gICAgICAgICAgICBbY2xhc3Muc3lzdGVtLW1lc3NhZ2VdPVwibWVzc2FnZS50eXBlID09PSAnc3lzdGVtJ1wiPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8IS0tIEFJIE1lc3NhZ2UgSWNvbiAtLT5cbiAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1pY29uXCIgXG4gICAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZS50eXBlID09PSAnYWknXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIidzaS1jaGF0Ym90J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWktbWVzc2FnZS1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaCBcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtY29udGVudCBzZngtbS0wXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2UuY29udGVudCB8IG5ld0xpbmVUb0JyXCI+XG4gICAgICAgICAgICAgIDwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBNZXNzYWdlIFN0YXR1cyAoZm9yIHVzZXIgbWVzc2FnZXMpIC0tPlxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utc3RhdHVzXCJcbiAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZS50eXBlID09PSAndXNlcicgJiYgbWVzc2FnZS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxzcGFuIFxuICAgICAgICAgICAgICBjbGFzcz1cImFpLXN0YXR1cy10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1kZWxpdmVyZWRdPVwibWVzc2FnZS5zdGF0dXMgPT09ICdkZWxpdmVyZWQnXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1wZW5kaW5nXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAncGVuZGluZydcIlxuICAgICAgICAgICAgICBbY2xhc3Muc3RhdHVzLWVycm9yXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAnZXJyb3InXCI+XG4gICAgICAgICAgICAgIHt7IGdldFN0YXR1c1RleHQobWVzc2FnZS5zdGF0dXMpIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQUkgVGFzayBTdGF0dXMgKFByb2dyZXNzIEJhciBhbmQgRXJyb3IgSGFuZGxpbmcpIC0tPlxuXG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgICpuZ0lmPVwibW9kZWwuYWlUYXNrU3RhdHVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS13cmFwcGVyIHRhc2stc3RhdHVzLXdyYXBwZXJcIlxuICAgICAgICAgICAgaWQ9XCJ0YXNrU3RhdHVzTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHN5bXBob255LXRhc2stc3RhdHVzXG4gICAgICAgICAgICAgIFt0YXNrU3RhdHVzTW9kZWxdPVwibW9kZWwuYWlUYXNrU3RhdHVzXCJcbiAgICAgICAgICAgICAgKGNhbmNlbFRhc2spPVwib25DYW5jZWxUYXNrKClcIlxuICAgICAgICAgICAgICAocmV0cnlUYXNrKT1cIm9uUmV0cnlUYXNrKClcIj5cbiAgICAgICAgICAgIDwvc3ltcGhvbnktdGFzay1zdGF0dXM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU3VnZ2VzdGVkIFByb21wdHMgLS0+XG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGVkLXByb21wdHNcIlxuICAgICAgKm5nSWY9XCJjb25maWcuZW5hYmxlU3VnZ2VzdGVkUHJvbXB0cyAmJiBtb2RlbC5zdWdnZXN0ZWRQcm9tcHRzLmxlbmd0aCA+IDBcIj5cbiAgICAgIFxuICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cImFpLXByb21wdHMtaW50cm8gc2Z4LW1iLTE1XCI+XG4gICAgICAgIE5lZWQgaGVscCB3cml0aW5nIGFuIGVtYWlsPyBIZXJlIGFyZSBhIGZldyBzdWdnZXN0ZWQgcHJvbXB0cyB0byBnZXQgeW91IHN0YXJ0ZWQuXG4gICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImFpLXByb21wdHMtbGlzdFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb21wdCBvZiBtb2RlbC5zdWdnZXN0ZWRQcm9tcHRzXCJcbiAgICAgICAgICBjbGFzcz1cImFpLXByb21wdC1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvblByb21wdENsaWNrKHByb21wdClcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaWNvbiBcbiAgICAgICAgICAgICpuZ0lmPVwicHJvbXB0Lmljb25cIiBcbiAgICAgICAgICAgIFtpY29uXT1cIidzaS0nICsgcHJvbXB0Lmljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtaWNvblwiPlxuICAgICAgICAgIDwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLXByb21wdC10ZXh0XCI+e3sgcHJvbXB0LnRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyIC8gSW5wdXQgQXJlYSAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1mb290ZXJcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gSW5wdXQgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJhaS1pbnB1dC1yb3dcIj5cbiAgICAgIDxzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmRcbiAgICAgICAgI21lc3NhZ2VJbnB1dFxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmlucHV0VmFsdWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nIHx8IG1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyXCJcbiAgICAgICAgW21heENoYXJhY3RlckxpbWl0XT1cIm1vZGVsLm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgICAgW3Nob3dDaGFyYWN0ZXJDb3VudF09XCIhIW1vZGVsLm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgICAgKHNlbmRDbGlja2VkKT1cIm9uU2VuZE1lc3NhZ2UoKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGVudGVyUHJlc3NlZCk9XCJvblNlbmRNZXNzYWdlKClcIj5cbiAgICAgIDwvc3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiAiXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVMzSSxNQUFNLE9BQU8sZ0NBQWdDO0lBeUMzQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXhDakMsVUFBSyxHQUEyQjtZQUN2QyxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsRUFBRTtZQUNkLGlCQUFpQixFQUFFLElBQUk7U0FDeEIsQ0FBQztRQUVPLFdBQU0sR0FBNEI7WUFDekMsY0FBYyxFQUFFLGtFQUFrRTtZQUNsRixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQztRQVFGLG1EQUFtRDtRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxF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aW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0NoZWNrZWQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCwgQ2hhdE1lc3NhZ2UsIFN1Z2dlc3RlZFByb21wdCwgQUlTZWFyY2hBc3Npc3RhbnRDb25maWcsIE1lc3NhZ2VFdmVudCB9IGZyb20gJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBtb2RlbDogQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCA9IHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBzdWdnZXN0ZWRQcm9tcHRzOiBbXSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlucHV0VmFsdWU6ICcnLFxuICAgIG1heENoYXJhY3RlckxpbWl0OiAxMDAwXG4gIH07XG5cbiAgQElucHV0KCkgY29uZmlnOiBBSVNlYXJjaEFzc2lzdGFudENvbmZpZyA9IHtcbiAgICB3ZWxjb21lTWVzc2FnZTogJ0hlbGxvISBJXFwnbSB5b3VyIEFJIFdyaXRpbmcgQXNzaXN0YW50LiBIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/JyxcbiAgICBwbGFjZWhvbGRlcjogJ01lc3NhZ2UgQUkgQXNzaXN0YW50JyxcbiAgICBtYXhNZXNzYWdlczogMTAwLFxuICAgIGF1dG9TY3JvbGw6IHRydWUsXG4gICAgc2hvd1RpbWVzdGFtcHM6IHRydWUsXG4gICAgZW5hYmxlU3VnZ2VzdGVkUHJvbXB0czogdHJ1ZVxuICB9O1xuXG4gIC8qKlxuICAgKiBDb250ZXh0IGlkZW50aWZpZXIgZm9yIGR5bmFtaWMgUGVuZG8gSURzIChlLmcuLCAnR2VuQUlCdWlsZGVyJywgJ0VtYWlsQ29tcG9zZXInKVxuICAgKiBUaGlzIGFsbG93cyB0aGUgc2FtZSBjb21wb25lbnQgdG8gaGF2ZSBkaWZmZXJlbnQgUGVuZG8gdHJhY2tpbmcgYmFzZWQgb24gd2hlcmUgaXQncyB1c2VkXG4gICAqL1xuICBASW5wdXQoKSBjb250ZXh0SWQ/OiBzdHJpbmc7XG5cbiAgLy8gU2ltcGxlIGV2ZW50IG91dHB1dHMgZm9sbG93aW5nIFN5bXBob255IHBhdHRlcm5zXG4gIEBPdXRwdXQoKSBkcmF3ZXJDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwcm9tcHRTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VnZ2VzdGVkUHJvbXB0PigpO1xuICBAT3V0cHV0KCkgbWVzc2FnZVNlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE1lc3NhZ2VFdmVudD4oKTtcbiAgQE91dHB1dCgpIGlucHV0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcmV0cnlDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBcbiAgLy8gQUkgVGFzayBTdGF0dXMgZXZlbnRzXG4gIEBPdXRwdXQoKSB0YXNrQ2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXRDb250YWluZXInKSBjaGF0Q29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ21lc3NhZ2VJbnB1dCcpIG1lc3NhZ2VJbnB1dCE6IElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudDtcblxuICBwcml2YXRlIHNob3VsZFNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzQWRkZWRXZWxjb21lTWVzc2FnZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGlmIGNvbmZpZ3VyZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgdGhpcy5hZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gJiYgdGhpcy5jb25maWcuYXV0b1Njcm9sbCkge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlNZXNzYWdlSWQoaW5kZXg6IG51bWJlciwgbWVzc2FnZTogQ2hhdE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBtZXNzYWdlLmlkO1xuICB9XG5cbiAgb25Ub2dnbGVEcmF3ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pc09wZW4gPSAhdGhpcy5tb2RlbC5pc09wZW47XG4gICAgaWYgKHRoaXMubW9kZWwuaXNPcGVuKSB7XG4gICAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGFzIGZpcnN0IG1lc3NhZ2UgaWYgbm90IGFscmVhZHkgYWRkZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgICB0aGlzLmFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTtcbiAgICAgIFxuICAgICAgLy8gRm9jdXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gb3BlbmluZ1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnB1dCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZUlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMCk7IC8vIFdhaXQgZm9yIGFuaW1hdGlvbiB0byBjb21wbGV0ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYXdlckNsb3NlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25Qcm9tcHRDbGljayhwcm9tcHQ6IFN1Z2dlc3RlZFByb21wdCk6IHZvaWQge1xuICAgIHRoaXMucHJvbXB0U2VsZWN0ZWQuZW1pdChwcm9tcHQpO1xuICAgIC8vIENvcHkgcHJvbXB0IHRleHQgdG8gaW5wdXQgaW5zdGVhZCBvZiBhdXRvLXNlbmRpbmdcbiAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSBwcm9tcHQudGV4dDtcbiAgICB0aGlzLmlucHV0Q2hhbmdlZC5lbWl0KHByb21wdC50ZXh0KTtcbiAgICBcbiAgICAvLyBGb2N1cyB0aGUgaW5wdXQgZmllbGQgZm9yIGJldHRlciBVWFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZUlucHV0KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZUlucHV0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIG9uU2VuZE1lc3NhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubW9kZWwuaW5wdXRWYWx1ZT8udHJpbSgpO1xuICAgIGlmIChtZXNzYWdlICYmICF0aGlzLm1vZGVsLmlzTG9hZGluZyAmJiAhdGhpcy5tb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0Jhcikge1xuICAgICAgLy8gQ3JlYXRlIGdlbmVyaWMgZXZlbnQgcGF5bG9hZFxuICAgICAgY29uc3QgbWVzc2FnZUV2ZW50OiBNZXNzYWdlRXZlbnQgPSB7XG4gICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UsXG4gICAgICAgIGNvbnRleHQ6IHRoaXMubW9kZWwuY29udGV4dCAvLyBQYXNzIGFueSBjb250ZXh0IGRhdGFcbiAgICAgIH07XG5cbiAgICAgIC8vIENsZWFyIGlucHV0IGltbWVkaWF0ZWx5IGZvciBiZXR0ZXIgVVhcbiAgICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgXG4gICAgICAvLyBFbWl0IGV2ZW50IGZvciBwYXJlbnQgdG8gaGFuZGxlXG4gICAgICB0aGlzLm1lc3NhZ2VTZW50LmVtaXQobWVzc2FnZUV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0Q2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50IGhhbmRsZXJzXG4gIG9uQ2FuY2VsVGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgb25SZXRyeVRhc2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXRyeUNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaGF0Q29udGFpbmVyKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jaGF0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGZvcm1hdHRlZCB0aW1lIHN0cmluZyBmb3IgbWVzc2FnZSB0aW1lc3RhbXBcbiAgICovXG4gIGdldE1lc3NhZ2VUaW1lKHRpbWVzdGFtcDogRGF0ZSB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZSA9IHR5cGVvZiB0aW1lc3RhbXAgPT09ICdzdHJpbmcnID8gbmV3IERhdGUodGltZXN0YW1wKSA6IHRpbWVzdGFtcDtcbiAgICBcbiAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICBtb250aDogJ3Nob3J0JywgXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIGhvdXI6ICdudW1lcmljJyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgaG91cjEyOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGlzcGxheSB0ZXh0IGZvciBtZXNzYWdlIHN0YXR1c1xuICAgKi9cbiAgZ2V0U3RhdHVzVGV4dChzdGF0dXM6ICdwZW5kaW5nJyB8ICdkZWxpdmVyZWQnIHwgJ2Vycm9yJyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzTWFwID0ge1xuICAgICAgJ3BlbmRpbmcnOiAnU2VuZGluZy4uLicsXG4gICAgICAnZGVsaXZlcmVkJzogJ0RlbGl2ZXJlZCcsXG4gICAgICAnZXJyb3InOiAnRmFpbGVkIHRvIHNlbmQnXG4gICAgfTtcbiAgICBcbiAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c10gfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgUGVuZG8gSUQgd2l0aCBvcHRpb25hbCBkeW5hbWljIGNvbnRleHRcbiAgICogQHBhcmFtIGJhc2VJZCAtIFRoZSBiYXNlIGlkZW50aWZpZXIgZm9yIHRoZSBlbGVtZW50XG4gICAqIEByZXR1cm5zIENvbXBsZXRlIFBlbmRvIElEIHN0cmluZ1xuICAgKi9cbiAgZ2V0UGVuZG9JZChiYXNlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dElkID8gYCR7YmFzZUlkfS0ke3RoaXMuY29udGV4dElkfWAgOiBiYXNlSWQ7XG4gIH1cblxuICBwcml2YXRlIGFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgJiYgdGhpcy5tb2RlbC5tZXNzYWdlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5jb25maWcud2VsY29tZU1lc3NhZ2UpIHtcbiAgICAgIHRoaXMubW9kZWwubWVzc2FnZXMucHVzaCh7XG4gICAgICAgIGlkOiAnd2VsY29tZS1tZXNzYWdlJyxcbiAgICAgICAgY29udGVudDogdGhpcy5jb25maWcud2VsY29tZU1lc3NhZ2UsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgdHlwZTogJ2FpJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IHRydWU7XG4gICAgfVxuICB9XG59ICIsIjwhLS0gRHJhd2VyIENvbnRhaW5lciAtLT5cbjxkaXYgXG4gIGNsYXNzPVwiYWktZHJhd2VyLWNvbnRhaW5lclwiIFxuICBbY2xhc3Mub3Blbl09XCJtb2RlbC5pc09wZW5cIlxuICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlBc3Npc3RhbnREcmF3ZXInKVwiPlxuICBcbiAgPCEtLSBFZGdlIFRvZ2dsZSBCdXR0b24gKGluc2lkZSBkcmF3ZXIgY29udGFpbmVyKSAtLT5cbiAgPGJ1dHRvbiBcbiAgICBjbGFzcz1cImFpLWRyYXdlci1lZGdlLXRvZ2dsZVwiXG4gICAgW2NsYXNzLmRyYXdlci1vcGVuXT1cIm1vZGVsLmlzT3BlblwiXG4gICAgKGNsaWNrKT1cIm9uVG9nZ2xlRHJhd2VyKClcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIEFJIEFzc2lzdGFudCcgOiAnT3BlbiBBSSBBc3Npc3RhbnQnXCJcbiAgICBbdGl0bGVdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIEFJIEFzc2lzdGFudCcgOiAnQUkgQXNzaXN0ZWQgTWVzc2FnaW5nJ1wiXG4gICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpQXNzaXN0YW50VG9nZ2xlJylcIj5cbiAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCJtb2RlbC5pc09wZW4gPyAnc2ktYXJyb3ctbmV4dCcgOiAnc2ktYXJyb3ctcHJldidcIj48L3N5bXBob255LWljb24+XG4gIDwvYnV0dG9uPlxuICBcbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItaGVhZGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICA8c3ltcGhvbnktaDMgY2xhc3M9XCJhaS1kcmF3ZXItdGl0bGUgc2Z4LW0tMFwiPkFJIFdyaXRpbmcgQXNzaXN0YW50PC9zeW1waG9ueS1oMz5cbiAgPC9kaXY+XG5cbiAgPCEtLSBDaGF0IENvbnRhaW5lciAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1ib2R5XCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICBcbiAgICA8IS0tIE1lc3NhZ2VzIEFyZWEgLS0+XG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwiYWktY2hhdC1jb250YWluZXJcIiBcbiAgICAgICNjaGF0Q29udGFpbmVyPlxuICAgICAgXG4gICAgICA8IS0tIE1lc3NhZ2UgTGlzdCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhaS1tZXNzYWdlLWxpc3Qgc2Z4LW1iLTIwXCI+XG4gICAgICAgIDxkaXYgXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbW9kZWwubWVzc2FnZXM7IHRyYWNrQnk6IHRyYWNrQnlNZXNzYWdlSWRcIlxuICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS13cmFwcGVyXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLW1lc3NhZ2UtdHlwZV09XCJtZXNzYWdlLnR5cGVcIj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIFRpbWVzdGFtcCBBYm92ZSBNZXNzYWdlIC0tPlxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtdGltZXN0YW1wLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5zaG93VGltZXN0YW1wc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhaS1tZXNzYWdlLXRpbWVzdGFtcFwiPlxuICAgICAgICAgICAgICB7eyBnZXRNZXNzYWdlVGltZShtZXNzYWdlLnRpbWVzdGFtcCkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIE1lc3NhZ2UgQnViYmxlIC0tPlxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtYnViYmxlXCJcbiAgICAgICAgICAgIFtjbGFzcy51c2VyLW1lc3NhZ2VdPVwibWVzc2FnZS50eXBlID09PSAndXNlcidcIlxuICAgICAgICAgICAgW2NsYXNzLmFpLW1lc3NhZ2VdPVwibWVzc2FnZS50eXBlID09PSAnYWknXCJcbiAgICAgICAgICAgIFtjbGFzcy5zeXN0ZW0tbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICdzeXN0ZW0nXCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gQUkgTWVzc2FnZSBJY29uIC0tPlxuICAgICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWljb25cIiBcbiAgICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlLnR5cGUgPT09ICdhaSdcIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWNoYXRib3QnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhaS1tZXNzYWdlLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1jb250ZW50IHNmeC1tLTBcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZS5jb250ZW50IHwgbmV3TGluZVRvQnJcIj5cbiAgICAgICAgICAgICAgPC9zeW1waG9ueS1wYXJhZ3JhcGg+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIE1lc3NhZ2UgU3RhdHVzIChmb3IgdXNlciBtZXNzYWdlcykgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1zdGF0dXNcIlxuICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlLnR5cGUgPT09ICd1c2VyJyAmJiBtZXNzYWdlLnN0YXR1c1wiPlxuICAgICAgICAgICAgPHNwYW4gXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWktc3RhdHVzLXRleHRcIlxuICAgICAgICAgICAgICBbY2xhc3Muc3RhdHVzLWRlbGl2ZXJlZF09XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ2RlbGl2ZXJlZCdcIlxuICAgICAgICAgICAgICBbY2xhc3Muc3RhdHVzLXBlbmRpbmddPVwibWVzc2FnZS5zdGF0dXMgPT09ICdwZW5kaW5nJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtZXJyb3JdPVwibWVzc2FnZS5zdGF0dXMgPT09ICdlcnJvcidcIj5cbiAgICAgICAgICAgICAge3sgZ2V0U3RhdHVzVGV4dChtZXNzYWdlLnN0YXR1cykgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBBSSBUYXNrIFN0YXR1cyAoUHJvZ3Jlc3MgQmFyIGFuZCBFcnJvciBIYW5kbGluZykgLS0+XG5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgKm5nSWY9XCJtb2RlbC5haVRhc2tTdGF0dXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXdyYXBwZXIgdGFzay1zdGF0dXMtd3JhcHBlclwiXG4gICAgICAgICAgICBpZD1cInRhc2tTdGF0dXNNZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3ltcGhvbnktdGFzay1zdGF0dXNcbiAgICAgICAgICAgICAgW3Rhc2tTdGF0dXNNb2RlbF09XCJtb2RlbC5haVRhc2tTdGF0dXNcIlxuICAgICAgICAgICAgICAoY2FuY2VsVGFzayk9XCJvbkNhbmNlbFRhc2soKVwiXG4gICAgICAgICAgICAgIChyZXRyeVRhc2spPVwib25SZXRyeVRhc2soKVwiXG4gICAgICAgICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaVRhc2tTdGF0dXMnKVwiPlxuICAgICAgICAgICAgPC9zeW1waG9ueS10YXNrLXN0YXR1cz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBTdWdnZXN0ZWQgUHJvbXB0cyAtLT5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJhaS1zdWdnZXN0ZWQtcHJvbXB0c1wiXG4gICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVTdWdnZXN0ZWRQcm9tcHRzICYmIG1vZGVsLnN1Z2dlc3RlZFByb21wdHMubGVuZ3RoID4gMFwiXG4gICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlTdWdnZXN0ZWRQcm9tcHRzJylcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiPlxuICAgICAgXG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIGNsYXNzPVwiYWktcHJvbXB0cy1pbnRybyBzZngtbWItMTVcIj5cbiAgICAgICAgTmVlZCBoZWxwIHdyaXRpbmcgYW4gZW1haWw/IEhlcmUgYXJlIGEgZmV3IHN1Z2dlc3RlZCBwcm9tcHRzIHRvIGdldCB5b3Ugc3RhcnRlZC5cbiAgICAgIDwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiYWktcHJvbXB0cy1saXN0XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvbXB0IG9mIG1vZGVsLnN1Z2dlc3RlZFByb21wdHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiYWktcHJvbXB0LWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUHJvbXB0Q2xpY2socHJvbXB0KVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpUHJvbXB0QnV0dG9uLScgKyBpKVwiPlxuICAgICAgICAgIDxzeW1waG9ueS1pY29uIFxuICAgICAgICAgICAgKm5nSWY9XCJwcm9tcHQuaWNvblwiIFxuICAgICAgICAgICAgW2ljb25dPVwiJ3NpLScgKyBwcm9tcHQuaWNvblwiXG4gICAgICAgICAgICBjbGFzcz1cImFpLXByb21wdC1pY29uXCI+XG4gICAgICAgICAgPC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWktcHJvbXB0LXRleHRcIj57eyBwcm9tcHQudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBGb290ZXIgLyBJbnB1dCBBcmVhIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWZvb3RlclwiICpuZ0lmPVwibW9kZWwuaXNPcGVuXCI+XG4gICAgXG4gICAgPCEtLSBJbnB1dCBSb3cgLS0+XG4gICAgPGRpdiBjbGFzcz1cImFpLWlucHV0LXJvd1wiPlxuICAgICAgPHN5bXBob255LWlucHV0LXRleHRhcmVhLXdpdGgtc2VuZFxuICAgICAgICAjbWVzc2FnZUlucHV0XG4gICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuaW5wdXRWYWx1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgICBbaXNEaXNhYmxlZF09XCJtb2RlbC5pc0xvYWRpbmcgfHwgbW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXJcIlxuICAgICAgICBbbWF4Q2hhcmFjdGVyTGltaXRdPVwibW9kZWwubWF4Q2hhcmFjdGVyTGltaXRcIlxuICAgICAgICBbc2hvd0NoYXJhY3RlckNvdW50XT1cIiEhbW9kZWwubWF4Q2hhcmFjdGVyTGltaXRcIlxuICAgICAgICAoc2VuZENsaWNrZWQpPVwib25TZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZW50ZXJQcmVzc2VkKT1cIm9uU2VuZE1lc3NhZ2UoKVwiXG4gICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaU1lc3NhZ2VJbnB1dCcpXCI+XG4gICAgICA8L3N5bXBob255LWlucHV0LXRleHRhcmVhLXdpdGgtc2VuZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4gIl19
@@ -17,7 +17,7 @@ export class AssignedToWidgetComponent {
17
17
  }
18
18
  }
19
19
  AssignedToWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AssignedToWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- AssignedToWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AssignedToWidgetComponent, selector: "symphony-assigned-to-widget", inputs: { assignWidgetModel: "assignWidgetModel" }, outputs: { addClick: "addClick" }, ngImport: i0, template: "<symphony-widget-list-container-template *ngIf=\"assignWidgetModel\">\n <symphony-h4 widget-title>{{\n assignWidgetModel.title\n }}</symphony-h4>\n <symphony-icon-wrapper id=\"assignedTo-widget-add\" *ngIf=\"!assignWidgetModel.isLoading\" widget-icon (click)=\"onAddClick()\">\n <symphony-icon [icon]=\"'si-edit'\"></symphony-icon>\n </symphony-icon-wrapper>\n <div widget-content *ngIf=\"!assignWidgetModel.isLoading\">\n <symphony-widget-list-template\n class=\"widget-list-container-wrap\"\n *ngFor=\"let assignedItem of assignWidgetModel.assignWidgetList\"\n >\n <symphony-icon\n [ngClass]=\"{ 'icon-yellow': assignedItem.isAssigned, 'icon-grey': !assignedItem.isAssigned }\"\n widget-list-icon\n [icon]=\"'si-assign-to-actions'\"\n ></symphony-icon>\n <symphony-paragraph\n *ngIf=\"assignedItem.isAssigned\"\n widget-list-content-title\n class=\"sfx-font-bold\"\n >{{ assignedItem.title }}</symphony-paragraph\n >\n <symphony-paragraph\n widget-list-content-detail\n >{{ assignedItem.textContent\n }}<span class=\"sfx-font-bold\"\n >&nbsp;{{ assignedItem.date }}</span\n ></symphony-paragraph\n >\n </symphony-widget-list-template>\n </div>\n <div widget-content *ngIf=\"assignWidgetModel.isLoading\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n</symphony-widget-list-container-template>\n", styles: [".widget-list-container-wrap .icon-yellow{background:#EAE851;width:40px;display:block;height:40px;border-radius:50%;color:#334860}.widget-list-container-wrap .icon-grey{background:#F1F2F5;color:#c3cbdc;width:40px;display:block;height:40px;border-radius:50%}\n"], components: [{ type: i1.WidgetListContainerTemplateComponent, selector: "symphony-widget-list-container-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i4.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i5.WidgetListTemplateComponent, selector: "symphony-widget-list-template" }, { type: i6.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i7.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
20
+ AssignedToWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: AssignedToWidgetComponent, selector: "symphony-assigned-to-widget", inputs: { assignWidgetModel: "assignWidgetModel" }, outputs: { addClick: "addClick" }, ngImport: i0, template: "<symphony-widget-list-container-template *ngIf=\"assignWidgetModel\">\n <symphony-h4 widget-title>{{\n assignWidgetModel.title\n }}</symphony-h4>\n <symphony-icon-wrapper id=\"assignedTo-widget-add\" *ngIf=\"!assignWidgetModel.isLoading\" widget-icon (click)=\"onAddClick()\">\n <symphony-icon [icon]=\"'si-edit'\"></symphony-icon>\n </symphony-icon-wrapper>\n <div widget-content *ngIf=\"!assignWidgetModel.isLoading\">\n <symphony-widget-list-template\n class=\"widget-list-container-wrap\"\n *ngFor=\"let assignedItem of assignWidgetModel.assignWidgetList\"\n >\n <symphony-icon\n [ngClass]=\"{ 'icon-yellow': assignedItem.isAssigned, 'icon-grey': !assignedItem.isAssigned }\"\n widget-list-icon\n [icon]=\"'si-assign-to-actions'\"\n ></symphony-icon>\n <symphony-paragraph\n *ngIf=\"assignedItem.isAssigned\"\n widget-list-content-title\n class=\"sfx-font-bold\"\n >{{ assignedItem.title }}</symphony-paragraph\n >\n <symphony-paragraph\n widget-list-content-detail\n >{{ assignedItem.textContent\n }}<span class=\"sfx-font-bold\"\n >&nbsp;{{ assignedItem.date }}</span\n ></symphony-paragraph\n >\n </symphony-widget-list-template>\n </div>\n <div widget-content *ngIf=\"assignWidgetModel.isLoading\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n</symphony-widget-list-container-template>\n", styles: [".widget-list-container-wrap .icon-yellow{background:#EAE851;width:40px;display:block;height:40px;border-radius:50%;color:#334860}.widget-list-container-wrap .icon-grey{background:#F1F2F5;color:#c3cbdc;width:40px;display:block;height:40px;border-radius:50%}\n"], components: [{ type: i1.WidgetListContainerTemplateComponent, selector: "symphony-widget-list-container-template" }, { type: i2.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i3.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i4.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i5.WidgetListTemplateComponent, selector: "symphony-widget-list-template" }, { type: i6.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i7.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AssignedToWidgetComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'symphony-assigned-to-widget', template: "<symphony-widget-list-container-template *ngIf=\"assignWidgetModel\">\n <symphony-h4 widget-title>{{\n assignWidgetModel.title\n }}</symphony-h4>\n <symphony-icon-wrapper id=\"assignedTo-widget-add\" *ngIf=\"!assignWidgetModel.isLoading\" widget-icon (click)=\"onAddClick()\">\n <symphony-icon [icon]=\"'si-edit'\"></symphony-icon>\n </symphony-icon-wrapper>\n <div widget-content *ngIf=\"!assignWidgetModel.isLoading\">\n <symphony-widget-list-template\n class=\"widget-list-container-wrap\"\n *ngFor=\"let assignedItem of assignWidgetModel.assignWidgetList\"\n >\n <symphony-icon\n [ngClass]=\"{ 'icon-yellow': assignedItem.isAssigned, 'icon-grey': !assignedItem.isAssigned }\"\n widget-list-icon\n [icon]=\"'si-assign-to-actions'\"\n ></symphony-icon>\n <symphony-paragraph\n *ngIf=\"assignedItem.isAssigned\"\n widget-list-content-title\n class=\"sfx-font-bold\"\n >{{ assignedItem.title }}</symphony-paragraph\n >\n <symphony-paragraph\n widget-list-content-detail\n >{{ assignedItem.textContent\n }}<span class=\"sfx-font-bold\"\n >&nbsp;{{ assignedItem.date }}</span\n ></symphony-paragraph\n >\n </symphony-widget-list-template>\n </div>\n <div widget-content *ngIf=\"assignWidgetModel.isLoading\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n</symphony-widget-list-container-template>\n", styles: [".widget-list-container-wrap .icon-yellow{background:#EAE851;width:40px;display:block;height:40px;border-radius:50%;color:#334860}.widget-list-container-wrap .icon-grey{background:#F1F2F5;color:#c3cbdc;width:40px;display:block;height:40px;border-radius:50%}\n"] }]
@@ -23,7 +23,7 @@ export class DocumentManagementListComponent {
23
23
  }
24
24
  }
25
25
  DocumentManagementListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DocumentManagementListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- DocumentManagementListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: DocumentManagementListComponent, selector: "symphony-document-management-list", inputs: { isLoading: "isLoading", documentManagementList: "documentManagementList" }, outputs: { moreOptionClick: "moreOptionClick", previewClick: "previewClick", uploadClick: "uploadClick" }, ngImport: i0, template: "<section class=\"sf-d-block sfx-pb-20 sfx-border-bottom-black-5\">\n <div class=\"dml-title-wrap\">\n <symphony-h3 class=\"sfx-d-block sfx-pt-5\">Documents</symphony-h3>\n <symphony-icon-wrapper (click)=\"onUploadClick()\"\n class=\"dml-title-icon-right\"\n >\n <symphony-icon [icon]=\"'si-add'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n <ul *ngIf=\"!isLoading\" class=\"list-unstyled dml-wrap\">\n <li *ngFor=\"let dmItem of documentManagementList\">\n <symphony-document-management-item\n [documentManagementItemModel]=\"dmItem\"\n (moreOptionClicked)=\"onMoreClick($event, dmItem)\"\n (previewClicked)=\"onPreviewClick($event, dmItem)\"\n ></symphony-document-management-item>\n </li>\n </ul>\n <div *ngIf=\"isLoading\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n</section>\n", styles: [".dml-wrap::-webkit-scrollbar{width:12px}.dml-wrap::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.dml-wrap::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.dml-wrap::-webkit-scrollbar-thumb:hover{cursor:pointer}.dml-wrap li{border-bottom:1px solid #bababa}.dml-wrap li:last-child{border-color:transparent}.dml-title-wrap{position:relative;margin-bottom:20px}.dml-title-wrap .dml-title-icon-right{position:absolute;top:0;right:0}\n"], components: [{ type: i1.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i2.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.DocumentManagementItemComponent, selector: "symphony-document-management-item", inputs: ["documentManagementItemModel"], outputs: ["previewClicked", "moreOptionClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
26
+ DocumentManagementListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: DocumentManagementListComponent, selector: "symphony-document-management-list", inputs: { isLoading: "isLoading", documentManagementList: "documentManagementList" }, outputs: { moreOptionClick: "moreOptionClick", previewClick: "previewClick", uploadClick: "uploadClick" }, ngImport: i0, template: "<section class=\"sf-d-block sfx-pb-20 sfx-border-bottom-black-5\">\n <div class=\"dml-title-wrap\">\n <symphony-h3 class=\"sfx-d-block sfx-pt-5\">Documents</symphony-h3>\n <symphony-icon-wrapper (click)=\"onUploadClick()\"\n class=\"dml-title-icon-right\"\n >\n <symphony-icon [icon]=\"'si-add'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n <ul *ngIf=\"!isLoading\" class=\"list-unstyled dml-wrap\">\n <li *ngFor=\"let dmItem of documentManagementList\">\n <symphony-document-management-item\n [documentManagementItemModel]=\"dmItem\"\n (moreOptionClicked)=\"onMoreClick($event, dmItem)\"\n (previewClicked)=\"onPreviewClick($event, dmItem)\"\n ></symphony-document-management-item>\n </li>\n </ul>\n <div *ngIf=\"isLoading\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n</section>\n", styles: [".dml-wrap::-webkit-scrollbar{width:12px}.dml-wrap::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.dml-wrap::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.dml-wrap::-webkit-scrollbar-thumb:hover{cursor:pointer}.dml-wrap li{border-bottom:1px solid #bababa}.dml-wrap li:last-child{border-color:transparent}.dml-title-wrap{position:relative;margin-bottom:20px}.dml-title-wrap .dml-title-icon-right{position:absolute;top:0;right:0}\n"], components: [{ type: i1.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i2.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.DocumentManagementItemComponent, selector: "symphony-document-management-item", inputs: ["documentManagementItemModel"], outputs: ["previewClicked", "moreOptionClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DocumentManagementListComponent, decorators: [{
28
28
  type: Component,
29
29
  args: [{ selector: 'symphony-document-management-list', template: "<section class=\"sf-d-block sfx-pb-20 sfx-border-bottom-black-5\">\n <div class=\"dml-title-wrap\">\n <symphony-h3 class=\"sfx-d-block sfx-pt-5\">Documents</symphony-h3>\n <symphony-icon-wrapper (click)=\"onUploadClick()\"\n class=\"dml-title-icon-right\"\n >\n <symphony-icon [icon]=\"'si-add'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n <ul *ngIf=\"!isLoading\" class=\"list-unstyled dml-wrap\">\n <li *ngFor=\"let dmItem of documentManagementList\">\n <symphony-document-management-item\n [documentManagementItemModel]=\"dmItem\"\n (moreOptionClicked)=\"onMoreClick($event, dmItem)\"\n (previewClicked)=\"onPreviewClick($event, dmItem)\"\n ></symphony-document-management-item>\n </li>\n </ul>\n <div *ngIf=\"isLoading\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n</section>\n", styles: [".dml-wrap::-webkit-scrollbar{width:12px}.dml-wrap::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.dml-wrap::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.dml-wrap::-webkit-scrollbar-thumb:hover{cursor:pointer}.dml-wrap li{border-bottom:1px solid #bababa}.dml-wrap li:last-child{border-color:transparent}.dml-title-wrap{position:relative;margin-bottom:20px}.dml-title-wrap .dml-title-icon-right{position:absolute;top:0;right:0}\n"] }]
@@ -29,7 +29,7 @@ export class GridControlsComponent {
29
29
  }
30
30
  }
31
31
  GridControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- GridControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GridControlsComponent, selector: "symphony-grid-controls", inputs: { model: "model" }, outputs: { Clicked: "Clicked", gridRefreshClicked: "gridRefreshClicked", menuClicked: "menuClicked" }, ngImport: i0, template: "<div class=\"sfx-action\">\n <div\n class=\"sfx-d-inline-block pull-left sfx-mt-10\"\n *ngIf=\"model.gridRowCount\"\n >\n <strong class=\"text-label\">{{ model.gridRowCount }}</strong>\n </div>\n <div\n class=\"sfx-d-inline-block pull-left sfx-pl-20\"\n *ngIf=\"model.showCustomiseColumns\"\n >\n <symphony-tooltip-wrapper\n [tooltipHtml]=\"'Customise Columns'\"\n [placement]=\"'top'\"\n class=\"actionIcon-tooltip\"\n >\n <symphony-icon-wrapper (click)=\"onClick()\" id=\"btn-customise-columns\"\n ><symphony-icon [icon]=\"'si-organize-columns'\"></symphony-icon>\n </symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n </div>\n <div class=\"sfx-d-inline-block pull-left sfx-pl-20\" *ngIf=\"model.showControlMoreOption\">\n <symphony-contextual-menu\n class=\"task-more-option\"\n *ngIf=\"gridMoreActions && gridMoreActions.items.length > 0\"\n [model]=\"gridMoreActions\"\n (itemClick)=\"onItemClick($event)\"\n >\n </symphony-contextual-menu>\n </div>\n <div\n class=\"sfx-d-inline-block pull-left sfx-pl-20\"\n *ngIf=\"model.showRefreshAction\"\n>\n <symphony-tooltip-wrapper\n [tooltipHtml]=\"'Refresh'\"\n [placement]=\"'top'\"\n class=\"toolTipV2\"\n >\n <symphony-icon-wrapper (click)=\"onGridRefreshClick()\" id=\"btn-refresh\"\n ><symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n</div>\n</div>\n", styles: [".task-more-option .btn-group .dropdown-menu{min-width:200px!important}.actionIcon-tooltip .tooltip{min-width:160px}.actionIcon-tooltip .tooltip .tooltip-inner{background-color:#565656;padding:8px 15px;border-radius:.625rem;max-width:250px;font-size:12px;color:#fff}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.top .tooltip-arrow.arrow{border-top-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.right{left:5px!important}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.right .tooltip-arrow.arrow{border-right-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.bottom .tooltip-arrow.arrow{border-bottom-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.left{left:-5px!important}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.left .tooltip-arrow.arrow{border-left-color:#565656}\n"], components: [{ type: i1.TooltipWrapperComponent, selector: "symphony-tooltip-wrapper", inputs: ["placement", "tooltipHtml", "toolTipClass"] }, { type: i2.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.ContextualMenuComponent, selector: "symphony-contextual-menu", inputs: ["model"], outputs: ["itemClick"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
32
+ GridControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GridControlsComponent, selector: "symphony-grid-controls", inputs: { model: "model" }, outputs: { Clicked: "Clicked", gridRefreshClicked: "gridRefreshClicked", menuClicked: "menuClicked" }, ngImport: i0, template: "<div class=\"sfx-action\">\n <div\n class=\"sfx-d-inline-block pull-left sfx-mt-10\"\n *ngIf=\"model.gridRowCount\"\n >\n <strong class=\"text-label\">{{ model.gridRowCount }}</strong>\n </div>\n <div\n class=\"sfx-d-inline-block pull-left sfx-pl-20\"\n *ngIf=\"model.showCustomiseColumns\"\n >\n <symphony-tooltip-wrapper\n [tooltipHtml]=\"'Customise Columns'\"\n [placement]=\"'top'\"\n class=\"actionIcon-tooltip\"\n >\n <symphony-icon-wrapper (click)=\"onClick()\" id=\"btn-customise-columns\"\n ><symphony-icon [icon]=\"'si-organize-columns'\"></symphony-icon>\n </symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n </div>\n <div class=\"sfx-d-inline-block pull-left sfx-pl-20\" *ngIf=\"model.showControlMoreOption\">\n <symphony-contextual-menu\n class=\"task-more-option\"\n *ngIf=\"gridMoreActions && gridMoreActions.items.length > 0\"\n [model]=\"gridMoreActions\"\n (itemClick)=\"onItemClick($event)\"\n >\n </symphony-contextual-menu>\n </div>\n <div\n class=\"sfx-d-inline-block pull-left sfx-pl-20\"\n *ngIf=\"model.showRefreshAction\"\n>\n <symphony-tooltip-wrapper\n [tooltipHtml]=\"'Refresh'\"\n [placement]=\"'top'\"\n class=\"toolTipV2\"\n >\n <symphony-icon-wrapper (click)=\"onGridRefreshClick()\" id=\"btn-refresh\"\n ><symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n</div>\n</div>\n", styles: [".task-more-option .btn-group .dropdown-menu{min-width:200px!important}.actionIcon-tooltip .tooltip{min-width:160px}.actionIcon-tooltip .tooltip .tooltip-inner{background-color:#565656;padding:8px 15px;border-radius:.625rem;max-width:250px;font-size:12px;color:#fff}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.top .tooltip-arrow.arrow{border-top-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.right{left:5px!important}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.right .tooltip-arrow.arrow{border-right-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.bottom .tooltip-arrow.arrow{border-bottom-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.left{left:-5px!important}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.left .tooltip-arrow.arrow{border-left-color:#565656}\n"], components: [{ type: i1.TooltipWrapperComponent, selector: "symphony-tooltip-wrapper", inputs: ["placement", "tooltipHtml", "toolTipClass"] }, { type: i2.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i4.ContextualMenuComponent, selector: "symphony-contextual-menu", inputs: ["model"], outputs: ["itemClick"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridControlsComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 'symphony-grid-controls', encapsulation: ViewEncapsulation.None, template: "<div class=\"sfx-action\">\n <div\n class=\"sfx-d-inline-block pull-left sfx-mt-10\"\n *ngIf=\"model.gridRowCount\"\n >\n <strong class=\"text-label\">{{ model.gridRowCount }}</strong>\n </div>\n <div\n class=\"sfx-d-inline-block pull-left sfx-pl-20\"\n *ngIf=\"model.showCustomiseColumns\"\n >\n <symphony-tooltip-wrapper\n [tooltipHtml]=\"'Customise Columns'\"\n [placement]=\"'top'\"\n class=\"actionIcon-tooltip\"\n >\n <symphony-icon-wrapper (click)=\"onClick()\" id=\"btn-customise-columns\"\n ><symphony-icon [icon]=\"'si-organize-columns'\"></symphony-icon>\n </symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n </div>\n <div class=\"sfx-d-inline-block pull-left sfx-pl-20\" *ngIf=\"model.showControlMoreOption\">\n <symphony-contextual-menu\n class=\"task-more-option\"\n *ngIf=\"gridMoreActions && gridMoreActions.items.length > 0\"\n [model]=\"gridMoreActions\"\n (itemClick)=\"onItemClick($event)\"\n >\n </symphony-contextual-menu>\n </div>\n <div\n class=\"sfx-d-inline-block pull-left sfx-pl-20\"\n *ngIf=\"model.showRefreshAction\"\n>\n <symphony-tooltip-wrapper\n [tooltipHtml]=\"'Refresh'\"\n [placement]=\"'top'\"\n class=\"toolTipV2\"\n >\n <symphony-icon-wrapper (click)=\"onGridRefreshClick()\" id=\"btn-refresh\"\n ><symphony-icon [icon]=\"'si-refresh'\"></symphony-icon>\n </symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n</div>\n</div>\n", styles: [".task-more-option .btn-group .dropdown-menu{min-width:200px!important}.actionIcon-tooltip .tooltip{min-width:160px}.actionIcon-tooltip .tooltip .tooltip-inner{background-color:#565656;padding:8px 15px;border-radius:.625rem;max-width:250px;font-size:12px;color:#fff}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.top .tooltip-arrow.arrow{border-top-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.right{left:5px!important}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.right .tooltip-arrow.arrow{border-right-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.bottom .tooltip-arrow.arrow{border-bottom-color:#565656}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.left{left:-5px!important}.actionIcon-tooltip .sfx-info-tooltip.item-tooltip.left .tooltip-arrow.arrow{border-left-color:#565656}\n"] }]
@@ -13,7 +13,7 @@ export class GridDownloadComponent {
13
13
  }
14
14
  }
15
15
  GridDownloadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridDownloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- GridDownloadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GridDownloadComponent, selector: "symphony-grid-download", inputs: { model: "model" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-pb-30\">\n <div class=\"pull-right\">\n <div\n class=\"sfx-d-inline-block pull-left sfx-mt-10 sfx-pr-30\"\n *ngIf=\"model.gridRowCount\"\n >\n <strong class=\"text-label\">{{ model.gridRowCount }}</strong>\n </div>\n\n <div class=\"sfx-d-inline-block pull-left\">\n <symphony-tooltip-wrapper\n *ngIf=\"model.showGridDownloadButton\"\n [placement]=\"'bottom'\"\n [tooltipHtml]=\"'Download Advertise Jobs'\"\n >\n <symphony-icon-wrapper (clicked)=\"onDownloadClick()\">\n <symphony-icon [icon]=\"'si-download'\"></symphony-icon\n ></symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n </div>\n </div>\n</div>\n", styles: [""], components: [{ type: i1.TooltipWrapperComponent, selector: "symphony-tooltip-wrapper", inputs: ["placement", "tooltipHtml", "toolTipClass"] }, { type: i2.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
16
+ GridDownloadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GridDownloadComponent, selector: "symphony-grid-download", inputs: { model: "model" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-pb-30\">\n <div class=\"pull-right\">\n <div\n class=\"sfx-d-inline-block pull-left sfx-mt-10 sfx-pr-30\"\n *ngIf=\"model.gridRowCount\"\n >\n <strong class=\"text-label\">{{ model.gridRowCount }}</strong>\n </div>\n\n <div class=\"sfx-d-inline-block pull-left\">\n <symphony-tooltip-wrapper\n *ngIf=\"model.showGridDownloadButton\"\n [placement]=\"'bottom'\"\n [tooltipHtml]=\"'Download Advertise Jobs'\"\n >\n <symphony-icon-wrapper (clicked)=\"onDownloadClick()\">\n <symphony-icon [icon]=\"'si-download'\"></symphony-icon\n ></symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n </div>\n </div>\n</div>\n", styles: [""], components: [{ type: i1.TooltipWrapperComponent, selector: "symphony-tooltip-wrapper", inputs: ["placement", "tooltipHtml", "toolTipClass"] }, { type: i2.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i3.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridDownloadComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'symphony-grid-download', encapsulation: ViewEncapsulation.None, template: "<div class=\"sfx-pb-30\">\n <div class=\"pull-right\">\n <div\n class=\"sfx-d-inline-block pull-left sfx-mt-10 sfx-pr-30\"\n *ngIf=\"model.gridRowCount\"\n >\n <strong class=\"text-label\">{{ model.gridRowCount }}</strong>\n </div>\n\n <div class=\"sfx-d-inline-block pull-left\">\n <symphony-tooltip-wrapper\n *ngIf=\"model.showGridDownloadButton\"\n [placement]=\"'bottom'\"\n [tooltipHtml]=\"'Download Advertise Jobs'\"\n >\n <symphony-icon-wrapper (clicked)=\"onDownloadClick()\">\n <symphony-icon [icon]=\"'si-download'\"></symphony-icon\n ></symphony-icon-wrapper>\n </symphony-tooltip-wrapper>\n </div>\n </div>\n</div>\n", styles: [""] }]
@@ -44,7 +44,7 @@ export class EventsSettingsPageComponent {
44
44
  }
45
45
  }
46
46
  EventsSettingsPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: EventsSettingsPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
- EventsSettingsPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: EventsSettingsPageComponent, selector: "symphony-events-settings-page", inputs: { model: "model" }, outputs: { keywordSearchChange: "keywordSearchChange", filterChange: "filterChange", gridActionsSelectedOption: "gridActionsSelectedOption", addButtonClicked: "addButtonClicked" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["sfxgrid"], descendants: true }], ngImport: i0, template: "<symphony-admin-list-template *ngIf=\"model\">\n <symphony-breadcrumb breadcrumb [breadcrumbs]=\"model.breadcrumbs\">\n </symphony-breadcrumb>\n <symphony-h3 sfx-header>Event Settings</symphony-h3>\n <symphony-icon-wrapper\n sfx-page-action\n *ngIf=\"model.showAddButton\"\n (clicked)=\"onAddButtonClick()\"\n >\n <symphony-icon [icon]=\"'si-add'\"></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-two-column-filter-area sfx-filter-area>\n <symphony-input-dropdown\n filter-one\n [isInverse]=\"true\"\n [inputDropdownListModel]=\"model.settingTypeDropdown\"\n (selectItem)=\"onFilterChange($event)\"\n *ngIf=\"!model.overrideSettingTypeFilterPlaceholder\"\n >\n </symphony-input-dropdown>\n <ng-content\n *ngIf=\"model.overrideSettingTypeFilterPlaceholder\"\n select=\"[filter-one]\"\n ></ng-content>\n <symphony-input-text\n filter-two\n [label]=\"'Search by Keyword'\"\n [placeholder]=\"'Enter Search Value'\"\n [icon]=\"'si-search-new'\"\n [isInverse]=\"true\"\n (textChange)=\"keywordSearch($event)\"\n >\n </symphony-input-text>\n </symphony-two-column-filter-area>\n <symphony-h4 sfx-title>{{ model.gridTitle }}</symphony-h4>\n <symphony-grid\n #sfxgrid\n sfx-grid\n [columnDefs]=\"model.grid.columnDefs\"\n [defaultColDef]=\"model.grid.defaultColumnDef\"\n [rowData]=\"model.grid.rowData\"\n [pageSize]=\"model.grid.pageSize\"\n [onGridReadyFunction]=\"model.grid.onGridReadyFunction\"\n [rowModelType]=\"model.grid.rowModelType\"\n [hasNoPaddingleft]=\"true\"\n [gridContextMenu]=\"true\"\n ></symphony-grid>\n</symphony-admin-list-template>\n", styles: [".icon-wrapper i{color:#334860}.icon-wrapper:hover i{color:#fff}\n"], components: [{ type: i1.AdminListTemplateComponent, selector: "symphony-admin-list-template" }, { type: i2.BreadcrumbComponent, selector: "symphony-breadcrumb", inputs: ["breadcrumbs"], outputs: ["breadcrumbClicked"] }, { type: i3.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i4.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder"], outputs: ["clicked"] }, { type: i5.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i6.TwoColumnFilterAreaComponent, selector: "symphony-two-column-filter-area", inputs: ["height"] }, { type: i7.InputDropdownComponent, selector: "symphony-input-dropdown", inputs: ["inputDropdownListModel", "disableBtn", "isInverse", "isRequired"], outputs: ["selectItem", "clearSelection"] }, { type: i8.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "size", "value", "maxlength", "isDisabled", "textInfo", "textLink", "textClick", "isLabelView"], outputs: ["textChange"] }, { type: i9.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i10.GridComponent, selector: "symphony-grid", inputs: ["columnDefs", "defaultColDef", "rowData", "onGridReadyFunction", "pageSize", "rowModelType", "suppressRowClickSelection", "rowSelectionMode", "hasNoPaddingleft", "isGridColPinnedLeft", "isServerSideGroup", "getServerSideGroupKey", "autoGroupColumnDef", "treeData", "getDataPath", "rowClassRules", "gridContextMenu", "hasSorting"], outputs: ["sortChanged", "cellClick"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
47
+ EventsSettingsPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: EventsSettingsPageComponent, selector: "symphony-events-settings-page", inputs: { model: "model" }, outputs: { keywordSearchChange: "keywordSearchChange", filterChange: "filterChange", gridActionsSelectedOption: "gridActionsSelectedOption", addButtonClicked: "addButtonClicked" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["sfxgrid"], descendants: true }], ngImport: i0, template: "<symphony-admin-list-template *ngIf=\"model\">\n <symphony-breadcrumb breadcrumb [breadcrumbs]=\"model.breadcrumbs\">\n </symphony-breadcrumb>\n <symphony-h3 sfx-header>Event Settings</symphony-h3>\n <symphony-icon-wrapper\n sfx-page-action\n *ngIf=\"model.showAddButton\"\n (clicked)=\"onAddButtonClick()\"\n >\n <symphony-icon [icon]=\"'si-add'\"></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-two-column-filter-area sfx-filter-area>\n <symphony-input-dropdown\n filter-one\n [isInverse]=\"true\"\n [inputDropdownListModel]=\"model.settingTypeDropdown\"\n (selectItem)=\"onFilterChange($event)\"\n *ngIf=\"!model.overrideSettingTypeFilterPlaceholder\"\n >\n </symphony-input-dropdown>\n <ng-content\n *ngIf=\"model.overrideSettingTypeFilterPlaceholder\"\n select=\"[filter-one]\"\n ></ng-content>\n <symphony-input-text\n filter-two\n [label]=\"'Search by Keyword'\"\n [placeholder]=\"'Enter Search Value'\"\n [icon]=\"'si-search-new'\"\n [isInverse]=\"true\"\n (textChange)=\"keywordSearch($event)\"\n >\n </symphony-input-text>\n </symphony-two-column-filter-area>\n <symphony-h4 sfx-title>{{ model.gridTitle }}</symphony-h4>\n <symphony-grid\n #sfxgrid\n sfx-grid\n [columnDefs]=\"model.grid.columnDefs\"\n [defaultColDef]=\"model.grid.defaultColumnDef\"\n [rowData]=\"model.grid.rowData\"\n [pageSize]=\"model.grid.pageSize\"\n [onGridReadyFunction]=\"model.grid.onGridReadyFunction\"\n [rowModelType]=\"model.grid.rowModelType\"\n [hasNoPaddingleft]=\"true\"\n [gridContextMenu]=\"true\"\n ></symphony-grid>\n</symphony-admin-list-template>\n", styles: [".icon-wrapper i{color:#334860}.icon-wrapper:hover i{color:#fff}\n"], components: [{ type: i1.AdminListTemplateComponent, selector: "symphony-admin-list-template" }, { type: i2.BreadcrumbComponent, selector: "symphony-breadcrumb", inputs: ["breadcrumbs"], outputs: ["breadcrumbClicked"] }, { type: i3.H3Component, selector: "symphony-h3", inputs: ["text", "isSecondary"] }, { type: i4.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i5.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i6.TwoColumnFilterAreaComponent, selector: "symphony-two-column-filter-area", inputs: ["height"] }, { type: i7.InputDropdownComponent, selector: "symphony-input-dropdown", inputs: ["inputDropdownListModel", "disableBtn", "isInverse", "isRequired"], outputs: ["selectItem", "clearSelection"] }, { type: i8.InputTextComponent, selector: "symphony-input-text", inputs: ["placeholder", "icon", "label", "isInverse", "size", "value", "maxlength", "isDisabled", "textInfo", "textLink", "textClick", "isLabelView"], outputs: ["textChange"] }, { type: i9.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i10.GridComponent, selector: "symphony-grid", inputs: ["columnDefs", "defaultColDef", "rowData", "onGridReadyFunction", "pageSize", "rowModelType", "suppressRowClickSelection", "rowSelectionMode", "hasNoPaddingleft", "isGridColPinnedLeft", "isServerSideGroup", "getServerSideGroupKey", "autoGroupColumnDef", "treeData", "getDataPath", "rowClassRules", "gridContextMenu", "hasSorting"], outputs: ["sortChanged", "cellClick"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: EventsSettingsPageComponent, decorators: [{
49
49
  type: Component,
50
50
  args: [{ selector: 'symphony-events-settings-page', encapsulation: ViewEncapsulation.None, template: "<symphony-admin-list-template *ngIf=\"model\">\n <symphony-breadcrumb breadcrumb [breadcrumbs]=\"model.breadcrumbs\">\n </symphony-breadcrumb>\n <symphony-h3 sfx-header>Event Settings</symphony-h3>\n <symphony-icon-wrapper\n sfx-page-action\n *ngIf=\"model.showAddButton\"\n (clicked)=\"onAddButtonClick()\"\n >\n <symphony-icon [icon]=\"'si-add'\"></symphony-icon>\n </symphony-icon-wrapper>\n <symphony-two-column-filter-area sfx-filter-area>\n <symphony-input-dropdown\n filter-one\n [isInverse]=\"true\"\n [inputDropdownListModel]=\"model.settingTypeDropdown\"\n (selectItem)=\"onFilterChange($event)\"\n *ngIf=\"!model.overrideSettingTypeFilterPlaceholder\"\n >\n </symphony-input-dropdown>\n <ng-content\n *ngIf=\"model.overrideSettingTypeFilterPlaceholder\"\n select=\"[filter-one]\"\n ></ng-content>\n <symphony-input-text\n filter-two\n [label]=\"'Search by Keyword'\"\n [placeholder]=\"'Enter Search Value'\"\n [icon]=\"'si-search-new'\"\n [isInverse]=\"true\"\n (textChange)=\"keywordSearch($event)\"\n >\n </symphony-input-text>\n </symphony-two-column-filter-area>\n <symphony-h4 sfx-title>{{ model.gridTitle }}</symphony-h4>\n <symphony-grid\n #sfxgrid\n sfx-grid\n [columnDefs]=\"model.grid.columnDefs\"\n [defaultColDef]=\"model.grid.defaultColumnDef\"\n [rowData]=\"model.grid.rowData\"\n [pageSize]=\"model.grid.pageSize\"\n [onGridReadyFunction]=\"model.grid.onGridReadyFunction\"\n [rowModelType]=\"model.grid.rowModelType\"\n [hasNoPaddingleft]=\"true\"\n [gridContextMenu]=\"true\"\n ></symphony-grid>\n</symphony-admin-list-template>\n", styles: [".icon-wrapper i{color:#334860}.icon-wrapper:hover i{color:#fff}\n"] }]