nuxeo-development-framework 4.2.1 → 4.2.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.
Files changed (117) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +1868 -1453
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/charts/chart.const.js +3 -0
  4. package/esm2015/lib/components/charts/chart.token.js +3 -0
  5. package/esm2015/lib/components/charts/charts.module.js +19 -0
  6. package/esm2015/lib/components/charts/components/base-chart.component.js +44 -0
  7. package/esm2015/lib/components/charts/components/chart.component.js +131 -0
  8. package/esm2015/lib/components/charts/components/data-chart.component.js +164 -0
  9. package/esm2015/lib/components/charts/components/index.js +4 -0
  10. package/esm2015/lib/components/charts/defaults/bar.js +18 -0
  11. package/esm2015/lib/components/charts/defaults/doughnut.js +18 -0
  12. package/esm2015/lib/components/charts/defaults/index.js +5 -0
  13. package/esm2015/lib/components/charts/defaults/line.js +36 -0
  14. package/esm2015/lib/components/charts/defaults/pie.js +20 -0
  15. package/esm2015/lib/components/charts/index.js +9 -0
  16. package/esm2015/lib/components/charts/models/index.js +5 -0
  17. package/esm2015/lib/components/charts/models/options.js +2 -0
  18. package/esm2015/lib/components/charts/models/plugins-options.js +2 -0
  19. package/esm2015/lib/components/charts/models/response.js +2 -0
  20. package/esm2015/lib/components/charts/models/statistic-request-config.js +2 -0
  21. package/esm2015/lib/components/charts/plugins/doughnut-center-text.js +21 -0
  22. package/esm2015/lib/components/charts/plugins/doughnut-empty-state.js +30 -0
  23. package/esm2015/lib/components/charts/plugins/index.js +3 -0
  24. package/esm2015/lib/components/charts/services/index.js +2 -0
  25. package/esm2015/lib/components/charts/services/statistic.service.js +17 -0
  26. package/esm2015/lib/components/charts/utility/colors.js +79 -0
  27. package/esm2015/lib/components/charts/utility/common.js +7 -0
  28. package/esm2015/lib/components/charts/utility/index.js +3 -0
  29. package/esm2015/lib/components/comments/comments.module.js +9 -5
  30. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +30 -23
  31. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +28 -34
  32. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +31 -35
  33. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +41 -41
  34. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +30 -34
  35. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +9 -5
  36. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +32 -24
  37. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +11 -9
  38. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +30 -29
  39. package/esm2015/lib/components/documents/documents.module.js +2 -6
  40. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +45 -40
  41. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +21 -17
  42. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +98 -92
  43. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +2 -2
  44. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +2 -2
  45. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +14 -12
  46. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +62 -36
  47. package/esm2015/lib/components/file-manger/components/move/move.component.js +2 -2
  48. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +15 -11
  49. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +53 -23
  50. package/esm2015/lib/components/file-manger/file-manager.abstract.js +269 -267
  51. package/esm2015/lib/components/notifications/components/base-notifications.component.js +2 -16
  52. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +2 -2
  53. package/esm2015/lib/components/permissions/permissions/permissions.component.js +100 -57
  54. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +36 -52
  55. package/esm2015/lib/shared-services/dialog-mangment.service.js +27 -23
  56. package/esm2015/lib/shared-services/shared-docs.service.js +22 -27
  57. package/esm2015/public-api.js +4 -5
  58. package/fesm2015/nuxeo-development-framework.js +1636 -1216
  59. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  60. package/lib/components/charts/chart.const.d.ts +2 -0
  61. package/lib/components/charts/chart.token.d.ts +8 -0
  62. package/lib/components/charts/charts.module.d.ts +9 -0
  63. package/lib/components/charts/components/base-chart.component.d.ts +21 -0
  64. package/lib/components/charts/components/chart.component.d.ts +28 -0
  65. package/lib/components/charts/components/data-chart.component.d.ts +32 -0
  66. package/lib/components/charts/components/index.d.ts +3 -0
  67. package/lib/components/charts/defaults/bar.d.ts +2 -0
  68. package/lib/components/charts/defaults/doughnut.d.ts +2 -0
  69. package/lib/components/charts/defaults/index.d.ts +4 -0
  70. package/lib/components/charts/defaults/line.d.ts +2 -0
  71. package/lib/components/charts/defaults/pie.d.ts +2 -0
  72. package/lib/components/charts/index.d.ts +8 -0
  73. package/lib/components/charts/models/index.d.ts +4 -0
  74. package/lib/components/charts/models/options.d.ts +11 -0
  75. package/lib/components/charts/models/plugins-options.d.ts +15 -0
  76. package/lib/components/charts/models/response.d.ts +5 -0
  77. package/lib/components/charts/models/statistic-request-config.d.ts +28 -0
  78. package/lib/components/charts/plugins/doughnut-center-text.d.ts +2 -0
  79. package/lib/components/charts/plugins/doughnut-empty-state.d.ts +2 -0
  80. package/lib/components/charts/plugins/index.d.ts +2 -0
  81. package/lib/components/charts/services/index.d.ts +1 -0
  82. package/lib/components/charts/services/statistic.service.d.ts +9 -0
  83. package/lib/components/charts/utility/colors.d.ts +11 -0
  84. package/lib/components/charts/utility/common.d.ts +4 -0
  85. package/lib/components/charts/utility/index.d.ts +2 -0
  86. package/lib/components/comments/comments.module.d.ts +2 -1
  87. package/lib/components/comments/components/comment-item/comment-item.component.d.ts +3 -1
  88. package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +8 -5
  89. package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +4 -2
  90. package/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.d.ts +6 -4
  91. package/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.d.ts +4 -2
  92. package/lib/components/correspondence-relation/correspondence-relation.module.d.ts +2 -1
  93. package/lib/components/documents/components/document-list/documents-list.component.d.ts +3 -1
  94. package/lib/components/documents/documents.module.d.ts +13 -14
  95. package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +11 -10
  96. package/lib/components/dynamic-chart/dynamic-chart.module.d.ts +5 -6
  97. package/lib/components/file-manger/components/creation-type/creation-type.component.d.ts +6 -4
  98. package/lib/components/file-manger/components/loan-request/loan-request.component.d.ts +11 -5
  99. package/lib/components/file-manger/components/template-modal/template-modal.component.d.ts +4 -3
  100. package/lib/components/file-manger/components/transfer-doc/transfer-doc.component.d.ts +11 -4
  101. package/lib/components/file-manger/file-manager.abstract.d.ts +25 -23
  102. package/lib/components/notifications/components/base-notifications.component.d.ts +2 -8
  103. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +1 -1
  104. package/lib/components/permissions/permissions/permissions.component.d.ts +3 -1
  105. package/lib/components/permissions/permissions-template/permissions-template.component.d.ts +3 -3
  106. package/lib/shared-services/dialog-mangment.service.d.ts +3 -3
  107. package/lib/shared-services/shared-docs.service.d.ts +4 -2
  108. package/package.json +3 -4
  109. package/public-api.d.ts +3 -4
  110. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +0 -77
  111. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +0 -28
  112. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +0 -29
  113. package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +0 -164
  114. package/lib/components/confirm-caller/confirm-caller.dialog.d.ts +0 -46
  115. package/lib/components/confirm-caller/confirm-caller.module.d.ts +0 -17
  116. package/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.d.ts +0 -12
  117. package/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.d.ts +0 -33
@@ -1,7 +1,6 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { MatDialogConfig } from '@angular/material/dialog';
3
- import { take } from 'rxjs/operators';
4
- import { ConfirmCallerDialogComponent } from '../../../confirm-caller/confirm-caller.dialog';
3
+ import { tap } from 'rxjs/operators';
5
4
  import { CorrespondenceRelationCreateFormComponent } from '../correspondence-relation-create-form/correspondence-relation-create-form.component';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@angular/material/dialog";
@@ -11,13 +10,14 @@ import * as i4 from "../../services/viewer-files.service";
11
10
  import * as i5 from "../../../documents/services/documents.service";
12
11
  import * as i6 from "../../../../core/services/user/user-preferences.service";
13
12
  import * as i7 from "../../../../core/services/nuxeo/nuxeo.service";
