verben-workflow-ui 0.5.78 → 0.5.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +30 -13
  2. package/esm2022/src/lib/components/form-group/form-group.component.mjs +62 -11
  3. package/esm2022/src/lib/components/form-group/form-group.module.mjs +6 -2
  4. package/esm2022/src/lib/components/form-group/form-group.service.mjs +6 -1
  5. package/esm2022/src/lib/components/forms/forms.component.mjs +4 -4
  6. package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +3 -3
  7. package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +3 -38
  8. package/esm2022/src/lib/components/task-history/task-history.component.mjs +2 -2
  9. package/esm2022/src/lib/models/DataType.mjs +8 -1
  10. package/esm2022/src/lib/models/EAVEntity.mjs +2 -0
  11. package/esm2022/src/lib/models/FormEntity.mjs +1 -1
  12. package/esm2022/src/lib/models/public-api.mjs +2 -1
  13. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +97 -20
  14. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
  15. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
  16. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +4 -39
  17. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
  18. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +2 -2
  19. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
  20. package/fesm2022/verben-workflow-ui-src-lib-models.mjs +7 -0
  21. package/fesm2022/verben-workflow-ui-src-lib-models.mjs.map +1 -1
  22. package/package.json +34 -34
  23. package/src/lib/components/form-group/form-fields/form-fields.component.d.ts +1 -0
  24. package/src/lib/components/form-group/form-group.component.d.ts +6 -1
  25. package/src/lib/components/form-group/form-group.module.d.ts +3 -2
  26. package/src/lib/components/my-queue/my-queue.facade.d.ts +0 -1
  27. package/src/lib/models/DataType.d.ts +8 -1
  28. package/src/lib/models/EAVEntity.d.ts +4 -0
  29. package/src/lib/models/FormEntity.d.ts +1 -0
  30. package/src/lib/models/public-api.d.ts +1 -0
@@ -212,10 +212,10 @@ export class TaskHistoryComponent {
212
212
  this.utilService.openFullRouteInNewWindow(`${this.envSvc.environment.FILE_BASE_URL}${fileUrl}`);
213
213
  }
