@provoly/hypervisor 1.4.56 → 1.4.57
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/esm2022/src/lib/event/detail/event-detail.component.mjs +3 -3
- package/esm2022/src/lib/general/comments/comments.component.mjs +10 -4
- package/esm2022/src/lib/general/procedure-actions/action-parameters/action-parameter.component.mjs +5 -2
- package/esm2022/src/lib/general/procedure-actions/action-parameters/base-parameter-action.component.mjs +4 -2
- package/esm2022/src/lib/general/procedure-actions/action-parameters/service/service-action-display.component.mjs +3 -3
- package/esm2022/src/lib/general/procedure-actions/procedure-actions.component.mjs +16 -4
- package/fesm2022/provoly-hypervisor.mjs +35 -12
- package/fesm2022/provoly-hypervisor.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/general/comments/comments.component.d.ts +2 -1
- package/src/lib/general/procedure-actions/action-parameters/action-parameter.component.d.ts +2 -1
- package/src/lib/general/procedure-actions/action-parameters/base-parameter-action.component.d.ts +2 -1
- package/src/lib/general/procedure-actions/procedure-actions.component.d.ts +3 -1
- package/styles/components/_o-hvy-comments.scss +21 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { v4 } from 'uuid';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../store/comments/comments.service";
|
|
@@ -47,6 +47,9 @@ export class HvyCommentsComponent {
|
|
|
47
47
|
}
|
|
48
48
|
editComment(comment) {
|
|
49
49
|
comment.edit = true;
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
this.message.nativeElement.focus();
|
|
52
|
+
}, 200);
|
|
50
53
|
}
|
|
51
54
|
saveComment(comment) {
|
|
52
55
|
this.commented.next({ id: comment.id, message: comment.message });
|
|
@@ -82,11 +85,11 @@ export class HvyCommentsComponent {
|
|
|
82
85
|
this.opened = !this.opened;
|
|
83
86
|
}
|
|
84
87
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyCommentsComponent, deps: [{ token: i1.HypCommentsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: HvyCommentsComponent, selector: "hvy-comments", inputs: { readonly: "readonly", me: "me", type: "type", objectId: "objectId", displayEmpty: "displayEmpty", commentCount: "commentCount", lastComment: "lastComment", trigger: "trigger" }, outputs: { commented: "commented" }, ngImport: i0, template: "<div class=\"o-hvy-comments\">\n @if (displayEmpty || commentCount > 0 || opened) {\n <div class=\"o-hvy-comments__header\">\n @if (type === 'actions') {\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened\"\n class=\"-hand\"\n (click)=\"toggle()\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n }\n <h3>\n {{\n (type === 'events' ? '@hvy.event.log.event.comments.name' : '@hvy.event.log.event.comments.actions')\n | i18n: { nb: commentCount }\n }}\n </h3>\n </div>\n\n @if (!readonly && (displayEmpty || opened)) {\n <textarea\n class=\"a-form-field\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n [(ngModel)]=\"newComment\"\n maxlength=\"255\"\n ></textarea>\n <div class=\"o-hvy-comments__button\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"newComment.length === 0\" (click)=\"addComment()\">\n {{ '@hvy.action.comment' | i18n }}\n </button>\n </div>\n }\n\n @if (displayEmpty || opened) {\n @for (comment of comments; track comment.id) {\n @if ($first || more) {\n <div class=\"o-hvy-comments__previous\">\n <span class=\"o-hvy-comments__previous__title\">{{\n ($first && commentCount > 1 ? '@hvy.event.comment.lastDetail' : '@hvy.event.comment.detail')\n | i18n\n : {\n day: comment.day,\n hour: comment.hour,\n creator: comment.creatorName ?? '-'\n }\n }}</span>\n <div class=\"o-hvy-comments__previous__message\">\n <textarea\n class=\"a-form-field\"\n [(ngModel)]=\"comment.message\"\n [readonly]=\"!comment.edit\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n maxlength=\"255\"\n ></textarea>\n @if (!readonly && (!me || comment.creator === me)) {\n <button (click)=\"editComment(comment)\" [disabled]=\"comment.edit\">\n <pry-icon iconSvg=\"edit\" [height]=\"18\" [width]=\"18\"></pry-icon>\n </button>\n }\n </div>\n @if (comment.edit) {\n <div class=\"o-hvy-comments__previous__actions\">\n <button\n class=\"a-btn a-btn--primary\"\n [disabled]=\"comment.message.length === 0\"\n (click)=\"saveComment(comment)\"\n >\n {{ '@hvy.action.update' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"cancel(comment)\">\n {{ '@hvy.action.cancel' | i18n }}\n </button>\n </div>\n }\n </div>\n }\n }\n @if (commentCount > 1) {\n <div class=\"o-hvy-comments__more\">\n <button (click)=\"toggleMore()\">\n {{ (more ? '@hvy.event.comment.less' : '@hvy.event.comment.more') | i18n }}\n </button>\n </div>\n }\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: HvyCommentsComponent, selector: "hvy-comments", inputs: { readonly: "readonly", me: "me", type: "type", objectId: "objectId", displayEmpty: "displayEmpty", commentCount: "commentCount", lastComment: "lastComment", trigger: "trigger" }, outputs: { commented: "commented" }, viewQueries: [{ propertyName: "message", first: true, predicate: ["message"], descendants: true }], ngImport: i0, template: "<div class=\"o-hvy-comments\">\n @if (displayEmpty || commentCount > 0 || opened) {\n <div class=\"o-hvy-comments__header\">\n @if (type === 'actions') {\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened\"\n class=\"-hand\"\n (click)=\"toggle()\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n }\n <h3>\n {{\n (type === 'events' ? '@hvy.event.log.event.comments.name' : '@hvy.event.log.event.comments.actions')\n | i18n: { nb: commentCount }\n }}\n </h3>\n </div>\n\n @if (!readonly && (displayEmpty || opened)) {\n <textarea\n class=\"a-form-field\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n [(ngModel)]=\"newComment\"\n maxlength=\"255\"\n ></textarea>\n <div class=\"o-hvy-comments__button\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"newComment.length === 0\" (click)=\"addComment()\">\n {{ '@hvy.action.comment' | i18n }}\n </button>\n </div>\n }\n\n @if (displayEmpty || opened) {\n @for (comment of comments; track comment.id) {\n @if ($first || more) {\n <div class=\"o-hvy-comments__previous\">\n <span class=\"o-hvy-comments__previous__title\">{{\n ($first && commentCount > 1 ? '@hvy.event.comment.lastDetail' : '@hvy.event.comment.detail')\n | i18n\n : {\n day: comment.day,\n hour: comment.hour,\n creator: comment.creatorName ?? '-'\n }\n }}</span>\n <div class=\"o-hvy-comments__previous__message\">\n <textarea\n class=\"a-form-field\"\n [(ngModel)]=\"comment.message\"\n [readonly]=\"!comment.edit\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n maxlength=\"255\"\n #message\n ></textarea>\n @if (!readonly && (!me || comment.creator === me)) {\n <button (click)=\"editComment(comment)\" [disabled]=\"comment.edit\">\n <pry-icon iconSvg=\"edit\" [height]=\"18\" [width]=\"18\"></pry-icon>\n </button>\n }\n </div>\n @if (comment.edit) {\n <div class=\"o-hvy-comments__previous__actions\">\n <button\n class=\"a-btn a-btn--primary\"\n [disabled]=\"comment.message.length === 0\"\n (click)=\"saveComment(comment)\"\n >\n {{ '@hvy.action.update' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"cancel(comment)\">\n {{ '@hvy.action.cancel' | i18n }}\n </button>\n </div>\n }\n </div>\n }\n }\n @if (commentCount > 1) {\n <div class=\"o-hvy-comments__more\">\n <button (click)=\"toggleMore()\">\n {{ (more ? '@hvy.event.comment.less' : '@hvy.event.comment.more') | i18n }}\n </button>\n </div>\n }\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
86
89
|
}
|
|
87
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyCommentsComponent, decorators: [{
|
|
88
91
|
type: Component,
|
|
89
|
-
args: [{ selector: 'hvy-comments', template: "<div class=\"o-hvy-comments\">\n @if (displayEmpty || commentCount > 0 || opened) {\n <div class=\"o-hvy-comments__header\">\n @if (type === 'actions') {\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened\"\n class=\"-hand\"\n (click)=\"toggle()\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n }\n <h3>\n {{\n (type === 'events' ? '@hvy.event.log.event.comments.name' : '@hvy.event.log.event.comments.actions')\n | i18n: { nb: commentCount }\n }}\n </h3>\n </div>\n\n @if (!readonly && (displayEmpty || opened)) {\n <textarea\n class=\"a-form-field\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n [(ngModel)]=\"newComment\"\n maxlength=\"255\"\n ></textarea>\n <div class=\"o-hvy-comments__button\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"newComment.length === 0\" (click)=\"addComment()\">\n {{ '@hvy.action.comment' | i18n }}\n </button>\n </div>\n }\n\n @if (displayEmpty || opened) {\n @for (comment of comments; track comment.id) {\n @if ($first || more) {\n <div class=\"o-hvy-comments__previous\">\n <span class=\"o-hvy-comments__previous__title\">{{\n ($first && commentCount > 1 ? '@hvy.event.comment.lastDetail' : '@hvy.event.comment.detail')\n | i18n\n : {\n day: comment.day,\n hour: comment.hour,\n creator: comment.creatorName ?? '-'\n }\n }}</span>\n <div class=\"o-hvy-comments__previous__message\">\n <textarea\n class=\"a-form-field\"\n [(ngModel)]=\"comment.message\"\n [readonly]=\"!comment.edit\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n maxlength=\"255\"\n ></textarea>\n @if (!readonly && (!me || comment.creator === me)) {\n <button (click)=\"editComment(comment)\" [disabled]=\"comment.edit\">\n <pry-icon iconSvg=\"edit\" [height]=\"18\" [width]=\"18\"></pry-icon>\n </button>\n }\n </div>\n @if (comment.edit) {\n <div class=\"o-hvy-comments__previous__actions\">\n <button\n class=\"a-btn a-btn--primary\"\n [disabled]=\"comment.message.length === 0\"\n (click)=\"saveComment(comment)\"\n >\n {{ '@hvy.action.update' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"cancel(comment)\">\n {{ '@hvy.action.cancel' | i18n }}\n </button>\n </div>\n }\n </div>\n }\n }\n @if (commentCount > 1) {\n <div class=\"o-hvy-comments__more\">\n <button (click)=\"toggleMore()\">\n {{ (more ? '@hvy.event.comment.less' : '@hvy.event.comment.more') | i18n }}\n </button>\n </div>\n }\n }\n }\n</div>\n" }]
|
|
92
|
+
args: [{ selector: 'hvy-comments', template: "<div class=\"o-hvy-comments\">\n @if (displayEmpty || commentCount > 0 || opened) {\n <div class=\"o-hvy-comments__header\">\n @if (type === 'actions') {\n <pry-icon\n iconSvg=\"arrow_down_rounded\"\n [class.-rotated]=\"opened\"\n class=\"-hand\"\n (click)=\"toggle()\"\n [width]=\"10\"\n [height]=\"10\"\n ></pry-icon>\n }\n <h3>\n {{\n (type === 'events' ? '@hvy.event.log.event.comments.name' : '@hvy.event.log.event.comments.actions')\n | i18n: { nb: commentCount }\n }}\n </h3>\n </div>\n\n @if (!readonly && (displayEmpty || opened)) {\n <textarea\n class=\"a-form-field\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n [(ngModel)]=\"newComment\"\n maxlength=\"255\"\n ></textarea>\n <div class=\"o-hvy-comments__button\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"newComment.length === 0\" (click)=\"addComment()\">\n {{ '@hvy.action.comment' | i18n }}\n </button>\n </div>\n }\n\n @if (displayEmpty || opened) {\n @for (comment of comments; track comment.id) {\n @if ($first || more) {\n <div class=\"o-hvy-comments__previous\">\n <span class=\"o-hvy-comments__previous__title\">{{\n ($first && commentCount > 1 ? '@hvy.event.comment.lastDetail' : '@hvy.event.comment.detail')\n | i18n\n : {\n day: comment.day,\n hour: comment.hour,\n creator: comment.creatorName ?? '-'\n }\n }}</span>\n <div class=\"o-hvy-comments__previous__message\">\n <textarea\n class=\"a-form-field\"\n [(ngModel)]=\"comment.message\"\n [readonly]=\"!comment.edit\"\n [placeholder]=\"('@hvy.event.log.event.comments.placeholder' | i18n) + '...'\"\n maxlength=\"255\"\n #message\n ></textarea>\n @if (!readonly && (!me || comment.creator === me)) {\n <button (click)=\"editComment(comment)\" [disabled]=\"comment.edit\">\n <pry-icon iconSvg=\"edit\" [height]=\"18\" [width]=\"18\"></pry-icon>\n </button>\n }\n </div>\n @if (comment.edit) {\n <div class=\"o-hvy-comments__previous__actions\">\n <button\n class=\"a-btn a-btn--primary\"\n [disabled]=\"comment.message.length === 0\"\n (click)=\"saveComment(comment)\"\n >\n {{ '@hvy.action.update' | i18n }}\n </button>\n <button class=\"a-btn a-btn--secondary\" (click)=\"cancel(comment)\">\n {{ '@hvy.action.cancel' | i18n }}\n </button>\n </div>\n }\n </div>\n }\n }\n @if (commentCount > 1) {\n <div class=\"o-hvy-comments__more\">\n <button (click)=\"toggleMore()\">\n {{ (more ? '@hvy.event.comment.less' : '@hvy.event.comment.more') | i18n }}\n </button>\n </div>\n }\n }\n }\n</div>\n" }]
|
|
90
93
|
}], ctorParameters: () => [{ type: i1.HypCommentsService }], propDecorators: { readonly: [{
|
|
91
94
|
type: Input
|
|
92
95
|
}], commented: [{
|
|
@@ -101,9 +104,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
101
104
|
type: Input
|
|
102
105
|
}], commentCount: [{
|
|
103
106
|
type: Input
|
|
107
|
+
}], message: [{
|
|
108
|
+
type: ViewChild,
|
|
109
|
+
args: ['message']
|
|
104
110
|
}], lastComment: [{
|
|
105
111
|
type: Input
|
|
106
112
|
}], trigger: [{
|
|
107
113
|
type: Input
|
|
108
114
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFlMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWMvQixJQUFhLFdBQVcsQ0FBQyxPQUErQjtRQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTztZQUMxQixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBRTtnQkFDQyxHQUFHLE9BQU87Z0JBQ1YsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO2dCQUNoRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDO3FCQUN6QyxrQkFBa0IsRUFBRTtxQkFDcEIsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0YsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsZUFBZSxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQ1QsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMs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QUFrQixFQUFFO3lCQUNwQixTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM3RixJQUFJLEVBQUUsS0FBSztvQkFDWCxlQUFlLEVBQUUsT0FBTyxDQUFDLE9BQU87aUJBQ2pDLENBQXdCLENBQzVCLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7OEdBMUZVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHFSQ2pCakMsNHZHQXlGQTs7MkZEeEVhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxjQUFjO3VGQUlmLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBY08sT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh5cENvbW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9jb21tZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIeXBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9jb21tZW50cy9jb21tZW50cy5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgSHlwQXVnbWVudGVkQ29tbWVudCA9IEh5cENvbW1lbnQgJiB7XG4gIGRheTogc3RyaW5nO1xuICBob3VyOiBzdHJpbmc7XG4gIGVkaXQ6IGJvb2xlYW47XG4gIHByZXZpb3VzTWVzc2FnZTogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWNvbW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlDb21tZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBuZXdDb21tZW50ID0gJyc7XG4gIEBPdXRwdXQoKSBjb21tZW50ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaWQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0+KCk7XG4gIG1vcmUgPSBmYWxzZTtcbiAgQElucHV0KCkgbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHR5cGU6ICdhY3Rpb25zJyB8ICdldmVudHMnID0gJ2V2ZW50cyc7XG4gIEBJbnB1dCgpIG9iamVjdElkPzogc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBkaXNwbGF5RW1wdHkgPSB0cnVlO1xuICBASW5wdXQoKSBjb21tZW50Q291bnQgPSAwO1xuICBvcGVuZWQgPSBmYWxzZTtcbiAgc3ViVHJpZ2dlcj86IFN1YnNjcmlwdGlvbjtcbiAgYWRkaXRpb25uYWxDb21tZW50czogSHlwQXVnbWVudGVkQ29tbWVudFtdID0gW107XG4gIF9sYXN0Q29tbWVudDogSHlwQXVnbWVudGVkQ29tbWVudCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2V0IGxhc3RDb21tZW50KGNvbW1lbnQ6IEh5cENvbW1lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9sYXN0Q29tbWVudCA9ICFjb21tZW50XG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiAoe1xuICAgICAgICAgIC4uLmNvbW1lbnQsXG4gICAgICAgICAgZGF5OiBuZXcgRGF0ZShjb21tZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlKS50b0xvY2FsZURhdGVTdHJpbmcoKSxcbiAgICAgICAgICBob3VyOiBuZXcgRGF0ZShjb21tZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlKVxuICAgICAgICAgICAgLnRvTG9jYWxlVGltZVN0cmluZygpXG4gICAgICAgICAgICAuc3Vic3RyaW5nKDAsIG5ldyBEYXRlKGNvbW1lbnQubGFzdE1vZGlmaWNhdGlvbkRhdGUpLnRvTG9jYWxlVGltZVN0cmluZygpLmxhc3RJbmRleE9mKCc6JykpLFxuICAgICAgICAgIGVkaXQ6IGZhbHNlLFxuICAgICAgICAgIHByZXZpb3VzTWVzc2FnZTogY29tbWVudC5tZXNzYWdlXG4gICAgICAgIH0gYXMgSHlwQXVnbWVudGVkQ29tbWVudCk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgdHJpZ2dlcih0cmlnZ2VyJDogU3ViamVjdDxib29sZWFuPikge1xuICAgIHRoaXMuc3ViVHJpZ2dlcj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YlRyaWdnZXIgPSB0cmlnZ2VyJC5zdWJzY3JpYmUoKG9wZW5lZCkgPT4gKHRoaXMub3BlbmVkID0gb3BlbmVkID8/ICF0aGlzLm9wZW5lZCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21tZW50c1NlcnZpY2U6IEh5cENvbW1lbnRzU2VydmljZSkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YlRyaWdnZXI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY29tbWVudHMoKTogSHlwQXVnbWVudGVkQ29tbWVudFtdIHtcbiAgICByZXR1cm4gW3RoaXMuX2xhc3RDb21tZW50LCAuLi50aGlzLmFkZGl0aW9ubmFsQ29tbWVudHNdLmZpbHRlcigoY29tKSA9PiAhIWNvbSkgYXMgSHlwQXVnbWVudGVkQ29tbWVudFtdO1xuICB9XG5cbiAgYWRkQ29tbWVudCgpIHtcbiAgICB0aGlzLmNvbW1lbnRlZC5uZXh0KHsgaWQ6IHY0KCksIG1lc3NhZ2U6IHRoaXMubmV3Q29tbWVudCB9KTtcbiAgICB0aGlzLm5ld0NvbW1lbnQgPSAnJztcbiAgICB0aGlzLm1vcmUgPSBmYWxzZTtcbiAgfVxuXG4gIGVkaXRDb21tZW50KGNvbW1lbnQ6IEh5cEF1Z21lbnRlZENvbW1lbnQpIHtcbiAgICBjb21tZW50LmVkaXQgPSB0cnVlO1xuICB9XG5cbiAgc2F2ZUNvbW1lbnQoY29tbWVudDogSHlwQXVnbWVudGVkQ29tbWVudCkge1xuICAgIHRoaXMuY29tbWVudGVkLm5leHQoeyBpZDogY29tbWVudC5pZCwgbWVzc2FnZTogY29tbWVudC5tZXNzYWdlIH0pO1xuICAgIGNvbW1lbnQuZWRpdCA9IGZhbHNlO1xuICAgIHRoaXMubW9yZSA9IGZhbHNlO1xuICB9XG5cbiAgY2FuY2VsKGNvbW1lbnQ6IEh5cEF1Z21lbnRlZENvbW1lbnQpIHtcbiAgICBjb21tZW50Lm1lc3NhZ2UgPSBjb21tZW50LnByZXZpb3VzTWVzc2FnZTtcbiAgICBjb21tZW50LmVkaXQgPSBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZU1vcmUoKSB7XG4gICAgaWYgKCF0aGlzLm1vcmUpIHtcbiAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldCh0aGlzLm9iamVjdElkISwgdGhpcy50eXBlKS5zdWJzY3JpYmUoKGNvbW1lbnRzKSA9PiB7XG4gICAgICAgIHRoaXMuYWRkaXRpb25uYWxDb21tZW50cyA9IGNvbW1lbnRzXG4gICAgICAgICAgLmZpbHRlcigoY29tbWVudCkgPT4gY29tbWVudC5pZCAhPT0gdGhpcy5fbGFzdENvbW1lbnQ/LmlkKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAoY29tbWVudDogSHlwQ29tbWVudCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAuLi5jb21tZW50LFxuICAgICAgICAgICAgICAgIGRheTogbmV3IERhdGUoY29tbWVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgaG91cjogbmV3IERhdGUoY29tbWVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSlcbiAgICAgICAgICAgICAgICAgIC50b0xvY2FsZVRpbWVTdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgLnN1YnN0cmluZygwLCBuZXcgRGF0ZShjb21tZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlKS50b0xvY2FsZVRpbWVTdHJpbmcoKS5sYXN0SW5kZXhPZignOicpKSxcbiAgICAgICAgICAgICAgICBlZGl0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c01lc3NhZ2U6IGNvbW1lbnQubWVzc2FnZVxuICAgICAgICAgICAgICB9KSBhcyBIeXBBdWdtZW50ZWRDb21tZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5tb3JlID0gIXRoaXMubW9yZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vcmUgPSAhdGhpcy5tb3JlO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm9wZW5lZCA9ICF0aGlzLm9wZW5lZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8taHZ5LWNvbW1lbnRzXCI+XG4gIEBpZiAoZGlzcGxheUVtcHR5IHx8IGNvbW1lbnRDb3VudCA+IDAgfHwgb3BlbmVkKSB7XG4gICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNvbW1lbnRzX19oZWFkZXJcIj5cbiAgICAgIEBpZiAodHlwZSA9PT0gJ2FjdGlvbnMnKSB7XG4gICAgICAgIDxwcnktaWNvblxuICAgICAgICAgIGljb25Tdmc9XCJhcnJvd19kb3duX3JvdW5kZWRcIlxuICAgICAgICAgIFtjbGFzcy4tcm90YXRlZF09XCJvcGVuZWRcIlxuICAgICAgICAgIGNsYXNzPVwiLWhhbmRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICAgICAgW3dpZHRoXT1cIjEwXCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjEwXCJcbiAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICB9XG4gICAgICA8aDM+XG4gICAgICAgIHt7XG4gICAgICAgICAgKHR5cGUgPT09ICdldmVudHMnID8gJ0BodnkuZXZlbnQubG9nLmV2ZW50LmNvbW1lbnRzLm5hbWUnIDogJ0BodnkuZXZlbnQubG9nLmV2ZW50LmNvbW1lbnRzLmFjdGlvbnMnKVxuICAgICAgICAgICAgfCBpMThuOiB7IG5iOiBjb21tZW50Q291bnQgfVxuICAgICAgICB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoIXJlYWRvbmx5ICYmIChkaXNwbGF5RW1wdHkgfHwgb3BlbmVkKSkge1xuICAgICAgPHRleHRhcmVhXG4gICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignQGh2eS5ldmVudC5sb2cuZXZlbnQuY29tbWVudHMucGxhY2Vob2xkZXInIHwgaTE4bikgKyAnLi4uJ1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwibmV3Q29tbWVudFwiXG4gICAgICAgIG1heGxlbmd0aD1cIjI1NVwiXG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jb21tZW50c19fYnV0dG9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJuZXdDb21tZW50Lmxlbmd0aCA9PT0gMFwiIChjbGljayk9XCJhZGRDb21tZW50KClcIj5cbiAgICAgICAgICB7eyAnQGh2eS5hY3Rpb24uY29tbWVudCcgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChkaXNwbGF5RW1wdHkgfHwgb3BlbmVkKSB7XG4gICAgICBAZm9yIChjb21tZW50IG9mIGNvbW1lbnRzOyB0cmFjayBjb21tZW50LmlkKSB7XG4gICAgICAgIEBpZiAoJGZpcnN0IHx8IG1vcmUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktY29tbWVudHNfX3ByZXZpb3VzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm8taHZ5LWNvbW1lbnRzX19wcmV2aW91c19fdGl0bGVcIj57e1xuICAgICAgICAgICAgICAoJGZpcnN0ICYmIGNvbW1lbnRDb3VudCA+IDEgPyAnQGh2eS5ldmVudC5jb21tZW50Lmxhc3REZXRhaWwnIDogJ0BodnkuZXZlbnQuY29tbWVudC5kZXRhaWwnKVxuICAgICAgICAgICAgICAgIHwgaTE4blxuICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgZGF5OiBjb21tZW50LmRheSxcbiAgICAgICAgICAgICAgICAgICAgICBob3VyOiBjb21tZW50LmhvdXIsXG4gICAgICAgICAgICAgICAgICAgICAgY3JlYXRvcjogY29tbWVudC5jcmVhdG9yTmFtZSA/PyAnLSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktY29tbWVudHNfX3ByZXZpb3VzX19tZXNzYWdlXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbW1lbnQubWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiFjb21tZW50LmVkaXRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIoJ0BodnkuZXZlbnQubG9nLmV2ZW50LmNvbW1lbnRzLnBsYWNlaG9sZGVyJyB8IGkxOG4pICsgJy4uLidcIlxuICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NVwiXG4gICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgICBAaWYgKCFyZWFkb25seSAmJiAoIW1lIHx8IGNvbW1lbnQuY3JlYXRvciA9PT0gbWUpKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZWRpdENvbW1lbnQoY29tbWVudClcIiBbZGlzYWJsZWRdPVwiY29tbWVudC5lZGl0XCI+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImVkaXRcIiBbaGVpZ2h0XT1cIjE4XCIgW3dpZHRoXT1cIjE4XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKGNvbW1lbnQuZWRpdCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktY29tbWVudHNfX3ByZXZpb3VzX19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29tbWVudC5tZXNzYWdlLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZUNvbW1lbnQoY29tbWVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7ICdAaHZ5LmFjdGlvbi51cGRhdGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbChjb21tZW50KVwiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BodnkuYWN0aW9uLmNhbmNlbCcgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKGNvbW1lbnRDb3VudCA+IDEpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNvbW1lbnRzX19tb3JlXCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlTW9yZSgpXCI+XG4gICAgICAgICAgICB7eyAobW9yZSA/ICdAaHZ5LmV2ZW50LmNvbW1lbnQubGVzcycgOiAnQGh2eS5ldmVudC5jb21tZW50Lm1vcmUnKSB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBZTFCLE1BQU0sT0FBTyxvQkFBb0I7SUFlL0IsSUFBYSxXQUFXLENBQUMsT0FBK0I7UUFDdEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU87WUFDMUIsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUU7Z0JBQ0MsR0FBRyxPQUFPO2dCQUNWLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDaEUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztxQkFDekMsa0JBQWtCLEVBQUU7cUJBQ3BCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdGLElBQUksRUFBRSxLQUFLO2dCQUNYLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTzthQUNULENBQUM7SUFDaEMsQ0FBQztJQUVELElBQWEs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b21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh5cENvbW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9jb21tZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIeXBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9jb21tZW50cy9jb21tZW50cy5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgSHlwQXVnbWVudGVkQ29tbWVudCA9IEh5cENvbW1lbnQgJiB7XG4gIGRheTogc3RyaW5nO1xuICBob3VyOiBzdHJpbmc7XG4gIGVkaXQ6IGJvb2xlYW47XG4gIHByZXZpb3VzTWVzc2FnZTogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWNvbW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBIdnlDb21tZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBuZXdDb21tZW50ID0gJyc7XG4gIEBPdXRwdXQoKSBjb21tZW50ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaWQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0+KCk7XG4gIG1vcmUgPSBmYWxzZTtcbiAgQElucHV0KCkgbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHR5cGU6ICdhY3Rpb25zJyB8ICdldmVudHMnID0gJ2V2ZW50cyc7XG4gIEBJbnB1dCgpIG9iamVjdElkPzogc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBkaXNwbGF5RW1wdHkgPSB0cnVlO1xuICBASW5wdXQoKSBjb21tZW50Q291bnQgPSAwO1xuICBAVmlld0NoaWxkKCdtZXNzYWdlJykgbWVzc2FnZSE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIG9wZW5lZCA9IGZhbHNlO1xuICBzdWJUcmlnZ2VyPzogU3Vic2NyaXB0aW9uO1xuICBhZGRpdGlvbm5hbENvbW1lbnRzOiBIeXBBdWdtZW50ZWRDb21tZW50W10gPSBbXTtcbiAgX2xhc3RDb21tZW50OiBIeXBBdWdtZW50ZWRDb21tZW50IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZXQgbGFzdENvbW1lbnQoY29tbWVudDogSHlwQ29tbWVudCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2xhc3RDb21tZW50ID0gIWNvbW1lbnRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6ICh7XG4gICAgICAgICAgLi4uY29tbWVudCxcbiAgICAgICAgICBkYXk6IG5ldyBEYXRlKGNvbW1lbnQubGFzdE1vZGlmaWNhdGlvbkRhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygpLFxuICAgICAgICAgIGhvdXI6IG5ldyBEYXRlKGNvbW1lbnQubGFzdE1vZGlmaWNhdGlvbkRhdGUpXG4gICAgICAgICAgICAudG9Mb2NhbGVUaW1lU3RyaW5nKClcbiAgICAgICAgICAgIC5zdWJzdHJpbmcoMCwgbmV3IERhdGUoY29tbWVudC5sYXN0TW9kaWZpY2F0aW9uRGF0ZSkudG9Mb2NhbGVUaW1lU3RyaW5nKCkubGFzdEluZGV4T2YoJzonKSksXG4gICAgICAgICAgZWRpdDogZmFsc2UsXG4gICAgICAgICAgcHJldmlvdXNNZXNzYWdlOiBjb21tZW50Lm1lc3NhZ2VcbiAgICAgICAgfSBhcyBIeXBBdWdtZW50ZWRDb21tZW50KTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB0cmlnZ2VyKHRyaWdnZXIkOiBTdWJqZWN0PGJvb2xlYW4+KSB7XG4gICAgdGhpcy5zdWJUcmlnZ2VyPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3ViVHJpZ2dlciA9IHRyaWdnZXIkLnN1YnNjcmliZSgob3BlbmVkKSA9PiAodGhpcy5vcGVuZWQgPSBvcGVuZWQgPz8gIXRoaXMub3BlbmVkKSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbW1lbnRzU2VydmljZTogSHlwQ29tbWVudHNTZXJ2aWNlKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViVHJpZ2dlcj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCBjb21tZW50cygpOiBIeXBBdWdtZW50ZWRDb21tZW50W10ge1xuICAgIHJldHVybiBbdGhpcy5fbGFzdENvbW1lbnQsIC4uLnRoaXMuYWRkaXRpb25uYWxDb21tZW50c10uZmlsdGVyKChjb20pID0+ICEhY29tKSBhcyBIeXBBdWdtZW50ZWRDb21tZW50W107XG4gIH1cblxuICBhZGRDb21tZW50KCkge1xuICAgIHRoaXMuY29tbWVudGVkLm5leHQoeyBpZDogdjQoKSwgbWVzc2FnZTogdGhpcy5uZXdDb21tZW50IH0pO1xuICAgIHRoaXMubmV3Q29tbWVudCA9ICcnO1xuICAgIHRoaXMubW9yZSA9IGZhbHNlO1xuICB9XG5cbiAgZWRpdENvbW1lbnQoY29tbWVudDogSHlwQXVnbWVudGVkQ29tbWVudCkge1xuICAgIGNvbW1lbnQuZWRpdCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2UubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sIDIwMCk7XG4gIH1cblxuICBzYXZlQ29tbWVudChjb21tZW50OiBIeXBBdWdtZW50ZWRDb21tZW50KSB7XG4gICAgdGhpcy5jb21tZW50ZWQubmV4dCh7IGlkOiBjb21tZW50LmlkLCBtZXNzYWdlOiBjb21tZW50Lm1lc3NhZ2UgfSk7XG4gICAgY29tbWVudC5lZGl0ID0gZmFsc2U7XG4gICAgdGhpcy5tb3JlID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWwoY29tbWVudDogSHlwQXVnbWVudGVkQ29tbWVudCkge1xuICAgIGNvbW1lbnQubWVzc2FnZSA9IGNvbW1lbnQucHJldmlvdXNNZXNzYWdlO1xuICAgIGNvbW1lbnQuZWRpdCA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlTW9yZSgpIHtcbiAgICBpZiAoIXRoaXMubW9yZSkge1xuICAgICAgdGhpcy5jb21tZW50c1NlcnZpY2UuZ2V0KHRoaXMub2JqZWN0SWQhLCB0aGlzLnR5cGUpLnN1YnNjcmliZSgoY29tbWVudHMpID0+IHtcbiAgICAgICAgdGhpcy5hZGRpdGlvbm5hbENvbW1lbnRzID0gY29tbWVudHNcbiAgICAgICAgICAuZmlsdGVyKChjb21tZW50KSA9PiBjb21tZW50LmlkICE9PSB0aGlzLl9sYXN0Q29tbWVudD8uaWQpXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChjb21tZW50OiBIeXBDb21tZW50KSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIC4uLmNvbW1lbnQsXG4gICAgICAgICAgICAgICAgZGF5OiBuZXcgRGF0ZShjb21tZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlKS50b0xvY2FsZURhdGVTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICBob3VyOiBuZXcgRGF0ZShjb21tZW50Lmxhc3RNb2RpZmljYXRpb25EYXRlKVxuICAgICAgICAgICAgICAgICAgLnRvTG9jYWxlVGltZVN0cmluZygpXG4gICAgICAgICAgICAgICAgICAuc3Vic3RyaW5nKDAsIG5ldyBEYXRlKGNvbW1lbnQubGFzdE1vZGlmaWNhdGlvbkRhdGUpLnRvTG9jYWxlVGltZVN0cmluZygpLmxhc3RJbmRleE9mKCc6JykpLFxuICAgICAgICAgICAgICAgIGVkaXQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzTWVzc2FnZTogY29tbWVudC5tZXNzYWdlXG4gICAgICAgICAgICAgIH0pIGFzIEh5cEF1Z21lbnRlZENvbW1lbnRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLm1vcmUgPSAhdGhpcy5tb3JlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9yZSA9ICF0aGlzLm1vcmU7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1odnktY29tbWVudHNcIj5cbiAgQGlmIChkaXNwbGF5RW1wdHkgfHwgY29tbWVudENvdW50ID4gMCB8fCBvcGVuZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiby1odnktY29tbWVudHNfX2hlYWRlclwiPlxuICAgICAgQGlmICh0eXBlID09PSAnYWN0aW9ucycpIHtcbiAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgaWNvblN2Zz1cImFycm93X2Rvd25fcm91bmRlZFwiXG4gICAgICAgICAgW2NsYXNzLi1yb3RhdGVkXT1cIm9wZW5lZFwiXG4gICAgICAgICAgY2xhc3M9XCItaGFuZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTBcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMTBcIlxuICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgIH1cbiAgICAgIDxoMz5cbiAgICAgICAge3tcbiAgICAgICAgICAodHlwZSA9PT0gJ2V2ZW50cycgPyAnQGh2eS5ldmVudC5sb2cuZXZlbnQuY29tbWVudHMubmFtZScgOiAnQGh2eS5ldmVudC5sb2cuZXZlbnQuY29tbWVudHMuYWN0aW9ucycpXG4gICAgICAgICAgICB8IGkxOG46IHsgbmI6IGNvbW1lbnRDb3VudCB9XG4gICAgICAgIH19XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmICghcmVhZG9ubHkgJiYgKGRpc3BsYXlFbXB0eSB8fCBvcGVuZWQpKSB7XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKCdAaHZ5LmV2ZW50LmxvZy5ldmVudC5jb21tZW50cy5wbGFjZWhvbGRlcicgfCBpMThuKSArICcuLi4nXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdDb21tZW50XCJcbiAgICAgICAgbWF4bGVuZ3RoPVwiMjU1XCJcbiAgICAgID48L3RleHRhcmVhPlxuICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNvbW1lbnRzX19idXR0b25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cIm5ld0NvbW1lbnQubGVuZ3RoID09PSAwXCIgKGNsaWNrKT1cImFkZENvbW1lbnQoKVwiPlxuICAgICAgICAgIHt7ICdAaHZ5LmFjdGlvbi5jb21tZW50JyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGRpc3BsYXlFbXB0eSB8fCBvcGVuZWQpIHtcbiAgICAgIEBmb3IgKGNvbW1lbnQgb2YgY29tbWVudHM7IHRyYWNrIGNvbW1lbnQuaWQpIHtcbiAgICAgICAgQGlmICgkZmlyc3QgfHwgbW9yZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jb21tZW50c19fcHJldmlvdXNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1odnktY29tbWVudHNfX3ByZXZpb3VzX190aXRsZVwiPnt7XG4gICAgICAgICAgICAgICgkZmlyc3QgJiYgY29tbWVudENvdW50ID4gMSA/ICdAaHZ5LmV2ZW50LmNvbW1lbnQubGFzdERldGFpbCcgOiAnQGh2eS5ldmVudC5jb21tZW50LmRldGFpbCcpXG4gICAgICAgICAgICAgICAgfCBpMThuXG4gICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICBkYXk6IGNvbW1lbnQuZGF5LFxuICAgICAgICAgICAgICAgICAgICAgIGhvdXI6IGNvbW1lbnQuaG91cixcbiAgICAgICAgICAgICAgICAgICAgICBjcmVhdG9yOiBjb21tZW50LmNyZWF0b3JOYW1lID8/ICctJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jb21tZW50c19fcHJldmlvdXNfX21lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29tbWVudC5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiIWNvbW1lbnQuZWRpdFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignQGh2eS5ldmVudC5sb2cuZXZlbnQuY29tbWVudHMucGxhY2Vob2xkZXInIHwgaTE4bikgKyAnLi4uJ1wiXG4gICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU1XCJcbiAgICAgICAgICAgICAgICAjbWVzc2FnZVxuICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgQGlmICghcmVhZG9ubHkgJiYgKCFtZSB8fCBjb21tZW50LmNyZWF0b3IgPT09IG1lKSkge1xuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImVkaXRDb21tZW50KGNvbW1lbnQpXCIgW2Rpc2FibGVkXT1cImNvbW1lbnQuZWRpdFwiPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJlZGl0XCIgW2hlaWdodF09XCIxOFwiIFt3aWR0aF09XCIxOFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChjb21tZW50LmVkaXQpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWNvbW1lbnRzX19wcmV2aW91c19fYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbW1lbnQubWVzc2FnZS5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVDb21tZW50KGNvbW1lbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyAnQGh2eS5hY3Rpb24udXBkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWwoY29tbWVudClcIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdAaHZ5LmFjdGlvbi5jYW5jZWwnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmIChjb21tZW50Q291bnQgPiAxKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1jb21tZW50c19fbW9yZVwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZU1vcmUoKVwiPlxuICAgICAgICAgICAge3sgKG1vcmUgPyAnQGh2eS5ldmVudC5jb21tZW50Lmxlc3MnIDogJ0BodnkuZXZlbnQuY29tbWVudC5tb3JlJykgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgfVxuPC9kaXY+XG4iXX0=
|
package/esm2022/src/lib/general/procedure-actions/action-parameters/action-parameter.component.mjs
CHANGED
|
@@ -36,12 +36,13 @@ export class HvyActionParameterComponent {
|
|
|
36
36
|
this.componentRef.instance.action = this._action;
|
|
37
37
|
this.componentRef.instance.events = this._events;
|
|
38
38
|
this.componentRef.instance.mode = this.mode;
|
|
39
|
+
this.componentRef.instance.readonly = this.readonly;
|
|
39
40
|
}
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyActionParameterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyActionParameterComponent, selector: "hvy-action-parameter", inputs: { mode: "mode", events: "events", isParam: "isParam", type: "type", action: "action" }, viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div #ref></div>\n" }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyActionParameterComponent, selector: "hvy-action-parameter", inputs: { mode: "mode", readonly: "readonly", events: "events", isParam: "isParam", type: "type", action: "action" }, viewQueries: [{ propertyName: "ref", first: true, predicate: ["ref"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div #ref></div>\n" }); }
|
|
45
46
|
}
|
|
46
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyActionParameterComponent, decorators: [{
|
|
47
48
|
type: Component,
|
|
@@ -51,6 +52,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
51
52
|
args: ['ref', { read: ViewContainerRef }]
|
|
52
53
|
}], mode: [{
|
|
53
54
|
type: Input
|
|
55
|
+
}], readonly: [{
|
|
56
|
+
type: Input
|
|
54
57
|
}], events: [{
|
|
55
58
|
type: Input
|
|
56
59
|
}], isParam: [{
|
|
@@ -60,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
60
63
|
}], action: [{
|
|
61
64
|
type: Input
|
|
62
65
|
}] } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXBhcmFtZXRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL2FjdGlvbi1wYXJhbWV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9hY3Rpb24tcGFyYW1ldGVycy9hY3Rpb24tcGFyYW1ldGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBUSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQVExRCxNQUFNLE9BQU8sMkJBQTJCO0lBVXRDLElBQWEsTUFBTSxDQUFDLE1BQXlCO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBYyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBYSxJQUFJLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBVztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7UUE3QkEsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDdkIsU0FBSSxHQUEwQixXQUFXLENBQUM7SUF5QnBDLENBQUM7SUFFUix3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFFN0IsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUVoRixDQUFDO2dCQUNkLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUE2QyxTQUFTLENBQUMsQ0FBQztvQkFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFjLENBQUM7b0JBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBYyxDQUFDO29CQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3RELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQW5EVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix5UEFDWixnQkFBZ0IsNkJDWDVDLG9CQUNBOzsyRkRTYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0Usc0JBQXNCO3dEQUljLEdBQUc7c0JBQWhELFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQU1uQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQU9PLE9BQU87c0JBQW5CLEtBQUs7Z0JBS08sSUFBSTtzQkFBaEIsS0FBSztnQkFLTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIElucHV0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBQ1RJT05TX1RZUEVTIH0gZnJvbSAnLi4vYWN0aW9ucy10eXBlcy5jb25zdGFudCc7XG5pbXBvcnQgeyBIdnlCYXNlUGFyYW1ldGVyQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLXBhcmFtZXRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LWFjdGlvbi1wYXJhbWV0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLXBhcmFtZXRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSHZ5QWN0aW9uUGFyYW1ldGVyQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgncmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHJlZiE6IFZpZXdDb250YWluZXJSZWY7XG4gIF9hY3Rpb24/OiBIeXBBY3Rpb247XG4gIF90eXBlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8SHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudDxIeXBBY3Rpb24+PjtcbiAgcGFyYW0gPSBmYWxzZTtcbiAgX2V2ZW50czogSHlwRXZlbnREZXRhaWxzW10gPSBbXTtcbiAgQElucHV0KCkgbW9kZTogJ21vZGVsJyB8ICdwcm9jZWR1cmUnID0gJ3Byb2NlZHVyZSc7XG4gIEBJbnB1dCgpIHJlYWRvbmx5ITogbnVsbCB8IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2V0IGV2ZW50cyhldmVudHM6IEh5cEV2ZW50RGV0YWlsc1tdKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gZXZlbnRzO1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZXZlbnRzID0gdGhpcy5fZXZlbnRzIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBzZXQgaXNQYXJhbShwYXJhbTogYm9vbGVhbikge1xuICAgIHRoaXMucGFyYW0gPSBwYXJhbTtcbiAgICB0aGlzLnVwZGF0ZVBhcmFtZXRlckNvbXBvbmVudCgpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgdGhpcy51cGRhdGVQYXJhbWV0ZXJDb21wb25lbnQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhY3Rpb24oYWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLl9hY3Rpb24gPSBhY3Rpb247XG4gICAgdGhpcy51cGRhdGVQYXJhbWV0ZXJDb21wb25lbnQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwcml2YXRlIHVwZGF0ZVBhcmFtZXRlckNvbXBvbmVudCgpIHtcbiAgICBpZiAoISF0aGlzLl9hY3Rpb24gJiYgISF0aGlzLl90eXBlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcblxuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBBQ1RJT05TX1RZUEVTLnZhbHVlc1t0aGlzLl90eXBlID8/ICcnXVt0aGlzLnBhcmFtID8gJ3BhcmFtZXRlcicgOiAnZGlzcGxheSddIGFzXG4gICAgICAgICAgfCBUeXBlPEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8SHlwQWN0aW9uPj5cbiAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCEhY29tcG9uZW50KSB7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnJlZi5jcmVhdGVDb21wb25lbnQ8SHZ5QmFzZVBhcmFtZXRlckFjdGlvbkNvbXBvbmVudDxIeXBBY3Rpb24+Pihjb21wb25lbnQpO1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmFjdGlvbiA9IHRoaXMuX2FjdGlvbiBhcyBhbnk7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZXZlbnRzID0gdGhpcy5fZXZlbnRzIGFzIGFueTtcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlO1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNyZWY+PC9kaXY+XG4iXX0=
|
|
@@ -18,7 +18,7 @@ export class HvyBaseParameterActionComponent {
|
|
|
18
18
|
this.mode = 'procedure';
|
|
19
19
|
}
|
|
20
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyBaseParameterActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyBaseParameterActionComponent, selector: "hvy-base-action-parameter", inputs: { mode: "mode", events: "events", action: "action" }, ngImport: i0, template: ' <p>not used</p>', isInline: true }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: HvyBaseParameterActionComponent, selector: "hvy-base-action-parameter", inputs: { mode: "mode", readonly: "readonly", events: "events", action: "action" }, ngImport: i0, template: ' <p>not used</p>', isInline: true }); }
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyBaseParameterActionComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
@@ -28,9 +28,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
28
28
|
}]
|
|
29
29
|
}], ctorParameters: () => [], propDecorators: { mode: [{
|
|
30
30
|
type: Input
|
|
31
|
+
}], readonly: [{
|
|
32
|
+
type: Input
|
|
31
33
|
}], events: [{
|
|
32
34
|
type: Input
|
|
33
35
|
}], action: [{
|
|
34
36
|
type: Input
|
|
35
37
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wYXJhbWV0ZXItYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvaHlwZXJ2aXNvci9zcmMvbGliL2dlbmVyYWwvcHJvY2VkdXJlLWFjdGlvbnMvYWN0aW9uLXBhcmFtZXRlcnMvYmFzZS1wYXJhbWV0ZXItYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRakQsTUFBTSxPQUFPLCtCQUErQjtJQU0xQyxJQUFhLE1BQU0sQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFTO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBVyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEO1FBcEJBLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ3ZCLFNBQUksR0FBMEIsV0FBVyxDQUFDO0lBbUJwQyxDQUFDOzhHQXRCTCwrQkFBK0I7a0dBQS9CLCtCQUErQixxSkFGaEMsa0JBQWtCOzsyRkFFakIsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO3dEQUlVLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVPLE1BQU07c0JBQWxCLEtBQUs7Z0JBUU8sTUFBTTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1iYXNlLWFjdGlvbi1wYXJhbWV0ZXInLFxuICB0ZW1wbGF0ZTogJyA8cD5ub3QgdXNlZDwvcD4nXG59KVxuZXhwb3J0IGNsYXNzIEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQ8VCBleHRlbmRzIEh5cEFjdGlvbj4ge1xuICBfYWN0aW9uITogYW55O1xuICBfZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSA9IFtdO1xuICBASW5wdXQoKSBtb2RlOiAnbW9kZWwnIHwgJ3Byb2NlZHVyZScgPSAncHJvY2VkdXJlJztcbiAgQElucHV0KCkgcmVhZG9ubHkhOiBudWxsIHwgYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgZXZlbnRzKGV2ZW50czogSHlwRXZlbnREZXRhaWxzW10pIHtcbiAgICB0aGlzLl9ldmVudHMgPSBldmVudHM7XG4gIH1cblxuICBnZXQgZXZlbnRzKCkge1xuICAgIHJldHVybiB0aGlzLl9ldmVudHM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgYWN0aW9uKGFjdGlvbjogVCkge1xuICAgIHRoaXMuX2FjdGlvbiA9IGFjdGlvbiBhcyBUO1xuICB9XG5cbiAgZ2V0IGFjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
|
|
@@ -66,13 +66,13 @@ export class HvyServiceActionDisplayComponent extends HvyBaseParameterActionComp
|
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyServiceActionDisplayComponent, deps: [{ token: i1.PryDialogService }, { token: i2.Overlay }, { token: i3.ServiceService }, { token: i1.I18nPipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: HvyServiceActionDisplayComponent, selector: "hvy-service-action-display", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.service' | i18n }} : <b>{{ reference }}</b> {{ status }}\n </p>\n @if (!action.serviceExternalId && this.mode !== 'model') {\n <button
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: HvyServiceActionDisplayComponent, selector: "hvy-service-action-display", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.service' | i18n }} : <b>{{ reference }}</b> {{ status }}\n </p>\n @if (!action.serviceExternalId && this.mode !== 'model') {\n <button\n class=\"a-link\"\n [disabled]=\"readonly || (action.type === 'ASKED_SERVICE' && action.status === 'DONE')\"\n (click)=\"toggleModal()\"\n #menuButton\n >\n > {{ '@hvy.action.create' | i18n }}\n </button>\n }\n</div>\n", dependencies: [{ kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HvyServiceActionDisplayComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
|
-
args: [{ selector: 'hvy-service-action-display', template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.service' | i18n }} : <b>{{ reference }}</b> {{ status }}\n </p>\n @if (!action.serviceExternalId && this.mode !== 'model') {\n <button
|
|
73
|
+
args: [{ selector: 'hvy-service-action-display', template: "<div class=\"param-line -vertical\">\n <p>\n {{ '@hvy.procedure.action.service' | i18n }} : <b>{{ reference }}</b> {{ status }}\n </p>\n @if (!action.serviceExternalId && this.mode !== 'model') {\n <button\n class=\"a-link\"\n [disabled]=\"readonly || (action.type === 'ASKED_SERVICE' && action.status === 'DONE')\"\n (click)=\"toggleModal()\"\n #menuButton\n >\n > {{ '@hvy.action.create' | i18n }}\n </button>\n }\n</div>\n" }]
|
|
74
74
|
}], ctorParameters: () => [{ type: i1.PryDialogService }, { type: i2.Overlay }, { type: i3.ServiceService }, { type: i1.I18nPipe }], propDecorators: { menuButton: [{
|
|
75
75
|
type: ViewChild,
|
|
76
76
|
args: ['menuButton', { read: ElementRef }]
|
|
77
77
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3NlcnZpY2Uvc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL2FjdGlvbi1wYXJhbWV0ZXJzL3NlcnZpY2Uvc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBVSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFhcEMsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLCtCQUFpRDtJQUtyRyxZQUNVLFNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLGNBQThCLEVBQzlCLElBQWM7UUFFdEIsS0FBSyxFQUFFLENBQUM7UUFMQSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixTQUFJLEdBQUosSUFBSSxDQUFVO1FBeURMLFFBQUcsR0FBRyxHQUFHLENBQUM7SUF0RDdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3ZDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtZQUMxRixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDL0QsYUFBYSxFQUFFO2dCQUNiLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDcEMsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTthQUMzRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBb0MsRUFBRSxFQUFFO1lBQ2xGLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuQixLQUFLLElBQUk7b0JBQ1AsSUFBSSxDQUFDLGNBQWM7eUJBQ2hCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7eUJBQzVCLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO3dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2pELENBQUMsQ0FBQyxDQUFDO29CQUNMLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLE1BQU07WUFDVixDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhFVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx1SkFDVixVQUFVLG9EQ3JCN0Msb2RBZUE7OzJGREthLGdDQUFnQztrQkFKNUMsU0FBUzsrQkFDRSw0QkFBNEI7K0pBSVMsVUFBVTtzQkFBeEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh2eUJhc2VQYXJhbWV0ZXJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXBhcmFtZXRlci1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlEaWFsb2dTZXJ2aWNlLCBJMThuUGlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgSHZ5Q3JlYXRlU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50JztcbmltcG9ydCB7IEh5cFNlcnZpY2UsIFNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvc2VydmljZS9zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgYWN0IH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHlwU2VydmljZUFjdGlvbiBleHRlbmRzIEh5cEFjdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2VydmljZUV4dGVybmFsSWQ/OiBzdHJpbmc7XG4gIHNlcnZpY2VBZGRpdGlvbmFsSW5mbz86IHN0cmluZztcbiAgc2VydmljZVN0YXR1cz86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LXNlcnZpY2UtYWN0aW9uLWRpc3BsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS1hY3Rpb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSHZ5U2VydmljZUFjdGlvbkRpc3BsYXlDb21wb25lbnQgZXh0ZW5kcyBIdnlCYXNlUGFyYW1ldGVyQWN0aW9uQ29tcG9uZW50PEh5cFNlcnZpY2VBY3Rpb24+IGltcGxlbWVudHMgT25Jbml0e1xuICBAVmlld0NoaWxkKCdtZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1lbnVCdXR0b24hOiBFbGVtZW50UmVmO1xuICBzdGF0dXMhOiBzdHJpbmc7XG4gIHJlZmVyZW5jZSE6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByeURpYWxvZzogUHJ5RGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBzZXJ2aWNlU2VydmljZTogU2VydmljZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpMThuOiBJMThuUGlwZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0dXMgPSB0aGlzLmFjdGlvbi5zZXJ2aWNlU3RhdHVzID9cbiAgICAgICcoJyArIHRoaXMuaTE4bi50cmFuc2Zvcm0oYEBodnkucHJvY2VkdXJlLnN0YXR1cy4ke3RoaXMuYWN0aW9uLnNlcnZpY2VTdGF0dXN9YCkgKyAnKScgOiAnJztcbiAgICB0aGlzLmluaXRBY3Rpb25SZWZlcmVuY2UoKTtcbiAgfVxuXG4gIGluaXRBY3Rpb25SZWZlcmVuY2UoKXtcbiAgICBpZih0aGlzLmFjdGlvbi5zZXJ2aWNlRXh0ZXJuYWxJZCkge1xuICAgICAgaWYodGhpcy5hY3Rpb24uc2VydmljZUFkZGl0aW9uYWxJbmZvKSB7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlID0gYCR7dGhpcy5hY3Rpb24uc2VydmljZUV4dGVybmFsSWR9QCR7dGhpcy5hY3Rpb24uc2VydmljZUFkZGl0aW9uYWxJbmZvfWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVmZXJlbmNlID0gdGhpcy5hY3Rpb24uc2VydmljZUV4dGVybmFsSWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVmZXJlbmNlID0gdGhpcy5hY3Rpb24ubmFtZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVNb2RhbCgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLnByeURpYWxvZy5vcGVuKEh2eUNyZWF0ZVNlcnZpY2VDb21wb25lbnQsIHtcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsncHJ5LWRpYWxvZy1jb250YWluZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wLWRhcmsnLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KClcbiAgICAgIH0sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGFjdGlvbjogdGhpcy5hY3Rpb24sXG4gICAgICAgIGV2ZW50czogdGhpcy5ldmVudHNcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHN1YiA9IGRpYWxvZ1JlZi5jbG9zZVZhbHVlLnN1YnNjcmliZSgodHlwZTogSHlwU2VydmljZSAmIHsgdmFsdWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUudmFsdWUpIHtcbiAgICAgICAgY2FzZSAnb2snOlxuICAgICAgICAgIHRoaXMuc2VydmljZVNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGUodHlwZSwgdGhpcy5hY3Rpb24uaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChuYW1lKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYWN0aW9uLnNlcnZpY2VFeHRlcm5hbElkID0gbmFtZS5pZDtcbiAgICAgICAgICAgICAgdGhpcy5pbml0QWN0aW9uUmVmZXJlbmNlKCk7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZVNlcnZpY2UucmVmcmVzaERpQWN0aW9uLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2FuY2VsJzpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0ID0gYWN0O1xufVxuIiwiPGRpdiBjbGFzcz1cInBhcmFtLWxpbmUgLXZlcnRpY2FsXCI+XG4gIDxwPlxuICAgIHt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uc2VydmljZScgfCBpMThuIH19IDogPGI+e3sgcmVmZXJlbmNlIH19PC9iPiB7eyBzdGF0dXMgfX1cbiAgPC9wPlxuICBAaWYgKCFhY3Rpb24uc2VydmljZUV4dGVybmFsSWQgJiYgdGhpcy5tb2RlICE9PSAnbW9kZWwnKSB7XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWxpbmtcIlxuICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IChhY3Rpb24udHlwZSA9PT0gJ0FTS0VEX1NFUlZJQ0UnICYmIGFjdGlvbi5zdGF0dXMgPT09ICdET05FJylcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vZGFsKClcIlxuICAgICAgI21lbnVCdXR0b25cbiAgICA+XG4gICAgICA+IHt7ICdAaHZ5LmFjdGlvbi5jcmVhdGUnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -34,11 +34,12 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
|
|
|
34
34
|
this.events = [];
|
|
35
35
|
this._actions = [];
|
|
36
36
|
this.triggers = {};
|
|
37
|
+
this.clearingActionAllowed = false;
|
|
37
38
|
this.refreshActions = new EventEmitter();
|
|
38
39
|
this.model = model;
|
|
39
40
|
this.ACTIONS_TYPES = Object.keys(ACTIONS_TYPES.values);
|
|
40
41
|
this.ACTIONS_TYPES.sort((a, b) => ACTIONS_TYPES.values[a].order - ACTIONS_TYPES.values[b].order);
|
|
41
|
-
this.subscriptions.add(this.serviceService.refreshDiAction.subscribe(result => {
|
|
42
|
+
this.subscriptions.add(this.serviceService.refreshDiAction.subscribe((result) => {
|
|
42
43
|
if (result) {
|
|
43
44
|
this.refreshActions.next(this.actions);
|
|
44
45
|
}
|
|
@@ -112,6 +113,13 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
|
|
|
112
113
|
update(idx, prop, $event) {
|
|
113
114
|
// @ts-ignore
|
|
114
115
|
this.actions[idx][prop] = $event;
|
|
116
|
+
if (this.clearingActionAllowed && prop == 'type') {
|
|
117
|
+
this.clearAction(idx);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
clearAction(idx) {
|
|
121
|
+
const { type, status, id, _status, _initial } = this.actions[idx];
|
|
122
|
+
this.actions[idx] = { type, status, id, _status, _initial };
|
|
115
123
|
}
|
|
116
124
|
openModal(action, idx) {
|
|
117
125
|
const dialogRef = this.pryDialog.open(HvyActionMenuComponent, {
|
|
@@ -145,6 +153,10 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
|
|
|
145
153
|
case 'update':
|
|
146
154
|
action._initial = JSON.parse(JSON.stringify(action));
|
|
147
155
|
action._status = 'modify';
|
|
156
|
+
this.clearingActionAllowed = false;
|
|
157
|
+
setTimeout(() => {
|
|
158
|
+
this.clearingActionAllowed = true;
|
|
159
|
+
}, 500);
|
|
148
160
|
break;
|
|
149
161
|
case 'delete':
|
|
150
162
|
this.actions.splice(idx, 1);
|
|
@@ -193,11 +205,11 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
|
|
|
193
205
|
});
|
|
194
206
|
}
|
|
195
207
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureActionsComponent, deps: [{ token: i1.PryDialogService }, { token: i2.Overlay }, { token: i3.HypCommentsService }, { token: i4.ServiceService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: { mode: "mode", me: "me", readonly: "readonly", readOnlyComment: "readOnlyComment", enableEditActions: "enableEditActions", events: "events", actions: "actions" }, outputs: { modified: "modified", commented: "commented", refreshActions: "refreshActions" }, viewQueries: [{ propertyName: "menuButtons", predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-hvy-events-detail__procedure__actions\"\n (drag)=\"move($event)\"\n (drop)=\"drop($event)\"\n (dragover)=\"allowDrop($event)\"\n>\n @for (action of actions; track action.id; let idx = $index) {\n <div\n class=\"o-hvy-events-detail__procedure__actions__action\"\n [draggable]=\"isDraggable(action) && !readonly\"\n (dragstart)=\"dragStart($event, action, idx)\"\n (mousedown)=\"onMouseDown($event)\"\n [class.-updating]=\"!!action._status\"\n [class.-other-updating]=\"editing\"\n >\n <div class=\"o-hvy-events-detail__procedure__actions__action__header\">\n @if (this.enableEditActions) {\n <pry-icon\n iconSvg=\"six_dot\"\n #handle\n [class.-disabled]=\"!isDraggable(action)\"\n [class.-hidden]=\"action._status || readonly\"\n class=\"grabbable\"\n ></pry-icon>\n }\n <div class=\"number-badge\">{{ idx + 1 }}</div>\n @if (!action._status || readonly) {\n @if (mode === 'procedure') {\n <pry-checkbox\n [ngModel]=\"action.status !== 'NEW'\"\n (click)=\"toggleActionStatus(idx, $event, action.status === 'DONE' || (readonly ?? false))\"\n [disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [class.-disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [title]=\"'@hvy.procedure.checkbox.' + action.status | i18n\"\n ></pry-checkbox>\n }\n <div [class.-done]=\"action.status === 'DONE'\" [class.-disabled]=\"editing\">\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"false\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n ></hvy-action-parameter>\n </div>\n @if (!readonly) {\n <button class=\"a-btn a-btn--icon-only\" (click)=\"openModal(action, idx)\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"more_horiz\" #menuButton></pry-icon>\n </button>\n }\n } @else {\n <div class=\"o-hvy-events-detail__procedure__actions__action__create\">\n <div class=\"o-hvy-events-detail__procedure__actions__action__create__header\">\n <p>{{ '@hvy.procedure.action.' + action._status | i18n }}</p>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"saveAction(action, idx)\" [disabled]=\"!isValid(action)\">\n <pry-icon iconSvg=\"check\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction(action, idx)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div>\n <pry-select\n [ngModel]=\"action.type\"\n [items]=\"ACTIONS_TYPES\"\n (ngModelChange)=\"update(idx, 'type', $event)\"\n i18nPrefix=\"@hvy.procedure.action.\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.action' | i18n\"\n ></pry-select>\n </div>\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"true\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n ></hvy-action-parameter>\n </div>\n }\n </div>\n <hvy-comments\n [lastComment]=\"action.lastComment\"\n [commentCount]=\"action.commentsCount\"\n [objectId]=\"action.id\"\n [readonly]=\"readOnlyComment\"\n (commented)=\"updateComment(action, $event)\"\n [type]=\"'actions'\"\n [trigger]=\"triggers[action.id]\"\n [displayEmpty]=\"false\"\n [me]=\"me\"\n ></hvy-comments>\n </div>\n } @empty {\n @if (actions.length === 0) {\n <div>{{ '@hvy.event.log.procedure.noAction' | i18n }}</div>\n }\n }\n @if (!readonly && enableEditActions) {\n <div class=\"o-hvy-events-detail__procedure__button\">\n <button class=\"a-btn a-btn--primary\" (click)=\"add()\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.procedure.action.add' | i18n }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i7.HvyActionParameterComponent, selector: "hvy-action-parameter", inputs: ["mode", "events", "isParam", "type", "action"] }, { kind: "component", type: i8.HvyCommentsComponent, selector: "hvy-comments", inputs: ["readonly", "me", "type", "objectId", "displayEmpty", "commentCount", "lastComment", "trigger"], outputs: ["commented"] }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
|
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: ProcedureActionsComponent, selector: "hvy-procedure-actions", inputs: { mode: "mode", me: "me", readonly: "readonly", readOnlyComment: "readOnlyComment", enableEditActions: "enableEditActions", events: "events", actions: "actions" }, outputs: { modified: "modified", commented: "commented", refreshActions: "refreshActions" }, viewQueries: [{ propertyName: "menuButtons", predicate: ["menuButton"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"o-hvy-events-detail__procedure__actions\"\n (drag)=\"move($event)\"\n (drop)=\"drop($event)\"\n (dragover)=\"allowDrop($event)\"\n>\n @for (action of actions; track action.id; let idx = $index) {\n <div\n class=\"o-hvy-events-detail__procedure__actions__action\"\n [draggable]=\"isDraggable(action) && !readonly\"\n (dragstart)=\"dragStart($event, action, idx)\"\n (mousedown)=\"onMouseDown($event)\"\n [class.-updating]=\"!!action._status\"\n [class.-other-updating]=\"editing\"\n >\n <div class=\"o-hvy-events-detail__procedure__actions__action__header\">\n @if (this.enableEditActions) {\n <pry-icon\n iconSvg=\"six_dot\"\n #handle\n [class.-disabled]=\"!isDraggable(action)\"\n [class.-hidden]=\"action._status || readonly\"\n class=\"grabbable\"\n ></pry-icon>\n }\n <div class=\"number-badge\">{{ idx + 1 }}</div>\n @if (!action._status || readonly) {\n @if (mode === 'procedure') {\n <pry-checkbox\n [ngModel]=\"action.status !== 'NEW'\"\n (click)=\"toggleActionStatus(idx, $event, action.status === 'DONE' || (readonly ?? false))\"\n [disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [class.-disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [title]=\"'@hvy.procedure.checkbox.' + action.status | i18n\"\n ></pry-checkbox>\n }\n <div [class.-done]=\"action.status === 'DONE'\" [class.-disabled]=\"editing\">\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"false\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n [readonly]=\"readonly\"\n ></hvy-action-parameter>\n </div>\n @if (!readonly) {\n <button class=\"a-btn a-btn--icon-only\" (click)=\"openModal(action, idx)\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"more_horiz\" #menuButton></pry-icon>\n </button>\n }\n } @else {\n <div class=\"o-hvy-events-detail__procedure__actions__action__create\">\n <div class=\"o-hvy-events-detail__procedure__actions__action__create__header\">\n <p>{{ '@hvy.procedure.action.' + action._status | i18n }}</p>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"saveAction(action, idx)\" [disabled]=\"!isValid(action)\">\n <pry-icon iconSvg=\"check\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction(action, idx)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div>\n <pry-select\n [ngModel]=\"action.type\"\n [items]=\"ACTIONS_TYPES\"\n (ngModelChange)=\"update(idx, 'type', $event)\"\n i18nPrefix=\"@hvy.procedure.action.\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.action' | i18n\"\n ></pry-select>\n </div>\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"true\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n ></hvy-action-parameter>\n </div>\n }\n </div>\n <hvy-comments\n [lastComment]=\"action.lastComment\"\n [commentCount]=\"action.commentsCount\"\n [objectId]=\"action.id\"\n [readonly]=\"readOnlyComment\"\n (commented)=\"updateComment(action, $event)\"\n [type]=\"'actions'\"\n [trigger]=\"triggers[action.id]\"\n [displayEmpty]=\"false\"\n [me]=\"me\"\n ></hvy-comments>\n </div>\n } @empty {\n @if (actions.length === 0) {\n <div>{{ '@hvy.event.log.procedure.noAction' | i18n }}</div>\n }\n }\n @if (!readonly && enableEditActions) {\n <div class=\"o-hvy-events-detail__procedure__button\">\n <button class=\"a-btn a-btn--primary\" (click)=\"add()\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.procedure.action.add' | i18n }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i7.HvyActionParameterComponent, selector: "hvy-action-parameter", inputs: ["mode", "readonly", "events", "isParam", "type", "action"] }, { kind: "component", type: i8.HvyCommentsComponent, selector: "hvy-comments", inputs: ["readonly", "me", "type", "objectId", "displayEmpty", "commentCount", "lastComment", "trigger"], outputs: ["commented"] }, { kind: "pipe", type: i1.I18nPipe, name: "i18n" }] }); }
|
|
197
209
|
}
|
|
198
210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: ProcedureActionsComponent, decorators: [{
|
|
199
211
|
type: Component,
|
|
200
|
-
args: [{ selector: 'hvy-procedure-actions', template: "<div\n class=\"o-hvy-events-detail__procedure__actions\"\n (drag)=\"move($event)\"\n (drop)=\"drop($event)\"\n (dragover)=\"allowDrop($event)\"\n>\n @for (action of actions; track action.id; let idx = $index) {\n <div\n class=\"o-hvy-events-detail__procedure__actions__action\"\n [draggable]=\"isDraggable(action) && !readonly\"\n (dragstart)=\"dragStart($event, action, idx)\"\n (mousedown)=\"onMouseDown($event)\"\n [class.-updating]=\"!!action._status\"\n [class.-other-updating]=\"editing\"\n >\n <div class=\"o-hvy-events-detail__procedure__actions__action__header\">\n @if (this.enableEditActions) {\n <pry-icon\n iconSvg=\"six_dot\"\n #handle\n [class.-disabled]=\"!isDraggable(action)\"\n [class.-hidden]=\"action._status || readonly\"\n class=\"grabbable\"\n ></pry-icon>\n }\n <div class=\"number-badge\">{{ idx + 1 }}</div>\n @if (!action._status || readonly) {\n @if (mode === 'procedure') {\n <pry-checkbox\n [ngModel]=\"action.status !== 'NEW'\"\n (click)=\"toggleActionStatus(idx, $event, action.status === 'DONE' || (readonly ?? false))\"\n [disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [class.-disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [title]=\"'@hvy.procedure.checkbox.' + action.status | i18n\"\n ></pry-checkbox>\n }\n <div [class.-done]=\"action.status === 'DONE'\" [class.-disabled]=\"editing\">\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"false\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n ></hvy-action-parameter>\n </div>\n @if (!readonly) {\n <button class=\"a-btn a-btn--icon-only\" (click)=\"openModal(action, idx)\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"more_horiz\" #menuButton></pry-icon>\n </button>\n }\n } @else {\n <div class=\"o-hvy-events-detail__procedure__actions__action__create\">\n <div class=\"o-hvy-events-detail__procedure__actions__action__create__header\">\n <p>{{ '@hvy.procedure.action.' + action._status | i18n }}</p>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"saveAction(action, idx)\" [disabled]=\"!isValid(action)\">\n <pry-icon iconSvg=\"check\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction(action, idx)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div>\n <pry-select\n [ngModel]=\"action.type\"\n [items]=\"ACTIONS_TYPES\"\n (ngModelChange)=\"update(idx, 'type', $event)\"\n i18nPrefix=\"@hvy.procedure.action.\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.action' | i18n\"\n ></pry-select>\n </div>\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"true\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n ></hvy-action-parameter>\n </div>\n }\n </div>\n <hvy-comments\n [lastComment]=\"action.lastComment\"\n [commentCount]=\"action.commentsCount\"\n [objectId]=\"action.id\"\n [readonly]=\"readOnlyComment\"\n (commented)=\"updateComment(action, $event)\"\n [type]=\"'actions'\"\n [trigger]=\"triggers[action.id]\"\n [displayEmpty]=\"false\"\n [me]=\"me\"\n ></hvy-comments>\n </div>\n } @empty {\n @if (actions.length === 0) {\n <div>{{ '@hvy.event.log.procedure.noAction' | i18n }}</div>\n }\n }\n @if (!readonly && enableEditActions) {\n <div class=\"o-hvy-events-detail__procedure__button\">\n <button class=\"a-btn a-btn--primary\" (click)=\"add()\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.procedure.action.add' | i18n }}\n </button>\n </div>\n }\n</div>\n" }]
|
|
212
|
+
args: [{ selector: 'hvy-procedure-actions', template: "<div\n class=\"o-hvy-events-detail__procedure__actions\"\n (drag)=\"move($event)\"\n (drop)=\"drop($event)\"\n (dragover)=\"allowDrop($event)\"\n>\n @for (action of actions; track action.id; let idx = $index) {\n <div\n class=\"o-hvy-events-detail__procedure__actions__action\"\n [draggable]=\"isDraggable(action) && !readonly\"\n (dragstart)=\"dragStart($event, action, idx)\"\n (mousedown)=\"onMouseDown($event)\"\n [class.-updating]=\"!!action._status\"\n [class.-other-updating]=\"editing\"\n >\n <div class=\"o-hvy-events-detail__procedure__actions__action__header\">\n @if (this.enableEditActions) {\n <pry-icon\n iconSvg=\"six_dot\"\n #handle\n [class.-disabled]=\"!isDraggable(action)\"\n [class.-hidden]=\"action._status || readonly\"\n class=\"grabbable\"\n ></pry-icon>\n }\n <div class=\"number-badge\">{{ idx + 1 }}</div>\n @if (!action._status || readonly) {\n @if (mode === 'procedure') {\n <pry-checkbox\n [ngModel]=\"action.status !== 'NEW'\"\n (click)=\"toggleActionStatus(idx, $event, action.status === 'DONE' || (readonly ?? false))\"\n [disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [class.-disabled]=\"action.status === 'DONE' || (readonly ?? false)\"\n [title]=\"'@hvy.procedure.checkbox.' + action.status | i18n\"\n ></pry-checkbox>\n }\n <div [class.-done]=\"action.status === 'DONE'\" [class.-disabled]=\"editing\">\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"false\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n [readonly]=\"readonly\"\n ></hvy-action-parameter>\n </div>\n @if (!readonly) {\n <button class=\"a-btn a-btn--icon-only\" (click)=\"openModal(action, idx)\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"more_horiz\" #menuButton></pry-icon>\n </button>\n }\n } @else {\n <div class=\"o-hvy-events-detail__procedure__actions__action__create\">\n <div class=\"o-hvy-events-detail__procedure__actions__action__create__header\">\n <p>{{ '@hvy.procedure.action.' + action._status | i18n }}</p>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"saveAction(action, idx)\" [disabled]=\"!isValid(action)\">\n <pry-icon iconSvg=\"check\"></pry-icon>\n </button>\n <button class=\"a-btn a-btn--icon-only\" (click)=\"cancelAction(action, idx)\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <div>\n <pry-select\n [ngModel]=\"action.type\"\n [items]=\"ACTIONS_TYPES\"\n (ngModelChange)=\"update(idx, 'type', $event)\"\n i18nPrefix=\"@hvy.procedure.action.\"\n [placeholder]=\"'@hvy.procedure.action.placeholder.action' | i18n\"\n ></pry-select>\n </div>\n <hvy-action-parameter\n [action]=\"action\"\n [type]=\"action.type\"\n [isParam]=\"true\"\n [events]=\"this.events\"\n [mode]=\"this.mode\"\n ></hvy-action-parameter>\n </div>\n }\n </div>\n <hvy-comments\n [lastComment]=\"action.lastComment\"\n [commentCount]=\"action.commentsCount\"\n [objectId]=\"action.id\"\n [readonly]=\"readOnlyComment\"\n (commented)=\"updateComment(action, $event)\"\n [type]=\"'actions'\"\n [trigger]=\"triggers[action.id]\"\n [displayEmpty]=\"false\"\n [me]=\"me\"\n ></hvy-comments>\n </div>\n } @empty {\n @if (actions.length === 0) {\n <div>{{ '@hvy.event.log.procedure.noAction' | i18n }}</div>\n }\n }\n @if (!readonly && enableEditActions) {\n <div class=\"o-hvy-events-detail__procedure__button\">\n <button class=\"a-btn a-btn--primary\" (click)=\"add()\" [disabled]=\"editing\">\n <pry-icon iconSvg=\"add\"></pry-icon>\n {{ '@hvy.procedure.action.add' | i18n }}\n </button>\n </div>\n }\n</div>\n" }]
|
|
201
213
|
}], ctorParameters: () => [{ type: i1.PryDialogService }, { type: i2.Overlay }, { type: i3.HypCommentsService }, { type: i4.ServiceService }], propDecorators: { modified: [{
|
|
202
214
|
type: Output
|
|
203
215
|
}], commented: [{
|
|
@@ -222,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
222
234
|
}], refreshActions: [{
|
|
223
235
|
type: Output
|
|
224
236
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUy9CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7YUFDOUQsZ0JBQVcsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQW9CeEIsWUFDVSxTQUEyQixFQUMzQixPQUFnQixFQUNoQixlQUFtQyxFQUNuQyxjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUxBLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLG1C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LFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FsTlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsK1lBa0JBLFVBQVUsb0RDN0NoRCx3eElBMEdBOzsyRkQvRWEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLHVCQUF1Qjt5S0FXdkIsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRzRDLFdBQVc7c0JBQTVELFlBQVk7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFxQm5DLE9BQU87c0JBQW5CLEtBQUs7Z0JBT0ksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgbW9kZWwsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByeURpYWxvZ1NlcnZpY2UsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBIeXBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9wcm9jZWR1cmUvaHlwLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEh2eUFjdGlvbk1lbnVDb21wb25lbnQsIEh2eUFjdGlvbk1lbnVEYXRhIH0gZnJvbSAnLi9hY3Rpb24tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFDVElPTlNfVFlQRVMgfSBmcm9tICcuL2FjdGlvbnMtdHlwZXMuY29uc3RhbnQnO1xuaW1wb3J0IHsgSHlwQ29tbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29tbWVudHMvY29tbWVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIeXBFdmVudERldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbC9ldmVudC9oeXAtZXZlbnQtZGV0YWlsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIeXBDb21tZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvY29tbWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTZXJ2aWNlU2VydmljZX0gZnJvbSBcIi4uLy4uL3N0b3JlL3NlcnZpY2Uvc2VydmljZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2h2eS1wcm9jZWR1cmUtYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2VkdXJlQWN0aW9uc0NvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB7XG4gIHN0YXRpYyBDQVJEX0hFSUdIVCA9IDc1O1xuICBtb3ZpbmdBY3Rpb24/OiBIeXBBY3Rpb247XG4gIG1vdmVTdGFydCA9IDA7XG4gIG1vdmVJbml0aWFsSW5kZXggPSAwO1xuICBpbml0aWFsQWN0aW9uTGlzdDogSHlwQWN0aW9uW10gPSBbXTtcbiAgcHJldmlvdXNPZmZzZXQgPSAwO1xuICBkcmFnVGFyZ2V0PzogRXZlbnRUYXJnZXQgfCBudWxsO1xuICBAT3V0cHV0KCkgbW9kaWZpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh5cEFjdGlvbltdPigpO1xuICBAT3V0cHV0KCkgY29tbWVudGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGFjdGlvbjogSHlwQWN0aW9uOyBjb21tZW50czogSHlwQ29tbWVudFtdIH0+KCk7XG4gIEBJbnB1dCgpIG1vZGU6ICdtb2RlbCcgfCAncHJvY2VkdXJlJyA9ICdwcm9jZWR1cmUnO1xuICBASW5wdXQoKSBtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRPbmx5Q29tbWVudDogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlRWRpdEFjdGlvbnM6IGJvb2xlYW4gfCBudWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV2ZW50czogSHlwRXZlbnREZXRhaWxzW10gPSBbXTtcbiAgQUNUSU9OU19UWVBFUzogc3RyaW5nW107XG4gIF9hY3Rpb25zOiBIeXBBY3Rpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkcmVuKCdtZW51QnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1lbnVCdXR0b25zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICB0cmlnZ2VyczogeyBbcDogc3RyaW5nXTogU3ViamVjdDxib29sZWFuPiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgY29tbWVudHNTZXJ2aWNlOiBIeXBDb21tZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlU2VydmljZTogU2VydmljZVNlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5BQ1RJT05TX1RZUEVTID0gT2JqZWN0LmtleXMoQUNUSU9OU19UWVBFUy52YWx1ZXMpO1xuICAgIHRoaXMuQUNUSU9OU19UWVBFUy5zb3J0KChhLCBiKSA9PiBBQ1RJT05TX1RZUEVTLnZhbHVlc1thXS5vcmRlciAtIEFDVElPTlNfVFlQRVMudmFsdWVzW2JdLm9yZGVyKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZXJ2aWNlU2VydmljZS5yZWZyZXNoRGlBY3Rpb24uc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmKHJlc3VsdCl7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aW9ucy5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgQElucHV0KCkgc2V0IGFjdGlvbnMoYWN0aW9uczogSHlwQWN0aW9uW10pIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3Rpb25zID8/IFtdKSk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHRoaXMuYWN0aW9uc1xuICAgICAgLm1hcCgoYSkgPT4gKHsgW2EuaWRdOiBuZXcgU3ViamVjdDxib29sZWFuPigpIH0pKVxuICAgICAgLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pO1xuICB9XG5cbiAgQE91dHB1dCgpIHJlZnJlc2hBY3Rpb25zID0gbmV3IEV2ZW50RW1pdHRlcjxIeXBBY3Rpb25bXT4oKTtcblxuICBnZXQgYWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucztcbiAgfVxuXG4gIGdldCBlZGl0aW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMuYWN0aW9ucy5maW5kKChhY3Rpb24pID0+IGFjdGlvbi5fc3RhdHVzKTtcbiAgfVxuXG4gIG9uTW91c2VEb3duKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuZHJhZ1RhcmdldCA9ICRldmVudC50YXJnZXQ7XG4gIH1cblxuICBkcmFnU3RhcnQoJGV2ZW50OiBNb3VzZUV2ZW50LCBhY3Rpb246IEh5cEFjdGlvbiwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmRyYWdUYXJnZXQgJiYgKHRoaXMuZHJhZ1RhcmdldCBhcyBIVE1MRGl2RWxlbWVudCkuc3R5bGUubWFza0ltYWdlLmluZGV4T2YoJ3NpeF9kb3QnKSA+IC0xKSB7XG4gICAgICB0aGlzLm1vdmluZ0FjdGlvbiA9IGFjdGlvbjtcbiAgICAgIHRoaXMubW92ZVN0YXJ0ID0gJGV2ZW50LmNsaWVudFk7XG4gICAgICB0aGlzLm1vdmVJbml0aWFsSW5kZXggPSBpbmRleDtcbiAgICAgIHRoaXMuaW5pdGlhbEFjdGlvbkxpc3QgPSBbLi4udGhpcy5hY3Rpb25zXTtcbiAgICB9IGVsc2Uge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgbW92ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5tb3ZpbmdBY3Rpb24pIHtcbiAgICAgIGNvbnN0IG9mZnNldEluQ2FyZHMgPSBNYXRoLnJvdW5kKCgkZXZlbnQuY2xpZW50WSAtIHRoaXMubW92ZVN0YXJ0KSAvIFByb2NlZHVyZUFjdGlvbnNDb21wb25lbnQuQ0FSRF9IRUlHSFQpO1xuICAgICAgaWYgKHRoaXMucHJldmlvdXNPZmZzZXQgIT09IG9mZnNldEluQ2FyZHMpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c09mZnNldCA9IG9mZnNldEluQ2FyZHM7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gTWF0aC5taW4oXG4gICAgICAgICAgTWF0aC5tYXgodGhpcy5tb3ZlSW5pdGlhbEluZGV4ICsgb2Zmc2V0SW5DYXJkcywgMCksXG4gICAgICAgICAgdGhpcy5pbml0aWFsQWN0aW9uTGlzdC5sZW5ndGggLSAxXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5ld0FjdGlvbnMgPSBbLi4udGhpcy5pbml0aWFsQWN0aW9uTGlzdF07XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBuZXdBY3Rpb25zLnNwbGljZSh0aGlzLm1vdmVJbml0aWFsSW5kZXgsIDEpWzBdO1xuICAgICAgICBuZXdBY3Rpb25zLnNwbGljZShuZXdJbmRleCwgMCwgZWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5tb2RpZmllZC5uZXh0KG5ld0FjdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRyb3AoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5tb3ZlKCRldmVudCk7XG4gICAgdGhpcy5tb3ZpbmdBY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBhbGxvd0Ryb3AoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICB0b2dnbGVBY3Rpb25TdGF0dXMoaW5kZXg6IG51bWJlciwgJGV2ZW50OiBNb3VzZUV2ZW50LCBkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IG5ld0FjdGlvbnMgPSBbLi4udGhpcy5hY3Rpb25zXTtcbiAgICAgIGlmIChuZXdBY3Rpb25zW2luZGV4XS5zdGF0dXMgIT09ICdET05FJykge1xuICAgICAgICBuZXdBY3Rpb25zW2luZGV4XSA9IHtcbiAgICAgICAgICAuLi5uZXdBY3Rpb25zW2luZGV4XSxcbiAgICAgICAgICBzdGF0dXM6IG5ld0FjdGlvbnNbaW5kZXhdLnN0YXR1cyA9PT0gJ05FVycgPyAnSU5fUFJPR1JFU1MnIDogJ05FVydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tb2RpZmllZC5uZXh0KG5ld0FjdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZCgpIHtcbiAgICB0aGlzLmFjdGlvbnMucHVzaCh7IHR5cGU6ICcnLCBzdGF0dXM6ICdORVcnLCBpZDogdjQoKSwgX3N0YXR1czogJ2NyZWF0ZScgfSBhcyBIeXBBY3Rpb24pO1xuICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vZGVsID0gbW9kZWw7XG5cbiAgdXBkYXRlKGlkeDogbnVtYmVyLCBwcm9wOiBzdHJpbmcsICRldmVudDogYW55KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMuYWN0aW9uc1tpZHhdW3Byb3BdID0gJGV2ZW50O1xuICB9XG5cbiAgb3Blbk1vZGFsKGFjdGlvbjogSHlwQWN0aW9uLCBpZHg6IG51bWJlcikge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMucHJ5RGlhbG9nLm9wZW4oSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwge1xuICAgICAgb3ZlcmxheUNvbmZpZzoge1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydwcnktZGlhbG9nLWNvbnRhaW5lciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMubWVudUJ1dHRvbnMuZ2V0KGlkeCkhKVxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdKVxuICAgICAgfSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgIGVuYWJsZUVkaXRBY3Rpb25zOiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zXG4gICAgICB9IGFzIEh2eUFjdGlvbk1lbnVEYXRhXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuY2xvc2VWYWx1ZS5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICB0aGlzLnRyaWdnZXJzW2FjdGlvbi5pZF0ubmV4dCh0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgICBhY3Rpb24uX2luaXRpYWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbikpO1xuICAgICAgICAgIGFjdGlvbi5fc3RhdHVzID0gJ21vZGlmeSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgdGhpcy5hY3Rpb25zLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgICBhY3Rpb24uc3RhdHVzID0gJ0RPTkUnO1xuICAgICAgfVxuICAgICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZUFjdGlvbihhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBkZWxldGUgYWN0aW9uLl9pbml0aWFsO1xuICAgIGRlbGV0ZSBhY3Rpb24uX3N0YXR1cztcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIGNhbmNlbEFjdGlvbihhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBpZiAoYWN0aW9uLl9zdGF0dXMgPT09ICdtb2RpZnknKSB7XG4gICAgICB0aGlzLmFjdGlvbnNbaWR4XSA9IHsgLi4uYWN0aW9uLl9pbml0aWFsISB9O1xuICAgICAgZGVsZXRlIHRoaXMuYWN0aW9uc1tpZHhdLl9pbml0aWFsO1xuICAgICAgZGVsZXRlIHRoaXMuYWN0aW9uc1tpZHhdLl9zdGF0dXM7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24uX3N0YXR1cyA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgaGFwcGVuJyk7XG4gICAgfVxuICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICB9XG5cbiAgaXNWYWxpZChhY3Rpb246IEh5cEFjdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBhY3Rpb24udHlwZSAmJlxuICAgICAgKEFDVElPTlNfVFlQRVMudmFsdWVzW2FjdGlvbi50eXBlXS52YWxpZGF0b3IgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBBQ1RJT05TX1RZUEVTLnZhbHVlc1thY3Rpb24udHlwZV0udmFsaWRhdG9yIShhY3Rpb24pKVxuICAgICk7XG4gIH1cblxuICBpc0RyYWdnYWJsZShhY3Rpb246IEh5cEFjdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5lZGl0aW5nICYmIGFjdGlvbi5zdGF0dXMgPT09ICdORVcnICYmICF0aGlzLnJlYWRvbmx5ICYmIHRoaXMuZW5hYmxlRWRpdEFjdGlvbnM7XG4gIH1cblxuICB1cGRhdGVDb21tZW50KGFjdGlvbjogSHlwQWN0aW9uLCBjb21tZW50OiB7IGlkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5jb21tZW50c1NlcnZpY2Uuc2F2ZShhY3Rpb24uaWQsICdhY3Rpb25zJywgY29tbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldChhY3Rpb24uaWQsICdhY3Rpb25zJykuc3Vic2NyaWJlKChjb21tZW50cykgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnRlZC5uZXh0KHsgYWN0aW9uLCBjb21tZW50cyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zXCJcbiAgKGRyYWcpPVwibW92ZSgkZXZlbnQpXCJcbiAgKGRyb3ApPVwiZHJvcCgkZXZlbnQpXCJcbiAgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQpXCJcbj5cbiAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnM7IHRyYWNrIGFjdGlvbi5pZDsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zX19hY3Rpb25cIlxuICAgICAgW2RyYWdnYWJsZV09XCJpc0RyYWdnYWJsZShhY3Rpb24pICYmICFyZWFkb25seVwiXG4gICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydCgkZXZlbnQsIGFjdGlvbiwgaWR4KVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgW2NsYXNzLi11cGRhdGluZ109XCIhIWFjdGlvbi5fc3RhdHVzXCJcbiAgICAgIFtjbGFzcy4tb3RoZXItdXBkYXRpbmddPVwiZWRpdGluZ1wiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgQGlmICh0aGlzLmVuYWJsZUVkaXRBY3Rpb25zKSB7XG4gICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICBpY29uU3ZnPVwic2l4X2RvdFwiXG4gICAgICAgICAgICAjaGFuZGxlXG4gICAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cIiFpc0RyYWdnYWJsZShhY3Rpb24pXCJcbiAgICAgICAgICAgIFtjbGFzcy4taGlkZGVuXT1cImFjdGlvbi5fc3RhdHVzIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ3JhYmJhYmxlXCJcbiAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibnVtYmVyLWJhZGdlXCI+e3sgaWR4ICsgMSB9fTwvZGl2PlxuICAgICAgICBAaWYgKCFhY3Rpb24uX3N0YXR1cyB8fCByZWFkb25seSkge1xuICAgICAgICAgIEBpZiAobW9kZSA9PT0gJ3Byb2NlZHVyZScpIHtcbiAgICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYWN0aW9uLnN0YXR1cyAhPT0gJ05FVydcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWN0aW9uU3RhdHVzKGlkeCwgJGV2ZW50LCBhY3Rpb24uc3RhdHVzID09PSAnRE9ORScgfHwgKHJlYWRvbmx5ID8/IGZhbHNlKSlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnIHx8IChyZWFkb25seSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImFjdGlvbi5zdGF0dXMgPT09ICdET05FJyB8fCAocmVhZG9ubHkgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidAaHZ5LnByb2NlZHVyZS5jaGVja2JveC4nICsgYWN0aW9uLnN0YXR1cyB8IGkxOG5cIlxuICAgICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IFtjbGFzcy4tZG9uZV09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORSdcIiBbY2xhc3MuLWRpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgICAgIDxodnktYWN0aW9uLXBhcmFtZXRlclxuICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgIFt0eXBlXT1cImFjdGlvbi50eXBlXCJcbiAgICAgICAgICAgICAgW2lzUGFyYW1dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbZXZlbnRzXT1cInRoaXMuZXZlbnRzXCJcbiAgICAgICAgICAgICAgW21vZGVdPVwidGhpcy5tb2RlXCJcbiAgICAgICAgICAgID48L2h2eS1hY3Rpb24tcGFyYW1ldGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAoIXJlYWRvbmx5KSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJvcGVuTW9kYWwoYWN0aW9uLCBpZHgpXCIgW2Rpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJtb3JlX2hvcml6XCIgI21lbnVCdXR0b24+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uX19jcmVhdGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9fY3JlYXRlX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHA+e3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi4nICsgYWN0aW9uLl9zdGF0dXMgfCBpMThuIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJzYXZlQWN0aW9uKGFjdGlvbiwgaWR4KVwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZChhY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGVja1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjYW5jZWxBY3Rpb24oYWN0aW9uLCBpZHgpXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFjdGlvbi50eXBlXCJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQUNUSU9OU19UWVBFU1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlKGlkeCwgJ3R5cGUnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5wcm9jZWR1cmUuYWN0aW9uLlwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucGxhY2Vob2xkZXIuYWN0aW9uJyB8IGkxOG5cIlxuICAgICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHZ5LWFjdGlvbi1wYXJhbWV0ZXJcbiAgICAgICAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAgICAgICBbdHlwZV09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgIFtpc1BhcmFtXT1cInRydWVcIlxuICAgICAgICAgICAgICBbZXZlbnRzXT1cInRoaXMuZXZlbnRzXCJcbiAgICAgICAgICAgICAgW21vZGVdPVwidGhpcy5tb2RlXCJcbiAgICAgICAgICAgID48L2h2eS1hY3Rpb24tcGFyYW1ldGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxodnktY29tbWVudHNcbiAgICAgICAgW2xhc3RDb21tZW50XT1cImFjdGlvbi5sYXN0Q29tbWVudFwiXG4gICAgICAgIFtjb21tZW50Q291bnRdPVwiYWN0aW9uLmNvbW1lbnRzQ291bnRcIlxuICAgICAgICBbb2JqZWN0SWRdPVwiYWN0aW9uLmlkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRPbmx5Q29tbWVudFwiXG4gICAgICAgIChjb21tZW50ZWQpPVwidXBkYXRlQ29tbWVudChhY3Rpb24sICRldmVudClcIlxuICAgICAgICBbdHlwZV09XCInYWN0aW9ucydcIlxuICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2Vyc1thY3Rpb24uaWRdXCJcbiAgICAgICAgW2Rpc3BsYXlFbXB0eV09XCJmYWxzZVwiXG4gICAgICAgIFttZV09XCJtZVwiXG4gICAgICA+PC9odnktY29tbWVudHM+XG4gICAgPC9kaXY+XG4gIH0gQGVtcHR5IHtcbiAgICBAaWYgKGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUubm9BY3Rpb24nIHwgaTE4biB9fTwvZGl2PlxuICAgIH1cbiAgfVxuICBAaWYgKCFyZWFkb25seSAmJiBlbmFibGVFZGl0QWN0aW9ucykge1xuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2J1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZCgpXCIgW2Rpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRcIj48L3ByeS1pY29uPlxuICAgICAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLmFkZCcgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUy9CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7YUFDOUQsZ0JBQVcsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQXFCeEIsWUFDVSxTQUEyQixFQUMzQixPQUFnQixFQUNoQixlQUFtQyxFQUNuQyxjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUxBLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLG1C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SztnQkFHNEMsV0FBVztzQkFBNUQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQXNCbkMsT0FBTztzQkFBbkIsS0FBSztnQkFPSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBtb2RlbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nU2VydmljZSwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwgSHZ5QWN0aW9uTWVudURhdGEgfSBmcm9tICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQUNUSU9OU19UWVBFUyB9IGZyb20gJy4vYWN0aW9ucy10eXBlcy5jb25zdGFudCc7XG5pbXBvcnQgeyBIeXBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9jb21tZW50cy9jb21tZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cENvbW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9jb21tZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0b3JlL3NlcnZpY2Uvc2VydmljZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LXByb2NlZHVyZS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgc3RhdGljIENBUkRfSEVJR0hUID0gNzU7XG4gIG1vdmluZ0FjdGlvbj86IEh5cEFjdGlvbjtcbiAgbW92ZVN0YXJ0ID0gMDtcbiAgbW92ZUluaXRpYWxJbmRleCA9IDA7XG4gIGluaXRpYWxBY3Rpb25MaXN0OiBIeXBBY3Rpb25bXSA9IFtdO1xuICBwcmV2aW91c09mZnNldCA9IDA7XG4gIGRyYWdUYXJnZXQ/OiBFdmVudFRhcmdldCB8IG51bGw7XG4gIEBPdXRwdXQoKSBtb2RpZmllZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHlwQWN0aW9uW10+KCk7XG4gIEBPdXRwdXQoKSBjb21tZW50ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBIeXBBY3Rpb247IGNvbW1lbnRzOiBIeXBDb21tZW50W10gfT4oKTtcbiAgQElucHV0KCkgbW9kZTogJ21vZGVsJyB8ICdwcm9jZWR1cmUnID0gJ3Byb2NlZHVyZSc7XG4gIEBJbnB1dCgpIG1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZE9ubHlDb21tZW50OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVFZGl0QWN0aW9uczogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSA9IFtdO1xuICBBQ1RJT05TX1RZUEVTOiBzdHJpbmdbXTtcbiAgX2FjdGlvbnM6IEh5cEFjdGlvbltdID0gW107XG4gIEBWaWV3Q2hpbGRyZW4oJ21lbnVCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbWVudUJ1dHRvbnMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIHRyaWdnZXJzOiB7IFtwOiBzdHJpbmddOiBTdWJqZWN0PGJvb2xlYW4+IH0gPSB7fTtcbiAgY2xlYXJpbmdBY3Rpb25BbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgY29tbWVudHNTZXJ2aWNlOiBIeXBDb21tZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlU2VydmljZTogU2VydmljZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLkFDVElPTlNfVFlQRVMgPSBPYmplY3Qua2V5cyhBQ1RJT05TX1RZUEVTLnZhbHVlcyk7XG4gICAgdGhpcy5BQ1RJT05TX1RZUEVTLnNvcnQoKGEsIGIpID0+IEFDVElPTlNfVFlQRVMudmFsdWVzW2FdLm9yZGVyIC0gQUNUSU9OU19UWVBFUy52YWx1ZXNbYl0ub3JkZXIpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2VTZXJ2aWNlLnJlZnJlc2hEaUFjdGlvbi5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aW9ucy5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zKGFjdGlvbnM6IEh5cEFjdGlvbltdKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYWN0aW9ucyA/PyBbXSkpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB0aGlzLmFjdGlvbnNcbiAgICAgIC5tYXAoKGEpID0+ICh7IFthLmlkXTogbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKSB9KSlcbiAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWZyZXNoQWN0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8SHlwQWN0aW9uW10+KCk7XG5cbiAgZ2V0IGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICBnZXQgZWRpdGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGlvbnMuZmluZCgoYWN0aW9uKSA9PiBhY3Rpb24uX3N0YXR1cyk7XG4gIH1cblxuICBvbk1vdXNlRG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmRyYWdUYXJnZXQgPSAkZXZlbnQudGFyZ2V0O1xuICB9XG5cbiAgZHJhZ1N0YXJ0KCRldmVudDogTW91c2VFdmVudCwgYWN0aW9uOiBIeXBBY3Rpb24sIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5kcmFnVGFyZ2V0ICYmICh0aGlzLmRyYWdUYXJnZXQgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLm1hc2tJbWFnZS5pbmRleE9mKCdzaXhfZG90JykgPiAtMSkge1xuICAgICAgdGhpcy5tb3ZpbmdBY3Rpb24gPSBhY3Rpb247XG4gICAgICB0aGlzLm1vdmVTdGFydCA9ICRldmVudC5jbGllbnRZO1xuICAgICAgdGhpcy5tb3ZlSW5pdGlhbEluZGV4ID0gaW5kZXg7XG4gICAgICB0aGlzLmluaXRpYWxBY3Rpb25MaXN0ID0gWy4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmUoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMubW92aW5nQWN0aW9uKSB7XG4gICAgICBjb25zdCBvZmZzZXRJbkNhcmRzID0gTWF0aC5yb3VuZCgoJGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vdmVTdGFydCkgLyBQcm9jZWR1cmVBY3Rpb25zQ29tcG9uZW50LkNBUkRfSEVJR0hUKTtcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzT2Zmc2V0ICE9PSBvZmZzZXRJbkNhcmRzKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNPZmZzZXQgPSBvZmZzZXRJbkNhcmRzO1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IE1hdGgubWluKFxuICAgICAgICAgIE1hdGgubWF4KHRoaXMubW92ZUluaXRpYWxJbmRleCArIG9mZnNldEluQ2FyZHMsIDApLFxuICAgICAgICAgIHRoaXMuaW5pdGlhbEFjdGlvbkxpc3QubGVuZ3RoIC0gMVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXdBY3Rpb25zID0gWy4uLnRoaXMuaW5pdGlhbEFjdGlvbkxpc3RdO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbmV3QWN0aW9ucy5zcGxpY2UodGhpcy5tb3ZlSW5pdGlhbEluZGV4LCAxKVswXTtcbiAgICAgICAgbmV3QWN0aW9ucy5zcGxpY2UobmV3SW5kZXgsIDAsIGVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXMubW9kaWZpZWQubmV4dChuZXdBY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkcm9wKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMubW92ZSgkZXZlbnQpO1xuICAgIHRoaXMubW92aW5nQWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYWxsb3dEcm9wKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgdG9nZ2xlQWN0aW9uU3RhdHVzKGluZGV4OiBudW1iZXIsICRldmVudDogTW91c2VFdmVudCwgZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBjb25zdCBuZXdBY3Rpb25zID0gWy4uLnRoaXMuYWN0aW9uc107XG4gICAgICBpZiAobmV3QWN0aW9uc1tpbmRleF0uc3RhdHVzICE9PSAnRE9ORScpIHtcbiAgICAgICAgbmV3QWN0aW9uc1tpbmRleF0gPSB7XG4gICAgICAgICAgLi4ubmV3QWN0aW9uc1tpbmRleF0sXG4gICAgICAgICAgc3RhdHVzOiBuZXdBY3Rpb25zW2luZGV4XS5zdGF0dXMgPT09ICdORVcnID8gJ0lOX1BST0dSRVNTJyA6ICdORVcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubW9kaWZpZWQubmV4dChuZXdBY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGQoKSB7XG4gICAgdGhpcy5hY3Rpb25zLnB1c2goeyB0eXBlOiAnJywgc3RhdHVzOiAnTkVXJywgaWQ6IHY0KCksIF9zdGF0dXM6ICdjcmVhdGUnIH0gYXMgSHlwQWN0aW9uKTtcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RlbCA9IG1vZGVsO1xuXG4gIHVwZGF0ZShpZHg6IG51bWJlciwgcHJvcDogc3RyaW5nLCAkZXZlbnQ6IGFueSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLmFjdGlvbnNbaWR4XVtwcm9wXSA9ICRldmVudDtcblxuICAgIGlmICh0aGlzLmNsZWFyaW5nQWN0aW9uQWxsb3dlZCAmJiBwcm9wID09ICd0eXBlJykge1xuICAgICAgdGhpcy5jbGVhckFjdGlvbihpZHgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyQWN0aW9uKGlkeDogbnVtYmVyKSB7XG4gICAgY29uc3QgeyB0eXBlLCBzdGF0dXMsIGlkLCBfc3RhdHVzLCBfaW5pdGlhbCB9ID0gdGhpcy5hY3Rpb25zW2lkeF07XG4gICAgdGhpcy5hY3Rpb25zW2lkeF0gPSB7IHR5cGUsIHN0YXR1cywgaWQsIF9zdGF0dXMsIF9pbml0aWFsIH0gYXMgSHlwQWN0aW9uO1xuICB9XG5cbiAgb3Blbk1vZGFsKGFjdGlvbjogSHlwQWN0aW9uLCBpZHg6IG51bWJlcikge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMucHJ5RGlhbG9nLm9wZW4oSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwge1xuICAgICAgb3ZlcmxheUNvbmZpZzoge1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydwcnktZGlhbG9nLWNvbnRhaW5lciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMubWVudUJ1dHRvbnMuZ2V0KGlkeCkhKVxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdKVxuICAgICAgfSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgIGVuYWJsZUVkaXRBY3Rpb25zOiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zXG4gICAgICB9IGFzIEh2eUFjdGlvbk1lbnVEYXRhXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuY2xvc2VWYWx1ZS5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICB0aGlzLnRyaWdnZXJzW2FjdGlvbi5pZF0ubmV4dCh0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgICBhY3Rpb24uX2luaXRpYWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbikpO1xuICAgICAgICAgIGFjdGlvbi5fc3RhdHVzID0gJ21vZGlmeSc7XG4gICAgICAgICAgdGhpcy5jbGVhcmluZ0FjdGlvbkFsbG93ZWQgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJpbmdBY3Rpb25BbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgICB9LCA1MDApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZG9uZSc6XG4gICAgICAgICAgYWN0aW9uLnN0YXR1cyA9ICdET05FJztcbiAgICAgIH1cbiAgICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVBY3Rpb24oYWN0aW9uOiBIeXBBY3Rpb24sIGlkeDogbnVtYmVyKSB7XG4gICAgZGVsZXRlIGFjdGlvbi5faW5pdGlhbDtcbiAgICBkZWxldGUgYWN0aW9uLl9zdGF0dXM7XG4gICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gIH1cblxuICBjYW5jZWxBY3Rpb24oYWN0aW9uOiBIeXBBY3Rpb24sIGlkeDogbnVtYmVyKSB7XG4gICAgaWYgKGFjdGlvbi5fc3RhdHVzID09PSAnbW9kaWZ5Jykge1xuICAgICAgdGhpcy5hY3Rpb25zW2lkeF0gPSB7IC4uLmFjdGlvbi5faW5pdGlhbCEgfTtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbaWR4XS5faW5pdGlhbDtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbaWR4XS5fc3RhdHVzO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLl9zdGF0dXMgPT09ICdjcmVhdGUnKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhcHBlbicpO1xuICAgIH1cbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIGlzVmFsaWQoYWN0aW9uOiBIeXBBY3Rpb24pIHtcbiAgICByZXR1cm4gKFxuICAgICAgYWN0aW9uLnR5cGUgJiZcbiAgICAgIChBQ1RJT05TX1RZUEVTLnZhbHVlc1thY3Rpb24udHlwZV0udmFsaWRhdG9yID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgQUNUSU9OU19UWVBFUy52YWx1ZXNbYWN0aW9uLnR5cGVdLnZhbGlkYXRvciEoYWN0aW9uKSlcbiAgICApO1xuICB9XG5cbiAgaXNEcmFnZ2FibGUoYWN0aW9uOiBIeXBBY3Rpb24pIHtcbiAgICByZXR1cm4gIXRoaXMuZWRpdGluZyAmJiBhY3Rpb24uc3RhdHVzID09PSAnTkVXJyAmJiAhdGhpcy5yZWFkb25seSAmJiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zO1xuICB9XG5cbiAgdXBkYXRlQ29tbWVudChhY3Rpb246IEh5cEFjdGlvbiwgY29tbWVudDogeyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLnNhdmUoYWN0aW9uLmlkLCAnYWN0aW9ucycsIGNvbW1lbnQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNvbW1lbnRzU2VydmljZS5nZXQoYWN0aW9uLmlkLCAnYWN0aW9ucycpLnN1YnNjcmliZSgoY29tbWVudHMpID0+IHtcbiAgICAgICAgdGhpcy5jb21tZW50ZWQubmV4dCh7IGFjdGlvbiwgY29tbWVudHMgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc1wiXG4gIChkcmFnKT1cIm1vdmUoJGV2ZW50KVwiXG4gIChkcm9wKT1cImRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50KVwiXG4+XG4gIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zOyB0cmFjayBhY3Rpb24uaWQ7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uXCJcbiAgICAgIFtkcmFnZ2FibGVdPVwiaXNEcmFnZ2FibGUoYWN0aW9uKSAmJiAhcmVhZG9ubHlcIlxuICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50LCBhY3Rpb24sIGlkeClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy4tdXBkYXRpbmddPVwiISFhY3Rpb24uX3N0YXR1c1wiXG4gICAgICBbY2xhc3MuLW90aGVyLXVwZGF0aW5nXT1cImVkaXRpbmdcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgIEBpZiAodGhpcy5lbmFibGVFZGl0QWN0aW9ucykge1xuICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgaWNvblN2Zz1cInNpeF9kb3RcIlxuICAgICAgICAgICAgI2hhbmRsZVxuICAgICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCIhaXNEcmFnZ2FibGUoYWN0aW9uKVwiXG4gICAgICAgICAgICBbY2xhc3MuLWhpZGRlbl09XCJhY3Rpb24uX3N0YXR1cyB8fCByZWFkb25seVwiXG4gICAgICAgICAgICBjbGFzcz1cImdyYWJiYWJsZVwiXG4gICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlci1iYWRnZVwiPnt7IGlkeCArIDEgfX08L2Rpdj5cbiAgICAgICAgQGlmICghYWN0aW9uLl9zdGF0dXMgfHwgcmVhZG9ubHkpIHtcbiAgICAgICAgICBAaWYgKG1vZGUgPT09ICdwcm9jZWR1cmUnKSB7XG4gICAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFjdGlvbi5zdGF0dXMgIT09ICdORVcnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFjdGlvblN0YXR1cyhpZHgsICRldmVudCwgYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnIHx8IChyZWFkb25seSA/PyBmYWxzZSkpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5zdGF0dXMgPT09ICdET05FJyB8fCAocmVhZG9ubHkgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORScgfHwgKHJlYWRvbmx5ID8/IGZhbHNlKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQGh2eS5wcm9jZWR1cmUuY2hlY2tib3guJyArIGFjdGlvbi5zdGF0dXMgfCBpMThuXCJcbiAgICAgICAgICAgID48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBbY2xhc3MuLWRvbmVdPVwiYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnXCIgW2NsYXNzLi1kaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgICAgICA8aHZ5LWFjdGlvbi1wYXJhbWV0ZXJcbiAgICAgICAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAgICAgICBbdHlwZV09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgIFtpc1BhcmFtXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2V2ZW50c109XCJ0aGlzLmV2ZW50c1wiXG4gICAgICAgICAgICAgIFttb2RlXT1cInRoaXMubW9kZVwiXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICA+PC9odnktYWN0aW9uLXBhcmFtZXRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwib3Blbk1vZGFsKGFjdGlvbiwgaWR4KVwiIFtkaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwibW9yZV9ob3JpelwiICNtZW51QnV0dG9uPjwvcHJ5LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9fY3JlYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zX19hY3Rpb25fX2NyZWF0ZV9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxwPnt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uJyArIGFjdGlvbi5fc3RhdHVzIHwgaTE4biB9fTwvcD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwic2F2ZUFjdGlvbihhY3Rpb24sIGlkeClcIiBbZGlzYWJsZWRdPVwiIWlzVmFsaWQoYWN0aW9uKVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwiY2FuY2VsQWN0aW9uKGFjdGlvbiwgaWR4KVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIkFDVElPTlNfVFlQRVNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZShpZHgsICd0eXBlJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgaTE4blByZWZpeD1cIkBodnkucHJvY2VkdXJlLmFjdGlvbi5cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnBsYWNlaG9sZGVyLmFjdGlvbicgfCBpMThuXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGh2eS1hY3Rpb24tcGFyYW1ldGVyXG4gICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiYWN0aW9uLnR5cGVcIlxuICAgICAgICAgICAgICBbaXNQYXJhbV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2V2ZW50c109XCJ0aGlzLmV2ZW50c1wiXG4gICAgICAgICAgICAgIFttb2RlXT1cInRoaXMubW9kZVwiXG4gICAgICAgICAgICA+PC9odnktYWN0aW9uLXBhcmFtZXRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8aHZ5LWNvbW1lbnRzXG4gICAgICAgIFtsYXN0Q29tbWVudF09XCJhY3Rpb24ubGFzdENvbW1lbnRcIlxuICAgICAgICBbY29tbWVudENvdW50XT1cImFjdGlvbi5jb21tZW50c0NvdW50XCJcbiAgICAgICAgW29iamVjdElkXT1cImFjdGlvbi5pZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkT25seUNvbW1lbnRcIlxuICAgICAgICAoY29tbWVudGVkKT1cInVwZGF0ZUNvbW1lbnQoYWN0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgW3R5cGVdPVwiJ2FjdGlvbnMnXCJcbiAgICAgICAgW3RyaWdnZXJdPVwidHJpZ2dlcnNbYWN0aW9uLmlkXVwiXG4gICAgICAgIFtkaXNwbGF5RW1wdHldPVwiZmFsc2VcIlxuICAgICAgICBbbWVdPVwibWVcIlxuICAgICAgPjwvaHZ5LWNvbW1lbnRzPlxuICAgIDwvZGl2PlxuICB9IEBlbXB0eSB7XG4gICAgQGlmIChhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPGRpdj57eyAnQGh2eS5ldmVudC5sb2cucHJvY2VkdXJlLm5vQWN0aW9uJyB8IGkxOG4gfX08L2Rpdj5cbiAgICB9XG4gIH1cbiAgQGlmICghcmVhZG9ubHkgJiYgZW5hYmxlRWRpdEFjdGlvbnMpIHtcbiAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19idXR0b25cIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJhZGQoKVwiIFtkaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAge3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi5hZGQnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|