nuxeo-development-framework 1.6.9 → 1.7.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.
- package/bundles/nuxeo-development-framework.umd.js +76 -13
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +30 -11
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +39 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +5 -1
- package/esm2015/lib/components/table/table/table.component.js +2 -2
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +5 -3
- package/fesm2015/nuxeo-development-framework.js +76 -13
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/correspondence-relation/services/correspondence-realation.service.d.ts +2 -0
- package/lib/shared/components/search-autocomplete/search-autocomplete.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -152,7 +152,7 @@ export class TableComponent {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableComponent, deps: [{ token: i1.NuxeoService }, { token: i2.AppConfigService }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting" }, ngImport: i0, template: "<div [style]=\"'width:' + tableWidth\" *ngIf=\"tableMode === 'list'\">\r\n <ngx-datatable\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [columnMode]=\"'force'\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n >\r\n <!-- | translate -->\r\n <ng-container *ngFor=\"let column of tableColumns; let i = index\">\r\n <ng-container *permission=\"{name: column.permission}\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [maxWidth]=\"column.size\"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n ></cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ (value ? column.vocabularyId + '.' + value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ vocItemTranslationPrefix + value | translate }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"value\"\r\n >\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">{{\r\n \"STATS.\" + value | translate\r\n }}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ \"role.\" + (value ? value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n <div class=\"actions-wrapper\">\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n \r\n <span *ngFor=\"let action of column.actions\">\r\n <i\r\n *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <cts-dynamic-column\r\n [id]=\"column.template\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n >\r\n </cts-dynamic-column>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'card'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{ name: 'deleteMemo', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <button\r\n *permission=\"{ name: 'terminateDelegation', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'terminateDelegation')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'memoPublished', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'delegationFinished', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'delegationActive', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of columns\"\r\n (click)=\"cardSelected(row);cardFocused(i)\"\r\n >\r\n <div class=\"key\" *ngIf=\"property.type !== 'default'\">{{ prefix + property.key | translate }}</div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"key\" *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n {{ row.properties[property.value].fullName }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US')}}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n {{ (row.properties[property.value] ? 'Yes':'No') | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"text\" *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"property.type === 'custom'\">\r\n <div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n {{ item | translate }} {{\", \" }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'dynamicCard'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\" *ngFor=\"let row of rows\">\r\n <div *ngIf=\"columns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of columns\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"columns.length === 1\">\r\n <cts-dynamic-column\r\n [id]=\"columns[0].template\"\r\n [column]=\"columns[0]\"\r\n [context]=\"row\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row{width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i6.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i7.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i8.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i12.TranslatePipe, "localizedDate": i13.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
155
|
+
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting" }, ngImport: i0, template: "<div [style]=\"'width:' + tableWidth\" *ngIf=\"tableMode === 'list'\">\r\n <ngx-datatable\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [columnMode]=\"'force'\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n >\r\n <!-- | translate -->\r\n <ng-container *ngFor=\"let column of tableColumns; let i = index\">\r\n <ng-container *permission=\"{name: column.permission}\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [maxWidth]=\"column.size\"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n ></cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ (value ? column.vocabularyId + '.' + value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ vocItemTranslationPrefix + value | translate }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"value\"\r\n >\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">{{\r\n \"STATS.\" + value | translate\r\n }}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ \"role.\" + (value ? value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\" >\r\n <span [matTooltip]=\"'indicators.favorite' | translate\" class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n <div class=\"actions-wrapper\">\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n \r\n <span *ngFor=\"let action of column.actions\">\r\n <i\r\n *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <cts-dynamic-column\r\n [id]=\"column.template\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n >\r\n </cts-dynamic-column>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'card'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{ name: 'deleteMemo', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <button\r\n *permission=\"{ name: 'terminateDelegation', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'terminateDelegation')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'memoPublished', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'delegationFinished', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{ name: 'delegationActive', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n >\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of columns\"\r\n (click)=\"cardSelected(row);cardFocused(i)\"\r\n >\r\n <div class=\"key\" *ngIf=\"property.type !== 'default'\">{{ prefix + property.key | translate }}</div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"key\" *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n {{ row.properties[property.value].fullName }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US')}}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n {{ (row.properties[property.value] ? 'Yes':'No') | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"text\" *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"property.type === 'custom'\">\r\n <div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n {{ item | translate }} {{\", \" }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'dynamicCard'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\" *ngFor=\"let row of rows\">\r\n <div *ngIf=\"columns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of columns\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"columns.length === 1\">\r\n <cts-dynamic-column\r\n [id]=\"columns[0].template\"\r\n [column]=\"columns[0]\"\r\n [context]=\"row\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row{width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i6.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i7.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i8.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i12.TranslatePipe, "localizedDate": i13.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
158
158
|
args: [{
|
|
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
202
202
|
}], highlightSelectedCard: [{
|
|
203
203
|
type: Input
|
|
204
204
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFNdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBT0gsTUFBTSxPQUFPLGNBQWM7SUE4Q3pCLFlBQW1CLFlBQTBCLEVBQVUsU0FBNEIsRUFBUyxXQUErQjtRQUF4RyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBN0MzSCw4Q0FBOEM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLDREQUE0RDtRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsbUVBQW1FO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxzQ0FBc0M7UUFDNUIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFPekMsc0RBQXNEO1FBQzdDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDakMsZ0dBQWdHO1FB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O3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbk1vZGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZS9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbi8qKlxyXG4gKiB0aGlzIGNvbXBvbmVudCBpcyBhIG11bHRpLXB1cnBvc2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGR1bWIgZGF0YSB0YWJsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHRvIHNob3cgYW55IGxpc3Qgb2YgZGF0YSxcclxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIHRhYmxlXHJcbiAqIGFuZCB0aGUganNvbiBzdHJ1Y3R1cmUgZm9yIHRoZSBpbnB1dHMgcGxlYXNlIGNoZWNrIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKiAhW1NjcmVlbnNob3QtMV0oLi4vc2NyZWVuc2hvdHMvZHluYW1pY1RhYmxlLnBuZylcclxuICpcclxuICogIyMjIHJlbGF0ZWQgTGlua3M6XHJcbiAqIC0gW1BhZ2luYXRpb24gQ29tcG9uZW50XXtAbGluayBQYWdpbmF0aW9uQ29tcG9uZW50fVxyXG4gKiAtIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9XHJcbiAqIC0gW0NvbmZpZ3VyYXRpb24gRmlsZV17QGxpbmsgLi4vYWRkaXRpb25hbC1kb2N1bWVudGF0aW9uL2NvbmZpZy1maWxlLmh0bWx9XHJcbiAqXHJcbiAqIEB0aXRsZVxyXG4gKiBEYXRhIFRhYmxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtdGFibGVcclxuICogICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gKiAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gKiAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gKiAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxyXG4gKiAgICAgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiXHJcbiAqICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAqICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAqICAgICBbdGFibGVNb2RlXT1cInRhYmxlTW9kZVwiXHJcbiAqICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcbiAqICAgICAob25Sb3dTZWxlY3RlZCk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gKiAgICAgKGFjdGlvbk9uUm93KT1cInBlcmZvcm1BY3Rpb24oJGV2ZW50KVwiXHJcbiAqICAgICAob25Tb3J0aW5nKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICogID48L2N0cy10YWJsZT5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93ICovXHJcbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyB0byBjYXRjaCBpbmRleCovXHJcbiAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IEljb24gKi9cclxuICBAT3V0cHV0KCkgb25JY29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBwZXJmb3JtIGFjdGlvbiBvbiByb3cgKGRlbHRlLCBlZGl0LCAuLi4gKSAqL1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25PblJvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdCBlbWl0IHdoZW4gc29ydGluZyB0YWJsZSAqL1xyXG4gIEBPdXRwdXQoKSBvblNvcnRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGFyYXkgb2Ygcm93cyBwYXNzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgcm93cztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50IGZvciBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucztcclxuICAvKiogdG8gZGVmaW5lIHRoZSBwYWdlIGluIHdoaWNoIHRhYmxlIGlzIGJlaW5nIHVzZWQgKi9cclxuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmcgPSAnJztcclxuICAvKiogc3RhdGljICBwYXRoIGZvciB0cmFuc2xhdGlvbiBwYXNzZWQgZnJvbSBvdXQgc2lkZSBhY2NvcmRpbmcgdG8gZWFjaCBwYWdlIHRyYW5zbGF0aW9uIHBhdGggKi9cclxuICBASW5wdXQoKSBwcmVmaXggPSAnJztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSBwYWdlQ291bnQ7XHJcbiAgLyoqIFRvdGFsIFJlY29yZHNjb3VudCAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSByb3dDdXJzb3IgPSBmYWxzZTtcclxuICAvKiogTWF4IGZ1bGwgd2lkdGggaW4gUFggfCBhdXRvICovXHJcbiAgQElucHV0KCkgZnVsbFdpZHRoID0gJ2F1dG8nO1xyXG4gIC8qKiBWb2NhYnVsYXJ5IFRyYW5zbGF0aW9uIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeDtcclxuICAvKiogVGFibGUgTW9kZTogbGlzdCB8IGNhcmQgKi9cclxuICBASW5wdXQoKSB0YWJsZU1vZGUgPSAnbGlzdCc7XHJcbiAgLyoqIGFjdGlvbiB0byBiZSBpbiBjYXJkIG1vZGUgKi9cclxuICBASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcbiAgQElucHV0KCkgZm9ybWF0ID0gXCJFRUVFLCBNTU1NIGQsIHlcIjtcclxuICBASW5wdXQoKSBkZWZ1bHRTb3J0ID0gbnVsbDtcclxuICBsYW5nU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG4gIGlzQXJhYmljID0gZmFsc2U7XHJcbiAgdGFibGVXaWR0aCA9ICdhdXRvJztcclxuICB0YWJsZUNvbHVtbnMgPSBbXTtcclxuICBjdXJyZW50Um93O1xyXG4gIHNlbGVjdGVkID0gW107XHJcbiAgcGFnZU51bWJlciA9IDE7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWcgOiBBcHBDb25maWdTZXJ2aWNlLHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSkge1xyXG4gICAgdGhpcy5mb3JtYXQgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ2RhdGVGb3JtYXRlJ107XHJcbiAgICB0aGlzLmxhbmdTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlc2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICAvLyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIGNsaWNraW5nIG9uIHNpbmdsZSByb3dcclxuICByb3dEZXRhaWxzKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ21vdXNlZW50ZXInKSB7XHJcbiAgICAgIGlmIChldmVudC50eXBlID09PSAnY2xpY2snICYmIGV2ZW50LmNvbHVtbi5wcm9wICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJvdyA9IGV2ZW50LnJvdztcclxuICAgICAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdCh0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGljb25TZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgcm93KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25JY29uU2VsZWN0ZWQuZW1pdChyb3cpO1xyXG4gIH1cclxuXHJcbiAgLy9mdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9wZXJhdGlvbnMgb24gc2luZ2xlIHJvdyAoZGVsZXRlICwgZWRpdCAsIC4uLilcclxuICBwZXJmb3JtQWN0aW9uKHNpbmdsZVJvdywgYWN0aW9uVHlwZSkge1xyXG4gICAgdGhpcy5hY3Rpb25PblJvdy5lbWl0KHtcclxuICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgcm93OiBzaW5nbGVSb3csXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBjaGVja2JveCBpZiB0YWJsZSBoYXMgb25lc1xyXG4gIG9uU2VsZWN0KGV2ZW50KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnb24gc2VsZWN0IHJvdyBjbGljaycpO1xyXG4gIH1cclxuXHJcbiAgLy8gaGFuZGxlIHNvcnRpbmcgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGVcclxuICBvblNvcnQoZXZlbnQpIHtcclxuICAgIGxldCBzb3J0ID0ge1xyXG4gICAgICBzb3J0Qnk6IGV2ZW50LmNvbHVtbi5oZWFkZXJDbGFzcyxcclxuICAgICAgc29ydE9yZGVyOiBldmVudC5uZXdWYWx1ZSxcclxuICAgIH07XHJcbiAgICB0aGlzLm9uU29ydGluZy5lbWl0KHNvcnQpO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduVGFibGVDb2x1bW5zKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9uUmVzaXplKGV2ZW50LnRhcmdldC5pbm5lcldpZHRoKTtcclxuICB9XHJcblxyXG4gIG9uUmVzaXplKHdpZHRoKSB7XHJcbiAgICBpZiAod2lkdGggPiAxNDAwKSB7XHJcbiAgICAgIHRoaXMudGFibGVXaWR0aCA9ICdhdXRvJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVXaWR0aCA9IHRoaXMuZnVsbFdpZHRoO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpZHRoIDwgNzY4KSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW107XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy5yZXNwb25zaXZlQ29sdW1ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW107XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy5jb2x1bW5zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FyZFNlbGVjdGVkKGNhcmQpIHtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodFNlbGVjdGVkQ2FyZCkge1xyXG4gICAgICB0aGlzLnJvd3MubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgcm93Wydpc1NlbGVjdGVkJ10gPSBmYWxzZTtcclxuICAgICAgfSlcclxuICAgICAgY2FyZFsnaXNTZWxlY3RlZCddID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMub25Sb3dTZWxlY3RlZC5lbWl0KGNhcmQpO1xyXG4gIH1cclxuXHJcbiAgY2FyZEZvY3VzZWQoaW5kZXgpIHtcclxuICAgIHRoaXMub25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoaW5kZXgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtzdHlsZV09XCInd2lkdGg6JyArIHRhYmxlV2lkdGhcIiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2xpc3QnXCI+XHJcbiAgPG5neC1kYXRhdGFibGVcclxuICAgIGNsYXNzPVwibGFyZ2UtdGFibGVcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICBbY29sdW1uTW9kZV09XCInZm9yY2UnXCJcclxuICAgIFtleHRlcm5hbFNvcnRpbmddPVwidHJ1ZVwiXHJcbiAgICAoYWN0aXZhdGUpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuICAgIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAoc29ydCk9XCJvblNvcnQoJGV2ZW50KVwiXHJcbiAgICAod2luZG93OnJlc2l6ZSk9XCJhc3NpZ25UYWJsZUNvbHVtbnMoJGV2ZW50KVwiXHJcbiAgICBbcm93SGVpZ2h0XT1cIidhdXRvJ1wiXHJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxyXG4gICAgW3NlbGVjdGlvblR5cGVdPVwiJ3NpbmdsZSdcIlxyXG4gICAgW3NvcnRzXT1cIlt7IHByb3A6IGRlZnVsdFNvcnQ/Lm5hbWUsIGRpcjogZGVmdWx0U29ydD8uZGlyIH1dXCJcclxuICA+XHJcbiAgICA8IS0tIHwgdHJhbnNsYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwie25hbWU6IGNvbHVtbi5wZXJtaXNzaW9ufVwiPlxyXG4gICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCJcclxuICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcclxuICAgICAgICBbbmFtZV09XCJwcmVmaXggKyBjb2x1bW4ubmFtZSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3Byb3BdPVwiY29sdW1uLnByb3BcIlxyXG4gICAgICAgIFtyZXNpemVhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4V2lkdGhdPVwiY29sdW1uLnNpemVcIlxyXG4gICAgICAgIFtoZWFkZXJDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3MgPyBjb2x1bW4uaGVhZGVyQ2xhc3MgOiAnJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgIGxldC1yb3c9XCJyb3dcIlxyXG4gICAgICAgICAgbGV0LXZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxyXG4gICAgICAgICAgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAge3sgdmFsdWUgPyB2YWx1ZSA6IFwiLS1cIiB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3ZvY2FidWxhcnknXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHJvcGRvd24tdmlld2VyXHJcbiAgICAgICAgICAgICAgICBbd2l0aE91dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtkcm9wZG93bklkXT1cImNvbHVtbi52b2NhYnVsYXJ5SWRcIlxyXG4gICAgICAgICAgICAgID48L2N0cy1kcm9wZG93bi12aWV3ZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jQ2VsbCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAge3sgKHZhbHVlID8gY29sdW1uLnZvY2FidWxhcnlJZCArICcuJyArIHZhbHVlIDogXCItLVwiKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdWb2NJdGVtJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICB7eyB2b2NJdGVtVHJhbnNsYXRpb25QcmVmaXggKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGVwYXJ0bWVudCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1kZXBhcnRtZW50LXZpZXdlclxyXG4gICAgICAgICAgICAgICAgW25vU3R5bGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdzdGF0dXMnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj57e1xyXG4gICAgICAgICAgICAgICAgXCJTVEFUUy5cIiArIHZhbHVlIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAncm9sZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAge3sgXCJyb2xlLlwiICsgKHZhbHVlID8gdmFsdWUgOiBcIi0tXCIpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGlyZWN0aW9uJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImljb25TZWxlY3RlZCgkZXZlbnQsIHJvdylcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLXdyYXBwZXIge3sgdmFsdWUgfX0ge3sgcm93LnN0YXRlIH19XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctZG93blwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctdXAgb3V0Z29pbmdcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy50eXBlID09PSAnT3V0Z29pbmdDb3JyZXNwb25kZW5jZSdcIlxyXG4gICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYm94LWFycm93LXJpZ2h0IGludGVybmFsXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0ludGVybmFsQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ2YWx1ZSB7eyB2YWx1ZSB9fVwiPnt7IFwiU1RBVFMuXCIgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnYWN0aW9ucycgJiYgcm93cy5sZW5ndGggIT09IDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJiaSBiaS10cmFzaCBkZWxldGUtaWNvblwiIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdyAsICdkZWxldGUnKVwiPjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktcGVuY2lsLXNxdWFyZSBlZGl0LWljb25cIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdVUERBVEUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXRyYXNoXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHxcclxuICAgICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3NpZ25lcnMnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcblxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1wbHVzLXNxdWFyZVwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd1c2VycycgJiYgcm93LmlzSW5pdGlhbFwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29sdW1uLmFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCJcclxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAncmVnaXN0ZXJDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctaW4tcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLlJFR0lTVEVSJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdyZWdpc3RlcicpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3NlbmRDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1lbnZlbG9wZVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuU0VORCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnc2VuZCcpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2Nsb3NlQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmkteC1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdjbG9zZScpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2FyY2hpdmVDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1mb2xkZXItc3ltbGlua1wiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQVJDSElWRScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnYXJjaGl2ZScpXCJcclxuICAgICAgICAgICAgICA+PC9pPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWRhdGUtdmlld2VyXHJcbiAgICAgICAgICAgICAgICBbd2l0aE91dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICA+PC9jdHMtZGF0ZS12aWV3ZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdjdXN0b20nXCI+XHJcbiAgICAgICAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW5cclxuICAgICAgICAgICAgW2lkXT1cImNvbHVtbi50ZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgW2NvbnRleHRdPVwicm93XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmd4LWRhdGF0YWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSAnY2FyZCdcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWNhcmRcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvblwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnZGVsZXRlTWVtbycsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlTWVtbycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXRyYXNoXCJcclxuICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuT05MWV9ERUxFVEUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICd0ZXJtaW5hdGVEZWxlZ2F0aW9uJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAndGVybWluYXRlRGVsZWdhdGlvbicpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aVxyXG4gICAgICAgICAgICBjbGFzcz1cImJpIGJpLXRyYXNoXCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgPjwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnbWVtb1B1Ymxpc2hlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgXCJNRU1PUy5QVUJMSVNIRURcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdkZWxlZ2F0aW9uRmluaXNoZWQnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IFwiZGVsZWdhdGlvbnMuZmluaXNoZWRcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdkZWxlZ2F0aW9uQWN0aXZlJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBcImRlbGVnYXRpb25zLmFjdGl2ZVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibWVtby1ib2R5XCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgY29sdW1uc1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpO2NhcmRGb2N1c2VkKGkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgIT09ICdkZWZhdWx0J1wiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIiAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2ludGVybmFsSXNFbmFibGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAge3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndXNlcidcIj5cclxuICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdLmZ1bGxOYW1lIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAge3tyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOmZvcm1hdDooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKX19XHJcbiAgICAgICAgICAgIDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdib29sZWFuJ1wiPlxyXG4gICAgICAgICAgICB7eyAocm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdID8gJ1llcyc6J05vJykgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaW50ZXJuYWxJc0VuYWJsZWQnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdjdXN0b20nXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIj5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0gfCB0cmFuc2xhdGUgfX0ge3tcIiwgXCIgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0YWJsZU1vZGUgPT09ICdkeW5hbWljQ2FyZCdcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWNhcmRcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkLWNhcmQnOiBoaWdobGlnaHRTZWxlY3RlZENhcmQgJiYgcm93Py5pc1NlbGVjdGVkfVwiICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93c1wiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1ucy5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtZW1vLWJvZHlcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIGNvbHVtbnNcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB8IGxvY2FsaXplZERhdGU6IFwiTU1NTSBkLCB5XCIgfX1cclxuICAgICAgICAgICAgICA8IS0tIDxjdHMtZGF0ZS12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiID48L2N0cy1kYXRlLXZpZXdlcj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5lci1jYXJkLWNvbnRhaW5lciB7e2VudGl0eVR5cGV9fVwiICAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIiAqbmdJZj1cImNvbHVtbnMubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgPGN0cy1keW5hbWljLWNvbHVtblxyXG4gICAgICAgIFtpZF09XCJjb2x1bW5zWzBdLnRlbXBsYXRlXCJcclxuICAgICAgICBbY29sdW1uXT1cImNvbHVtbnNbMF1cIlxyXG4gICAgICAgIFtjb250ZXh0XT1cInJvd1wiXHJcbiAgICAgID5cclxuICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFNdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBT0gsTUFBTSxPQUFPLGNBQWM7SUE4Q3pCLFlBQW1CLFlBQTBCLEVBQVUsU0FBNEIsRUFBUyxXQUErQjtRQUF4RyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBN0MzSCw4Q0FBOEM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLDREQUE0RDtRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsbUVBQW1FO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxzQ0FBc0M7UUFDNUIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFPekMsc0RBQXNEO1FBQzdDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDakMsZ0dBQWdHO1FB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O3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbk1vZGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZS9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbi8qKlxyXG4gKiB0aGlzIGNvbXBvbmVudCBpcyBhIG11bHRpLXB1cnBvc2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGR1bWIgZGF0YSB0YWJsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHRvIHNob3cgYW55IGxpc3Qgb2YgZGF0YSxcclxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIHRhYmxlXHJcbiAqIGFuZCB0aGUganNvbiBzdHJ1Y3R1cmUgZm9yIHRoZSBpbnB1dHMgcGxlYXNlIGNoZWNrIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKiAhW1NjcmVlbnNob3QtMV0oLi4vc2NyZWVuc2hvdHMvZHluYW1pY1RhYmxlLnBuZylcclxuICpcclxuICogIyMjIHJlbGF0ZWQgTGlua3M6XHJcbiAqIC0gW1BhZ2luYXRpb24gQ29tcG9uZW50XXtAbGluayBQYWdpbmF0aW9uQ29tcG9uZW50fVxyXG4gKiAtIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9XHJcbiAqIC0gW0NvbmZpZ3VyYXRpb24gRmlsZV17QGxpbmsgLi4vYWRkaXRpb25hbC1kb2N1bWVudGF0aW9uL2NvbmZpZy1maWxlLmh0bWx9XHJcbiAqXHJcbiAqIEB0aXRsZVxyXG4gKiBEYXRhIFRhYmxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtdGFibGVcclxuICogICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gKiAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gKiAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gKiAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxyXG4gKiAgICAgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiXHJcbiAqICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAqICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAqICAgICBbdGFibGVNb2RlXT1cInRhYmxlTW9kZVwiXHJcbiAqICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcbiAqICAgICAob25Sb3dTZWxlY3RlZCk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gKiAgICAgKGFjdGlvbk9uUm93KT1cInBlcmZvcm1BY3Rpb24oJGV2ZW50KVwiXHJcbiAqICAgICAob25Tb3J0aW5nKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICogID48L2N0cy10YWJsZT5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93ICovXHJcbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyB0byBjYXRjaCBpbmRleCovXHJcbiAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IEljb24gKi9cclxuICBAT3V0cHV0KCkgb25JY29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBwZXJmb3JtIGFjdGlvbiBvbiByb3cgKGRlbHRlLCBlZGl0LCAuLi4gKSAqL1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25PblJvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdCBlbWl0IHdoZW4gc29ydGluZyB0YWJsZSAqL1xyXG4gIEBPdXRwdXQoKSBvblNvcnRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGFyYXkgb2Ygcm93cyBwYXNzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgcm93cztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50IGZvciBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucztcclxuICAvKiogdG8gZGVmaW5lIHRoZSBwYWdlIGluIHdoaWNoIHRhYmxlIGlzIGJlaW5nIHVzZWQgKi9cclxuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmcgPSAnJztcclxuICAvKiogc3RhdGljICBwYXRoIGZvciB0cmFuc2xhdGlvbiBwYXNzZWQgZnJvbSBvdXQgc2lkZSBhY2NvcmRpbmcgdG8gZWFjaCBwYWdlIHRyYW5zbGF0aW9uIHBhdGggKi9cclxuICBASW5wdXQoKSBwcmVmaXggPSAnJztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSBwYWdlQ291bnQ7XHJcbiAgLyoqIFRvdGFsIFJlY29yZHNjb3VudCAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSByb3dDdXJzb3IgPSBmYWxzZTtcclxuICAvKiogTWF4IGZ1bGwgd2lkdGggaW4gUFggfCBhdXRvICovXHJcbiAgQElucHV0KCkgZnVsbFdpZHRoID0gJ2F1dG8nO1xyXG4gIC8qKiBWb2NhYnVsYXJ5IFRyYW5zbGF0aW9uIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeDtcclxuICAvKiogVGFibGUgTW9kZTogbGlzdCB8IGNhcmQgKi9cclxuICBASW5wdXQoKSB0YWJsZU1vZGUgPSAnbGlzdCc7XHJcbiAgLyoqIGFjdGlvbiB0byBiZSBpbiBjYXJkIG1vZGUgKi9cclxuICBASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcbiAgQElucHV0KCkgZm9ybWF0ID0gXCJFRUVFLCBNTU1NIGQsIHlcIjtcclxuICBASW5wdXQoKSBkZWZ1bHRTb3J0ID0gbnVsbDtcclxuICBsYW5nU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG4gIGlzQXJhYmljID0gZmFsc2U7XHJcbiAgdGFibGVXaWR0aCA9ICdhdXRvJztcclxuICB0YWJsZUNvbHVtbnMgPSBbXTtcclxuICBjdXJyZW50Um93O1xyXG4gIHNlbGVjdGVkID0gW107XHJcbiAgcGFnZU51bWJlciA9IDE7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWcgOiBBcHBDb25maWdTZXJ2aWNlLHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSkge1xyXG4gICAgdGhpcy5mb3JtYXQgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ2RhdGVGb3JtYXRlJ107XHJcbiAgICB0aGlzLmxhbmdTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0aW9uLmlzQXJhYmljLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmlzQXJhYmljID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlc2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICAvLyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIGNsaWNraW5nIG9uIHNpbmdsZSByb3dcclxuICByb3dEZXRhaWxzKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ21vdXNlZW50ZXInKSB7XHJcbiAgICAgIGlmIChldmVudC50eXBlID09PSAnY2xpY2snICYmIGV2ZW50LmNvbHVtbi5wcm9wICE9PSAnJykge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJvdyA9IGV2ZW50LnJvdztcclxuICAgICAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdCh0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGljb25TZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgcm93KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25JY29uU2VsZWN0ZWQuZW1pdChyb3cpO1xyXG4gIH1cclxuXHJcbiAgLy9mdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9wZXJhdGlvbnMgb24gc2luZ2xlIHJvdyAoZGVsZXRlICwgZWRpdCAsIC4uLilcclxuICBwZXJmb3JtQWN0aW9uKHNpbmdsZVJvdywgYWN0aW9uVHlwZSkge1xyXG4gICAgdGhpcy5hY3Rpb25PblJvdy5lbWl0KHtcclxuICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgcm93OiBzaW5nbGVSb3csXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBjaGVja2JveCBpZiB0YWJsZSBoYXMgb25lc1xyXG4gIG9uU2VsZWN0KGV2ZW50KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnb24gc2VsZWN0IHJvdyBjbGljaycpO1xyXG4gIH1cclxuXHJcbiAgLy8gaGFuZGxlIHNvcnRpbmcgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGVcclxuICBvblNvcnQoZXZlbnQpIHtcclxuICAgIGxldCBzb3J0ID0ge1xyXG4gICAgICBzb3J0Qnk6IGV2ZW50LmNvbHVtbi5oZWFkZXJDbGFzcyxcclxuICAgICAgc29ydE9yZGVyOiBldmVudC5uZXdWYWx1ZSxcclxuICAgIH07XHJcbiAgICB0aGlzLm9uU29ydGluZy5lbWl0KHNvcnQpO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduVGFibGVDb2x1bW5zKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9uUmVzaXplKGV2ZW50LnRhcmdldC5pbm5lcldpZHRoKTtcclxuICB9XHJcblxyXG4gIG9uUmVzaXplKHdpZHRoKSB7XHJcbiAgICBpZiAod2lkdGggPiAxNDAwKSB7XHJcbiAgICAgIHRoaXMudGFibGVXaWR0aCA9ICdhdXRvJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVXaWR0aCA9IHRoaXMuZnVsbFdpZHRoO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpZHRoIDwgNzY4KSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW107XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy5yZXNwb25zaXZlQ29sdW1ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW107XHJcbiAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gdGhpcy5jb2x1bW5zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FyZFNlbGVjdGVkKGNhcmQpIHtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodFNlbGVjdGVkQ2FyZCkge1xyXG4gICAgICB0aGlzLnJvd3MubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgcm93Wydpc1NlbGVjdGVkJ10gPSBmYWxzZTtcclxuICAgICAgfSlcclxuICAgICAgY2FyZFsnaXNTZWxlY3RlZCddID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMub25Sb3dTZWxlY3RlZC5lbWl0KGNhcmQpO1xyXG4gIH1cclxuXHJcbiAgY2FyZEZvY3VzZWQoaW5kZXgpIHtcclxuICAgIHRoaXMub25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoaW5kZXgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtzdHlsZV09XCInd2lkdGg6JyArIHRhYmxlV2lkdGhcIiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2xpc3QnXCI+XHJcbiAgPG5neC1kYXRhdGFibGVcclxuICAgIGNsYXNzPVwibGFyZ2UtdGFibGVcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICBbY29sdW1uTW9kZV09XCInZm9yY2UnXCJcclxuICAgIFtleHRlcm5hbFNvcnRpbmddPVwidHJ1ZVwiXHJcbiAgICAoYWN0aXZhdGUpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuICAgIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAoc29ydCk9XCJvblNvcnQoJGV2ZW50KVwiXHJcbiAgICAod2luZG93OnJlc2l6ZSk9XCJhc3NpZ25UYWJsZUNvbHVtbnMoJGV2ZW50KVwiXHJcbiAgICBbcm93SGVpZ2h0XT1cIidhdXRvJ1wiXHJcbiAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxyXG4gICAgW3NlbGVjdGlvblR5cGVdPVwiJ3NpbmdsZSdcIlxyXG4gICAgW3NvcnRzXT1cIlt7IHByb3A6IGRlZnVsdFNvcnQ/Lm5hbWUsIGRpcjogZGVmdWx0U29ydD8uZGlyIH1dXCJcclxuICA+XHJcbiAgICA8IS0tIHwgdHJhbnNsYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwie25hbWU6IGNvbHVtbi5wZXJtaXNzaW9ufVwiPlxyXG4gICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCJcclxuICAgICAgICBbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcclxuICAgICAgICBbbmFtZV09XCJwcmVmaXggKyBjb2x1bW4ubmFtZSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3Byb3BdPVwiY29sdW1uLnByb3BcIlxyXG4gICAgICAgIFtyZXNpemVhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4V2lkdGhdPVwiY29sdW1uLnNpemVcIlxyXG4gICAgICAgIFtoZWFkZXJDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3MgPyBjb2x1bW4uaGVhZGVyQ2xhc3MgOiAnJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgIGxldC1yb3c9XCJyb3dcIlxyXG4gICAgICAgICAgbGV0LXZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgbGV0LWluZGV4PVwiaW5kZXhcIlxyXG4gICAgICAgICAgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAge3sgdmFsdWUgPyB2YWx1ZSA6IFwiLS1cIiB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3ZvY2FidWxhcnknXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHJvcGRvd24tdmlld2VyXHJcbiAgICAgICAgICAgICAgICBbd2l0aE91dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtkcm9wZG93bklkXT1cImNvbHVtbi52b2NhYnVsYXJ5SWRcIlxyXG4gICAgICAgICAgICAgID48L2N0cy1kcm9wZG93bi12aWV3ZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jQ2VsbCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAge3sgKHZhbHVlID8gY29sdW1uLnZvY2FidWxhcnlJZCArICcuJyArIHZhbHVlIDogXCItLVwiKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdWb2NJdGVtJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICB7eyB2b2NJdGVtVHJhbnNsYXRpb25QcmVmaXggKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGVwYXJ0bWVudCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1kZXBhcnRtZW50LXZpZXdlclxyXG4gICAgICAgICAgICAgICAgW25vU3R5bGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdzdGF0dXMnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj57e1xyXG4gICAgICAgICAgICAgICAgXCJTVEFUUy5cIiArIHZhbHVlIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAncm9sZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAge3sgXCJyb2xlLlwiICsgKHZhbHVlID8gdmFsdWUgOiBcIi0tXCIpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGlyZWN0aW9uJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImljb25TZWxlY3RlZCgkZXZlbnQsIHJvdylcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLXdyYXBwZXIge3sgdmFsdWUgfX0ge3sgcm93LnN0YXRlIH19XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5lci1zdGF0dXMtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCIgPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbbWF0VG9vbHRpcF09XCInaW5kaWNhdG9ycy5mYXZvcml0ZScgfCB0cmFuc2xhdGVcIiBjbGFzcz1cImZhdi1pY29uLWluZGljYXRvciBiaSBiaS1zdGFyLWZpbGxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYm94LWFycm93LWRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy50eXBlID09PSAnSW5jb21pbmdDb3JyZXNwb25kZW5jZSdcIlxyXG4gICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYm94LWFycm93LXVwIG91dGdvaW5nXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ091dGdvaW5nQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbFwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbnRlcm5hbENvcnJlc3BvbmRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj57eyBcIlNUQVRTLlwiICsgdmFsdWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2FjdGlvbnMnICYmIHJvd3MubGVuZ3RoICE9PSAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYmkgYmktdHJhc2ggZGVsZXRlLWljb25cIiAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3cgLCAnZGVsZXRlJylcIj48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJ1wiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ2RlbGV0ZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZScgfHwgZW50aXR5VHlwZSA9PT0gJ2RlcGFydG1lbnQnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICdzaWduZXJzJ1xyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktcGx1cy1zcXVhcmVcIlxyXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnVVNFUl9NQU5HTUVOVC5hZGRUb0RlcGFydG1lbnQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIlxyXG4gICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbHVtbi5hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiXHJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3JlZ2lzdGVyQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYm94LWFycm93LWluLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5SRUdJU1RFUicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAncmVnaXN0ZXInKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdzZW5kQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktZW52ZWxvcGVcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLlNFTkQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3NlbmQnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdjbG9zZUNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXgtY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5DTE9TRScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnY2xvc2UnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdhcmNoaXZlQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktZm9sZGVyLXN5bWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkFSQ0hJVkUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2FyY2hpdmUnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1kYXRlLXZpZXdlclxyXG4gICAgICAgICAgICAgICAgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPjwvY3RzLWRhdGUtdmlld2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICA8Y3RzLWR5bmFtaWMtY29sdW1uXHJcbiAgICAgICAgICAgIFtpZF09XCJjb2x1bW4udGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgICAgICAgICAgIFtjb250ZXh0XT1cInJvd1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2N0cy1keW5hbWljLWNvbHVtbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25neC1kYXRhdGFibGU+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2NhcmQnXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLXRpdGxlXCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICB7eyByb3cucHJvcGVydGllcy5yZWZlcmVuY2VOdW1iZXIgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24td3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb25cIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIlxyXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIlxyXG4gICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2RlbGV0ZU1lbW8nLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZU1lbW8nKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLk9OTFlfREVMRVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAndGVybWluYXRlRGVsZWdhdGlvbicsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3Rlcm1pbmF0ZURlbGVnYXRpb24nKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS10cmFzaFwiXHJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgID48L2k+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ21lbW9QdWJsaXNoZWQnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IFwiTUVNT1MuUFVCTElTSEVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnZGVsZWdhdGlvbkZpbmlzaGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBcImRlbGVnYXRpb25zLmZpbmlzaGVkXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnZGVsZWdhdGlvbkFjdGl2ZScsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgXCJkZWxlZ2F0aW9ucy5hY3RpdmVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cIm1lbW8tYm9keVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIGNvbHVtbnNcIlxyXG4gICAgICAgIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KTtjYXJkRm9jdXNlZChpKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlICE9PSAnZGVmYXVsdCdcIj57eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RlZmF1bHQnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia2V5XCIgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdpbnRlcm5hbElzRW5hYmxlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgIHt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3RleHQnXCI+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3VzZXInXCI+XHJcbiAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXS5mdWxsTmFtZSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgIHt7cm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIHwgbG9jYWxpemVkRGF0ZTpmb3JtYXQ6KGlzQXJhYmljPyAnYXItQVInIDogJ2VuLVVTJyl9fVxyXG4gICAgICAgICAgICA8IS0tIDxjdHMtZGF0ZS12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiID48L2N0cy1kYXRlLXZpZXdlcj4gLS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnYm9vbGVhbidcIj5cclxuICAgICAgICAgICAge3sgKHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSA/ICdZZXMnOidObycpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2ludGVybmFsSXNFbmFibGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpdGVtIHwgdHJhbnNsYXRlIH19IHt7XCIsIFwiIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSAnZHluYW1pY0NhcmQnXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1jYXJkJzogaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZH1cIiAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibWVtby1ib2R5XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiBjb2x1bW5zXCJcclxuICAgICAgICAgIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImtleVwiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOiBcIk1NTU0gZCwgeVwiIH19XHJcbiAgICAgICAgICAgICAgPCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImluZXItY2FyZC1jb250YWluZXIge3tlbnRpdHlUeXBlfX1cIiAgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCIgKm5nSWY9XCJjb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW5cclxuICAgICAgICBbaWRdPVwiY29sdW1uc1swXS50ZW1wbGF0ZVwiXHJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5zWzBdXCJcclxuICAgICAgICBbY29udGV4dF09XCJyb3dcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -92,8 +92,8 @@ export class SearchAutocompleteComponent {
|
|
|
92
92
|
}
|
|
93
93
|
this.corressvc
|
|
94
94
|
.search(val, {
|
|
95
|
-
Correspondence_requireReply: true,
|
|
96
95
|
Correspondence_replied: false,
|
|
96
|
+
Correspondence_direction: this.direction ? this.direction : null
|
|
97
97
|
})
|
|
98
98
|
.subscribe((data) => {
|
|
99
99
|
this.documentList = data.filter((correspondance) => {
|
|
@@ -113,7 +113,7 @@ export class SearchAutocompleteComponent {
|
|
|
113
113
|
close() { }
|
|
114
114
|
}
|
|
115
115
|
SearchAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SearchAutocompleteComponent, deps: [{ token: i1.CorrespondenceRelationService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
SearchAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SearchAutocompleteComponent, selector: "cts-search-autocomplete", inputs: { placeholder: "placeholder", label: "label", correspondanceId: "correspondanceId" }, outputs: { onSelecting: "onSelecting" }, viewQueries: [{ propertyName: "searchautocomplete", first: true, predicate: SearchAutocompleteComponent, descendants: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"search-container\">\r\n <ng-container>\r\n <div>\r\n <label class=\"select-label\" >{{ label | translate\r\n }}</label>\r\n </div>\r\n </ng-container>\r\n <!-- [customFilter]=\"disableFilter\" -->\r\n <ng-autocomplete #auto [data]=\"documentList\" [searchKeyword]=\"'filter'\" (selected)='selectItem($event)'\r\n (inputChanged)='onSearchInputChange($event)' (closed)=\"close()\" [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\" [placeholder]=\"'correspondence-relation.searchby' | translate\"\r\n [debounceTime]='1000' [isLoading]=\"isLoading\" (inputCleared)='inputCleared()'>\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <div class=\"item\">\r\n <span>{{item.title}}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate>\r\n <div>{{'correspondence-relation.notfound' | translate}}</div>\r\n </ng-template>\r\n</div>", styles: [".select-label{color:#8f98aa;font-size:12px;margin-bottom:0}.autocomplete-container .suggestions-container ul{max-height:150px!important}.autocomplete-container .suggestions-container .is-visible{height:150px!important;max-height:150px!important;border:1px lightgray solid!important;box-shadow:none!important}.autocomplete-container{box-shadow:none!important}.autocomplete-container .input-container input{background-color:#8f98aa1a!important;padding:10px!important;border:1px solid #ccc!important;border-radius:5px!important}.autocomplete-container .suggestions-container .complete-selected,.autocomplete-container .suggestions-container ul li:hover{background-color:#f5faff!important}.autocomplete-container .suggestions-container ul li{padding:8px 10px!important}[dir=rtl] .input-container input{direction:rtl}[dir=rtl] .x{left:10px;right:auto!important}\n"], components: [{ type: i3.AutocompleteComponent, selector: "ng-autocomplete", inputs: ["data", "placeholder", "heading", "historyHeading", "historyListMaxNumber", "notFoundText", "minQueryLength", "focusFirst", "disabled", "searchKeyword", "initialValue", "historyIdentifier", "isLoading", "debounceTime", "customFilter", "itemTemplate", "notFoundTemplate"], outputs: ["selected", "inputChanged", "inputFocused", "inputCleared", "opened", "closed", "scrolledToEnd"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
116
|
+
SearchAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SearchAutocompleteComponent, selector: "cts-search-autocomplete", inputs: { placeholder: "placeholder", label: "label", correspondanceId: "correspondanceId", direction: "direction" }, outputs: { onSelecting: "onSelecting" }, viewQueries: [{ propertyName: "searchautocomplete", first: true, predicate: SearchAutocompleteComponent, descendants: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"search-container\">\r\n <ng-container>\r\n <div>\r\n <label class=\"select-label\" >{{ label | translate\r\n }}</label>\r\n </div>\r\n </ng-container>\r\n <!-- [customFilter]=\"disableFilter\" -->\r\n <ng-autocomplete #auto [data]=\"documentList\" [searchKeyword]=\"'filter'\" (selected)='selectItem($event)'\r\n (inputChanged)='onSearchInputChange($event)' (closed)=\"close()\" [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\" [placeholder]=\"'correspondence-relation.searchby' | translate\"\r\n [debounceTime]='1000' [isLoading]=\"isLoading\" (inputCleared)='inputCleared()'>\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <div class=\"item\">\r\n <span>{{item.title}}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #notFoundTemplate>\r\n <div>{{'correspondence-relation.notfound' | translate}}</div>\r\n </ng-template>\r\n</div>", styles: [".select-label{color:#8f98aa;font-size:12px;margin-bottom:0}.autocomplete-container .suggestions-container ul{max-height:150px!important}.autocomplete-container .suggestions-container .is-visible{height:150px!important;max-height:150px!important;border:1px lightgray solid!important;box-shadow:none!important}.autocomplete-container{box-shadow:none!important}.autocomplete-container .input-container input{background-color:#8f98aa1a!important;padding:10px!important;border:1px solid #ccc!important;border-radius:5px!important}.autocomplete-container .suggestions-container .complete-selected,.autocomplete-container .suggestions-container ul li:hover{background-color:#f5faff!important}.autocomplete-container .suggestions-container ul li{padding:8px 10px!important}[dir=rtl] .input-container input{direction:rtl}[dir=rtl] .x{left:10px;right:auto!important}\n"], components: [{ type: i3.AutocompleteComponent, selector: "ng-autocomplete", inputs: ["data", "placeholder", "heading", "historyHeading", "historyListMaxNumber", "notFoundText", "minQueryLength", "focusFirst", "disabled", "searchKeyword", "initialValue", "historyIdentifier", "isLoading", "debounceTime", "customFilter", "itemTemplate", "notFoundTemplate"], outputs: ["selected", "inputChanged", "inputFocused", "inputCleared", "opened", "closed", "scrolledToEnd"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
117
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SearchAutocompleteComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
119
119
|
args: [{
|
|
@@ -138,7 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
138
138
|
type: Input
|
|
139
139
|
}], correspondanceId: [{
|
|
140
140
|
type: Input
|
|
141
|
+
}], direction: [{
|
|
142
|
+
type: Input
|
|
141
143
|
}], onSelecting: [{
|
|
142
144
|
type: Output
|
|
143
145
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtYXV0b2NvbXBsZXRlL3NlYXJjaC1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLWF1dG9jb21wbGV0ZS9zZWFyY2gtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUM1RSxRQUFRLEVBQ1IsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFJdkI7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjtJQXdFdEMsWUFBb0IsU0FBd0MsRUFDL0IsT0FBa0I7UUFEM0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQXBFL0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBU2pCLG9GQUFvRjtRQUMxRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0MscUNBQXFDO1FBQ3JDLG9CQUFlLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckIsY0FBUyxHQUFRLEdBQUcsRUFBRTtZQUMzQixTQUFTO1FBQ1gsQ0FBQyxDQUFDO1FBOERGLHVDQUF1QztRQUN2QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQWU5QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBM0J2QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQW5ERCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUV4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQUs7O1FBQ2QsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNwRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQXFCLENBQUMsQ0FBQztRQUN4RSxPQUFPLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBUUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU5QixDQUFDO0lBSUQsbUJBQW1CLENBQUMsR0FBVztRQUM3QixJQUFJLENBQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sS0FBSSxDQUFDLEVBQUU7WUFDcEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVM7YUFDWCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsMkJBQTJCLEVBQUUsSUFBSTtZQUNqQyxzQkFBc0IsRUFBRSxLQUFLO1NBQzlCLENBQUM7YUFDRCxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLGNBQWMsQ0FBQyxFQUFFLENBQUM7aUJBQ25EO3FCQUFNO29CQUNMLE9BQU8sY0FBYyxDQUFDO2lCQUN2QjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCwwQ0FBMEM7SUFFMUMsS0FBSyxLQUFLLENBQUM7O3dIQWhJQSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwwUEFFM0IsMkJBQTJCLG9KQ3JCeEMsNjdCQXVCTTsyRkRKTywyQkFBMkI7a0JBTnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsV0FBVyxFQUFFLHNDQUFzQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsc0NBQXNDLENBQUM7b0JBQ25ELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBMEVJLElBQUk7OzBCQUFJLFFBQVE7NENBdEVuQixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsMkJBQTJCO2dCQUtuQixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBRVIsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0osZ0JBQWdCO3NCQURqQixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT3B0aW9uYWwsXHJcbiAgU2VsZixPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL3NlcnZpY2VzL2NvcnJlc3BvbmRlbmNlLXJlYWxhdGlvbi5zZXJ2aWNlJztcclxuXHJcbi8qKiBBdXRvIGNvbXBsZXRlIGRyb3Bkb3duIGNvbXBvbmVudFxyXG4gKiBAdGl0bGVcclxuICogU2VhcmNoIEF1dG9jb21wbGV0ZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtc2VhcmNoLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoU2VhcmNoQXV0b2NvbXBsZXRlQ29tcG9uZW50KVxyXG4gIHNlYXJjaGF1dG9jb21wbGV0ZTogU2VhcmNoQXV0b2NvbXBsZXRlQ29tcG9uZW50O1xyXG5cclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgdGFyZ2V0OiBhbnkgPSB7fTtcclxuICBAVmlld0NoaWxkKCdhdXRvJykgYXV0bztcclxuICAvKiogcGxhY2Vob2xkZXIgZm9yIHRoZSBpbnB1dCAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyO1xyXG4gIC8qKiBsYWJlbCBmb3IgdGhlIGlucHV0ICovXHJcbiAgQElucHV0KCkgbGFiZWw7XHJcbiAgLyoqIGlkIG9mIGNvcnJlc3BvbmRhbmNlIHRoYXQgc2hvdWxkIGJlIGV4bHVkZWQgICovXHJcbiAgQElucHV0KClcclxuICAgIGNvcnJlc3BvbmRhbmNlSWQ7XHJcbiAgLyoqIGV2ZW50IGVtaXR0ZXIgdGhhdCB3aWxsIGZpcmUgd2l0aCBzZWxlY3RlZCBpdGVtIGluZm8gd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkICovXHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBmdW5jdGlvbiByZWxhdGVkIHRvIHZhbHVlIGFjY2Vzc29yXHJcbiAgcHJvcGFnYXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgdmFsaWRhdGVGbjogYW55ID0gKCkgPT4geyB9O1xyXG4gIHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcclxuICAgIC8qRW1wdHkqL1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnRhcmdldCA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmF1dG8ucXVlcnkgPSB0aGlzLnRhcmdldD8udGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUZuKGMpO1xyXG4gIH1cclxuICBpc1JlcXVpcmVkKCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuICB9XHJcbiAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG4gIH1cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuaW5wdXRDbGVhcmVkKCk7XHJcbiAgICB0aGlzLnNlYXJjaGF1dG9jb21wbGV0ZS5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb3JyZXNzdmM6IENvcnJlc3BvbmRlbmNlUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbDogTmdDb250cm9sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvcnJlc3BvbmRhbmNlSWQgPSB0aGlzLmNvcnJlc3BvbmRhbmNlSWQ7XHJcbiAgICBjb25zb2xlLmxvZygnaWQnLCB0aGlzLmNvcnJlc3BvbmRhbmNlSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG4gIC8qKm5nLUF1dG9jb21wbGV0ZSByZWxhdGVkIGZ1bmN0aW9ucyAqL1xyXG4gIGFsd2F5c29wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlucHV0Q2xlYXJlZCgpIHtcclxuICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gW107XHJcbiAgICB0aGlzLmF1dG8uY2xvc2UoKTtcclxuICAgIHRoaXMudGFyZ2V0ID0ge307XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5vblNlbGVjdGluZy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKGl0ZW0pIHtcclxuICAgIHRoaXMudGFyZ2V0ID0gaXRlbTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGl0ZW0pO1xyXG4gICAgdGhpcy5vblNlbGVjdGluZy5lbWl0KGl0ZW0pO1xyXG5cclxuICB9XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZG9jdW1lbnRMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBvblNlYXJjaElucHV0Q2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsPy5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvcnJlc3N2Y1xyXG4gICAgICAuc2VhcmNoKHZhbCwge1xyXG4gICAgICAgIENvcnJlc3BvbmRlbmNlX3JlcXVpcmVSZXBseTogdHJ1ZSxcclxuICAgICAgICBDb3JyZXNwb25kZW5jZV9yZXBsaWVkOiBmYWxzZSxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgICB0aGlzLmRvY3VtZW50TGlzdCA9IGRhdGEuZmlsdGVyKChjb3JyZXNwb25kYW5jZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29ycmVzcG9uZGFuY2VJZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb3JyZXNwb25kYW5jZUlkICE9IGNvcnJlc3BvbmRhbmNlLmlkO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvcnJlc3BvbmRhbmNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuZG9jdW1lbnRMaXN0ID0gZGF0YTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50TGlzdDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8vZGlzYWJsZUZpbHRlciA9IChpdGVtczogYW55W10pID0+IGl0ZW1zO1xyXG5cclxuICBjbG9zZSgpIHsgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInNlbGVjdC1sYWJlbFwiID57eyBsYWJlbCB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tIFtjdXN0b21GaWx0ZXJdPVwiZGlzYWJsZUZpbHRlclwiIC0tPlxyXG4gIDxuZy1hdXRvY29tcGxldGUgI2F1dG8gW2RhdGFdPVwiZG9jdW1lbnRMaXN0XCIgW3NlYXJjaEtleXdvcmRdPVwiJ2ZpbHRlcidcIiAoc2VsZWN0ZWQpPSdzZWxlY3RJdGVtKCRldmVudCknXHJcbiAgICAoaW5wdXRDaGFuZ2VkKT0nb25TZWFyY2hJbnB1dENoYW5nZSgkZXZlbnQpJyAoY2xvc2VkKT1cImNsb3NlKClcIiBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICBbbm90Rm91bmRUZW1wbGF0ZV09XCJub3RGb3VuZFRlbXBsYXRlXCIgW3BsYWNlaG9sZGVyXT1cIidjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5zZWFyY2hieScgfCB0cmFuc2xhdGVcIlxyXG4gICAgW2RlYm91bmNlVGltZV09JzEwMDAnIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCIgKGlucHV0Q2xlYXJlZCk9J2lucHV0Q2xlYXJlZCgpJz5cclxuICA8L25nLWF1dG9jb21wbGV0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICA8c3Bhbj57e2l0ZW0udGl0bGV9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjbm90Rm91bmRUZW1wbGF0ZT5cclxuICAgIDxkaXY+e3snY29ycmVzcG9uZGVuY2UtcmVsYXRpb24ubm90Zm91bmQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtYXV0b2NvbXBsZXRlL3NlYXJjaC1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLWF1dG9jb21wbGV0ZS9zZWFyY2gtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUM1RSxRQUFRLEVBQ1IsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFJdkI7OztHQUdHO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjtJQTRFdEMsWUFBb0IsU0FBd0MsRUFDL0IsT0FBa0I7UUFEM0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQXhFL0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBYWpCLG9GQUFvRjtRQUMxRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0MscUNBQXFDO1FBQ3JDLG9CQUFlLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckIsY0FBUyxHQUFRLEdBQUcsRUFBRTtZQUMzQixTQUFTO1FBQ1gsQ0FBQyxDQUFDO1FBOERGLHVDQUF1QztRQUN2QyxpQkFBWSxH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QTJCO2dCQUtuQixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBRVIsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0osZ0JBQWdCO3NCQURqQixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBPcHRpb25hbCxcclxuICBTZWxmLE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JyZXNwb25kZW5jZVJlbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vc2VydmljZXMvY29ycmVzcG9uZGVuY2UtcmVhbGF0aW9uLnNlcnZpY2UnO1xyXG5cclxuLyoqIEF1dG8gY29tcGxldGUgZHJvcGRvd24gY29tcG9uZW50XHJcbiAqIEB0aXRsZVxyXG4gKiBTZWFyY2ggQXV0b2NvbXBsZXRlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy1zZWFyY2gtYXV0b2NvbXBsZXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hBdXRvY29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcclxuXHJcbiAgQFZpZXdDaGlsZChTZWFyY2hBdXRvY29tcGxldGVDb21wb25lbnQpXHJcbiAgc2VhcmNoYXV0b2NvbXBsZXRlOiBTZWFyY2hBdXRvY29tcGxldGVDb21wb25lbnQ7XHJcblxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICB0YXJnZXQ6IGFueSA9IHt9O1xyXG4gIEBWaWV3Q2hpbGQoJ2F1dG8nKSBhdXRvO1xyXG4gIC8qKiBwbGFjZWhvbGRlciBmb3IgdGhlIGlucHV0ICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgLyoqIGxhYmVsIGZvciB0aGUgaW5wdXQgKi9cclxuICBASW5wdXQoKSBsYWJlbDtcclxuICAvKiogaWQgb2YgY29ycmVzcG9uZGFuY2UgdGhhdCBzaG91bGQgYmUgZXhsdWRlZCAgKi9cclxuICBASW5wdXQoKVxyXG4gICAgY29ycmVzcG9uZGFuY2VJZDtcclxuXHJcbiAgLyoqIGRpcmVjdGlvbiB0byBkZXRlcm1pbiBkaXJlY3Rpb24gb2YgY29yZXNwb25kIHRvIHNlYXJjaCBpbiBpdCAqL1xyXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjtcclxuXHJcbiAgLyoqIGV2ZW50IGVtaXR0ZXIgdGhhdCB3aWxsIGZpcmUgd2l0aCBzZWxlY3RlZCBpdGVtIGluZm8gd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkICovXHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBmdW5jdGlvbiByZWxhdGVkIHRvIHZhbHVlIGFjY2Vzc29yXHJcbiAgcHJvcGFnYXRlQ2hhbmdlOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgdmFsaWRhdGVGbjogYW55ID0gKCkgPT4geyB9O1xyXG4gIHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHtcclxuICAgIC8qRW1wdHkqL1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2wuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBkaXJ0eSwgdG91Y2hlZCB9ID0gdGhpcy5jb250cm9sO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmludmFsaWQgPyBkaXJ0eSB8fCB0b3VjaGVkIDogZmFsc2U7XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnRhcmdldCA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmF1dG8ucXVlcnkgPSB0aGlzLnRhcmdldD8udGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUZuKGMpO1xyXG4gIH1cclxuICBpc1JlcXVpcmVkKCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wgfHwgIXRoaXMuY29udHJvbC5jb250cm9sLnZhbGlkYXRvcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yICYmIHZhbGlkYXRvci5yZXF1aXJlZDtcclxuICB9XHJcbiAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9yO1xyXG4gIH1cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuaW5wdXRDbGVhcmVkKCk7XHJcbiAgICB0aGlzLnNlYXJjaGF1dG9jb21wbGV0ZS5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb3JyZXNzdmM6IENvcnJlc3BvbmRlbmNlUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbDogTmdDb250cm9sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvcnJlc3BvbmRhbmNlSWQgPSB0aGlzLmNvcnJlc3BvbmRhbmNlSWQ7XHJcbiAgICBjb25zb2xlLmxvZygnaWQnLCB0aGlzLmNvcnJlc3BvbmRhbmNlSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG4gIC8qKm5nLUF1dG9jb21wbGV0ZSByZWxhdGVkIGZ1bmN0aW9ucyAqL1xyXG4gIGFsd2F5c29wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlucHV0Q2xlYXJlZCgpIHtcclxuICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gW107XHJcbiAgICB0aGlzLmF1dG8uY2xvc2UoKTtcclxuICAgIHRoaXMudGFyZ2V0ID0ge307XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5vblNlbGVjdGluZy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKGl0ZW0pIHtcclxuICAgIHRoaXMudGFyZ2V0ID0gaXRlbTtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGl0ZW0pO1xyXG4gICAgdGhpcy5vblNlbGVjdGluZy5lbWl0KGl0ZW0pO1xyXG5cclxuICB9XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZG9jdW1lbnRMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBvblNlYXJjaElucHV0Q2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsPy5sZW5ndGggPT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvcnJlc3N2Y1xyXG4gICAgICAuc2VhcmNoKHZhbCwge1xyXG4gICAgICAgIENvcnJlc3BvbmRlbmNlX3JlcGxpZWQ6IGZhbHNlLFxyXG4gICAgICAgIENvcnJlc3BvbmRlbmNlX2RpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24gPyB0aGlzLmRpcmVjdGlvbiA6IG51bGxcclxuICAgICAgfSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgICB0aGlzLmRvY3VtZW50TGlzdCA9IGRhdGEuZmlsdGVyKChjb3JyZXNwb25kYW5jZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29ycmVzcG9uZGFuY2VJZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb3JyZXNwb25kYW5jZUlkICE9IGNvcnJlc3BvbmRhbmNlLmlkO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvcnJlc3BvbmRhbmNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuZG9jdW1lbnRMaXN0ID0gZGF0YTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50TGlzdDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8vZGlzYWJsZUZpbHRlciA9IChpdGVtczogYW55W10pID0+IGl0ZW1zO1xyXG5cclxuICBjbG9zZSgpIHsgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInNlbGVjdC1sYWJlbFwiID57eyBsYWJlbCB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tIFtjdXN0b21GaWx0ZXJdPVwiZGlzYWJsZUZpbHRlclwiIC0tPlxyXG4gIDxuZy1hdXRvY29tcGxldGUgI2F1dG8gW2RhdGFdPVwiZG9jdW1lbnRMaXN0XCIgW3NlYXJjaEtleXdvcmRdPVwiJ2ZpbHRlcidcIiAoc2VsZWN0ZWQpPSdzZWxlY3RJdGVtKCRldmVudCknXHJcbiAgICAoaW5wdXRDaGFuZ2VkKT0nb25TZWFyY2hJbnB1dENoYW5nZSgkZXZlbnQpJyAoY2xvc2VkKT1cImNsb3NlKClcIiBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICBbbm90Rm91bmRUZW1wbGF0ZV09XCJub3RGb3VuZFRlbXBsYXRlXCIgW3BsYWNlaG9sZGVyXT1cIidjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5zZWFyY2hieScgfCB0cmFuc2xhdGVcIlxyXG4gICAgW2RlYm91bmNlVGltZV09JzEwMDAnIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCIgKGlucHV0Q2xlYXJlZCk9J2lucHV0Q2xlYXJlZCgpJz5cclxuICA8L25nLWF1dG9jb21wbGV0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICA8c3Bhbj57e2l0ZW0udGl0bGV9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjbm90Rm91bmRUZW1wbGF0ZT5cclxuICAgIDxkaXY+e3snY29ycmVzcG9uZGVuY2UtcmVsYXRpb24ubm90Zm91bmQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
|