214
214
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskHistoryComponent, deps: [{ token: i1.Location }, { token: i2.TaskHistoryService }, { token: i3.EnvironmentService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
215
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TaskHistoryComponent, selector: "lib-task-history", inputs: { taskCode: { classPropertyName: "taskCode", publicName: "taskCode", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"bg-[var(--vbn-color-surface-alt)]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[var(--vbn-color-surface)] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[var(--vbn-color-primary)]': active === i,\n 'bg-transparent border-transparent hover:bg-[var(--vbn-color-surface-alt)]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[var(--vbn-color-text)] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'var(--vbn-color-text)'\" [backgroundColor]=\"'var(--vbn-color-surface)'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[var(--vbn-color-text-muted)] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span class=\"font-medium text-[var(--vbn-color-text)]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[var(--vbn-color-border)] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[var(--vbn-color-primary)] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[var(--vbn-color-text)] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[var(--vbn-color-text-muted)] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[var(--vbn-color-text-muted)] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[var(--vbn-color-surface-alt)] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">From:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">To:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[var(--vbn-color-text-muted)] text-sm border px-3 py-2 rounded-lg bg-[var(--vbn-color-surface-alt)] mt-3 border-[var(--vbn-color-border)] hover:bg-[var(--vbn-color-surface-alt)] hover:border-[var(--vbn-color-border)] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[var(--vbn-color-surface)]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[var(--vbn-color-surface)] text-[var(--vbn-color-text)] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n", styles: [".bg-\\[#D4A00773\\]{background-color:#d4a00773}.bg-\\[var(--vbn-color-surface)\\]{background-color:var(--vbn-color-surface)}.bg-\\[#d3d3d32a\\]{background-color:#d3d3d32a}.bg-\\[var(--vbn-color-surface-alt)\\]{background-color:var(--vbn-color-surface-alt)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\\[#D9AEAE\\]{--tw-gradient-from: #d9aeae;--tw-gradient-to: rgb(217 174 174 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\\[#E3C79F\\]{--tw-gradient-to: rgb(227 199 159 / 0);--tw-gradient-stops: var(--tw-gradient-from), #e3c79f, var(--tw-gradient-to)}.to-\\[var(--vbn-color-primary)\\]{--tw-gradient-to: var(--vbn-color-primary)}.mx-8{margin-left:2rem;margin-right:2rem}.rounded-lg{border-radius:.5rem}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.font-semibold{font-weight:600}.cursor-pointer{cursor:pointer}.grid{display:grid}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-7{grid-column:span 7 / span 7}.col-span-5{grid-column:span 5 / span 5}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pt-10{padding-top:2.5rem}.relative{position:relative}.absolute{position:absolute}.block{display:block}.h-ninety{height:90%}.border{border-width:1px}.border-secondary-200{border-color:var(--vbn-color-border)}.left-\\[150px\\]{left:150px}.mb-7{margin-bottom:1.75rem}.w-\\[100px\\]{width:100px}.ml-24{margin-left:6rem}.min-w-\\[250px\\]{min-width:250px}.p-6{padding:1.5rem}.rounded-md{border-radius:.375rem}.after\\:absolute:after{content:\"\";position:absolute}.after\\:-left-\\[90px\\]:after{left:-90px}.after\\:top-0:after{top:0}.after\\:h-full:after{height:100%}.after\\:border-l-2:after{border-left-width:2px}.border-none{border-style:none}.font-bold{font-weight:700}.text-lg{font-size:1.125rem;line-height:1.75rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[var(--vbn-color-text-muted)\\]{color:var(--vbn-color-text-muted)}.gap-2{gap:.5rem}.w-fit{width:fit-content}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.mt-2{margin-top:.5rem}.border-\\[var(--vbn-color-border)\\]{border-color:var(--vbn-color-border)}.ml-\\[3px\\]{margin-left:3px}.underline{text-decoration-line:underline}.text-\\[var(--vbn-color-border-focus)\\]{color:var(--vbn-color-border-focus)}.mt-\\[4px\\]{margin-top:4px}.z-\\[10000\\]{z-index:10000}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.w-\\[326px\\]{width:326px}.gap-4{gap:1rem}.w-\\[50px\\]{width:50px}.rounded-full{border-radius:9999px}.gap-3{gap:.75rem}.mt-4{margin-top:1rem}.h-\\[50px\\]{height:50px}.w-\\[480px\\]{width:480px}.text-xs{font-size:.75rem;line-height:1rem}.text-right{text-align:right}.text-\\[var(--vbn-color-text)\\]{color:var(--vbn-color-text)}.leading-relaxed{line-height:1.625}.p-8{padding:2rem}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i6.FileUploadComponent, selector: "file-upload", inputs: ["multiple", "label", "accept", "selectedFiles", "disabled"], outputs: ["selectedFilesChange"] }, { kind: "component", type: i4.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
215
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TaskHistoryComponent, selector: "lib-task-history", inputs: { taskCode: { classPropertyName: "taskCode", publicName: "taskCode", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"bg-[var(--vbn-color-surface-alt)]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[var(--vbn-color-surface)] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[var(--vbn-color-primary)]': active === i,\n 'bg-transparent border-transparent hover:bg-[var(--vbn-color-surface-alt)]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[var(--vbn-color-text)] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'var(--vbn-color-text)'\" [backgroundColor]=\"'var(--vbn-color-surface)'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[var(--vbn-color-text-muted)] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span class=\"font-medium text-[var(--vbn-color-text)]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[var(--vbn-color-border)] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[var(--vbn-color-primary)] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[var(--vbn-color-text)] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[var(--vbn-color-text-muted)] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[var(--vbn-color-text-muted)] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[var(--vbn-color-surface-alt)] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">From:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">To:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[var(--vbn-color-text-muted)] text-sm border px-3 py-2 rounded-lg bg-[var(--vbn-color-surface-alt)] mt-3 border-[var(--vbn-color-border)] hover:bg-[var(--vbn-color-surface-alt)] hover:border-[var(--vbn-color-border)] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[var(--vbn-color-surface)]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[var(--vbn-color-surface)] text-[var(--vbn-color-text)] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n", styles: [".bg-\\[#D4A00773\\]{background-color:#d4a00773}.bg-\\[var\\(--vbn-color-surface\\)\\]{background-color:var(--vbn-color-surface)}.bg-\\[#d3d3d32a\\]{background-color:#d3d3d32a}.bg-\\[var\\(--vbn-color-surface-alt\\)\\]{background-color:var(--vbn-color-surface-alt)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\\[#D9AEAE\\]{--tw-gradient-from: #d9aeae;--tw-gradient-to: rgb(217 174 174 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\\[#E3C79F\\]{--tw-gradient-to: rgb(227 199 159 / 0);--tw-gradient-stops: var(--tw-gradient-from), #e3c79f, var(--tw-gradient-to)}.to-\\[var\\(--vbn-color-primary\\)\\]{--tw-gradient-to: var(--vbn-color-primary)}.mx-8{margin-left:2rem;margin-right:2rem}.rounded-lg{border-radius:.5rem}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.font-semibold{font-weight:600}.cursor-pointer{cursor:pointer}.grid{display:grid}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-7{grid-column:span 7 / span 7}.col-span-5{grid-column:span 5 / span 5}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pt-10{padding-top:2.5rem}.relative{position:relative}.absolute{position:absolute}.block{display:block}.h-ninety{height:90%}.border{border-width:1px}.border-secondary-200{border-color:var(--vbn-color-border)}.left-\\[150px\\]{left:150px}.mb-7{margin-bottom:1.75rem}.w-\\[100px\\]{width:100px}.ml-24{margin-left:6rem}.min-w-\\[250px\\]{min-width:250px}.p-6{padding:1.5rem}.rounded-md{border-radius:.375rem}.after\\:absolute:after{content:\"\";position:absolute}.after\\:-left-\\[90px\\]:after{left:-90px}.after\\:top-0:after{top:0}.after\\:h-full:after{height:100%}.after\\:border-l-2:after{border-left-width:2px}.border-none{border-style:none}.font-bold{font-weight:700}.text-lg{font-size:1.125rem;line-height:1.75rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[var\\(--vbn-color-text-muted\\)\\]{color:var(--vbn-color-text-muted)}.gap-2{gap:.5rem}.w-fit{width:fit-content}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.mt-2{margin-top:.5rem}.border-\\[var\\(--vbn-color-border\\)\\]{border-color:var(--vbn-color-border)}.ml-\\[3px\\]{margin-left:3px}.underline{text-decoration-line:underline}.text-\\[var\\(--vbn-color-border-focus\\)\\]{color:var(--vbn-color-border-focus)}.mt-\\[4px\\]{margin-top:4px}.z-\\[10000\\]{z-index:10000}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.w-\\[326px\\]{width:326px}.gap-4{gap:1rem}.w-\\[50px\\]{width:50px}.rounded-full{border-radius:9999px}.gap-3{gap:.75rem}.mt-4{margin-top:1rem}.h-\\[50px\\]{height:50px}.w-\\[480px\\]{width:480px}.text-xs{font-size:.75rem;line-height:1rem}.text-right{text-align:right}.text-\\[var\\(--vbn-color-text\\)\\]{color:var(--vbn-color-text)}.leading-relaxed{line-height:1.625}.p-8{padding:2rem}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i6.FileUploadComponent, selector: "file-upload", inputs: ["multiple", "label", "accept", "selectedFiles", "disabled"], outputs: ["selectedFilesChange"] }, { kind: "component", type: i4.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
216
216
  }
217
217
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TaskHistoryComponent, decorators: [{
218
218
  type: Component,
219
- args: [{ selector: 'lib-task-history', template: "<div class=\"bg-[var(--vbn-color-surface-alt)]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[var(--vbn-color-surface)] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[var(--vbn-color-primary)]': active === i,\n 'bg-transparent border-transparent hover:bg-[var(--vbn-color-surface-alt)]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[var(--vbn-color-text)] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'var(--vbn-color-text)'\" [backgroundColor]=\"'var(--vbn-color-surface)'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[var(--vbn-color-text-muted)] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span class=\"font-medium text-[var(--vbn-color-text)]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[var(--vbn-color-border)] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[var(--vbn-color-primary)] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[var(--vbn-color-text)] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[var(--vbn-color-text-muted)] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[var(--vbn-color-text-muted)] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[var(--vbn-color-surface-alt)] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">From:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">To:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[var(--vbn-color-text-muted)] text-sm border px-3 py-2 rounded-lg bg-[var(--vbn-color-surface-alt)] mt-3 border-[var(--vbn-color-border)] hover:bg-[var(--vbn-color-surface-alt)] hover:border-[var(--vbn-color-border)] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[var(--vbn-color-surface)]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[var(--vbn-color-surface)] text-[var(--vbn-color-text)] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n", styles: [".bg-\\[#D4A00773\\]{background-color:#d4a00773}.bg-\\[var(--vbn-color-surface)\\]{background-color:var(--vbn-color-surface)}.bg-\\[#d3d3d32a\\]{background-color:#d3d3d32a}.bg-\\[var(--vbn-color-surface-alt)\\]{background-color:var(--vbn-color-surface-alt)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\\[#D9AEAE\\]{--tw-gradient-from: #d9aeae;--tw-gradient-to: rgb(217 174 174 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\\[#E3C79F\\]{--tw-gradient-to: rgb(227 199 159 / 0);--tw-gradient-stops: var(--tw-gradient-from), #e3c79f, var(--tw-gradient-to)}.to-\\[var(--vbn-color-primary)\\]{--tw-gradient-to: var(--vbn-color-primary)}.mx-8{margin-left:2rem;margin-right:2rem}.rounded-lg{border-radius:.5rem}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.font-semibold{font-weight:600}.cursor-pointer{cursor:pointer}.grid{display:grid}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-7{grid-column:span 7 / span 7}.col-span-5{grid-column:span 5 / span 5}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pt-10{padding-top:2.5rem}.relative{position:relative}.absolute{position:absolute}.block{display:block}.h-ninety{height:90%}.border{border-width:1px}.border-secondary-200{border-color:var(--vbn-color-border)}.left-\\[150px\\]{left:150px}.mb-7{margin-bottom:1.75rem}.w-\\[100px\\]{width:100px}.ml-24{margin-left:6rem}.min-w-\\[250px\\]{min-width:250px}.p-6{padding:1.5rem}.rounded-md{border-radius:.375rem}.after\\:absolute:after{content:\"\";position:absolute}.after\\:-left-\\[90px\\]:after{left:-90px}.after\\:top-0:after{top:0}.after\\:h-full:after{height:100%}.after\\:border-l-2:after{border-left-width:2px}.border-none{border-style:none}.font-bold{font-weight:700}.text-lg{font-size:1.125rem;line-height:1.75rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[var(--vbn-color-text-muted)\\]{color:var(--vbn-color-text-muted)}.gap-2{gap:.5rem}.w-fit{width:fit-content}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.mt-2{margin-top:.5rem}.border-\\[var(--vbn-color-border)\\]{border-color:var(--vbn-color-border)}.ml-\\[3px\\]{margin-left:3px}.underline{text-decoration-line:underline}.text-\\[var(--vbn-color-border-focus)\\]{color:var(--vbn-color-border-focus)}.mt-\\[4px\\]{margin-top:4px}.z-\\[10000\\]{z-index:10000}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.w-\\[326px\\]{width:326px}.gap-4{gap:1rem}.w-\\[50px\\]{width:50px}.rounded-full{border-radius:9999px}.gap-3{gap:.75rem}.mt-4{margin-top:1rem}.h-\\[50px\\]{height:50px}.w-\\[480px\\]{width:480px}.text-xs{font-size:.75rem;line-height:1rem}.text-right{text-align:right}.text-\\[var(--vbn-color-text)\\]{color:var(--vbn-color-text)}.leading-relaxed{line-height:1.625}.p-8{padding:2rem}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"] }]
219
+ args: [{ selector: 'lib-task-history', template: "<div class=\"bg-[var(--vbn-color-surface-alt)]\">\n <header class=\"mx-8 rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\">\n <h4 class=\"font-semibold\">{{ taskCode() }}</h4>\n <div class=\"flex gap-4 items-center\">\n <verbena-button (click)=\"addComment()\" text=\"+ Add Comment\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verben-svg (click)=\"goBack()\" class=\"cursor-pointer\" [width]=\"17\" [height]=\"17\" [icon]=\"'go-back'\"></verben-svg>\n </div>\n </header>\n <section class=\"grid grid-cols-12\">\n <div class=\"bg-[var(--vbn-color-surface)] col-span-7 pl-16 pt-20 relative\">\n <div *ngIf=\"showCommentBox\" class=\"mb-6 mr-10\">\n <h4 class=\"font-bold text-lg mb-2\">Add Comment</h4>\n <!-- <verbena-textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full\"></verbena-textarea> -->\n <textarea [(ngModel)]=\"newComment\" label=\"Comment\" class=\"w-full border rounded-md p-2\"></textarea>\n <div class=\"mt-4\">\n <file-upload (selectedFilesChange)=\"onFileSelect($event)\" [multiple]=\"true\" label=\"Attach Files\">\n </file-upload>\n <div *ngIf=\"selectedFiles.length > 0\" class=\"flex flex-wrap gap-3 mt-3\">\n <div *ngFor=\"let file of selectedFiles\">\n <ng-container [ngSwitch]=\"file.Extension\">\n <img *ngSwitchCase=\"'jpg'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <img *ngSwitchCase=\"'png'\" [src]=\"file.Data\"\n class=\"w-[100px] h-[100px] object-cover rounded-md border\" />\n <video *ngSwitchCase=\"'mp4'\" [src]=\"file.Data\" class=\"w-[150px] rounded-md shadow\" controls></video>\n <audio *ngSwitchCase=\"'mp3'\" [src]=\"file.Data\" controls class=\"w-[150px]\"></audio>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"flex justify-end gap-2 mt-2\">\n <verbena-button (click)=\"addComment()\" text=\"Cancel\" styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"saveComment()\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\"\n pd=\"10px 20px\" width=\"114px\" height=\"39px\"></verbena-button>\n </div>\n </div>\n <span class=\"absolute block h-[90%] h-ninety border border-secondary-200 left-[150px]\"></span>\n <div *ngFor=\"let timeline of history; let i = index\">\n <div>\n <div class=\"flex mb-7\">\n <h5 class=\"w-[100px] cursor-pointer\" (click)=\"setActive(i)\">\n {{ timeline?.CreatedAt | date }}\n </h5>\n <div class=\"ml-24 cursor-pointer min-w-[250px] p-6 rounded-md border-l-2\" [ngClass]=\"{\n 'bg-[#FEFAF1] border-[var(--vbn-color-primary)]': active === i,\n 'bg-transparent border-transparent hover:bg-[var(--vbn-color-surface-alt)]': active !== i\n }\" (click)=\"setActive(i)\">\n <!-- ActionName as primary heading, fallback to ActionType -->\n <h4 class=\"font-bold text-xl text-[var(--vbn-color-text)] mb-2\">\n {{ timeline.ActionName || timeline.ActionType }}\n </h4>\n\n <!-- Actor information with tooltip -->\n <div class=\"mb-3\">\n <verben-tooltip [top]=\"'0px'\" [left]=\"'0px'\" [textColor]=\"'var(--vbn-color-text)'\" [backgroundColor]=\"'var(--vbn-color-surface)'\"\n [tooltipContent]=\"actorTooltipTemplate\">\n <p class=\"text-sm text-[var(--vbn-color-text-muted)] cursor-help inline-flex items-center gap-2\">\n <verben-svg [width]=\"14\" [height]=\"14\" [icon]=\"'user'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span class=\"font-medium text-[var(--vbn-color-text)]\">{{ timeline.Actor.Name }}</span>\n </p>\n </verben-tooltip>\n\n <ng-template #actorTooltipTemplate>\n <div class=\"bg-white border border-[var(--vbn-color-border)] rounded-lg p-4 shadow-lg w-[280px]\">\n <div class=\"flex gap-3 items-start\">\n <div\n class=\"w-[40px] h-[40px] rounded-full bg-gradient-to-r from-[#D9AEAE] via-[#E3C79F] to-[var(--vbn-color-primary)] flex-shrink-0\">\n </div>\n <div class=\"flex-1 min-w-0\">\n <p class=\"font-bold text-sm text-[var(--vbn-color-text)] mb-1\">\n {{ timeline.Actor.Name }}\n </p>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] break-words flex items-start gap-1\">\n <verben-svg [width]=\"12\" [height]=\"12\" [icon]=\"'mail'\" stroke=\"var(--vbn-color-text-muted)\"></verben-svg>\n <span>{{ timeline.Actor.Identifier }}</span>\n </p>\n <p *ngIf=\"getTagsFromActor(timeline.Actor)\" class=\"text-xs text-[var(--vbn-color-text-muted)] mt-2\">\n <span class=\"font-medium\">Tags:</span> {{ getTagsFromActor(timeline.Actor) }}\n </p>\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n\n <!-- Action Type (if different from ActionName) -->\n <p *ngIf=\"timeline.ActionName\" class=\"text-sm text-[var(--vbn-color-text-muted)] mb-2\">\n <span class=\"font-medium\">Operation:</span> {{ timeline.ActionType }}\n </p>\n\n <!-- Stage information for transfer actions -->\n @if (showFromAndTo(timeline.ActionType)) {\n <div class=\"bg-[var(--vbn-color-surface-alt)] rounded-md p-3 mt-2 space-y-1.5\">\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">From:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.FromStage }}</span>\n </p>\n <p class=\"text-sm flex items-center gap-2\">\n <span class=\"text-[var(--vbn-color-text-muted)] font-medium\">To:</span>\n <span class=\"text-[var(--vbn-color-border-focus)] font-mono text-xs\">{{ timeline.ToStage }}</span>\n </p>\n </div>\n }\n\n <!-- View comments button -->\n <button *ngIf=\"timeline.Description\"\n class=\"flex gap-2 items-center w-fit text-[var(--vbn-color-text-muted)] text-sm border px-3 py-2 rounded-lg bg-[var(--vbn-color-surface-alt)] mt-3 border-[var(--vbn-color-border)] hover:bg-[var(--vbn-color-surface-alt)] hover:border-[var(--vbn-color-border)] transition-colors\">\n <verben-svg [width]=\"15\" [height]=\"15\" [icon]=\"'chat'\"></verben-svg>\n View comments\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-span-5\">\n <div class=\"h-[50px] bg-[var(--vbn-color-surface)]\"></div>\n <div *ngIf=\"active >= 0\" class=\"w-[480px] pl-16 pt-10\">\n <h1 class=\"font-bold text-lg py-2\">Comments</h1>\n <p class=\"text-xs text-[var(--vbn-color-text-muted)] text-right py-2\">\n {{ history[active].CreatedAt | date }}\n </p>\n <div class=\"bg-[var(--vbn-color-surface)] text-[var(--vbn-color-text)] leading-relaxed p-8 shadow-md rounded-md\">\n {{ history[active].Description }}\n\n <div *ngIf=\"history[active]?.Files?.length\" class=\"mt-4 border-t pt-4\">\n <h5 class=\"font-bold text-sm mb-2\">Attachments</h5>\n <div class=\"flex flex-col gap-2\">\n <div *ngFor=\"let file of history[active]?.Files\"\n class=\"file-container p-2 flex items-center justify-between gap-3 border rounded-md bg-gray-50\">\n <div class=\"text-sm overflow-x-auto font-semibold\">\n {{ getFileName(file) }}\n </div>\n <span (click)=\"openFile(file)\" class=\"cursor-pointer\">\n <verben-svg [icon]=\"'download-icon'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n", styles: [".bg-\\[#D4A00773\\]{background-color:#d4a00773}.bg-\\[var\\(--vbn-color-surface\\)\\]{background-color:var(--vbn-color-surface)}.bg-\\[#d3d3d32a\\]{background-color:#d3d3d32a}.bg-\\[var\\(--vbn-color-surface-alt\\)\\]{background-color:var(--vbn-color-surface-alt)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\\[#D9AEAE\\]{--tw-gradient-from: #d9aeae;--tw-gradient-to: rgb(217 174 174 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\\[#E3C79F\\]{--tw-gradient-to: rgb(227 199 159 / 0);--tw-gradient-stops: var(--tw-gradient-from), #e3c79f, var(--tw-gradient-to)}.to-\\[var\\(--vbn-color-primary\\)\\]{--tw-gradient-to: var(--vbn-color-primary)}.mx-8{margin-left:2rem;margin-right:2rem}.rounded-lg{border-radius:.5rem}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.font-semibold{font-weight:600}.cursor-pointer{cursor:pointer}.grid{display:grid}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.col-span-7{grid-column:span 7 / span 7}.col-span-5{grid-column:span 5 / span 5}.pl-16{padding-left:4rem}.pt-20{padding-top:5rem}.pt-10{padding-top:2.5rem}.relative{position:relative}.absolute{position:absolute}.block{display:block}.h-ninety{height:90%}.border{border-width:1px}.border-secondary-200{border-color:var(--vbn-color-border)}.left-\\[150px\\]{left:150px}.mb-7{margin-bottom:1.75rem}.w-\\[100px\\]{width:100px}.ml-24{margin-left:6rem}.min-w-\\[250px\\]{min-width:250px}.p-6{padding:1.5rem}.rounded-md{border-radius:.375rem}.after\\:absolute:after{content:\"\";position:absolute}.after\\:-left-\\[90px\\]:after{left:-90px}.after\\:top-0:after{top:0}.after\\:h-full:after{height:100%}.after\\:border-l-2:after{border-left-width:2px}.border-none{border-style:none}.font-bold{font-weight:700}.text-lg{font-size:1.125rem;line-height:1.75rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[var\\(--vbn-color-text-muted\\)\\]{color:var(--vbn-color-text-muted)}.gap-2{gap:.5rem}.w-fit{width:fit-content}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.mt-2{margin-top:.5rem}.border-\\[var\\(--vbn-color-border\\)\\]{border-color:var(--vbn-color-border)}.ml-\\[3px\\]{margin-left:3px}.underline{text-decoration-line:underline}.text-\\[var\\(--vbn-color-border-focus\\)\\]{color:var(--vbn-color-border-focus)}.mt-\\[4px\\]{margin-top:4px}.z-\\[10000\\]{z-index:10000}.border-primary{--tw-border-opacity: 1;border-color:rgb(212 160 7 / var(--tw-border-opacity, 1))}.w-\\[326px\\]{width:326px}.gap-4{gap:1rem}.w-\\[50px\\]{width:50px}.rounded-full{border-radius:9999px}.gap-3{gap:.75rem}.mt-4{margin-top:1rem}.h-\\[50px\\]{height:50px}.w-\\[480px\\]{width:480px}.text-xs{font-size:.75rem;line-height:1rem}.text-right{text-align:right}.text-\\[var\\(--vbn-color-text\\)\\]{color:var(--vbn-color-text)}.leading-relaxed{line-height:1.625}.p-8{padding:2rem}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"] }]
220
220
  }], ctorParameters: () => [{ type: i1.Location }, { type: i2.TaskHistoryService }, { type: i3.EnvironmentService }, { type: i3.UtilService }] });
221
221
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oaXN0b3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFzay1oaXN0b3J5L3Rhc2staGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2staGlzdG9yeS90YXNrLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFpQixVQUFVLEVBQTJCLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTbkksTUFBTSxPQUFPLG9CQUFvQjtJQVVyQjtJQUNBO0lBQ0E7SUFDQTtJQVpWLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDcEMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUM5QixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBQ25CLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixhQUFhLEdBQWUsRUFBRSxDQUFDO0lBQy9CLDJCQUEyQjtJQUUzQixZQUNVLFNBQW1CLEVBQ25CLE9BQTJCLEVBQzNCLE1BQTBCLEVBQzFCLFdBQXdCO1FBSHhCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDOUIsQ0FBQztJQUNMLHFDQUFxQztJQUNyQyxNQUFNO0lBQ04sdUJBQXVCO0lBQ3ZCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRFQUE0RTtJQUM1RSxTQUFTO0lBQ1QsT0FBTztJQUNQLE1BQU07SUFDTix5QkFBeUI7SUFDekIsd0NBQXdDO0lBQ3hDLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsNEVBQTRFO0lBQzVFLFNBQVM7SUFDVCxPQUFPO0lBQ1AsTUFBTTtJQUNOLHFCQUFxQjtJQUNyQixzQ0FBc0M7SUFDdEMsaUJBQWlCO0lBQ2pCLCtCQUErQjtJQUMvQixTQUFTO0lBQ1QsNkVBQTZFO0lBQzdFLE9BQU87SUFDUCxNQUFNO0lBQ04scUJBQXFCO0lBQ3JCLDJDQUEyQztJQUMzQyxpQkFBaUI7SUFDakIsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4QixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLE9BQU87SUFDUCxNQUFNO0lBQ04scUJBQXFCO0lBQ3JCLHdDQUF3QztJQUN4QyxtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRFQUE0RTtJQUM1RSxTQUFTO0lBQ1QsT0FBTztJQUNQLEtBQUs7SUFFTCxPQUFPLEdBQW9CLEVBQUUsQ0FBQztJQUU5QixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFTO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksYUFBYSxHQUFhLEVBQUUsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQztnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9ELElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsYUFBYSxHQUFHLEdBQUcsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixPQUFPO1lBQ1QsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUc7WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQy9CLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLE9BQU87WUFDOUIsU0FBUyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1lBQzFCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLFdBQVc7WUFDWCxxQ0FBcUM7WUFDckMseUNBQXlDO1lBQ3pDLG9DQUFvQztZQUNwQyxLQUFLO1lBQ0wsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsRUFBRTtZQUNiLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7WUFDUixRQUFRLEVBQUUsRUFBRTtTQUNJLENBQUM7UUFFbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUztRQUNwQixNQUFNLEtBQUssR0FBUSxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRXpDLE1BQU0sU0FBUyxHQUFlLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBb0IsRUFBRSxDQUFDO1FBRXBDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFFaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUNuQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBZ0IsQ0FBQztvQkFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDYixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFO3dCQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUMvQixJQUFJLEVBQUUsTUFBTTt3QkFDWixTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUc7cUJBQzNCLENBQUMsQ0FBQztvQkFDSCxPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDLENBQUM7Z0JBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsU0FBaUIsRUFBRTtRQUM1QyxNQUFNLEtBQUssR0FDVCxnRUFBZ0UsQ0FBQztRQUNuRSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZTtRQUM5QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV2QyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNsQyxRQUFRLFVBQVUsRUFBRSxDQUFDO1lBQ25CLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUN2QixLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDekIsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBQzVCLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3hCLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUM1QixLQUFLLFVBQVUsQ0FBQyxZQUFZO2dCQUMxQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWU7UUFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUN2QyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsQ0FDckQsQ0FBQztJQUNKLENBQUM7d0dBL05VLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG9NQ1hqQyxzalJBaUpBOzs0RkR0SWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uSGlzdG9yeSwgQWN0aW9uVHlwZSwgQWN0b3IsIEZpbGUgYXMgRmlsZURhdGEsIE9iamVjdFN0YXRlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSwgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUYXNrSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL3Rhc2staGlzdG9yeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhc2staGlzdG9yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFzay1oaXN0b3J5LmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNrSGlzdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHRhc2tDb2RlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBvcGVyYXRpb25UeXBlID0gT3BlcmF0aW9uVHlwZTtcbiAgYWN0aXZlOiBudW1iZXIgPSAwO1xuICBzaG93Q29tbWVudEJveDogYm9vbGVhbiA9IGZhbHNlO1xuICBuZXdDb21tZW50OiBzdHJpbmcgPSAnJztcbiAgc2VsZWN0ZWRGaWxlczogRmlsZURhdGFbXSA9IFtdO1xuICAvLyBBY3Rpb25UeXBlID0gQWN0aW9uVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBUYXNrSGlzdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHsgfVxuICAvLyBzaW5nbGVIaXN0b3J5OiBUaW1lbGluZUV2ZW50W10gPSBbXG4gIC8vICAge1xuICAvLyAgICAgRGF0ZTogJzQ6MDUgUE0nLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkNvbW1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7fSxcbiAgLy8gICAgIEFjdGlvbnM6IFtcbiAgLy8gICAgICAgeyBMYWJlbDogJ1ZpZXcgQ29tbWVudHMnLCBUeXBlOiAnYnV0dG9uJywgQWN0aW9uOiAndmlld0NvbW1lbnRzJyB9LFxuICAvLyAgICAgXSxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIERhdGU6ICdZZXN0ZXJkYXknLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkNvbW1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7fSxcbiAgLy8gICAgIEFjdGlvbnM6IFtcbiAgLy8gICAgICAgeyBMYWJlbDogJ1ZpZXcgQ29tbWVudHMnLCBUeXBlOiAnYnV0dG9uJywgQWN0aW9uOiAndmlld0NvbW1lbnRzJyB9LFxuICAvLyAgICAgXSxcbiAgLy8gICB9LFxuICAvLyAgIHtcbiAgLy8gICAgIERhdGU6ICdNYXIgMicsXG4gIC8vICAgICBPcGVyYXRpb246IE9wZXJhdGlvblR5cGUuRm9ybXMsXG4gIC8vICAgICBEZXRhaWxzOiB7XG4gIC8vICAgICAgIEZpbGxlZEJ5OiAnQW5vbnltb3VzJyxcbiAgLy8gICAgIH0sXG4gIC8vICAgICBBY3Rpb25zOiBbeyBMYWJlbDogJ1ZpZXcgRm9ybScsIFR5cGU6ICdidXR0b24nLCBBY3Rpb246ICd2aWV3Rm9ybScgfV0sXG4gIC8vICAgfSxcbiAgLy8gICB7XG4gIC8vICAgICBEYXRlOiAnTm92IDQnLFxuICAvLyAgICAgT3BlcmF0aW9uOiBPcGVyYXRpb25UeXBlLkFzc2lnbm1lbnQsXG4gIC8vICAgICBEZXRhaWxzOiB7XG4gIC8vICAgICAgIEZyb206ICdKb2huIERvZScsXG4gIC8vICAgICAgIFRvOiAnSmFuZSBEb2UnLFxuICAvLyAgICAgfSxcbiAgLy8gICAgIEFjdGlvbnM6IFtdLFxuICAvLyAgIH0sXG4gIC8vICAge1xuICAvLyAgICAgRGF0ZTogJ05vdiA2JyxcbiAgLy8gICAgIE9wZXJhdGlvbjogT3BlcmF0aW9uVHlwZS5Db21tZW50LFxuICAvLyAgICAgRGV0YWlsczoge30sXG4gIC8vICAgICBBY3Rpb25zOiBbXG4gIC8vICAgICAgIHsgTGFiZWw6ICdWaWV3IENvbW1lbnRzJywgVHlwZTogJ2J1dHRvbicsIEFjdGlvbjogJ3ZpZXdDb21tZW50cycgfSxcbiAgLy8gICAgIF0sXG4gIC8vICAgfSxcbiAgLy8gXTtcblxuICBoaXN0b3J5OiBBY3Rpb25IaXN0b3J5W10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0VGFza0hpc3RvcnkodGhpcy50YXNrQ29kZSgpKS50aGVuKChyZXMpID0+IHtcbiAgICAgIHRoaXMuaGlzdG9yeSA9IHJlcztcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuaGlzdG9yeSk7XG4gICAgfSk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5fbG9jYXRpb24uYmFjaygpO1xuICB9XG5cbiAgc2V0QWN0aXZlKGk6IG51bWJlcikge1xuICAgIHRoaXMuYWN0aXZlID0gaTtcbiAgfVxuXG4gIGdldFRhZ3NGcm9tQWN0b3IoYWN0b3I6IEFjdG9yKSB7XG4gICAgcmV0dXJuIGFjdG9yLlRhZ3MubWFwKCh0YWcpID0+IHRhZy5OYW1lKS5qb2luKCcsICcpO1xuICB9XG5cbiAgYWRkQ29tbWVudCgpIHtcbiAgICB0aGlzLnNob3dDb21tZW50Qm94ID0gIXRoaXMuc2hvd0NvbW1lbnRCb3g7XG4gIH1cblxuICBhc3luYyBzYXZlQ29tbWVudCgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLm5ld0NvbW1lbnQpO1xuICAgIGlmICghdGhpcy5uZXdDb21tZW50LnRyaW0oKSAmJiB0aGlzLnNlbGVjdGVkRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHVwbG9hZGVkRmlsZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnVwbG9hZEZpbGVzKHRoaXMuc2VsZWN0ZWRGaWxlcyk7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB1cGxvYWRlZEZpbGVzID0gcmVzO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGaWxlIHVwbG9hZCBmYWlsZWQnLCBlcnJvcik7XG4gICAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy51dGlsU2VydmljZS5zZW5kQkkoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbkhpc3RvcnkgPSB7XG4gICAgICBUYXNrQ29kZTogdGhpcy50YXNrQ29kZSgpID8/ICcnLFxuICAgICAgRGVzY3JpcHRpb246IHRoaXMubmV3Q29tbWVudCxcbiAgICAgIEFjdGlvblR5cGU6IEFjdGlvblR5cGUuQ29tbWVudCxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuTmV3LFxuICAgICAgRmlsZXM6IHVwbG9hZGVkRmlsZXMsXG4gICAgICAvLyBBY3Rvcjoge1xuICAgICAgLy8gICBJZDogdGhpcy5zZWxlY3RlZERldGFpbC5BY3RvcklkLFxuICAgICAgLy8gICBOYW1lOiB0aGlzLnNlbGVjdGVkRGV0YWlsLkFjdG9yTmFtZSxcbiAgICAgIC8vICAgVGFnczogdGhpcy5zZWxlY3RlZERldGFpbC5UYWdzLFxuICAgICAgLy8gfSxcbiAgICAgIFdvcmtmbG93OiAnJyxcbiAgICAgIEZyb21TdGFnZTogJycsXG4gICAgICBUb1N0YWdlOiAnJyxcbiAgICAgIENvZGU6ICcnLFxuICAgICAgVGVuYW50SWQ6ICcnLFxuICAgIH0gYXMgQWN0aW9uSGlzdG9yeTtcblxuICAgIHRoaXMuc2VydmljZS5zYXZlQWN0aW9uSGlzdG9yeShbYWN0aW9uSGlzdG9yeV0pLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5uZXdDb21tZW50ID0gJyc7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZXMgPSBbXTtcbiAgICAgIHRoaXMuc2hvd0NvbW1lbnRCb3ggPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VydmljZS5nZXRUYXNrSGlzdG9yeSh0aGlzLnRhc2tDb2RlKCkpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhpc3RvcnkgPSByZXM7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdChkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlczogYW55ID0gZGF0YTtcblxuICAgIGlmICghZmlsZXMgfHwgZmlsZXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWxlQXJyYXk6IEZpbGVEYXRhW10gPSBbXTtcbiAgICBjb25zdCByZWFkZXJzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmFzZTY0ID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XG4gICAgICAgICAgZmlsZUFycmF5LnB1c2goe1xuICAgICAgICAgICAgRXh0ZW5zaW9uOiBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKSxcbiAgICAgICAgICAgIE5hbWU6IHRoaXMuZ2VuZXJhdGVSYW5kb21Db2RlKCksXG4gICAgICAgICAgICBEYXRhOiBiYXNlNjQsXG4gICAgICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlYWRlcnMucHVzaChwcm9taXNlKTtcbiAgICB9XG5cbiAgICBQcm9taXNlLmFsbChyZWFkZXJzKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdGaWxlcyByZWFkeSB0byB1cGxvYWQ6JywgZmlsZUFycmF5KTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGVBcnJheTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVSYW5kb21Db2RlKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID1cbiAgICAgICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc3VsdCArPSBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBmaWxlVXJsLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBzZXRQcmV2aWV3KHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGZpcnN0ID0gdmFsLnNwbGl0KCcsJylbMF0udHJpbSgpO1xuXG4gICAgaWYgKGZpcnN0LnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBmaXJzdC5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICByZXR1cm4gZmlyc3Q7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5GSUxFX1VSTH0vJHtmaXJzdH1gO1xuICB9XG5cbiAgc2hvd0Zyb21BbmRUbyhhY3Rpb25UeXBlOiBBY3Rpb25UeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIEFjdGlvblR5cGUuUGFzc09uOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlBhc3NCYWNrOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlNraXBGb3J3YXJkOlxuICAgICAgY2FzZSBBY3Rpb25UeXBlLlNraXBCYWNrd2FyZDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIEFjdGlvblR5cGUuQ29tbWVudDpcbiAgICAgIGNhc2UgQWN0aW9uVHlwZS5Gb3JtRmlsbGluZzpcbiAgICAgIGNhc2UgQWN0aW9uVHlwZS5TdGF0dXNDaGFuZ2U6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXRGaWxlTmFtZShmaWxlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZmlsZVVybCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBmaWxlVXJsLnNwbGl0KCcvJykucG9wKCkgfHwgJyc7XG4gIH1cblxuICBvcGVuRmlsZShmaWxlVXJsOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbGVVcmwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51dGlsU2VydmljZS5vcGVuRnVsbFJvdXRlSW5OZXdXaW5kb3coXG4gICAgICBgJHt0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5GSUxFX0JBU0VfVVJMfSR7ZmlsZVVybH1gXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJnLVt2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpXVwiPlxuICA8aGVhZGVyIGNsYXNzPVwibXgtOCByb3VuZGVkLWxnIHNoYWRvdy1sZyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcHgtNiBweS0yIGJnLVsjRDRBMDA3NzNdXCI+XG4gICAgPGg0IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHRhc2tDb2RlKCkgfX08L2g0PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC00IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uIChjbGljayk9XCJhZGRDb21tZW50KClcIiB0ZXh0PVwiKyBBZGQgQ29tbWVudFwiIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJtbC1hdXRvXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDx2ZXJiZW4tc3ZnIChjbGljayk9XCJnb0JhY2soKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbd2lkdGhdPVwiMTdcIiBbaGVpZ2h0XT1cIjE3XCIgW2ljb25dPVwiJ2dvLWJhY2snXCI+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJncmlkIGdyaWQtY29scy0xMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJiZy1bdmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpXSBjb2wtc3Bhbi03IHBsLTE2IHB0LTIwIHJlbGF0aXZlXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd0NvbW1lbnRCb3hcIiBjbGFzcz1cIm1iLTYgbXItMTBcIj5cbiAgICAgICAgPGg0IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGcgbWItMlwiPkFkZCBDb21tZW50PC9oND5cbiAgICAgICAgPCEtLSA8dmVyYmVuYS10ZXh0YXJlYSBbKG5nTW9kZWwpXT1cIm5ld0NvbW1lbnRcIiBsYWJlbD1cIkNvbW1lbnRcIiBjbGFzcz1cInctZnVsbFwiPjwvdmVyYmVuYS10ZXh0YXJlYT4gLS0+XG4gICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cIm5ld0NvbW1lbnRcIiBsYWJlbD1cIkNvbW1lbnRcIiBjbGFzcz1cInctZnVsbCBib3JkZXIgcm91bmRlZC1tZCBwLTJcIj48L3RleHRhcmVhPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxuICAgICAgICAgIDxmaWxlLXVwbG9hZCAoc2VsZWN0ZWRGaWxlc0NoYW5nZSk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50KVwiIFttdWx0aXBsZV09XCJ0cnVlXCIgbGFiZWw9XCJBdHRhY2ggRmlsZXNcIj5cbiAgICAgICAgICA8L2ZpbGUtdXBsb2FkPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEZpbGVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0zIG10LTNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2Ygc2VsZWN0ZWRGaWxlc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWxlLkV4dGVuc2lvblwiPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nU3dpdGNoQ2FzZT1cIidqcGcnXCIgW3NyY109XCJmaWxlLkRhdGFcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LVsxMDBweF0gaC1bMTAwcHhdIG9iamVjdC1jb3ZlciByb3VuZGVkLW1kIGJvcmRlclwiIC8+XG4gICAgICAgICAgICAgICAgPGltZyAqbmdTd2l0Y2hDYXNlPVwiJ3BuZydcIiBbc3JjXT1cImZpbGUuRGF0YVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctWzEwMHB4XSBoLVsxMDBweF0gb2JqZWN0LWNvdmVyIHJvdW5kZWQtbWQgYm9yZGVyXCIgLz5cbiAgICAgICAgICAgICAgICA8dmlkZW8gKm5nU3dpdGNoQ2FzZT1cIidtcDQnXCIgW3NyY109XCJmaWxlLkRhdGFcIiBjbGFzcz1cInctWzE1MHB4XSByb3VuZGVkLW1kIHNoYWRvd1wiIGNvbnRyb2xzPjwvdmlkZW8+XG4gICAgICAgICAgICAgICAgPGF1ZGlvICpuZ1N3aXRjaENhc2U9XCInbXAzJ1wiIFtzcmNdPVwiZmlsZS5EYXRhXCIgY29udHJvbHMgY2xhc3M9XCJ3LVsxNTBweF1cIj48L2F1ZGlvPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTIgbXQtMlwiPlxuICAgICAgICAgIDx2ZXJiZW5hLWJ1dHRvbiAoY2xpY2spPVwiYWRkQ29tbWVudCgpXCIgdGV4dD1cIkNhbmNlbFwiIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgICAgICA8dmVyYmVuYS1idXR0b24gKGNsaWNrKT1cInNhdmVDb21tZW50KClcIiB0ZXh0PVwiU2F2ZVwiIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIiB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIiBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgICAgICAgIHBkPVwiMTBweCAyMHB4XCIgd2lkdGg9XCIxMTRweFwiIGhlaWdodD1cIjM5cHhcIj48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSBibG9jayBoLVs5MCVdIGgtbmluZXR5IGJvcmRlciBib3JkZXItc2Vjb25kYXJ5LTIwMCBsZWZ0LVsxNTBweF1cIj48L3NwYW4+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0aW1lbGluZSBvZiBoaXN0b3J5OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItN1wiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwidy1bMTAwcHhdIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNldEFjdGl2ZShpKVwiPlxuICAgICAgICAgICAgICB7eyB0aW1lbGluZT8uQ3JlYXRlZEF0IHwgZGF0ZSB9fVxuICAgICAgICAgICAgPC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0yNCBjdXJzb3ItcG9pbnRlciBtaW4tdy1bMjUwcHhdIHAtNiByb3VuZGVkLW1kIGJvcmRlci1sLTJcIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLVsjRkVGQUYxXSBib3JkZXItW3ZhcigtLXZibi1jb2xvci1wcmltYXJ5KV0nOiBhY3RpdmUgPT09IGksXG4gICAgICAgICAgICAgICAgJ2JnLXRyYW5zcGFyZW50IGJvcmRlci10cmFuc3BhcmVudCBob3ZlcjpiZy1bdmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KV0nOiBhY3RpdmUgIT09IGlcbiAgICAgICAgICAgICAgfVwiIChjbGljayk9XCJzZXRBY3RpdmUoaSlcIj5cbiAgICAgICAgICAgICAgPCEtLSBBY3Rpb25OYW1lIGFzIHByaW1hcnkgaGVhZGluZywgZmFsbGJhY2sgdG8gQWN0aW9uVHlwZSAtLT5cbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiZm9udC1ib2xkIHRleHQteGwgdGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQpXSBtYi0yXCI+XG4gICAgICAgICAgICAgICAge3sgdGltZWxpbmUuQWN0aW9uTmFtZSB8fCB0aW1lbGluZS5BY3Rpb25UeXBlIH19XG4gICAgICAgICAgICAgIDwvaDQ+XG5cbiAgICAgICAgICAgICAgPCEtLSBBY3RvciBpbmZvcm1hdGlvbiB3aXRoIHRvb2x0aXAgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgPHZlcmJlbi10b29sdGlwIFt0b3BdPVwiJzBweCdcIiBbbGVmdF09XCInMHB4J1wiIFt0ZXh0Q29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci10ZXh0KSdcIiBbYmFja2dyb3VuZENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSknXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwQ29udGVudF09XCJhY3RvclRvb2x0aXBUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKV0gY3Vyc29yLWhlbHAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNFwiIFtoZWlnaHRdPVwiMTRcIiBbaWNvbl09XCIndXNlcidcIiBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZClcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQpXVwiPnt7IHRpbWVsaW5lLkFjdG9yLk5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC92ZXJiZW4tdG9vbHRpcD5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYWN0b3JUb29sdGlwVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgYm9yZGVyIGJvcmRlci1bdmFyKC0tdmJuLWNvbG9yLWJvcmRlcildIHJvdW5kZWQtbGcgcC00IHNoYWRvdy1sZyB3LVsyODBweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTMgaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctWzQwcHhdIGgtWzQwcHhdIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tWyNEOUFFQUVdIHZpYS1bI0UzQzc5Rl0gdG8tW3ZhcigtLXZibi1jb2xvci1wcmltYXJ5KV0gZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1zbSB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItdGV4dCldIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGltZWxpbmUuQWN0b3IuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKV0gYnJlYWstd29yZHMgZmxleCBpdGVtcy1zdGFydCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbd2lkdGhdPVwiMTJcIiBbaGVpZ2h0XT1cIjEyXCIgW2ljb25dPVwiJ21haWwnXCIgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB0aW1lbGluZS5BY3Rvci5JZGVudGlmaWVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJnZXRUYWdzRnJvbUFjdG9yKHRpbWVsaW5lLkFjdG9yKVwiIGNsYXNzPVwidGV4dC14cyB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCldIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPlRhZ3M6PC9zcGFuPiB7eyBnZXRUYWdzRnJvbUFjdG9yKHRpbWVsaW5lLkFjdG9yKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDwhLS0gQWN0aW9uIFR5cGUgKGlmIGRpZmZlcmVudCBmcm9tIEFjdGlvbk5hbWUpIC0tPlxuICAgICAgICAgICAgICA8cCAqbmdJZj1cInRpbWVsaW5lLkFjdGlvbk5hbWVcIiBjbGFzcz1cInRleHQtc20gdGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPk9wZXJhdGlvbjo8L3NwYW4+IHt7IHRpbWVsaW5lLkFjdGlvblR5cGUgfX1cbiAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgIDwhLS0gU3RhZ2UgaW5mb3JtYXRpb24gZm9yIHRyYW5zZmVyIGFjdGlvbnMgLS0+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd0Zyb21BbmRUbyh0aW1lbGluZS5BY3Rpb25UeXBlKSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctW3ZhcigtLXZibi1jb2xvci1zdXJmYWNlLWFsdCldIHJvdW5kZWQtbWQgcC0zIG10LTIgc3BhY2UteS0xLjVcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXSBmb250LW1lZGl1bVwiPkZyb206PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVt2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKV0gZm9udC1tb25vIHRleHQteHNcIj57eyB0aW1lbGluZS5Gcm9tU3RhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVt2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCldIGZvbnQtbWVkaXVtXCI+VG86PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVt2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKV0gZm9udC1tb25vIHRleHQteHNcIj57eyB0aW1lbGluZS5Ub1N0YWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICA8IS0tIFZpZXcgY29tbWVudHMgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGltZWxpbmUuRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXIgdy1maXQgdGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXSB0ZXh0LXNtIGJvcmRlciBweC0zIHB5LTIgcm91bmRlZC1sZyBiZy1bdmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KV0gbXQtMyBib3JkZXItW3ZhcigtLXZibi1jb2xvci1ib3JkZXIpXSBob3ZlcjpiZy1bdmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KV0gaG92ZXI6Ym9yZGVyLVt2YXIoLS12Ym4tY29sb3ItYm9yZGVyKV0gdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCIgW2ljb25dPVwiJ2NoYXQnXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICAgIFZpZXcgY29tbWVudHNcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tNVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImgtWzUwcHhdIGJnLVt2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSldXCI+PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlID49IDBcIiBjbGFzcz1cInctWzQ4MHB4XSBwbC0xNiBwdC0xMFwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZyBweS0yXCI+Q29tbWVudHM8L2gxPlxuICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXSB0ZXh0LXJpZ2h0IHB5LTJcIj5cbiAgICAgICAgICB7eyBoaXN0b3J5W2FjdGl2ZV0uQ3JlYXRlZEF0IHwgZGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiZy1bdmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpXSB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItdGV4dCldIGxlYWRpbmctcmVsYXhlZCBwLTggc2hhZG93LW1kIHJvdW5kZWQtbWRcIj5cbiAgICAgICAgICB7eyBoaXN0b3J5W2FjdGl2ZV0uRGVzY3JpcHRpb24gfX1cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoaXN0b3J5W2FjdGl2ZV0/LkZpbGVzPy5sZW5ndGhcIiBjbGFzcz1cIm10LTQgYm9yZGVyLXQgcHQtNFwiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwiZm9udC1ib2xkIHRleHQtc20gbWItMlwiPkF0dGFjaG1lbnRzPC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgaGlzdG9yeVthY3RpdmVdPy5GaWxlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWNvbnRhaW5lciBwLTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0zIGJvcmRlciByb3VuZGVkLW1kIGJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBvdmVyZmxvdy14LWF1dG8gZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RmlsZU5hbWUoZmlsZSkgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwib3BlbkZpbGUoZmlsZSlcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICA8dmVyYmVuLXN2ZyBbaWNvbl09XCInZG93bmxvYWQtaWNvbidcIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
@@ -16,5 +16,12 @@ export var DataType;
16
16
  DataType["Audio"] = "Audio";
17
17
  DataType["SingleFileSelection"] = "SingleFileSelection";
18
18
  DataType["MultiFileSelection"] = "MultiFileSelection";
19
+ DataType["DateTime"] = "DateTime";
20
+ DataType["DateTimeOffset"] = "DateTimeOffset";
21
+ DataType["None"] = "None";
22
+ DataType["JSON"] = "JSON";
23
+ DataType["Boolean"] = "Boolean";
24
+ DataType["SmallInt"] = "SmallInt";
25
+ DataType["Nvarchar"] = "Nvarchar";
19
26
  })(DataType || (DataType = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMvRGF0YVR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQWMsUUFpQmI7QUFqQkQsV0FBYyxRQUFRO0lBQ2xCLHlCQUFXLENBQUE7SUFDWCwyQ0FBNkIsQ0FBQTtJQUM3Qix1Q0FBeUIsQ0FBQTtJQUN6Qix1Q0FBeUIsQ0FBQTtJQUN6Qiw2QkFBZSxDQUFBO0lBQ2YsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLHVCQUFTLENBQUE7SUFDVCwyQkFBYSxDQUFBO0lBQ2IsK0NBQWlDLENBQUE7SUFDakMsNkNBQStCLENBQUE7SUFDL0IsNkJBQWUsQ0FBQTtJQUNmLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0lBQ2IsdURBQXlDLENBQUE7SUFDekMscURBQXVDLENBQUE7QUFDM0MsQ0FBQyxFQWpCYSxRQUFRLEtBQVIsUUFBUSxRQWlCckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgIGVudW0gIERhdGFUeXBle1xuICAgIFRleHQ9J1RleHQnLFxuICAgIE11bHRpbGluZVRleHQ9J011bHRpbGluZVRleHQnLFxuICAgIE1haWxBZGRyZXNzPSdNYWlsQWRkcmVzcycsXG4gICAgUGhvbmVOdW1iZXI9J1Bob25lTnVtYmVyJyxcbiAgICBOdW1iZXI9J051bWJlcicsXG4gICAgRGVjaW1hbD0nRGVjaW1hbCcsXG4gICAgWWVzTm89J1llc05vJyxcbiAgICBVUkw9J1VSTCcsXG4gICAgSW1hZ2U9J0ltYWdlJyxcbiAgICBTaW5nbGVTZWxlY3Rpb249J1NpbmdsZVNlbGVjdGlvbicsXG4gICAgTXVsdGlTZWxlY3Rpb249J011bHRpU2VsZWN0aW9uJyxcbiAgICBDb2xvdXI9J0NvbG91cicsXG4gICAgVmlkZW89J1ZpZGVvJyxcbiAgICBBdWRpbz0nQXVkaW8nLFxuICAgIFNpbmdsZUZpbGVTZWxlY3Rpb249J1NpbmdsZUZpbGVTZWxlY3Rpb24nLFxuICAgIE11bHRpRmlsZVNlbGVjdGlvbj0nTXVsdGlGaWxlU2VsZWN0aW9uJ1xufSJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMvRGF0YVR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUF3Qlg7QUF4QkQsV0FBWSxRQUFRO0lBQ2xCLHlCQUFhLENBQUE7SUFDYiwyQ0FBK0IsQ0FBQTtJQUMvQix1Q0FBMkIsQ0FBQTtJQUMzQix1Q0FBMkIsQ0FBQTtJQUMzQiw2QkFBaUIsQ0FBQTtJQUNqQiwrQkFBbUIsQ0FBQTtJQUNuQiwyQkFBZSxDQUFBO0lBQ2YsdUJBQVcsQ0FBQTtJQUNYLDJCQUFlLENBQUE7SUFDZiwrQ0FBbUMsQ0FBQTtJQUNuQyw2Q0FBaUMsQ0FBQTtJQUNqQyw2QkFBaUIsQ0FBQTtJQUNqQiwyQkFBZSxDQUFBO0lBQ2YsMkJBQWUsQ0FBQTtJQUNmLHVEQUEyQyxDQUFBO0lBQzNDLHFEQUF5QyxDQUFBO0lBQ3pDLGlDQUFxQixDQUFBO0lBQ3JCLDZDQUFpQyxDQUFBO0lBQ2pDLHlCQUFhLENBQUE7SUFDYix5QkFBYSxDQUFBO0lBQ2IsK0JBQW1CLENBQUE7SUFDbkIsaUNBQXFCLENBQUE7SUFDckIsaUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQXhCVyxRQUFRLEtBQVIsUUFBUSxRQXdCbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEYXRhVHlwZSB7XG4gIFRleHQgPSAnVGV4dCcsXG4gIE11bHRpbGluZVRleHQgPSAnTXVsdGlsaW5lVGV4dCcsXG4gIE1haWxBZGRyZXNzID0gJ01haWxBZGRyZXNzJyxcbiAgUGhvbmVOdW1iZXIgPSAnUGhvbmVOdW1iZXInLFxuICBOdW1iZXIgPSAnTnVtYmVyJyxcbiAgRGVjaW1hbCA9ICdEZWNpbWFsJyxcbiAgWWVzTm8gPSAnWWVzTm8nLFxuICBVUkwgPSAnVVJMJyxcbiAgSW1hZ2UgPSAnSW1hZ2UnLFxuICBTaW5nbGVTZWxlY3Rpb24gPSAnU2luZ2xlU2VsZWN0aW9uJyxcbiAgTXVsdGlTZWxlY3Rpb24gPSAnTXVsdGlTZWxlY3Rpb24nLFxuICBDb2xvdXIgPSAnQ29sb3VyJyxcbiAgVmlkZW8gPSAnVmlkZW8nLFxuICBBdWRpbyA9ICdBdWRpbycsXG4gIFNpbmdsZUZpbGVTZWxlY3Rpb24gPSAnU2luZ2xlRmlsZVNlbGVjdGlvbicsXG4gIE11bHRpRmlsZVNlbGVjdGlvbiA9ICdNdWx0aUZpbGVTZWxlY3Rpb24nLFxuICBEYXRlVGltZSA9ICdEYXRlVGltZScsXG4gIERhdGVUaW1lT2Zmc2V0ID0gJ0RhdGVUaW1lT2Zmc2V0JyxcbiAgTm9uZSA9ICdOb25lJyxcbiAgSlNPTiA9ICdKU09OJyxcbiAgQm9vbGVhbiA9ICdCb29sZWFuJyxcbiAgU21hbGxJbnQgPSAnU21hbGxJbnQnLFxuICBOdmFyY2hhciA9ICdOdmFyY2hhcicsXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRUFWRW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzL0VBVkVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFQVZFbnRpdHkgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBFbnRpdHk6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybUVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscy9Gb3JtRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgRm9ybVByb3BlcnR5IH0gZnJvbSAnLi9Gb3JtUHJvcGVydHknO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAnLi9UYWcnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUVudGl0eSBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIE5hbWU6IHN0cmluZztcbiAgRGVzY3JpcHRpb246IHN0cmluZztcbiAgV29ya2Zsb3c6IHN0cmluZztcbiAgRm9ybTogc3RyaW5nO1xuICBQcm9wZXJ0aWVzOiBGb3JtUHJvcGVydHlbXTtcbiAgSXNWYWxpZGF0ZWQ6IGJvb2xlYW47XG4gIFRhZ3M6IFRhZ1tdO1xufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybUVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscy9Gb3JtRW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgRm9ybVByb3BlcnR5IH0gZnJvbSAnLi9Gb3JtUHJvcGVydHknO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAnLi9UYWcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1FbnRpdHkgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBOYW1lOiBzdHJpbmc7XG4gIEVudGl0eT86IHN0cmluZztcbiAgRGVzY3JpcHRpb246IHN0cmluZztcbiAgV29ya2Zsb3c6IHN0cmluZztcbiAgRm9ybTogc3RyaW5nO1xuICBQcm9wZXJ0aWVzOiBGb3JtUHJvcGVydHlbXTtcbiAgSXNWYWxpZGF0ZWQ6IGJvb2xlYW47XG4gIFRhZ3M6IFRhZ1tdO1xufVxuIl19
@@ -60,4 +60,5 @@ export * from './WorkflowOperation';
60
60
  export * from './WorkflowStage';
61
61
  export * from './File';
62
62
  export * from './FlowableStatus';
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFFBQVEsQ0FBQTtBQUN0QixjQUFjLGtCQUFrQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9BY3Rpb25IaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vQWN0aW9uVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL0FjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vQWN0b3JUYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLW1lY2hhbmlzbSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9Db29yZCc7XG5leHBvcnQgKiBmcm9tICcuL0RhdGFUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vRXJyb3JSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL0VzY2FsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9Fc2NhbGF0aW9uQ3ljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9Fc2NhbGF0aW9uU3RhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9Fc2NhbGF0aW9uVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL0ZpbHRlclR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vRm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL0Zvcm1FbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9Gb3JtRmlsbCc7XG5leHBvcnQgKiBmcm9tICcuL0Zvcm1Qcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL0Zvcm1WYWx1ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9NYWlsQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vTWVzc2FnZUNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL01lc3NhZ2VNZWRpdW0nO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3Qtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVyYXRpb24tdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL09wZXJhdGlvbkFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VkJztcbmV4cG9ydCAqIGZyb20gJy4vUGFnZWRSZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9QZXJpb2RNb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vUGVybWlzc2lvbkNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LXBhcmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL1JlcG9ydFNjaGVkdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vUmVwb3J0VHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL1Jlc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vUmVzcG9uc2VLZXlWYWx1ZSc7XG5leHBvcnQgKiBmcm9tICcuL1NlYXJjaER5bmFtaWNXcmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJy4vU2VhcmNoT3BlcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9TZWFyY2hQcm9wZXJ0eVNpZ24nO1xuZXhwb3J0ICogZnJvbSAnLi9TZWFyY2hQcm9wZXJ0eVZhbHVlJztcbmV4cG9ydCAqIGZyb20gJy4vU2VhcmNoUHJvcGVydHlWYWx1ZVR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9TaXplJztcbmV4cG9ydCAqIGZyb20gJy4vU01TQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vU29ydERpcmVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1N0YWdlQWN0b3JSdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vU3dpbUxhbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9UYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9UYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vVGFza0Fzc2lnbm1lbnRUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vVGFza05vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1Rhc2tOb3RpZmljYXRpb25NZXNzYWdlVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL1Rhc2tOb3RpZmljYXRpb25UeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vVGFza1N0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLWFjY2Vzcy1yZXF1ZXN0LXN0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vV29ya2Zsb3dBY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9Xb3JrZmxvd09wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93U3RhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9GaWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9GbG93YWJsZVN0YXR1cydcbiJdfQ==
63
+ export * from './EAVEntity';
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL21vZGVscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9BY3Rpb25IaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vQWN0aW9uVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL0FjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vQWN0b3JUYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLW1lY2hhbmlzbSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9Db29yZCc7XG5leHBvcnQgKiBmcm9tICcuL0RhdGFUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vRXJyb3JSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL0VzY2FsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9Fc2NhbGF0aW9uQ3ljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9Fc2NhbGF0aW9uU3RhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9Fc2NhbGF0aW9uVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL0ZpbHRlclR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vRm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL0Zvcm1FbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9Gb3JtRmlsbCc7XG5leHBvcnQgKiBmcm9tICcuL0Zvcm1Qcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL0Zvcm1WYWx1ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9NYWlsQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vTWVzc2FnZUNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL01lc3NhZ2VNZWRpdW0nO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3Qtc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVyYXRpb24tdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL09wZXJhdGlvbkFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VkJztcbmV4cG9ydCAqIGZyb20gJy4vUGFnZWRSZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9QZXJpb2RNb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vUGVybWlzc2lvbkNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LXBhcmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL1JlcG9ydFNjaGVkdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vUmVwb3J0VHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL1Jlc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vUmVzcG9uc2VLZXlWYWx1ZSc7XG5leHBvcnQgKiBmcm9tICcuL1NlYXJjaER5bmFtaWNXcmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJy4vU2VhcmNoT3BlcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9TZWFyY2hQcm9wZXJ0eVNpZ24nO1xuZXhwb3J0ICogZnJvbSAnLi9TZWFyY2hQcm9wZXJ0eVZhbHVlJztcbmV4cG9ydCAqIGZyb20gJy4vU2VhcmNoUHJvcGVydHlWYWx1ZVR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9TaXplJztcbmV4cG9ydCAqIGZyb20gJy4vU01TQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vU29ydERpcmVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1N0YWdlQWN0b3JSdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vU3dpbUxhbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9UYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9UYXNrJztcbmV4cG9ydCAqIGZyb20gJy4vdGFzay1oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vVGFza0Fzc2lnbm1lbnRUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vVGFza05vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1Rhc2tOb3RpZmljYXRpb25NZXNzYWdlVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL1Rhc2tOb3RpZmljYXRpb25UeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vVGFza1N0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLWFjY2Vzcy1yZXF1ZXN0LXN0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vV29ya2Zsb3dBY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9Xb3JrZmxvd09wZXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93U3RhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9GaWxlJztcbmV4cG9ydCAqIGZyb20gJy4vRmxvd2FibGVTdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi9FQVZFbnRpdHknO1xuIl19