@symphony-talent/component-library 4.189.0 → 4.191.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.component.mjs +6 -4
- package/esm2020/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.module.mjs +4 -3
- package/esm2020/lib/atoms/grid/framework/merge-contact-clicked-open-modal/merge-contact-clicked-open-modal.component.mjs +2 -2
- package/esm2020/lib/atoms/input-radio/input-radio.component.mjs +6 -5
- package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +5 -2
- package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +7 -4
- package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.mjs +128 -0
- package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.mjs +2 -0
- package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.module.mjs +66 -0
- package/esm2020/lib/organisms/organisms.module.mjs +5 -5
- package/esm2020/projects/component-library/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.component.mjs +6 -4
- package/esm2020/projects/component-library/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.module.mjs +4 -3
- package/esm2020/projects/component-library/lib/atoms/grid/framework/merge-contact-clicked-open-modal/merge-contact-clicked-open-modal.component.mjs +2 -2
- package/esm2020/projects/component-library/lib/atoms/input-radio/input-radio.component.mjs +6 -5
- package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +5 -2
- package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +7 -4
- package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.mjs +128 -0
- package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.mjs +2 -0
- package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.module.mjs +66 -0
- package/esm2020/projects/component-library/lib/organisms/organisms.module.mjs +5 -5
- package/esm2020/projects/component-library/public-api.mjs +4 -1
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +192 -18
- package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2015/symphony-talent-component-library.mjs +192 -18
- package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +192 -18
- package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
- package/fesm2020/symphony-talent-component-library.mjs +192 -18
- package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
- package/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.component.d.ts +1 -1
- package/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.module.d.ts +1 -1
- package/lib/atoms/input-radio/input-radio.component.d.ts +3 -2
- package/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.d.ts +40 -0
- package/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.d.ts +13 -0
- package/lib/organisms/merge-contacts-modal/merge-contacts-modal.module.d.ts +19 -0
- package/lib/organisms/organisms.module.d.ts +4 -3
- package/package.json +1 -1
- package/projects/component-library/global.scss +27 -0
- package/projects/component-library/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.component.d.ts +1 -1
- package/projects/component-library/lib/atoms/grid/framework/grid-cell-clicked-open-new-tab/grid-cell-clicked-open-new-tab.module.d.ts +1 -1
- package/projects/component-library/lib/atoms/input-radio/input-radio.component.d.ts +3 -2
- package/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.d.ts +40 -0
- package/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.d.ts +13 -0
- package/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.module.d.ts +19 -0
- package/projects/component-library/lib/organisms/organisms.module.d.ts +4 -3
- package/projects/component-library/public-api.d.ts +3 -0
- package/public-api.d.ts +3 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class GridCellClickedOpenNewTabComponent {
|
|
4
4
|
constructor() {
|
|
@@ -12,9 +12,11 @@ export class GridCellClickedOpenNewTabComponent {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
GridCellClickedOpenNewTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridCellClickedOpenNewTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
-
GridCellClickedOpenNewTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", ngImport: i0, template: "<a\n id=\"grid-cell-link-open-new-tab\"\n class=\"sfx-font-bold sfx-cursor-pointer\"\n [href]=\"newTabUrl\"\n target=\"_blank\"\n>\n <i class=\"si-menu-return icon-open-new-tab\"></i>\n</a>", styles: [".icon-open-new-tab:after{content:\"\";display:inline-block;width:16px;height:16px;background:transparent;position:relative;top:3px;left:-10px;border-radius:3px 0 3px 3px/3px 0px 3px 3px;border:2px solid #334860}.icon-open-new-tab:before{transform:rotate(145deg);display:inline-block;font-size:14px;top:-5px;position:relative;right:-11px;color:#334860}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
15
|
+
GridCellClickedOpenNewTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: { newTabUrl: "newTabUrl" }, ngImport: i0, template: "<a\n id=\"grid-cell-link-open-new-tab\"\n class=\"sfx-font-bold sfx-cursor-pointer\"\n [href]=\"newTabUrl\"\n target=\"_blank\"\n>\n <i class=\"si-menu-return icon-open-new-tab\"></i>\n</a>", styles: [".icon-open-new-tab:after{content:\"\";display:inline-block;width:16px;height:16px;background:transparent;position:relative;top:3px;left:-10px;border-radius:3px 0 3px 3px/3px 0px 3px 3px;border:2px solid #334860}.icon-open-new-tab:before{transform:rotate(145deg);display:inline-block;font-size:14px;top:-5px;position:relative;right:-11px;color:#334860}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridCellClickedOpenNewTabComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ selector: 'symphony-grid-cell-clicked-open-new-tab', encapsulation: ViewEncapsulation.None, template: "<a\n id=\"grid-cell-link-open-new-tab\"\n class=\"sfx-font-bold sfx-cursor-pointer\"\n [href]=\"newTabUrl\"\n target=\"_blank\"\n>\n <i class=\"si-menu-return icon-open-new-tab\"></i>\n</a>", styles: [".icon-open-new-tab:after{content:\"\";display:inline-block;width:16px;height:16px;background:transparent;position:relative;top:3px;left:-10px;border-radius:3px 0 3px 3px/3px 0px 3px 3px;border:2px solid #334860}.icon-open-new-tab:before{transform:rotate(145deg);display:inline-block;font-size:14px;top:-5px;position:relative;right:-11px;color:#334860}\n"] }]
|
|
19
|
-
}]
|
|
20
|
-
|
|
19
|
+
}], propDecorators: { newTabUrl: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvZ3JpZC9mcmFtZXdvcmsvZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiL2dyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2dyaWQvZnJhbWV3b3JrL2dyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYi9ncmlkLWNlbGwtY2xpY2tlZC1vcGVuLW5ldy10YWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU3BFLE1BQU0sT0FBTyxrQ0FBa0M7SUFOL0M7UUFPVyxjQUFTLEdBQVcsRUFBRSxDQUFDO0tBU2pDO0lBUEMsTUFBTSxDQUFDLE1BQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzsrSEFUVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyxtSENUL0Msb01BT0k7MkZERVMsa0NBQWtDO2tCQU45QyxTQUFTOytCQUNFLHlDQUF5QyxpQkFHcEMsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1ncmlkLWNlbGwtY2xpY2tlZC1vcGVuLW5ldy10YWInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgR3JpZENlbGxDbGlja2VkT3Blbk5ld1RhYkNvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XG4gIEBJbnB1dCgpIG5ld1RhYlVybDogc3RyaW5nID0gJyc7XG5cbiAgYWdJbml0KHBhcmFtczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5uZXdUYWJVcmwgPSBwYXJhbXMudmFsdWU7XG4gIH1cblxuICByZWZyZXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPGFcbiAgaWQ9XCJncmlkLWNlbGwtbGluay1vcGVuLW5ldy10YWJcIlxuICBjbGFzcz1cInNmeC1mb250LWJvbGQgc2Z4LWN1cnNvci1wb2ludGVyXCJcbiAgW2hyZWZdPVwibmV3VGFiVXJsXCJcbiAgdGFyZ2V0PVwiX2JsYW5rXCJcbj5cbiAgPGkgY2xhc3M9XCJzaS1tZW51LXJldHVybiBpY29uLW9wZW4tbmV3LXRhYlwiPjwvaT5cbjwvYT4iXX0=
|
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export class GridCellClickedOpenNewTabModule {
|
|
6
6
|
}
|
|
7
7
|
GridCellClickedOpenNewTabModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridCellClickedOpenNewTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
GridCellClickedOpenNewTabModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridCellClickedOpenNewTabModule, declarations: [GridCellClickedOpenNewTabComponent], imports: [CommonModule] });
|
|
8
|
+
GridCellClickedOpenNewTabModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridCellClickedOpenNewTabModule, declarations: [GridCellClickedOpenNewTabComponent], imports: [CommonModule], exports: [GridCellClickedOpenNewTabComponent] });
|
|
9
9
|
GridCellClickedOpenNewTabModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GridCellClickedOpenNewTabModule, imports: [[
|
|
10
10
|
CommonModule
|
|
11
11
|
]] });
|
|
@@ -15,7 +15,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
15
15
|
declarations: [GridCellClickedOpenNewTabComponent],
|
|
16
16
|
imports: [
|
|
17
17
|
CommonModule
|
|
18
|
-
]
|
|
18
|
+
],
|
|
19
|
+
exports: [GridCellClickedOpenNewTabComponent]
|
|
19
20
|
}]
|
|
20
21
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvZ3JpZC9mcmFtZXdvcmsvZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiL2dyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBV2hHLE1BQU0sT0FBTywrQkFBK0I7OzRIQUEvQiwrQkFBK0I7NkhBQS9CLCtCQUErQixpQkFOM0Isa0NBQWtDLGFBRS9DLFlBQVksYUFFSixrQ0FBa0M7NkhBRWpDLCtCQUErQixZQUxqQztZQUNQLFlBQVk7U0FDYjsyRkFHVSwrQkFBK0I7a0JBUDNDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0NBQWtDLENBQUM7b0JBQ2xELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgR3JpZENlbGxDbGlja2VkT3Blbk5ld1RhYkNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiLmNvbXBvbmVudCc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtHcmlkQ2VsbENsaWNrZWRPcGVuTmV3VGFiQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbR3JpZENlbGxDbGlja2VkT3Blbk5ld1RhYkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgR3JpZENlbGxDbGlja2VkT3Blbk5ld1RhYk1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -21,10 +21,10 @@ export class MergeContactClickedOpenModalComponent {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
MergeContactClickedOpenModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactClickedOpenModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
MergeContactClickedOpenModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactClickedOpenModalComponent, selector: "symphony-merge-contact-clicked-open-modal", outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n id=\"merge-contact-open-modal\"\n class=\"icon-merge-contact-clicked-open-modal sfx-font-bold sfx-cursor-pointer si-merge\"\n [disabled]=\"!enableMergeButton\"\n (click)=\"onClick()\"\n aria-label=\"Merge Contact\"\n type=\"button\"\n [title]=\"!enableMergeButton ? 'No Duplicates Exist' : 'Merge Duplicates'\"\n>\n</button>", styles: [".icon-merge-contact-clicked-open-modal{background:none;border:none;padding:0;margin:0;display:inline-block;align-items:center;font-size:14px;top:2px;position:relative;color:#334860;outline:none;cursor:pointer}
|
|
24
|
+
MergeContactClickedOpenModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactClickedOpenModalComponent, selector: "symphony-merge-contact-clicked-open-modal", outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n id=\"merge-contact-open-modal\"\n class=\"icon-merge-contact-clicked-open-modal sfx-font-bold sfx-cursor-pointer si-merge\"\n [disabled]=\"!enableMergeButton\"\n (click)=\"onClick()\"\n aria-label=\"Merge Contact\"\n type=\"button\"\n [title]=\"!enableMergeButton ? 'No Duplicates Exist' : 'Merge Duplicates'\"\n>\n</button>", styles: [".icon-merge-contact-clicked-open-modal{background:none;border:none;padding:0;margin:0;display:inline-block;align-items:center;font-size:14px;top:2px;position:relative;color:#334860;outline:none;cursor:pointer}.icon-merge-contact-clicked-open-modal:disabled{cursor:not-allowed;opacity:50%}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactClickedOpenModalComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: 'symphony-merge-contact-clicked-open-modal', encapsulation: ViewEncapsulation.None, template: "<button\n id=\"merge-contact-open-modal\"\n class=\"icon-merge-contact-clicked-open-modal sfx-font-bold sfx-cursor-pointer si-merge\"\n [disabled]=\"!enableMergeButton\"\n (click)=\"onClick()\"\n aria-label=\"Merge Contact\"\n type=\"button\"\n [title]=\"!enableMergeButton ? 'No Duplicates Exist' : 'Merge Duplicates'\"\n>\n</button>", styles: [".icon-merge-contact-clicked-open-modal{background:none;border:none;padding:0;margin:0;display:inline-block;align-items:center;font-size:14px;top:2px;position:relative;color:#334860;outline:none;cursor:pointer}
|
|
27
|
+
args: [{ selector: 'symphony-merge-contact-clicked-open-modal', encapsulation: ViewEncapsulation.None, template: "<button\n id=\"merge-contact-open-modal\"\n class=\"icon-merge-contact-clicked-open-modal sfx-font-bold sfx-cursor-pointer si-merge\"\n [disabled]=\"!enableMergeButton\"\n (click)=\"onClick()\"\n aria-label=\"Merge Contact\"\n type=\"button\"\n [title]=\"!enableMergeButton ? 'No Duplicates Exist' : 'Merge Duplicates'\"\n>\n</button>", styles: [".icon-merge-contact-clicked-open-modal{background:none;border:none;padding:0;margin:0;display:inline-block;align-items:center;font-size:14px;top:2px;position:relative;color:#334860;outline:none;cursor:pointer}.icon-merge-contact-clicked-open-modal:disabled{cursor:not-allowed;opacity:50%}\n"] }]
|
|
28
28
|
}], propDecorators: { clicked: [{
|
|
29
29
|
type: Output
|
|
30
30
|
}] } });
|
|
@@ -6,20 +6,21 @@ export class InputRadioComponent {
|
|
|
6
6
|
this.clicked = new EventEmitter();
|
|
7
7
|
}
|
|
8
8
|
onClick() {
|
|
9
|
-
this.isActive ? (this.isActive = false) : (this.isActive = true);
|
|
10
9
|
this.clicked.emit({
|
|
11
10
|
label: this.label,
|
|
12
|
-
isActive:
|
|
11
|
+
isActive: true,
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
15
|
InputRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
InputRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputRadioComponent, selector: "symphony-input-radio", inputs: { isActive: "isActive", label: "label", isRequired: "isRequired" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input
|
|
16
|
+
InputRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputRadioComponent, selector: "symphony-input-radio", inputs: { isActive: "isActive", name: "name", label: "label", isRequired: "isRequired" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ label }}\"\n />\n <label for=\"{{ label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
18
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputRadioComponent, decorators: [{
|
|
19
18
|
type: Component,
|
|
20
|
-
args: [{ selector: 'symphony-input-radio', template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input
|
|
19
|
+
args: [{ selector: 'symphony-input-radio', template: "<div class=\"sfx-radio\" (click)=\"onClick()\">\n <input\n type=\"radio\"\n class=\"sfx-radio-input\"\n [checked]=\"isActive\"\n [name]=\"name || label\"\n id=\"{{ label }}\"\n />\n <label for=\"{{ label }}\" class=\"Font400\"\n >{{ label }}<span class=\"requiredField\" *ngIf=\"isRequired\">*</span></label\n >\n</div>\n", styles: [".requiredField{color:#000!important}.sfx-radio{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-radio .sfx-radio-input{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1}.sfx-radio .sfx-radio-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;font-family:neuzeit_groteskbold}.sfx-radio .sfx-radio-input+*:before{content:\"\";display:inline-block;vertical-align:bottom;width:1rem;height:1rem;margin-right:.5rem;margin-bottom:.2rem;border-radius:50%;border-style:solid;border-width:.1rem;border-color:#000}.sfx-radio .sfx-radio-input:checked+*:before{background:radial-gradient(black 0%,black 40%,transparent 50%,transparent)}.sfx-radio .sfx-radio-input:checked+*{color:#000}\n"] }]
|
|
21
20
|
}], ctorParameters: function () { return []; }, propDecorators: { isActive: [{
|
|
22
21
|
type: Input
|
|
22
|
+
}], name: [{
|
|
23
|
+
type: Input
|
|
23
24
|
}], label: [{
|
|
24
25
|
type: Input
|
|
25
26
|
}], isRequired: [{
|
|
@@ -27,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
27
28
|
}], clicked: [{
|
|
28
29
|
type: Output
|
|
29
30
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pbnB1dC1yYWRpby9pbnB1dC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXJhZGlvL2lucHV0LXJhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUTlCO1FBRlUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFN0IsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBZlUsbUJBQW1CO29HQUFuQixtQkFBbUIsdUxDUGhDLHlWQVlBOzJGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxzQkFBc0I7MEVBS3ZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UmFkaW9Db21wb25lbnQge1xuICBASW5wdXQoKSBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgaXNSZXF1aXJlZDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBvbkNsaWNrKCkge1xuICAgIHRoaXMuY2xpY2tlZC5lbWl0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmxhYmVsLFxuICAgICAgaXNBY3RpdmU6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZngtcmFkaW9cIiAoY2xpY2spPVwib25DbGljaygpXCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgY2xhc3M9XCJzZngtcmFkaW8taW5wdXRcIlxuICAgIFtjaGVja2VkXT1cImlzQWN0aXZlXCJcbiAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICBpZD1cInt7IGxhYmVsIH19XCJcbiAgLz5cbiAgPGxhYmVsIGZvcj1cInt7IGxhYmVsIH19XCIgY2xhc3M9XCJGb250NDAwXCJcbiAgICA+e3sgbGFiZWwgfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkRmllbGRcIiAqbmdJZj1cImlzUmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgPlxuPC9kaXY+XG4iXX0=
|
|
@@ -113,7 +113,10 @@ export class InputTextareaWithSendComponent {
|
|
|
113
113
|
this.onChange('');
|
|
114
114
|
this.valueChanged.emit('');
|
|
115
115
|
if (this.autoResize) {
|
|
116
|
-
setTimeout(() =>
|
|
116
|
+
setTimeout(() => {
|
|
117
|
+
this.adjustTextareaHeight();
|
|
118
|
+
this.refreshInputState();
|
|
119
|
+
}, 0);
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
}
|
|
@@ -162,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
162
165
|
type: ViewChild,
|
|
163
166
|
args: ['textareaElement']
|
|
164
167
|
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQTBCekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF6QmpDLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXBELFVB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QkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdUeXBlIHlvdXIgbWVzc2FnZS4uLic7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVyTGltaXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW5Sb3dzOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBtYXhSb3dzOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSBzZW5kQnV0dG9uSWNvbjogc3RyaW5nID0gJ3NpLWFycm93LW5leHQnO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmcgPSAnU2VuZCBtZXNzYWdlJztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHNlbmRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBlbnRlclByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhRWxlbWVudCcpIHRleHRhcmVhRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBjdXJyZW50Um93czogbnVtYmVyID0gMTtcbiAgY2hhcmFjdGVyQ291bnQ6IG51bWJlciA9IDA7XG4gIGNoYXJhY3RlckxpbWl0RXhjZWVkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FuU2VuZE1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IHN0cmluZykgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKTtcbiAgICB9XG4gICAgLy8gSW5pdGlhbGl6ZSBjb21wdXRlZCBwcm9wZXJ0aWVzXG4gICAgdGhpcy5yZWZyZXNoSW5wdXRTdGF0ZSgpO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudDtcbiAgICB0aGlzLnZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgIC8vIFVwZGF0ZSBjb21wdXRlZCBwcm9wZXJ0aWVzIGZvciBjaGFyYWN0ZXIgY291bnQgYW5kIHNlbmQgYnV0dG9uXG4gICAgdGhpcy5yZWZyZXNoSW5wdXRTdGF0ZSgpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgXG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRLZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHRoaXMuY2FuU2VuZE1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5vblNlbmRDbGljaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VuZENsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhblNlbmRNZXNzYWdlKSB7XG4gICAgICB0aGlzLnNlbmRDbGlja2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLmVudGVyUHJlc3NlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGV4dGFyZWFIZWlnaHQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRleHRhcmVhRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgdGV4dGFyZWEgPSB0aGlzLnRleHRhcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIFxuICAgIC8vIFJlc2V0IGhlaWdodCB0byBhdXRvIHRvIGdldCB0aGUgc2Nyb2xsIGhlaWdodFxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICBcbiAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBsaW5lc1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSAyNDsgLy8gQmFzZSBsaW5lIGhlaWdodCBpbiBwaXhlbHNcbiAgICBjb25zdCBwYWRkaW5nID0gMTY7IC8vIFRvcCArIGJvdHRvbSBwYWRkaW5nXG4gICAgY29uc3QgbWluSGVpZ2h0ID0gdGhpcy5taW5Sb3dzICogbGluZUhlaWdodCArIHBhZGRpbmc7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gdGhpcy5tYXhSb3dzICogbGluZUhlaWdodCArIHBhZGRpbmc7XG4gICAgXG4gICAgbGV0IG5ld0hlaWdodCA9IE1hdGgubWF4KHRleHRhcmVhLnNjcm9sbEhlaWdodCwgbWluSGVpZ2h0KTtcbiAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihuZXdIZWlnaHQsIG1heEhlaWdodCk7XG4gICAgXG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gbmV3SGVpZ2h0ICsgJ3B4JztcbiAgICBcbiAgICAvLyBVcGRhdGUgY3VycmVudCByb3dzIGZvciBzdHlsaW5nIHB1cnBvc2VzXG4gICAgdGhpcy5jdXJyZW50Um93cyA9IE1hdGguY2VpbCgobmV3SGVpZ2h0IC0gcGFkZGluZykgLyBsaW5lSGVpZ2h0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaElucHV0U3RhdGUoKTogdm9pZCB7XG4gICAgLy8gVXBkYXRlIGNoYXJhY3RlciBjb3VudFxuICAgIHRoaXMuY2hhcmFjdGVyQ291bnQgPSB0aGlzLnZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICBcbiAgICAvLyBVcGRhdGUgY2hhcmFjdGVyIGxpbWl0IGV4Y2VlZGVkIHN0YXR1c1xuICAgIHRoaXMuY2hhcmFjdGVyTGltaXRFeGNlZWRlZCA9ICEhdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdCAmJiB0aGlzLmNoYXJhY3RlckNvdW50ID4gdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdDtcbiAgICBcbiAgICAvLyBVcGRhdGUgY2FuIHNlbmQgc3RhdHVzXG4gICAgY29uc3QgdHJpbW1lZFZhbHVlID0gdGhpcy52YWx1ZT8udHJpbSgpO1xuICAgIGNvbnN0IGhhc1ZhbHVlID0gISF0cmltbWVkVmFsdWU7XG4gICAgY29uc3Qgd2l0aGluTGltaXQgPSAhdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdCB8fCB0aGlzLmNoYXJhY3RlckNvdW50IDw9IHRoaXMubWF4Q2hhcmFjdGVyTGltaXQ7XG4gICAgXG4gICAgdGhpcy5jYW5TZW5kTWVzc2FnZSA9ICF0aGlzLmlzRGlzYWJsZWQgJiYgaGFzVmFsdWUgJiYgd2l0aGluTGltaXQ7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZXh0YXJlYUVsZW1lbnQpIHtcbiAgICAgIHRoaXMudGV4dGFyZWFFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCgnJyk7XG4gICAgXG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCksIDApO1xuICAgIH1cbiAgfVxufSAiLCI8ZGl2IGNsYXNzPVwiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLWNvbnRhaW5lclwiPlxuICA8IS0tIENoYXJhY3RlciBDb3VudGVyIC0tPlxuICA8ZGl2IFxuICAgIGNsYXNzPVwiY2hhcmFjdGVyLWNvdW50ZXIgc2Z4LW1iLTEwXCJcbiAgICAqbmdJZj1cInNob3dDaGFyYWN0ZXJDb3VudCAmJiBtYXhDaGFyYWN0ZXJMaW1pdFwiPlxuICAgIDxzcGFuIFxuICAgICAgY2xhc3M9XCJjb3VudGVyLXRleHRcIlxuICAgICAgW2NsYXNzLmNvdW50ZXItZXhjZWVkZWRdPVwiY2hhcmFjdGVyTGltaXRFeGNlZWRlZFwiPlxuICAgICAge3sgY2hhcmFjdGVyQ291bnQgfX0gLyB7eyBtYXhDaGFyYWN0ZXJMaW1pdCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBJbnB1dCB3aXRoIFNlbmQgQnV0dG9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgIDx0ZXh0YXJlYVxuICAgICAgI3RleHRhcmVhRWxlbWVudFxuICAgICAgY2xhc3M9XCJ0ZXh0YXJlYS1pbnB1dFwiXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgIFttYXhMZW5ndGhdPVwibWF4Q2hhcmFjdGVyTGltaXRcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bik9XCJvbklucHV0S2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gICAgICByb3dzPVwiMVwiPlxuICAgIDwvdGV4dGFyZWE+XG4gICAgXG4gICAgPCEtLSBTZW5kIEJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2VuZC1idXR0b25cIlxuICAgICAgW2NsYXNzLmVuYWJsZWRdPVwiY2FuU2VuZE1lc3NhZ2VcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFjYW5TZW5kTWVzc2FnZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhblNlbmRNZXNzYWdlXCJcbiAgICAgIChjbGljayk9XCJvblNlbmRDbGljaygpXCJcbiAgICAgIGlkPVwiYnV0dG9uLXRleHRhcmVhLXNlbmRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZW5kQnV0dG9uQXJpYUxhYmVsXCI+XG4gICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCJzZW5kQnV0dG9uSWNvblwiIFtzaXplXT1cIicxMHB4J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj4gIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQTBCekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF6QmpDLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSXBELFVB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QUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUV1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWlucHV0LXRleHRhcmVhLXdpdGgtc2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRhcmVhV2l0aFNlbmRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1R5cGUgeW91ciBtZXNzYWdlLi4uJztcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhDaGFyYWN0ZXJMaW1pdD86IG51bWJlcjtcbiAgQElucHV0KCkgc2hvd0NoYXJhY3RlckNvdW50OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pblJvd3M6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIG1heFJvd3M6IG51bWJlciA9IDY7XG4gIEBJbnB1dCgpIHNlbmRCdXR0b25JY29uOiBzdHJpbmcgPSAnc2ktYXJyb3ctbmV4dCc7XG4gIEBJbnB1dCgpIHNlbmRCdXR0b25BcmlhTGFiZWw6IHN0cmluZyA9ICdTZW5kIG1lc3NhZ2UnO1xuICBASW5wdXQoKSBhdXRvUmVzaXplOiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgc2VuZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGVudGVyUHJlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGV4dGFyZWFFbGVtZW50JykgdGV4dGFyZWFFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcblxuICB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRSb3dzOiBudW1iZXIgPSAxO1xuICBjaGFyYWN0ZXJDb3VudDogbnVtYmVyID0gMDtcbiAgY2hhcmFjdGVyTGltaXRFeGNlZWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBjYW5TZW5kTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7fTtcbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgIH1cbiAgICAvLyBJbml0aWFsaXplIGNvbXB1dGVkIHByb3BlcnRpZXNcbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gIH1cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgdGhpcy5yZWZyZXNoSW5wdXRTdGF0ZSgpO1xuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpLCAwKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWU7XG4gICAgLy8gVXBkYXRlIGNvbXB1dGVkIHByb3BlcnRpZXMgZm9yIGNoYXJhY3RlciBjb3VudCBhbmQgc2VuZCBidXR0b25cbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICBcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5jYW5TZW5kTWVzc2FnZSkge1xuICAgICAgICB0aGlzLm9uU2VuZENsaWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZW5kQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuU2VuZE1lc3NhZ2UpIHtcbiAgICAgIHRoaXMuc2VuZENsaWNrZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuZW50ZXJQcmVzc2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUZXh0YXJlYUhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGV4dGFyZWFFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMudGV4dGFyZWFFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgXG4gICAgLy8gUmVzZXQgaGVpZ2h0IHRvIGF1dG8gdG8gZ2V0IHRoZSBzY3JvbGwgaGVpZ2h0XG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGxpbmVzXG4gICAgY29uc3QgbGluZUhlaWdodCA9IDI0OyAvLyBCYXNlIGxpbmUgaGVpZ2h0IGluIHBpeGVsc1xuICAgIGNvbnN0IHBhZGRpbmcgPSAxNjsgLy8gVG9wICsgYm90dG9tIHBhZGRpbmdcbiAgICBjb25zdCBtaW5IZWlnaHQgPSB0aGlzLm1pblJvd3MgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZztcbiAgICBjb25zdCBtYXhIZWlnaHQgPSB0aGlzLm1heFJvd3MgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZztcbiAgICBcbiAgICBsZXQgbmV3SGVpZ2h0ID0gTWF0aC5tYXgodGV4dGFyZWEuc2Nyb2xsSGVpZ2h0LCBtaW5IZWlnaHQpO1xuICAgIG5ld0hlaWdodCA9IE1hdGgubWluKG5ld0hlaWdodCwgbWF4SGVpZ2h0KTtcbiAgICBcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBuZXdIZWlnaHQgKyAncHgnO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjdXJyZW50IHJvd3MgZm9yIHN0eWxpbmcgcHVycG9zZXNcbiAgICB0aGlzLmN1cnJlbnRSb3dzID0gTWF0aC5jZWlsKChuZXdIZWlnaHQgLSBwYWRkaW5nKSAvIGxpbmVIZWlnaHQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoSW5wdXRTdGF0ZSgpOiB2b2lkIHtcbiAgICAvLyBVcGRhdGUgY2hhcmFjdGVyIGNvdW50XG4gICAgdGhpcy5jaGFyYWN0ZXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCB8fCAwO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjaGFyYWN0ZXIgbGltaXQgZXhjZWVkZWQgc3RhdHVzXG4gICAgdGhpcy5jaGFyYWN0ZXJMaW1pdEV4Y2VlZGVkID0gISF0aGlzLm1heENoYXJhY3RlckxpbWl0ICYmIHRoaXMuY2hhcmFjdGVyQ291bnQgPiB0aGlzLm1heENoYXJhY3RlckxpbWl0O1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjYW4gc2VuZCBzdGF0dXNcbiAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB0aGlzLnZhbHVlPy50cmltKCk7XG4gICAgY29uc3QgaGFzVmFsdWUgPSAhIXRyaW1tZWRWYWx1ZTtcbiAgICBjb25zdCB3aXRoaW5MaW1pdCA9ICF0aGlzLm1heENoYXJhY3RlckxpbWl0IHx8IHRoaXMuY2hhcmFjdGVyQ291bnQgPD0gdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdDtcbiAgICBcbiAgICB0aGlzLmNhblNlbmRNZXNzYWdlID0gIXRoaXMuaXNEaXNhYmxlZCAmJiBoYXNWYWx1ZSAmJiB3aXRoaW5MaW1pdDtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRleHRhcmVhRWxlbWVudCkge1xuICAgICAgdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KCcnKTtcbiAgICBcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgICAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cbn0gIiwiPGRpdiBjbGFzcz1cImlucHV0LXRleHRhcmVhLXdpdGgtc2VuZC1jb250YWluZXJcIj5cbiAgPCEtLSBDaGFyYWN0ZXIgQ291bnRlciAtLT5cbiAgPGRpdiBcbiAgICBjbGFzcz1cImNoYXJhY3Rlci1jb3VudGVyIHNmeC1tYi0xMFwiXG4gICAgKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnQgJiYgbWF4Q2hhcmFjdGVyTGltaXRcIj5cbiAgICA8c3BhbiBcbiAgICAgIGNsYXNzPVwiY291bnRlci10ZXh0XCJcbiAgICAgIFtjbGFzcy5jb3VudGVyLWV4Y2VlZGVkXT1cImNoYXJhY3RlckxpbWl0RXhjZWVkZWRcIj5cbiAgICAgIHt7IGNoYXJhY3RlckNvdW50IH19IC8ge3sgbWF4Q2hhcmFjdGVyTGltaXQgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSW5wdXQgd2l0aCBTZW5kIEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICA8dGV4dGFyZWFcbiAgICAgICN0ZXh0YXJlYUVsZW1lbnRcbiAgICAgIGNsYXNzPVwidGV4dGFyZWEtaW5wdXRcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICBbbWF4TGVuZ3RoXT1cIm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25JbnB1dEtleVByZXNzKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgcm93cz1cIjFcIj5cbiAgICA8L3RleHRhcmVhPlxuICAgIFxuICAgIDwhLS0gU2VuZCBCdXR0b24gLS0+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNlbmQtYnV0dG9uXCJcbiAgICAgIFtjbGFzcy5lbmFibGVkXT1cImNhblNlbmRNZXNzYWdlXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY2FuU2VuZE1lc3NhZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TZW5kTWVzc2FnZVwiXG4gICAgICAoY2xpY2spPVwib25TZW5kQ2xpY2soKVwiXG4gICAgICBpZD1cImJ1dHRvbi10ZXh0YXJlYS1zZW5kXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VuZEJ1dHRvbkFyaWFMYWJlbFwiPlxuICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwic2VuZEJ1dHRvbkljb25cIiBbc2l6ZV09XCInMTBweCdcIj48L3N5bXBob255LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+ICJdfQ==
|
package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs
CHANGED
|
@@ -83,7 +83,8 @@ export class AISearchAssistantDrawerComponent {
|
|
|
83
83
|
// Focus the input field for better UX
|
|
84
84
|
setTimeout(() => {
|
|
85
85
|
if (this.messageInput) {
|
|
86
|
-
this.messageInput.
|
|
86
|
+
this.messageInput.clear();
|
|
87
|
+
this.cdr.detectChanges();
|
|
87
88
|
}
|
|
88
89
|
}, 100);
|
|
89
90
|
}
|
|
@@ -97,6 +98,8 @@ export class AISearchAssistantDrawerComponent {
|
|
|
97
98
|
};
|
|
98
99
|
// Clear input immediately for better UX
|
|
99
100
|
this.model.inputValue = '';
|
|
101
|
+
this.messageInput.clear();
|
|
102
|
+
this.cdr.detectChanges();
|
|
100
103
|
// Emit event for parent to handle
|
|
101
104
|
this.messageSent.emit(messageEvent);
|
|
102
105
|
}
|
|
@@ -164,10 +167,10 @@ export class AISearchAssistantDrawerComponent {
|
|
|
164
167
|
}
|
|
165
168
|
}
|
|
166
169
|
AISearchAssistantDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
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", suggestionsToggled: "suggestionsToggled" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\"\n [id]=\"getPendoId('aiAssistantDrawer')\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close Tali Assistant' : 'Open Tali Assistant'\"\n [title]=\"model.isOpen ? 'Close Tali Assistant' : 'Tali 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-h4 class=\"ai-drawer-title sfx-m-0\">Tali, your Talent Acquisition Assistant</symphony-h4>\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 Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\">\n </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-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H4Component, selector: "symphony-h4", 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 } });
|
|
170
|
+
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", suggestionsToggled: "suggestionsToggled" }, viewQueries: [{ propertyName: "chatContainer", first: true, predicate: ["chatContainer"], descendants: true }, { propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<!-- Drawer Container -->\n<div \n class=\"ai-drawer-container\" \n [class.open]=\"model.isOpen\"\n [id]=\"getPendoId('aiAssistantDrawer')\">\n \n <!-- Edge Toggle Button (inside drawer container) -->\n <button \n class=\"ai-drawer-edge-toggle\"\n [class.drawer-open]=\"model.isOpen\"\n (click)=\"onToggleDrawer()\"\n [attr.aria-label]=\"model.isOpen ? 'Close Tali Assistant' : 'Open Tali Assistant'\"\n [title]=\"model.isOpen ? 'Close Tali Assistant' : 'Tali 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-h4 class=\"ai-drawer-title sfx-m-0\">Tali, your Talent Acquisition Assistant</symphony-h4>\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 Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\">\n </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;word-break:break-word;overflow-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;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-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i2.H4Component, selector: "symphony-h4", 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 } });
|
|
168
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: AISearchAssistantDrawerComponent, decorators: [{
|
|
169
172
|
type: Component,
|
|
170
|
-
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 Tali Assistant' : 'Open Tali Assistant'\"\n [title]=\"model.isOpen ? 'Close Tali Assistant' : 'Tali 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-h4 class=\"ai-drawer-title sfx-m-0\">Tali, your Talent Acquisition Assistant</symphony-h4>\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 Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\">\n </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-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
|
|
173
|
+
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 Tali Assistant' : 'Open Tali Assistant'\"\n [title]=\"model.isOpen ? 'Close Tali Assistant' : 'Tali 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-h4 class=\"ai-drawer-title sfx-m-0\">Tali, your Talent Acquisition Assistant</symphony-h4>\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 Section -->\n <div \n class=\"ai-suggested-prompts-section\"\n *ngIf=\"config.enableSuggestedPrompts && model.suggestedPrompts.length > 0\">\n <div class=\"ai-prompts-intro-row\">\n <symphony-paragraph class=\"ai-prompts-intro sfx-mb-15\">\n {{ model.isSuggestionsOpen ? 'Here are a few suggested prompts to get you started.' : 'Need help getting started?' }}\n </symphony-paragraph>\n <button\n class=\"ai-suggestions-toggle-compact\"\n [class.suggestions-open]=\"model.isSuggestionsOpen\"\n (click)=\"onToggleSuggestions()\"\n [attr.aria-label]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [title]=\"model.isSuggestionsOpen ? 'Hide suggestions' : 'Show suggestions'\"\n [id]=\"getPendoId('aiSuggestionsToggle')\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <symphony-icon [icon]=\"'si-arrow-hide-reveal'\"></symphony-icon>\n </button>\n </div>\n <div \n class=\"ai-suggested-prompts\" \n *ngIf=\"model.isSuggestionsOpen\"\n [class.open]=\"model.isSuggestionsOpen\"\n [id]=\"getPendoId('aiSuggestedPrompts')\"\n [class.disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\">\n <div class=\"ai-prompts-list\">\n <button\n *ngFor=\"let prompt of model.suggestedPrompts; let i = index\"\n class=\"ai-prompt-button\"\n (click)=\"onPromptClick(prompt)\"\n [disabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [id]=\"getPendoId('aiPromptButton-' + i)\">\n <symphony-icon \n *ngIf=\"prompt.icon\" \n [icon]=\"'si-' + prompt.icon\"\n class=\"ai-prompt-icon\">\n </symphony-icon>\n <span class=\"ai-prompt-text\">{{ prompt.text }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Footer / Input Area -->\n <div class=\"ai-drawer-footer\" *ngIf=\"model.isOpen\">\n \n <!-- Input Row -->\n <div class=\"ai-input-row\">\n <symphony-input-textarea-with-send\n #messageInput\n [(ngModel)]=\"model.inputValue\"\n [placeholder]=\"config.placeholder\"\n [isDisabled]=\"model.isLoading || model.aiTaskStatus?.showProgressBar\"\n [maxCharacterLimit]=\"model.maxCharacterLimit\"\n [showCharacterCount]=\"!!model.maxCharacterLimit\"\n (sendClicked)=\"onSendMessage()\"\n (valueChanged)=\"onInputChange($event)\"\n (enterPressed)=\"onSendMessage()\"\n [id]=\"getPendoId('aiMessageInput')\">\n </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;word-break:break-word;overflow-wrap:break-word;animation:messageSlideIn .3s ease-out;display:flex;gap:.625rem}.ai-message-bubble.user-message{background-color:#2b8ff3;color:#fff;border-bottom-right-radius:4px;padding:.625rem .9375rem;justify-content:flex-end}.ai-message-bubble.user-message .ai-message-content-wrapper{display:flex;flex-direction:column;align-items:flex-end}.ai-message-bubble.ai-message{background-color:#fff;border:1px solid #D2D8E5;color:#08203e;border-bottom-left-radius:4px;padding:.625rem .9375rem;align-items:flex-start}.ai-message-bubble.ai-message .ai-message-icon{flex:0 0 auto;width:24px;height:24px;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-section{border-top:1px solid #E4E7EF;background-color:#f1f2f5;margin-bottom:0;position:relative;min-height:48px}.ai-prompts-intro-row{position:relative;padding:12px 14px 0;display:flex;align-items:center}.ai-prompts-intro-row .ai-prompts-intro{margin:0 auto;padding:0;font-size:.875rem;color:#5b6d80;line-height:1.4;text-align:center;position:relative;max-width:calc(100% - 60px);display:block}.ai-prompts-intro-row .ai-suggestions-toggle-compact{right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#fff;color:#712ace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;box-shadow:0 1px 4px rgba(80,0,120,.04);font-size:15px;padding:0;margin:0}.ai-prompts-intro-row .ai-suggestions-toggle-compact:hover:not(:disabled){background:#f3f0ff;color:#5a21a4}.ai-prompts-intro-row .ai-suggestions-toggle-compact:focus{outline:2px solid #814DFF;outline-offset:2px}.ai-prompts-intro-row .ai-suggestions-toggle-compact:disabled{opacity:.5;cursor:not-allowed}.ai-prompts-intro-row .ai-suggestions-toggle-compact symphony-icon{font-size:15px;transition:transform .2s;transform:rotate(0)}.ai-prompts-intro-row .ai-suggestions-toggle-compact.suggestions-open symphony-icon{transform:rotate(180deg)}.ai-suggested-prompts{position:static;max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);opacity:0;padding:1.25rem 1.5625rem;background-color:#f1f2f5}.ai-suggested-prompts.open{max-height:500px;opacity:1}.ai-suggested-prompts.disabled{opacity:.7;pointer-events:none}.ai-suggested-prompts .ai-prompt-button:disabled{cursor:not-allowed;opacity:.7}.ai-suggested-prompts .ai-prompts-intro{font-size:.875rem;color:#5b6d80;text-align:center;line-height:1.4}.ai-suggested-prompts .ai-prompts-list{display:flex;flex-direction:column;gap:.625rem}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button{display:flex;align-items:center;gap:.625rem;padding:.625rem .9375rem;border:1px solid #C5AEFF;border-radius:24px;background-color:transparent;color:#712ace;cursor:pointer;transition:all .2s ease;text-align:left;font-size:.875rem;min-height:48px}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:hover{background-color:#f3f0ff;border-color:#9d79ff;transform:translateY(-1px)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button:active{transform:translateY(0)}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-icon{flex:0 0 auto;color:#712ace;font-size:16px;display:flex}.ai-suggested-prompts .ai-prompts-list .ai-prompt-button .ai-prompt-text{flex:1;font-weight:400;line-height:1.3}.ai-drawer-footer{padding:.9375rem 1.5625rem 1.25rem;border-top:1px solid #D2D8E5;background-color:#fff;position:relative;z-index:1}.ai-suggested-prompts-section+.ai-drawer-footer{padding-top:.3rem;padding-bottom:.9375rem}.ai-input-row symphony-input-textarea-with-send{width:100%}.ai-footer-actions{text-align:center}.ai-footer-actions symphony-button-v2{font-size:.75rem;color:#5b6d80}.ai-footer-actions symphony-button-v2:hover{color:#08203e}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-contrast: high){.ai-drawer-container{border:2px solid #08203E}.ai-message-bubble.user-message{border:1px solid #0a5cae}.ai-message-bubble.ai-message{border:2px solid #5B6D80}.ai-message-bubble.system-message{border:2px solid #C3CBDC}}@media (prefers-reduced-motion: reduce){.ai-drawer-container,.ai-message-bubble,.ai-drawer-edge-toggle{transition:none;animation:none}}\n"] }]
|
|
171
174
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{
|
|
172
175
|
type: Input
|
|
173
176
|
}], config: [{
|
|
@@ -195,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
195
198
|
type: ViewChild,
|
|
196
199
|
args: ['messageInput']
|
|
197
200
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVMzSSxNQUFNLE9BQU8sZ0NBQWdDO0lBNkMzQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVDakMsVUFBSyxHQUEyQjtZQUN2QyxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsRUFBRTtZQUNkLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUMzQyxDQUFDO1FBRU8sV0FBTSxHQUE0QjtZQUN6QyxjQUFjLEVBQUUsNkNBQTZDO1lBQzdELFdBQVcsRUFBRSxjQUFjO1lBQzNCLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQztRQVFGLG1EQUFtRDtRQUN6Qyxp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QUs7c0JBQWIsS0FBSztnQkFVRyxNQUFNO3NCQUFkLEtBQUs7Z0JBYUcsU0FBUztzQkFBakIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0csYUFBYTtzQkFBdEIsTUFBTTtnQkFHRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRXFCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDQyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3Q2hlY2tlZCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSVNlYXJjaEFzc2lzdGFudE1vZGVsLCBDaGF0TWVzc2FnZSwgU3VnZ2VzdGVkUHJvbXB0LCBBSVNlYXJjaEFzc2lzdGFudENvbmZpZywgTWVzc2FnZUV2ZW50IH0gZnJvbSAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5tb2RlbCc7XG5pbXBvcnQgeyBJbnB1dFRleHRhcmVhV2l0aFNlbmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWFpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBSVNlYXJjaEFzc2lzdGFudERyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIG1vZGVsOiBBSVNlYXJjaEFzc2lzdGFudE1vZGVsID0ge1xuICAgIGlzT3BlbjogZmFsc2UsXG4gICAgbWVzc2FnZXM6IFtdLFxuICAgIHN1Z2dlc3RlZFByb21wdHM6IFtdLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgaW5wdXRWYWx1ZTogJycsXG4gICAgbWF4Q2hhcmFjdGVyTGltaXQ6IDEwMDAsXG4gICAgaXNTdWdnZXN0aW9uc09wZW46IHRydWUgLy8gRGVmYXVsdCB0byBvcGVuXG4gIH07XG5cbiAgQElucHV0KCkgY29uZmlnOiBBSVNlYXJjaEFzc2lzdGFudENvbmZpZyA9IHtcbiAgICB3ZWxjb21lTWVzc2FnZTogJ0hlbGxvLCBJXFwnbSBUYWxpLiBIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/JyxcbiAgICBwbGFjZWhvbGRlcjogJ01lc3NhZ2UgVGFsaScsXG4gICAgbWF4TWVzc2FnZXM6IDEwMCxcbiAgICBhdXRvU2Nyb2xsOiB0cnVlLFxuICAgIHNob3dUaW1lc3RhbXBzOiB0cnVlLFxuICAgIGVuYWJsZVN1Z2dlc3RlZFByb21wdHM6IHRydWVcbiAgfTtcblxuICAvKipcbiAgICogQ29udGV4dCBpZGVudGlmaWVyIGZvciBkeW5hbWljIFBlbmRvIElEcyAoZS5nLiwgJ0dlbkFJQnVpbGRlcicsICdFbWFpbENvbXBvc2VyJylcbiAgICogVGhpcyBhbGxvd3MgdGhlIHNhbWUgY29tcG9uZW50IHRvIGhhdmUgZGlmZmVyZW50IFBlbmRvIHRyYWNraW5nIGJhc2VkIG9uIHdoZXJlIGl0J3MgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgY29udGV4dElkPzogc3RyaW5nO1xuXG4gIC8vIFNpbXBsZSBldmVudCBvdXRwdXRzIGZvbGxvd2luZyBTeW1waG9ueSBwYXR0ZXJuc1xuICBAT3V0cHV0KCkgZHJhd2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHJvbXB0U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3RlZFByb21wdD4oKTtcbiAgQE91dHB1dCgpIG1lc3NhZ2VTZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNZXNzYWdlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbnB1dENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJldHJ5Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIEFJIFRhc2sgU3RhdHVzIGV2ZW50c1xuICBAT3V0cHV0KCkgdGFza0NhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIC8vIFN1Z2dlc3Rpb25zIHRvZ2dsZSBldmVudFxuICBAT3V0cHV0KCkgc3VnZ2VzdGlvbnNUb2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXRDb250YWluZXInKSBjaGF0Q29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ21lc3NhZ2VJbnB1dCcpIG1lc3NhZ2VJbnB1dCE6IElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudDtcblxuICBwcml2YXRlIHNob3VsZFNjcm9sbFRvQm90dG9tID0gZmFsc2U7XG4gIHByaXZhdGUgaGFzQWRkZWRXZWxjb21lTWVzc2FnZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGlmIGNvbmZpZ3VyZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgdGhpcy5hZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gJiYgdGhpcy5jb25maWcuYXV0b1Njcm9sbCkge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgdGhpcy5zaG91bGRTY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlNZXNzYWdlSWQoaW5kZXg6IG51bWJlciwgbWVzc2FnZTogQ2hhdE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBtZXNzYWdlLmlkO1xuICB9XG5cbiAgb25Ub2dnbGVEcmF3ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pc09wZW4gPSAhdGhpcy5tb2RlbC5pc09wZW47XG4gICAgaWYgKHRoaXMubW9kZWwuaXNPcGVuKSB7XG4gICAgICAvLyBBZGQgd2VsY29tZSBtZXNzYWdlIGFzIGZpcnN0IG1lc3NhZ2UgaWYgbm90IGFscmVhZHkgYWRkZWQgYW5kIG5vIG1lc3NhZ2VzIGV4aXN0XG4gICAgICB0aGlzLmFkZFdlbGNvbWVNZXNzYWdlSWZOZWVkZWQoKTtcbiAgICAgIFxuICAgICAgLy8gRm9jdXMgdGhlIGlucHV0IGZpZWxkIHdoZW4gb3BlbmluZ1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VJbnB1dCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZUlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMCk7IC8vIFdhaXQgZm9yIGFuaW1hdGlvbiB0byBjb21wbGV0ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYXdlckNsb3NlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25Ub2dnbGVTdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID0gIXRoaXMubW9kZWwuaXNTdWdnZXN0aW9uc09wZW47XG4gICAgdGhpcy5zdWdnZXN0aW9uc1RvZ2dsZWQuZW1pdCh0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvblByb21wdENsaWNrKHByb21wdDogU3VnZ2VzdGVkUHJvbXB0KTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZWxlY3RlZC5lbWl0KHByb21wdCk7XG4gICAgLy8gQ29weSBwcm9tcHQgdGV4dCB0byBpbnB1dCBpbnN0ZWFkIG9mIGF1dG8tc2VuZGluZ1xuICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9IHByb21wdC50ZXh0O1xuICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQocHJvbXB0LnRleHQpO1xuICAgIFxuICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBmaWVsZCBmb3IgYmV0dGVyIFVYXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlSW5wdXQpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5wdXQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25TZW5kTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tb2RlbC5pbnB1dFZhbHVlPy50cmltKCk7XG4gICAgaWYgKG1lc3NhZ2UgJiYgIXRoaXMubW9kZWwuaXNMb2FkaW5nICYmICF0aGlzLm1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyKSB7XG4gICAgICAvLyBDcmVhdGUgZ2VuZXJpYyBldmVudCBwYXlsb2FkXG4gICAgICBjb25zdCBtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCA9IHtcbiAgICAgICAgY29udGVudDogbWVzc2FnZSxcbiAgICAgICAgY29udGV4dDogdGhpcy5tb2RlbC5jb250ZXh0IC8vIFBhc3MgYW55IGNvbnRleHQgZGF0YVxuICAgICAgfTtcblxuICAgICAgLy8gQ2xlYXIgaW5wdXQgaW1tZWRpYXRlbHkgZm9yIGJldHRlciBVWFxuICAgICAgdGhpcy5tb2RlbC5pbnB1dFZhbHVlID0gJyc7XG4gICAgICBcbiAgICAgIC8vIEVtaXQgZXZlbnQgZm9yIHBhcmVudCB0byBoYW5kbGVcbiAgICAgIHRoaXMubWVzc2FnZVNlbnQuZW1pdChtZXNzYWdlRXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwuaW5wdXRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgLy8gQUkgVGFzayBTdGF0dXMgZXZlbnQgaGFuZGxlcnNcbiAgb25DYW5jZWxUYXNrKCk6IHZvaWQge1xuICAgIHRoaXMudGFza0NhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBvblJldHJ5VGFzaygpOiB2b2lkIHtcbiAgICB0aGlzLnJldHJ5Q2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoYXRDb250YWluZXIpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNoYXRDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgIGVsZW1lbnQuc2Nyb2xsVG9wID0gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZm9ybWF0dGVkIHRpbWUgc3RyaW5nIGZvciBtZXNzYWdlIHRpbWVzdGFtcFxuICAgKi9cbiAgZ2V0TWVzc2FnZVRpbWUodGltZXN0YW1wOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gdHlwZW9mIHRpbWVzdGFtcCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZSh0aW1lc3RhbXApIDogdGltZXN0YW1wO1xuICAgIFxuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgIG1vbnRoOiAnc2hvcnQnLCBcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICBob3VyMTI6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkaXNwbGF5IHRleHQgZm9yIG1lc3NhZ2Ugc3RhdHVzXG4gICAqL1xuICBnZXRTdGF0dXNUZXh0KHN0YXR1czogJ3BlbmRpbmcnIHwgJ2RlbGl2ZXJlZCcgfCAnZXJyb3InKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGF0dXNNYXAgPSB7XG4gICAgICAncGVuZGluZyc6ICdTZW5kaW5nLi4uJyxcbiAgICAgICdkZWxpdmVyZWQnOiAnRGVsaXZlcmVkJyxcbiAgICAgICdlcnJvcic6ICdGYWlsZWQgdG8gc2VuZCdcbiAgICB9O1xuICAgIFxuICAgIHJldHVybiBzdGF0dXNNYXBbc3RhdHVzXSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBQZW5kbyBJRCB3aXRoIG9wdGlvbmFsIGR5bmFtaWMgY29udGV4dFxuICAgKiBAcGFyYW0gYmFzZUlkIC0gVGhlIGJhc2UgaWRlbnRpZmllciBmb3IgdGhlIGVsZW1lbnRcbiAgICogQHJldHVybnMgQ29tcGxldGUgUGVuZG8gSUQgc3RyaW5nXG4gICAqL1xuICBnZXRQZW5kb0lkKGJhc2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0SWQgPyBgJHtiYXNlSWR9LSR7dGhpcy5jb250ZXh0SWR9YCA6IGJhc2VJZDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkV2VsY29tZU1lc3NhZ2VJZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWRkZWRXZWxjb21lTWVzc2FnZSAmJiB0aGlzLm1vZGVsLm1lc3NhZ2VzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmNvbmZpZy53ZWxjb21lTWVzc2FnZSkge1xuICAgICAgdGhpcy5tb2RlbC5tZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgaWQ6ICd3ZWxjb21lLW1lc3NhZ2UnLFxuICAgICAgICBjb250ZW50OiB0aGlzLmNvbmZpZy53ZWxjb21lTWVzc2FnZSxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICB0eXBlOiAnYWknXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaGFzQWRkZWRXZWxjb21lTWVzc2FnZSA9IHRydWU7XG4gICAgICB0aGlzLnNob3VsZFNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn0gIiwiPCEtLSBEcmF3ZXIgQ29udGFpbmVyIC0tPlxuPGRpdiBcbiAgY2xhc3M9XCJhaS1kcmF3ZXItY29udGFpbmVyXCIgXG4gIFtjbGFzcy5vcGVuXT1cIm1vZGVsLmlzT3BlblwiXG4gIFtpZF09XCJnZXRQZW5kb0lkKCdhaUFzc2lzdGFudERyYXdlcicpXCI+XG4gIFxuICA8IS0tIEVkZ2UgVG9nZ2xlIEJ1dHRvbiAoaW5zaWRlIGRyYXdlciBjb250YWluZXIpIC0tPlxuICA8YnV0dG9uIFxuICAgIGNsYXNzPVwiYWktZHJhd2VyLWVkZ2UtdG9nZ2xlXCJcbiAgICBbY2xhc3MuZHJhd2VyLW9wZW5dPVwibW9kZWwuaXNPcGVuXCJcbiAgICAoY2xpY2spPVwib25Ub2dnbGVEcmF3ZXIoKVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtb2RlbC5pc09wZW4gPyAnQ2xvc2UgVGFsaSBBc3Npc3RhbnQnIDogJ09wZW4gVGFsaSBBc3Npc3RhbnQnXCJcbiAgICBbdGl0bGVdPVwibW9kZWwuaXNPcGVuID8gJ0Nsb3NlIFRhbGkgQXNzaXN0YW50JyA6ICdUYWxpIEFzc2lzdGVkIE1lc3NhZ2luZydcIlxuICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaUFzc2lzdGFudFRvZ2dsZScpXCI+XG4gICAgPHN5bXBob255LWljb24gW2ljb25dPVwibW9kZWwuaXNPcGVuID8gJ3NpLWFycm93LW5leHQnIDogJ3NpLWFycm93LXByZXYnXCI+PC9zeW1waG9ueS1pY29uPlxuICA8L2J1dHRvbj5cbiAgXG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWhlYWRlclwiICpuZ0lmPVwibW9kZWwuaXNPcGVuXCI+XG4gICAgPHN5bXBob255LWg0IGNsYXNzPVwiYWktZHJhd2VyLXRpdGxlIHNmeC1tLTBcIj5UYWxpLCB5b3VyIFRhbGVudCBBY3F1aXNpdGlvbiBBc3Npc3RhbnQ8L3N5bXBob255LWg0PlxuICA8L2Rpdj5cblxuICA8IS0tIENoYXQgQ29udGFpbmVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiYWktZHJhd2VyLWJvZHlcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gTWVzc2FnZXMgQXJlYSAtLT5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJhaS1jaGF0LWNvbnRhaW5lclwiIFxuICAgICAgI2NoYXRDb250YWluZXI+XG4gICAgICBcbiAgICAgIDwhLS0gTWVzc2FnZSBMaXN0IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtbGlzdCBzZngtbWItMjBcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtb2RlbC5tZXNzYWdlczsgdHJhY2tCeTogdHJhY2tCeU1lc3NhZ2VJZFwiXG4gICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXdyYXBwZXJcIlxuICAgICAgICAgIFthdHRyLmRhdGEtbWVzc2FnZS10eXBlXT1cIm1lc3NhZ2UudHlwZVwiPlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gVGltZXN0YW1wIEFib3ZlIE1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS10aW1lc3RhbXAtY29udGFpbmVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLnNob3dUaW1lc3RhbXBzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLW1lc3NhZ2UtdGltZXN0YW1wXCI+XG4gICAgICAgICAgICAgIHt7IGdldE1lc3NhZ2VUaW1lKG1lc3NhZ2UudGltZXN0YW1wKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBCdWJibGUgLS0+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1idWJibGVcIlxuICAgICAgICAgICAgW2NsYXNzLnVzZXItbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICd1c2VyJ1wiXG4gICAgICAgICAgICBbY2xhc3MuYWktbWVzc2FnZV09XCJtZXNzYWdlLnR5cGUgPT09ICdhaSdcIlxuICAgICAgICAgICAgW2NsYXNzLnN5c3RlbS1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ3N5c3RlbSdcIj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBBSSBNZXNzYWdlIEljb24gLS0+XG4gICAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtaWNvblwiIFxuICAgICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ2FpJ1wiPlxuICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktY2hhdGJvdCdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFpLW1lc3NhZ2UtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWNvbnRlbnQgc2Z4LW0tMFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLmNvbnRlbnQgfCBuZXdMaW5lVG9CclwiPlxuICAgICAgICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDwhLS0gTWVzc2FnZSBTdGF0dXMgKGZvciB1c2VyIG1lc3NhZ2VzKSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXN0YXR1c1wiXG4gICAgICAgICAgICAqbmdJZj1cIm1lc3NhZ2UudHlwZSA9PT0gJ3VzZXInICYmIG1lc3NhZ2Uuc3RhdHVzXCI+XG4gICAgICAgICAgICA8c3BhbiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1zdGF0dXMtdGV4dFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtZGVsaXZlcmVkXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAnZGVsaXZlcmVkJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5zdGF0dXMtcGVuZGluZ109XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1lcnJvcl09XCJtZXNzYWdlLnN0YXR1cyA9PT0gJ2Vycm9yJ1wiPlxuICAgICAgICAgICAgICB7eyBnZXRTdGF0dXNUZXh0KG1lc3NhZ2Uuc3RhdHVzKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFJIFRhc2sgU3RhdHVzIChQcm9ncmVzcyBCYXIgYW5kIEVycm9yIEhhbmRsaW5nKSAtLT5cblxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAqbmdJZj1cIm1vZGVsLmFpVGFza1N0YXR1c1wiXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utd3JhcHBlciB0YXNrLXN0YXR1cy13cmFwcGVyXCJcbiAgICAgICAgICAgIGlkPVwidGFza1N0YXR1c01lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS10YXNrLXN0YXR1c1xuICAgICAgICAgICAgICBbdGFza1N0YXR1c01vZGVsXT1cIm1vZGVsLmFpVGFza1N0YXR1c1wiXG4gICAgICAgICAgICAgIChjYW5jZWxUYXNrKT1cIm9uQ2FuY2VsVGFzaygpXCJcbiAgICAgICAgICAgICAgKHJldHJ5VGFzayk9XCJvblJldHJ5VGFzaygpXCJcbiAgICAgICAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpVGFza1N0YXR1cycpXCI+XG4gICAgICAgICAgICA8L3N5bXBob255LXRhc2stc3RhdHVzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN1Z2dlc3RlZCBQcm9tcHRzIFNlY3Rpb24gLS0+XG4gICAgPGRpdiBcbiAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGVkLXByb21wdHMtc2VjdGlvblwiXG4gICAgICAqbmdJZj1cImNvbmZpZy5lbmFibGVTdWdnZXN0ZWRQcm9tcHRzICYmIG1vZGVsLnN1Z2dlc3RlZFByb21wdHMubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFpLXByb21wdHMtaW50cm8tcm93XCI+XG4gICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggY2xhc3M9XCJhaS1wcm9tcHRzLWludHJvIHNmeC1tYi0xNVwiPlxuICAgICAgICAgIHt7IG1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID8gJ0hlcmUgYXJlIGEgZmV3IHN1Z2dlc3RlZCBwcm9tcHRzIHRvIGdldCB5b3Ugc3RhcnRlZC4nIDogJ05lZWQgaGVscCBnZXR0aW5nIHN0YXJ0ZWQ/JyB9fVxuICAgICAgICA8L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYWktc3VnZ2VzdGlvbnMtdG9nZ2xlLWNvbXBhY3RcIlxuICAgICAgICAgIFtjbGFzcy5zdWdnZXN0aW9ucy1vcGVuXT1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuXCJcbiAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVTdWdnZXN0aW9ucygpXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuID8gJ0hpZGUgc3VnZ2VzdGlvbnMnIDogJ1Nob3cgc3VnZ2VzdGlvbnMnXCJcbiAgICAgICAgICBbdGl0bGVdPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW4gPyAnSGlkZSBzdWdnZXN0aW9ucycgOiAnU2hvdyBzdWdnZXN0aW9ucydcIlxuICAgICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaVN1Z2dlc3Rpb25zVG9nZ2xlJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJtb2RlbC5pc0xvYWRpbmcgfHwgbW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktYXJyb3ctaGlkZS1yZXZlYWwnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3M9XCJhaS1zdWdnZXN0ZWQtcHJvbXB0c1wiIFxuICAgICAgICAqbmdJZj1cIm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuXCJcbiAgICAgICAgW2NsYXNzLm9wZW5dPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW5cIlxuICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlTdWdnZXN0ZWRQcm9tcHRzJylcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nIHx8IG1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhaS1wcm9tcHRzLWxpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvbXB0IG9mIG1vZGVsLnN1Z2dlc3RlZFByb21wdHM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByb21wdENsaWNrKHByb21wdClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlQcm9tcHRCdXR0b24tJyArIGkpXCI+XG4gICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBcbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9tcHQuaWNvblwiIFxuICAgICAgICAgICAgICBbaWNvbl09XCInc2ktJyArIHByb21wdC5pY29uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhaS1wcm9tcHQtaWNvblwiPlxuICAgICAgICAgICAgPC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhaS1wcm9tcHQtdGV4dFwiPnt7IHByb21wdC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEZvb3RlciAvIElucHV0IEFyZWEgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItZm9vdGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICBcbiAgICA8IS0tIElucHV0IFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYWktaW5wdXQtcm93XCI+XG4gICAgICA8c3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kXG4gICAgICAgICNtZXNzYWdlSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5pbnB1dFZhbHVlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgIFttYXhDaGFyYWN0ZXJMaW1pdF09XCJtb2RlbC5tYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgIFtzaG93Q2hhcmFjdGVyQ291bnRdPVwiISFtb2RlbC5tYXhDaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgIChzZW5kQ2xpY2tlZCk9XCJvblNlbmRNZXNzYWdlKClcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChlbnRlclByZXNzZWQpPVwib25TZW5kTWVzc2FnZSgpXCJcbiAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpTWVzc2FnZUlucHV0JylcIj5cbiAgICAgIDwvc3ltcGhvbnktaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiAiXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIvYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBb0IsU0FBUyxFQUF5QyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVMzSSxNQUFNLE9BQU8sZ0NBQWdDO0lBNkMzQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVDakMsVUFBSyxHQUEyQjtZQUN2QyxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsRUFBRTtZQUNkLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUMzQyxDQUFDO1FBRU8sV0FBTSxHQUE0QjtZQUN6QyxjQUFjLEVBQUUsNkNBQTZDO1lBQzdELFdBQVcsRUFBRSxjQUFjO1lBQzNCLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQztRQVFGLG1EQUFtRDtRQUN6Qyxp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R0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDSCxDQUFDOzs2SEE1TFUsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsK2tCQ1Q3Qyx5d01BaUtPOzJGRHhKTSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UscUNBQXFDO3dHQUt0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBVUcsTUFBTTtzQkFBZCxLQUFLO2dCQWFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUdHLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0MsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0NoZWNrZWQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCwgQ2hhdE1lc3NhZ2UsIFN1Z2dlc3RlZFByb21wdCwgQUlTZWFyY2hBc3Npc3RhbnRDb25maWcsIE1lc3NhZ2VFdmVudCB9IGZyb20gJy4vYWktc2VhcmNoLWFzc2lzdGFudC1kcmF3ZXIubW9kZWwnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1zZWFyY2gtYXNzaXN0YW50LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FpLXNlYXJjaC1hc3Npc3RhbnQtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQUlTZWFyY2hBc3Npc3RhbnREcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBtb2RlbDogQUlTZWFyY2hBc3Npc3RhbnRNb2RlbCA9IHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIG1lc3NhZ2VzOiBbXSxcbiAgICBzdWdnZXN0ZWRQcm9tcHRzOiBbXSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlucHV0VmFsdWU6ICcnLFxuICAgIG1heENoYXJhY3RlckxpbWl0OiAxMDAwLFxuICAgIGlzU3VnZ2VzdGlvbnNPcGVuOiB0cnVlIC8vIERlZmF1bHQgdG8gb3BlblxuICB9O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogQUlTZWFyY2hBc3Npc3RhbnRDb25maWcgPSB7XG4gICAgd2VsY29tZU1lc3NhZ2U6ICdIZWxsbywgSVxcJ20gVGFsaS4gSG93IGNhbiBJIGhlbHAgeW91IHRvZGF5PycsXG4gICAgcGxhY2Vob2xkZXI6ICdNZXNzYWdlIFRhbGknLFxuICAgIG1heE1lc3NhZ2VzOiAxMDAsXG4gICAgYXV0b1Njcm9sbDogdHJ1ZSxcbiAgICBzaG93VGltZXN0YW1wczogdHJ1ZSxcbiAgICBlbmFibGVTdWdnZXN0ZWRQcm9tcHRzOiB0cnVlXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnRleHQgaWRlbnRpZmllciBmb3IgZHluYW1pYyBQZW5kbyBJRHMgKGUuZy4sICdHZW5BSUJ1aWxkZXInLCAnRW1haWxDb21wb3NlcicpXG4gICAqIFRoaXMgYWxsb3dzIHRoZSBzYW1lIGNvbXBvbmVudCB0byBoYXZlIGRpZmZlcmVudCBQZW5kbyB0cmFja2luZyBiYXNlZCBvbiB3aGVyZSBpdCdzIHVzZWRcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRleHRJZD86IHN0cmluZztcblxuICAvLyBTaW1wbGUgZXZlbnQgb3V0cHV0cyBmb2xsb3dpbmcgU3ltcGhvbnkgcGF0dGVybnNcbiAgQE91dHB1dCgpIGRyYXdlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHByb21wdFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTdWdnZXN0ZWRQcm9tcHQ+KCk7XG4gIEBPdXRwdXQoKSBtZXNzYWdlU2VudCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVzc2FnZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZXRyeUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIFxuICAvLyBBSSBUYXNrIFN0YXR1cyBldmVudHNcbiAgQE91dHB1dCgpIHRhc2tDYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIFxuICAvLyBTdWdnZXN0aW9ucyB0b2dnbGUgZXZlbnRcbiAgQE91dHB1dCgpIHN1Z2dlc3Rpb25zVG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdjaGF0Q29udGFpbmVyJykgY2hhdENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdtZXNzYWdlSW5wdXQnKSBtZXNzYWdlSW5wdXQhOiBJbnB1dFRleHRhcmVhV2l0aFNlbmRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzaG91bGRTY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICBwcml2YXRlIGhhc0FkZGVkV2VsY29tZU1lc3NhZ2UgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQWRkIHdlbGNvbWUgbWVzc2FnZSBpZiBjb25maWd1cmVkIGFuZCBubyBtZXNzYWdlcyBleGlzdFxuICAgIHRoaXMuYWRkV2VsY29tZU1lc3NhZ2VJZk5lZWRlZCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3VsZFNjcm9sbFRvQm90dG9tICYmIHRoaXMuY29uZmlnLmF1dG9TY3JvbGwpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgIHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5TWVzc2FnZUlkKGluZGV4OiBudW1iZXIsIG1lc3NhZ2U6IENoYXRNZXNzYWdlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWVzc2FnZS5pZDtcbiAgfVxuXG4gIG9uVG9nZ2xlRHJhd2VyKCk6IHZvaWQge1xuICAgIHRoaXMubW9kZWwuaXNPcGVuID0gIXRoaXMubW9kZWwuaXNPcGVuO1xuICAgIGlmICh0aGlzLm1vZGVsLmlzT3Blbikge1xuICAgICAgLy8gQWRkIHdlbGNvbWUgbWVzc2FnZSBhcyBmaXJzdCBtZXNzYWdlIGlmIG5vdCBhbHJlYWR5IGFkZGVkIGFuZCBubyBtZXNzYWdlcyBleGlzdFxuICAgICAgdGhpcy5hZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk7XG4gICAgICBcbiAgICAgIC8vIEZvY3VzIHRoZSBpbnB1dCBmaWVsZCB3aGVuIG9wZW5pbmdcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tZXNzYWdlSW5wdXQpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9LCAzMDApOyAvLyBXYWl0IGZvciBhbmltYXRpb24gdG8gY29tcGxldGVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcmF3ZXJDbG9zZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVG9nZ2xlU3VnZ2VzdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pc1N1Z2dlc3Rpb25zT3BlbiA9ICF0aGlzLm1vZGVsLmlzU3VnZ2VzdGlvbnNPcGVuO1xuICAgIHRoaXMuc3VnZ2VzdGlvbnNUb2dnbGVkLmVtaXQodGhpcy5tb2RlbC5pc1N1Z2dlc3Rpb25zT3Blbik7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25Qcm9tcHRDbGljayhwcm9tcHQ6IFN1Z2dlc3RlZFByb21wdCk6IHZvaWQge1xuICAgIHRoaXMucHJvbXB0U2VsZWN0ZWQuZW1pdChwcm9tcHQpO1xuICAgIC8vIENvcHkgcHJvbXB0IHRleHQgdG8gaW5wdXQgaW5zdGVhZCBvZiBhdXRvLXNlbmRpbmdcbiAgICB0aGlzLm1vZGVsLmlucHV0VmFsdWUgPSBwcm9tcHQudGV4dDtcbiAgICB0aGlzLmlucHV0Q2hhbmdlZC5lbWl0KHByb21wdC50ZXh0KTtcbiAgICBcbiAgICAvLyBGb2N1cyB0aGUgaW5wdXQgZmllbGQgZm9yIGJldHRlciBVWFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZUlucHV0KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZUlucHV0LmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25TZW5kTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5tb2RlbC5pbnB1dFZhbHVlPy50cmltKCk7XG4gICAgaWYgKG1lc3NhZ2UgJiYgIXRoaXMubW9kZWwuaXNMb2FkaW5nICYmICF0aGlzLm1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyKSB7XG4gICAgICAvLyBDcmVhdGUgZ2VuZXJpYyBldmVudCBwYXlsb2FkXG4gICAgICBjb25zdCBtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCA9IHtcbiAgICAgICAgY29udGVudDogbWVzc2FnZSxcbiAgICAgICAgY29udGV4dDogdGhpcy5tb2RlbC5jb250ZXh0IC8vIFBhc3MgYW55IGNvbnRleHQgZGF0YVxuICAgICAgfTtcblxuICAgICAgLy8gQ2xlYXIgaW5wdXQgaW1tZWRpYXRlbHkgZm9yIGJldHRlciBVWFxuICAgICAgdGhpcy5tb2RlbC5pbnB1dFZhbHVlID0gJyc7XG4gICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5jbGVhcigpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgLy8gRW1pdCBldmVudCBmb3IgcGFyZW50IHRvIGhhbmRsZVxuICAgICAgdGhpcy5tZXNzYWdlU2VudC5lbWl0KG1lc3NhZ2VFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbC5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAvLyBBSSBUYXNrIFN0YXR1cyBldmVudCBoYW5kbGVyc1xuICBvbkNhbmNlbFRhc2soKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ2FuY2VsbGVkLmVtaXQoKTtcbiAgfVxuXG4gIG9uUmV0cnlUYXNrKCk6IHZvaWQge1xuICAgIHRoaXMucmV0cnlDbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hhdENvbnRhaW5lcikge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY2hhdENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSBlbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBmb3JtYXR0ZWQgdGltZSBzdHJpbmcgZm9yIG1lc3NhZ2UgdGltZXN0YW1wXG4gICAqL1xuICBnZXRNZXNzYWdlVGltZSh0aW1lc3RhbXA6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGUgPSB0eXBlb2YgdGltZXN0YW1wID09PSAnc3RyaW5nJyA/IG5ldyBEYXRlKHRpbWVzdGFtcCkgOiB0aW1lc3RhbXA7XG4gICAgXG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywge1xuICAgICAgbW9udGg6ICdzaG9ydCcsIFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXIxMjogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRpc3BsYXkgdGV4dCBmb3IgbWVzc2FnZSBzdGF0dXNcbiAgICovXG4gIGdldFN0YXR1c1RleHQoc3RhdHVzOiAncGVuZGluZycgfCAnZGVsaXZlcmVkJyB8ICdlcnJvcicpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXR1c01hcCA9IHtcbiAgICAgICdwZW5kaW5nJzogJ1NlbmRpbmcuLi4nLFxuICAgICAgJ2RlbGl2ZXJlZCc6ICdEZWxpdmVyZWQnLFxuICAgICAgJ2Vycm9yJzogJ0ZhaWxlZCB0byBzZW5kJ1xuICAgIH07XG4gICAgXG4gICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdIHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIFBlbmRvIElEIHdpdGggb3B0aW9uYWwgZHluYW1pYyBjb250ZXh0XG4gICAqIEBwYXJhbSBiYXNlSWQgLSBUaGUgYmFzZSBpZGVudGlmaWVyIGZvciB0aGUgZWxlbWVudFxuICAgKiBAcmV0dXJucyBDb21wbGV0ZSBQZW5kbyBJRCBzdHJpbmdcbiAgICovXG4gIGdldFBlbmRvSWQoYmFzZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRJZCA/IGAke2Jhc2VJZH0tJHt0aGlzLmNvbnRleHRJZH1gIDogYmFzZUlkO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRXZWxjb21lTWVzc2FnZUlmTmVlZGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNBZGRlZFdlbGNvbWVNZXNzYWdlICYmIHRoaXMubW9kZWwubWVzc2FnZXMubGVuZ3RoID09PSAwICYmIHRoaXMuY29uZmlnLndlbGNvbWVNZXNzYWdlKSB7XG4gICAgICB0aGlzLm1vZGVsLm1lc3NhZ2VzLnB1c2goe1xuICAgICAgICBpZDogJ3dlbGNvbWUtbWVzc2FnZScsXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuY29uZmlnLndlbGNvbWVNZXNzYWdlLFxuICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgIHR5cGU6ICdhaSdcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYXNBZGRlZFdlbGNvbWVNZXNzYWdlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2hvdWxkU2Nyb2xsVG9Cb3R0b20gPSB0cnVlO1xuICAgIH1cbiAgfVxufSAiLCI8IS0tIERyYXdlciBDb250YWluZXIgLS0+XG48ZGl2IFxuICBjbGFzcz1cImFpLWRyYXdlci1jb250YWluZXJcIiBcbiAgW2NsYXNzLm9wZW5dPVwibW9kZWwuaXNPcGVuXCJcbiAgW2lkXT1cImdldFBlbmRvSWQoJ2FpQXNzaXN0YW50RHJhd2VyJylcIj5cbiAgXG4gIDwhLS0gRWRnZSBUb2dnbGUgQnV0dG9uIChpbnNpZGUgZHJhd2VyIGNvbnRhaW5lcikgLS0+XG4gIDxidXR0b24gXG4gICAgY2xhc3M9XCJhaS1kcmF3ZXItZWRnZS10b2dnbGVcIlxuICAgIFtjbGFzcy5kcmF3ZXItb3Blbl09XCJtb2RlbC5pc09wZW5cIlxuICAgIChjbGljayk9XCJvblRvZ2dsZURyYXdlcigpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vZGVsLmlzT3BlbiA/ICdDbG9zZSBUYWxpIEFzc2lzdGFudCcgOiAnT3BlbiBUYWxpIEFzc2lzdGFudCdcIlxuICAgIFt0aXRsZV09XCJtb2RlbC5pc09wZW4gPyAnQ2xvc2UgVGFsaSBBc3Npc3RhbnQnIDogJ1RhbGkgQXNzaXN0ZWQgTWVzc2FnaW5nJ1wiXG4gICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpQXNzaXN0YW50VG9nZ2xlJylcIj5cbiAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCJtb2RlbC5pc09wZW4gPyAnc2ktYXJyb3ctbmV4dCcgOiAnc2ktYXJyb3ctcHJldidcIj48L3N5bXBob255LWljb24+XG4gIDwvYnV0dG9uPlxuICBcbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItaGVhZGVyXCIgKm5nSWY9XCJtb2RlbC5pc09wZW5cIj5cbiAgICA8c3ltcGhvbnktaDQgY2xhc3M9XCJhaS1kcmF3ZXItdGl0bGUgc2Z4LW0tMFwiPlRhbGksIHlvdXIgVGFsZW50IEFjcXVpc2l0aW9uIEFzc2lzdGFudDwvc3ltcGhvbnktaDQ+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2hhdCBDb250YWluZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJhaS1kcmF3ZXItYm9keVwiICpuZ0lmPVwibW9kZWwuaXNPcGVuXCI+XG4gICAgXG4gICAgPCEtLSBNZXNzYWdlcyBBcmVhIC0tPlxuICAgIDxkaXYgXG4gICAgICBjbGFzcz1cImFpLWNoYXQtY29udGFpbmVyXCIgXG4gICAgICAjY2hhdENvbnRhaW5lcj5cbiAgICAgIFxuICAgICAgPCEtLSBNZXNzYWdlIExpc3QgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWktbWVzc2FnZS1saXN0IHNmeC1tYi0yMFwiPlxuICAgICAgICA8ZGl2IFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1vZGVsLm1lc3NhZ2VzOyB0cmFja0J5OiB0cmFja0J5TWVzc2FnZUlkXCJcbiAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utd3JhcHBlclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1tZXNzYWdlLXR5cGVdPVwibWVzc2FnZS50eXBlXCI+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBUaW1lc3RhbXAgQWJvdmUgTWVzc2FnZSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLXRpbWVzdGFtcC1jb250YWluZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuc2hvd1RpbWVzdGFtcHNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWktbWVzc2FnZS10aW1lc3RhbXBcIj5cbiAgICAgICAgICAgICAge3sgZ2V0TWVzc2FnZVRpbWUobWVzc2FnZS50aW1lc3RhbXApIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBNZXNzYWdlIEJ1YmJsZSAtLT5cbiAgICAgICAgICA8ZGl2IFxuICAgICAgICAgICAgY2xhc3M9XCJhaS1tZXNzYWdlLWJ1YmJsZVwiXG4gICAgICAgICAgICBbY2xhc3MudXNlci1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ3VzZXInXCJcbiAgICAgICAgICAgIFtjbGFzcy5haS1tZXNzYWdlXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ2FpJ1wiXG4gICAgICAgICAgICBbY2xhc3Muc3lzdGVtLW1lc3NhZ2VdPVwibWVzc2FnZS50eXBlID09PSAnc3lzdGVtJ1wiPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8IS0tIEFJIE1lc3NhZ2UgSWNvbiAtLT5cbiAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS1pY29uXCIgXG4gICAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZS50eXBlID09PSAnYWknXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIidzaS1jaGF0Ym90J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWktbWVzc2FnZS1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaCBcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2UtY29udGVudCBzZngtbS0wXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2UuY29udGVudCB8IG5ld0xpbmVUb0JyXCI+XG4gICAgICAgICAgICAgIDwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBNZXNzYWdlIFN0YXR1cyAoZm9yIHVzZXIgbWVzc2FnZXMpIC0tPlxuICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICBjbGFzcz1cImFpLW1lc3NhZ2Utc3RhdHVzXCJcbiAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZS50eXBlID09PSAndXNlcicgJiYgbWVzc2FnZS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxzcGFuIFxuICAgICAgICAgICAgICBjbGFzcz1cImFpLXN0YXR1cy10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1kZWxpdmVyZWRdPVwibWVzc2FnZS5zdGF0dXMgPT09ICdkZWxpdmVyZWQnXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnN0YXR1cy1wZW5kaW5nXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAncGVuZGluZydcIlxuICAgICAgICAgICAgICBbY2xhc3Muc3RhdHVzLWVycm9yXT1cIm1lc3NhZ2Uuc3RhdHVzID09PSAnZXJyb3InXCI+XG4gICAgICAgICAgICAgIHt7IGdldFN0YXR1c1RleHQobWVzc2FnZS5zdGF0dXMpIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQUkgVGFzayBTdGF0dXMgKFByb2dyZXNzIEJhciBhbmQgRXJyb3IgSGFuZGxpbmcpIC0tPlxuXG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgICpuZ0lmPVwibW9kZWwuYWlUYXNrU3RhdHVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWktbWVzc2FnZS13cmFwcGVyIHRhc2stc3RhdHVzLXdyYXBwZXJcIlxuICAgICAgICAgICAgaWQ9XCJ0YXNrU3RhdHVzTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHN5bXBob255LXRhc2stc3RhdHVzXG4gICAgICAgICAgICAgIFt0YXNrU3RhdHVzTW9kZWxdPVwibW9kZWwuYWlUYXNrU3RhdHVzXCJcbiAgICAgICAgICAgICAgKGNhbmNlbFRhc2spPVwib25DYW5jZWxUYXNrKClcIlxuICAgICAgICAgICAgICAocmV0cnlUYXNrKT1cIm9uUmV0cnlUYXNrKClcIlxuICAgICAgICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlUYXNrU3RhdHVzJylcIj5cbiAgICAgICAgICAgIDwvc3ltcGhvbnktdGFzay1zdGF0dXM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gU3VnZ2VzdGVkIFByb21wdHMgU2VjdGlvbiAtLT5cbiAgICA8ZGl2IFxuICAgICAgY2xhc3M9XCJhaS1zdWdnZXN0ZWQtcHJvbXB0cy1zZWN0aW9uXCJcbiAgICAgICpuZ0lmPVwiY29uZmlnLmVuYWJsZVN1Z2dlc3RlZFByb21wdHMgJiYgbW9kZWwuc3VnZ2VzdGVkUHJvbXB0cy5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWktcHJvbXB0cy1pbnRyby1yb3dcIj5cbiAgICAgICAgPHN5bXBob255LXBhcmFncmFwaCBjbGFzcz1cImFpLXByb21wdHMtaW50cm8gc2Z4LW1iLTE1XCI+XG4gICAgICAgICAge3sgbW9kZWwuaXNTdWdnZXN0aW9uc09wZW4gPyAnSGVyZSBhcmUgYSBmZXcgc3VnZ2VzdGVkIHByb21wdHMgdG8gZ2V0IHlvdSBzdGFydGVkLicgOiAnTmVlZCBoZWxwIGdldHRpbmcgc3RhcnRlZD8nIH19XG4gICAgICAgIDwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhaS1zdWdnZXN0aW9ucy10b2dnbGUtY29tcGFjdFwiXG4gICAgICAgICAgW2NsYXNzLnN1Z2dlc3Rpb25zLW9wZW5dPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW5cIlxuICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVN1Z2dlc3Rpb25zKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW4gPyAnSGlkZSBzdWdnZXN0aW9ucycgOiAnU2hvdyBzdWdnZXN0aW9ucydcIlxuICAgICAgICAgIFt0aXRsZV09XCJtb2RlbC5pc1N1Z2dlc3Rpb25zT3BlbiA/ICdIaWRlIHN1Z2dlc3Rpb25zJyA6ICdTaG93IHN1Z2dlc3Rpb25zJ1wiXG4gICAgICAgICAgW2lkXT1cImdldFBlbmRvSWQoJ2FpU3VnZ2VzdGlvbnNUb2dnbGUnKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGVsLmlzTG9hZGluZyB8fCBtb2RlbC5haVRhc2tTdGF0dXM/LnNob3dQcm9ncmVzc0JhclwiPlxuICAgICAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIidzaS1hcnJvdy1oaWRlLXJldmVhbCdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFxuICAgICAgICBjbGFzcz1cImFpLXN1Z2dlc3RlZC1wcm9tcHRzXCIgXG4gICAgICAgICpuZ0lmPVwibW9kZWwuaXNTdWdnZXN0aW9uc09wZW5cIlxuICAgICAgICBbY2xhc3Mub3Blbl09XCJtb2RlbC5pc1N1Z2dlc3Rpb25zT3BlblwiXG4gICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaVN1Z2dlc3RlZFByb21wdHMnKVwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJtb2RlbC5pc0xvYWRpbmcgfHwgbW9kZWwuYWlUYXNrU3RhdHVzPy5zaG93UHJvZ3Jlc3NCYXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFpLXByb21wdHMtbGlzdFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9tcHQgb2YgbW9kZWwuc3VnZ2VzdGVkUHJvbXB0czsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cImFpLXByb21wdC1idXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJvbXB0Q2xpY2socHJvbXB0KVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nIHx8IG1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyXCJcbiAgICAgICAgICAgIFtpZF09XCJnZXRQZW5kb0lkKCdhaVByb21wdEJ1dHRvbi0nICsgaSlcIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIFxuICAgICAgICAgICAgICAqbmdJZj1cInByb21wdC5pY29uXCIgXG4gICAgICAgICAgICAgIFtpY29uXT1cIidzaS0nICsgcHJvbXB0Lmljb25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImFpLXByb21wdC1pY29uXCI+XG4gICAgICAgICAgICA8L3N5bXBob255LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFpLXByb21wdC10ZXh0XCI+e3sgcHJvbXB0LnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyIC8gSW5wdXQgQXJlYSAtLT5cbiAgPGRpdiBjbGFzcz1cImFpLWRyYXdlci1mb290ZXJcIiAqbmdJZj1cIm1vZGVsLmlzT3BlblwiPlxuICAgIFxuICAgIDwhLS0gSW5wdXQgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJhaS1pbnB1dC1yb3dcIj5cbiAgICAgIDxzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmRcbiAgICAgICAgI21lc3NhZ2VJbnB1dFxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmlucHV0VmFsdWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwibW9kZWwuaXNMb2FkaW5nIHx8IG1vZGVsLmFpVGFza1N0YXR1cz8uc2hvd1Byb2dyZXNzQmFyXCJcbiAgICAgICAgW21heENoYXJhY3RlckxpbWl0XT1cIm1vZGVsLm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgICAgW3Nob3dDaGFyYWN0ZXJDb3VudF09XCIhIW1vZGVsLm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgICAgKHNlbmRDbGlja2VkKT1cIm9uU2VuZE1lc3NhZ2UoKVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGVudGVyUHJlc3NlZCk9XCJvblNlbmRNZXNzYWdlKClcIlxuICAgICAgICBbaWRdPVwiZ2V0UGVuZG9JZCgnYWlNZXNzYWdlSW5wdXQnKVwiPlxuICAgICAgPC9zeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+ICJdfQ==
|