imm-element-ui 0.1.1 → 0.1.3

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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvaW1wb3J0L2ltcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2ltcG9ydC9pbXBvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQXlCLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBZTdDLE1BQU0sT0FBTyxlQUFlO0lBVzNCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUI7UUFEckIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBWDlCLFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQzNCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixhQUFRLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDM0IsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQTtRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFPakIsTUFBTSxDQUNMLEdBQUcsRUFBRTtZQUNKLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkMsSUFBSSxNQUFNLEVBQUUsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDRixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDUixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNQLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7UUFDOUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDMUUsY0FBYyxFQUFFLElBQUk7WUFDcEIsZUFBZSxFQUFFLEtBQUs7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFO2dCQUMvQixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7WUFDRixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQztTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7K0dBeEVXLGVBQWU7bUdBQWYsZUFBZSwweUJBQ2hCLFVBQVUsZ0RDdkJ0Qiwwc0RBb0RBLG1MRGxDVyxXQUFXLDhWQUFDLFlBQVksb1FBQUUsWUFBWSxvNkJBQUUsVUFBVSxnNUJBQUMsWUFBWTs7NEZBSTdELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0MsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxZQUFZLENBQUM7MkdBS25ELFVBQVU7c0JBQWhDLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBtb2RlbCwgaW5wdXQsIG91dHB1dCwgaW5qZWN0LCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NlbGVjdCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0T3B0aW9ucyB7XHJcblx0dGl0bGU/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,6 +13,8 @@ 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";
@@ -37,6 +39,7 @@ export class PageFormComponent extends AmComponent {
37
39
  this.newUrl = '';
38
40
  this.i18n = inject(I18nService);
39
41
  this.authLevel = input(-1);
42
+ this.confirmationService = inject(ConfirmationService);
40
43
  this.id = Number(this.route.snapshot.paramMap.get('id'));
41
44
  this.pageUrl = this.route.snapshot.url.map(segment => segment.path).join('/').replace(/([^\/]*)$/, "");
42
45
  this.newUrl = `${this.pageUrl}new`;
@@ -140,11 +143,21 @@ export class PageFormComponent extends AmComponent {
140
143
  }
141
144
  }
142
145
  statusChange(value) {
146
+ if (this.authLevel() < 4)
147
+ return;
143
148
  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 });
149
+ let param = {
150
+ modelName: this.modelName,
151
+ data: { id: this.id, [this.statusKey()]: value }
152
+ };
153
+ if (this.isLog) {
154
+ param.logModel = `${this.modelName}Log`;
155
+ param.log = {
156
+ pid: this.id,
157
+ content: `[状态] ${this.getPrm.data[this.statusKey()]} -> ${value}`
158
+ };
159
+ }
160
+ this.confirmStatus(param);
148
161
  }