14
- import * as i8 from "../correspondence-relation-reply/correspondence-relation-reply.component";
15
- import * as i9 from "@angular/material/icon";
16
- import * as i10 from "../correspondence-relation-list/correspondence-relation-list.component";
17
- import * as i11 from "../../../../directive/permissions/permissions.directive";
18
- import * as i12 from "@ngx-translate/core";
13
+ import * as i8 from "../../../../shared/components/nuxeo-dialog/services/nuxeo-dialog.service";
14
+ import * as i9 from "../correspondence-relation-reply/correspondence-relation-reply.component";
15
+ import * as i10 from "@angular/material/icon";
16
+ import * as i11 from "../correspondence-relation-list/correspondence-relation-list.component";
17
+ import * as i12 from "../../../../directive/permissions/permissions.directive";
18
+ import * as i13 from "@ngx-translate/core";
19
19
  export class CorrespondenceRelationComponent {
20
- constructor(dialog, corrrelationsvc, toastr, viewerFilesService, documentsApi, userPreference, nuxeoService) {
20
+ constructor(dialog, corrrelationsvc, toastr, viewerFilesService, documentsApi, userPreference, nuxeoService, nuxeoDialogService) {
21
21
  this.dialog = dialog;
22
22
  this.corrrelationsvc = corrrelationsvc;
23
23
  this.toastr = toastr;
@@ -25,6 +25,7 @@ export class CorrespondenceRelationComponent {
25
25
  this.documentsApi = documentsApi;
26
26
  this.userPreference = userPreference;
27
27
  this.nuxeoService = nuxeoService;
28
+ this.nuxeoDialogService = nuxeoDialogService;
28
29
  this.reload = false;
29
30
  }
30
31
  ngOnInit() {
@@ -39,7 +40,7 @@ export class CorrespondenceRelationComponent {
39
40
  data = {
40
41
  exist_relations_list: this.relations_list.value,
41
42
  correspondance: this.correspondance,
42
- corr_id: this.corr_id,
43
+ corr_id: this.corr_id
43
44
  };
44
45
  else
45
46
  data = { exist_relations_list: [] };
@@ -103,46 +104,41 @@ export class CorrespondenceRelationComponent {
103
104
  this.viewerFilesService.updateViewer.next(file);
104
105
  });
105
106
  }
106
- openConfirmDialog(functionToPerform, title, msg) {
107
- return this.dialog
108
- .open(ConfirmCallerDialogComponent, {
109
- width: '400px',
110
- panelClass: 'relation-confirm-dialog',
111
- data: {
112
- call: functionToPerform,
113
- title: 'genericConfirm',
114
- toastrTitle: title,
115
- toastrMsg: msg,
116
- },
117
- })
118
- .afterClosed()
119
- .pipe(take(1));
107
+ openConfirmDialog(functionToPerform) {
108
+ this.nuxeoDialogService.showConfirm({
109
+ message: 'genericConfirm',
110
+ actions: {
111
+ confirm: {
112
+ fn: () => {
113
+ return functionToPerform().pipe(tap((data) => {
114
+ if (data) {
115
+ this.corrrelationsvc.getUpdatedRelation.next();
116
+ }
117
+ }));
118
+ }
119
+ }
120
+ }
121
+ });
120
122
  }
121
123
  deleteRelation(relateddoc) {
122
124
  let functionToPerform = () => {
123
125
  return this.corrrelationsvc.Delete_Named_Relation(this.corr_id, relateddoc.relationId, relateddoc.uid);
124
126
  };
125
- let title = '';
126
- let msg = '';
127
- this.openConfirmDialog(functionToPerform, 'Success', 'correspondence-relation.deleted_success').subscribe((data) => {
128
- if (data) {
129
- this.corrrelationsvc.getUpdatedRelation.next();
130
- }
131
- });
127
+ this.openConfirmDialog(functionToPerform);
132
128
  }
133
129
  }
134
- CorrespondenceRelationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CorrespondenceRelationComponent, deps: [{ token: i1.MatDialog }, { token: i2.CorrespondenceRelationService }, { token: i3.CustomToastrService }, { token: i4.ViewerFilesService }, { token: i5.DocumentsService }, { token: i6.UserPreferencesService }, { token: i7.NuxeoService }], target: i0.ɵɵFactoryTarget.Component });
135
- CorrespondenceRelationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CorrespondenceRelationComponent, selector: "cts-correspondence-relation", inputs: { corr_id: "corr_id", correspondance: "correspondance" }, ngImport: i0, template: "<div class=\"relations-container\">\r\n <div class=\"mb-3 relations-reply\">\r\n <div class=\"subheader\">\r\n <div>{{ \"correspondence-relation.reply_relation\" | translate }}</div>\r\n </div>\r\n <cts-correspondence-relation-reply\r\n [correspondence_id]=\"corr_id\"\r\n (actionclicked)=\"handleActions($event)\"\r\n ></cts-correspondence-relation-reply>\r\n </div>\r\n\r\n <div class=\"mb-2 relations-listing\">\r\n <div class=\"subheader\">\r\n <div>{{ \"correspondence-relation.title\" | translate }}</div>\r\n <div class=\"\" *permission=\"{\r\n name: 'AddRelatedCorrespondence',\r\n entity: correspondance , user: nuxeoService.nuxeoClient.user\r\n }\" (click)=\"openDialog()\"><mat-icon>add</mat-icon></div>\r\n </div>\r\n <cts-correspondence-relation-list\r\n [correspondence_id]=\"corr_id\"\r\n [reload]=\"reload\"\r\n ></cts-correspondence-relation-list>\r\n </div>\r\n\r\n\r\n</div>\r\n", styles: [".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}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .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}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .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}.relations-container .subheader{padding:10px 0 0;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:bold}.relations-container .subheader mat-icon{font-size:25px;cursor:pointer;color:#465573}.relations-container .relations-title{display:flex;justify-content:space-between;align-items:center}.relations-container .relations-title a{font-size:30px;color:#789}.relations-container .relations-list{border:1px solid #00000026}.relations-container .relations-list .relation-item{display:flex;justify-content:space-between;align-items:center}\n"], components: [{ type: i8.CorrespondenceRelationReplyComponent, selector: "cts-correspondence-relation-reply", inputs: ["correspondence_id"], outputs: ["actionclicked"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.CorrespondenceRelationListComponent, selector: "cts-correspondence-relation-list", inputs: ["correspondence_id", "reload"] }], directives: [{ type: i11.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }], pipes: { "translate": i12.TranslatePipe } });
130
+ CorrespondenceRelationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CorrespondenceRelationComponent, deps: [{ token: i1.MatDialog }, { token: i2.CorrespondenceRelationService }, { token: i3.CustomToastrService }, { token: i4.ViewerFilesService }, { token: i5.DocumentsService }, { token: i6.UserPreferencesService }, { token: i7.NuxeoService }, { token: i8.NuxeoDialogService }], target: i0.ɵɵFactoryTarget.Component });
131
+ CorrespondenceRelationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CorrespondenceRelationComponent, selector: "cts-correspondence-relation", inputs: { corr_id: "corr_id", correspondance: "correspondance" }, ngImport: i0, template: "<div class=\"relations-container\">\r\n <div class=\"mb-3 relations-reply\">\r\n <div class=\"subheader\">\r\n <div>{{ \"correspondence-relation.reply_relation\" | translate }}</div>\r\n </div>\r\n <cts-correspondence-relation-reply\r\n [correspondence_id]=\"corr_id\"\r\n (actionclicked)=\"handleActions($event)\"\r\n ></cts-correspondence-relation-reply>\r\n </div>\r\n\r\n <div class=\"mb-2 relations-listing\">\r\n <div class=\"subheader\">\r\n <div>{{ \"correspondence-relation.title\" | translate }}</div>\r\n <div class=\"\" *permission=\"{\r\n name: 'AddRelatedCorrespondence',\r\n entity: correspondance , user: nuxeoService.nuxeoClient.user\r\n }\" (click)=\"openDialog()\"><mat-icon>add</mat-icon></div>\r\n </div>\r\n <cts-correspondence-relation-list\r\n [correspondence_id]=\"corr_id\"\r\n [reload]=\"reload\"\r\n ></cts-correspondence-relation-list>\r\n </div>\r\n\r\n\r\n</div>\r\n", styles: [".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}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .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}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .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}.relations-container .subheader{padding:10px 0 0;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:bold}.relations-container .subheader mat-icon{font-size:25px;cursor:pointer;color:#465573}.relations-container .relations-title{display:flex;justify-content:space-between;align-items:center}.relations-container .relations-title a{font-size:30px;color:#789}.relations-container .relations-list{border:1px solid #00000026}.relations-container .relations-list .relation-item{display:flex;justify-content:space-between;align-items:center}\n"], components: [{ type: i9.CorrespondenceRelationReplyComponent, selector: "cts-correspondence-relation-reply", inputs: ["correspondence_id"], outputs: ["actionclicked"] }, { type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i11.CorrespondenceRelationListComponent, selector: "cts-correspondence-relation-list", inputs: ["correspondence_id", "reload"] }], directives: [{ type: i12.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }], pipes: { "translate": i13.TranslatePipe } });
136
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CorrespondenceRelationComponent, decorators: [{
137
133
  type: Component,
138
134
  args: [{
139
135
  selector: 'cts-correspondence-relation',
140
136
  templateUrl: './correspondence-relation.component.html',
141
- styleUrls: ['./correspondence-relation.component.scss'],
137
+ styleUrls: ['./correspondence-relation.component.scss']
142
138
  }]
143
- }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.CorrespondenceRelationService }, { type: i3.CustomToastrService }, { type: i4.ViewerFilesService }, { type: i5.DocumentsService }, { type: i6.UserPreferencesService }, { type: i7.NuxeoService }]; }, propDecorators: { corr_id: [{
139
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.CorrespondenceRelationService }, { type: i3.CustomToastrService }, { type: i4.ViewerFilesService }, { type: i5.DocumentsService }, { type: i6.UserPreferencesService }, { type: i7.NuxeoService }, { type: i8.NuxeoDialogService }]; }, propDecorators: { corr_id: [{
144
140
  type: Input
145
141
  }], correspondance: [{
146
142
  type: Input
147
143
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHNGQUFzRixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVVqSixNQUFNLE9BQU8sK0JBQStCO0lBUTFDLFlBQ1MsTUFBaUIsRUFDaEIsZUFBOEMsRUFDOUMsTUFBMkIsRUFDM0Isa0JBQXNDLEVBQ3RDLFlBQThCLEVBQzlCLGNBQXNDLEVBQ3ZDLFlBQTJCO1FBTjNCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQStCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQXFC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LFVBQVUsRUFDckIsVUFBVSxDQUFDLEdBQUcsQ0FDZixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBQ0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUNwQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHlDQUF5QyxDQUMxQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25CLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzZIQXRJVSwrQkFBK0I7aUhBQS9CLCtCQUErQixxSUNoQjVDLHM5QkEyQkE7NEZEWGEsK0JBQStCO2tCQUwzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSwwQ0FBMEM7b0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2lCQUN4RDs4U0FHQyxPQUFPO3NCQUROLEtBQUs7Z0JBSUosY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb3JyZXNwb25kZW5jZS1yZWFsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbmZpcm1DYWxsZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb25maXJtLWNhbGxlci9jb25maXJtLWNhbGxlci5kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb3JyZXNwb25kZW5jZVJlbGF0aW9uQ3JlYXRlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWaWV3ZXJGaWxlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3ZXItZmlsZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtY29ycmVzcG9uZGVuY2UtcmVsYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcnJlc3BvbmRlbmNlUmVsYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgY29ycl9pZDtcclxuICAgIC8qKiBDb3JyZXNwb25kYW5jZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGNvcnJlc3BvbmRhbmNlO1xyXG4gIHJlbGF0aW9uc19saXN0OiBhbnk7XHJcbiAgcmVsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGNvcnJyZWxhdGlvbnN2YzogQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld2VyRmlsZXNTZXJ2aWNlOiBWaWV3ZXJGaWxlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvY3VtZW50c0FwaTogRG9jdW1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgbnV4ZW9TZXJ2aWNlIDogTnV4ZW9TZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0YWxscmVsYXRlZCgpO1xyXG4gICAgdGhpcy5jb3JycmVsYXRpb25zdmMuZ2V0VXBkYXRlZFJlbGF0aW9uLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0YWxscmVsYXRlZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuRGlhbG9nKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGlmICh0aGlzLnJlbGF0aW9uc19saXN0KVxyXG4gICAgZGF0YSA9IHtcclxuICAgICAgZXhpc3RfcmVsYXRpb25zX2xpc3Q6IHRoaXMucmVsYXRpb25zX2xpc3QudmFsdWUsXHJcbiAgICAgIGNvcnJlc3BvbmRhbmNlOiB0aGlzLmNvcnJlc3BvbmRhbmNlLFxyXG4gICAgICBjb3JyX2lkOnRoaXMuY29ycl9pZCxcclxuICAgIH07XHJcbiAgICBlbHNlIGRhdGEgPSB7IGV4aXN0X3JlbGF0aW9uc19saXN0OiBbXSB9O1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSBkYXRhO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRpcmVjdGlvbiA9XHJcbiAgICAgIHRoaXMudXNlclByZWZlcmVuY2UubG9jYWxlID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuICAgIGRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID0gJ2N1c3RvbS1kaWFsb2ctY29udGFpbmVyJztcclxuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc1MCUnO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZT0gdHJ1ZSA7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFxyXG4gICAgICBDb3JyZXNwb25kZW5jZVJlbGF0aW9uQ3JlYXRlRm9ybUNvbXBvbmVudCxcclxuICAgICAgZGlhbG9nQ29uZmlnXHJcbiAgICApO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5jb3JycmVsYXRpb25zdmNcclxuICAgICAgICAvLyAgIC5jcmVhdGVfTmFtZWRfUmVsYXRpb24odGhpcy5jb3JyX2lkLCByZXN1bHQucmVsYXRpb25uYW1lLCByZXN1bHQuZG9jcylcclxuICAgICAgICAvLyAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgLy8gICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgdGhpcy5yZWxvYWQgPSB0cnVlO1xyXG4gICAgICAgIC8vICAgICAgIHRoaXMuY29ycnJlbGF0aW9uc3ZjLmdldFVwZGF0ZWRSZWxhdGlvbi5uZXh0KCk7XHJcbiAgICAgICAgLy8gICAgICAgdGhpcy50b2FzdHIuc2hvdyhcclxuICAgICAgICAvLyAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICAgICdSZWFsYXRpb24gU3VjY2Vzc2Z1bHkgYWRkZWQnXHJcbiAgICAgICAgLy8gICAgICAgKTtcclxuICAgICAgICAvLyAgICAgfSxcclxuICAgICAgICAvLyAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2Vycm9yJywgJ2Vycm9yJyxcclxuICAgICAgICAvLyAgICAgICAgIGVyci5yZXQubWVzc2FnZSA/XHJcbiAgICAgICAgLy8gICAgICAgICAgIGBlcnJvcnMuJHtlcnIucmV0LmNvZGV9YFxyXG4gICAgICAgIC8vICAgICAgICAgICA6ICdnZW5lcmljRXJyb3InKTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRhbGxyZWxhdGVkKCkge1xyXG4gICAgdGhpcy5jb3JycmVsYXRpb25zdmNcclxuICAgICAgLmdldF9Db3JyZXNwb25kZW5jZV9SZWxhdGlvbl9XaXRob3V0UmVwbHkodGhpcy5jb3JyX2lkKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWxhdGlvbnNfbGlzdCA9IHJlc3VsdHM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWN0aW9ucyhldmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ3ZpZXcnKSB7XHJcbiAgICAgIHRoaXMudmlld19Db3JyZXMoZXZlbnQuaXRlbSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcclxuICAgICAgdGhpcy5kZWxldGVSZWxhdGlvbihldmVudC5pdGVtKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQuYWN0aW9uID09PSAnc2hvdycpIHtcclxuICAgICAgdGhpcy5zaG93Q29ycmVzcG9uZGVuY2VJblZpZXdlcihldmVudC5pdGVtLnVpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2aWV3X0NvcnJlcyhyZWxhdGlvbikge1xyXG4gICAgbGV0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xyXG4gICAgd2luZG93Lm9wZW4odXJsLnJlcGxhY2UodGhpcy5jb3JyX2lkLCByZWxhdGlvbi51aWQpLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG5cclxuICBzaG93Q29ycmVzcG9uZGVuY2VJblZpZXdlcihjb3JyZXNfaWQpIHtcclxuICAgIHRoaXMuZG9jdW1lbnRzQXBpLmdldERvY3VtZW50KGNvcnJlc19pZCkuc3Vic2NyaWJlKChmaWxlKSA9PiB7XHJcbiAgICAgIHRoaXMudmlld2VyRmlsZXNTZXJ2aWNlLnVwZGF0ZVZpZXdlci5uZXh0KGZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9wZW5Db25maXJtRGlhbG9nKGZ1bmN0aW9uVG9QZXJmb3JtLCB0aXRsZSwgbXNnKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dcclxuICAgICAgLm9wZW4oQ29uZmlybUNhbGxlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgIHdpZHRoOiAnNDAwcHgnLFxyXG4gICAgICAgIHBhbmVsQ2xhc3M6J3JlbGF0aW9uLWNvbmZpcm0tZGlhbG9nJyxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBjYWxsOiBmdW5jdGlvblRvUGVyZm9ybSxcclxuICAgICAgICAgIHRpdGxlOiAnZ2VuZXJpY0NvbmZpcm0nLFxyXG4gICAgICAgICAgdG9hc3RyVGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgdG9hc3RyTXNnOiBtc2csXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZSgxKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZVJlbGF0aW9uKHJlbGF0ZWRkb2MpIHtcclxuICAgIGxldCBmdW5jdGlvblRvUGVyZm9ybSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ycnJlbGF0aW9uc3ZjLkRlbGV0ZV9OYW1lZF9SZWxhdGlvbihcclxuICAgICAgICB0aGlzLmNvcnJfaWQsXHJcbiAgICAgICAgcmVsYXRlZGRvYy5yZWxhdGlvbklkLFxyXG4gICAgICAgIHJlbGF0ZWRkb2MudWlkXHJcbiAgICAgICk7XHJcbiAgICB9O1xyXG4gICAgbGV0IHRpdGxlID0gJyc7XHJcbiAgICBsZXQgbXNnID0gJyc7XHJcbiAgICB0aGlzLm9wZW5Db25maXJtRGlhbG9nKFxyXG4gICAgICBmdW5jdGlvblRvUGVyZm9ybSxcclxuICAgICAgJ1N1Y2Nlc3MnLFxyXG4gICAgICAnY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uZGVsZXRlZF9zdWNjZXNzJ1xyXG4gICAgKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICB0aGlzLmNvcnJyZWxhdGlvbnN2Yy5nZXRVcGRhdGVkUmVsYXRpb24ubmV4dCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aW9ucy1jb250YWluZXJcIj5cclxuICA8ZGl2ICBjbGFzcz1cIm1iLTMgcmVsYXRpb25zLXJlcGx5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyXCI+XHJcbiAgICAgIDxkaXY+e3sgXCJjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5yZXBseV9yZWxhdGlvblwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjdHMtY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tcmVwbHlcclxuICAgICAgW2NvcnJlc3BvbmRlbmNlX2lkXT1cImNvcnJfaWRcIlxyXG4gICAgICAoYWN0aW9uY2xpY2tlZCk9XCJoYW5kbGVBY3Rpb25zKCRldmVudClcIlxyXG4gICAgPjwvY3RzLWNvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLXJlcGx5PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWItMiByZWxhdGlvbnMtbGlzdGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1YmhlYWRlclwiPlxyXG4gICAgICA8ZGl2Pnt7IFwiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24udGl0bGVcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCIgKnBlcm1pc3Npb249XCJ7XHJcbiAgICAgICAgbmFtZTogJ0FkZFJlbGF0ZWRDb3JyZXNwb25kZW5jZScsXHJcbiAgICAgICAgZW50aXR5OiBjb3JyZXNwb25kYW5jZSAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcbiAgICAgIH1cIiAoY2xpY2spPVwib3BlbkRpYWxvZygpXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjdHMtY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tbGlzdFxyXG4gICAgICBbY29ycmVzcG9uZGVuY2VfaWRdPVwiY29ycl9pZFwiXHJcbiAgICAgIFtyZWxvYWRdPVwicmVsb2FkXCJcclxuICAgID48L2N0cy1jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1saXN0PlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdEUsT0FBTyxFQUFRLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHNGQUFzRixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFXakosTUFBTSxPQUFPLCtCQUErQjtJQVEzQyxZQUNRLE1BQWlCLEVBQ2hCLGVBQThDLEVBQzlDLE1BQTJCLEVBQzNCLGtCQUFzQyxFQUN0QyxZQUE4QixFQUM5QixjQUFzQyxFQUN2QyxZQUEwQixFQUN6QixrQkFBc0M7UUFQdkMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBK0I7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFv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QUNoRCxJQUFJLENBQUMsT0FBTyxFQUNaLFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxHQUFHLENBQ2QsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OzZIQWpJVywrQkFBK0I7aUhBQS9CLCtCQUErQixxSUNoQjVDLHM5QkEyQkE7NEZEWGEsK0JBQStCO2tCQUwzQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSwwQ0FBMEM7b0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2lCQUN2RDsrVUFHQSxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb3JyZXNwb25kZW5jZS1yZWFsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29ycmVzcG9uZGVuY2VSZWxhdGlvbkNyZWF0ZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZG9jdW1lbnRzL3NlcnZpY2VzL2RvY3VtZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld2VyRmlsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmlld2VyLWZpbGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9zZXJ2aWNlcy9udXhlby1kaWFsb2cuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3RzLWNvcnJlc3BvbmRlbmNlLXJlbGF0aW9uJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcnJlc3BvbmRlbmNlUmVsYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBJbnB1dCgpXHJcblx0Y29ycl9pZDtcclxuXHQvKiogQ29ycmVzcG9uZGFuY2UgKi9cclxuXHRASW5wdXQoKVxyXG5cdGNvcnJlc3BvbmRhbmNlO1xyXG5cdHJlbGF0aW9uc19saXN0OiBhbnk7XHJcblx0cmVsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcblx0XHRwcml2YXRlIGNvcnJyZWxhdGlvbnN2YzogQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRvYXN0cjogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuXHRcdHByaXZhdGUgdmlld2VyRmlsZXNTZXJ2aWNlOiBWaWV3ZXJGaWxlc1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIGRvY3VtZW50c0FwaTogRG9jdW1lbnRzU2VydmljZSxcclxuXHRcdHByaXZhdGUgdXNlclByZWZlcmVuY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcblx0XHRwdWJsaWMgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIG51eGVvRGlhbG9nU2VydmljZTogTnV4ZW9EaWFsb2dTZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZ2V0YWxscmVsYXRlZCgpO1xyXG5cdFx0dGhpcy5jb3JycmVsYXRpb25zdmMuZ2V0VXBkYXRlZFJlbGF0aW9uLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuZ2V0YWxscmVsYXRlZCgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRvcGVuRGlhbG9nKCkge1xyXG5cdFx0bGV0IGRhdGEgPSB7fTtcclxuXHRcdGlmICh0aGlzLnJlbGF0aW9uc19saXN0KVxyXG5cdFx0XHRkYXRhID0ge1xyXG5cdFx0XHRcdGV4aXN0X3JlbGF0aW9uc19saXN0OiB0aGlzLnJlbGF0aW9uc19saXN0LnZhbHVlLFxyXG5cdFx0XHRcdGNvcnJlc3BvbmRhbmNlOiB0aGlzLmNvcnJlc3BvbmRhbmNlLFxyXG5cdFx0XHRcdGNvcnJfaWQ6IHRoaXMuY29ycl9pZFxyXG5cdFx0XHR9O1xyXG5cdFx0ZWxzZSBkYXRhID0geyBleGlzdF9yZWxhdGlvbnNfbGlzdDogW10gfTtcclxuXHRcdGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuXHRcdGRpYWxvZ0NvbmZpZy5kYXRhID0gZGF0YTtcclxuXHRcdGRpYWxvZ0NvbmZpZy5kaXJlY3Rpb24gPVxyXG5cdFx0XHR0aGlzLnVzZXJQcmVmZXJlbmNlLmxvY2FsZSA9PT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcblx0XHRkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9ICdjdXN0b20tZGlhbG9nLWNvbnRhaW5lcic7XHJcblx0XHRkaWFsb2dDb25maWcud2lkdGggPSAnNTAlJztcclxuXHRcdGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG5cdFx0Y29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihcclxuXHRcdFx0Q29ycmVzcG9uZGVuY2VSZWxhdGlvbkNyZWF0ZUZvcm1Db21wb25lbnQsXHJcblx0XHRcdGRpYWxvZ0NvbmZpZ1xyXG5cdFx0KTtcclxuXHJcblx0XHRkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRpZiAocmVzdWx0KSB7XHJcblx0XHRcdFx0dGhpcy5yZWxvYWQgPSB0cnVlO1xyXG5cdFx0XHRcdC8vIHRoaXMuY29ycnJlbGF0aW9uc3ZjXHJcblx0XHRcdFx0Ly8gICAuY3JlYXRlX05hbWVkX1JlbGF0aW9uKHRoaXMuY29ycl9pZCwgcmVzdWx0LnJlbGF0aW9ubmFtZSwgcmVzdWx0LmRvY3MpXHJcblx0XHRcdFx0Ly8gICAuc3Vic2NyaWJlKFxyXG5cdFx0XHRcdC8vICAgICAoZGF0YSkgPT4ge1xyXG5cdFx0XHRcdC8vICAgICAgIHRoaXMucmVsb2FkID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyAgICAgICB0aGlzLmNvcnJyZWxhdGlvbnN2Yy5nZXRVcGRhdGVkUmVsYXRpb24ubmV4dCgpO1xyXG5cdFx0XHRcdC8vICAgICAgIHRoaXMudG9hc3RyLnNob3coXHJcblx0XHRcdFx0Ly8gICAgICAgICAnc3VjY2VzcycsXHJcblx0XHRcdFx0Ly8gICAgICAgICAnc3VjY2VzcycsXHJcblx0XHRcdFx0Ly8gICAgICAgICAnUmVhbGF0aW9uIFN1Y2Nlc3NmdWx5IGFkZGVkJ1xyXG5cdFx0XHRcdC8vICAgICAgICk7XHJcblx0XHRcdFx0Ly8gICAgIH0sXHJcblx0XHRcdFx0Ly8gICAgIChlcnIpID0+IHtcclxuXHRcdFx0XHQvLyAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdlcnJvcicsICdlcnJvcicsXHJcblx0XHRcdFx0Ly8gICAgICAgICBlcnIucmV0Lm1lc3NhZ2UgP1xyXG5cdFx0XHRcdC8vICAgICAgICAgICBgZXJyb3JzLiR7ZXJyLnJldC5jb2RlfWBcclxuXHRcdFx0XHQvLyAgICAgICAgICAgOiAnZ2VuZXJpY0Vycm9yJyk7XHJcblx0XHRcdFx0Ly8gICAgIH1cclxuXHRcdFx0XHQvLyAgICk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0YWxscmVsYXRlZCgpIHtcclxuXHRcdHRoaXMuY29ycnJlbGF0aW9uc3ZjXHJcblx0XHRcdC5nZXRfQ29ycmVzcG9uZGVuY2VfUmVsYXRpb25fV2l0aG91dFJlcGx5KHRoaXMuY29ycl9pZClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzdWx0cykgPT4ge1xyXG5cdFx0XHRcdHRoaXMucmVsYXRpb25zX2xpc3QgPSByZXN1bHRzO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUFjdGlvbnMoZXZlbnQpIHtcclxuXHRcdGlmIChldmVudC5hY3Rpb24gPT09ICd2aWV3Jykge1xyXG5cdFx0XHR0aGlzLnZpZXdfQ29ycmVzKGV2ZW50Lml0ZW0pO1xyXG5cdFx0fSBlbHNlIGlmIChldmVudC5hY3Rpb24gPT09ICdkZWxldGUnKSB7XHJcblx0XHRcdHRoaXMuZGVsZXRlUmVsYXRpb24oZXZlbnQuaXRlbSk7XHJcblx0XHR9IGVsc2UgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ3Nob3cnKSB7XHJcblx0XHRcdHRoaXMuc2hvd0NvcnJlc3BvbmRlbmNlSW5WaWV3ZXIoZXZlbnQuaXRlbS51aWQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dmlld19Db3JyZXMocmVsYXRpb24pIHtcclxuXHRcdGxldCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuXHRcdHdpbmRvdy5vcGVuKHVybC5yZXBsYWNlKHRoaXMuY29ycl9pZCwgcmVsYXRpb24udWlkKSwgJ19ibGFuaycpO1xyXG5cdH1cclxuXHJcblx0c2hvd0NvcnJlc3BvbmRlbmNlSW5WaWV3ZXIoY29ycmVzX2lkKSB7XHJcblx0XHR0aGlzLmRvY3VtZW50c0FwaS5nZXREb2N1bWVudChjb3JyZXNfaWQpLnN1YnNjcmliZSgoZmlsZSkgPT4ge1xyXG5cdFx0XHR0aGlzLnZpZXdlckZpbGVzU2VydmljZS51cGRhdGVWaWV3ZXIubmV4dChmaWxlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHRvcGVuQ29uZmlybURpYWxvZyhmdW5jdGlvblRvUGVyZm9ybSkge1xyXG5cdFx0dGhpcy5udXhlb0RpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm0oe1xyXG5cdFx0XHRtZXNzYWdlOiAnZ2VuZXJpY0NvbmZpcm0nLFxyXG5cdFx0XHRhY3Rpb25zOiB7XHJcblx0XHRcdFx0Y29uZmlybToge1xyXG5cdFx0XHRcdFx0Zm46ICgpID0+IHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uVG9QZXJmb3JtKCkucGlwZShcclxuXHRcdFx0XHRcdFx0XHR0YXAoKGRhdGEpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChkYXRhKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY29ycnJlbGF0aW9uc3ZjLmdldFVwZGF0ZWRSZWxhdGlvbi5uZXh0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHRkZWxldGVSZWxhdGlvbihyZWxhdGVkZG9jKSB7XHJcblx0XHRsZXQgZnVuY3Rpb25Ub1BlcmZvcm0gPSAoKSA9PiB7XHJcblx0XHRcdHJldHVybiB0aGlzLmNvcnJyZWxhdGlvbnN2Yy5EZWxldGVfTmFtZWRfUmVsYXRpb24oXHJcblx0XHRcdFx0dGhpcy5jb3JyX2lkLFxyXG5cdFx0XHRcdHJlbGF0ZWRkb2MucmVsYXRpb25JZCxcclxuXHRcdFx0XHRyZWxhdGVkZG9jLnVpZFxyXG5cdFx0XHQpO1xyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLm9wZW5Db25maXJtRGlhbG9nKGZ1bmN0aW9uVG9QZXJmb3JtKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aW9ucy1jb250YWluZXJcIj5cclxuICA8ZGl2ICBjbGFzcz1cIm1iLTMgcmVsYXRpb25zLXJlcGx5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyXCI+XHJcbiAgICAgIDxkaXY+e3sgXCJjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5yZXBseV9yZWxhdGlvblwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjdHMtY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tcmVwbHlcclxuICAgICAgW2NvcnJlc3BvbmRlbmNlX2lkXT1cImNvcnJfaWRcIlxyXG4gICAgICAoYWN0aW9uY2xpY2tlZCk9XCJoYW5kbGVBY3Rpb25zKCRldmVudClcIlxyXG4gICAgPjwvY3RzLWNvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLXJlcGx5PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibWItMiByZWxhdGlvbnMtbGlzdGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1YmhlYWRlclwiPlxyXG4gICAgICA8ZGl2Pnt7IFwiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24udGl0bGVcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCIgKnBlcm1pc3Npb249XCJ7XHJcbiAgICAgICAgbmFtZTogJ0FkZFJlbGF0ZWRDb3JyZXNwb25kZW5jZScsXHJcbiAgICAgICAgZW50aXR5OiBjb3JyZXNwb25kYW5jZSAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcbiAgICAgIH1cIiAoY2xpY2spPVwib3BlbkRpYWxvZygpXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjdHMtY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tbGlzdFxyXG4gICAgICBbY29ycmVzcG9uZGVuY2VfaWRdPVwiY29ycl9pZFwiXHJcbiAgICAgIFtyZWxvYWRdPVwicmVsb2FkXCJcclxuICAgID48L2N0cy1jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1saXN0PlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,21 +1,23 @@
1
- import { Component, Inject, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { Component, Inject, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
3
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { tap } from 'rxjs/operators';
5
+ import { BaseDialogComponent } from '../../../../shared/components/base/base-dialog.component';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@angular/forms";
6
8
  import * as i2 from "../../services/correspondence-realation.service";
7
9
  import * as i3 from "../../../custom-toastr/services/custom-toastr.service";
8
10
  import * as i4 from "@angular/material/dialog";
9
- import * as i5 from "../../../dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component";
10
- import * as i6 from "angular-ng-autocomplete";
11
- import * as i7 from "@angular/material/chips";
12
- import * as i8 from "@angular/material/icon";
13
- import * as i9 from "../../../../shared/components/button/button.component";
14
- import * as i10 from "../../../../directive/rtl/set-dir-rtl.directive";
15
- import * as i11 from "@angular/common";
16
- import * as i12 from "@ngx-translate/core";
17
- export class CorrespondenceRelationCreateFormComponent {
18
- constructor(_formBuilder, corressvc, toastr, dialogRef, data) {
11
+ import * as i5 from "../../../../shared/components/nuxeo-dialog/nuxeo.dialog";
12
+ import * as i6 from "../../../dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component";
13
+ import * as i7 from "angular-ng-autocomplete";
14
+ import * as i8 from "@angular/material/chips";
15
+ import * as i9 from "@angular/material/icon";
16
+ import * as i10 from "@angular/common";
17
+ import * as i11 from "@ngx-translate/core";
18
+ export class CorrespondenceRelationCreateFormComponent extends BaseDialogComponent {
19
+ constructor(_formBuilder, corressvc, toastr, dialogRef, data, injector) {
20
+ super(injector);
19
21
  this._formBuilder = _formBuilder;
20
22
  this.corressvc = corressvc;
21
23
  this.toastr = toastr;
@@ -30,33 +32,31 @@ export class CorrespondenceRelationCreateFormComponent {
30
32
  this.isLoading = false;
31
33
  this.documentList = [];
32
34
  this.exist_relations_list = [];
35
+ /**dialog actions */
36
+ this.onSaveClick = () => {
37
+ this.saving = true;
38
+ return this.corressvc
39
+ .create_Named_Relation(this.data.corr_id, this.createform.value.relationname, this.related_corr.map((corre) => corre.id))
40
+ .pipe(tap((data) => {
41
+ if (data) {
42
+ this.corressvc.getUpdatedRelation.next();
43
+ this.toastr.show('success', 'success', 'RELATION_ADDED');
44
+ this.saving = false;
45
+ this.dialogRef.close(true);
46
+ }
47
+ }, (err) => {
48
+ this.saving = false;
49
+ this.toastr.show('error', 'error', err.ret.message ? `errors.${err.ret.code}` : 'genericError');
50
+ }));
51
+ // this.dialogRef.close({
52
+ // docs: this.related_corr.map((corre) => corre.id),
53
+ // relationname: this.createform.value.relationname,
54
+ // });
55
+ };
33
56
  /**ng-Autocomplete related functions */
34
57
  this.alwaysopened = false;
35
58
  this.disableFilter = (items) => items;
36
59
  }
37
- /**dialog actions */
38
- onSaveClick() {
39
- this.saving = true;
40
- this.corressvc
41
- .create_Named_Relation(this.data.corr_id, this.createform.value.relationname, this.related_corr.map((corre) => corre.id))
42
- .subscribe((data) => {
43
- if (data) {
44
- this.corressvc.getUpdatedRelation.next();
45
- this.toastr.show('success', 'success', 'RELATION_ADDED');
46
- this.saving = false;
47
- this.dialogRef.close(true);
48
- }
49
- }, (err) => {
50
- this.saving = false;
51
- this.toastr.show('error', 'error', err.ret.message ?
52
- `errors.${err.ret.code}`
53
- : 'genericError');
54
- });
55
- // this.dialogRef.close({
56
- // docs: this.related_corr.map((corre) => corre.id),
57
- // relationname: this.createform.value.relationname,
58
- // });
59
- }
60
60
  onCloseoClick() {
61
61
  this.dialogRef.close();
62
62
  }
@@ -66,7 +66,7 @@ export class CorrespondenceRelationCreateFormComponent {
66
66
  console.log('related', this.data);
67
67
  this.dialogRef.updateSize('50%', '85%');
68
68
  this.createform = this._formBuilder.group({
69
- relationname: ['', Validators.required],
69
+ relationname: ['', Validators.required]
70
70
  });
71
71
  }
72
72
  on_remove_relation_Chip(relation) {
@@ -113,7 +113,7 @@ export class CorrespondenceRelationCreateFormComponent {
113
113
  return;
114
114
  }
115
115
  this.corressvc.search(val, '', 'relationFile').subscribe((data) => {
116
- console.log("documentList", data);
116
+ console.log('documentList', data);
117
117
  this.documentList = data.filter((correspondance) => {
118
118
  return this.correspondanceId != correspondance.id;
119
119
  });
@@ -132,21 +132,21 @@ export class CorrespondenceRelationCreateFormComponent {
132
132
  this.exist = false;
133
133
  }
134
134
  }
135
- CorrespondenceRelationCreateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CorrespondenceRelationCreateFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.CorrespondenceRelationService }, { token: i3.CustomToastrService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
136
- CorrespondenceRelationCreateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CorrespondenceRelationCreateFormComponent, selector: "cts-correspondence-relation-create-form", viewQueries: [{ propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div class=\"correspondence-relation-container\" SetDirRtl style=\"height: 80%; width: 100%\">\r\n <div class=\"correspondence-relation-title\">\r\n {{ \"correspondence-relation.add\" | translate }}\r\n </div>\r\n <!-- <mat-divider></mat-divider> -->\r\n <div mat-dialog-content [formGroup]=\"createform\">\r\n <div class=\"vocabulary-list\">\r\n <app-dynamic-form-vocabulary-item\r\n [label]=\"'correspondence-relation.relation-type'\"\r\n [bindLabel]=\"'label'\"\r\n [bindValue]=\"'id'\"\r\n placeholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n [multiple]=\"false\"\r\n [searchable]=\"false\"\r\n [closeOnSelect]=\"true\"\r\n [hideSelectedItems]=\"false\"\r\n [vocabularyType]=\"'VOC_CorrespondenceRelationsNames'\"\r\n formControlName=\"relationname\"\r\n (onSelecting)=\"reset()\"\r\n >\r\n </app-dynamic-form-vocabulary-item>\r\n </div>\r\n\r\n <div class=\"search-container\" *ngIf=\"createform.value.relationname\">\r\n <ng-autocomplete\r\n #auto\r\n [data]=\"documentList\"\r\n [searchKeyword]=\"'filter'\"\r\n (selected)=\"selectItem($event)\"\r\n (inputChanged)=\"onSearchInputChange($event)\"\r\n [customFilter]=\"disableFilter\"\r\n (closed)=\"keep_Autocomplete_Results_Open()\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [notFoundTemplate]=\"notFoundTemplate\"\r\n [placeholder]=\"'correspondence-relation.searchby' | translate\"\r\n [debounceTime]=\"1000\"\r\n [isLoading]=\"isLoading\"\r\n (inputCleared)=\"inputCleared()\"\r\n >\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\r\n <div class=\"chip-list\" *ngIf=\"related_corr.length > 0\">\r\n <mat-chip-list #chipList aria-label=\"corr selection\">\r\n <mat-chip\r\n *ngFor=\"let corr of related_corr\"\r\n [selectable]=\"selectable\"\r\n [removable]=\"removable\"\r\n (removed)=\"on_remove_relation_Chip(corr)\"\r\n >\r\n {{ corr.title }}\r\n <mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n </div>\r\n <div class=\"exist-relation\">\r\n <span *ngIf=\"exist\">\r\n {{ \"correspondence-relation.exist\" | translate }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button-group d-flex flex-row-reverse\">\r\n <cts-button\r\n [theme]=\"'danger'\"\r\n size=\"'regular'\"\r\n [loading]=\"saving\"\r\n class=\"voc-form-close\"\r\n mat-dialog-close\r\n >\r\n {{ \"BUTTONS.CLOSE\" | translate }}\r\n </cts-button>\r\n <cts-button\r\n (onClick)=\"onSaveClick()\"\r\n [theme]=\"'primary'\"\r\n size=\"'regular'\"\r\n [disabled]=\"\r\n !this.createform.controls.relationname.valid || related_corr.length == 0\r\n \"\r\n >\r\n {{ \"correspondence-relation.save\" | translate }}\r\n </cts-button>\r\n </div>\r\n</div>\r\n", styles: [".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}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .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}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .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}.correspondence-relation-container{padding:20px}.correspondence-relation-container .correspondence-relation-title{margin-bottom:8px;font-size:20px;color:#465573}.correspondence-relation-container .mat-dialog-content{height:100%;width:100%}.correspondence-relation-container .button-group{margin-top:12px;grid-column-gap:6px!important;column-gap:6px!important}.correspondence-relation-container .button-group cts-button{width:16%}@media (max-width: 992px){.correspondence-relation-container .button-group cts-button{width:20%}}@media only screen and (max-width: 768px){.correspondence-relation-container .button-group cts-button{width:28%}}.correspondence-relation-container .item{margin:1px;padding:8px 10px;font-size:.75rem}.correspondence-relation-container .dialog-actions button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:70px;border-radius:3px}.correspondence-relation-container .dialog-actions button:disabled{opacity:.4;cursor:not-allowed}.correspondence-relation-container .dialog-actions button:hover{opacity:.7}.correspondence-relation-container .autocomplete-container .suggestions-container ul{max-height:150px!important}.correspondence-relation-container .autocomplete-container .suggestions-container{height:150px!important;margin-top:10px;max-height:150px!important;border:1px lightgray solid!important;box-shadow:none!important}.correspondence-relation-container .search-container{position:relative}.correspondence-relation-container .chip-list{max-height:150px;border:1px lightgray solid;overflow:scroll;padding:10px;margin-bottom:10px;top:215px;position:absolute;width:100%}.correspondence-relation-container .chip-list .mat-standard-chip{border-radius:5px!important}.correspondence-relation-container .chip-list .mat-chip.mat-standard-chip{background-color:#8f98aa1a!important;height:auto}.correspondence-relation-container .autocomplete-container{box-shadow:none!important}.correspondence-relation-container .autocomplete-container .input-container input{background-color:#8f98aa1a!important;padding:10px!important}.correspondence-relation-container .exist-relation{background-color:#f8d7da!important;color:#842029!important;border-color:#f5c2c7!important;position:absolute;width:100%;top:300px}.correspondence-relation-container .autocomplete-container .suggestions-container .complete-selected,.correspondence-relation-container .autocomplete-container .suggestions-container ul li:hover{background-color:#8f98aa1a!important}.correspondence-relation-container .vocabulary-list{margin-bottom:10px}.correspondence-relation-container .vocabulary-list .mat-error{display:none!important}.correspondence-relation-container .mat-dialog-content{margin:3px 0 0!important;padding:0!important}[dir=rtl] .input-container input{direction:rtl}[dir=rtl] .x{left:10px;right:auto!important}\n"], components: [{ type: i5.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: i6.AutocompleteComponent, selector: "ng-autocomplete", inputs: ["data", "searchKeyword", "placeholder", "heading", "initialValue", "historyIdentifier", "historyHeading", "historyListMaxNumber", "notFoundText", "isLoading", "debounceTime", "disabled", "minQueryLength", "focusFirst", "customFilter", "selectedValueRender", "itemTemplate", "notFoundTemplate"], outputs: ["selected", "inputChanged", "inputFocused", "inputCleared", "opened", "closed", "scrolledToEnd"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["aria-orientation", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "selectable", "tabIndex", "errorStateMatcher"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.ButtonComponent, selector: "cts-button", inputs: ["disabled", "loading", "size", "theme", "spinnerTheming"], outputs: ["onClick"] }], directives: [{ type: i10.SetDirRtlDirective, selector: "[SetDirRtl]" }, { type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": i12.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
135
+ CorrespondenceRelationCreateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CorrespondenceRelationCreateFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.CorrespondenceRelationService }, { token: i3.CustomToastrService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
136
+ CorrespondenceRelationCreateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CorrespondenceRelationCreateFormComponent, selector: "cts-correspondence-relation-create-form", viewQueries: [{ propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ndf-nuxeo-dialog dialogTitle=\"{{ 'correspondence-relation.add' | translate }}\">\r\n\t<ng-template #contentTemplate>\r\n\t\t<div mat-dialog-content [formGroup]=\"createform\">\r\n\t\t\t<div class=\"vocabulary-list\">\r\n\t\t\t\t<app-dynamic-form-vocabulary-item\r\n\t\t\t\t\t[label]=\"'correspondence-relation.relation-type'\"\r\n\t\t\t\t\t[bindLabel]=\"'label'\"\r\n\t\t\t\t\t[bindValue]=\"'id'\"\r\n\t\t\t\t\tplaceholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n\t\t\t\t\t[multiple]=\"false\"\r\n\t\t\t\t\t[searchable]=\"false\"\r\n\t\t\t\t\t[closeOnSelect]=\"true\"\r\n\t\t\t\t\t[hideSelectedItems]=\"false\"\r\n\t\t\t\t\t[vocabularyType]=\"'VOC_CorrespondenceRelationsNames'\"\r\n\t\t\t\t\tformControlName=\"relationname\"\r\n\t\t\t\t\t(onSelecting)=\"reset()\"\r\n\t\t\t\t>\r\n\t\t\t\t</app-dynamic-form-vocabulary-item>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"search-container\" *ngIf=\"createform?.value.relationname\">\r\n\t\t\t\t<ng-autocomplete\r\n\t\t\t\t\t#auto\r\n\t\t\t\t\t[data]=\"documentList\"\r\n\t\t\t\t\t[searchKeyword]=\"'filter'\"\r\n\t\t\t\t\t(selected)=\"selectItem($event)\"\r\n\t\t\t\t\t(inputChanged)=\"onSearchInputChange($event)\"\r\n\t\t\t\t\t[customFilter]=\"disableFilter\"\r\n\t\t\t\t\t(closed)=\"keep_Autocomplete_Results_Open()\"\r\n\t\t\t\t\t[itemTemplate]=\"itemTemplate\"\r\n\t\t\t\t\t[notFoundTemplate]=\"notFoundTemplate\"\r\n\t\t\t\t\t[placeholder]=\"'correspondence-relation.searchby' | translate\"\r\n\t\t\t\t\t[debounceTime]=\"1000\"\r\n\t\t\t\t\t[isLoading]=\"isLoading\"\r\n\t\t\t\t\t(inputCleared)=\"inputCleared()\"\r\n\t\t\t\t>\r\n\t\t\t\t</ng-autocomplete>\r\n\r\n\t\t\t\t<ng-template #itemTemplate let-item>\r\n\t\t\t\t\t<div class=\"item\">\r\n\t\t\t\t\t\t<span>{{ item.title }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t<ng-template #notFoundTemplate>\r\n\t\t\t\t\t<div>{{ 'correspondence-relation.notfound' | translate }}</div>\r\n\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t<div class=\"chip-list\" *ngIf=\"related_corr.length > 0\">\r\n\t\t\t\t\t<mat-chip-list #chipList aria-label=\"corr selection\">\r\n\t\t\t\t\t\t<mat-chip\r\n\t\t\t\t\t\t\t*ngFor=\"let corr of related_corr\"\r\n\t\t\t\t\t\t\t[selectable]=\"selectable\"\r\n\t\t\t\t\t\t\t[removable]=\"removable\"\r\n\t\t\t\t\t\t\t(removed)=\"on_remove_relation_Chip(corr)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ corr.title }}\r\n\t\t\t\t\t\t\t<mat-icon matChipRemove *ngIf=\"removable\">cancel</mat-icon>\r\n\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"exist-relation\">\r\n\t\t\t\t\t<span *ngIf=\"exist\">\r\n\t\t\t\t\t\t{{ 'correspondence-relation.exist' | translate }}</span\r\n\t\t\t\t\t>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t\t<button\r\n\t\t\tclass=\"submission-button\"\r\n\t\t\t(click)=\"dialog.executeAction(onSaveClick)\"\r\n\t\t\t[disabled]=\"\r\n\t\t\t\t!this.createform.controls.relationname.valid || related_corr.length == 0\r\n\t\t\t\"\r\n\t\t>\r\n\t\t\t<span>{{ 'correspondence-relation.save' | translate }}</span>\r\n\t\t</button>\r\n\t</ng-template>\r\n</ndf-nuxeo-dialog>\r\n", styles: [".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}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .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}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .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}.correspondence-relation-container{padding:20px}.correspondence-relation-container .correspondence-relation-title{margin-bottom:8px;font-size:20px;color:#465573}.correspondence-relation-container .mat-dialog-content{height:100%;width:100%}.correspondence-relation-container .button-group{margin-top:12px;grid-column-gap:6px!important;column-gap:6px!important}.correspondence-relation-container .button-group cts-button{width:16%}@media (max-width: 992px){.correspondence-relation-container .button-group cts-button{width:20%}}@media only screen and (max-width: 768px){.correspondence-relation-container .button-group cts-button{width:28%}}.correspondence-relation-container .item{margin:1px;padding:8px 10px;font-size:.75rem}.correspondence-relation-container .dialog-actions button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:70px;border-radius:3px}.correspondence-relation-container .dialog-actions button:disabled{opacity:.4;cursor:not-allowed}.correspondence-relation-container .dialog-actions button:hover{opacity:.7}.correspondence-relation-container .autocomplete-container .suggestions-container ul{max-height:150px!important}.correspondence-relation-container .autocomplete-container .suggestions-container{height:150px!important;margin-top:10px;max-height:150px!important;border:1px lightgray solid!important;box-shadow:none!important}.correspondence-relation-container .search-container{position:relative}.correspondence-relation-container .chip-list{max-height:150px;border:1px lightgray solid;overflow:scroll;padding:10px;margin-bottom:10px;top:215px;position:absolute;width:100%}.correspondence-relation-container .chip-list .mat-standard-chip{border-radius:5px!important}.correspondence-relation-container .chip-list .mat-chip.mat-standard-chip{background-color:#8f98aa1a!important;height:auto}.correspondence-relation-container .autocomplete-container{box-shadow:none!important}.correspondence-relation-container .autocomplete-container .input-container input{background-color:#8f98aa1a!important;padding:10px!important}.correspondence-relation-container .exist-relation{background-color:#f8d7da!important;color:#842029!important;border-color:#f5c2c7!important;position:absolute;width:100%;top:300px}.correspondence-relation-container .autocomplete-container .suggestions-container .complete-selected,.correspondence-relation-container .autocomplete-container .suggestions-container ul li:hover{background-color:#8f98aa1a!important}.correspondence-relation-container .vocabulary-list{margin-bottom:10px}.correspondence-relation-container .vocabulary-list .mat-error{display:none!important}.correspondence-relation-container .mat-dialog-content{margin:3px 0 0!important;padding:0!important}[dir=rtl] .input-container input{direction:rtl}[dir=rtl] .x{left:10px;right:auto!important}\n"], components: [{ type: i5.NdfNuxeoDialog, selector: "ndf-nuxeo-dialog", inputs: ["dialogTitle", "subTitle", "loaderMode"] }, { type: i6.DynamicFormVocabularyItemComponent, selector: "app-dynamic-form-vocabulary-item", inputs: ["bindValue", "bindLabel", "placeholder", "multiple", "searchable", "closeOnSelect", "hideSelectedItems", "disabled", "vocabularyType", "label", "cacheable", "shwoAllValues"], outputs: ["onSelecting"] }, { type: i7.AutocompleteComponent, selector: "ng-autocomplete", inputs: ["data", "searchKeyword", "placeholder", "heading", "initialValue", "historyIdentifier", "historyHeading", "historyListMaxNumber", "notFoundText", "isLoading", "debounceTime", "disabled", "minQueryLength", "focusFirst", "customFilter", "selectedValueRender", "itemTemplate", "notFoundTemplate"], outputs: ["selected", "inputChanged", "inputFocused", "inputCleared", "opened", "closed", "scrolledToEnd"] }, { type: i8.MatChipList, selector: "mat-chip-list", inputs: ["aria-orientation", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "selectable", "tabIndex", "errorStateMatcher"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i8.MatChipRemove, selector: "[matChipRemove]" }], pipes: { "translate": i11.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
137
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CorrespondenceRelationCreateFormComponent, decorators: [{
138
138
  type: Component,
139
139
  args: [{
140
140
  selector: 'cts-correspondence-relation-create-form',
141
141
  templateUrl: './correspondence-relation-create-form.component.html',
142
142
  styleUrls: ['./correspondence-relation-create-form.component.scss'],
143
- encapsulation: ViewEncapsulation.None,
143
+ encapsulation: ViewEncapsulation.None
144
144
  }]
145
145
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.CorrespondenceRelationService }, { type: i3.CustomToastrService }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
146
146
  type: Inject,
147
147
  args: [MAT_DIALOG_DATA]
148
- }] }]; }, propDecorators: { auto: [{
148
+ }] }, { type: i0.Injector }]; }, propDecorators: { auto: [{
149
149
  type: ViewChild,
150
150
  args: ['auto']
151
151
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tY3JlYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFVekUsTUFBTSxPQUFPLHlDQUF5QztJQVlwRCxZQUNVLFlBQXlCLEVBQ3pCLFNBQXdDLEVBQ3hDLE1BQTJCLEVBQzVCLFNBQWtFLEVBQ3pDLElBQVM7UUFKakMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBeUQ7UUFD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WSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O3VJQTNJVSx5Q0FBeUMseUpBaUIxQyxlQUFlOzJIQWpCZCx5Q0FBeUMsNktDbEJ0RCwyMEdBNkZBOzRGRDNFYSx5Q0FBeUM7a0JBTnJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztvQkFDbkQsV0FBVyxFQUFFLHNEQUFzRDtvQkFDbkUsU0FBUyxFQUFFLENBQUMsc0RBQXNELENBQUM7b0JBQ25FLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBa0JJLE1BQU07MkJBQUMsZUFBZTs0Q0F5Q04sSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb3JyZXNwb25kZW5jZS1yZWFsYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy1jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JyZXNwb25kZW5jZVJlbGF0aW9uQ3JlYXRlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdmlzaWJsZSA9IHRydWU7XHJcbiAgc2VsZWN0YWJsZSA9IHRydWU7XHJcbiAgcmVtb3ZhYmxlID0gdHJ1ZTtcclxuICBzYXZpbmcgPSBmYWxzZTtcclxuICBjcmVhdGVmb3JtOiBGb3JtR3JvdXA7XHJcbiAgcmVsYXRlZF9jb3JyOiBhbnlbXSA9IFtdO1xyXG4gIGV4aXN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZG9jdW1lbnRMaXN0ID0gW107XHJcbiAgZXhpc3RfcmVsYXRpb25zX2xpc3Q6IGFueVtdID0gW107XHJcbiAgY29ycmVzcG9uZGFuY2VJZDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgY29ycmVzc3ZjOiBDb3JyZXNwb25kZW5jZVJlbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvcnJlc3BvbmRlbmNlUmVsYXRpb25DcmVhdGVGb3JtQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqZGlhbG9nIGFjdGlvbnMgKi9cclxuICBvblNhdmVDbGljaygpIHtcclxuICAgIHRoaXMuc2F2aW5nPXRydWU7XHJcbiAgICB0aGlzLmNvcnJlc3N2Y1xyXG4gICAgICAuY3JlYXRlX05hbWVkX1JlbGF0aW9uKHRoaXMuZGF0YS5jb3JyX2lkLCB0aGlzLmNyZWF0ZWZvcm0udmFsdWUucmVsYXRpb25uYW1lLCB0aGlzLnJlbGF0ZWRfY29yci5tYXAoKGNvcnJlKSA9PiBjb3JyZS5pZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29ycmVzc3ZjLmdldFVwZGF0ZWRSZWxhdGlvbi5uZXh0KCk7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coXHJcbiAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAnUkVMQVRJT05fQURERUQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2aW5nPWZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2F2aW5nPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnZXJyb3InLCAnZXJyb3InLFxyXG4gICAgICAgICAgICBlcnIucmV0Lm1lc3NhZ2UgP1xyXG4gICAgICAgICAgICAgIGBlcnJvcnMuJHtlcnIucmV0LmNvZGV9YFxyXG4gICAgICAgICAgICAgIDogJ2dlbmVyaWNFcnJvcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIC8vIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgIC8vICAgZG9jczogdGhpcy5yZWxhdGVkX2NvcnIubWFwKChjb3JyZSkgPT4gY29ycmUuaWQpLFxyXG4gICAgLy8gICByZWxhdGlvbm5hbWU6IHRoaXMuY3JlYXRlZm9ybS52YWx1ZS5yZWxhdGlvbm5hbWUsXHJcbiAgICAvLyB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvbkNsb3Nlb0NsaWNrKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICBAVmlld0NoaWxkKCdhdXRvJykgYXV0bztcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhpc3RfcmVsYXRpb25zX2xpc3QgPSB0aGlzLmRhdGEuZXhpc3RfcmVsYXRpb25zX2xpc3Q7XHJcbiAgICB0aGlzLmNvcnJlc3BvbmRhbmNlSWQgPSB0aGlzLmRhdGEuY29ycmVzcG9uZGFuY2UudWlkO1xyXG4gICAgY29uc29sZS5sb2coJ3JlbGF0ZWQnLCB0aGlzLmRhdGEpO1xyXG4gICAgdGhpcy5kaWFsb2dSZWYudXBkYXRlU2l6ZSgnNTAlJywgJzg1JScpO1xyXG4gICAgdGhpcy5jcmVhdGVmb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICByZWxhdGlvbm5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uX3JlbW92ZV9yZWxhdGlvbl9DaGlwKHJlbGF0aW9uKSB7XHJcbiAgICB0aGlzLnJlbGF0ZWRfY29yci5zcGxpY2UodGhpcy5yZWxhdGVkX2NvcnIuaW5kZXhPZihyZWxhdGlvbiksIDEpO1xyXG4gIH1cclxuXHJcbiAgLyoqbmctQXV0b2NvbXBsZXRlIHJlbGF0ZWQgZnVuY3Rpb25zICovXHJcbiAgYWx3YXlzb3BlbmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2xlYXJTZXJhY2hJbnB1dCgpIHtcclxuICAgIHRoaXMuZG9jdW1lbnRMaXN0ID0gW107XHJcbiAgICBpZiAodGhpcy5hdXRvKSB0aGlzLmF1dG8ucXVlcnkgPSAnJztcclxuICB9XHJcblxyXG4gIGlzX3JlbGF0aW9uX2V4aXN0KHJlbGF0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5leGlzdF9yZWxhdGlvbnNfbGlzdC5sZW5ndGggPT0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgbGV0IGV4aXN0X3JlbGF0aW9uID0gdGhpcy5leGlzdF9yZWxhdGlvbnNfbGlzdC5maWx0ZXIoXHJcbiAgICAgIChleGlzdF9yZWxhdGlvbikgPT5cclxuICAgICAgICBleGlzdF9yZWxhdGlvbi5yZWxhdGlvbklkID09PSB0aGlzLmNyZWF0ZWZvcm0udmFsdWUucmVsYXRpb25uYW1lICYmXHJcbiAgICAgICAgZXhpc3RfcmVsYXRpb24udWlkID09PSByZWxhdGlvbi5pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuZXhpc3QgPSBleGlzdF9yZWxhdGlvbi5sZW5ndGggPiAwO1xyXG4gICAgcmV0dXJuIHRoaXMuZXhpc3Q7XHJcbiAgfVxyXG5cclxuICBpc19jb3JyZXNwX2FkZGVkKGNvcnJlc3ApIHtcclxuICAgIGxldCBleGlzdF9jb3JyZXNwID0gdGhpcy5yZWxhdGVkX2NvcnIuZmlsdGVyKChleGlzdF9jb3JyZXNwKSA9PiB7XHJcbiAgICAgIHJldHVybiBleGlzdF9jb3JyZXNwLmlkID09PSBjb3JyZXNwLmlkO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZXhpc3RfY29ycmVzcC5sZW5ndGggPiAwO1xyXG4gIH1cclxuICBzZWxlY3RJdGVtKGl0ZW0pIHtcclxuICAgIHRoaXMuYXV0by5xdWVyeSA9IHRoaXMuYXV0by50b0hpZ2hsaWdodDtcclxuICAgIGlmICh0aGlzLmlzX3JlbGF0aW9uX2V4aXN0KGl0ZW0pKSByZXR1cm47XHJcbiAgICBlbHNlIGlmICh0aGlzLmlzX2NvcnJlc3BfYWRkZWQoaXRlbSkpIHJldHVybjtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbGF0ZWRfY29yci5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2VlcF9BdXRvY29tcGxldGVfUmVzdWx0c19PcGVuKCkge1xyXG4gICAgaWYgKHRoaXMuYWx3YXlzb3BlbmVkKSB7XHJcbiAgICAgIHRoaXMuYXV0by5maWx0ZXJlZExpc3QgPSB0aGlzLmRvY3VtZW50TGlzdDtcclxuICAgICAgdGhpcy5hdXRvLmlzT3BlbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXV0by5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hJbnB1dENoYW5nZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbD8ubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb3JyZXNzdmMuc2VhcmNoKHZhbCwgJycsICdyZWxhdGlvbkZpbGUnKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJkb2N1bWVudExpc3RcIiwgZGF0YSlcclxuICAgICAgdGhpcy5kb2N1bWVudExpc3QgPSBkYXRhLmZpbHRlcigoY29ycmVzcG9uZGFuY2UpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb3JyZXNwb25kYW5jZUlkICE9IGNvcnJlc3BvbmRhbmNlLmlkO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hbHdheXNvcGVuZWQgPSB0aGlzLmRvY3VtZW50TGlzdC5sZW5ndGggPiAwO1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudExpc3Q7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZGlzYWJsZUZpbHRlciA9IChpdGVtczogYW55W10pID0+IGl0ZW1zO1xyXG5cclxuICBpbnB1dENsZWFyZWQoKSB7XHJcbiAgICB0aGlzLmRvY3VtZW50TGlzdCA9IFtdO1xyXG4gICAgdGhpcy5hbHdheXNvcGVuZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5yZWxhdGVkX2NvcnIgPSBbXTtcclxuICAgIHRoaXMuY2xlYXJTZXJhY2hJbnB1dCgpO1xyXG4gICAgdGhpcy5leGlzdCA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tY29udGFpbmVyXCIgU2V0RGlyUnRsIHN0eWxlPVwiaGVpZ2h0OiA4MCU7IHdpZHRoOiAxMDAlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLXRpdGxlXCI+XHJcbiAgICB7eyBcImNvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLmFkZFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj4gLS0+XHJcbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgW2Zvcm1Hcm91cF09XCJjcmVhdGVmb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidm9jYWJ1bGFyeS1saXN0XCI+XHJcbiAgICAgIDxhcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbVxyXG4gICAgICAgIFtsYWJlbF09XCInY29ycmVzcG9uZGVuY2UtcmVsYXRpb24ucmVsYXRpb24tdHlwZSdcIlxyXG4gICAgICAgIFtiaW5kTGFiZWxdPVwiJ2xhYmVsJ1wiXHJcbiAgICAgICAgW2JpbmRWYWx1ZV09XCInaWQnXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdWT0NBQlVMQVJZLlNFTEVDVF9JVEVNJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcclxuICAgICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2hpZGVTZWxlY3RlZEl0ZW1zXT1cImZhbHNlXCJcclxuICAgICAgICBbdm9jYWJ1bGFyeVR5cGVdPVwiJ1ZPQ19Db3JyZXNwb25kZW5jZVJlbGF0aW9uc05hbWVzJ1wiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVsYXRpb25uYW1lXCJcclxuICAgICAgICAob25TZWxlY3RpbmcpPVwicmVzZXQoKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCIgKm5nSWY9XCJjcmVhdGVmb3JtLnZhbHVlLnJlbGF0aW9ubmFtZVwiPlxyXG4gICAgICA8bmctYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgI2F1dG9cclxuICAgICAgICBbZGF0YV09XCJkb2N1bWVudExpc3RcIlxyXG4gICAgICAgIFtzZWFyY2hLZXl3b3JkXT1cIidmaWx0ZXInXCJcclxuICAgICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCJcclxuICAgICAgICAoaW5wdXRDaGFuZ2VkKT1cIm9uU2VhcmNoSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2N1c3RvbUZpbHRlcl09XCJkaXNhYmxlRmlsdGVyXCJcclxuICAgICAgICAoY2xvc2VkKT1cImtlZXBfQXV0b2NvbXBsZXRlX1Jlc3VsdHNfT3BlbigpXCJcclxuICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgW25vdEZvdW5kVGVtcGxhdGVdPVwibm90Rm91bmRUZW1wbGF0ZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5zZWFyY2hieScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtkZWJvdW5jZVRpbWVdPVwiMTAwMFwiXHJcbiAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgIChpbnB1dENsZWFyZWQpPVwiaW5wdXRDbGVhcmVkKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbmctYXV0b2NvbXBsZXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI25vdEZvdW5kVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdj57eyBcImNvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLm5vdGZvdW5kXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWxpc3RcIiAqbmdJZj1cInJlbGF0ZWRfY29yci5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0IGFyaWEtbGFiZWw9XCJjb3JyIHNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPG1hdC1jaGlwXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb3JyIG9mIHJlbGF0ZWRfY29yclwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIlxyXG4gICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInJlbW92YWJsZVwiXHJcbiAgICAgICAgICAgIChyZW1vdmVkKT1cIm9uX3JlbW92ZV9yZWxhdGlvbl9DaGlwKGNvcnIpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29yci50aXRsZSB9fVxyXG4gICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZSAqbmdJZj1cInJlbW92YWJsZVwiPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L21hdC1jaGlwPlxyXG4gICAgICAgIDwvbWF0LWNoaXAtbGlzdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJleGlzdC1yZWxhdGlvblwiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZXhpc3RcIj5cclxuICAgICAgICAgIHt7IFwiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uZXhpc3RcIiB8IHRyYW5zbGF0ZSB9fTwvc3BhblxyXG4gICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwIGQtZmxleCBmbGV4LXJvdy1yZXZlcnNlXCI+XHJcbiAgICA8Y3RzLWJ1dHRvblxyXG4gICAgICBbdGhlbWVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICBzaXplPVwiJ3JlZ3VsYXInXCJcclxuICAgICAgW2xvYWRpbmddPVwic2F2aW5nXCJcclxuICAgICAgY2xhc3M9XCJ2b2MtZm9ybS1jbG9zZVwiXHJcbiAgICAgIG1hdC1kaWFsb2ctY2xvc2VcclxuICAgID5cclxuICAgICAge3sgXCJCVVRUT05TLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvY3RzLWJ1dHRvbj5cclxuICAgIDxjdHMtYnV0dG9uXHJcbiAgICAgIChvbkNsaWNrKT1cIm9uU2F2ZUNsaWNrKClcIlxyXG4gICAgICBbdGhlbWVdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgc2l6ZT1cIidyZWd1bGFyJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgICAhdGhpcy5jcmVhdGVmb3JtLmNvbnRyb2xzLnJlbGF0aW9ubmFtZS52YWxpZCB8fCByZWxhdGVkX2NvcnIubGVuZ3RoID09IDBcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAge3sgXCJjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5zYXZlXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvY3RzLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tY3JlYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RSxPQUFPLEVBQVEsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRL0YsTUFBTSxPQUFPLHlDQUNaLFNBQVEsbUJBSVA7SUFjRCxZQUNTLFlBQXlCLEVBQ3pCLFNBQXdDLEVBQ3hDLE1BQTJCLEVBQzVCLFNBQWtFLEVBQ3pDLElBQVMsRUFDekMsUUFBa0I7UUFF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QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBR0QsWUFBWTtRQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7dUlBdkpXLHlDQUF5Qyx5SkF3QjVDLGVBQWU7MkhBeEJaLHlDQUF5QyxvTUNyQnRELG9uR0FrRkE7NEZEN0RhLHlDQUF5QztrQkFOckQsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUseUNBQXlDO29CQUNuRCxXQUFXLEVBQUUsc0RBQXNEO29CQUNuRSxTQUFTLEVBQUUsQ0FBQyxzREFBc0QsQ0FBQztvQkFDbkUsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3JDOzswQkF5QkUsTUFBTTsyQkFBQyxlQUFlO21FQThDTCxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRJbmplY3QsXHJcblx0T25Jbml0LFxyXG5cdEluamVjdG9yLFxyXG5cdFZpZXdDaGlsZCxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvcnJlc3BvbmRlbmNlUmVsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29ycmVzcG9uZGVuY2UtcmVhbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9iYXNlL2Jhc2UtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9udXhlby1kaWFsb2cvbW9kZWxzL2RpYWxvZy1vcHRpb24ubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2N0cy1jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcnJlc3BvbmRlbmNlUmVsYXRpb25DcmVhdGVGb3JtQ29tcG9uZW50XHJcblx0ZXh0ZW5kcyBCYXNlRGlhbG9nQ29tcG9uZW50PFxyXG5cdFx0Q29ycmVzcG9uZGVuY2VSZWxhdGlvbkNyZWF0ZUZvcm1Db21wb25lbnQsXHJcblx0XHRhbnksXHJcblx0XHRhbnlcclxuXHQ+XHJcblx0aW1wbGVtZW50cyBPbkluaXRcclxue1xyXG5cdHZpc2libGUgPSB0cnVlO1xyXG5cdHNlbGVjdGFibGUgPSB0cnVlO1xyXG5cdHJlbW92YWJsZSA9IHRydWU7XHJcblx0c2F2aW5nID0gZmFsc2U7XHJcblx0Y3JlYXRlZm9ybTogRm9ybUdyb3VwO1xyXG5cdHJlbGF0ZWRfY29ycjogYW55W10gPSBbXTtcclxuXHRleGlzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGRvY3VtZW50TGlzdCA9IFtdO1xyXG5cdGV4aXN0X3JlbGF0aW9uc19saXN0OiBhbnlbXSA9IFtdO1xyXG5cdGNvcnJlc3BvbmRhbmNlSWQ7XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcblx0XHRwcml2YXRlIGNvcnJlc3N2YzogQ29ycmVzcG9uZGVuY2VSZWxhdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRvYXN0cjogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuXHRcdHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb3JyZXNwb25kZW5jZVJlbGF0aW9uQ3JlYXRlRm9ybUNvbXBvbmVudD4sXHJcblx0XHRASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuXHRcdGluamVjdG9yOiBJbmplY3RvclxyXG5cdCkge1xyXG5cdFx0c3VwZXIoaW5qZWN0b3IpO1xyXG5cdH1cclxuXHJcblx0LyoqZGlhbG9nIGFjdGlvbnMgKi9cclxuXHRvblNhdmVDbGljazogRGlhbG9nQWN0aW9uVHlwZSA9ICgpID0+IHtcclxuXHRcdHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuXHRcdHJldHVybiB0aGlzLmNvcnJlc3N2Y1xyXG5cdFx0XHQuY3JlYXRlX05hbWVkX1JlbGF0aW9uKFxyXG5cdFx0XHRcdHRoaXMuZGF0YS5jb3JyX2lkLFxyXG5cdFx0XHRcdHRoaXMuY3JlYXRlZm9ybS52YWx1ZS5yZWxhdGlvbm5hbWUsXHJcblx0XHRcdFx0dGhpcy5yZWxhdGVkX2NvcnIubWFwKChjb3JyZSkgPT4gY29ycmUuaWQpXHJcblx0XHRcdClcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0dGFwKFxyXG5cdFx0XHRcdFx0KGRhdGEpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKGRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmNvcnJlc3N2Yy5nZXRVcGRhdGVkUmVsYXRpb24ubmV4dCgpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudG9hc3RyLnNob3coJ3N1Y2Nlc3MnLCAnc3VjY2VzcycsICdSRUxBVElPTl9BRERFRCcpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHQoZXJyKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc2F2aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMudG9hc3RyLnNob3coXHJcblx0XHRcdFx0XHRcdFx0J2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHQnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRcdGVyci5yZXQubWVzc2FnZSA/IGBlcnJvcnMuJHtlcnIucmV0LmNvZGV9YCA6ICdnZW5lcmljRXJyb3InXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpO1xyXG5cdFx0Ly8gdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG5cdFx0Ly8gICBkb2NzOiB0aGlzLnJlbGF0ZWRfY29yci5tYXAoKGNvcnJlKSA9PiBjb3JyZS5pZCksXHJcblx0XHQvLyAgIHJlbGF0aW9ubmFtZTogdGhpcy5jcmVhdGVmb3JtLnZhbHVlLnJlbGF0aW9ubmFtZSxcclxuXHRcdC8vIH0pO1xyXG5cdH07XHJcblxyXG5cdG9uQ2xvc2VvQ2xpY2soKSB7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG5cdEBWaWV3Q2hpbGQoJ2F1dG8nKSBhdXRvO1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5leGlzdF9yZWxhdGlvbnNfbGlzdCA9IHRoaXMuZGF0YS5leGlzdF9yZWxhdGlvbnNfbGlzdDtcclxuXHRcdHRoaXMuY29ycmVzcG9uZGFuY2VJZCA9IHRoaXMuZGF0YS5jb3JyZXNwb25kYW5jZS51aWQ7XHJcblx0XHRjb25zb2xlLmxvZygncmVsYXRlZCcsIHRoaXMuZGF0YSk7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi51cGRhdGVTaXplKCc1MCUnLCAnODUlJyk7XHJcblx0XHR0aGlzLmNyZWF0ZWZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cCh7XHJcblx0XHRcdHJlbGF0aW9ubmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRvbl9yZW1vdmVfcmVsYXRpb25fQ2hpcChyZWxhdGlvbikge1xyXG5cdFx0dGhpcy5yZWxhdGVkX2NvcnIuc3BsaWNlKHRoaXMucmVsYXRlZF9jb3JyLmluZGV4T2YocmVsYXRpb24pLCAxKTtcclxuXHR9XHJcblxyXG5cdC8qKm5nLUF1dG9jb21wbGV0ZSByZWxhdGVkIGZ1bmN0aW9ucyAqL1xyXG5cdGFsd2F5c29wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGNsZWFyU2VyYWNoSW5wdXQoKSB7XHJcblx0XHR0aGlzLmRvY3VtZW50TGlzdCA9IFtdO1xyXG5cdFx0aWYgKHRoaXMuYXV0bykgdGhpcy5hdXRvLnF1ZXJ5ID0gJyc7XHJcblx0fVxyXG5cclxuXHRpc19yZWxhdGlvbl9leGlzdChyZWxhdGlvbik6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKHRoaXMuZXhpc3RfcmVsYXRpb25zX2xpc3QubGVuZ3RoID09IDApIHJldHVybiBmYWxzZTtcclxuXHRcdGxldCBleGlzdF9yZWxhdGlvbiA9IHRoaXMuZXhpc3RfcmVsYXRpb25zX2xpc3QuZmlsdGVyKFxyXG5cdFx0XHQoZXhpc3RfcmVsYXRpb24pID0+XHJcblx0XHRcdFx0ZXhpc3RfcmVsYXRpb24ucmVsYXRpb25JZCA9PT0gdGhpcy5jcmVhdGVmb3JtLnZhbHVlLnJlbGF0aW9ubmFtZSAmJlxyXG5cdFx0XHRcdGV4aXN0X3JlbGF0aW9uLnVpZCA9PT0gcmVsYXRpb24uaWRcclxuXHRcdCk7XHJcblx0XHR0aGlzLmV4aXN0ID0gZXhpc3RfcmVsYXRpb24ubGVuZ3RoID4gMDtcclxuXHRcdHJldHVybiB0aGlzLmV4aXN0O1xyXG5cdH1cclxuXHJcblx0aXNfY29ycmVzcF9hZGRlZChjb3JyZXNwKSB7XHJcblx0XHRsZXQgZXhpc3RfY29ycmVzcCA9IHRoaXMucmVsYXRlZF9jb3JyLmZpbHRlcigoZXhpc3RfY29ycmVzcCkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gZXhpc3RfY29ycmVzcC5pZCA9PT0gY29ycmVzcC5pZDtcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIGV4aXN0X2NvcnJlc3AubGVuZ3RoID4gMDtcclxuXHR9XHJcblx0c2VsZWN0SXRlbShpdGVtKSB7XHJcblx0XHR0aGlzLmF1dG8ucXVlcnkgPSB0aGlzLmF1dG8udG9IaWdobGlnaHQ7XHJcblx0XHRpZiAodGhpcy5pc19yZWxhdGlvbl9leGlzdChpdGVtKSkgcmV0dXJuO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy5pc19jb3JyZXNwX2FkZGVkKGl0ZW0pKSByZXR1cm47XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0dGhpcy5yZWxhdGVkX2NvcnIucHVzaChpdGVtKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGtlZXBfQXV0b2NvbXBsZXRlX1Jlc3VsdHNfT3BlbigpIHtcclxuXHRcdGlmICh0aGlzLmFsd2F5c29wZW5lZCkge1xyXG5cdFx0XHR0aGlzLmF1dG8uZmlsdGVyZWRMaXN0ID0gdGhpcy5kb2N1bWVudExpc3Q7XHJcblx0XHRcdHRoaXMuYXV0by5pc09wZW4gPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmF1dG8uaXNGb2N1c2VkID0gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uU2VhcmNoSW5wdXRDaGFuZ2UodmFsOiBzdHJpbmcpIHtcclxuXHRcdGlmICh2YWw/Lmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuY29ycmVzc3ZjLnNlYXJjaCh2YWwsICcnLCAncmVsYXRpb25GaWxlJykuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdkb2N1bWVudExpc3QnLCBkYXRhKTtcclxuXHRcdFx0dGhpcy5kb2N1bWVudExpc3QgPSBkYXRhLmZpbHRlcigoY29ycmVzcG9uZGFuY2UpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb3JyZXNwb25kYW5jZUlkICE9IGNvcnJlc3BvbmRhbmNlLmlkO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5hbHdheXNvcGVuZWQgPSB0aGlzLmRvY3VtZW50TGlzdC5sZW5ndGggPiAwO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5kb2N1bWVudExpc3Q7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0ZGlzYWJsZUZpbHRlciA9IChpdGVtczogYW55W10pID0+IGl0ZW1zO1xyXG5cclxuXHRpbnB1dENsZWFyZWQoKSB7XHJcblx0XHR0aGlzLmRvY3VtZW50TGlzdCA9IFtdO1xyXG5cdFx0dGhpcy5hbHdheXNvcGVuZWQgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHJlc2V0KCkge1xyXG5cdFx0dGhpcy5yZWxhdGVkX2NvcnIgPSBbXTtcclxuXHRcdHRoaXMuY2xlYXJTZXJhY2hJbnB1dCgpO1xyXG5cdFx0dGhpcy5leGlzdCA9IGZhbHNlO1xyXG5cdH1cclxufVxyXG4iLCI8bmRmLW51eGVvLWRpYWxvZyBkaWFsb2dUaXRsZT1cInt7ICdjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5hZGQnIHwgdHJhbnNsYXRlIH19XCI+XHJcblx0PG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XHJcblx0XHQ8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBbZm9ybUdyb3VwXT1cImNyZWF0ZWZvcm1cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInZvY2FidWxhcnktbGlzdFwiPlxyXG5cdFx0XHRcdDxhcHAtZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbVxyXG5cdFx0XHRcdFx0W2xhYmVsXT1cIidjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5yZWxhdGlvbi10eXBlJ1wiXHJcblx0XHRcdFx0XHRbYmluZExhYmVsXT1cIidsYWJlbCdcIlxyXG5cdFx0XHRcdFx0W2JpbmRWYWx1ZV09XCInaWQnXCJcclxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwie3sgJ1ZPQ0FCVUxBUlkuU0VMRUNUX0lURU0nIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFttdWx0aXBsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbY2xvc2VPblNlbGVjdF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFtoaWRlU2VsZWN0ZWRJdGVtc109XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbdm9jYWJ1bGFyeVR5cGVdPVwiJ1ZPQ19Db3JyZXNwb25kZW5jZVJlbGF0aW9uc05hbWVzJ1wiXHJcblx0XHRcdFx0XHRmb3JtQ29udHJvbE5hbWU9XCJyZWxhdGlvbm5hbWVcIlxyXG5cdFx0XHRcdFx0KG9uU2VsZWN0aW5nKT1cInJlc2V0KClcIlxyXG5cdFx0XHRcdD5cclxuXHRcdFx0XHQ8L2FwcC1keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCIgKm5nSWY9XCJjcmVhdGVmb3JtPy52YWx1ZS5yZWxhdGlvbm5hbWVcIj5cclxuXHRcdFx0XHQ8bmctYXV0b2NvbXBsZXRlXHJcblx0XHRcdFx0XHQjYXV0b1xyXG5cdFx0XHRcdFx0W2RhdGFdPVwiZG9jdW1lbnRMaXN0XCJcclxuXHRcdFx0XHRcdFtzZWFyY2hLZXl3b3JkXT1cIidmaWx0ZXInXCJcclxuXHRcdFx0XHRcdChzZWxlY3RlZCk9XCJzZWxlY3RJdGVtKCRldmVudClcIlxyXG5cdFx0XHRcdFx0KGlucHV0Q2hhbmdlZCk9XCJvblNlYXJjaElucHV0Q2hhbmdlKCRldmVudClcIlxyXG5cdFx0XHRcdFx0W2N1c3RvbUZpbHRlcl09XCJkaXNhYmxlRmlsdGVyXCJcclxuXHRcdFx0XHRcdChjbG9zZWQpPVwia2VlcF9BdXRvY29tcGxldGVfUmVzdWx0c19PcGVuKClcIlxyXG5cdFx0XHRcdFx0W2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25vdEZvdW5kVGVtcGxhdGVdPVwibm90Rm91bmRUZW1wbGF0ZVwiXHJcblx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwiJ2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLnNlYXJjaGJ5JyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFx0XHRbZGVib3VuY2VUaW1lXT1cIjEwMDBcIlxyXG5cdFx0XHRcdFx0W2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG5cdFx0XHRcdFx0KGlucHV0Q2xlYXJlZCk9XCJpbnB1dENsZWFyZWQoKVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbmctYXV0b2NvbXBsZXRlPlxyXG5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbT5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxzcGFuPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vdEZvdW5kVGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8ZGl2Pnt7ICdjb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5ub3Rmb3VuZCcgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2hpcC1saXN0XCIgKm5nSWY9XCJyZWxhdGVkX2NvcnIubGVuZ3RoID4gMFwiPlxyXG5cdFx0XHRcdFx0PG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0IGFyaWEtbGFiZWw9XCJjb3JyIHNlbGVjdGlvblwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWNoaXBcclxuXHRcdFx0XHRcdFx0XHQqbmdGb3I9XCJsZXQgY29yciBvZiByZWxhdGVkX2NvcnJcIlxyXG5cdFx0XHRcdFx0XHRcdFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIlxyXG5cdFx0XHRcdFx0XHRcdFtyZW1vdmFibGVdPVwicmVtb3ZhYmxlXCJcclxuXHRcdFx0XHRcdFx0XHQocmVtb3ZlZCk9XCJvbl9yZW1vdmVfcmVsYXRpb25fQ2hpcChjb3JyKVwiXHJcblx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHR7eyBjb3JyLnRpdGxlIH19XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1pY29uIG1hdENoaXBSZW1vdmUgKm5nSWY9XCJyZW1vdmFibGVcIj5jYW5jZWw8L21hdC1pY29uPlxyXG5cdFx0XHRcdFx0XHQ8L21hdC1jaGlwPlxyXG5cdFx0XHRcdFx0PC9tYXQtY2hpcC1saXN0PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJleGlzdC1yZWxhdGlvblwiPlxyXG5cdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJleGlzdFwiPlxyXG5cdFx0XHRcdFx0XHR7eyAnY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uZXhpc3QnIHwgdHJhbnNsYXRlIH19PC9zcGFuXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PG5nLXRlbXBsYXRlICNhY3Rpb25zVGVtcGxhdGUgbGV0LWRpYWxvZz1cImRpYWxvZ1wiPlxyXG5cdFx0PGJ1dHRvblxyXG5cdFx0XHRjbGFzcz1cInN1Ym1pc3Npb24tYnV0dG9uXCJcclxuXHRcdFx0KGNsaWNrKT1cImRpYWxvZy5leGVjdXRlQWN0aW9uKG9uU2F2ZUNsaWNrKVwiXHJcblx0XHRcdFtkaXNhYmxlZF09XCJcclxuXHRcdFx0XHQhdGhpcy5jcmVhdGVmb3JtLmNvbnRyb2xzLnJlbGF0aW9ubmFtZS52YWxpZCB8fCByZWxhdGVkX2NvcnIubGVuZ3RoID09IDBcclxuXHRcdFx0XCJcclxuXHRcdD5cclxuXHRcdFx0PHNwYW4+e3sgJ2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLnNhdmUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cdFx0PC9idXR0b24+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuPC9uZGYtbnV4ZW8tZGlhbG9nPlxyXG4iXX0=