@sinequa/assistant 3.9.11 → 3.10.2
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/chat/chat-message/chat-message.component.d.ts +2 -4
- package/chat/chat.component.d.ts +4 -3
- package/chat/chat.service.d.ts +16 -1
- package/chat/custom-elements/components/code-block.component.d.ts +11 -0
- package/chat/custom-elements/components/document-reference.component.d.ts +13 -0
- package/chat/custom-elements/components/i18n/de.json +5 -0
- package/chat/custom-elements/components/i18n/en.json +5 -0
- package/chat/custom-elements/components/i18n/fr.json +5 -0
- package/chat/custom-elements/components/image-reference.component.d.ts +14 -0
- package/chat/custom-elements/components/page-reference.component.d.ts +14 -0
- package/chat/custom-elements/components/table-tools.component.d.ts +11 -0
- package/chat/custom-elements/custom-elements.config.d.ts +2 -0
- package/chat/{services → custom-elements}/custom-elements.service.d.ts +1 -0
- package/chat/documents-upload/documents-upload.service.d.ts +2 -2
- package/chat/fetch-patcher/app-injector.d.ts +9 -0
- package/chat/fetch-patcher/fetch-patcher.d.ts +31 -0
- package/chat/fetch-patcher/global-error-handler.service.d.ts +36 -0
- package/chat/fetch-patcher/handle-unauthorized-logic.d.ts +13 -0
- package/chat/markdown-it/markdown-it.config.d.ts +4 -0
- package/chat/markdown-it/plugins/document-reference.plugin.d.ts +8 -0
- package/chat/markdown-it/plugins/image-reference.plugin.d.ts +9 -0
- package/chat/markdown-it/plugins/page-reference.plugin.d.ts +9 -0
- package/chat/markdown-it/plugins/table-tools.plugin.d.ts +2 -0
- package/chat/public-api.d.ts +21 -2
- package/chat/{chat-reference → references/chat-reference}/chat-reference.component.d.ts +1 -1
- package/chat/references/chat-reference-image/chat-reference-image.component.d.ts +20 -0
- package/chat/references/chat-reference-page/chat-reference-page.component.d.ts +20 -0
- package/chat/references/i18n/de.json +4 -4
- package/chat/references/i18n/en.json +1 -1
- package/chat/references/i18n/fr.json +1 -1
- package/chat/saved-chats/i18n/de.json +3 -1
- package/chat/saved-chats/i18n/en.json +3 -1
- package/chat/saved-chats/i18n/fr.json +3 -1
- package/chat/saved-chats/saved-chats.component.d.ts +6 -0
- package/chat/saved-chats/saved-chats.service.d.ts +4 -2
- package/chat/services/assistant-metadata.service.d.ts +5 -1
- package/chat/services/signalR.web.service.d.ts +0 -11
- package/chat/smart-renderer/smart-renderer.d.ts +2 -0
- package/chat/token-progress-bar/i18n/en.json +1 -1
- package/chat/types/message-reference.types.d.ts +3 -0
- package/chat/types.d.ts +55 -35
- package/chat/version.d.ts +1 -0
- package/esm2022/chat/chat-message/chat-message.component.mjs +15 -12
- package/esm2022/chat/chat-settings-v3/chat-settings-v3.component.mjs +7 -4
- package/esm2022/chat/chat.component.mjs +39 -26
- package/esm2022/chat/chat.service.mjs +39 -5
- package/esm2022/chat/custom-elements/components/code-block.component.mjs +97 -0
- package/esm2022/chat/custom-elements/components/document-reference.component.mjs +85 -0
- package/esm2022/chat/custom-elements/components/image-reference.component.mjs +79 -0
- package/esm2022/chat/custom-elements/components/page-reference.component.mjs +79 -0
- package/esm2022/chat/custom-elements/components/table-tools.component.mjs +111 -0
- package/esm2022/chat/custom-elements/custom-elements.config.mjs +6 -0
- package/esm2022/chat/custom-elements/custom-elements.service.mjs +35 -0
- package/esm2022/chat/debug-message/debug-message.service.mjs +3 -3
- package/esm2022/chat/documents-upload/document-list/document-list.component.mjs +3 -3
- package/esm2022/chat/documents-upload/documents-upload.service.mjs +4 -4
- package/esm2022/chat/fetch-patcher/app-injector.mjs +19 -0
- package/esm2022/chat/fetch-patcher/fetch-patcher.mjs +62 -0
- package/esm2022/chat/fetch-patcher/global-error-handler.service.mjs +92 -0
- package/esm2022/chat/fetch-patcher/handle-unauthorized-logic.mjs +19 -0
- package/esm2022/chat/markdown-it/markdown-it.config.mjs +6 -0
- package/esm2022/chat/markdown-it/plugins/code-block.plugin.mjs +14 -0
- package/esm2022/chat/markdown-it/plugins/document-reference.plugin.mjs +66 -0
- package/esm2022/chat/markdown-it/plugins/image-reference.plugin.mjs +67 -0
- package/esm2022/chat/markdown-it/plugins/link.plugin.mjs +15 -0
- package/esm2022/chat/markdown-it/plugins/page-reference.plugin.mjs +67 -0
- package/esm2022/chat/markdown-it/plugins/table-tools.plugin.mjs +12 -0
- package/esm2022/chat/public-api.mjs +23 -3
- package/esm2022/chat/references/chat-reference/chat-reference.component.mjs +72 -0
- package/esm2022/chat/references/chat-reference-image/chat-reference-image.component.mjs +42 -0
- package/esm2022/chat/references/chat-reference-page/chat-reference-page.component.mjs +42 -0
- package/esm2022/chat/saved-chats/saved-chats.component.mjs +38 -7
- package/esm2022/chat/saved-chats/saved-chats.service.mjs +25 -13
- package/esm2022/chat/services/app.service.mjs +7 -2
- package/esm2022/chat/services/assistant-metadata.service.mjs +40 -9
- package/esm2022/chat/services/assistant-ws-frames.service.mjs +7 -4
- package/esm2022/chat/services/signalR-connection.service.mjs +3 -6
- package/esm2022/chat/services/signalR.web.service.mjs +3 -13
- package/esm2022/chat/services/user-settings.service.mjs +6 -3
- package/esm2022/chat/smart-renderer/smart-renderer.mjs +19 -18
- package/esm2022/chat/types/message-reference.types.mjs +1 -1
- package/esm2022/chat/types.mjs +10 -8
- package/esm2022/chat/utils/utils.service.mjs +11 -11
- package/esm2022/chat/version.mjs +3 -0
- package/fesm2022/sinequa-assistant-chat.mjs +2344 -2048
- package/fesm2022/sinequa-assistant-chat.mjs.map +1 -1
- package/package.json +6 -6
- package/chat/chat-reference/i18n/de.json +0 -4
- package/chat/chat-reference/i18n/en.json +0 -4
- package/chat/chat-reference/i18n/fr.json +0 -4
- package/chat/directives/copy-to-clipboard.directive.d.ts +0 -8
- package/chat/markdown-it-plugins/image-reference.plugin.d.ts +0 -3
- package/chat/markdown-it-plugins/page-reference.plugin.d.ts +0 -3
- package/chat/markdown-it-plugins/reference.plugin.d.ts +0 -7
- package/chat/references/inline-image-reference.d.ts +0 -21
- package/chat/references/inline-page-reference.d.ts +0 -21
- package/chat/references/references.component.d.ts +0 -43
- package/esm2022/chat/chat-reference/chat-reference.component.mjs +0 -74
- package/esm2022/chat/directives/copy-to-clipboard.directive.mjs +0 -68
- package/esm2022/chat/markdown-it-plugins/code-block.plugin.mjs +0 -14
- package/esm2022/chat/markdown-it-plugins/image-reference.plugin.mjs +0 -58
- package/esm2022/chat/markdown-it-plugins/link.plugin.mjs +0 -15
- package/esm2022/chat/markdown-it-plugins/page-reference.plugin.mjs +0 -60
- package/esm2022/chat/markdown-it-plugins/reference.plugin.mjs +0 -68
- package/esm2022/chat/references/inline-image-reference.mjs +0 -110
- package/esm2022/chat/references/inline-page-reference.mjs +0 -110
- package/esm2022/chat/references/references.component.mjs +0 -290
- package/esm2022/chat/services/custom-elements.service.mjs +0 -43
- /package/chat/{markdown-it-plugins → markdown-it/plugins}/code-block.plugin.d.ts +0 -0
- /package/chat/{markdown-it-plugins → markdown-it/plugins}/link.plugin.d.ts +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { TooltipDirective } from "../../tooltip/tooltip.directive";
|
|
3
|
+
import { ChatReferenceImageComponent } from "../../references/chat-reference-image/chat-reference-image.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ImageReferenceComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.ref = {};
|
|
8
|
+
}
|
|
9
|
+
ngOnChanges() {
|
|
10
|
+
if (!this.attachment)
|
|
11
|
+
return;
|
|
12
|
+
try {
|
|
13
|
+
const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
|
|
14
|
+
this.ref = obj;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error("Error parsing attachment", error, this.attachment);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
onOpenPreview(attachment) {
|
|
21
|
+
// Émettre un événement personnalisé pour le web element using the service
|
|
22
|
+
dispatchEvent(new CustomEvent("onOpenPreview", {
|
|
23
|
+
detail: { reference: attachment }
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
onOpenDocument(attachment) {
|
|
27
|
+
// Émettre un événement personnalisé pour le web element using the service
|
|
28
|
+
dispatchEvent(new CustomEvent("onOpenDocument", {
|
|
29
|
+
detail: { reference: attachment }
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageReferenceComponent, isStandalone: true, selector: "image-reference", inputs: { id: "id", attachment: "attachment" }, usesOnChanges: true, ngImport: i0, template: `
|
|
34
|
+
<span
|
|
35
|
+
class="reference"
|
|
36
|
+
[sqTooltip]="{ obj: ref, id }"
|
|
37
|
+
[sqTooltipTemplate]="imageTooltipTpl"
|
|
38
|
+
[hoverableTooltip]="true"
|
|
39
|
+
>
|
|
40
|
+
Img-{{ this.id }}
|
|
41
|
+
</span>
|
|
42
|
+
<ng-template #imageTooltipTpl let-ref>
|
|
43
|
+
<ChatReferenceImage
|
|
44
|
+
style="max-width: 30vw;"
|
|
45
|
+
[id]="ref.id"
|
|
46
|
+
[ref]="ref.obj"
|
|
47
|
+
(openPreview)="onOpenPreview($event)"
|
|
48
|
+
(openDocument)="onOpenDocument($event)"
|
|
49
|
+
/>
|
|
50
|
+
</ng-template>
|
|
51
|
+
`, isInline: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }, { kind: "component", type: ChatReferenceImageComponent, selector: "ChatReferenceImage", inputs: ["id", "ref"], outputs: ["openPreview", "openDocument", "openModal"] }] }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageReferenceComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: "image-reference", imports: [TooltipDirective, ChatReferenceImageComponent], template: `
|
|
56
|
+
<span
|
|
57
|
+
class="reference"
|
|
58
|
+
[sqTooltip]="{ obj: ref, id }"
|
|
59
|
+
[sqTooltipTemplate]="imageTooltipTpl"
|
|
60
|
+
[hoverableTooltip]="true"
|
|
61
|
+
>
|
|
62
|
+
Img-{{ this.id }}
|
|
63
|
+
</span>
|
|
64
|
+
<ng-template #imageTooltipTpl let-ref>
|
|
65
|
+
<ChatReferenceImage
|
|
66
|
+
style="max-width: 30vw;"
|
|
67
|
+
[id]="ref.id"
|
|
68
|
+
[ref]="ref.obj"
|
|
69
|
+
(openPreview)="onOpenPreview($event)"
|
|
70
|
+
(openDocument)="onOpenDocument($event)"
|
|
71
|
+
/>
|
|
72
|
+
</ng-template>
|
|
73
|
+
`, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
|
|
74
|
+
}], propDecorators: { id: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], attachment: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcmVmZXJlbmNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2N1c3RvbS1lbGVtZW50cy9jb21wb25lbnRzL2ltYWdlLXJlZmVyZW5jZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0VBQXNFLENBQUM7O0FBNkJuSCxNQUFNLE9BQU8sdUJBQXVCO0lBM0JwQztRQWdDRSxRQUFHLEdBQTBCLEVBQTJCLENBQUM7S0E2QjFEO0lBM0JDLFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDakIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsVUFBaUM7UUFDN0MsMEVBQTBFO1FBQzFFLGFBQWEsQ0FDWCxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRTtTQUNsQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBaUM7UUFDOUMsMEVBQTBFO1FBQzFFLGFBQWEsQ0FDWCxJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNoQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFO1NBQ2xDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0FqQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ0pBeEJ4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULCtLQW5CUyxnQkFBZ0IscU1BQUUsMkJBQTJCOzs0RkF5QjVDLHVCQUF1QjtrQkEzQm5DLFNBQVM7K0JBQ0UsaUJBQWlCLFdBQ2xCLENBQUMsZ0JBQWdCLEVBQUUsMkJBQTJCLENBQUMsWUFDOUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCxjQUNXLElBQUk7OEJBT1AsRUFBRTtzQkFBVixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBDaGF0Q29udGV4dEF0dGFjaG1lbnQgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgTWVzc2FnZUltYWdlUmVmZXJlbmNlIH0gZnJvbSBcIi4uLy4uL3R5cGVzL21lc3NhZ2UtcmVmZXJlbmNlLnR5cGVzXCI7XG5pbXBvcnQgeyBDaGF0UmVmZXJlbmNlSW1hZ2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vcmVmZXJlbmNlcy9jaGF0LXJlZmVyZW5jZS1pbWFnZS9jaGF0LXJlZmVyZW5jZS1pbWFnZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImltYWdlLXJlZmVyZW5jZVwiLFxuICBpbXBvcnRzOiBbVG9vbHRpcERpcmVjdGl2ZSwgQ2hhdFJlZmVyZW5jZUltYWdlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJyZWZlcmVuY2VcIlxuICAgICAgW3NxVG9vbHRpcF09XCJ7IG9iajogcmVmLCBpZCB9XCJcbiAgICAgIFtzcVRvb2x0aXBUZW1wbGF0ZV09XCJpbWFnZVRvb2x0aXBUcGxcIlxuICAgICAgW2hvdmVyYWJsZVRvb2x0aXBdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgSW1nLXt7IHRoaXMuaWQgfX1cbiAgICA8L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNpbWFnZVRvb2x0aXBUcGwgbGV0LXJlZj5cbiAgICAgIDxDaGF0UmVmZXJlbmNlSW1hZ2VcbiAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDMwdnc7XCJcbiAgICAgICAgW2lkXT1cInJlZi5pZFwiXG4gICAgICAgIFtyZWZdPVwicmVmLm9ialwiXG4gICAgICAgIChvcGVuUHJldmlldyk9XCJvbk9wZW5QcmV2aWV3KCRldmVudClcIlxuICAgICAgICAob3BlbkRvY3VtZW50KT1cIm9uT3BlbkRvY3VtZW50KCRldmVudClcIlxuICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZXM6IGBcbiAgZGl2IHsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgcGFkZGluZzogOHB4O2JvcmRlci1yYWRpdXM6IDRweDsgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VSZWZlcmVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvLyBqZSBzdWlzIG9ibGlnw6kgZCd1dGlsaXNlciBsZXMgZMOpY29yYXRldXJzIEBJbnB1dCgpIGNhciBBbmd1bGFyIG5lIHN1cHBvcnRlIHBhcyBsZXMgaW5wdXRzIChzaWduYWwpIGRhbnMgbGVzIHdlYiBlbGVtZW50cyBlbiBBbmd1bGFyIHYxOFxuICBASW5wdXQoKSBpZDtcbiAgQElucHV0KCkgYXR0YWNobWVudDtcblxuICByZWY6IE1lc3NhZ2VJbWFnZVJlZmVyZW5jZSA9IHt9IGFzIE1lc3NhZ2VJbWFnZVJlZmVyZW5jZTtcblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMuYXR0YWNobWVudCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChhdG9iKHRoaXMuYXR0YWNobWVudCkpKTtcbiAgICAgIHRoaXMucmVmID0gb2JqO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgcGFyc2luZyBhdHRhY2htZW50XCIsIGVycm9yLCB0aGlzLmF0dGFjaG1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uT3BlblByZXZpZXcoYXR0YWNobWVudDogQ2hhdENvbnRleHRBdHRhY2htZW50KSB7XG4gICAgLy8gw4ltZXR0cmUgdW4gw6l2w6luZW1lbnQgcGVyc29ubmFsaXPDqSBwb3VyIGxlIHdlYiBlbGVtZW50IHVzaW5nIHRoZSBzZXJ2aWNlXG4gICAgZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcIm9uT3BlblByZXZpZXdcIiwge1xuICAgICAgICBkZXRhaWw6IHsgcmVmZXJlbmNlOiBhdHRhY2htZW50IH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uT3BlbkRvY3VtZW50KGF0dGFjaG1lbnQ6IENoYXRDb250ZXh0QXR0YWNobWVudCkge1xuICAgIC8vIMOJbWV0dHJlIHVuIMOpdsOpbmVtZW50IHBlcnNvbm5hbGlzw6kgcG91ciBsZSB3ZWIgZWxlbWVudCB1c2luZyB0aGUgc2VydmljZVxuICAgIGRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJvbk9wZW5Eb2N1bWVudFwiLCB7XG4gICAgICAgIGRldGFpbDogeyByZWZlcmVuY2U6IGF0dGFjaG1lbnQgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { TooltipDirective } from "../../tooltip/tooltip.directive";
|
|
3
|
+
import { ChatReferencePageComponent } from "../../references/chat-reference-page/chat-reference-page.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class PageReferenceComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.ref = {};
|
|
8
|
+
}
|
|
9
|
+
ngOnChanges() {
|
|
10
|
+
if (!this.attachment)
|
|
11
|
+
return;
|
|
12
|
+
try {
|
|
13
|
+
const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
|
|
14
|
+
this.ref = obj;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error("Error parsing attachment", error, this.attachment);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
onOpenPreview(attachment) {
|
|
21
|
+
// Émettre un événement personnalisé pour le web element using the service
|
|
22
|
+
dispatchEvent(new CustomEvent("onOpenPreview", {
|
|
23
|
+
detail: { reference: attachment }
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
onOpenDocument(attachment) {
|
|
27
|
+
// Émettre un événement personnalisé pour le web element using the service
|
|
28
|
+
dispatchEvent(new CustomEvent("onOpenDocument", {
|
|
29
|
+
detail: { reference: attachment }
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageReferenceComponent, isStandalone: true, selector: "page-reference", inputs: { id: "id", attachment: "attachment" }, usesOnChanges: true, ngImport: i0, template: `
|
|
34
|
+
<span
|
|
35
|
+
class="reference"
|
|
36
|
+
[sqTooltip]="{ obj: ref, id }"
|
|
37
|
+
[sqTooltipTemplate]="pageTooltipTpl"
|
|
38
|
+
[hoverableTooltip]="true"
|
|
39
|
+
>
|
|
40
|
+
Page-{{ id }}
|
|
41
|
+
</span>
|
|
42
|
+
<ng-template #pageTooltipTpl let-ref>
|
|
43
|
+
<ChatReferencePage
|
|
44
|
+
style="max-width: 30vw;"
|
|
45
|
+
[id]="ref.id"
|
|
46
|
+
[ref]="ref.obj"
|
|
47
|
+
(openPreview)="onOpenPreview($event)"
|
|
48
|
+
(openDocument)="onOpenDocument($event)"
|
|
49
|
+
/>
|
|
50
|
+
</ng-template>
|
|
51
|
+
`, isInline: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }, { kind: "component", type: ChatReferencePageComponent, selector: "ChatReferencePage", inputs: ["id", "ref"], outputs: ["openPreview", "openDocument", "openModal"] }] }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageReferenceComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: "page-reference", imports: [TooltipDirective, ChatReferencePageComponent], template: `
|
|
56
|
+
<span
|
|
57
|
+
class="reference"
|
|
58
|
+
[sqTooltip]="{ obj: ref, id }"
|
|
59
|
+
[sqTooltipTemplate]="pageTooltipTpl"
|
|
60
|
+
[hoverableTooltip]="true"
|
|
61
|
+
>
|
|
62
|
+
Page-{{ id }}
|
|
63
|
+
</span>
|
|
64
|
+
<ng-template #pageTooltipTpl let-ref>
|
|
65
|
+
<ChatReferencePage
|
|
66
|
+
style="max-width: 30vw;"
|
|
67
|
+
[id]="ref.id"
|
|
68
|
+
[ref]="ref.obj"
|
|
69
|
+
(openPreview)="onOpenPreview($event)"
|
|
70
|
+
(openDocument)="onOpenDocument($event)"
|
|
71
|
+
/>
|
|
72
|
+
</ng-template>
|
|
73
|
+
`, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
|
|
74
|
+
}], propDecorators: { id: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], attachment: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1yZWZlcmVuY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvY3VzdG9tLWVsZW1lbnRzL2NvbXBvbmVudHMvcGFnZS1yZWZlcmVuY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOztBQTZCaEgsTUFBTSxPQUFPLHNCQUFzQjtJQTNCbkM7UUFnQ0UsUUFBRyxHQUEwQixFQUEyQixDQUFDO0tBNkIxRDtJQTNCQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWlDO1FBQzdDLDBFQUEwRTtRQUMxRSxhQUFhLENBQ1gsSUFBSSxXQUFXLENBQUMsZUFBZSxFQUFFO1lBQy9CLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUU7U0FDbEMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQWlDO1FBQzlDLDBFQUEwRTtRQUMxRSxhQUFhLENBQ1gsSUFBSSxXQUFXLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRTtTQUNsQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBakNVLHNCQUFzQjttR0FBdEIsc0JBQXNCLCtJQXhCdkI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCwrS0FuQlMsZ0JBQWdCLHFNQUFFLDBCQUEwQjs7NEZBeUIzQyxzQkFBc0I7a0JBM0JsQyxTQUFTOytCQUNFLGdCQUFnQixXQUNqQixDQUFDLGdCQUFnQixFQUFFLDBCQUEwQixDQUFDLFlBQzdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQsY0FDVyxJQUFJOzhCQU9QLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgQ2hhdENvbnRleHRBdHRhY2htZW50IH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2VJbWFnZVJlZmVyZW5jZSB9IGZyb20gXCIuLi8uLi90eXBlcy9tZXNzYWdlLXJlZmVyZW5jZS50eXBlc1wiO1xuaW1wb3J0IHsgQ2hhdFJlZmVyZW5jZVBhZ2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vcmVmZXJlbmNlcy9jaGF0LXJlZmVyZW5jZS1wYWdlL2NoYXQtcmVmZXJlbmNlLXBhZ2UuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJwYWdlLXJlZmVyZW5jZVwiLFxuICBpbXBvcnRzOiBbVG9vbHRpcERpcmVjdGl2ZSwgQ2hhdFJlZmVyZW5jZVBhZ2VDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInJlZmVyZW5jZVwiXG4gICAgICBbc3FUb29sdGlwXT1cInsgb2JqOiByZWYsIGlkIH1cIlxuICAgICAgW3NxVG9vbHRpcFRlbXBsYXRlXT1cInBhZ2VUb29sdGlwVHBsXCJcbiAgICAgIFtob3ZlcmFibGVUb29sdGlwXT1cInRydWVcIlxuICAgID5cbiAgICAgIFBhZ2Ute3sgaWQgfX1cbiAgICA8L3NwYW4+XG4gICAgPG5nLXRlbXBsYXRlICNwYWdlVG9vbHRpcFRwbCBsZXQtcmVmPlxuICAgICAgPENoYXRSZWZlcmVuY2VQYWdlXG4gICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiAzMHZ3O1wiXG4gICAgICAgIFtpZF09XCJyZWYuaWRcIlxuICAgICAgICBbcmVmXT1cInJlZi5vYmpcIlxuICAgICAgICAob3BlblByZXZpZXcpPVwib25PcGVuUHJldmlldygkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5Eb2N1bWVudCk9XCJvbk9wZW5Eb2N1bWVudCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVzOiBgXG4gIGRpdiB7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDhweDtib3JkZXItcmFkaXVzOiA0cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VSZWZlcmVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvLyBqZSBzdWlzIG9ibGlnw6kgZCd1dGlsaXNlciBsZXMgZMOpY29yYXRldXJzIEBJbnB1dCgpIGNhciBBbmd1bGFyIG5lIHN1cHBvcnRlIHBhcyBsZXMgaW5wdXRzIChzaWduYWwpIGRhbnMgbGVzIHdlYiBlbGVtZW50cyBlbiBBbmd1bGFyIHYxOFxuICBASW5wdXQoKSBpZDtcbiAgQElucHV0KCkgYXR0YWNobWVudDtcblxuICByZWY6IE1lc3NhZ2VJbWFnZVJlZmVyZW5jZSA9IHt9IGFzIE1lc3NhZ2VJbWFnZVJlZmVyZW5jZTtcblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMuYXR0YWNobWVudCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChhdG9iKHRoaXMuYXR0YWNobWVudCkpKTtcbiAgICAgIHRoaXMucmVmID0gb2JqO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgcGFyc2luZyBhdHRhY2htZW50XCIsIGVycm9yLCB0aGlzLmF0dGFjaG1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uT3BlblByZXZpZXcoYXR0YWNobWVudDogQ2hhdENvbnRleHRBdHRhY2htZW50KSB7XG4gICAgLy8gw4ltZXR0cmUgdW4gw6l2w6luZW1lbnQgcGVyc29ubmFsaXPDqSBwb3VyIGxlIHdlYiBlbGVtZW50IHVzaW5nIHRoZSBzZXJ2aWNlXG4gICAgZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcIm9uT3BlblByZXZpZXdcIiwge1xuICAgICAgICBkZXRhaWw6IHsgcmVmZXJlbmNlOiBhdHRhY2htZW50IH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uT3BlbkRvY3VtZW50KGF0dGFjaG1lbnQ6IENoYXRDb250ZXh0QXR0YWNobWVudCkge1xuICAgIC8vIMOJbWV0dHJlIHVuIMOpdsOpbmVtZW50IHBlcnNvbm5hbGlzw6kgcG91ciBsZSB3ZWIgZWxlbWVudCB1c2luZyB0aGUgc2VydmljZVxuICAgIGRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJvbk9wZW5Eb2N1bWVudFwiLCB7XG4gICAgICAgIGRldGFpbDogeyByZWZlcmVuY2U6IGF0dGFjaG1lbnQgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Component, ElementRef, inject, signal } from '@angular/core';
|
|
2
|
+
import { provideTranslocoScope, TranslocoPipe } from '@jsverse/transloco';
|
|
3
|
+
import { TooltipDirective } from '../../tooltip/tooltip.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TableToolsComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.host = inject((ElementRef));
|
|
8
|
+
this.copied = signal(false);
|
|
9
|
+
}
|
|
10
|
+
get table() {
|
|
11
|
+
return this.host.nativeElement.querySelector('table');
|
|
12
|
+
}
|
|
13
|
+
copyAsCSV() {
|
|
14
|
+
const csv = this.extractCSV();
|
|
15
|
+
if (navigator.clipboard && navigator.clipboard.writeText) {
|
|
16
|
+
navigator.clipboard
|
|
17
|
+
.writeText(csv)
|
|
18
|
+
.then(() => {
|
|
19
|
+
this.copied.set(true);
|
|
20
|
+
setTimeout(() => this.copied.set(false), 2000);
|
|
21
|
+
})
|
|
22
|
+
.catch((err) => {
|
|
23
|
+
console.error("Failed to copy table: ", err);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// Fallback for older browsers
|
|
28
|
+
const textarea = document.createElement("textarea");
|
|
29
|
+
textarea.value = csv;
|
|
30
|
+
textarea.style.position = "fixed"; // Prevent scrolling to bottom of page in MS Edge.
|
|
31
|
+
textarea.style.opacity = "0";
|
|
32
|
+
document.body.appendChild(textarea);
|
|
33
|
+
textarea.focus();
|
|
34
|
+
textarea.select();
|
|
35
|
+
try {
|
|
36
|
+
document.execCommand("copy");
|
|
37
|
+
this.copied.set(true);
|
|
38
|
+
setTimeout(() => this.copied.set(false), 2000);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.error("Fallback: Oops, unable to copy table: ", err);
|
|
42
|
+
}
|
|
43
|
+
document.body.removeChild(textarea);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
downloadAsCSV() {
|
|
47
|
+
const csv = this.extractCSV();
|
|
48
|
+
// ✅ Add UTF-8 BOM to fix character encoding in Excel and Windows
|
|
49
|
+
const BOM = '\uFEFF';
|
|
50
|
+
const blob = new Blob([BOM + csv], { type: 'text/csv;charset=utf-8;' });
|
|
51
|
+
const link = document.createElement('a');
|
|
52
|
+
link.href = URL.createObjectURL(blob);
|
|
53
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
54
|
+
link.download = `AI-generated-table-${timestamp}.csv`;
|
|
55
|
+
link.click();
|
|
56
|
+
}
|
|
57
|
+
extractCSV() {
|
|
58
|
+
const table = this.table;
|
|
59
|
+
if (!table)
|
|
60
|
+
return '';
|
|
61
|
+
const rows = Array.from(table.rows).map(row => Array.from(row.cells)
|
|
62
|
+
.map(cell => `"${cell.textContent?.trim() ?? ''}"`)
|
|
63
|
+
.join(','));
|
|
64
|
+
return rows.join('\n');
|
|
65
|
+
}
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableToolsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TableToolsComponent, isStandalone: true, selector: "table-tools", providers: [provideTranslocoScope('custom-elements')], ngImport: i0, template: `
|
|
68
|
+
<div class="card mb-2">
|
|
69
|
+
<div class="card-header d-flex justify-content-end align-items-center">
|
|
70
|
+
<button class="btn btn-light btn-sm" (click)="copyAsCSV()" [sqTooltip]="copied() ? ('customElements.copied' | transloco) : ('customElements.copyAsCSV' | transloco)">
|
|
71
|
+
@if(!copied()) {
|
|
72
|
+
<svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
|
|
73
|
+
} @else {
|
|
74
|
+
<svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z" fill="currentColor"></path></svg>
|
|
75
|
+
}
|
|
76
|
+
</button>
|
|
77
|
+
<button class="btn btn-light btn-sm" (click)="downloadAsCSV()" [sqTooltip]="'customElements.downloadAsCSV' | transloco">
|
|
78
|
+
<svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z" fill="currentColor"></path></svg>
|
|
79
|
+
</button>
|
|
80
|
+
</div>
|
|
81
|
+
<ng-content></ng-content>
|
|
82
|
+
</div>
|
|
83
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableToolsComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{
|
|
88
|
+
selector: 'table-tools',
|
|
89
|
+
standalone: true,
|
|
90
|
+
template: `
|
|
91
|
+
<div class="card mb-2">
|
|
92
|
+
<div class="card-header d-flex justify-content-end align-items-center">
|
|
93
|
+
<button class="btn btn-light btn-sm" (click)="copyAsCSV()" [sqTooltip]="copied() ? ('customElements.copied' | transloco) : ('customElements.copyAsCSV' | transloco)">
|
|
94
|
+
@if(!copied()) {
|
|
95
|
+
<svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
|
|
96
|
+
} @else {
|
|
97
|
+
<svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z" fill="currentColor"></path></svg>
|
|
98
|
+
}
|
|
99
|
+
</button>
|
|
100
|
+
<button class="btn btn-light btn-sm" (click)="downloadAsCSV()" [sqTooltip]="'customElements.downloadAsCSV' | transloco">
|
|
101
|
+
<svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z" fill="currentColor"></path></svg>
|
|
102
|
+
</button>
|
|
103
|
+
</div>
|
|
104
|
+
<ng-content></ng-content>
|
|
105
|
+
</div>
|
|
106
|
+
`,
|
|
107
|
+
providers: [provideTranslocoScope('custom-elements')],
|
|
108
|
+
imports: [TooltipDirective, TranslocoPipe],
|
|
109
|
+
}]
|
|
110
|
+
}] });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdG9vbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvY3VzdG9tLWVsZW1lbnRzL2NvbXBvbmVudHMvdGFibGUtdG9vbHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQXlCbkUsTUFBTSxPQUFPLG1CQUFtQjtJQXZCaEM7UUF3Qm1CLFNBQUksR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUV4RCxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBNER4QjtJQTFEQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6RCxTQUFTLENBQUMsU0FBUztpQkFDaEIsU0FBUyxDQUFDLEdBQUcsQ0FBQztpQkFDZCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FB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QUFtQiwwREFIbkIsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLDBCQWpCM0M7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsNERBRVMsZ0JBQWdCLGdNQUFFLGFBQWE7OzRGQUU5QixtQkFBbUI7a0JBdkIvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3JELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwcm92aWRlVHJhbnNsb2NvU2NvcGUsIFRyYW5zbG9jb1BpcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhYmxlLXRvb2xzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5QXNDU1YoKVwiIFtzcVRvb2x0aXBdPVwiY29waWVkKCkgPyAoJ2N1c3RvbUVsZW1lbnRzLmNvcGllZCcgfCB0cmFuc2xvY28pIDogKCdjdXN0b21FbGVtZW50cy5jb3B5QXNDU1YnIHwgdHJhbnNsb2NvKVwiPlxuICAgICAgICAgIEBpZighY29waWVkKCkpIHtcbiAgICAgICAgICAgIDxzdmcgZGF0YS10ZXN0aWQ9XCJnZWlzdC1pY29uXCIgaGVpZ2h0PVwiMTZcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgc3R5bGU9XCJjb2xvcjogY3VycmVudGNvbG9yO1wiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjc1IDAuNUMxLjc4MzUgMC41IDEgMS4yODM1IDEgMi4yNVY5Ljc1QzEgMTAuNzE2NSAxLjc4MzUgMTEuNSAyLjc1IDExLjVIMy43NUg0LjVWMTBIMy43NUgyLjc1QzIuNjExOTMgMTAgMi41IDkuODg4MDcgMi41IDkuNzVWMi4yNUMyLjUgMi4xMTE5MyAyLjYxMTkzIDIgMi43NSAySDguMjVDOC4zODgwNyAyIDguNSAyLjExMTkzIDguNSAyLjI1VjNIMTBWMi4yNUMxMCAxLjI4MzUgOS4yMTY1IDAuNSA4LjI1IDAuNUgyLjc1Wk03Ljc1IDQuNUM2Ljc4MzUgNC41IDYgNS4yODM1IDYgNi4yNVYxMy43NUM2IDE0LjcxNjUgNi43ODM1IDE1LjUgNy43NSAxNS41SDEzLjI1QzE0LjIxNjUgMTUuNSAxNSAxNC43MTY1IDE1IDEzLjc1VjYuMjVDMTUgNS4yODM1IDE0LjIxNjUgNC41IDEzLjI1IDQuNUg3Ljc1Wk03LjUgNi4yNUM3LjUgNi4xMTE5MyA3LjYxMTkzIDYgNy43NSA2SDEzLjI1QzEzLjM4ODEgNiAxMy41IDYuMTExOTMgMTMuNSA2LjI1VjEzLjc1QzEzLjUgMTMuODg4MSAxMy4zODgxIDE0IDEzLjI1IDE0SDcuNzVDNy42MTE5MyAxNCA3LjUgMTMuODg4MSA3LjUgMTMuNzVWNi4yNVpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjwvc3ZnPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHN2ZyBkYXRhLXRlc3RpZD1cImdlaXN0LWljb25cIiBoZWlnaHQ9XCIxNlwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBzdHlsZT1cImNvbG9yOiBjdXJyZW50Y29sb3I7XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE1LjU2MDcgMy45OTk5OUwxNS4wMzAzIDQuNTMwMzJMNi4yMzc0NCAxMy4zMjMyQzUuNTU0MDMgMTQuMDA2NiA0LjQ0NTk5IDE0LjAwNjYgMy43NjI1NyAxMy4zMjMyTDQuMjkyOSAxMi43OTI5TDMuNzYyNTcgMTMuMzIzMkwwLjk2OTY3NiAxMC41MzAzTDAuNDM5MzQ2IDkuOTk5OTlMMS41MDAwMSA4LjkzOTMzTDIuMDMwMzQgOS40Njk2Nkw0LjgyMzIzIDEyLjI2MjZDNC45MjA4NiAxMi4zNjAyIDUuMDc5MTUgMTIuMzYwMiA1LjE3Njc4IDEyLjI2MjZMMTMuOTY5NyAzLjQ2OTY2TDE0LjUgMi45MzkzM0wxNS41NjA3IDMuOTk5OTlaXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcGF0aD48L3N2Zz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc21cIiAoY2xpY2spPVwiZG93bmxvYWRBc0NTVigpXCIgW3NxVG9vbHRpcF09XCInY3VzdG9tRWxlbWVudHMuZG93bmxvYWRBc0NTVicgfCB0cmFuc2xvY29cIj5cbiAgICAgICAgICA8c3ZnIGRhdGEtdGVzdGlkPVwiZ2Vpc3QtaWNvblwiIGhlaWdodD1cIjE2XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIHN0eWxlPVwiY29sb3I6IGN1cnJlbnRjb2xvcjtcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOC43NSAxVjEuNzVWOC42ODkzNEwxMC43MTk3IDYuNzE5NjdMMTEuMjUgNi4xODkzNEwxMi4zMTA3IDcuMjVMMTEuNzgwMyA3Ljc4MDMzTDguNzA3MTEgMTAuODUzNkM4LjMxNjU4IDExLjI0NDEgNy42ODM0MiAxMS4yNDQxIDcuMjkyODkgMTAuODUzNkw0LjIxOTY3IDcuNzgwMzNMMy42ODkzNCA3LjI1TDQuNzUgNi4xODkzNEw1LjI4MDMzIDYuNzE5NjdMNy4yNSA4LjY4OTM0VjEuNzVWMUg4Ljc1Wk0xMy41IDkuMjVWMTMuNUgyLjVWOS4yNVY4LjVIMVY5LjI1VjE0QzEgMTQuNTUyMyAxLjQ0NzcxIDE1IDIgMTVIMTRDMTQuNTUyMyAxNSAxNSAxNC41NTIzIDE1IDE0VjkuMjVWOC41SDEzLjVWOS4yNVpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtwcm92aWRlVHJhbnNsb2NvU2NvcGUoJ2N1c3RvbS1lbGVtZW50cycpXSxcbiAgaW1wb3J0czogW1Rvb2x0aXBEaXJlY3RpdmUsIFRyYW5zbG9jb1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVRvb2xzQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBjb3BpZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGdldCB0YWJsZSgpOiBIVE1MVGFibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RhYmxlJyk7XG4gIH1cblxuICBjb3B5QXNDU1YoKSB7XG4gICAgY29uc3QgY3N2ID0gdGhpcy5leHRyYWN0Q1NWKCk7XG4gICAgaWYgKG5hdmlnYXRvci5jbGlwYm9hcmQgJiYgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChjc3YpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNvcGllZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNvcGllZC5zZXQoZmFsc2UpLCAyMDAwKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNvcHkgdGFibGU6IFwiLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgZm9yIG9sZGVyIGJyb3dzZXJzXG4gICAgICBjb25zdCB0ZXh0YXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcbiAgICAgIHRleHRhcmVhLnZhbHVlID0gY3N2O1xuICAgICAgdGV4dGFyZWEuc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7IC8vIFByZXZlbnQgc2Nyb2xsaW5nIHRvIGJvdHRvbSBvZiBwYWdlIGluIE1TIEVkZ2UuXG4gICAgICB0ZXh0YXJlYS5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTtcbiAgICAgIHRleHRhcmVhLmZvY3VzKCk7XG4gICAgICB0ZXh0YXJlYS5zZWxlY3QoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcbiAgICAgICAgdGhpcy5jb3BpZWQuc2V0KHRydWUpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29waWVkLnNldChmYWxzZSksIDIwMDApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWxsYmFjazogT29wcywgdW5hYmxlIHRvIGNvcHkgdGFibGU6IFwiLCBlcnIpO1xuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0YXJlYSk7XG4gICAgfVxuICB9XG5cbiAgZG93bmxvYWRBc0NTVigpIHtcbiAgICBjb25zdCBjc3YgPSB0aGlzLmV4dHJhY3RDU1YoKTtcbiAgICAvLyDinIUgQWRkIFVURi04IEJPTSB0byBmaXggY2hhcmFjdGVyIGVuY29kaW5nIGluIEV4Y2VsIGFuZCBXaW5kb3dzXG4gICAgY29uc3QgQk9NID0gJ1xcdUZFRkYnO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbQk9NICsgY3N2XSwgeyB0eXBlOiAndGV4dC9jc3Y7Y2hhcnNldD11dGYtODsnIH0pO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvWzouXS9nLCAnLScpO1xuICAgIGxpbmsuZG93bmxvYWQgPSBgQUktZ2VuZXJhdGVkLXRhYmxlLSR7dGltZXN0YW1wfS5jc3ZgO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdENTVigpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICBpZiAoIXRhYmxlKSByZXR1cm4gJyc7XG4gICAgY29uc3Qgcm93cyA9IEFycmF5LmZyb20odGFibGUucm93cykubWFwKHJvdyA9PlxuICAgICAgQXJyYXkuZnJvbShyb3cuY2VsbHMpXG4gICAgICAgIC5tYXAoY2VsbCA9PiBgXCIke2NlbGwudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJ31cImApXG4gICAgICAgIC5qb2luKCcsJylcbiAgICApO1xuICAgIHJldHVybiByb3dzLmpvaW4oJ1xcbicpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const ASSISTANT_CUSTOM_ELEMENTS = new InjectionToken('ASSISTANT_CUSTOM_ELEMENTS', {
|
|
3
|
+
providedIn: 'root',
|
|
4
|
+
factory: () => ({}), // default to empty object
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVsZW1lbnRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2N1c3RvbS1lbGVtZW50cy9jdXN0b20tZWxlbWVudHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQ3pELDJCQUEyQixFQUMzQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLDBCQUEwQjtDQUNoRCxDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgQVNTSVNUQU5UX0NVU1RPTV9FTEVNRU5UUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBUeXBlPHVua25vd24+Pj4oXG4gICdBU1NJU1RBTlRfQ1VTVE9NX0VMRU1FTlRTJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiAoe30pLCAvLyBkZWZhdWx0IHRvIGVtcHR5IG9iamVjdFxuICB9XG4pO1xuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { inject, Injectable, Injector } from "@angular/core";
|
|
2
|
+
import { createCustomElement } from "@angular/elements";
|
|
3
|
+
import { ASSISTANT_CUSTOM_ELEMENTS } from "./custom-elements.config";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Service to register custom elements in the Angular application.
|
|
7
|
+
* This service is used to define custom elements that can be used in the application.
|
|
8
|
+
* It is called through APP_INITIALIZER to ensure that custom elements are registered before the application starts.
|
|
9
|
+
*/
|
|
10
|
+
export class CustomElementsService {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._injector = inject(Injector);
|
|
13
|
+
this._customElements = inject(ASSISTANT_CUSTOM_ELEMENTS);
|
|
14
|
+
}
|
|
15
|
+
setupCustomElements() {
|
|
16
|
+
Object.entries(this._customElements).forEach(([tagName, component]) => {
|
|
17
|
+
if (!customElements.get(tagName)) {
|
|
18
|
+
const element = createCustomElement(component, {
|
|
19
|
+
injector: this._injector,
|
|
20
|
+
});
|
|
21
|
+
customElements.define(tagName, element);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomElementsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomElementsService, providedIn: "root" }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomElementsService, decorators: [{
|
|
29
|
+
type: Injectable,
|
|
30
|
+
args: [{ providedIn: "root" }]
|
|
31
|
+
}] });
|
|
32
|
+
export function initializeCustomElements(customElementsService) {
|
|
33
|
+
return () => customElementsService.setupCustomElements();
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVsZW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9jdXN0b20tZWxlbWVudHMvY3VzdG9tLWVsZW1lbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXhELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUVyRTs7OztHQUlHO0FBR0gsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEIsb0JBQWUsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQVl0RTtJQVZDLG1CQUFtQjtRQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsRUFBRTtvQkFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO2lCQUN6QixDQUFDLENBQUM7Z0JBQ0gsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FiVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWlCbEMsTUFBTSxVQUFVLHdCQUF3QixDQUFDLHFCQUE0QztJQUNuRixPQUFPLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gXCJAYW5ndWxhci9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBBU1NJU1RBTlRfQ1VTVE9NX0VMRU1FTlRTIH0gZnJvbSBcIi4vY3VzdG9tLWVsZW1lbnRzLmNvbmZpZ1wiO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gcmVnaXN0ZXIgY3VzdG9tIGVsZW1lbnRzIGluIHRoZSBBbmd1bGFyIGFwcGxpY2F0aW9uLlxuICogVGhpcyBzZXJ2aWNlIGlzIHVzZWQgdG8gZGVmaW5lIGN1c3RvbSBlbGVtZW50cyB0aGF0IGNhbiBiZSB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEl0IGlzIGNhbGxlZCB0aHJvdWdoIEFQUF9JTklUSUFMSVpFUiB0byBlbnN1cmUgdGhhdCBjdXN0b20gZWxlbWVudHMgYXJlIHJlZ2lzdGVyZWQgYmVmb3JlIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMuXG4gKi9cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUVsZW1lbnRzU2VydmljZSB7XG4gIHByaXZhdGUgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tRWxlbWVudHMgPSBpbmplY3QoQVNTSVNUQU5UX0NVU1RPTV9FTEVNRU5UUyk7XG5cbiAgc2V0dXBDdXN0b21FbGVtZW50cygpIHtcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLl9jdXN0b21FbGVtZW50cykuZm9yRWFjaCgoW3RhZ05hbWUsIGNvbXBvbmVudF0pID0+IHtcbiAgICAgIGlmICghY3VzdG9tRWxlbWVudHMuZ2V0KHRhZ05hbWUpKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwge1xuICAgICAgICAgIGluamVjdG9yOiB0aGlzLl9pbmplY3RvcixcbiAgICAgICAgfSk7XG4gICAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUN1c3RvbUVsZW1lbnRzKGN1c3RvbUVsZW1lbnRzU2VydmljZTogQ3VzdG9tRWxlbWVudHNTZXJ2aWNlKSB7XG4gIHJldHVybiAoKSA9PiBjdXN0b21FbGVtZW50c1NlcnZpY2Uuc2V0dXBDdXN0b21FbGVtZW50cygpO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { get } from '@sinequa/atomic';
|
|
2
3
|
import { from, throwError } from 'rxjs';
|
|
3
4
|
import { catchError, map } from 'rxjs/operators';
|
|
4
|
-
import { get } from '@sinequa/atomic';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class DebugMessageService {
|
|
7
7
|
constructor() { }
|
|
@@ -37,7 +37,7 @@ export class DebugMessageService {
|
|
|
37
37
|
return from(get(`api/v1/plugin/${config.getRestUrl()}`, searchParams)).pipe(map(res => res?.debugMessages[0]?.content), catchError((error) => {
|
|
38
38
|
const errorMsg = 'Error occurred while calling the debugMessageList API: ' + error.error?.errorMessage;
|
|
39
39
|
console.error('DebugMessageService: ' + errorMsg);
|
|
40
|
-
|
|
40
|
+
throw error;
|
|
41
41
|
}));
|
|
42
42
|
}
|
|
43
43
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DebugMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -46,4 +46,4 @@ export class DebugMessageService {
|
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DebugMessageService, decorators: [{
|
|
47
47
|
type: Injectable
|
|
48
48
|
}], ctorParameters: () => [] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctbWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZGVidWctbWVzc2FnZS9kZWJ1Zy1tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxFQUFjLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFZakQsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixnQkFBZSxDQUFDO0lBRVQsSUFBSSxDQUFDLE1BQW1DO1FBQzdDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUN6RCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsT0FBcUI7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWdCLENBQUM7UUFFckMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25GLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHO1lBQ1gsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixNQUFNO1lBQ04sY0FBYztZQUNkLFdBQVc7U0FDWixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN6RixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBTSxpQkFBaUIsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQzFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLHlEQUF5RCxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3ZHLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDbEQsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0EvQ1UsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdAc2luZXF1YS9hdG9taWMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBEZWJ1Z01lc3NhZ2UsXG4gIExpc3RPYmplY3Rcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlYnVnTWVzc2FnZU9wZXJhdGlvbkNvbmZpZyB7XG4gIGdldFJlc3RVcmw6ICgpID0+IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlYnVnTWVzc2FnZVNlcnZpY2Uge1xuICBwcml2YXRlIG9wZXJhdGlvbkNvbmZpZzogRGVidWdNZXNzYWdlT3BlcmF0aW9uQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgaW5pdChjb25maWc6IERlYnVnTWVzc2FnZU9wZXJhdGlvbkNvbmZpZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZXJhdGlvbkNvbmZpZykge1xuICAgICAgY29uc29sZS53YXJuKCdEZWJ1Z01lc3NhZ2VTZXJ2aWNlIGFscmVhZHkgaW5pdGlhbGl6ZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3BlcmF0aW9uQ29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVJbml0aWFsaXplZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3BlcmF0aW9uQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlYnVnTWVzc2FnZVNlcnZpY2Ugbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4nKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGVidWdNZXNzYWdlKG1lc3NhZ2U6IERlYnVnTWVzc2FnZSk6IE9ic2VydmFibGU8TGlzdE9iamVjdCB8IHVuZGVmaW5lZD4ge1xuICAgIHRoaXMuZW5zdXJlSW5pdGlhbGl6ZWQoKTtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLm9wZXJhdGlvbkNvbmZpZyE7XG5cbiAgICBpZiAoIW1lc3NhZ2UgfHwgIW1lc3NhZ2UuY2hhdElkIHx8ICFtZXNzYWdlLmRlYnVnTWVzc2FnZUlkIHx8ICFtZXNzYWdlLmV4ZWN1dGlvbklkKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoXCJJbnZhbGlkIG1lc3NhZ2UgcHJvdmlkZWQgZm9yIGRlYnVnIHJldHJpZXZhbC5cIikpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY2hhdElkLCBkZWJ1Z01lc3NhZ2VJZCwgZXhlY3V0aW9uSWQgfSA9IG1lc3NhZ2U7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGFjdGlvbjogXCJkZWJ1Z01lc3NhZ2VMaXN0XCIsXG4gICAgICBjaGF0SWQsXG4gICAgICBkZWJ1Z01lc3NhZ2VJZCxcbiAgICAgIGV4ZWN1dGlvbklkXG4gICAgfTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKE9iamVjdC5lbnRyaWVzKGRhdGEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGFjY1trZXldID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikpO1xuXG4gICAgcmV0dXJuIGZyb20oZ2V0PGFueT4oYGFwaS92MS9wbHVnaW4vJHtjb25maWcuZ2V0UmVzdFVybCgpfWAsIHNlYXJjaFBhcmFtcykpLnBpcGUoXG4gICAgICBtYXAocmVzID0+IHJlcz8uZGVidWdNZXNzYWdlc1swXT8uY29udGVudCksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBlcnJvck1zZyA9ICdFcnJvciBvY2N1cnJlZCB3aGlsZSBjYWxsaW5nIHRoZSBkZWJ1Z01lc3NhZ2VMaXN0IEFQSTogJyArIGVycm9yLmVycm9yPy5lcnJvck1lc3NhZ2U7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RlYnVnTWVzc2FnZVNlcnZpY2U6ICcgKyBlcnJvck1zZyk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -132,10 +132,10 @@ export class DocumentListComponent {
|
|
|
132
132
|
;
|
|
133
133
|
}
|
|
134
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DocumentListComponent, isStandalone: true, selector: "sq-document-list", providers: [provideTranslocoScope('chat-documents-upload')], ngImport: i0, template: "<div class=\"alert alert-danger\" *ngIf=\"deletingAll\">\n <span>{{ 'chatDocumentsUpload.deleteAllDocumentsText' | transloco }}</span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"deletingAll=false\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteAllDocuments()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n</div>\n\n<div *ngFor=\"let group of (groupedUploadedDocuments$ | async)\" class=\"uploaded-docs\">\n <span class=\"uploaded-docs-date\">{{group.key}}</span>\n <div *ngFor=\"let doc of group.value\">\n <div class=\"uploaded-doc p-2\">\n <sq-format-icon [extension]=\"doc.fileExt\" class=\"me-1\"></sq-format-icon>\n <span class=\"title me-1\" [title]=\"doc.fileName\">{{doc.fileName}}</span>\n <button\n type=\"button\"\n (click)=\"deleteDocument($event, doc)\"\n [title]=\"'chatDocumentsUpload.delete' | transloco\"\n class=\"bg-transparent border-0 p-0 m-0 cursor-pointer text-inherit leading-none inline-flex items-center justify-center\"\n >\n <i class=\"uploaded-doc-actions fas fa-trash ms-1\"></i>\n </button>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"documentToDelete && documentToDelete.id === doc.id\">\n <span>\n {{ 'chatDocumentsUpload.deleteDocumentText' | transloco: { title: documentToDelete!.fileName } }}\n </span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"documentToDelete=undefined\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteDocument()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}.uploaded-docs{padding:.3rem 1rem}.uploaded-docs-date{font-size:12px;font-weight:500;color:#a9a9a9;margin-top:.5rem}.uploaded-docs .uploaded-doc{display:flex;align-items:center;cursor:pointer;margin-left:.25rem}.uploaded-docs .uploaded-doc span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.uploaded-docs .uploaded-doc .uploaded-doc-actions{display:none}.uploaded-docs .uploaded-doc .uploaded-doc-actions:hover{color:var(--ast-primary-color, #005DA7)}.uploaded-docs .uploaded-doc:hover{background-color:var(--ast-uploaded-doc-hover-background, #f2f8fe)}.uploaded-docs .uploaded-doc:hover .uploaded-doc-actions{display:block}.uploaded-docs .title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormatIconComponent, selector: "sq-format-icon", inputs: ["extension"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DocumentListComponent, isStandalone: true, selector: "sq-document-list", providers: [provideTranslocoScope('chat-documents-upload')], ngImport: i0, template: "<div class=\"alert alert-danger\" *ngIf=\"deletingAll\">\n <span>{{ 'chatDocumentsUpload.deleteAllDocumentsText' | transloco }}</span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"deletingAll=false\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteAllDocuments()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n</div>\n\n<div *ngFor=\"let group of (groupedUploadedDocuments$ | async)\" class=\"uploaded-docs\">\n <span class=\"uploaded-docs-date\">{{group.key | transloco}}</span>\n <div *ngFor=\"let doc of group.value\">\n <div class=\"uploaded-doc p-2\">\n <sq-format-icon [extension]=\"doc.fileExt\" class=\"me-1\"></sq-format-icon>\n <span class=\"title me-1\" [title]=\"doc.fileName\">{{doc.fileName}}</span>\n <button\n type=\"button\"\n (click)=\"deleteDocument($event, doc)\"\n [title]=\"'chatDocumentsUpload.delete' | transloco\"\n class=\"bg-transparent border-0 p-0 m-0 cursor-pointer text-inherit leading-none inline-flex items-center justify-center\"\n >\n <i class=\"uploaded-doc-actions fas fa-trash ms-1\"></i>\n </button>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"documentToDelete && documentToDelete.id === doc.id\">\n <span>\n {{ 'chatDocumentsUpload.deleteDocumentText' | transloco: { title: documentToDelete!.fileName } }}\n </span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"documentToDelete=undefined\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteDocument()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}.uploaded-docs{padding:.3rem 1rem}.uploaded-docs-date{font-size:12px;font-weight:500;color:#a9a9a9;margin-top:.5rem}.uploaded-docs .uploaded-doc{display:flex;align-items:center;cursor:pointer;margin-left:.25rem}.uploaded-docs .uploaded-doc span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.uploaded-docs .uploaded-doc .uploaded-doc-actions{display:none}.uploaded-docs .uploaded-doc .uploaded-doc-actions:hover{color:var(--ast-primary-color, #005DA7)}.uploaded-docs .uploaded-doc:hover{background-color:var(--ast-uploaded-doc-hover-background, #f2f8fe)}.uploaded-docs .uploaded-doc:hover .uploaded-doc-actions{display:block}.uploaded-docs .title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormatIconComponent, selector: "sq-format-icon", inputs: ["extension"] }, { kind: "pipe", type: TranslocoPipe, name: "transloco" }] }); }
|
|
136
136
|
}
|
|
137
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DocumentListComponent, decorators: [{
|
|
138
138
|
type: Component,
|
|
139
|
-
args: [{ selector: "sq-document-list", standalone: true, providers: [provideTranslocoScope('chat-documents-upload')], imports: [CommonModule, FormatIconComponent, TranslocoPipe], template: "<div class=\"alert alert-danger\" *ngIf=\"deletingAll\">\n <span>{{ 'chatDocumentsUpload.deleteAllDocumentsText' | transloco }}</span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"deletingAll=false\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteAllDocuments()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n</div>\n\n<div *ngFor=\"let group of (groupedUploadedDocuments$ | async)\" class=\"uploaded-docs\">\n <span class=\"uploaded-docs-date\">{{group.key}}</span>\n <div *ngFor=\"let doc of group.value\">\n <div class=\"uploaded-doc p-2\">\n <sq-format-icon [extension]=\"doc.fileExt\" class=\"me-1\"></sq-format-icon>\n <span class=\"title me-1\" [title]=\"doc.fileName\">{{doc.fileName}}</span>\n <button\n type=\"button\"\n (click)=\"deleteDocument($event, doc)\"\n [title]=\"'chatDocumentsUpload.delete' | transloco\"\n class=\"bg-transparent border-0 p-0 m-0 cursor-pointer text-inherit leading-none inline-flex items-center justify-center\"\n >\n <i class=\"uploaded-doc-actions fas fa-trash ms-1\"></i>\n </button>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"documentToDelete && documentToDelete.id === doc.id\">\n <span>\n {{ 'chatDocumentsUpload.deleteDocumentText' | transloco: { title: documentToDelete!.fileName } }}\n </span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"documentToDelete=undefined\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteDocument()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}.uploaded-docs{padding:.3rem 1rem}.uploaded-docs-date{font-size:12px;font-weight:500;color:#a9a9a9;margin-top:.5rem}.uploaded-docs .uploaded-doc{display:flex;align-items:center;cursor:pointer;margin-left:.25rem}.uploaded-docs .uploaded-doc span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.uploaded-docs .uploaded-doc .uploaded-doc-actions{display:none}.uploaded-docs .uploaded-doc .uploaded-doc-actions:hover{color:var(--ast-primary-color, #005DA7)}.uploaded-docs .uploaded-doc:hover{background-color:var(--ast-uploaded-doc-hover-background, #f2f8fe)}.uploaded-docs .uploaded-doc:hover .uploaded-doc-actions{display:block}.uploaded-docs .title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
139
|
+
args: [{ selector: "sq-document-list", standalone: true, providers: [provideTranslocoScope('chat-documents-upload')], imports: [CommonModule, FormatIconComponent, TranslocoPipe], template: "<div class=\"alert alert-danger\" *ngIf=\"deletingAll\">\n <span>{{ 'chatDocumentsUpload.deleteAllDocumentsText' | transloco }}</span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"deletingAll=false\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteAllDocuments()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n</div>\n\n<div *ngFor=\"let group of (groupedUploadedDocuments$ | async)\" class=\"uploaded-docs\">\n <span class=\"uploaded-docs-date\">{{group.key | transloco}}</span>\n <div *ngFor=\"let doc of group.value\">\n <div class=\"uploaded-doc p-2\">\n <sq-format-icon [extension]=\"doc.fileExt\" class=\"me-1\"></sq-format-icon>\n <span class=\"title me-1\" [title]=\"doc.fileName\">{{doc.fileName}}</span>\n <button\n type=\"button\"\n (click)=\"deleteDocument($event, doc)\"\n [title]=\"'chatDocumentsUpload.delete' | transloco\"\n class=\"bg-transparent border-0 p-0 m-0 cursor-pointer text-inherit leading-none inline-flex items-center justify-center\"\n >\n <i class=\"uploaded-doc-actions fas fa-trash ms-1\"></i>\n </button>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"documentToDelete && documentToDelete.id === doc.id\">\n <span>\n {{ 'chatDocumentsUpload.deleteDocumentText' | transloco: { title: documentToDelete!.fileName } }}\n </span>\n <div class=\"d-flex gap-2\">\n <button class=\"btn btn-light w-100\" (click)=\"documentToDelete=undefined\">{{ 'chatDocumentsUpload.cancel' | transloco }}</button>\n <button class=\"btn btn-secondary w-100\" (click)=\"performDeleteDocument()\">{{ 'chatDocumentsUpload.confirm' | transloco }}</button>\n </div>\n </div>\n </div>\n</div>\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}.uploaded-docs{padding:.3rem 1rem}.uploaded-docs-date{font-size:12px;font-weight:500;color:#a9a9a9;margin-top:.5rem}.uploaded-docs .uploaded-doc{display:flex;align-items:center;cursor:pointer;margin-left:.25rem}.uploaded-docs .uploaded-doc span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.uploaded-docs .uploaded-doc .uploaded-doc-actions{display:none}.uploaded-docs .uploaded-doc .uploaded-doc-actions:hover{color:var(--ast-primary-color, #005DA7)}.uploaded-docs .uploaded-doc:hover{background-color:var(--ast-uploaded-doc-hover-background, #f2f8fe)}.uploaded-docs .uploaded-doc:hover .uploaded-doc-actions{display:block}.uploaded-docs .title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
140
140
|
}] });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9kb2N1bWVudHMtdXBsb2FkL2RvY3VtZW50LWxpc3QvZG9jdW1lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9kb2N1bWVudHMtdXBsb2FkL2RvY3VtZW50LWxpc3QvZG9jdW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLGFBQWEsRUFDYixLQUFLLEVBQ0wsRUFBRSxFQUNGLFlBQVksRUFDWixTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNQLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FB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QUM7WUFDN0MsQ0FBQztZQUVELHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFBQSxDQUFDO0lBQ25GLENBQUM7K0dBOUpVLHFCQUFxQjttR0FBckIscUJBQXFCLCtEQUhyQixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUMsMEJDakM3RCwrekRBbUNBLDBuRUREWSxZQUFZLHFUQUFFLG1CQUFtQiw2RUFBRSxhQUFhOzs0RkFFL0MscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLGFBQ0wsQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFdBQ2xELENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIEVNUFRZLFxuICBvZixcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcFxufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgcGFyc2VJU08sXG4gIHRvRGF0ZVxufSBmcm9tIFwiZGF0ZS1mbnNcIjtcbmltcG9ydCB7IHByb3ZpZGVUcmFuc2xvY29TY29wZSwgVHJhbnNsb2NvUGlwZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IGlzQXV0aGVudGljYXRlZCB9IGZyb20gXCJAc2luZXF1YS9hdG9taWNcIjtcblxuaW1wb3J0IHsgQXNzaXN0YW50VXRpbHMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXRpbHMuc2VydmljZVwiO1xuaW1wb3J0IHsgRG9jdW1lbnRzVXBsb2FkU2VydmljZSB9IGZyb20gXCIuLi9kb2N1bWVudHMtdXBsb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvcm1hdEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtYXQtaWNvbi9mb3JtYXQtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkZWREb2N1bWVudCB9IGZyb20gXCIuLi9kb2N1bWVudHMtdXBsb2FkLm1vZGVsXCI7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3EtZG9jdW1lbnQtbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2RvY3VtZW50LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2RvY3VtZW50LWxpc3QuY29tcG9uZW50LnNjc3NcIl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVUcmFuc2xvY29TY29wZSgnY2hhdC1kb2N1bWVudHMtdXBsb2FkJyldLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtYXRJY29uQ29tcG9uZW50LCBUcmFuc2xvY29QaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ3JvdXBlZFVwbG9hZGVkRG9jdW1lbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBrZXk6IHN0cmluZzsgdmFsdWU6IFVwbG9hZGVkRG9jdW1lbnRbXX1bXT4oW10pO1xuXG4gIHB1YmxpYyBkb2N1bWVudFRvRGVsZXRlPzogVXBsb2FkZWREb2N1bWVudDtcbiAgcHVibGljIGRlbGV0aW5nQWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHB1YmxpYyBkb2N1bWVudHNVcGxvYWRTZXJ2aWNlID0gaW5qZWN0KERvY3VtZW50c1VwbG9hZFNlcnZpY2UpO1xuICBwdWJsaWMgbm90aWZpY2F0aW9uc1NlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uc1NlcnZpY2UpO1xuICBwdWJsaWMgYXBwU2VydmljZSA9IGluamVjdChBcHBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY28gPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzaXN0YW50VXRpbHMgPSBpbmplY3QoQXNzaXN0YW50VXRpbHMpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBvZihpc0F1dGhlbnRpY2F0ZWQoKSkucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKF8pID0+IHRoaXMuYXBwU2VydmljZS5pbml0KCkpLFxuICAgICAgICAgIHRhcCgoXykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZVVwbG9hZGVkRG9jdW1lbnRzTGlzdCgpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldERvY3VtZW50c0xpc3QoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsaXN0IG9mIHVwbG9hZGVkIGRvY3VtZW50cyBieSBmZXRjaGluZyB0aGUgbGF0ZXN0IGRhdGEgZnJvbSB0aGUgc2VydmljZS5cbiAgICogVGhlIGZldGNoZWQgZG9jdW1lbnRzIGFyZSBncm91cGVkIGJ5IGRhdGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgb25VcGRhdGVVcGxvYWRlZERvY3VtZW50c0xpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkZWREb2N1bWVudHMkLFxuICAgICAgICB0aGlzLnRyYW5zbG9jby5sYW5nQ2hhbmdlcyRcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgdGFwKChbdXBsb2FkZWREb2N1bWVudHNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwZWRVcGxvYWRlZERvY3VtZW50cyQubmV4dCh0aGlzLl9ncm91cFVwbG9hZGVkRG9jdW1lbnRzQnlEYXRlKHVwbG9hZGVkRG9jdW1lbnRzKSlcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBkZWxldGVEb2N1bWVudChldmVudDogRXZlbnQsIGRvYzogVXBsb2FkZWREb2N1bWVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZG9jdW1lbnRUb0RlbGV0ZSA9IGRvYztcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBkZWxldGlvbiBvZiBhbiB1cGxvYWRlZCBkb2N1bWVudC4gVGhpcyBtZXRob2QgdHJpZ2dlcnMgYSBjb25maXJtYXRpb24gbW9kYWxcbiAgICogdG8gZW5zdXJlIHRoZSB1c2VyIHdhbnRzIHRvIHByb2NlZWQgd2l0aCB0aGUgZGVsZXRpb24uIElmIGNvbmZpcm1lZCwgaXQgc2VuZHMgYSByZXF1ZXN0XG4gICAqIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnQgYW5kIHByb3ZpZGVzIGZlZWRiYWNrIHRvIHRoZSB1c2VyIHVwb24gc3VjY2VzcyBvciBmYWlsdXJlLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVsZXRlIGFjdGlvbiwgdXNlZCB0byBzdG9wIHByb3BhZ2F0aW9uLlxuICAgKiBAcGFyYW0gZG9jIC0gVGhlIGRvY3VtZW50IHRvIGJlIGRlbGV0ZWQsIHJlcHJlc2VudGVkIGFzIGFuIGluc3RhbmNlIG9mIGBVcGxvYWRlZERvY3VtZW50YC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogLSBEaXNwbGF5cyBhIGNvbmZpcm1hdGlvbiBtb2RhbCB3aXRoIGEgd2FybmluZyBtZXNzYWdlLlxuICAgKiAtIE9uIGNvbmZpcm1hdGlvbiwgZGVsZXRlcyB0aGUgZG9jdW1lbnQuXG4gICAqIC0gU2hvd3MgYSBzdWNjZXNzIG5vdGlmaWNhdGlvbiB1cG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24uXG4gICAqIC0gTG9ncyBhbmQgbm90aWZpZXMgdGhlIHVzZXIgb2YgYW55IGVycm9ycyBlbmNvdW50ZXJlZCBkdXJpbmcgdGhlIGRlbGV0aW9uIHByb2Nlc3MuXG4gICAqL1xuICBwZXJmb3JtRGVsZXRlRG9jdW1lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuZG9jdW1lbnRzVXBsb2FkU2VydmljZS5kZWxldGVEb2N1bWVudHMoW3RoaXMuZG9jdW1lbnRUb0RlbGV0ZSEuaWRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5zdWNjZXNzKHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnY2hhdERvY3VtZW50c1VwbG9hZC5kZWxldGVEb2N1bWVudFN1Y2Nlc3MnLCB7IHRpdGxlOiB0aGlzLmRvY3VtZW50VG9EZWxldGUhLmZpbGVOYW1lIH0pKTtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50VG9EZWxldGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldERvY3VtZW50c0xpc3QoKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXREb2N1bWVudHNVcGxvYWQuZGVsZXRlRG9jdW1lbnRFcnJvcicsIHsgdGl0bGU6IHRoaXMuZG9jdW1lbnRUb0RlbGV0ZSEuZmlsZU5hbWUgfSkpO1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG5cbiAgfVxuXG4gIGRlbGV0ZUFsbERvY3VtZW50cyhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZGVsZXRpbmdBbGwgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGRlbGV0aW9uIG9mIGFsbCB1cGxvYWRlZCBkb2N1bWVudHMuIFRoaXMgbWV0aG9kIHRyaWdnZXJzIGEgY29uZmlybWF0aW9uIG1vZGFsXG4gICAqIHRvIGVuc3VyZSB0aGUgdXNlciB3YW50cyB0byBwcm9jZWVkIHdpdGggdGhlIGRlbGV0aW9uLiBJZiBjb25maXJtZWQsIGl0IHNlbmRzIGEgcmVxdWVzdFxuICAgKiB0byBkZWxldGUgdGhlIHdob2xlIGxpc3Qgb2YgZG9jdW1lbnRzIGFuZCBwcm92aWRlcyBmZWVkYmFjayB0byB0aGUgdXNlciB1cG9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gKE9wdGlvbmFsKSBUaGUgZXZlbnQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVsZXRlIGFjdGlvbiwgdXNlZCB0byBzdG9wIHByb3BhZ2F0aW9uLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiAtIERpc3BsYXlzIGEgY29uZmlybWF0aW9uIG1vZGFsIHdpdGggYSB3YXJuaW5nIG1lc3NhZ2UuXG4gICAqIC0gT24gY29uZmlybWF0aW9uLCBkZWxldGVzIGFsbCBkb2N1bWVudHMuXG4gICAqIC0gU2hvd3MgYSBzdWNjZXNzIG5vdGlmaWNhdGlvbiB1cG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24uXG4gICAqIC0gTG9ncyBhbmQgbm90aWZpZXMgdGhlIHVzZXIgb2YgYW55IGVycm9ycyBlbmNvdW50ZXJlZCBkdXJpbmcgdGhlIGRlbGV0aW9uIHByb2Nlc3MuXG4gICAqL1xuICBwZXJmb3JtRGVsZXRlQWxsRG9jdW1lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UuZGVsZXRlQWxsRG9jdW1lbnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVsZXRpbmdBbGwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdjaGF0RG9jdW1lbnRzVXBsb2FkLmRlbGV0ZUFsbERvY3VtZW50c1N1Y2Nlc3MnKSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldERvY3VtZW50c0xpc3QoKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXREb2N1bWVudHNVcGxvYWQuZGVsZXRlQWxsRG9jdW1lbnRzRXJyb3InKSk7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dyb3VwVXBsb2FkZWREb2N1bWVudHNCeURhdGUoZG9jczogVXBsb2FkZWREb2N1bWVudFtdIHwgdW5kZWZpbmVkKTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IFVwbG9hZGVkRG9jdW1lbnRbXSB9W10ge1xuICAgIGlmICghZG9jcyB8fCBkb2NzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBncm91cGVkVXBsb2FkZWREb2N1bWVudHMgPSBuZXcgTWFwPHN0cmluZywgVXBsb2FkZWREb2N1bWVudFtdPigpO1xuXG4gICAgZG9jc1xuICAgICAgLnNvcnQoKGEsIGIpID0+IHBhcnNlSVNPKGIuaW5kZXhhdGlvblRpbWUpLmdldFRpbWUoKSAtIHBhcnNlSVNPKGEuaW5kZXhhdGlvblRpbWUpLmdldFRpbWUoKSlcbiAgICAgIC5mb3JFYWNoKGRvYyA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBLZXkgPSB0aGlzLmFzc2lzdGFudFV0aWxzLmdldFRpbWVLZXkodG9EYXRlKHBhcnNlSVNPKGRvYy5pbmRleGF0aW9uVGltZSkpKTsgLy8gTXVzdCBjb252ZXJ0IHRoZSBVVEMgZGF0ZSB0byBsb2NhbCBkYXRlIGJlZm9yZSBwYXNzaW5nIHRvIF9nZXRUaW1lS2V5XG5cbiAgICAgICAgICBpZiAoIWdyb3VwZWRVcGxvYWRlZERvY3VtZW50cy5oYXMoZ3JvdXBLZXkpKSB7XG4gICAgICAgICAgICBncm91cGVkVXBsb2FkZWREb2N1bWVudHMuc2V0KGdyb3VwS2V5LCBbXSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZ3JvdXBlZFVwbG9hZGVkRG9jdW1lbnRzLmdldChncm91cEtleSkhLnB1c2goZG9jKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZ3JvdXBlZFVwbG9hZGVkRG9jdW1lbnRzLCAoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlIH0pKTs7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiAqbmdJZj1cImRlbGV0aW5nQWxsXCI+XG4gIDxzcGFuPnt7ICdjaGF0RG9jdW1lbnRzVXBsb2FkLmRlbGV0ZUFsbERvY3VtZW50c1RleHQnIHwgdHJhbnNsb2NvIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgdy0xMDBcIiAoY2xpY2spPVwiZGVsZXRpbmdBbGw9ZmFsc2VcIj57eyAnY2hhdERvY3VtZW50c1VwbG9hZC5jYW5jZWwnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCIgKGNsaWNrKT1cInBlcmZvcm1EZWxldGVBbGxEb2N1bWVudHMoKVwiPnt7ICdjaGF0RG9jdW1lbnRzVXBsb2FkLmNvbmZpcm0nIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nRm9yPVwibGV0IGdyb3VwIG9mIChncm91cGVkVXBsb2FkZWREb2N1bWVudHMkIHwgYXN5bmMpXCIgY2xhc3M9XCJ1cGxvYWRlZC1kb2NzXCI+XG4gIDxzcGFuIGNsYXNzPVwidXBsb2FkZWQtZG9jcy1kYXRlXCI+e3tncm91cC5rZXl9fTwvc3Bhbj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZG9jIG9mIGdyb3VwLnZhbHVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZGVkLWRvYyBwLTJcIj5cbiAgICAgIDxzcS1mb3JtYXQtaWNvbiBbZXh0ZW5zaW9uXT1cImRvYy5maWxlRXh0XCIgY2xhc3M9XCJtZS0xXCI+PC9zcS1mb3JtYXQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUgbWUtMVwiIFt0aXRsZV09XCJkb2MuZmlsZU5hbWVcIj57e2RvYy5maWxlTmFtZX19PC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZURvY3VtZW50KCRldmVudCwgZG9jKVwiXG4gICAgICAgIFt0aXRsZV09XCInY2hhdERvY3VtZW50c1VwbG9hZC5kZWxldGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgY2xhc3M9XCJiZy10cmFuc3BhcmVudCBib3JkZXItMCBwLTAgbS0wIGN1cnNvci1wb2ludGVyIHRleHQtaW5oZXJpdCBsZWFkaW5nLW5vbmUgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJ1cGxvYWRlZC1kb2MtYWN0aW9ucyBmYXMgZmEtdHJhc2ggbXMtMVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIiAqbmdJZj1cImRvY3VtZW50VG9EZWxldGUgJiYgZG9jdW1lbnRUb0RlbGV0ZS5pZCA9PT0gZG9jLmlkXCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3sgJ2NoYXREb2N1bWVudHNVcGxvYWQuZGVsZXRlRG9jdW1lbnRUZXh0JyB8IHRyYW5zbG9jbzogeyB0aXRsZTogZG9jdW1lbnRUb0RlbGV0ZSEuZmlsZU5hbWUgfSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCB3LTEwMFwiIChjbGljayk9XCJkb2N1bWVudFRvRGVsZXRlPXVuZGVmaW5lZFwiPnt7ICdjaGF0RG9jdW1lbnRzVXBsb2FkLmNhbmNlbCcgfCB0cmFuc2xvY28gfX08L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCIgKGNsaWNrKT1cInBlcmZvcm1EZWxldGVEb2N1bWVudCgpXCI+e3sgJ2NoYXREb2N1bWVudHNVcGxvYWQuY29uZmlybScgfCB0cmFuc2xvY28gfX08L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9kb2N1bWVudHMtdXBsb2FkL2RvY3VtZW50LWxpc3QvZG9jdW1lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9kb2N1bWVudHMtdXBsb2FkL2RvY3VtZW50LWxpc3QvZG9jdW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLGFBQWEsRUFDYixLQUFLLEVBQ0wsRUFBRSxFQUNGLFlBQVksRUFDWixTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNQLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FB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QUM7WUFDN0MsQ0FBQztZQUVELHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFBQSxDQUFDO0lBQ25GLENBQUM7K0dBOUpVLHFCQUFxQjttR0FBckIscUJBQXFCLCtEQUhyQixDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUMsMEJDakM3RCwyMERBbUNBLDBuRUREWSxZQUFZLHFUQUFFLG1CQUFtQiw2RUFBRSxhQUFhOzs0RkFFL0MscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLGFBQ0wsQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFdBQ2xELENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIEVNUFRZLFxuICBvZixcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcFxufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgcGFyc2VJU08sXG4gIHRvRGF0ZVxufSBmcm9tIFwiZGF0ZS1mbnNcIjtcbmltcG9ydCB7IHByb3ZpZGVUcmFuc2xvY29TY29wZSwgVHJhbnNsb2NvUGlwZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IGlzQXV0aGVudGljYXRlZCB9IGZyb20gXCJAc2luZXF1YS9hdG9taWNcIjtcblxuaW1wb3J0IHsgQXNzaXN0YW50VXRpbHMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXRpbHMuc2VydmljZVwiO1xuaW1wb3J0IHsgRG9jdW1lbnRzVXBsb2FkU2VydmljZSB9IGZyb20gXCIuLi9kb2N1bWVudHMtdXBsb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvcm1hdEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtYXQtaWNvbi9mb3JtYXQtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkZWREb2N1bWVudCB9IGZyb20gXCIuLi9kb2N1bWVudHMtdXBsb2FkLm1vZGVsXCI7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic3EtZG9jdW1lbnQtbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2RvY3VtZW50LWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2RvY3VtZW50LWxpc3QuY29tcG9uZW50LnNjc3NcIl0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVUcmFuc2xvY29TY29wZSgnY2hhdC1kb2N1bWVudHMtdXBsb2FkJyldLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3JtYXRJY29uQ29tcG9uZW50LCBUcmFuc2xvY29QaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ3JvdXBlZFVwbG9hZGVkRG9jdW1lbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBrZXk6IHN0cmluZzsgdmFsdWU6IFVwbG9hZGVkRG9jdW1lbnRbXX1bXT4oW10pO1xuXG4gIHB1YmxpYyBkb2N1bWVudFRvRGVsZXRlPzogVXBsb2FkZWREb2N1bWVudDtcbiAgcHVibGljIGRlbGV0aW5nQWxsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHB1YmxpYyBkb2N1bWVudHNVcGxvYWRTZXJ2aWNlID0gaW5qZWN0KERvY3VtZW50c1VwbG9hZFNlcnZpY2UpO1xuICBwdWJsaWMgbm90aWZpY2F0aW9uc1NlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uc1NlcnZpY2UpO1xuICBwdWJsaWMgYXBwU2VydmljZSA9IGluamVjdChBcHBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY28gPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXNzaXN0YW50VXRpbHMgPSBpbmplY3QoQXNzaXN0YW50VXRpbHMpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBvZihpc0F1dGhlbnRpY2F0ZWQoKSkucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKF8pID0+IHRoaXMuYXBwU2VydmljZS5pbml0KCkpLFxuICAgICAgICAgIHRhcCgoXykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZVVwbG9hZGVkRG9jdW1lbnRzTGlzdCgpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldERvY3VtZW50c0xpc3QoKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsaXN0IG9mIHVwbG9hZGVkIGRvY3VtZW50cyBieSBmZXRjaGluZyB0aGUgbGF0ZXN0IGRhdGEgZnJvbSB0aGUgc2VydmljZS5cbiAgICogVGhlIGZldGNoZWQgZG9jdW1lbnRzIGFyZSBncm91cGVkIGJ5IGRhdGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgb25VcGRhdGVVcGxvYWRlZERvY3VtZW50c0xpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkZWREb2N1bWVudHMkLFxuICAgICAgICB0aGlzLnRyYW5zbG9jby5sYW5nQ2hhbmdlcyRcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgdGFwKChbdXBsb2FkZWREb2N1bWVudHNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwZWRVcGxvYWRlZERvY3VtZW50cyQubmV4dCh0aGlzLl9ncm91cFVwbG9hZGVkRG9jdW1lbnRzQnlEYXRlKHVwbG9hZGVkRG9jdW1lbnRzKSlcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBkZWxldGVEb2N1bWVudChldmVudDogRXZlbnQsIGRvYzogVXBsb2FkZWREb2N1bWVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZG9jdW1lbnRUb0RlbGV0ZSA9IGRvYztcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBkZWxldGlvbiBvZiBhbiB1cGxvYWRlZCBkb2N1bWVudC4gVGhpcyBtZXRob2QgdHJpZ2dlcnMgYSBjb25maXJtYXRpb24gbW9kYWxcbiAgICogdG8gZW5zdXJlIHRoZSB1c2VyIHdhbnRzIHRvIHByb2NlZWQgd2l0aCB0aGUgZGVsZXRpb24uIElmIGNvbmZpcm1lZCwgaXQgc2VuZHMgYSByZXF1ZXN0XG4gICAqIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnQgYW5kIHByb3ZpZGVzIGZlZWRiYWNrIHRvIHRoZSB1c2VyIHVwb24gc3VjY2VzcyBvciBmYWlsdXJlLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVsZXRlIGFjdGlvbiwgdXNlZCB0byBzdG9wIHByb3BhZ2F0aW9uLlxuICAgKiBAcGFyYW0gZG9jIC0gVGhlIGRvY3VtZW50IHRvIGJlIGRlbGV0ZWQsIHJlcHJlc2VudGVkIGFzIGFuIGluc3RhbmNlIG9mIGBVcGxvYWRlZERvY3VtZW50YC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogLSBEaXNwbGF5cyBhIGNvbmZpcm1hdGlvbiBtb2RhbCB3aXRoIGEgd2FybmluZyBtZXNzYWdlLlxuICAgKiAtIE9uIGNvbmZpcm1hdGlvbiwgZGVsZXRlcyB0aGUgZG9jdW1lbnQuXG4gICAqIC0gU2hvd3MgYSBzdWNjZXNzIG5vdGlmaWNhdGlvbiB1cG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24uXG4gICAqIC0gTG9ncyBhbmQgbm90aWZpZXMgdGhlIHVzZXIgb2YgYW55IGVycm9ycyBlbmNvdW50ZXJlZCBkdXJpbmcgdGhlIGRlbGV0aW9uIHByb2Nlc3MuXG4gICAqL1xuICBwZXJmb3JtRGVsZXRlRG9jdW1lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuZG9jdW1lbnRzVXBsb2FkU2VydmljZS5kZWxldGVEb2N1bWVudHMoW3RoaXMuZG9jdW1lbnRUb0RlbGV0ZSEuaWRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5zdWNjZXNzKHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnY2hhdERvY3VtZW50c1VwbG9hZC5kZWxldGVEb2N1bWVudFN1Y2Nlc3MnLCB7IHRpdGxlOiB0aGlzLmRvY3VtZW50VG9EZWxldGUhLmZpbGVOYW1lIH0pKTtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50VG9EZWxldGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldERvY3VtZW50c0xpc3QoKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXREb2N1bWVudHNVcGxvYWQuZGVsZXRlRG9jdW1lbnRFcnJvcicsIHsgdGl0bGU6IHRoaXMuZG9jdW1lbnRUb0RlbGV0ZSEuZmlsZU5hbWUgfSkpO1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKVxuICAgICk7XG5cbiAgfVxuXG4gIGRlbGV0ZUFsbERvY3VtZW50cyhldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZGVsZXRpbmdBbGwgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGRlbGV0aW9uIG9mIGFsbCB1cGxvYWRlZCBkb2N1bWVudHMuIFRoaXMgbWV0aG9kIHRyaWdnZXJzIGEgY29uZmlybWF0aW9uIG1vZGFsXG4gICAqIHRvIGVuc3VyZSB0aGUgdXNlciB3YW50cyB0byBwcm9jZWVkIHdpdGggdGhlIGRlbGV0aW9uLiBJZiBjb25maXJtZWQsIGl0IHNlbmRzIGEgcmVxdWVzdFxuICAgKiB0byBkZWxldGUgdGhlIHdob2xlIGxpc3Qgb2YgZG9jdW1lbnRzIGFuZCBwcm92aWRlcyBmZWVkYmFjayB0byB0aGUgdXNlciB1cG9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IC0gKE9wdGlvbmFsKSBUaGUgZXZlbnQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVsZXRlIGFjdGlvbiwgdXNlZCB0byBzdG9wIHByb3BhZ2F0aW9uLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiAtIERpc3BsYXlzIGEgY29uZmlybWF0aW9uIG1vZGFsIHdpdGggYSB3YXJuaW5nIG1lc3NhZ2UuXG4gICAqIC0gT24gY29uZmlybWF0aW9uLCBkZWxldGVzIGFsbCBkb2N1bWVudHMuXG4gICAqIC0gU2hvd3MgYSBzdWNjZXNzIG5vdGlmaWNhdGlvbiB1cG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24uXG4gICAqIC0gTG9ncyBhbmQgbm90aWZpZXMgdGhlIHVzZXIgb2YgYW55IGVycm9ycyBlbmNvdW50ZXJlZCBkdXJpbmcgdGhlIGRlbGV0aW9uIHByb2Nlc3MuXG4gICAqL1xuICBwZXJmb3JtRGVsZXRlQWxsRG9jdW1lbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UuZGVsZXRlQWxsRG9jdW1lbnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVsZXRpbmdBbGwgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdjaGF0RG9jdW1lbnRzVXBsb2FkLmRlbGV0ZUFsbERvY3VtZW50c1N1Y2Nlc3MnKSk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldERvY3VtZW50c0xpc3QoKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5lcnJvcih0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXREb2N1bWVudHNVcGxvYWQuZGVsZXRlQWxsRG9jdW1lbnRzRXJyb3InKSk7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dyb3VwVXBsb2FkZWREb2N1bWVudHNCeURhdGUoZG9jczogVXBsb2FkZWREb2N1bWVudFtdIHwgdW5kZWZpbmVkKTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IFVwbG9hZGVkRG9jdW1lbnRbXSB9W10ge1xuICAgIGlmICghZG9jcyB8fCBkb2NzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBncm91cGVkVXBsb2FkZWREb2N1bWVudHMgPSBuZXcgTWFwPHN0cmluZywgVXBsb2FkZWREb2N1bWVudFtdPigpO1xuXG4gICAgZG9jc1xuICAgICAgLnNvcnQoKGEsIGIpID0+IHBhcnNlSVNPKGIuaW5kZXhhdGlvblRpbWUpLmdldFRpbWUoKSAtIHBhcnNlSVNPKGEuaW5kZXhhdGlvblRpbWUpLmdldFRpbWUoKSlcbiAgICAgIC5mb3JFYWNoKGRvYyA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JvdXBLZXkgPSB0aGlzLmFzc2lzdGFudFV0aWxzLmdldFRpbWVLZXkodG9EYXRlKHBhcnNlSVNPKGRvYy5pbmRleGF0aW9uVGltZSkpKTsgLy8gTXVzdCBjb252ZXJ0IHRoZSBVVEMgZGF0ZSB0byBsb2NhbCBkYXRlIGJlZm9yZSBwYXNzaW5nIHRvIF9nZXRUaW1lS2V5XG5cbiAgICAgICAgICBpZiAoIWdyb3VwZWRVcGxvYWRlZERvY3VtZW50cy5oYXMoZ3JvdXBLZXkpKSB7XG4gICAgICAgICAgICBncm91cGVkVXBsb2FkZWREb2N1bWVudHMuc2V0KGdyb3VwS2V5LCBbXSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZ3JvdXBlZFVwbG9hZGVkRG9jdW1lbnRzLmdldChncm91cEtleSkhLnB1c2goZG9jKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZ3JvdXBlZFVwbG9hZGVkRG9jdW1lbnRzLCAoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlIH0pKTs7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiAqbmdJZj1cImRlbGV0aW5nQWxsXCI+XG4gIDxzcGFuPnt7ICdjaGF0RG9jdW1lbnRzVXBsb2FkLmRlbGV0ZUFsbERvY3VtZW50c1RleHQnIHwgdHJhbnNsb2NvIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQgdy0xMDBcIiAoY2xpY2spPVwiZGVsZXRpbmdBbGw9ZmFsc2VcIj57eyAnY2hhdERvY3VtZW50c1VwbG9hZC5jYW5jZWwnIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCIgKGNsaWNrKT1cInBlcmZvcm1EZWxldGVBbGxEb2N1bWVudHMoKVwiPnt7ICdjaGF0RG9jdW1lbnRzVXBsb2FkLmNvbmZpcm0nIHwgdHJhbnNsb2NvIH19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nRm9yPVwibGV0IGdyb3VwIG9mIChncm91cGVkVXBsb2FkZWREb2N1bWVudHMkIHwgYXN5bmMpXCIgY2xhc3M9XCJ1cGxvYWRlZC1kb2NzXCI+XG4gIDxzcGFuIGNsYXNzPVwidXBsb2FkZWQtZG9jcy1kYXRlXCI+e3tncm91cC5rZXkgfCB0cmFuc2xvY299fTwvc3Bhbj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZG9jIG9mIGdyb3VwLnZhbHVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZGVkLWRvYyBwLTJcIj5cbiAgICAgIDxzcS1mb3JtYXQtaWNvbiBbZXh0ZW5zaW9uXT1cImRvYy5maWxlRXh0XCIgY2xhc3M9XCJtZS0xXCI+PC9zcS1mb3JtYXQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUgbWUtMVwiIFt0aXRsZV09XCJkb2MuZmlsZU5hbWVcIj57e2RvYy5maWxlTmFtZX19PC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImRlbGV0ZURvY3VtZW50KCRldmVudCwgZG9jKVwiXG4gICAgICAgIFt0aXRsZV09XCInY2hhdERvY3VtZW50c1VwbG9hZC5kZWxldGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgY2xhc3M9XCJiZy10cmFuc3BhcmVudCBib3JkZXItMCBwLTAgbS0wIGN1cnNvci1wb2ludGVyIHRleHQtaW5oZXJpdCBsZWFkaW5nLW5vbmUgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJ1cGxvYWRlZC1kb2MtYWN0aW9ucyBmYXMgZmEtdHJhc2ggbXMtMVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIiAqbmdJZj1cImRvY3VtZW50VG9EZWxldGUgJiYgZG9jdW1lbnRUb0RlbGV0ZS5pZCA9PT0gZG9jLmlkXCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3sgJ2NoYXREb2N1bWVudHNVcGxvYWQuZGVsZXRlRG9jdW1lbnRUZXh0JyB8IHRyYW5zbG9jbzogeyB0aXRsZTogZG9jdW1lbnRUb0RlbGV0ZSEuZmlsZU5hbWUgfSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCB3LTEwMFwiIChjbGljayk9XCJkb2N1bWVudFRvRGVsZXRlPXVuZGVmaW5lZFwiPnt7ICdjaGF0RG9jdW1lbnRzVXBsb2FkLmNhbmNlbCcgfCB0cmFuc2xvY28gfX08L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCIgKGNsaWNrKT1cInBlcmZvcm1EZWxldGVEb2N1bWVudCgpXCI+e3sgJ2NoYXREb2N1bWVudHNVcGxvYWQuY29uZmlybScgfCB0cmFuc2xvY28gfX08L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|