149
162
  else {
150
163
  this.getPrm.data = Object.assign(this.getPrm.data || {}, {
@@ -154,8 +167,32 @@ export class PageFormComponent extends AmComponent {
154
167
  this.cForm.triggerModelEffect({ [this.statusKey()]: value });
155
168
  }
156
169
  }
170
+ confirmStatus(param) {
171
+ this.confirmationService.confirm({
172
+ message: this.i18n.fanyi('app.confirmStatus'),
173
+ header: this.i18n.fanyi('modal.confirm'),
174
+ closable: true,
175
+ closeOnEscape: true,
176
+ icon: 'pi pi-exclamation-triangle',
177
+ rejectButtonProps: {
178
+ label: this.i18n.fanyi('modal.close'),
179
+ severity: 'secondary',
180
+ outlined: true,
181
+ },
182
+ acceptButtonProps: {
183
+ label: this.i18n.fanyi('modal.confirm'),
184
+ },
185
+ accept: () => {
186
+ this.web_write(param).subscribe(res => {
187
+ this.getDetail();
188
+ });
189
+ },
190
+ reject: () => {
191
+ },
192
+ });
193
+ }
157
194
  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" }] }); }
195
+ 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>", 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 }] }); }
159
196
  }
160
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
161
198
  type: Component,
@@ -170,8 +207,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
170
207
  TabsModule,
171
208
  Toast,
172
209
  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"] }]
210
+ TranslatePipe,
211
+ ConfirmDialogModule
212
+ ], 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>", 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
213
  }], ctorParameters: () => [], propDecorators: { customGrid: [{
176
214
  type: ViewChild,
177
215
  args: ['customGrid']
@@ -179,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
179
217
  type: ViewChild,
180
218
  args: ['cForm']
181
219
  }] } });
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=
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxHQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFzQjVELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBd0JoRDtRQUNFLEtBQUssRUFBRSxDQUFBO1FBeEJULGFBQVEsR0FBRyxLQUFLLENBQWEsRUFBRSxDQUFDLENBQUE7UUFDaEMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQWMsRUFBRSxDQUFDLENBQUE7UUFDdEMsZ0JBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3JDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFBO1FBQy9CLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDM0IsZ0JBQVcsR0FBRyxLQUFLLENBQWdCLEVBQUUsQ0FBQyxDQUFBO1FBQ3RDLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQTtRQUMxQixlQUFVLEdBQUcsS0FBSyxDQUFrQixFQUFFLENBQUMsQ0FBQTtRQUN2QyxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFBO1FBSWhDLHVCQUFrQixHQUFJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ2hELGVBQVUsR0FBRyxDQUFDLENBQUE7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFBO1FBR2YsZUFBVSxHQUFTLEVBQUUsQ0FBQTtRQUNyQixZQUFPLEdBQUcsRUFBRSxDQUFBO1FBQ1osV0FBTSxHQUFHLEVBQUUsQ0FBQTtRQUNYLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDMUIsY0FBUyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdCLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRy9DLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDdEcsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQTtRQUNsQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBVSxDQUFBO1lBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBQyxDQUFBO1lBQ3JDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDckMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDN0IsQ0FBQyxFQUFDLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUU5QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFDLENBQUE7UUFDckMsQ0FBQyxDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUN0RCxDQUFDLEVBQUMsRUFBQyxpQkFBaUIsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDO1lBQ3hCLElBQUksRUFBRSxHQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUMsRUFBRSxDQUFDLENBQUE7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBSztRQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDaEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQTtRQUNyQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUUvQyxJQUFJLEdBQUcsR0FBRztZQUNSLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEdBQUcsRUFBQyxDQUFDO1NBQ04sQ0FBQztRQUNGLElBQUcsQ0FBQyxVQUFVLEVBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDWixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFFSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQVE7UUFDWCxJQUFHLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDbEIsQ0FBQzthQUFLLENBQUM7WUFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUE7Z0JBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUNqQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBQ0Qsb0JBQW9CO0lBQ3BCLElBQUksQ0FBQyxDQUFLO1FBQ1IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ2hELElBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUMsQ0FBQztZQUNmLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ3ZELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUMsQ0FBQTtnQkFDdEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3hELENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsV0FBVyxDQUFDLEdBQU87UUFDakIscURBQXFEO1FBQ3JELDhEQUE4RDtRQUM5RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFBO1FBQ3JDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxTQUFVLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUUsRUFBQyxDQUFBO1FBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxlQUFlLENBQUUsQ0FBQTtRQUN2RSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUE7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFRO1FBQ1osSUFBRyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUM7WUFDYixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFPO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUMsR0FBRyxDQUFDLENBQUE7UUFDNUIsSUFBRyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUM7WUFDaEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQVM7UUFDcEIsSUFBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDaEMsSUFBRyxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUM7WUFDVixJQUFJLEtBQUssR0FBTztnQkFDZCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLElBQUksRUFBQyxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFDO2FBQzlDLENBQUE7WUFDRCxJQUFHLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQztnQkFDYixLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFBO2dCQUN2QyxLQUFLLENBQUMsR0FBRyxHQUFHO29CQUNWLEdBQUcsRUFBQyxJQUFJLENBQUMsRUFBRTtvQkFDWCxPQUFPLEVBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxLQUFLLEVBQUU7aUJBQ2xFLENBQUE7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUUsRUFBRSxFQUFDO2dCQUNwRCxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFDLEtBQUs7YUFDekIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFBO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBUztRQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1lBQ3hDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsYUFBYSxFQUFFLElBQUk7WUFDbkIsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxpQkFBaUIsRUFBRTtnQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUNyQyxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFLElBQUk7YUFDakI7WUFDRCxpQkFBaUIsRUFBRTtnQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO2FBQzFDO1lBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO2dCQUNsQixDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ2IsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNILENBQUM7K0dBbkxVLGlCQUFpQjttR0FBakIsaUJBQWlCLDIyQ0FGbEIsRUFBRSw0T0N2Q2QseWdJQTZHZSwrUURyRlgsWUFBWSxpYkFDWixtQkFBbUIscWJBQ25CLGFBQWEsZ0dBQ2IsWUFBWSwrRUFDWixvQkFBb0Isb0xBQ3BCLGNBQWMseUhBQ2QsYUFBYSxvT0FDYixVQUFVLDRYQUNWLEtBQUssaVVBQ0wsb0JBQW9CLGtKQUNwQixhQUFhLGlEQUNiLG1CQUFtQjs7NEZBTVYsaUJBQWlCO2tCQXJCN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixLQUFLO3dCQUNMLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3BCLGFBR1MsRUFBRTt3REFhYSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkLCBpbnB1dCwgZWZmZWN0LCBjb21wdXRlZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCxGb3JtT3B0aW9ucyB9IGZyb20gJy4uL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvd1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQnXHJcbmltcG9ydCB7IExvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvZy9sb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBDcnVtYkFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3RlcHNDb21wb25lbnQsU3RlcCB9IGZyb20gJy4uL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyaWRDb21wb25lbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFic01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFicyc7XHJcbmltcG9ydCB7IEFtQ29tcG9uZW50LCBHZXQsIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50J1xyXG5pbXBvcnQgeyBIcmVmQnRuTGlzdCxHcmlkTGlzdCB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25CdG4gfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGFnZS1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtQ29tcG9uZW50LFxyXG4gICAgTG9nQ29tcG9uZW50LFxyXG4gICAgQ3J1bWJBY3Rpb25Db21wb25lbnQsXHJcbiAgICBTdGVwc0NvbXBvbmVudCxcclxuICAgIEdyaWRDb21wb25lbnQsXHJcbiAgICBUYWJzTW9kdWxlLFxyXG4gICAgVG9hc3QsXHJcbiAgICBSb3dTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBDb25maXJtRGlhbG9nTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6W11cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgQW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgZ3JpZExpc3QgPSBpbnB1dDxHcmlkTGlzdFtdPihbXSlcclxuICBmb3JtID0gaW5wdXQucmVxdWlyZWQ8Rm9ybU9wdGlvbnM+KHt9KVxyXG4gIGdldFBybUlucHV0ID0gaW5wdXQucmVxdWlyZWQ8R2V0Pih7fSlcclxuICBzdGF0dXNTdGVwcyA9IGlucHV0PFN0ZXBbXT4oW10pXHJcbiAgc3RhdHVzS2V5ID0gaW5wdXQoJ3N0YXR1cycpXHJcbiAgaHJlZkJ0bkxpc3QgPSBpbnB1dDxIcmVmQnRuTGlzdFtdPihbXSlcclxuICBzZXRUaXRsZSA9IGlucHV0PHN0cmluZz4oKVxyXG4gIGFjdGlvbkxpc3QgPSBpbnB1dDxQZXJtaXNzaW9uQnRuW10+KFtdKVxyXG4gIG1vZGVsTG9nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N1c3RvbUdyaWQnKSBjdXN0b21HcmlkITogR3JpZENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdjRm9ybScpIGNGb3JtITogRm9ybUNvbXBvbmVudFxyXG4gIHVzZXJIaXN0b3J5U2VydmljZSA9ICBpbmplY3QoVXNlckhpc3RvcnlTZXJ2aWNlKVxyXG4gIGluZGV4VmFsdWUgPSAwXHJcbiAgdmlzaWJsZSA9IGZhbHNlXHJcbiAgZGlhbG9nU2VhcmNoUHJtITogU2VhcmNoXHJcbiAgc2VsZWN0T3B0aW9ucyE6R3JpZE9wdGlvbnNcclxuICBzZWxlY3REYXRhIDphbnlbXT0gW11cclxuICBwYWdlVXJsID0gJydcclxuICBuZXdVcmwgPSAnJ1xyXG4gIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpXHJcbiAgYXV0aExldmVsID0gaW5wdXQ8bnVtYmVyPigtMSlcclxuICBjb25maXJtYXRpb25TZXJ2aWNlID0gaW5qZWN0KENvbmZpcm1hdGlvblNlcnZpY2UpXHJcbiAgY29uc3RydWN0b3IoKXtcclxuICAgIHN1cGVyKClcclxuICAgIHRoaXMuaWQgPSBOdW1iZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykpXHJcbiAgICB0aGlzLnBhZ2VVcmwgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKS5yZXBsYWNlKC8oW15cXC9dKikkLywgXCJcIilcclxuICAgIHRoaXMubmV3VXJsID0gYCR7dGhpcy5wYWdlVXJsfW5ld2BcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWxOYW1lID0gdGhpcy5nZXRQcm1JbnB1dCgpLm1vZGVsTmFtZSFcclxuICAgICAgdGhpcy5nZXRQcm0gPSB7Li4udGhpcy5nZXRQcm1JbnB1dCgpfVxyXG4gICAgICB0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpXHJcbiAgICAgIHRoaXMuaWQgJiYgdGhpcy5nZXREZXRhaWwoKVxyXG4gICAgfSx7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pXHJcblxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgdGhpcy5mb3JtT3B0aW9ucyA9IHsuLi50aGlzLmZvcm0oKX1cclxuICAgIH0pXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzTG9nID0gdGhpcy5tb2RlbExvZygpXHJcbiAgICAgIGNvbnNvbGUubG9nKCdtb2RlbC0tLS0tJyx0aGlzLmlzTG9nLHRoaXMubW9kZWxMb2coKSlcclxuICAgIH0se2FsbG93U2lnbmFsV3JpdGVzOnRydWV9KVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBDYiA9IHRoaXMudXBDYi5iaW5kKHRoaXMpXHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkgOmFueXtcclxuICAgIGlmKHRoaXMuY0Zvcm0udmFsaWRhdGUoKSl7XHJcbiAgICAgIGxldCBjYjphbnkgPSB0aGlzLmlkID09PSAwID8gbnVsbCA6IHRoaXMudXBDYlxyXG4gICAgICB0aGlzLnVwc2VydChudWxsLGNiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsUm93cyhlOmFueSkge1xyXG4gICAgY29uc3QgZ3JpZFRhYiA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdXHJcbiAgICBjb25zdCBkZWxldGVGdW5jID0gZ3JpZFRhYi5kZWxldGVGdW5jXHJcbiAgICBjb25zdCBzdWJUYWJsZSA9IGdyaWRUYWIuZ3JpZE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cclxuICAgIGxldCBwcm0gPSB7IFxyXG4gICAgICBtb2RlbE5hbWU6IHN1YlRhYmxlLCBcclxuICAgICAgaWRzOmUgXHJcbiAgICB9O1xyXG4gICAgaWYoIWRlbGV0ZUZ1bmMpe1xyXG4gICAgICB0aGlzLndlYl9yZW1vdmUocHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlRnVuYygpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXQoKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG4gIHVwQ2IocmVzPzphbnkpe1xyXG4gICAgaWYocmVzLmlkID09IDApe1xyXG4gICAgICB0aGlzLmdldERldGFpbCgpXHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWBcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZWRpdFVybF0pXHJcbiAgICAgIH0sIDE1MDApXHJcbiAgICB9XHJcbiAgICB0aGlzLmNGb3JtLmZpbmFsaXplKClcclxuICB9XHJcbiAgLy8gVE9ETyDmmK/lkKbpnIDopoHmlbDmja7ovazmjaLlm57osIPlh73mlbBcclxuICBvbk9rKGU6YW55KXtcclxuICAgIHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdLnNlbGVjdERhdGEgPSBbXVxyXG4gICAgaWYoZS5sZW5ndGggPiAwKXtcclxuICAgICAgbGV0IHsgc2VsZWN0RGF0YUNiIH0gPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVxyXG4gICAgICBlLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHNlbGVjdERhdGFDYiA/IHNlbGVjdERhdGFDYihpdGVtKTogey4uLml0ZW19XHJcbiAgICAgICAgdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV0uc2VsZWN0RGF0YSEucHVzaChvYmopXHJcbiAgICAgIH0pXHJcbiAgICB9IFxyXG4gIH1cclxuICBnZXREZXRhaWwoKXtcclxuICAgIHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlVGl0bGUocmVzKVxyXG4gICAgfSlcclxuICB9XHJcbiAgdXBkYXRlVGl0bGUocmVzOmFueSl7XHJcbiAgICAvLyBsZXQgdGl0bGUgPSB0aGlzLnNldFRpdGxlKCkgPyB0aGlzLnNldFRpdGxlKCkgOiAnJ1xyXG4gICAgLy8gdGl0bGUgIT09ICcnICYmIHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSlcclxuICAgIGxldCBtYWluRmllbGQgPSB0aGlzLmZvcm0oKS5tYWluRmllbGRcclxuICAgIGxldCB0aXRsZSA9IHJlc1ttYWluRmllbGQhXVxyXG4gICAgdGhpcy51c2VySGlzdG9yeVNlcnZpY2Uuc2V0TGFzdFRpdGxlKHRpdGxlKVxyXG4gIH1cclxuICBkYXRhU291cmNlU2hvdygpe1xyXG4gICAgdGhpcy5kaWFsb2dTZWFyY2hQcm0gPSB7Li4udGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1bJ3NlYXJjaFBybSddIX1cclxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdWydzZWxlY3RPcHRpb25zJ10hXHJcbiAgICBjb25zb2xlLmxvZygnc2VsZXRjLS0tLS0nLHRoaXMuc2VsZWN0T3B0aW9ucylcclxuICAgIHRoaXMuZGlhbG9nU2VhcmNoUHJtLm1vZGVsTmFtZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5tb2RlbE5hbWVcclxuICAgIHRoaXMudmlzaWJsZSA9IHRydWVcclxuICB9XHJcblxyXG4gIGdvUnVuKGRhdGE6YW55KXtcclxuICAgIGlmKGRhdGEuaWRLZXkpe1xyXG4gICAgICBsZXQgaWQgPSB0aGlzLmdldFBybS5kYXRhW2RhdGEuaWRLZXldXHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHtkYXRhLnVybH0vJHtpZH1gXSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtkYXRhLnVybF0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhdXRoQ2xpY2soYnRuOmFueSl7XHJcbiAgICBjb25zb2xlLmxvZygnYXV0aENsaWNrJyxidG4pXHJcbiAgICBpZihidG4uaGFzT3duUHJvcGVydHkoJ29uQ2xpY2snKSl7XHJcbiAgICAgIGJ0bi5vbkNsaWNrKHRoaXMuZ2V0UHJtLmRhdGEpXHJcbiAgICB9XHJcbiAgfVxyXG4gIHN0YXR1c0NoYW5nZSh2YWx1ZTphbnkpe1xyXG4gICAgaWYodGhpcy5hdXRoTGV2ZWwoKSA8IDQpIHJldHVybjtcclxuICAgIGlmKHRoaXMuaWQpe1xyXG4gICAgICBsZXQgcGFyYW0gOmFueT0ge1xyXG4gICAgICAgIG1vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsXHJcbiAgICAgICAgZGF0YTp7aWQ6IHRoaXMuaWQsIFt0aGlzLnN0YXR1c0tleSgpXTogdmFsdWV9XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5pc0xvZyl7XHJcbiAgICAgICAgcGFyYW0ubG9nTW9kZWwgPSBgJHt0aGlzLm1vZGVsTmFtZX1Mb2dgXHJcbiAgICAgICAgcGFyYW0ubG9nID0ge1xyXG4gICAgICAgICAgcGlkOnRoaXMuaWQsXHJcbiAgICAgICAgICBjb250ZW50OmBb54q25oCBXSAke3RoaXMuZ2V0UHJtLmRhdGEhW3RoaXMuc3RhdHVzS2V5KCldfSAtPiAke3ZhbHVlfWBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb25maXJtU3RhdHVzKHBhcmFtKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YXx8e30se1xyXG4gICAgICAgIFt0aGlzLnN0YXR1c0tleSgpXTp2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlXHJcbiAgICAgIHRoaXMuY0Zvcm0udHJpZ2dlck1vZGVsRWZmZWN0KHtbdGhpcy5zdGF0dXNLZXkoKV06dmFsdWV9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlybVN0YXR1cyhwYXJhbTphbnkpe1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICBtZXNzYWdlOiB0aGlzLmkxOG4uZmFueWkoJ2FwcC5jb25maXJtU3RhdHVzJyksXHJcbiAgICAgIGhlYWRlcjogdGhpcy5pMThuLmZhbnlpKCdtb2RhbC5jb25maXJtJyksXHJcbiAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICBjbG9zZU9uRXNjYXBlOiB0cnVlLFxyXG4gICAgICBpY29uOiAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxyXG4gICAgICByZWplY3RCdXR0b25Qcm9wczoge1xyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuaTE4bi5mYW55aSgnbW9kYWwuY2xvc2UnKSxcclxuICAgICAgICAgIHNldmVyaXR5OiAnc2Vjb25kYXJ5JyxcclxuICAgICAgICAgIG91dGxpbmVkOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICBhY2NlcHRCdXR0b25Qcm9wczoge1xyXG4gICAgICAgICAgbGFiZWw6IHRoaXMuaTE4bi5mYW55aSgnbW9kYWwuY29uZmlybScpLFxyXG4gICAgICB9LFxyXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLndlYl93cml0ZShwYXJhbSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdldERldGFpbCgpXHJcbiAgICAgICAgfSlcclxuICAgICAgfSxcclxuICAgICAgcmVqZWN0OiAoKSA9PiB7XHJcbiAgICAgIH0sXHJcbiAgfSk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHktMSBweC0xIGJvcmRlci1iLVsxcHhdIGJvcmRlci1bI2RiZGJkYl0gYmctd2hpdGVcIj5cclxuICAgIDxhcHAtY3J1bWItYWN0aW9uXHJcbiAgICAgIFtuZXdVcmxdPVwibmV3VXJsXCJcclxuICAgICAgW2lzU2hvd0NvZ109XCJ0cnVlXCJcclxuICAgICAgW291dGxpbmVkXT1cInRydWVcIlxyXG4gICAgICBbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuICAgICAgKHNhdmVFdmVudCk9XCJzdWJtaXRGb3JtKClcIj5cclxuICAgIDwvYXBwLWNydW1iLWFjdGlvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJocmVmQnRuTGlzdFwiPlxyXG4gICAgICBAaWYoaWQpe1xyXG4gICAgICAgIEBmb3IoYnRuIG9mIGhyZWZCdG5MaXN0KCk7dHJhY2sgYnRuKXtcclxuICAgICAgICAgIDxwLWJ1dHRvbiBcclxuICAgICAgICAgICAgW3ZhcmlhbnRdPVwiYnRuPy52YXJpYW50XCIgXHJcbiAgICAgICAgICAgIFtzZXZlcml0eV09XCJidG4/LnNldmVyaXR5XCIgXHJcbiAgICAgICAgICAgIGNsYXNzPVwibXItWzZweF1cIlxyXG4gICAgICAgICAgICBbaWNvbl09XCJidG4/Lmljb25cIlxyXG4gICAgICAgICAgICBsYWJlbD1cInt7YnRuLmkxOG5LZXk/IGkxOG4uZmFueWkoYnRuLmkxOG5LZXkpIDogYnRuLmxhYmVsfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29SdW4oYnRuKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+PC9kaXY+XHJcbiAgICBcclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInB4LTIgZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIG1kOmJhc2lzLTIvMyBiYXNpcy1mdWxsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0xLzMgcHktMSBiYXNpcy1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGZsZXgtcm93IG9yZGVyLTFcIj5cclxuICAgICAgICBAZm9yIChidG4gb2YgYWN0aW9uTGlzdCgpO2xldCBpID0gJGluZGV4OyB0cmFjayBidG4pIHtcclxuICAgICAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICBbdmFyaWFudF09XCJidG4/LnZhcmlhbnRcIlxyXG4gICAgICAgICAgICBbc2V2ZXJpdHldPVwiYnRuPy5zZXZlcml0eVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibXItWzRweF1cIlxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBbaWNvbl09XCJidG4/Lmljb25cIlxyXG4gICAgICAgICAgICBsYWJlbD1cInt7IGJ0bi5pMThuS2V5ID8gKGJ0bi5pMThuS2V5IHwgdHJhbnNsYXRlKSA6IGJ0bi5sYWJlbCB9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhdXRoQ2xpY2soYnRuKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidG4uYnRuRGlzYWJsZWQgPyBidG4uYnRuRGlzYWJsZWQoZ2V0UHJtLmRhdGEpIDogZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbCBmbGV4IG1kOmZsZXgtcm93LXJldmVyc2UgZmxleC1yb3cgbWQ6b3JkZXItMiBvcmRlci1maXJzdFwiPlxyXG4gICAgICAgIDxjdXN0b20tc3RlcHNcclxuICAgICAgICAgIFtzdGVwc109XCJzdGF0dXNTdGVwcygpXCJcclxuICAgICAgICAgIFtjdXJyZW50XT1cImdldFBybS5kYXRhICYmIGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSAhPT0gdW5kZWZpbmVkID8gZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldIDogMFwiXHJcbiAgICAgICAgICBbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwic3RhdHVzQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8L2N1c3RvbS1zdGVwcz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWFpbiBmbGV4IGZsZXgtd3JhcCBvdmVyZmxvdy15LWhpZGRlblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1kOmJhc2lzLTIvMyBiYXNpcy1mdWxsIGgtZnVsbCBvdmVyZmxvdy15LWF1dG9cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJnLXdoaXRlIG14LTIgZm9ybS1wYW5lbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTIgZmxleC0xXCI+XHJcbiAgICAgICAgICA8Zm9ybVxyXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm0oKS5mb3JtIVwiPlxyXG4gICAgICAgICAgICA8Y3VzdG9tLWZvcm1cclxuICAgICAgICAgICAgICAjY0Zvcm1cclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJmb3JtT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJnZXRQcm0uZGF0YT8/e31cIj48L2N1c3RvbS1mb3JtPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZihncmlkTGlzdCgpICYmIGdyaWRMaXN0KCkubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgbWItMlwiPlxyXG4gICAgICAgICAgICA8cC10YWJzIFsodmFsdWUpXT1cImluZGV4VmFsdWVcIj5cclxuICAgICAgICAgICAgICA8cC10YWJsaXN0PlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmNoaWxkIG9mIGdyaWRMaXN0KCk7bGV0IGkgPSAkaW5kZXg7IHRyYWNrIGZjaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICA8cC10YWIgW3ZhbHVlXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2ZjaGlsZC5pMThuS2V5ID8gaTE4bi5mYW55aShmY2hpbGQuaTE4bktleSkgOiBmY2hpbGQudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICA8L3AtdGFiPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvcC10YWJsaXN0PlxyXG4gICAgICAgICAgICA8L3AtdGFicz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yIChncmlkIG9mIGdyaWRMaXN0KCk7IGxldCBpID0gJGluZGV4O3RyYWNrIGdyaWQpIHtcclxuICAgICAgICAgIDxjdXN0b20tZ3JpZFxyXG4gICAgICAgICAgICAjY3VzdG9tR3JpZFxyXG4gICAgICAgICAgICBbaGlkZGVuXT1cImluZGV4VmFsdWUgIT1pIFwiXHJcbiAgICAgICAgICAgIFtyb3dEYXRhXT1cImdldFBybS5kYXRhPy5bZ3JpZC5zdWJEYXRhS2V5IV18fCBbXVwiXHJcbiAgICAgICAgICAgIFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuICAgICAgICAgICAgKGRlbGV0ZUVtaXQpPVwiZGVsUm93cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2FkZFR5cGVdPVwiZ3JpZC5zdWJUYWJsZVNvdXJjZVwiXHJcbiAgICAgICAgICAgIChhZGRFbWl0KT1cImRhdGFTb3VyY2VTaG93KClcIlxyXG4gICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZC5ncmlkT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxyXG4gICAgICAgICAgICBbc2VsZWN0RGF0YV09XCJncmlkLnNlbGVjdERhdGFcIj5cclxuICAgICAgICAgIDwvY3VzdG9tLWdyaWQ+XHJcbiAgICAgICAgfSAgICAgICBcclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0xLzMgYmFzaXMtZnVsbCBoLWZ1bGwgb3ZlcmZsb3cteS1hdXRvXCI+XHJcbiAgICAgIDxjdXN0b20tbG9nIFtsb2dzXT1cImdldFBybS5kYXRhPy5sb2c/P1tdXCI+PC9jdXN0b20tbG9nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48cC10b2FzdCAvPlxyXG48cm93LXNlbGVjdG9yXHJcblx0Wyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuXHRbc2VhcmNoUHJtXT1cImRpYWxvZ1NlYXJjaFBybVwiXHJcblx0W2dyaWRPcHRpb25zXT1cInNlbGVjdE9wdGlvbnNcIlxyXG5cdChvbk9rKT1cIm9uT2soJGV2ZW50KVwiPlxyXG48L3Jvdy1zZWxlY3Rvcj4iXX0=
@@ -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==