imm-element-ui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ import { FileUpload } from 'primeng/fileupload';
5
5
  import { SelectModule } from 'primeng/select';
6
6
  import { HttpRequest, HttpResponse } from '@angular/common/http';
7
7
  import { FormsModule } from '@angular/forms';
8
+ import { TranslatePipe } from '@ngx-translate/core';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/common/http";
10
11
  import * as i2 from "../service/action.service";
@@ -73,13 +74,13 @@ export class ImportComponent {
73
74
  });
74
75
  }
75
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportComponent, deps: [{ token: i1.HttpClient }, { token: i2.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ImportComponent, isStandalone: true, selector: "app-import", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, funcName: { classPropertyName: "funcName", publicName: "funcName", isSignal: true, isRequired: false, transformFunction: null }, orgField: { classPropertyName: "orgField", publicName: "orgField", isSignal: true, isRequired: false, transformFunction: null }, modelName: { classPropertyName: "modelName", publicName: "modelName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange" }, viewQueries: [{ propertyName: "fileUpload", first: true, predicate: FileUpload, descendants: true }], ngImport: i0, template: "<p-dialog\r\n\theader=\"\u5BFC\u5165\"\r\n\t[modal]=\"true\"\r\n\tappendTo=\"body\"\r\n\t[style]=\"{ width: '30rem' }\"\r\n\t(onHide)=\"cancel()\"\r\n\t[(visible)]=\"visible\">\r\n\t<div class=\"grid p-fluid\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">1.\u6A21\u677F\u4E0B\u8F7D</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<button\r\n\t\t\t\tpButton\r\n\t\t\t\tclass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\t(click)=\"download()\">\r\n\t\t\t\t<span class=\"p-button-label\"> <i class=\"pi pi-download\"></i>\u4E0B\u8F7D\u5BFC\u5165\u6A21\u677F </span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">2.\u6587\u4EF6\u4E0A\u4F20</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 1rem 0.5rem 0 0.5rem\">\r\n\t\t\t<p-select\r\n\t\t\t\t[options]=\"depts\"\r\n\t\t\t\t[(ngModel)]=\"dept\"\r\n\t\t\t\tappendTo=\"body\"\r\n\t\t\t\toptionLabel=\"deptName\"\r\n\t\t\t\toptionValue=\"deptId\"\r\n\t\t\t\tplaceholder=\"\u8BF7\u9009\u62E9\u90E8\u95E8\"\r\n\t\t\t\t[size]=\"'small'\"\r\n\t\t\t\tclass=\"w-full md:w-56\" />\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"p-file-import col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<p-fileUpload\r\n\t\t\t\t#primeFileUpload\r\n\t\t\t\tchooseStyleClass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\tmode=\"basic\"\r\n\t\t\t\tchooseIcon=\"pi pi-upload\"\r\n\t\t\t\tchooseLabel=\"\u9009\u62E9\u6587\u4EF6\u4E0A\u4F20\"\r\n\t\t\t\t[auto]=\"true\"\r\n\t\t\t\t[customUpload]=\"true\"\r\n\t\t\t\t(uploadHandler)=\"upload($event)\"></p-fileUpload>\r\n\t\t</div>\r\n\t</div>\r\n</p-dialog>\r\n", styles: ["::ng-deep .p-file-import .p-fileupload-basic{justify-content:start}.btn-link{color:var(--p-primary-color);padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i6.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ImportComponent, isStandalone: true, selector: "app-import", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, funcName: { classPropertyName: "funcName", publicName: "funcName", isSignal: true, isRequired: false, transformFunction: null }, orgField: { classPropertyName: "orgField", publicName: "orgField", isSignal: true, isRequired: false, transformFunction: null }, modelName: { classPropertyName: "modelName", publicName: "modelName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange" }, viewQueries: [{ propertyName: "fileUpload", first: true, predicate: FileUpload, descendants: true }], ngImport: i0, template: "<p-dialog\r\n\t[header]=\"'import.title' | translate\"\r\n\t[modal]=\"true\"\r\n\tappendTo=\"body\"\r\n\t[style]=\"{ width: '30rem' }\"\r\n\t(onHide)=\"cancel()\"\r\n\t[(visible)]=\"visible\">\r\n\t<div class=\"grid p-fluid\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">1.{{ 'import.templateDownload' | translate }}</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<button\r\n\t\t\t\tpButton\r\n\t\t\t\tclass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\t(click)=\"download()\">\r\n\t\t\t\t<span class=\"p-button-label\">\r\n\t\t\t\t\t<i class=\"pi pi-download\"></i><span class=\"pl-2\">{{ 'import.downloadTemplate' | translate }}</span>\r\n\t\t\t\t</span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">2.{{ 'import.fileUpload' | translate }}</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 1rem 0.5rem 0 0.5rem\">\r\n\t\t\t<p-select\r\n\t\t\t\t[style]=\"{ width: '275px' }\"\r\n\t\t\t\t[options]=\"depts\"\r\n\t\t\t\t[(ngModel)]=\"dept\"\r\n\t\t\t\tappendTo=\"body\"\r\n\t\t\t\toptionLabel=\"deptName\"\r\n\t\t\t\toptionValue=\"deptId\"\r\n\t\t\t\t[placeholder]=\"'import.deptPlaceholder' | translate\"\r\n\t\t\t\t[size]=\"'small'\"\r\n\t\t\t\tclass=\"w-full md:w-56\" />\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"p-file-import col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<p-fileUpload\r\n\t\t\t\t#primeFileUpload\r\n\t\t\t\tchooseStyleClass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\tmode=\"basic\"\r\n\t\t\t\tchooseIcon=\"pi pi-upload\"\r\n\t\t\t\t[chooseLabel]=\"'import.uploadFile' | translate\"\r\n\t\t\t\t[auto]=\"true\"\r\n\t\t\t\t[customUpload]=\"true\"\r\n\t\t\t\t(uploadHandler)=\"upload($event)\"></p-fileUpload>\r\n\t\t</div>\r\n\t</div>\r\n</p-dialog>\r\n", styles: ["::ng-deep .p-file-import .p-fileupload-basic{justify-content:start}.btn-link{color:var(--p-primary-color);padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i6.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
77
78
  }
78
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImportComponent, decorators: [{
79
80
  type: Component,
80
- args: [{ selector: 'app-import', standalone: true, imports: [FormsModule, ButtonModule, DialogModule, FileUpload, SelectModule], template: "<p-dialog\r\n\theader=\"\u5BFC\u5165\"\r\n\t[modal]=\"true\"\r\n\tappendTo=\"body\"\r\n\t[style]=\"{ width: '30rem' }\"\r\n\t(onHide)=\"cancel()\"\r\n\t[(visible)]=\"visible\">\r\n\t<div class=\"grid p-fluid\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">1.\u6A21\u677F\u4E0B\u8F7D</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<button\r\n\t\t\t\tpButton\r\n\t\t\t\tclass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\t(click)=\"download()\">\r\n\t\t\t\t<span class=\"p-button-label\"> <i class=\"pi pi-download\"></i>\u4E0B\u8F7D\u5BFC\u5165\u6A21\u677F </span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">2.\u6587\u4EF6\u4E0A\u4F20</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 1rem 0.5rem 0 0.5rem\">\r\n\t\t\t<p-select\r\n\t\t\t\t[options]=\"depts\"\r\n\t\t\t\t[(ngModel)]=\"dept\"\r\n\t\t\t\tappendTo=\"body\"\r\n\t\t\t\toptionLabel=\"deptName\"\r\n\t\t\t\toptionValue=\"deptId\"\r\n\t\t\t\tplaceholder=\"\u8BF7\u9009\u62E9\u90E8\u95E8\"\r\n\t\t\t\t[size]=\"'small'\"\r\n\t\t\t\tclass=\"w-full md:w-56\" />\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"p-file-import col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<p-fileUpload\r\n\t\t\t\t#primeFileUpload\r\n\t\t\t\tchooseStyleClass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\tmode=\"basic\"\r\n\t\t\t\tchooseIcon=\"pi pi-upload\"\r\n\t\t\t\tchooseLabel=\"\u9009\u62E9\u6587\u4EF6\u4E0A\u4F20\"\r\n\t\t\t\t[auto]=\"true\"\r\n\t\t\t\t[customUpload]=\"true\"\r\n\t\t\t\t(uploadHandler)=\"upload($event)\"></p-fileUpload>\r\n\t\t</div>\r\n\t</div>\r\n</p-dialog>\r\n", styles: ["::ng-deep .p-file-import .p-fileupload-basic{justify-content:start}.btn-link{color:var(--p-primary-color);padding:.5rem}\n"] }]
81
+ args: [{ selector: 'app-import', standalone: true, imports: [FormsModule, ButtonModule, DialogModule, FileUpload, SelectModule, TranslatePipe], template: "<p-dialog\r\n\t[header]=\"'import.title' | translate\"\r\n\t[modal]=\"true\"\r\n\tappendTo=\"body\"\r\n\t[style]=\"{ width: '30rem' }\"\r\n\t(onHide)=\"cancel()\"\r\n\t[(visible)]=\"visible\">\r\n\t<div class=\"grid p-fluid\">\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">1.{{ 'import.templateDownload' | translate }}</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<button\r\n\t\t\t\tpButton\r\n\t\t\t\tclass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\t(click)=\"download()\">\r\n\t\t\t\t<span class=\"p-button-label\">\r\n\t\t\t\t\t<i class=\"pi pi-download\"></i><span class=\"pl-2\">{{ 'import.downloadTemplate' | translate }}</span>\r\n\t\t\t\t</span>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"col-12\">\r\n\t\t\t<span style=\"font-size: 14px\">2.{{ 'import.fileUpload' | translate }}</span>\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"col-12\"\r\n\t\t\tstyle=\"padding: 1rem 0.5rem 0 0.5rem\">\r\n\t\t\t<p-select\r\n\t\t\t\t[style]=\"{ width: '275px' }\"\r\n\t\t\t\t[options]=\"depts\"\r\n\t\t\t\t[(ngModel)]=\"dept\"\r\n\t\t\t\tappendTo=\"body\"\r\n\t\t\t\toptionLabel=\"deptName\"\r\n\t\t\t\toptionValue=\"deptId\"\r\n\t\t\t\t[placeholder]=\"'import.deptPlaceholder' | translate\"\r\n\t\t\t\t[size]=\"'small'\"\r\n\t\t\t\tclass=\"w-full md:w-56\" />\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\tclass=\"p-file-import col-12\"\r\n\t\t\tstyle=\"padding: 0.5rem\">\r\n\t\t\t<p-fileUpload\r\n\t\t\t\t#primeFileUpload\r\n\t\t\t\tchooseStyleClass=\"p-element p-button-text p-button p-component\"\r\n\t\t\t\tmode=\"basic\"\r\n\t\t\t\tchooseIcon=\"pi pi-upload\"\r\n\t\t\t\t[chooseLabel]=\"'import.uploadFile' | translate\"\r\n\t\t\t\t[auto]=\"true\"\r\n\t\t\t\t[customUpload]=\"true\"\r\n\t\t\t\t(uploadHandler)=\"upload($event)\"></p-fileUpload>\r\n\t\t</div>\r\n\t</div>\r\n</p-dialog>\r\n", styles: ["::ng-deep .p-file-import .p-fileupload-basic{justify-content:start}.btn-link{color:var(--p-primary-color);padding:.5rem}\n"] }]
81
82
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ActionService }], propDecorators: { fileUpload: [{
82
83
  type: ViewChild,
83
84
  args: [FileUpload]
84
85
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvaW1wb3J0L2ltcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2ltcG9ydC9pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQXlCLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBZTdDLE1BQU0sT0FBTyxlQUFlO0lBVzNCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUI7UUFEckIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBWDlCLFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzNCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixhQUFRLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDM0IsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQTtRQUM3QixhQUFRLEdBQVksS0FB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QUNKLENBQUM7K0dBeEVXLGVBQWU7bUdBQWYsZUFBZSwweUJBQ2hCLFVBQVUsZ0RDdkJ0Qiwwc0RBb0RBLG1MRGxDVyxXQUFXLDhWQUFDLFlBQVksb1FBQUUsWUFBWSxvNkJBQUUsVUFBVSxnNUJBQUMsWUFBWTs7NEZBSTdELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0MsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxZQUFZLENBQUM7MkdBS25ELFVBQVU7c0JBQWhDLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBtb2RlbCwgaW5wdXQsIG91dHB1dCwgaW5qZWN0LCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NlbGVjdCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0T3B0aW9ucyB7XHJcblx0dGl0bGU/OiBzdHJpbmc7XHJcblx0ZmlsZU5hbWU/OiBzdHJpbmc7XHJcblx0ZGF0YT86IGFueTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtaW1wb3J0JyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtGb3Jtc01vZHVsZSxCdXR0b25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgRmlsZVVwbG9hZCxTZWxlY3RNb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9pbXBvcnQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1wb3J0Q29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKEZpbGVVcGxvYWQpIGZpbGVVcGxvYWQhOiBGaWxlVXBsb2FkO1xyXG5cdHZpc2libGUgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XHJcblx0ZmlsZU5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0ZnVuY05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0b3JnRmllbGQgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0bW9kZWxOYW1lID0gaW5wdXQ8c3RyaW5nPignJylcclxuXHRkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGRlcHRzOiBhbnlbXSA9IFtdO1xyXG5cdGRlcHQ6IGFueTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHQpIHtcclxuXHRcdGVmZmVjdChcclxuXHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEFjdGlvbigpO1xyXG5cdFx0XHRcdGlmIChhY3Rpb24/LnR5cGUgPT09ICdpbXBvcnQnKSB7XHJcblx0XHRcdFx0XHR0aGlzLmluaXREZXB0cygpO1xyXG5cdFx0XHRcdFx0dGhpcy52aXNpYmxlLnNldCh0cnVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuYWN0aW9uLnNldEFjdGlvbih1bmRlZmluZWQpO1xyXG5cdH1cclxuXHJcblx0aW5pdERlcHRzKCkge1xyXG5cdFx0Y29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySW5mbycpISk7XHJcblx0XHR0aGlzLmRlcHRzID0gdXNlckluZm8uZGVwdHM7XHJcblx0fVxyXG5cclxuXHRjYW5jZWwoKSB7XHJcblx0XHR0aGlzLnZpc2libGUuc2V0KGZhbHNlKTtcclxuXHR9XHJcblxyXG5cdGRvd25sb2FkKCkge1xyXG5cdFx0Y29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHRcdGxpbmsuaHJlZiA9ICcvaW1wb3J0RmlsZXMvJyArIHRoaXMuZmlsZU5hbWUoKSArICcueGxzeCc7XHJcblx0XHRsaW5rLmRvd25sb2FkID0gdGhpcy5maWxlTmFtZSgpICsgJy54bHN4JztcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcblx0XHRsaW5rLmNsaWNrKCk7XHJcblx0XHRkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG5cdH1cclxuXHJcblx0dXBsb2FkKGl0ZW06IGFueSkge1xyXG5cdFx0dGhpcy5kaXNhYmxlZCA9IHRydWU7XHJcblx0XHRjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgaXRlbS5maWxlc1swXSBhcyBhbnkpO1xyXG5cdFx0Zm9ybURhdGEuYXBwZW5kKHRoaXMub3JnRmllbGQoKSA/PyAnb3JnSWQnLCB0aGlzLmRlcHQpO1xyXG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdtb2RlbE5hbWUnLHRoaXMubW9kZWxOYW1lKCkpXHJcblx0XHRjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB0aGlzLmZ1bmNOYW1lKCkgPz8gJ2ltcG9ydCcsIGZvcm1EYXRhLCB7XHJcblx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG5cdFx0XHR3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG5cdFx0XHRcdGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5maWxlVXBsb2FkLmNsZWFyKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKGVycikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmZpbGVVcGxvYWQuY2xlYXIoKTtcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iLCI8cC1kaWFsb2dcclxuXHRoZWFkZXI9XCLlr7zlhaVcIlxyXG5cdFttb2RhbF09XCJ0cnVlXCJcclxuXHRhcHBlbmRUbz1cImJvZHlcIlxyXG5cdFtzdHlsZV09XCJ7IHdpZHRoOiAnMzByZW0nIH1cIlxyXG5cdChvbkhpZGUpPVwiY2FuY2VsKClcIlxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJncmlkIHAtZmx1aWRcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuXHRcdFx0PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE0cHhcIj4xLuaooeadv+S4i+i9vTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdlxyXG5cdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdHN0eWxlPVwicGFkZGluZzogMC41cmVtXCI+XHJcblx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRwQnV0dG9uXHJcblx0XHRcdFx0Y2xhc3M9XCJwLWVsZW1lbnQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbiBwLWNvbXBvbmVudFwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImRvd25sb2FkKClcIj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInAtYnV0dG9uLWxhYmVsXCI+IDxpIGNsYXNzPVwicGkgcGktZG93bmxvYWRcIj48L2k+5LiL6L295a+85YWl5qih5p2/IDwvc3Bhbj5cclxuXHRcdFx0PC9idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuXHRcdFx0PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE0cHhcIj4yLuaWh+S7tuS4iuS8oDwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdlxyXG5cdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdHN0eWxlPVwicGFkZGluZzogMXJlbSAwLjVyZW0gMCAwLjVyZW1cIj5cclxuXHRcdFx0PHAtc2VsZWN0XHJcblx0XHRcdFx0W29wdGlvbnNdPVwiZGVwdHNcIlxyXG5cdFx0XHRcdFsobmdNb2RlbCldPVwiZGVwdFwiXHJcblx0XHRcdFx0YXBwZW5kVG89XCJib2R5XCJcclxuXHRcdFx0XHRvcHRpb25MYWJlbD1cImRlcHROYW1lXCJcclxuXHRcdFx0XHRvcHRpb25WYWx1ZT1cImRlcHRJZFwiXHJcblx0XHRcdFx0cGxhY2Vob2xkZXI9XCLor7fpgInmi6npg6jpl6hcIlxyXG5cdFx0XHRcdFtzaXplXT1cIidzbWFsbCdcIlxyXG5cdFx0XHRcdGNsYXNzPVwidy1mdWxsIG1kOnctNTZcIiAvPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdGNsYXNzPVwicC1maWxlLWltcG9ydCBjb2wtMTJcIlxyXG5cdFx0XHRzdHlsZT1cInBhZGRpbmc6IDAuNXJlbVwiPlxyXG5cdFx0XHQ8cC1maWxlVXBsb2FkXHJcblx0XHRcdFx0I3ByaW1lRmlsZVVwbG9hZFxyXG5cdFx0XHRcdGNob29zZVN0eWxlQ2xhc3M9XCJwLWVsZW1lbnQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbiBwLWNvbXBvbmVudFwiXHJcblx0XHRcdFx0bW9kZT1cImJhc2ljXCJcclxuXHRcdFx0XHRjaG9vc2VJY29uPVwicGkgcGktdXBsb2FkXCJcclxuXHRcdFx0XHRjaG9vc2VMYWJlbD1cIumAieaLqeaWh+S7tuS4iuS8oFwiXHJcblx0XHRcdFx0W2F1dG9dPVwidHJ1ZVwiXHJcblx0XHRcdFx0W2N1c3RvbVVwbG9hZF09XCJ0cnVlXCJcclxuXHRcdFx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWQoJGV2ZW50KVwiPjwvcC1maWxlVXBsb2FkPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvcC1kaWFsb2c+XHJcbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvaW1wb3J0L2ltcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2ltcG9ydC9pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQXlCLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQWVwRCxNQUFNLE9BQU8sZUFBZTtJQVczQixZQUNTLElBQWdCLEVBQ2hCLE1BQXFCO1FBRHJCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVg5QixZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixhQUFRLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDM0IsYUFBUSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxL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LEtBQUssRUFBRSxDQUFDO1lBQ3pCLENBQUM7U0FDRCxDQUFDLENBQUM7SUFDSixDQUFDOytHQXhFVyxlQUFlO21HQUFmLGVBQWUsMHlCQUNoQixVQUFVLGdEQ3hCdEIsbzJEQXVEQSxtTERwQ1csV0FBVyw4VkFBRSxZQUFZLG9RQUFFLFlBQVksbzZCQUFFLFVBQVUsZzVCQUFFLFlBQVksb3JDQUFFLGFBQWE7OzRGQUk5RSxlQUFlO2tCQVAzQixTQUFTOytCQUNDLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQzsyR0FLcEUsVUFBVTtzQkFBaEMsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIG1vZGVsLCBpbnB1dCwgb3V0cHV0LCBpbmplY3QsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2VsZWN0JztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydE9wdGlvbnMge1xyXG5cdHRpdGxlPzogc3RyaW5nO1xyXG5cdGZpbGVOYW1lPzogc3RyaW5nO1xyXG5cdGRhdGE/OiBhbnk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWltcG9ydCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgRGlhbG9nTW9kdWxlLCBGaWxlVXBsb2FkLCBTZWxlY3RNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9pbXBvcnQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1wb3J0Q29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKEZpbGVVcGxvYWQpIGZpbGVVcGxvYWQhOiBGaWxlVXBsb2FkO1xyXG5cdHZpc2libGUgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XHJcblx0ZmlsZU5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0ZnVuY05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0b3JnRmllbGQgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0bW9kZWxOYW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0ZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRkZXB0czogYW55W10gPSBbXTtcclxuXHRkZXB0OiBhbnk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG5cdFx0cHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UsXHJcblx0KSB7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRBY3Rpb24oKTtcclxuXHRcdFx0XHRpZiAoYWN0aW9uPy50eXBlID09PSAnaW1wb3J0Jykge1xyXG5cdFx0XHRcdFx0dGhpcy5pbml0RGVwdHMoKTtcclxuXHRcdFx0XHRcdHRoaXMudmlzaWJsZS5zZXQodHJ1ZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmFjdGlvbi5zZXRBY3Rpb24odW5kZWZpbmVkKTtcclxuXHR9XHJcblxyXG5cdGluaXREZXB0cygpIHtcclxuXHRcdGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlckluZm8nKSEpO1xyXG5cdFx0dGhpcy5kZXB0cyA9IHVzZXJJbmZvLmRlcHRzO1xyXG5cdH1cclxuXHJcblx0Y2FuY2VsKCkge1xyXG5cdFx0dGhpcy52aXNpYmxlLnNldChmYWxzZSk7XHJcblx0fVxyXG5cclxuXHRkb3dubG9hZCgpIHtcclxuXHRcdGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcblx0XHRsaW5rLmhyZWYgPSAnL2ltcG9ydEZpbGVzLycgKyB0aGlzLmZpbGVOYW1lKCkgKyAnLnhsc3gnO1xyXG5cdFx0bGluay5kb3dubG9hZCA9IHRoaXMuZmlsZU5hbWUoKSArICcueGxzeCc7XHJcblx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG5cdFx0bGluay5jbGljaygpO1xyXG5cdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuXHR9XHJcblxyXG5cdHVwbG9hZChpdGVtOiBhbnkpIHtcclxuXHRcdHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuXHRcdGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGl0ZW0uZmlsZXNbMF0gYXMgYW55KTtcclxuXHRcdGZvcm1EYXRhLmFwcGVuZCh0aGlzLm9yZ0ZpZWxkKCkgPz8gJ29yZ0lkJywgdGhpcy5kZXB0KTtcclxuXHRcdGZvcm1EYXRhLmFwcGVuZCgnbW9kZWxOYW1lJywgdGhpcy5tb2RlbE5hbWUoKSk7XHJcblx0XHRjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCB0aGlzLmZ1bmNOYW1lKCkgPz8gJ2ltcG9ydCcsIGZvcm1EYXRhLCB7XHJcblx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG5cdFx0XHR3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0bmV4dDogKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG5cdFx0XHRcdGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGhpcy5maWxlVXBsb2FkLmNsZWFyKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlcnJvcjogKGVycikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmZpbGVVcGxvYWQuY2xlYXIoKTtcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cdH1cclxufSIsIjxwLWRpYWxvZ1xyXG5cdFtoZWFkZXJdPVwiJ2ltcG9ydC50aXRsZScgfCB0cmFuc2xhdGVcIlxyXG5cdFttb2RhbF09XCJ0cnVlXCJcclxuXHRhcHBlbmRUbz1cImJvZHlcIlxyXG5cdFtzdHlsZV09XCJ7IHdpZHRoOiAnMzByZW0nIH1cIlxyXG5cdChvbkhpZGUpPVwiY2FuY2VsKClcIlxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJncmlkIHAtZmx1aWRcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuXHRcdFx0PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE0cHhcIj4xLnt7ICdpbXBvcnQudGVtcGxhdGVEb3dubG9hZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXZcclxuXHRcdFx0Y2xhc3M9XCJjb2wtMTJcIlxyXG5cdFx0XHRzdHlsZT1cInBhZGRpbmc6IDAuNXJlbVwiPlxyXG5cdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0cEJ1dHRvblxyXG5cdFx0XHRcdGNsYXNzPVwicC1lbGVtZW50IHAtYnV0dG9uLXRleHQgcC1idXR0b24gcC1jb21wb25lbnRcIlxyXG5cdFx0XHRcdChjbGljayk9XCJkb3dubG9hZCgpXCI+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJwLWJ1dHRvbi1sYWJlbFwiPlxyXG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1kb3dubG9hZFwiPjwvaT48c3BhbiBjbGFzcz1cInBsLTJcIj57eyAnaW1wb3J0LmRvd25sb2FkVGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0PC9idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuXHRcdFx0PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE0cHhcIj4yLnt7ICdpbXBvcnQuZmlsZVVwbG9hZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXZcclxuXHRcdFx0Y2xhc3M9XCJjb2wtMTJcIlxyXG5cdFx0XHRzdHlsZT1cInBhZGRpbmc6IDFyZW0gMC41cmVtIDAgMC41cmVtXCI+XHJcblx0XHRcdDxwLXNlbGVjdFxyXG5cdFx0XHRcdFtzdHlsZV09XCJ7IHdpZHRoOiAnMjc1cHgnIH1cIlxyXG5cdFx0XHRcdFtvcHRpb25zXT1cImRlcHRzXCJcclxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cImRlcHRcIlxyXG5cdFx0XHRcdGFwcGVuZFRvPVwiYm9keVwiXHJcblx0XHRcdFx0b3B0aW9uTGFiZWw9XCJkZXB0TmFtZVwiXHJcblx0XHRcdFx0b3B0aW9uVmFsdWU9XCJkZXB0SWRcIlxyXG5cdFx0XHRcdFtwbGFjZWhvbGRlcl09XCInaW1wb3J0LmRlcHRQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxyXG5cdFx0XHRcdFtzaXplXT1cIidzbWFsbCdcIlxyXG5cdFx0XHRcdGNsYXNzPVwidy1mdWxsIG1kOnctNTZcIiAvPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdGNsYXNzPVwicC1maWxlLWltcG9ydCBjb2wtMTJcIlxyXG5cdFx0XHRzdHlsZT1cInBhZGRpbmc6IDAuNXJlbVwiPlxyXG5cdFx0XHQ8cC1maWxlVXBsb2FkXHJcblx0XHRcdFx0I3ByaW1lRmlsZVVwbG9hZFxyXG5cdFx0XHRcdGNob29zZVN0eWxlQ2xhc3M9XCJwLWVsZW1lbnQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbiBwLWNvbXBvbmVudFwiXHJcblx0XHRcdFx0bW9kZT1cImJhc2ljXCJcclxuXHRcdFx0XHRjaG9vc2VJY29uPVwicGkgcGktdXBsb2FkXCJcclxuXHRcdFx0XHRbY2hvb3NlTGFiZWxdPVwiJ2ltcG9ydC51cGxvYWRGaWxlJyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFx0W2F1dG9dPVwidHJ1ZVwiXHJcblx0XHRcdFx0W2N1c3RvbVVwbG9hZF09XCJ0cnVlXCJcclxuXHRcdFx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWQoJGV2ZW50KVwiPjwvcC1maWxlVXBsb2FkPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvcC1kaWFsb2c+XHJcbiJdfQ==
@@ -13,10 +13,13 @@ import { AmComponent, } from '../am/am.component';
13
13
  import { Toast } from 'primeng/toast';
14
14
  import { TranslatePipe } from '@ngx-translate/core';
15
15
  import { I18nService } from '../service/i18n.service';
16
+ import { ConfirmationService } from 'primeng/api';
17
+ import { ConfirmDialogModule } from 'primeng/confirmdialog';
16
18
  import * as i0 from "@angular/core";
17
19
  import * as i1 from "primeng/button";
18
20
  import * as i2 from "@angular/forms";
19
21
  import * as i3 from "primeng/tabs";
22
+ import * as i4 from "primeng/confirmdialog";
20
23
  export class PageFormComponent extends AmComponent {
21
24
  constructor() {
22
25
  super();
@@ -37,6 +40,7 @@ export class PageFormComponent extends AmComponent {
37
40
  this.newUrl = '';
38
41
  this.i18n = inject(I18nService);
39
42
  this.authLevel = input(-1);
43
+ this.confirmationService = inject(ConfirmationService);
40
44
  this.id = Number(this.route.snapshot.paramMap.get('id'));
41
45
  this.pageUrl = this.route.snapshot.url.map(segment => segment.path).join('/').replace(/([^\/]*)$/, "");
42
46
  this.newUrl = `${this.pageUrl}new`;
@@ -140,11 +144,21 @@ export class PageFormComponent extends AmComponent {
140
144
  }
141
145
  }
142
146
  statusChange(value) {
147
+ if (this.authLevel() < 4)
148
+ return;
143
149
  if (this.id) {
144
- this.getPrm.data[this.statusKey()] = value;
145
- this.upsertPrm.updData[this.statusKey()] = value;
146
- this.upsertPrm.log.content += `[状态] ${this.getPrm.data[this.statusKey()]} -> ${value}`;
147
- this.cForm.triggerModelEffect({ [this.statusKey()]: value });
150
+ let param = {
151
+ modelName: this.modelName,
152
+ data: { id: this.id, [this.statusKey()]: value }
153
+ };
154
+ if (this.isLog) {
155
+ param.logModel = `${this.modelName}Log`;
156
+ param.log = {
157
+ id: this.id,
158
+ content: `[状态] ${this.getPrm.data[this.statusKey()]} -> ${value}`
159
+ };
160
+ }
161
+ this.confirmStatus(param);
148
162
  }
149
163
  else {
150
164
  this.getPrm.data = Object.assign(this.getPrm.data || {}, {
@@ -154,8 +168,33 @@ export class PageFormComponent extends AmComponent {
154
168
  this.cForm.triggerModelEffect({ [this.statusKey()]: value });
155
169
  }
156
170
  }
171
+ confirmStatus(param) {
172
+ this.confirmationService.confirm({
173
+ message: this.i18n.fanyi('app.confirmStatus'),
174
+ header: this.i18n.fanyi('modal.confirm'),
175
+ closable: true,
176
+ closeOnEscape: true,
177
+ icon: 'pi pi-exclamation-triangle',
178
+ rejectButtonProps: {
179
+ label: this.i18n.fanyi('modal.close'),
180
+ severity: 'secondary',
181
+ outlined: true,
182
+ },
183
+ acceptButtonProps: {
184
+ label: this.i18n.fanyi('modal.confirm'),
185
+ },
186
+ accept: () => {
187
+ this.web_write(param).subscribe(res => {
188
+ this.upsertPrm.updData[this.statusKey()] = param.data[this.statusKey()];
189
+ this.cForm.triggerModelEffect({ [this.statusKey()]: param.data[this.statusKey()] });
190
+ });
191
+ },
192
+ reject: () => {
193
+ },
194
+ });
195
+ }
157
196
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }, { propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"overflow-hidden\">\r\n <div class=\"flex items-center justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n <app-crumb-action\r\n [newUrl]=\"newUrl\"\r\n [isShowCog]=\"true\"\r\n [outlined]=\"true\"\r\n [authLevel]=\"authLevel()\"\r\n (saveEvent)=\"submitForm()\">\r\n </app-crumb-action>\r\n <div class=\"hrefBtnList\">\r\n @if(id){\r\n @for(btn of hrefBtnList();track btn){\r\n <p-button \r\n [variant]=\"btn?.variant\" \r\n [severity]=\"btn?.severity\" \r\n class=\"mr-[6px]\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{btn.i18nKey? i18n.fanyi(btn.i18nKey) : btn.label}}\"\r\n (click)=\"goRun(btn)\"\r\n >\r\n </p-button>\r\n }\r\n }\r\n \r\n </div>\r\n <div></div>\r\n \r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n <div class=\"md:basis-1/3 py-1 basis-full flex items-center gap-2 flex-row order-1\">\r\n @for (btn of actionList();let i = $index; track btn) {\r\n <p-button\r\n [variant]=\"btn?.variant\"\r\n [severity]=\"btn?.severity\"\r\n class=\"mr-[4px]\"\r\n size=\"small\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{ btn.i18nKey ? (btn.i18nKey | translate) : btn.label }}\"\r\n (click)=\"authClick(btn)\"\r\n [disabled]=\"btn.btnDisabled ? btn.btnDisabled(getPrm.data) : false\"\r\n >\r\n </p-button>\r\n }\r\n </div>\r\n \r\n <div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first\">\r\n <custom-steps\r\n [steps]=\"statusSteps()\"\r\n [current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n (change)=\"statusChange($event)\">\r\n </custom-steps>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main flex flex-wrap overflow-y-hidden\">\r\n <div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n <div class=\"bg-white mx-2 form-panel\">\r\n <div class=\"p-2 flex-1\">\r\n <form\r\n [formGroup]=\"form().form!\">\r\n <custom-form\r\n #cForm\r\n [options]=\"formOptions\"\r\n [upsert]=\"upsertPrm\"\r\n [model]=\"getPrm.data??{}\"></custom-form>\r\n </form>\r\n </div>\r\n @if(gridList() && gridList().length > 1){\r\n <div class=\"relative mb-2\">\r\n <p-tabs [(value)]=\"indexValue\">\r\n <p-tablist>\r\n @for (fchild of gridList();let i = $index; track fchild) {\r\n <p-tab [value]=\"i\">\r\n {{fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title}}\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n </p-tabs>\r\n </div>\r\n }\r\n @for (grid of gridList(); let i = $index;track grid) {\r\n <custom-grid\r\n #customGrid\r\n [hidden]=\"indexValue !=i \"\r\n [rowData]=\"getPrm.data?.[grid.subDataKey!]|| []\"\r\n [upsert]=\"upsertPrm\"\r\n (deleteEmit)=\"delRows($event)\"\r\n [addType]=\"grid.subTableSource\"\r\n (addEmit)=\"dataSourceShow()\"\r\n [gridOptions]=\"grid.gridOptions\"\r\n [authLevel]=\"authLevel()\"\r\n [selectData]=\"grid.selectData\">\r\n </custom-grid>\r\n } \r\n </div>\r\n </div>\r\n <div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n <custom-log [logs]=\"getPrm.data?.log??[]\"></custom-log>\r\n </div>\r\n </div>\r\n</div>\r\n<p-toast />\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "newUrl", "onExport", "outlined", "isList", "authLevel"], outputs: ["saveEvent", "cancelEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["steps", "current"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel"], outputs: ["searchPrmChange", "deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3.TabList, selector: "p-tablist" }, { kind: "component", type: i3.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: RowSelectorComponent, selector: "row-selector", inputs: ["title", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }, { propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"overflow-hidden\">\r\n <div class=\"flex items-center justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n <app-crumb-action\r\n [newUrl]=\"newUrl\"\r\n [isShowCog]=\"true\"\r\n [outlined]=\"true\"\r\n [authLevel]=\"authLevel()\"\r\n (saveEvent)=\"submitForm()\">\r\n </app-crumb-action>\r\n <div class=\"hrefBtnList\">\r\n @if(id){\r\n @for(btn of hrefBtnList();track btn){\r\n <p-button \r\n [variant]=\"btn?.variant\" \r\n [severity]=\"btn?.severity\" \r\n class=\"mr-[6px]\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{btn.i18nKey? i18n.fanyi(btn.i18nKey) : btn.label}}\"\r\n (click)=\"goRun(btn)\"\r\n >\r\n </p-button>\r\n }\r\n }\r\n \r\n </div>\r\n <div></div>\r\n \r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n <div class=\"md:basis-1/3 py-1 basis-full flex items-center gap-2 flex-row order-1\">\r\n @for (btn of actionList();let i = $index; track btn) {\r\n <p-button\r\n [variant]=\"btn?.variant\"\r\n [severity]=\"btn?.severity\"\r\n class=\"mr-[4px]\"\r\n size=\"small\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{ btn.i18nKey ? (btn.i18nKey | translate) : btn.label }}\"\r\n (click)=\"authClick(btn)\"\r\n [disabled]=\"btn.btnDisabled ? btn.btnDisabled(getPrm.data) : false\"\r\n >\r\n </p-button>\r\n }\r\n </div>\r\n \r\n <div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first\">\r\n <custom-steps\r\n [steps]=\"statusSteps()\"\r\n [current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n [authLevel]=\"authLevel()\"\r\n (change)=\"statusChange($event)\">\r\n </custom-steps>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main flex flex-wrap overflow-y-hidden\">\r\n <div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n <div class=\"bg-white mx-2 form-panel\">\r\n <div class=\"p-2 flex-1\">\r\n <form\r\n [formGroup]=\"form().form!\">\r\n <custom-form\r\n #cForm\r\n [options]=\"formOptions\"\r\n [upsert]=\"upsertPrm\"\r\n [model]=\"getPrm.data??{}\"></custom-form>\r\n </form>\r\n </div>\r\n @if(gridList() && gridList().length > 1){\r\n <div class=\"relative mb-2\">\r\n <p-tabs [(value)]=\"indexValue\">\r\n <p-tablist>\r\n @for (fchild of gridList();let i = $index; track fchild) {\r\n <p-tab [value]=\"i\">\r\n {{fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title}}\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n </p-tabs>\r\n </div>\r\n }\r\n @for (grid of gridList(); let i = $index;track grid) {\r\n <custom-grid\r\n #customGrid\r\n [hidden]=\"indexValue !=i \"\r\n [rowData]=\"getPrm.data?.[grid.subDataKey!]|| []\"\r\n [upsert]=\"upsertPrm\"\r\n (deleteEmit)=\"delRows($event)\"\r\n [addType]=\"grid.subTableSource\"\r\n (addEmit)=\"dataSourceShow()\"\r\n [gridOptions]=\"grid.gridOptions\"\r\n [authLevel]=\"authLevel()\"\r\n [selectData]=\"grid.selectData\">\r\n </custom-grid>\r\n } \r\n </div>\r\n </div>\r\n <div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n <custom-log [logs]=\"getPrm.data?.log??[]\"></custom-log>\r\n </div>\r\n </div>\r\n</div>\r\n<p-toast />\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n<p-confirmdialog />", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "newUrl", "onExport", "outlined", "isList", "authLevel"], outputs: ["saveEvent", "cancelEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["steps", "current", "authLevel"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel"], outputs: ["searchPrmChange", "deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3.TabList, selector: "p-tablist" }, { kind: "component", type: i3.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: RowSelectorComponent, selector: "row-selector", inputs: ["title", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i4.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }] }); }
159
198
  }
160
199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
161
200
  type: Component,
@@ -170,8 +209,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
170
209
  TabsModule,
171
210
  Toast,
172
211
  RowSelectorComponent,
173
- TranslatePipe
174
- ], providers: [], template: "<div class=\"overflow-hidden\">\r\n <div class=\"flex items-center justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n <app-crumb-action\r\n [newUrl]=\"newUrl\"\r\n [isShowCog]=\"true\"\r\n [outlined]=\"true\"\r\n [authLevel]=\"authLevel()\"\r\n (saveEvent)=\"submitForm()\">\r\n </app-crumb-action>\r\n <div class=\"hrefBtnList\">\r\n @if(id){\r\n @for(btn of hrefBtnList();track btn){\r\n <p-button \r\n [variant]=\"btn?.variant\" \r\n [severity]=\"btn?.severity\" \r\n class=\"mr-[6px]\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{btn.i18nKey? i18n.fanyi(btn.i18nKey) : btn.label}}\"\r\n (click)=\"goRun(btn)\"\r\n >\r\n </p-button>\r\n }\r\n }\r\n \r\n </div>\r\n <div></div>\r\n \r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n <div class=\"md:basis-1/3 py-1 basis-full flex items-center gap-2 flex-row order-1\">\r\n @for (btn of actionList();let i = $index; track btn) {\r\n <p-button\r\n [variant]=\"btn?.variant\"\r\n [severity]=\"btn?.severity\"\r\n class=\"mr-[4px]\"\r\n size=\"small\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{ btn.i18nKey ? (btn.i18nKey | translate) : btn.label }}\"\r\n (click)=\"authClick(btn)\"\r\n [disabled]=\"btn.btnDisabled ? btn.btnDisabled(getPrm.data) : false\"\r\n >\r\n </p-button>\r\n }\r\n </div>\r\n \r\n <div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first\">\r\n <custom-steps\r\n [steps]=\"statusSteps()\"\r\n [current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n (change)=\"statusChange($event)\">\r\n </custom-steps>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main flex flex-wrap overflow-y-hidden\">\r\n <div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n <div class=\"bg-white mx-2 form-panel\">\r\n <div class=\"p-2 flex-1\">\r\n <form\r\n [formGroup]=\"form().form!\">\r\n <custom-form\r\n #cForm\r\n [options]=\"formOptions\"\r\n [upsert]=\"upsertPrm\"\r\n [model]=\"getPrm.data??{}\"></custom-form>\r\n </form>\r\n </div>\r\n @if(gridList() && gridList().length > 1){\r\n <div class=\"relative mb-2\">\r\n <p-tabs [(value)]=\"indexValue\">\r\n <p-tablist>\r\n @for (fchild of gridList();let i = $index; track fchild) {\r\n <p-tab [value]=\"i\">\r\n {{fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title}}\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n </p-tabs>\r\n </div>\r\n }\r\n @for (grid of gridList(); let i = $index;track grid) {\r\n <custom-grid\r\n #customGrid\r\n [hidden]=\"indexValue !=i \"\r\n [rowData]=\"getPrm.data?.[grid.subDataKey!]|| []\"\r\n [upsert]=\"upsertPrm\"\r\n (deleteEmit)=\"delRows($event)\"\r\n [addType]=\"grid.subTableSource\"\r\n (addEmit)=\"dataSourceShow()\"\r\n [gridOptions]=\"grid.gridOptions\"\r\n [authLevel]=\"authLevel()\"\r\n [selectData]=\"grid.selectData\">\r\n </custom-grid>\r\n } \r\n </div>\r\n </div>\r\n <div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n <custom-log [logs]=\"getPrm.data?.log??[]\"></custom-log>\r\n </div>\r\n </div>\r\n</div>\r\n<p-toast />\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}.form-panel{border:solid 1px #dbdbdb}\n"] }]
212
+ TranslatePipe,
213
+ ConfirmDialogModule
214
+ ], providers: [], template: "<div class=\"overflow-hidden\">\r\n <div class=\"flex items-center justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n <app-crumb-action\r\n [newUrl]=\"newUrl\"\r\n [isShowCog]=\"true\"\r\n [outlined]=\"true\"\r\n [authLevel]=\"authLevel()\"\r\n (saveEvent)=\"submitForm()\">\r\n </app-crumb-action>\r\n <div class=\"hrefBtnList\">\r\n @if(id){\r\n @for(btn of hrefBtnList();track btn){\r\n <p-button \r\n [variant]=\"btn?.variant\" \r\n [severity]=\"btn?.severity\" \r\n class=\"mr-[6px]\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{btn.i18nKey? i18n.fanyi(btn.i18nKey) : btn.label}}\"\r\n (click)=\"goRun(btn)\"\r\n >\r\n </p-button>\r\n }\r\n }\r\n \r\n </div>\r\n <div></div>\r\n \r\n </div>\r\n <div class=\"flex\">\r\n <div class=\"px-2 flex flex-wrap items-center md:basis-2/3 basis-full\">\r\n <div class=\"md:basis-1/3 py-1 basis-full flex items-center gap-2 flex-row order-1\">\r\n @for (btn of actionList();let i = $index; track btn) {\r\n <p-button\r\n [variant]=\"btn?.variant\"\r\n [severity]=\"btn?.severity\"\r\n class=\"mr-[4px]\"\r\n size=\"small\"\r\n [icon]=\"btn?.icon\"\r\n label=\"{{ btn.i18nKey ? (btn.i18nKey | translate) : btn.label }}\"\r\n (click)=\"authClick(btn)\"\r\n [disabled]=\"btn.btnDisabled ? btn.btnDisabled(getPrm.data) : false\"\r\n >\r\n </p-button>\r\n }\r\n </div>\r\n \r\n <div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first\">\r\n <custom-steps\r\n [steps]=\"statusSteps()\"\r\n [current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n [authLevel]=\"authLevel()\"\r\n (change)=\"statusChange($event)\">\r\n </custom-steps>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"main flex flex-wrap overflow-y-hidden\">\r\n <div class=\"md:basis-2/3 basis-full h-full overflow-y-auto\">\r\n <div class=\"bg-white mx-2 form-panel\">\r\n <div class=\"p-2 flex-1\">\r\n <form\r\n [formGroup]=\"form().form!\">\r\n <custom-form\r\n #cForm\r\n [options]=\"formOptions\"\r\n [upsert]=\"upsertPrm\"\r\n [model]=\"getPrm.data??{}\"></custom-form>\r\n </form>\r\n </div>\r\n @if(gridList() && gridList().length > 1){\r\n <div class=\"relative mb-2\">\r\n <p-tabs [(value)]=\"indexValue\">\r\n <p-tablist>\r\n @for (fchild of gridList();let i = $index; track fchild) {\r\n <p-tab [value]=\"i\">\r\n {{fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title}}\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n </p-tabs>\r\n </div>\r\n }\r\n @for (grid of gridList(); let i = $index;track grid) {\r\n <custom-grid\r\n #customGrid\r\n [hidden]=\"indexValue !=i \"\r\n [rowData]=\"getPrm.data?.[grid.subDataKey!]|| []\"\r\n [upsert]=\"upsertPrm\"\r\n (deleteEmit)=\"delRows($event)\"\r\n [addType]=\"grid.subTableSource\"\r\n (addEmit)=\"dataSourceShow()\"\r\n [gridOptions]=\"grid.gridOptions\"\r\n [authLevel]=\"authLevel()\"\r\n [selectData]=\"grid.selectData\">\r\n </custom-grid>\r\n } \r\n </div>\r\n </div>\r\n <div class=\"md:basis-1/3 basis-full h-full overflow-y-auto\">\r\n <custom-log [logs]=\"getPrm.data?.log??[]\"></custom-log>\r\n </div>\r\n </div>\r\n</div>\r\n<p-toast />\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n<p-confirmdialog />", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 140px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}.form-panel{border:solid 1px #dbdbdb}\n"] }]
175
215
  }], ctorParameters: () => [], propDecorators: { customGrid: [{
176
216
  type: ViewChild,
177
217
  args: ['customGrid']
@@ -179,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
179
219
  type: ViewChild,
180
220
  args: ['cForm']
181
221
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxHQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFC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YUFDekIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFBO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDM0QsQ0FBQztJQUNILENBQUM7K0dBaEpVLGlCQUFpQjttR0FBakIsaUJBQWlCLDIyQ0FGbEIsRUFBRSw0T0NwQ2QsZytIQTRHZSwrUUR0RlgsWUFBWSxpYkFDWixtQkFBbUIscWJBQ25CLGFBQWEsZ0dBQ2IsWUFBWSwrRUFDWixvQkFBb0Isb0xBQ3BCLGNBQWMsNEdBQ2QsYUFBYSxvT0FDYixVQUFVLDRYQUNWLEtBQUssaVVBQ0wsb0JBQW9CLGtKQUNwQixhQUFhOzs0RkFNSixpQkFBaUI7a0JBcEI3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixVQUFVO3dCQUNWLEtBQUs7d0JBQ0wsb0JBQW9CO3dCQUNwQixhQUFhO3FCQUNkLGFBR1MsRUFBRTt3REFhYSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkLCBpbnB1dCwgZWZmZWN0LCBjb21wdXRlZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCxGb3JtT3B0aW9ucyB9IGZyb20gJy4uL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnXHJcbmltcG9ydCB7IExvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvZy9sb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBDcnVtYkFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3RlcHNDb21wb25lbnQsU3RlcCB9IGZyb20gJy4uL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyaWRDb21wb25lbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFic01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFicyc7XHJcbmltcG9ydCB7IEFtQ29tcG9uZW50LCBHZXQsIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50J1xyXG5pbXBvcnQgeyBIcmVmQnRuTGlzdCxHcmlkTGlzdCB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25CdG4gfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wYWdlLWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1Db21wb25lbnQsXHJcbiAgICBMb2dDb21wb25lbnQsXHJcbiAgICBDcnVtYkFjdGlvbkNvbXBvbmVudCxcclxuICAgIFN0ZXBzQ29tcG9uZW50LFxyXG4gICAgR3JpZENvbXBvbmVudCxcclxuICAgIFRhYnNNb2R1bGUsXHJcbiAgICBUb2FzdCxcclxuICAgIFJvd1NlbGVjdG9yQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3BhZ2UtZm9ybS5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOltdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlRm9ybUNvbXBvbmVudCBleHRlbmRzIEFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIGdyaWRMaXN0ID0gaW5wdXQ8R3JpZExpc3RbXT4oW10pXHJcbiAgZm9ybSA9IGlucHV0LnJlcXVpcmVkPEZvcm1PcHRpb25zPih7fSlcclxuICBnZXRQcm1JbnB1dCA9IGlucHV0LnJlcXVpcmVkPEdldD4oe30pXHJcbiAgc3RhdHVzU3RlcHMgPSBpbnB1dDxTdGVwW10+KFtdKVxyXG4gIHN0YXR1c0tleSA9IGlucHV0KCdzdGF0dXMnKVxyXG4gIGhyZWZCdG5MaXN0ID0gaW5wdXQ8SHJlZkJ0bkxpc3RbXT4oW10pXHJcbiAgc2V0VGl0bGUgPSBpbnB1dDxzdHJpbmc+KClcclxuICBhY3Rpb25MaXN0ID0gaW5wdXQ8UGVybWlzc2lvbkJ0bltdPihbXSlcclxuICBtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKVxyXG5cclxuICBAVmlld0NoaWxkKCdjdXN0b21HcmlkJykgY3VzdG9tR3JpZCE6IEdyaWRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY0Zvcm0nKSBjRm9ybSE6IEZvcm1Db21wb25lbnRcclxuICB1c2VySGlzdG9yeVNlcnZpY2UgPSAgaW5qZWN0KFVzZXJIaXN0b3J5U2VydmljZSlcclxuICBpbmRleFZhbHVlID0gMFxyXG4gIHZpc2libGUgPSBmYWxzZVxyXG4gIGRpYWxvZ1NlYXJjaFBybSE6IFNlYXJjaFxyXG4gIHNlbGVjdE9wdGlvbnMhOkdyaWRPcHRpb25zXHJcbiAgc2VsZWN0RGF0YSA6YW55W109IFtdXHJcbiAgcGFnZVVybCA9ICcnXHJcbiAgbmV3VXJsID0gJydcclxuICBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKVxyXG4gIGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpXHJcbiAgY29uc3RydWN0b3IoKXtcclxuICAgIHN1cGVyKClcclxuICAgIHRoaXMuaWQgPSBOdW1iZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykpXHJcbiAgICB0aGlzLnBhZ2VVcmwgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKS5yZXBsYWNlKC8oW15cXC9dKikkLywgXCJcIilcclxuICAgIHRoaXMubmV3VXJsID0gYCR7dGhpcy5wYWdlVXJsfW5ld2BcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWxOYW1lID0gdGhpcy5nZXRQcm1JbnB1dCgpLm1vZGVsTmFtZSFcclxuICAgICAgdGhpcy5nZXRQcm0gPSB7Li4udGhpcy5nZXRQcm1JbnB1dCgpfVxyXG4gICAgICB0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpXHJcbiAgICAgIHRoaXMuaWQgJiYgdGhpcy5nZXREZXRhaWwoKVxyXG4gICAgfSx7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pXHJcblxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgdGhpcy5mb3JtT3B0aW9ucyA9IHsuLi50aGlzLmZvcm0oKX1cclxuICAgIH0pXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzTG9nID0gdGhpcy5tb2RlbExvZygpXHJcbiAgICAgIGNvbnNvbGUubG9nKCdtb2RlbC0tLS0tJyx0aGlzLmlzTG9nLHRoaXMubW9kZWxMb2coKSlcclxuICAgIH0se2FsbG93U2lnbmFsV3JpdGVzOnRydWV9KVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBDYiA9IHRoaXMudXBDYi5iaW5kKHRoaXMpXHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkgOmFueXtcclxuICAgIGlmKHRoaXMuY0Zvcm0udmFsaWRhdGUoKSl7XHJcbiAgICAgIGxldCBjYjphbnkgPSB0aGlzLmlkID09PSAwID8gbnVsbCA6IHRoaXMudXBDYlxyXG4gICAgICB0aGlzLnVwc2VydChudWxsLGNiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsUm93cyhlOmFueSkge1xyXG4gICAgY29uc3QgZ3JpZFRhYiA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdXHJcbiAgICBjb25zdCBkZWxldGVGdW5jID0gZ3JpZFRhYi5kZWxldGVGdW5jXHJcbiAgICBjb25zdCBzdWJUYWJsZSA9IGdyaWRUYWIuZ3JpZE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cclxuICAgIGxldCBwcm0gPSB7IFxyXG4gICAgICBtb2RlbE5hbWU6IHN1YlRhYmxlLCBcclxuICAgICAgaWRzOmUgXHJcbiAgICB9O1xyXG4gICAgaWYoIWRlbGV0ZUZ1bmMpe1xyXG4gICAgICB0aGlzLndlYl9yZW1vdmUocHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlRnVuYygpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXQoKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG4gIHVwQ2IocmVzPzphbnkpe1xyXG4gICAgaWYocmVzLmlkID09IDApe1xyXG4gICAgICB0aGlzLmdldERldGFpbCgpXHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWBcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZWRpdFVybF0pXHJcbiAgICAgIH0sIDE1MDApXHJcbiAgICB9XHJcbiAgICB0aGlzLmNGb3JtLmZpbmFsaXplKClcclxuICB9XHJcbiAgLy8gVE9ETyDmmK/lkKbpnIDopoHmlbDmja7ovazmjaLlm57osIPlh73mlbBcclxuICBvbk9rKGU6YW55KXtcclxuICAgIHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdLnNlbGVjdERhdGEgPSBbXVxyXG4gICAgaWYoZS5sZW5ndGggPiAwKXtcclxuICAgICAgbGV0IHsgc2VsZWN0RGF0YUNiIH0gPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVxyXG4gICAgICBlLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHNlbGVjdERhdGFDYiA/IHNlbGVjdERhdGFDYihpdGVtKTogey4uLml0ZW19XHJcbiAgICAgICAgdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV0uc2VsZWN0RGF0YSEucHVzaChvYmopXHJcbiAgICAgIH0pXHJcbiAgICB9IFxyXG4gIH1cclxuICBnZXREZXRhaWwoKXtcclxuICAgIHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlVGl0bGUocmVzKVxyXG4gICAgfSlcclxuICB9XHJcbiAgdXBkYXRlVGl0bGUocmVzOmFueSl7XHJcbiAgICAvLyBsZXQgdGl0bGUgPSB0aGlzLnNldFRpdGxlKCkgPyB0aGlzLnNldFRpdGxlKCkgOiAnJ1xyXG4gICAgLy8gdGl0bGUgIT09ICcnICYmIHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSlcclxuICAgIGxldCBtYWluRmllbGQgPSB0aGlzLmZvcm0oKS5tYWluRmllbGRcclxuICAgIGxldCB0aXRsZSA9IHJlc1ttYWluRmllbGQhXVxyXG4gICAgdGhpcy51c2VySGlzdG9yeVNlcnZpY2Uuc2V0TGFzdFRpdGxlKHRpdGxlKVxyXG4gIH1cclxuICBkYXRhU291cmNlU2hvdygpe1xyXG4gICAgdGhpcy5kaWFsb2dTZWFyY2hQcm0gPSB7Li4udGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1bJ3NlYXJjaFBybSddIX1cclxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdWydzZWxlY3RPcHRpb25zJ10hXHJcbiAgICBjb25zb2xlLmxvZygnc2VsZXRjLS0tLS0nLHRoaXMuc2VsZWN0T3B0aW9ucylcclxuICAgIHRoaXMuZGlhbG9nU2VhcmNoUHJtLm1vZGVsTmFtZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5tb2RlbE5hbWVcclxuICAgIHRoaXMudmlzaWJsZSA9IHRydWVcclxuICB9XHJcblxyXG4gIGdvUnVuKGRhdGE6YW55KXtcclxuICAgIGlmKGRhdGEuaWRLZXkpe1xyXG4gICAgICBsZXQgaWQgPSB0aGlzLmdldFBybS5kYXRhW2RhdGEuaWRLZXldXHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHtkYXRhLnVybH0vJHtpZH1gXSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtkYXRhLnVybF0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhdXRoQ2xpY2soYnRuOmFueSl7XHJcbiAgICBjb25zb2xlLmxvZygnYXV0aENsaWNrJyxidG4pXHJcbiAgICBpZihidG4uaGFzT3duUHJvcGVydHkoJ29uQ2xpY2snKSl7XHJcbiAgICAgIGJ0bi5vbkNsaWNrKHRoaXMuZ2V0UHJtLmRhdGEpXHJcbiAgICB9XHJcbiAgfVxyXG4gIHN0YXR1c0NoYW5nZSh2YWx1ZTphbnkpe1xyXG4gICAgaWYodGhpcy5pZCl7XHJcbiAgICAgIHRoaXMuZ2V0UHJtLmRhdGFbdGhpcy5zdGF0dXNLZXkoKV0gPSB2YWx1ZVxyXG4gICAgICB0aGlzLnVwc2VydFBybS51cGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlXHJcbiAgICAgIHRoaXMudXBzZXJ0UHJtLmxvZyEuY29udGVudCArPSBgW+eKtuaAgV0gJHt0aGlzLmdldFBybS5kYXRhIVt0aGlzLnN0YXR1c0tleSgpXX0gLT4gJHt2YWx1ZX1gXHJcbiAgICAgIHRoaXMuY0Zvcm0udHJpZ2dlck1vZGVsRWZmZWN0KHtbdGhpcy5zdGF0dXNLZXkoKV06dmFsdWV9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YXx8e30se1xyXG4gICAgICAgIFt0aGlzLnN0YXR1c0tleSgpXTp2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlXHJcbiAgICAgIHRoaXMuY0Zvcm0udHJpZ2dlck1vZGVsRWZmZWN0KHtbdGhpcy5zdGF0dXNLZXkoKV06dmFsdWV9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweS0xIHB4LTEgYm9yZGVyLWItWzFweF0gYm9yZGVyLVsjZGJkYmRiXSBiZy13aGl0ZVwiPlxyXG4gICAgPGFwcC1jcnVtYi1hY3Rpb25cclxuICAgICAgW25ld1VybF09XCJuZXdVcmxcIlxyXG4gICAgICBbaXNTaG93Q29nXT1cInRydWVcIlxyXG4gICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXHJcbiAgICAgIFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxyXG4gICAgICAoc2F2ZUV2ZW50KT1cInN1Ym1pdEZvcm0oKVwiPlxyXG4gICAgPC9hcHAtY3J1bWItYWN0aW9uPlxyXG4gICAgPGRpdiBjbGFzcz1cImhyZWZCdG5MaXN0XCI+XHJcbiAgICAgIEBpZihpZCl7XHJcbiAgICAgICAgQGZvcihidG4gb2YgaHJlZkJ0bkxpc3QoKTt0cmFjayBidG4pe1xyXG4gICAgICAgICAgPHAtYnV0dG9uIFxyXG4gICAgICAgICAgICBbdmFyaWFudF09XCJidG4/LnZhcmlhbnRcIiBcclxuICAgICAgICAgICAgW3NldmVyaXR5XT1cImJ0bj8uc2V2ZXJpdHlcIiBcclxuICAgICAgICAgICAgY2xhc3M9XCJtci1bNnB4XVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cImJ0bj8uaWNvblwiXHJcbiAgICAgICAgICAgIGxhYmVsPVwie3tidG4uaTE4bktleT8gaTE4bi5mYW55aShidG4uaTE4bktleSkgOiBidG4ubGFiZWx9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJnb1J1bihidG4pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj48L2Rpdj5cclxuICAgIFxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHgtMiBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgbWQ6YmFzaXMtMi8zIGJhc2lzLWZ1bGxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1kOmJhc2lzLTEvMyBweS0xIGJhc2lzLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZmxleC1yb3cgb3JkZXItMVwiPlxyXG4gICAgICAgIEBmb3IgKGJ0biBvZiBhY3Rpb25MaXN0KCk7bGV0IGkgPSAkaW5kZXg7IHRyYWNrIGJ0bikge1xyXG4gICAgICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgICAgIFt2YXJpYW50XT1cImJ0bj8udmFyaWFudFwiXHJcbiAgICAgICAgICAgIFtzZXZlcml0eV09XCJidG4/LnNldmVyaXR5XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtci1bNHB4XVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cImJ0bj8uaWNvblwiXHJcbiAgICAgICAgICAgIGxhYmVsPVwie3sgYnRuLmkxOG5LZXkgPyAoYnRuLmkxOG5LZXkgfCB0cmFuc2xhdGUpIDogYnRuLmxhYmVsIH19XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImF1dGhDbGljayhidG4pXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5idG5EaXNhYmxlZCA/IGJ0bi5idG5EaXNhYmxlZChnZXRQcm0uZGF0YSkgOiBmYWxzZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvcC1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgPGRpdiBjbGFzcz1cIm1kOmJhc2lzLTIvMyBiYXNpcy1mdWxsIGZsZXggbWQ6ZmxleC1yb3ctcmV2ZXJzZSBmbGV4LXJvdyBtZDpvcmRlci0yIG9yZGVyLWZpcnN0XCI+XHJcbiAgICAgICAgPGN1c3RvbS1zdGVwc1xyXG4gICAgICAgICAgW3N0ZXBzXT1cInN0YXR1c1N0ZXBzKClcIlxyXG4gICAgICAgICAgW2N1cnJlbnRdPVwiZ2V0UHJtLmRhdGEgJiYgZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldICE9PSB1bmRlZmluZWQgPyBnZXRQcm0uZGF0YVtzdGF0dXNLZXkoKV0gOiAwXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwic3RhdHVzQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2N1c3RvbS1zdGVwcz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWFpbiBmbGV4IGZsZXgtd3JhcCBvdmVyZmxvdy15LWhpZGRlblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1kOmJhc2lzLTIvMyBiYXNpcy1mdWxsIGgtZnVsbCBvdmVyZmxvdy15LWF1dG9cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJnLXdoaXRlIG14LTIgZm9ybS1wYW5lbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTIgZmxleC0xXCI+XHJcbiAgICAgICAgICA8Zm9ybVxyXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm0oKS5mb3JtIVwiPlxyXG4gICAgICAgICAgICA8Y3VzdG9tLWZvcm1cclxuICAgICAgICAgICAgICAjY0Zvcm1cclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJmb3JtT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJnZXRQcm0uZGF0YT8/e31cIj48L2N1c3RvbS1mb3JtPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZihncmlkTGlzdCgpICYmIGdyaWRMaXN0KCkubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgbWItMlwiPlxyXG4gICAgICAgICAgICA8cC10YWJzIFsodmFsdWUpXT1cImluZGV4VmFsdWVcIj5cclxuICAgICAgICAgICAgICA8cC10YWJsaXN0PlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmNoaWxkIG9mIGdyaWRMaXN0KCk7bGV0IGkgPSAkaW5kZXg7IHRyYWNrIGZjaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICA8cC10YWIgW3ZhbHVlXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2ZjaGlsZC5pMThuS2V5ID8gaTE4bi5mYW55aShmY2hpbGQuaTE4bktleSkgOiBmY2hpbGQudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICA8L3AtdGFiPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvcC10YWJsaXN0PlxyXG4gICAgICAgICAgICA8L3AtdGFicz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yIChncmlkIG9mIGdyaWRMaXN0KCk7IGxldCBpID0gJGluZGV4O3RyYWNrIGdyaWQpIHtcclxuICAgICAgICAgIDxjdXN0b20tZ3JpZFxyXG4gICAgICAgICAgICAjY3VzdG9tR3JpZFxyXG4gICAgICAgICAgICBbaGlkZGVuXT1cImluZGV4VmFsdWUgIT1pIFwiXHJcbiAgICAgICAgICAgIFtyb3dEYXRhXT1cImdldFBybS5kYXRhPy5bZ3JpZC5zdWJEYXRhS2V5IV18fCBbXVwiXHJcbiAgICAgICAgICAgIFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuICAgICAgICAgICAgKGRlbGV0ZUVtaXQpPVwiZGVsUm93cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2FkZFR5cGVdPVwiZ3JpZC5zdWJUYWJsZVNvdXJjZVwiXHJcbiAgICAgICAgICAgIChhZGRFbWl0KT1cImRhdGFTb3VyY2VTaG93KClcIlxyXG4gICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZC5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxyXG4gICAgICAgICAgICBbc2VsZWN0RGF0YV09XCJncmlkLnNlbGVjdERhdGFcIj5cclxuICAgICAgICAgIDwvY3VzdG9tLWdyaWQ+XHJcbiAgICAgICAgfSAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0xLzMgYmFzaXMtZnVsbCBoLWZ1bGwgb3ZlcmZsb3cteS1hdXRvXCI+XHJcbiAgICAgIDxjdXN0b20tbG9nIFtsb2dzXT1cImdldFBybS5kYXRhPy5sb2c/P1tdXCI+PC9jdXN0b20tbG9nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48cC10b2FzdCAvPlxyXG48cm93LXNlbGVjdG9yXHJcblx0Wyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuXHRbc2VhcmNoUHJtXT1cImRpYWxvZ1NlYXJjaFBybVwiXHJcblx0W2dyaWRPcHRpb25zXT1cInNlbGVjdE9wdGlvbnNcIlxyXG5cdChvbk9rKT1cIm9uT2soJGV2ZW50KVwiPlxyXG48L3Jvdy1zZWxlY3Rvcj4iXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxHQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFC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QyxZQUFZO2dCQUNILEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdXNlckhpc3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgY29tcHV0ZWQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBMb2dDb21wb25lbnQgfSBmcm9tICcuLi9sb2cvbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgQ3J1bWJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9jcnVtYi1hY3Rpb24vY3J1bWItYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN0ZXBzQ29tcG9uZW50LFN0ZXAgfSBmcm9tICcuLi9zdGVwcy9zdGVwcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYnNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnMnO1xyXG5pbXBvcnQgeyBBbUNvbXBvbmVudCwgR2V0LCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgSHJlZkJ0bkxpc3QsR3JpZExpc3QgfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uQnRuIH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBhZ2UtZm9ybScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIExvZ0NvbXBvbmVudCxcclxuICAgIENydW1iQWN0aW9uQ29tcG9uZW50LFxyXG4gICAgU3RlcHNDb21wb25lbnQsXHJcbiAgICBHcmlkQ29tcG9uZW50LFxyXG4gICAgVGFic01vZHVsZSxcclxuICAgIFRvYXN0LFxyXG4gICAgUm93U2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgQ29uZmlybURpYWxvZ01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3BhZ2UtZm9ybS5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOltdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlRm9ybUNvbXBvbmVudCBleHRlbmRzIEFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIGdyaWRMaXN0ID0gaW5wdXQ8R3JpZExpc3RbXT4oW10pXHJcbiAgZm9ybSA9IGlucHV0LnJlcXVpcmVkPEZvcm1PcHRpb25zPih7fSlcclxuICBnZXRQcm1JbnB1dCA9IGlucHV0LnJlcXVpcmVkPEdldD4oe30pXHJcbiAgc3RhdHVzU3RlcHMgPSBpbnB1dDxTdGVwW10+KFtdKVxyXG4gIHN0YXR1c0tleSA9IGlucHV0KCdzdGF0dXMnKVxyXG4gIGhyZWZCdG5MaXN0ID0gaW5wdXQ8SHJlZkJ0bkxpc3RbXT4oW10pXHJcbiAgc2V0VGl0bGUgPSBpbnB1dDxzdHJpbmc+KClcclxuICBhY3Rpb25MaXN0ID0gaW5wdXQ8UGVybWlzc2lvbkJ0bltdPihbXSlcclxuICBtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKVxyXG5cclxuICBAVmlld0NoaWxkKCdjdXN0b21HcmlkJykgY3VzdG9tR3JpZCE6IEdyaWRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY0Zvcm0nKSBjRm9ybSE6IEZvcm1Db21wb25lbnRcclxuICB1c2VySGlzdG9yeVNlcnZpY2UgPSAgaW5qZWN0KFVzZXJIaXN0b3J5U2VydmljZSlcclxuICBpbmRleFZhbHVlID0gMFxyXG4gIHZpc2libGUgPSBmYWxzZVxyXG4gIGRpYWxvZ1NlYXJjaFBybSE6IFNlYXJjaFxyXG4gIHNlbGVjdE9wdGlvbnMhOkdyaWRPcHRpb25zXHJcbiAgc2VsZWN0RGF0YSA6YW55W109IFtdXHJcbiAgcGFnZVVybCA9ICcnXHJcbiAgbmV3VXJsID0gJydcclxuICBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKVxyXG4gIGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpXHJcbiAgY29uZmlybWF0aW9uU2VydmljZSA9IGluamVjdChDb25maXJtYXRpb25TZXJ2aWNlKVxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICBzdXBlcigpXHJcbiAgICB0aGlzLmlkID0gTnVtYmVyKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpKVxyXG4gICAgdGhpcy5wYWdlVXJsID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoKS5qb2luKCcvJykucmVwbGFjZSgvKFteXFwvXSopJC8sIFwiXCIpXHJcbiAgICB0aGlzLm5ld1VybCA9IGAke3RoaXMucGFnZVVybH1uZXdgXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsTmFtZSA9IHRoaXMuZ2V0UHJtSW5wdXQoKS5tb2RlbE5hbWUhXHJcbiAgICAgIHRoaXMuZ2V0UHJtID0gey4uLnRoaXMuZ2V0UHJtSW5wdXQoKX1cclxuICAgICAgdGhpcy5pZCAmJiAodGhpcy5nZXRQcm0uaWQgPSB0aGlzLmlkKVxyXG4gICAgICB0aGlzLmlkICYmIHRoaXMuZ2V0RGV0YWlsKClcclxuICAgIH0seyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KVxyXG5cclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybU9wdGlvbnMgPSB7Li4udGhpcy5mb3JtKCl9XHJcbiAgICB9KVxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgdGhpcy5pc0xvZyA9IHRoaXMubW9kZWxMb2coKVxyXG4gICAgICBjb25zb2xlLmxvZygnbW9kZWwtLS0tLScsdGhpcy5pc0xvZyx0aGlzLm1vZGVsTG9nKCkpXHJcbiAgICB9LHthbGxvd1NpZ25hbFdyaXRlczp0cnVlfSlcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwQ2IgPSB0aGlzLnVwQ2IuYmluZCh0aGlzKVxyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIDphbnl7XHJcbiAgICBpZih0aGlzLmNGb3JtLnZhbGlkYXRlKCkpe1xyXG4gICAgICBsZXQgY2I6YW55ID0gdGhpcy5pZCA9PT0gMCA/IG51bGwgOiB0aGlzLnVwQ2JcclxuICAgICAgdGhpcy51cHNlcnQobnVsbCxjYilcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbFJvd3MoZTphbnkpIHtcclxuICAgIGNvbnN0IGdyaWRUYWIgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVxyXG4gICAgY29uc3QgZGVsZXRlRnVuYyA9IGdyaWRUYWIuZGVsZXRlRnVuY1xyXG4gICAgY29uc3Qgc3ViVGFibGUgPSBncmlkVGFiLmdyaWRPcHRpb25zLm1vZGVsTmFtZTtcclxuXHJcbiAgICBsZXQgcHJtID0geyBcclxuICAgICAgbW9kZWxOYW1lOiBzdWJUYWJsZSwgXHJcbiAgICAgIGlkczplIFxyXG4gICAgfTtcclxuICAgIGlmKCFkZWxldGVGdW5jKXtcclxuICAgICAgdGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmdldCgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlbGV0ZUZ1bmMoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0KClcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuICB1cENiKHJlcz86YW55KXtcclxuICAgIGlmKHJlcy5pZCA9PSAwKXtcclxuICAgICAgdGhpcy5nZXREZXRhaWwoKVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBsZXQgZWRpdFVybCA9IGAke3RoaXMucGFnZVVybH0ke3Jlcy5pZH1gXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2VkaXRVcmxdKVxyXG4gICAgICB9LCAxNTAwKVxyXG4gICAgfVxyXG4gICAgdGhpcy5jRm9ybS5maW5hbGl6ZSgpXHJcbiAgfVxyXG4gIC8vIFRPRE8g5piv5ZCm6ZyA6KaB5pWw5o2u6L2s5o2i5Zue6LCD5Ye95pWwXHJcbiAgb25PayhlOmFueSl7XHJcbiAgICB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXS5zZWxlY3REYXRhID0gW11cclxuICAgIGlmKGUubGVuZ3RoID4gMCl7XHJcbiAgICAgIGxldCB7IHNlbGVjdERhdGFDYiB9ID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1cclxuICAgICAgZS5mb3JFYWNoKChpdGVtOmFueSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSBzZWxlY3REYXRhQ2IgPyBzZWxlY3REYXRhQ2IoaXRlbSk6IHsuLi5pdGVtfVxyXG4gICAgICAgIHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdLnNlbGVjdERhdGEhLnB1c2gob2JqKVxyXG4gICAgICB9KVxyXG4gICAgfSBcclxuICB9XHJcbiAgZ2V0RGV0YWlsKCl7XHJcbiAgICB0aGlzLndlYl9nZXQodGhpcy5nZXRQcm0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVRpdGxlKHJlcylcclxuICAgIH0pXHJcbiAgfVxyXG4gIHVwZGF0ZVRpdGxlKHJlczphbnkpe1xyXG4gICAgLy8gbGV0IHRpdGxlID0gdGhpcy5zZXRUaXRsZSgpID8gdGhpcy5zZXRUaXRsZSgpIDogJydcclxuICAgIC8vIHRpdGxlICE9PSAnJyAmJiB0aGlzLnVzZXJIaXN0b3J5U2VydmljZS5zZXRMYXN0VGl0bGUodGl0bGUpXHJcbiAgICBsZXQgbWFpbkZpZWxkID0gdGhpcy5mb3JtKCkubWFpbkZpZWxkXHJcbiAgICBsZXQgdGl0bGUgPSByZXNbbWFpbkZpZWxkIV1cclxuICAgIHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSlcclxuICB9XHJcbiAgZGF0YVNvdXJjZVNob3coKXtcclxuICAgIHRoaXMuZGlhbG9nU2VhcmNoUHJtID0gey4uLnRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdWydzZWFyY2hQcm0nXSF9XHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVsnc2VsZWN0T3B0aW9ucyddIVxyXG4gICAgY29uc29sZS5sb2coJ3NlbGV0Yy0tLS0tJyx0aGlzLnNlbGVjdE9wdGlvbnMpXHJcbiAgICB0aGlzLmRpYWxvZ1NlYXJjaFBybS5tb2RlbE5hbWUgPSB0aGlzLnNlbGVjdE9wdGlvbnMubW9kZWxOYW1lXHJcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlXHJcbiAgfVxyXG5cclxuICBnb1J1bihkYXRhOmFueSl7XHJcbiAgICBpZihkYXRhLmlkS2V5KXtcclxuICAgICAgbGV0IGlkID0gdGhpcy5nZXRQcm0uZGF0YVtkYXRhLmlkS2V5XVxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7ZGF0YS51cmx9LyR7aWR9YF0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZGF0YS51cmxdKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXV0aENsaWNrKGJ0bjphbnkpe1xyXG4gICAgY29uc29sZS5sb2coJ2F1dGhDbGljaycsYnRuKVxyXG4gICAgaWYoYnRuLmhhc093blByb3BlcnR5KCdvbkNsaWNrJykpe1xyXG4gICAgICBidG4ub25DbGljayh0aGlzLmdldFBybS5kYXRhKVxyXG4gICAgfVxyXG4gIH1cclxuICBzdGF0dXNDaGFuZ2UodmFsdWU6YW55KXtcclxuICAgIGlmKHRoaXMuYXV0aExldmVsKCkgPCA0KSByZXR1cm47XHJcbiAgICBpZih0aGlzLmlkKXtcclxuICAgICAgbGV0IHBhcmFtIDphbnk9IHtcclxuICAgICAgICBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLFxyXG4gICAgICAgIGRhdGE6e2lkOiB0aGlzLmlkLCBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuaXNMb2cpe1xyXG4gICAgICAgIHBhcmFtLmxvZ01vZGVsID0gYCR7dGhpcy5tb2RlbE5hbWV9TG9nYFxyXG4gICAgICAgIHBhcmFtLmxvZyA9IHtcclxuICAgICAgICAgIGlkOnRoaXMuaWQsXHJcbiAgICAgICAgICBjb250ZW50OmBb54q25oCBXSAke3RoaXMuZ2V0UHJtLmRhdGEhW3RoaXMuc3RhdHVzS2V5KCldfSAtPiAke3ZhbHVlfWBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maXJtU3RhdHVzKHBhcmFtKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YXx8e30se1xyXG4gICAgICAgIFt0aGlzLnN0YXR1c0tleSgpXTp2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlXHJcbiAgICAgIHRoaXMuY0Zvcm0udHJpZ2dlck1vZGVsRWZmZWN0KHtbdGhpcy5zdGF0dXNLZXkoKV06dmFsdWV9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybVN0YXR1cyhwYXJhbTphbnkpe1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICBtZXNzYWdlOiB0aGlzLmkxOG4uZmFueWkoJ2FwcC5jb25maXJtU3RhdHVzJyksXHJcbiAgICAgIGhlYWRlcjogdGhpcy5pMThuLmZhbnlpKCdtb2RhbC5jb25maXJtJyksXHJcbiAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICBjbG9zZU9uRXNjYXBlOiB0cnVlLFxyXG4gICAgICBpY29uOiAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxyXG4gICAgICByZWplY3RCdXR0b25Qcm9wczoge1xyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuaTE4bi5mYW55aSgnbW9kYWwuY2xvc2UnKSxcclxuICAgICAgICAgIHNldmVyaXR5OiAnc2Vjb25kYXJ5JyxcclxuICAgICAgICAgIG91dGxpbmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBhY2NlcHRCdXR0b25Qcm9wczoge1xyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuaTE4bi5mYW55aSgnbW9kYWwuY29uZmlybScpLFxyXG4gICAgICB9LFxyXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLndlYl93cml0ZShwYXJhbSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnVwc2VydFBybS51cGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHBhcmFtLmRhdGFbdGhpcy5zdGF0dXNLZXkoKV1cclxuICAgICAgICAgIHRoaXMuY0Zvcm0udHJpZ2dlck1vZGVsRWZmZWN0KHtbdGhpcy5zdGF0dXNLZXkoKV06IHBhcmFtLmRhdGFbdGhpcy5zdGF0dXNLZXkoKV19KVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlamVjdDogKCkgPT4ge1xyXG4gICAgICB9LFxyXG4gIH0pO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTEgcHgtMSBib3JkZXItYi1bMXB4XSBib3JkZXItWyNkYmRiZGJdIGJnLXdoaXRlXCI+XHJcbiAgICA8YXBwLWNydW1iLWFjdGlvblxyXG4gICAgICBbbmV3VXJsXT1cIm5ld1VybFwiXHJcbiAgICAgIFtpc1Nob3dDb2ddPVwidHJ1ZVwiXHJcbiAgICAgIFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuICAgICAgW2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXHJcbiAgICAgIChzYXZlRXZlbnQpPVwic3VibWl0Rm9ybSgpXCI+XHJcbiAgICA8L2FwcC1jcnVtYi1hY3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaHJlZkJ0bkxpc3RcIj5cclxuICAgICAgQGlmKGlkKXtcclxuICAgICAgICBAZm9yKGJ0biBvZiBocmVmQnRuTGlzdCgpO3RyYWNrIGJ0bil7XHJcbiAgICAgICAgICA8cC1idXR0b24gXHJcbiAgICAgICAgICAgIFt2YXJpYW50XT1cImJ0bj8udmFyaWFudFwiIFxyXG4gICAgICAgICAgICBbc2V2ZXJpdHldPVwiYnRuPy5zZXZlcml0eVwiIFxyXG4gICAgICAgICAgICBjbGFzcz1cIm1yLVs2cHhdXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiYnRuPy5pY29uXCJcclxuICAgICAgICAgICAgbGFiZWw9XCJ7e2J0bi5pMThuS2V5PyBpMThuLmZhbnlpKGJ0bi5pMThuS2V5KSA6IGJ0bi5sYWJlbH19XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImdvUnVuKGJ0bilcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvcC1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PjwvZGl2PlxyXG4gICAgXHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJweC0yIGZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMS8zIHB5LTEgYmFzaXMtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmbGV4LXJvdyBvcmRlci0xXCI+XHJcbiAgICAgICAgQGZvciAoYnRuIG9mIGFjdGlvbkxpc3QoKTtsZXQgaSA9ICRpbmRleDsgdHJhY2sgYnRuKSB7XHJcbiAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgW3ZhcmlhbnRdPVwiYnRuPy52YXJpYW50XCJcclxuICAgICAgICAgICAgW3NldmVyaXR5XT1cImJ0bj8uc2V2ZXJpdHlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm1yLVs0cHhdXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiYnRuPy5pY29uXCJcclxuICAgICAgICAgICAgbGFiZWw9XCJ7eyBidG4uaTE4bktleSA/IChidG4uaTE4bktleSB8IHRyYW5zbGF0ZSkgOiBidG4ubGFiZWwgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYXV0aENsaWNrKGJ0bilcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnRuLmJ0bkRpc2FibGVkID8gYnRuLmJ0bkRpc2FibGVkKGdldFBybS5kYXRhKSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMi8zIGJhc2lzLWZ1bGwgZmxleCBtZDpmbGV4LXJvdy1yZXZlcnNlIGZsZXgtcm93IG1kOm9yZGVyLTIgb3JkZXItZmlyc3RcIj5cclxuICAgICAgICA8Y3VzdG9tLXN0ZXBzXHJcbiAgICAgICAgICBbc3RlcHNdPVwic3RhdHVzU3RlcHMoKVwiXHJcbiAgICAgICAgICBbY3VycmVudF09XCJnZXRQcm0uZGF0YSAmJiBnZXRQcm0uZGF0YVtzdGF0dXNLZXkoKV0gIT09IHVuZGVmaW5lZCA/IGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSA6IDBcIlxyXG4gICAgICAgICAgW2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInN0YXR1c0NoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9jdXN0b20tc3RlcHM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1haW4gZmxleCBmbGV4LXdyYXAgb3ZlcmZsb3cteS1oaWRkZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbCBoLWZ1bGwgb3ZlcmZsb3cteS1hdXRvXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiZy13aGl0ZSBteC0yIGZvcm0tcGFuZWxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicC0yIGZsZXgtMVwiPlxyXG4gICAgICAgICAgPGZvcm1cclxuICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtKCkuZm9ybSFcIj5cclxuICAgICAgICAgICAgPGN1c3RvbS1mb3JtXHJcbiAgICAgICAgICAgICAgI2NGb3JtXHJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZm9ybU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgIFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwiZ2V0UHJtLmRhdGE/P3t9XCI+PC9jdXN0b20tZm9ybT5cclxuICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBAaWYoZ3JpZExpc3QoKSAmJiBncmlkTGlzdCgpLmxlbmd0aCA+IDEpe1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIG1iLTJcIj5cclxuICAgICAgICAgICAgPHAtdGFicyBbKHZhbHVlKV09XCJpbmRleFZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPHAtdGFibGlzdD5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGZjaGlsZCBvZiBncmlkTGlzdCgpO2xldCBpID0gJGluZGV4OyB0cmFjayBmY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgICAgPHAtdGFiIFt2YWx1ZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tmY2hpbGQuaTE4bktleSA/IGkxOG4uZmFueWkoZmNoaWxkLmkxOG5LZXkpIDogZmNoaWxkLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgPC9wLXRhYj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L3AtdGFibGlzdD5cclxuICAgICAgICAgICAgPC9wLXRhYnM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGZvciAoZ3JpZCBvZiBncmlkTGlzdCgpOyBsZXQgaSA9ICRpbmRleDt0cmFjayBncmlkKSB7XHJcbiAgICAgICAgICA8Y3VzdG9tLWdyaWRcclxuICAgICAgICAgICAgI2N1c3RvbUdyaWRcclxuICAgICAgICAgICAgW2hpZGRlbl09XCJpbmRleFZhbHVlICE9aSBcIlxyXG4gICAgICAgICAgICBbcm93RGF0YV09XCJnZXRQcm0uZGF0YT8uW2dyaWQuc3ViRGF0YUtleSFdfHwgW11cIlxyXG4gICAgICAgICAgICBbdXBzZXJ0XT1cInVwc2VydFBybVwiXHJcbiAgICAgICAgICAgIChkZWxldGVFbWl0KT1cImRlbFJvd3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFthZGRUeXBlXT1cImdyaWQuc3ViVGFibGVTb3VyY2VcIlxyXG4gICAgICAgICAgICAoYWRkRW1pdCk9XCJkYXRhU291cmNlU2hvdygpXCJcclxuICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cImdyaWQuZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICBbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuICAgICAgICAgICAgW3NlbGVjdERhdGFdPVwiZ3JpZC5zZWxlY3REYXRhXCI+XHJcbiAgICAgICAgICA8L2N1c3RvbS1ncmlkPlxyXG4gICAgICAgIH0gICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMS8zIGJhc2lzLWZ1bGwgaC1mdWxsIG92ZXJmbG93LXktYXV0b1wiPlxyXG4gICAgICA8Y3VzdG9tLWxvZyBbbG9nc109XCJnZXRQcm0uZGF0YT8ubG9nPz9bXVwiPjwvY3VzdG9tLWxvZz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPHAtdG9hc3QgLz5cclxuPHJvdy1zZWxlY3RvclxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXHJcblx0W3NlYXJjaFBybV09XCJkaWFsb2dTZWFyY2hQcm1cIlxyXG5cdFtncmlkT3B0aW9uc109XCJzZWxlY3RPcHRpb25zXCJcclxuXHQob25Payk9XCJvbk9rKCRldmVudClcIj5cclxuPC9yb3ctc2VsZWN0b3I+XHJcbjxwLWNvbmZpcm1kaWFsb2cgLz4iXX0=
@@ -1,7 +1,11 @@
1
1
  import { Component, effect, input, untracked } from '@angular/core';
2
2
  import { Popover } from 'primeng/popover';
3
+ import { CheckboxModule } from 'primeng/checkbox';
4
+ import { FormsModule } from '@angular/forms';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "../../service/action.service";
7
+ import * as i2 from "primeng/checkbox";
8
+ import * as i3 from "@angular/forms";
5
9
  export class PopSelectComponent {
6
10
  constructor(action) {
7
11
  this.action = action;
@@ -23,23 +27,42 @@ export class PopSelectComponent {
23
27
  this.item().options = options;
24
28
  });
25
29
  }, { allowSignalWrites: true });
30
+ effect(() => {
31
+ const searchClear = this.action.getSearchClear();
32
+ if (searchClear != this.item()?.field)
33
+ return;
34
+ this.item()?.options?.forEach((option) => {
35
+ option.checked = false;
36
+ });
37
+ });
26
38
  }
27
39
  onOptionClick(option, item, selectOp) {
28
- item.selected = true;
29
- option.checked = true;
30
- item.options?.forEach((op) => {
31
- if (option.key != op.key) {
32
- op.checked = false;
33
- }
34
- });
35
- this.action.setSearchItem(item);
40
+ if (this.item()?.multiple) {
41
+ this.onMultipleOptionClick(option);
42
+ }
43
+ else {
44
+ this.onSingleOptionClick(option, item, selectOp);
45
+ }
46
+ }
47
+ onSingleOptionClick(option, item, selectOp) {
48
+ this.item().value = option.key;
49
+ this.item().operator = 'equals';
50
+ this.action.setSearchItem(this.item());
36
51
  selectOp.hide();
37
52
  }
53
+ onMultipleOptionClick(option) {
54
+ option.checked = !option.checked;
55
+ this.item().value = this.item()
56
+ ?.options?.filter((op) => op.checked)
57
+ .map((node) => node.key);
58
+ this.item().operator = 'in';
59
+ this.action.setSearchItem(this.item());
60
+ }
38
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopSelectComponent, deps: [{ token: i1.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PopSelectComponent, isStandalone: true, selector: "pop-select", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, modelName: { classPropertyName: "modelName", publicName: "modelName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"s-pop-select-container\">\r\n\t<div\r\n\t\tclass=\"s-pop-select-label\"\r\n\t\t(click)=\"selectOp.toggle($event)\">\r\n\t\t<div>{{ item()?.label }}</div>\r\n\t\t<span class=\"s-pop-select-label-icon pi pi-chevron-down\"></span>\r\n\t</div>\r\n</div>\r\n<p-popover #selectOp>\r\n\t<div class=\"w-[215px]\">\r\n\t\t@for (option of item()?.options; track option) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"s-pop-select-panel-item-option\"\r\n\t\t\t\t(click)=\"onOptionClick(option, item()!, selectOp)\">\r\n\t\t\t\t{{ option.label }}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</p-popover>\r\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.s-pop-select-container{padding:5px 0;border-bottom:solid 1px #d6d8db;position:relative}.s-pop-select-label{padding:2.5px 1.6rem;display:flex;justify-content:space-between;align-items:center;font-size:14px}.s-pop-select-label-icon{color:var(--p-form-field-icon-color);font-size:12px}.s-pop-select-label:hover{background-color:var(--p-list-option-focus-background);cursor:pointer}.s-pop-select-panel-item-option{font-size:14px;padding:2px 1.5rem}.s-pop-select-panel-item-option:hover{background-color:var(--p-list-option-focus-background);cursor:pointer}\n"], dependencies: [{ kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PopSelectComponent, isStandalone: true, selector: "pop-select", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, modelName: { classPropertyName: "modelName", publicName: "modelName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"s-pop-select-container\">\r\n\t<div\r\n\t\tclass=\"s-pop-select-label\"\r\n\t\t(click)=\"selectOp.toggle($event)\">\r\n\t\t<div>{{ item()?.label }}</div>\r\n\t\t<span class=\"s-pop-select-label-icon pi pi-chevron-down\"></span>\r\n\t</div>\r\n</div>\r\n<p-popover #selectOp>\r\n\t<div class=\"w-[215px] s-pop-select-content\">\r\n\t\t@for (option of item()?.options; track option) {\r\n\t\t\t<div\r\n\t\t\t\tstyle=\"user-select: none\"\r\n\t\t\t\tclass=\"w-full s-pop-select-panel-item-option flex items-center\"\r\n\t\t\t\t(click)=\"onOptionClick(option, item()!, selectOp)\">\r\n\t\t\t\t@if (item()?.multiple) {\r\n\t\t\t\t\t<span class=\"pb-1 mr-2\">\r\n\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\t[(ngModel)]=\"option.checked\"\r\n\t\t\t\t\t\t\t[binary]=\"true\" />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t<span style=\"user-select: none\">{{ option.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</p-popover>\r\n", styles: [".s-pop-select-container{padding:5px 0;border-bottom:solid 1px #d6d8db;position:relative}.s-pop-select-label{padding:2.5px 1.6rem;display:flex;justify-content:space-between;align-items:center;font-size:14px}.s-pop-select-label-icon{color:var(--p-form-field-icon-color);font-size:12px}.s-pop-select-label:hover{background-color:var(--p-list-option-focus-background);cursor:pointer}.s-pop-select-panel-item-option{font-size:14px;padding:2px 1rem}.s-pop-select-panel-item-option:hover{background-color:var(--p-list-option-focus-background);border-radius:6px;cursor:pointer}.s-pop-select-content{max-height:300px;overflow-y:scroll}\n"], dependencies: [{ kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }] }); }
40
63
  }
41
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopSelectComponent, decorators: [{
42
65
  type: Component,
43
- args: [{ selector: 'pop-select', standalone: true, imports: [Popover], template: "<div class=\"s-pop-select-container\">\r\n\t<div\r\n\t\tclass=\"s-pop-select-label\"\r\n\t\t(click)=\"selectOp.toggle($event)\">\r\n\t\t<div>{{ item()?.label }}</div>\r\n\t\t<span class=\"s-pop-select-label-icon pi pi-chevron-down\"></span>\r\n\t</div>\r\n</div>\r\n<p-popover #selectOp>\r\n\t<div class=\"w-[215px]\">\r\n\t\t@for (option of item()?.options; track option) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"s-pop-select-panel-item-option\"\r\n\t\t\t\t(click)=\"onOptionClick(option, item()!, selectOp)\">\r\n\t\t\t\t{{ option.label }}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</p-popover>\r\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}.s-pop-select-container{padding:5px 0;border-bottom:solid 1px #d6d8db;position:relative}.s-pop-select-label{padding:2.5px 1.6rem;display:flex;justify-content:space-between;align-items:center;font-size:14px}.s-pop-select-label-icon{color:var(--p-form-field-icon-color);font-size:12px}.s-pop-select-label:hover{background-color:var(--p-list-option-focus-background);cursor:pointer}.s-pop-select-panel-item-option{font-size:14px;padding:2px 1.5rem}.s-pop-select-panel-item-option:hover{background-color:var(--p-list-option-focus-background);cursor:pointer}\n"] }]
66
+ args: [{ selector: 'pop-select', standalone: true, imports: [CheckboxModule, FormsModule, Popover], template: "<div class=\"s-pop-select-container\">\r\n\t<div\r\n\t\tclass=\"s-pop-select-label\"\r\n\t\t(click)=\"selectOp.toggle($event)\">\r\n\t\t<div>{{ item()?.label }}</div>\r\n\t\t<span class=\"s-pop-select-label-icon pi pi-chevron-down\"></span>\r\n\t</div>\r\n</div>\r\n<p-popover #selectOp>\r\n\t<div class=\"w-[215px] s-pop-select-content\">\r\n\t\t@for (option of item()?.options; track option) {\r\n\t\t\t<div\r\n\t\t\t\tstyle=\"user-select: none\"\r\n\t\t\t\tclass=\"w-full s-pop-select-panel-item-option flex items-center\"\r\n\t\t\t\t(click)=\"onOptionClick(option, item()!, selectOp)\">\r\n\t\t\t\t@if (item()?.multiple) {\r\n\t\t\t\t\t<span class=\"pb-1 mr-2\">\r\n\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\t[(ngModel)]=\"option.checked\"\r\n\t\t\t\t\t\t\t[binary]=\"true\" />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t}\r\n\t\t\t\t<span style=\"user-select: none\">{{ option.label }}</span>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</p-popover>\r\n", styles: [".s-pop-select-container{padding:5px 0;border-bottom:solid 1px #d6d8db;position:relative}.s-pop-select-label{padding:2.5px 1.6rem;display:flex;justify-content:space-between;align-items:center;font-size:14px}.s-pop-select-label-icon{color:var(--p-form-field-icon-color);font-size:12px}.s-pop-select-label:hover{background-color:var(--p-list-option-focus-background);cursor:pointer}.s-pop-select-panel-item-option{font-size:14px;padding:2px 1rem}.s-pop-select-panel-item-option:hover{background-color:var(--p-list-option-focus-background);border-radius:6px;cursor:pointer}.s-pop-select-content{max-height:300px;overflow-y:scroll}\n"] }]
44
67
  }], ctorParameters: () => [{ type: i1.ActionService }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NlYXJjaC9wb3Atc2VsZWN0L3BvcC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zZWFyY2gvcG9wLXNlbGVjdC9wb3Atc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUs5QixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBSnpDLFNBQUksR0FBRyxLQUFLLEVBQWMsQ0FBQztRQUMzQixjQUFTLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDNUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUd6QixNQUFNLENBQ0wsR0FBRyxFQUFFO1lBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU87Z0JBQUUsT0FBTztZQUNsQyxNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDMUcsSUFBSSxDQUFDLFlBQVk7Z0JBQUUsT0FBTztZQUUxQixJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNWLEVBQUUsV0FBVyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztpQkFDbEMsU0FBUyxDQUFDLENBQUMsT0FBYyxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQXdCLEVBQUUsSUFBZ0IsRUFBRSxRQUFhO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDNUIsSUFBSSxNQUFNLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDMUIsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7K0dBbENXLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJVQ1ovQixrbEJBbUJBLGlrTURYVyxPQUFPOzs0RkFJTCxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VhcmNoSXRlbSwgU2VhcmNoSXRlbU9wdGlvbiB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ3ByaW1lbmcvcG9wb3Zlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3BvcC1zZWxlY3QnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1BvcG92ZXJdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wb3Atc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcG9wLXNlbGVjdC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3BTZWxlY3RDb21wb25lbnQge1xyXG5cdGl0ZW0gPSBpbnB1dDxTZWFyY2hJdGVtPigpO1xyXG5cdG1vZGVsTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRpc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSkge1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VhcmNoID0gdGhpcy5hY3Rpb24uZ2V0U2VhcmNoKHVudHJhY2tlZCgoKSA9PiB0aGlzLm1vZGVsTmFtZSgpKSk7XHJcblx0XHRcdFx0aWYgKCFzZWFyY2gpIHJldHVybjtcclxuXHRcdFx0XHRpZiAoIXRoaXMuaXRlbSgpPy5jYXNjYWRlKSByZXR1cm47XHJcblx0XHRcdFx0Y29uc3QgY29sdW1uRmlsdGVyID0gc2VhcmNoPy5jb2x1bW5GaWx0ZXJzPy5maW5kKChjb2w6YW55KSA9PiBjb2wuY29sdW1uRmllbGQgPT0gdGhpcy5pdGVtKCk/LmNhc2NhZGVLZXkpO1xyXG5cdFx0XHRcdGlmICghY29sdW1uRmlsdGVyKSByZXR1cm47XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dGhpcy5pdGVtKClcclxuXHRcdFx0XHRcdD8uY2FzY2FkZUZ1bmM/Lihjb2x1bW5GaWx0ZXIuZml0ZXIpXHJcblx0XHRcdFx0XHQuc3Vic2NyaWJlKChvcHRpb25zOiBhbnlbXSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLml0ZW0oKSEub3B0aW9ucyA9IG9wdGlvbnM7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdG9uT3B0aW9uQ2xpY2sob3B0aW9uOiBTZWFyY2hJdGVtT3B0aW9uLCBpdGVtOiBTZWFyY2hJdGVtLCBzZWxlY3RPcDogYW55KSB7XHJcblx0XHRpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcclxuXHRcdG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcclxuXHRcdGl0ZW0ub3B0aW9ucz8uZm9yRWFjaCgob3ApID0+IHtcclxuXHRcdFx0aWYgKG9wdGlvbi5rZXkgIT0gb3Aua2V5KSB7XHJcblx0XHRcdFx0b3AuY2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuYWN0aW9uLnNldFNlYXJjaEl0ZW0oaXRlbSk7XHJcblx0XHRzZWxlY3RPcC5oaWRlKCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzLXBvcC1zZWxlY3QtY29udGFpbmVyXCI+XHJcblx0PGRpdlxyXG5cdFx0Y2xhc3M9XCJzLXBvcC1zZWxlY3QtbGFiZWxcIlxyXG5cdFx0KGNsaWNrKT1cInNlbGVjdE9wLnRvZ2dsZSgkZXZlbnQpXCI+XHJcblx0XHQ8ZGl2Pnt7IGl0ZW0oKT8ubGFiZWwgfX08L2Rpdj5cclxuXHRcdDxzcGFuIGNsYXNzPVwicy1wb3Atc2VsZWN0LWxhYmVsLWljb24gcGkgcGktY2hldnJvbi1kb3duXCI+PC9zcGFuPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuPHAtcG9wb3ZlciAjc2VsZWN0T3A+XHJcblx0PGRpdiBjbGFzcz1cInctWzIxNXB4XVwiPlxyXG5cdFx0QGZvciAob3B0aW9uIG9mIGl0ZW0oKT8ub3B0aW9uczsgdHJhY2sgb3B0aW9uKSB7XHJcblx0XHRcdDxkaXZcclxuXHRcdFx0XHRjbGFzcz1cInMtcG9wLXNlbGVjdC1wYW5lbC1pdGVtLW9wdGlvblwiXHJcblx0XHRcdFx0KGNsaWNrKT1cIm9uT3B0aW9uQ2xpY2sob3B0aW9uLCBpdGVtKCkhLCBzZWxlY3RPcClcIj5cclxuXHRcdFx0XHR7eyBvcHRpb24ubGFiZWwgfX1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcbjwvcC1wb3BvdmVyPlxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NlYXJjaC9wb3Atc2VsZWN0L3BvcC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9zZWFyY2gvcG9wLXNlbGVjdC9wb3Atc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFLOUIsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUp6QyxTQUFJLEdBQUcsS0FBSyxFQUFjLENBQUM7UUFDM0IsY0FBUyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzVCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHekIsTUFBTSxDQUNMLEdBQUcsRUFBRTtZQUNKLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPO2dCQUFFLE9BQU87WUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxFQUFF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dXQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFNlYXJjaEl0ZW0sIFNlYXJjaEl0ZW1PcHRpb24gfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdwcmltZW5nL3BvcG92ZXInO1xyXG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAncG9wLXNlbGVjdCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ2hlY2tib3hNb2R1bGUsIEZvcm1zTW9kdWxlLCBQb3BvdmVyXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcG9wLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3BvcC1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wU2VsZWN0Q29tcG9uZW50IHtcclxuXHRpdGVtID0gaW5wdXQ8U2VhcmNoSXRlbT4oKTtcclxuXHRtb2RlbE5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0aXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UpIHtcclxuXHRcdGVmZmVjdChcclxuXHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHNlYXJjaCA9IHRoaXMuYWN0aW9uLmdldFNlYXJjaCh1bnRyYWNrZWQoKCkgPT4gdGhpcy5tb2RlbE5hbWUoKSkpO1xyXG5cdFx0XHRcdGlmICghc2VhcmNoKSByZXR1cm47XHJcblx0XHRcdFx0aWYgKCF0aGlzLml0ZW0oKT8uY2FzY2FkZSkgcmV0dXJuO1xyXG5cdFx0XHRcdGNvbnN0IGNvbHVtbkZpbHRlciA9IHNlYXJjaD8uY29sdW1uRmlsdGVycz8uZmluZCgoY29sKSA9PiBjb2wuY29sdW1uRmllbGQgPT0gdGhpcy5pdGVtKCk/LmNhc2NhZGVLZXkpO1xyXG5cdFx0XHRcdGlmICghY29sdW1uRmlsdGVyKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdHRoaXMuaXRlbSgpXHJcblx0XHRcdFx0XHQ/LmNhc2NhZGVGdW5jPy4oY29sdW1uRmlsdGVyLmZpdGVyKVxyXG5cdFx0XHRcdFx0LnN1YnNjcmliZSgob3B0aW9uczogYW55W10pID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pdGVtKCkhLm9wdGlvbnMgPSBvcHRpb25zO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBzZWFyY2hDbGVhciA9IHRoaXMuYWN0aW9uLmdldFNlYXJjaENsZWFyKCk7XHJcblx0XHRcdGlmIChzZWFyY2hDbGVhciAhPSB0aGlzLml0ZW0oKT8uZmllbGQpIHJldHVybjtcclxuXHRcdFx0dGhpcy5pdGVtKCk/Lm9wdGlvbnM/LmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG5cdFx0XHRcdG9wdGlvbi5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRvbk9wdGlvbkNsaWNrKG9wdGlvbjogU2VhcmNoSXRlbU9wdGlvbiwgaXRlbTogU2VhcmNoSXRlbSwgc2VsZWN0T3A6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuaXRlbSgpPy5tdWx0aXBsZSkge1xyXG5cdFx0XHR0aGlzLm9uTXVsdGlwbGVPcHRpb25DbGljayhvcHRpb24pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5vblNpbmdsZU9wdGlvbkNsaWNrKG9wdGlvbiwgaXRlbSwgc2VsZWN0T3ApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25TaW5nbGVPcHRpb25DbGljayhvcHRpb246IFNlYXJjaEl0ZW1PcHRpb24sIGl0ZW06IFNlYXJjaEl0ZW0sIHNlbGVjdE9wOiBhbnkpIHtcclxuXHRcdHRoaXMuaXRlbSgpIS52YWx1ZSA9IG9wdGlvbi5rZXk7XHJcblx0XHR0aGlzLml0ZW0oKSEub3BlcmF0b3IgPSAnZXF1YWxzJztcclxuXHRcdHRoaXMuYWN0aW9uLnNldFNlYXJjaEl0ZW0odGhpcy5pdGVtKCkhKTtcclxuXHRcdHNlbGVjdE9wLmhpZGUoKTtcclxuXHR9XHJcblxyXG5cdG9uTXVsdGlwbGVPcHRpb25DbGljayhvcHRpb246IFNlYXJjaEl0ZW1PcHRpb24pIHtcclxuXHRcdG9wdGlvbi5jaGVja2VkID0gIW9wdGlvbi5jaGVja2VkO1xyXG5cdFx0dGhpcy5pdGVtKCkhLnZhbHVlID0gdGhpcy5pdGVtKClcclxuXHRcdFx0Py5vcHRpb25zPy5maWx0ZXIoKG9wKSA9PiBvcC5jaGVja2VkKVxyXG5cdFx0XHQubWFwKChub2RlKSA9PiBub2RlLmtleSk7XHJcblx0XHR0aGlzLml0ZW0oKSEub3BlcmF0b3IgPSAnaW4nO1xyXG5cdFx0dGhpcy5hY3Rpb24uc2V0U2VhcmNoSXRlbSh0aGlzLml0ZW0oKSEpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicy1wb3Atc2VsZWN0LWNvbnRhaW5lclwiPlxyXG5cdDxkaXZcclxuXHRcdGNsYXNzPVwicy1wb3Atc2VsZWN0LWxhYmVsXCJcclxuXHRcdChjbGljayk9XCJzZWxlY3RPcC50b2dnbGUoJGV2ZW50KVwiPlxyXG5cdFx0PGRpdj57eyBpdGVtKCk/LmxhYmVsIH19PC9kaXY+XHJcblx0XHQ8c3BhbiBjbGFzcz1cInMtcG9wLXNlbGVjdC1sYWJlbC1pY29uIHBpIHBpLWNoZXZyb24tZG93blwiPjwvc3Bhbj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbjxwLXBvcG92ZXIgI3NlbGVjdE9wPlxyXG5cdDxkaXYgY2xhc3M9XCJ3LVsyMTVweF0gcy1wb3Atc2VsZWN0LWNvbnRlbnRcIj5cclxuXHRcdEBmb3IgKG9wdGlvbiBvZiBpdGVtKCk/Lm9wdGlvbnM7IHRyYWNrIG9wdGlvbikge1xyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0c3R5bGU9XCJ1c2VyLXNlbGVjdDogbm9uZVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJ3LWZ1bGwgcy1wb3Atc2VsZWN0LXBhbmVsLWl0ZW0tb3B0aW9uIGZsZXggaXRlbXMtY2VudGVyXCJcclxuXHRcdFx0XHQoY2xpY2spPVwib25PcHRpb25DbGljayhvcHRpb24sIGl0ZW0oKSEsIHNlbGVjdE9wKVwiPlxyXG5cdFx0XHRcdEBpZiAoaXRlbSgpPy5tdWx0aXBsZSkge1xyXG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJwYi0xIG1yLTJcIj5cclxuXHRcdFx0XHRcdFx0PHAtY2hlY2tib3hcclxuXHRcdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cIm9wdGlvbi5jaGVja2VkXCJcclxuXHRcdFx0XHRcdFx0XHRbYmluYXJ5XT1cInRydWVcIiAvPlxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQ8c3BhbiBzdHlsZT1cInVzZXItc2VsZWN0OiBub25lXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L2Rpdj5cclxuPC9wLXBvcG92ZXI+XHJcbiJdfQ==