nuxeo-development-framework 4.3.1 → 4.3.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 (214) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +4365 -3037
  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 +135 -0
  8. package/esm2015/lib/components/charts/components/data-chart.component.js +169 -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 +10 -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 +25 -0
  22. package/esm2015/lib/components/charts/plugins/doughnut-empty-state.js +34 -0
  23. package/esm2015/lib/components/charts/plugins/index.js +4 -0
  24. package/esm2015/lib/components/charts/plugins/legend-margin.js +16 -0
  25. package/esm2015/lib/components/charts/services/index.js +2 -0
  26. package/esm2015/lib/components/charts/services/statistic.service.js +75 -0
  27. package/esm2015/lib/components/charts/utility/colors.js +79 -0
  28. package/esm2015/lib/components/charts/utility/common.js +7 -0
  29. package/esm2015/lib/components/charts/utility/index.js +3 -0
  30. package/esm2015/lib/components/comments/comments.module.js +9 -5
  31. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +30 -23
  32. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +28 -34
  33. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +22 -22
  34. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +16 -18
  35. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +6 -6
  36. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +3 -2
  37. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +33 -29
  38. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +32 -24
  39. package/esm2015/lib/components/diagrams/components/connection-label.component.js +1 -1
  40. package/esm2015/lib/components/diagrams/directive/diagram.directive.js +2 -3
  41. package/esm2015/lib/components/diagrams/editor/customize.js +11 -14
  42. package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +21 -34
  43. package/esm2015/lib/components/diagrams/editor/path-plugin.js +11 -10
  44. package/esm2015/lib/components/diagrams/models/base-node.model.js +2 -1
  45. package/esm2015/lib/components/diagrams/models/connection.model.js +1 -1
  46. package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
  47. package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
  48. package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
  49. package/esm2015/lib/components/diagrams/utilities/random.js +9 -3
  50. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +9 -11
  51. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +17 -7
  52. package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
  53. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +45 -40
  54. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +21 -17
  55. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +98 -92
  56. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +22 -10
  57. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +8 -4
  58. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +28 -29
  59. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +16 -3
  60. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +26 -18
  61. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +2 -2
  62. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -2
  63. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +13 -10
  64. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +3 -3
  65. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +68 -29
  66. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +60 -42
  67. package/esm2015/lib/components/file-manger/components/copy/copy.component.js +66 -36
  68. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +40 -13
  69. package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +238 -200
  70. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +14 -12
  71. package/esm2015/lib/components/file-manger/components/delete/delete.component.js +49 -20
  72. package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +45 -43
  73. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +63 -36
  74. package/esm2015/lib/components/file-manger/components/move/move.component.js +61 -31
  75. package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +81 -81
  76. package/esm2015/lib/components/file-manger/components/rename/rename.component.js +58 -30
  77. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +99 -66
  78. package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +95 -75
  79. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +15 -11
  80. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +54 -23
  81. package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +24 -24
  82. package/esm2015/lib/components/file-manger/file-manager.abstract.js +266 -264
  83. package/esm2015/lib/components/file-manger/file-manger.module.js +39 -35
  84. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  85. package/esm2015/lib/components/notifications/components/base-notifications.component.js +2 -16
  86. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +3 -3
  87. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +24 -4
  88. package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +3 -2
  89. package/esm2015/lib/components/notifications/models/notification-message.mode.js +1 -1
  90. package/esm2015/lib/components/notifications/models/notifications-list-options.js +1 -1
  91. package/esm2015/lib/components/notifications/services/notifications.service.js +23 -17
  92. package/esm2015/lib/components/notifications/services/socket.service.js +13 -5
  93. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +107 -90
  94. package/esm2015/lib/components/permissions/permissions/permissions.component.js +100 -57
  95. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +36 -52
  96. package/esm2015/lib/components/permissions/permissions.module.js +23 -7
  97. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
  98. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +37 -0
  99. package/esm2015/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.js +88 -0
  100. package/esm2015/lib/components/table/dynamic-component.js +59 -0
  101. package/esm2015/lib/components/table/page-sizes-list/page-sizes-list.component.js +38 -0
  102. package/esm2015/lib/components/table/table/table.component.js +39 -21
  103. package/esm2015/lib/components/table/table.module.js +22 -18
  104. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +11 -6
  105. package/esm2015/lib/core/services/callApi/call-api.service.js +23 -6
  106. package/esm2015/lib/shared/components/base/base-selector.component.js +1 -1
  107. package/esm2015/lib/shared/components/base/base.component.js +5 -5
  108. package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +1 -1
  109. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +8 -4
  110. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +11 -7
  111. package/esm2015/lib/shared/services/base/http-base.service.js +10 -19
  112. package/esm2015/lib/shared-services/dialog-mangment.service.js +66 -21
  113. package/esm2015/lib/shared-services/shared-docs.service.js +20 -26
  114. package/esm2015/public-api.js +8 -2
  115. package/fesm2015/nuxeo-development-framework.js +3555 -2277
  116. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  117. package/lib/components/charts/chart.const.d.ts +2 -0
  118. package/lib/components/charts/chart.token.d.ts +8 -0
  119. package/lib/components/charts/charts.module.d.ts +9 -0
  120. package/lib/components/charts/components/base-chart.component.d.ts +21 -0
  121. package/lib/components/charts/components/chart.component.d.ts +28 -0
  122. package/lib/components/charts/components/data-chart.component.d.ts +39 -0
  123. package/lib/components/charts/components/index.d.ts +3 -0
  124. package/lib/components/charts/defaults/bar.d.ts +2 -0
  125. package/lib/components/charts/defaults/doughnut.d.ts +2 -0
  126. package/lib/components/charts/defaults/index.d.ts +4 -0
  127. package/lib/components/charts/defaults/line.d.ts +2 -0
  128. package/lib/components/charts/defaults/pie.d.ts +2 -0
  129. package/lib/components/charts/index.d.ts +9 -0
  130. package/lib/components/charts/models/index.d.ts +4 -0
  131. package/lib/components/charts/models/options.d.ts +12 -0
  132. package/lib/components/charts/models/plugins-options.d.ts +18 -0
  133. package/lib/components/charts/models/response.d.ts +5 -0
  134. package/lib/components/charts/models/statistic-request-config.d.ts +30 -0
  135. package/lib/components/charts/plugins/doughnut-center-text.d.ts +2 -0
  136. package/lib/components/charts/plugins/doughnut-empty-state.d.ts +2 -0
  137. package/lib/components/charts/plugins/index.d.ts +3 -0
  138. package/lib/components/charts/plugins/legend-margin.d.ts +2 -0
  139. package/lib/components/charts/services/index.d.ts +1 -0
  140. package/lib/components/charts/services/statistic.service.d.ts +23 -0
  141. package/lib/components/charts/utility/colors.d.ts +11 -0
  142. package/lib/components/charts/utility/common.d.ts +4 -0
  143. package/lib/components/charts/utility/index.d.ts +2 -0
  144. package/lib/components/comments/comments.module.d.ts +2 -1
  145. package/lib/components/comments/components/comment-item/comment-item.component.d.ts +3 -1
  146. package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +8 -5
  147. package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +8 -8
  148. package/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.d.ts +5 -5
  149. package/lib/components/correspondence-relation/correspondence-relation.module.d.ts +3 -2
  150. package/lib/components/diagrams/editor/customize.d.ts +7 -7
  151. package/lib/components/diagrams/editor/overrides/connection-path.transformers.d.ts +2 -5
  152. package/lib/components/diagrams/models/base-node.model.d.ts +1 -1
  153. package/lib/components/diagrams/models/connection.model.d.ts +2 -1
  154. package/lib/components/diagrams/types/common.type.d.ts +4 -0
  155. package/lib/components/diagrams/types/diagram-config.type.d.ts +7 -7
  156. package/lib/components/diagrams/types/node-definition.d.ts +1 -0
  157. package/lib/components/diagrams/utilities/random.d.ts +1 -1
  158. package/lib/components/documents/components/document-upload/document-upload.component.d.ts +3 -1
  159. package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +11 -10
  160. package/lib/components/dynamic-chart/dynamic-chart.module.d.ts +5 -6
  161. package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.d.ts +6 -2
  162. package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts +2 -1
  163. package/lib/components/dynamic-form/components/department-form/department-form.component.d.ts +4 -4
  164. package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +5 -1
  165. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts +3 -1
  166. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +5 -1
  167. package/lib/components/dynamic-form/dynamic-form.module.d.ts +2 -1
  168. package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +29 -11
  169. package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts +11 -5
  170. package/lib/components/file-manger/components/copy/copy.component.d.ts +11 -4
  171. package/lib/components/file-manger/components/create-directory/create-directory.component.d.ts +9 -4
  172. package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +13 -19
  173. package/lib/components/file-manger/components/creation-type/creation-type.component.d.ts +6 -4
  174. package/lib/components/file-manger/components/delete/delete.component.d.ts +11 -4
  175. package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts +9 -11
  176. package/lib/components/file-manger/components/loan-request/loan-request.component.d.ts +11 -5
  177. package/lib/components/file-manger/components/move/move.component.d.ts +11 -4
  178. package/lib/components/file-manger/components/publish-dialog/publish-dialog.component.d.ts +12 -10
  179. package/lib/components/file-manger/components/rename/rename.component.d.ts +11 -5
  180. package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +9 -8
  181. package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts +6 -7
  182. package/lib/components/file-manger/components/template-modal/template-modal.component.d.ts +4 -3
  183. package/lib/components/file-manger/components/transfer-doc/transfer-doc.component.d.ts +11 -4
  184. package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts +9 -8
  185. package/lib/components/file-manger/file-manager.abstract.d.ts +24 -22
  186. package/lib/components/file-manger/file-manger.module.d.ts +2 -1
  187. package/lib/components/notifications/components/base-notifications.component.d.ts +2 -8
  188. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +1 -1
  189. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +4 -1
  190. package/lib/components/notifications/models/notification-message.mode.d.ts +1 -0
  191. package/lib/components/notifications/models/notifications-list-options.d.ts +4 -0
  192. package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +8 -6
  193. package/lib/components/permissions/permissions/permissions.component.d.ts +3 -1
  194. package/lib/components/permissions/permissions-template/permissions-template.component.d.ts +3 -3
  195. package/lib/components/permissions/permissions.module.d.ts +2 -1
  196. package/lib/components/spell-checker-field/spell-checker-field.module.d.ts +10 -0
  197. package/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.d.ts +24 -0
  198. package/lib/components/table/dynamic-component.d.ts +20 -0
  199. package/lib/components/table/page-sizes-list/page-sizes-list.component.d.ts +15 -0
  200. package/lib/components/table/table/table.component.d.ts +15 -6
  201. package/lib/components/table/table.module.d.ts +14 -10
  202. package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +2 -2
  203. package/lib/core/services/callApi/call-api.service.d.ts +8 -1
  204. package/lib/shared/components/base/base-selector.component.d.ts +4 -4
  205. package/lib/shared/components/base/base.component.d.ts +5 -5
  206. package/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.d.ts +2 -1
  207. package/lib/shared/components/nuxeo-dialog/nuxeo.dialog.d.ts +2 -1
  208. package/lib/shared/services/base/http-base.service.d.ts +3 -1
  209. package/lib/shared-services/dialog-mangment.service.d.ts +5 -1
  210. package/lib/shared-services/shared-docs.service.d.ts +3 -1
  211. package/package.json +3 -4
  212. package/public-api.d.ts +7 -1
  213. package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +0 -164
  214. package/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.d.ts +0 -33
@@ -1,41 +1,79 @@
1
- import { __awaiter } from "tslib";
2
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
2
  import { DxFormComponent } from 'devextreme-angular';
4
3
  import { concat, of, Subject } from 'rxjs';
5
4
  import { debounceTime, distinctUntilChanged, switchMap, catchError, tap } from 'rxjs/operators';
5
+ import { NdfNuxeoDialog } from '../../../../shared/components/nuxeo-dialog/nuxeo.dialog';
6
+ import { BaseComponent } from '../../../../shared/components/base/base.component';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "../../../../shared-services/file-manager.service";
8
9
  import * as i2 from "../../../custom-toastr/services/custom-toastr.service";
9
- import * as i3 from "devextreme-angular";
10
- import * as i4 from "devextreme-angular/ui/nested";
11
- import * as i5 from "@ng-select/ng-select";
12
- import * as i6 from "devextreme-angular/core";
10
+ import * as i3 from "../../../../shared/components/nuxeo-dialog/services/nuxeo-dialog.service";
11
+ import * as i4 from "devextreme-angular";
12
+ import * as i5 from "devextreme-angular/ui/nested";
13
+ import * as i6 from "@ng-select/ng-select";
13
14
  import * as i7 from "@angular/forms";
14
15
  import * as i8 from "@angular/common";
15
16
  import * as i9 from "@ngx-translate/core";
16
- export class AddToCollectionComponent {
17
- constructor(fileManagerService, customToastrService) {
17
+ export class AddToCollectionComponent extends BaseComponent {
18
+ constructor(fileManagerService, customToastrService, nuxeoDialogService, injector) {
19
+ super(injector);
18
20
  this.fileManagerService = fileManagerService;
19
21
  this.customToastrService = customToastrService;
22
+ this.nuxeoDialogService = nuxeoDialogService;
20
23
  this.visibleChange = new EventEmitter();
21
24
  this.rtlEnabled = false;
22
- this.loading = false;
23
25
  this.isSelected = true;
24
26
  this.tagsInput$ = new Subject();
25
27
  this.tagsLoading = false;
26
28
  this._visible = false;
29
+ this.onFormCollectionSubmit = (e) => {
30
+ e.preventDefault();
31
+ this.loading = true;
32
+ return this.fileManagerService
33
+ .addToCollection(this.selectedItems, this.collectionid)
34
+ .pipe(tap((res) => {
35
+ this.loading = false;
36
+ this.form.instance.resetValues();
37
+ this.selectedTags = null;
38
+ this.visible = false;
39
+ this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION');
40
+ }, (err) => {
41
+ this.loading = false;
42
+ this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR');
43
+ }));
44
+ };
27
45
  }
28
46
  set visible(value) {
29
47
  if (this._visible === value) {
30
48
  return;
31
49
  }
50
+ if (value) {
51
+ this.openDialog();
52
+ }
32
53
  this._visible = value;
33
54
  this.visibleChange.emit(this._visible);
34
55
  }
35
56
  get visible() {
36
57
  return this._visible;
37
58
  }
38
- ngOnInit() {
59
+ ngOnInit() { }
60
+ openDialog() {
61
+ const options = {
62
+ component: NdfNuxeoDialog,
63
+ //TODO [Asem] how to put the wrapper ID
64
+ panelClass: 'popUpParent',
65
+ config: {
66
+ title: this.translateService.instant('FILE_MANAGER.ADD_TO_COLLECTION'),
67
+ contentTemplate: this.contentTemplate,
68
+ actionsTemplate: this.actionsTemplate
69
+ }
70
+ };
71
+ this.nuxeoDialogService
72
+ .open(options)
73
+ .afterClosed()
74
+ .subscribe((res) => {
75
+ this.visible = false;
76
+ });
39
77
  }
40
78
  emitSelection(event) {
41
79
  if (this.isSelected) {
@@ -53,7 +91,7 @@ export class AddToCollectionComponent {
53
91
  this.isSelected = false;
54
92
  let mycategories = [];
55
93
  this.items$ = concat(this.fileManagerService.getCollectionFromPP(searchterm).pipe(switchMap((res) => {
56
- res.entries.map(entry => {
94
+ res.entries.map((entry) => {
57
95
  mycategories.push({
58
96
  displayLabel: entry.title,
59
97
  id: entry.uid,
@@ -64,15 +102,12 @@ export class AddToCollectionComponent {
64
102
  return of(mycategories);
65
103
  })), // default items
66
104
  this.tagsInput$.pipe(debounceTime(200), distinctUntilChanged(), tap(() => (this.tagsLoading = true)), switchMap((searchterm) => {
67
- // if (searchterm && searchterm.length) {
68
- return this.fileManagerService
69
- .getCollectionFromPP(searchterm)
70
- .pipe(catchError(() => of([])), // empty list on error
105
+ return this.fileManagerService.getCollectionFromPP(searchterm).pipe(catchError(() => of([])), // empty list on error
71
106
  switchMap((searchCat) => {
72
107
  let myInerCateg = [];
73
108
  this.tagsLoading = false;
74
109
  this.isSelected = true;
75
- searchCat.entries.map(entry => {
110
+ searchCat.entries.map((entry) => {
76
111
  myInerCateg.push({
77
112
  displayLabel: entry.title,
78
113
  id: entry.uid,
@@ -82,34 +117,11 @@ export class AddToCollectionComponent {
82
117
  });
83
118
  return of(myInerCateg);
84
119
  }));
85
- // } else {
86
- // this.tagsLoading = false;
87
- // this.isSelected = true;
88
- // return of();
89
- // }
90
120
  })));
91
121
  }
92
- onFormCollectionSubmit(e) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- e.preventDefault();
95
- this.loading = true;
96
- this.fileManagerService
97
- .addToCollection(this.selectedItems, this.collectionid)
98
- .subscribe((res) => {
99
- this.loading = false;
100
- this.form.instance.resetValues();
101
- this.selectedTags = null;
102
- this.visible = false;
103
- this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION');
104
- }, (err) => {
105
- this.loading = false;
106
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_ADDED_TO_COLLECTION_ERROR');
107
- });
108
- });
109
- }
110
122
  }
111
- AddToCollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
112
- AddToCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddToCollectionComponent, selector: "app-add-to-collection", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItems: "selectedItems" }, outputs: { visibleChange: "visibleChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" id=\"photo-popup\" [width]=\"500\" [height]=\"200\"\r\n (onShown)=\"loadItems()\" closeOnOutsideClick=\"true\" title=\"{{ 'FILE_MANAGER.ADD_TO_COLLECTION' | translate }}\"\r\n [(visible)]=\"visible\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <form (submit)=\"onFormCollectionSubmit($event)\">\r\n <dx-form class=\"collection-form-wrapper\" #createForm [formData]=\"formData\" [disabled]=\"loading\">\r\n <dxi-item editorType=\"dxTextBox\">\r\n <ng-select [items]=\"items$ | async\" bindLabel=\"displayLabel\" [addTag]=\"true\"\r\n addTagText=\"Add collection\" [multiple]=\"false\" [hideSelected]=\"true\" [minTermLength]=\"0\"\r\n [loading]=\"tagsLoading\" typeToSearchText=\"search\" [typeahead]=\"tagsInput$\"\r\n [(ngModel)]=\"selectedTags\" required placeholder=\"{{\r\n 'VOCABULARY.SELECT_ITEM' | translate\r\n }}\" name=\"selectedItem\" (change)=\"emitSelection($event)\">\r\n </ng-select>\r\n </dxi-item>\r\n <dxi-item itemType=\"button\">\r\n <dxo-button-options width=\"30%\" type=\"danger\" [useSubmitBehavior]=\"true\"\r\n [template]=\"'addToCollectionTemplate'\">\r\n </dxo-button-options>\r\n </dxi-item>\r\n <ng-container *dxTemplate=\"let item of 'addToCollectionTemplate'\">\r\n <span class=\"dx-button-text\">\r\n <ng-container *ngIf=\"loading; else notLoading\">\r\n <dx-load-indicator width=\"24px\" height=\"24px\" [visible]=\"true\"></dx-load-indicator>\r\n </ng-container>\r\n <ng-template #notLoading>{{\r\n \"FILE_MANAGER.ADD\" | translate\r\n }}</ng-template>\r\n </span>\r\n </ng-container>\r\n </dx-form>\r\n </form>\r\n </div>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { type: i4.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { type: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i4.DxoButtonOptionsComponent, selector: "dxo-button-options", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"] }], directives: [{ type: i6.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i9.TranslatePipe, "async": i8.AsyncPipe } });
123
+ AddToCollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }, { token: i3.NuxeoDialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
124
+ AddToCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AddToCollectionComponent, selector: "app-add-to-collection", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItems: "selectedItems" }, outputs: { visibleChange: "visibleChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #contentTemplate>\r\n\t<form>\r\n\t\t<dx-form\r\n\t\t\tclass=\"collection-form-wrapper\"\r\n\t\t\t#createForm\r\n\t\t\t[formData]=\"formData\"\r\n\t\t\t[disabled]=\"loading\"\r\n\t\t>\r\n\t\t\t<dxi-item editorType=\"dxTextBox\">\r\n\t\t\t\t<ng-select\r\n\t\t\t\t\t[items]=\"items$ | async\"\r\n\t\t\t\t\tbindLabel=\"displayLabel\"\r\n\t\t\t\t\t[addTag]=\"true\"\r\n\t\t\t\t\taddTagText=\"Add collection\"\r\n\t\t\t\t\t[multiple]=\"false\"\r\n\t\t\t\t\t[hideSelected]=\"true\"\r\n\t\t\t\t\t[minTermLength]=\"0\"\r\n\t\t\t\t\t[loading]=\"tagsLoading\"\r\n\t\t\t\t\ttypeToSearchText=\"search\"\r\n\t\t\t\t\t[typeahead]=\"tagsInput$\"\r\n\t\t\t\t\t[(ngModel)]=\"selectedTags\"\r\n\t\t\t\t\trequired\r\n\t\t\t\t\tplaceholder=\"{{ 'VOCABULARY.SELECT_ITEM' | translate }}\"\r\n\t\t\t\t\tname=\"selectedItem\"\r\n\t\t\t\t\t(change)=\"emitSelection($event)\"\r\n\t\t\t\t>\r\n\t\t\t\t</ng-select>\r\n\t\t\t</dxi-item>\r\n\t\t</dx-form>\r\n\t</form>\r\n</ng-template>\r\n\r\n<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t<span\r\n\t\tclass=\"dx-button-text\"\r\n\t\t(click)=\"dialog.executeAction(onFormCollectionSubmit, [$event])\"\r\n\t>\r\n\t\t{{ 'FILE_MANAGER.ADD' | translate }}\r\n\t</span>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i4.DxFormComponent, selector: "dx-form", inputs: ["accessKey", "activeStateEnabled", "alignItemLabels", "alignItemLabelsInAllGroups", "colCount", "colCountByScreen", "customizeItem", "disabled", "elementAttr", "focusStateEnabled", "formData", "height", "hint", "hoverStateEnabled", "items", "labelLocation", "labelMode", "minColWidth", "optionalMark", "readOnly", "requiredMark", "requiredMessage", "rtlEnabled", "screenByWidth", "scrollingEnabled", "showColonAfterLabel", "showOptionalMark", "showRequiredMark", "showValidationSummary", "tabIndex", "validationGroup", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onEditorEnterKey", "onFieldDataChanged", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "alignItemLabelsChange", "alignItemLabelsInAllGroupsChange", "colCountChange", "colCountByScreenChange", "customizeItemChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formDataChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemsChange", "labelLocationChange", "labelModeChange", "minColWidthChange", "optionalMarkChange", "readOnlyChange", "requiredMarkChange", "requiredMessageChange", "rtlEnabledChange", "screenByWidthChange", "scrollingEnabledChange", "showColonAfterLabelChange", "showOptionalMarkChange", "showRequiredMarkChange", "showValidationSummaryChange", "tabIndexChange", "validationGroupChange", "visibleChange", "widthChange"] }, { type: i5.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { type: i6.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i8.AsyncPipe, "translate": i9.TranslatePipe } });
113
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AddToCollectionComponent, decorators: [{
114
126
  type: Component,
115
127
  args: [{
@@ -117,9 +129,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
117
129
  templateUrl: './add-to-collection.component.html',
118
130
  styleUrls: ['./add-to-collection.component.scss']
119
131
  }]
120
- }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }]; }, propDecorators: { form: [{
132
+ }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }, { type: i3.NuxeoDialogService }, { type: i0.Injector }]; }, propDecorators: { form: [{
121
133
  type: ViewChild,
122
134
  args: [DxFormComponent, { static: false }]
135
+ }], contentTemplate: [{
136
+ type: ViewChild,
137
+ args: ['contentTemplate']
138
+ }], actionsTemplate: [{
139
+ type: ViewChild,
140
+ args: ['actionsTemplate']
123
141
  }], visible: [{
124
142
  type: Input
125
143
  }], visibleChange: [{
@@ -129,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
129
147
  }], selectedItems: [{
130
148
  type: Input
131
149
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2FkZC10by1jb2xsZWN0aW9uL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTckcsTUFBTSxPQUFPLHdCQUF3QjtJQTRCbkMsWUFDVSxrQkFBc0MsRUFDcEMsbUJBQXdDO1FBRDFDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWhCcEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXhDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFJbkIsWUFBTyxHQUFHLEtBQUss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ZSxFQUNmLDRDQUE0QyxDQUM3QyxDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFDTixDQUFDO0tBQUE7O3NIQTVIVSx3QkFBd0I7MEdBQXhCLHdCQUF3QiwwT0FDeEIsZUFBZSxnRENiNUIsbW9FQWlDVzs0RkRyQkUsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNsRDsySUFFZ0QsSUFBSTtzQkFBbEQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6QyxPQUFPO3NCQURWLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeEZvcm1Db21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBjb25jYXQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgY2F0Y2hFcnJvciwgdGFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9maWxlLW1hbmFnZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtdG8tY29sbGVjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRUb0NvbGxlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHhGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogRHhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQElucHV0KClcclxuICBydGxFbmFibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEl0ZW1zOiBhbnk7XHJcblxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBjb2xsZWN0aW9uaWQ6IGFueTtcclxuICBzZWxlY3RlZFRhZ3M6IGFueTtcclxuICBpdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIHRhZ3NJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgdGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuICBfdmlzaWJsZSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlXHJcblxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgZW1pdFNlbGVjdGlvbihldmVudCkge1xyXG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVOZXdDb2xsZWN0aW9uKGV2ZW50LmRpc3BsYXlMYWJlbClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29sbGVjdGlvbmlkID0gcmVzLnVpZDtcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB0aGlzLmNvbGxlY3Rpb25pZCA9IGV2ZW50LmlkO1xyXG4gIH1cclxuXHJcbiAgbG9hZEl0ZW1zKCkge1xyXG4gICAgbGV0IHNlYXJjaHRlcm0gPSAnJztcclxuICAgIHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgbGV0IG15Y2F0ZWdvcmllcyA9IFtdO1xyXG4gICAgdGhpcy5pdGVtcyQgPSBjb25jYXQoXHJcbiAgICAgIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSkucGlwZShzd2l0Y2hNYXAoKHJlczphbnkpPT4ge1xyXG4gICAgICAgIHJlcy5lbnRyaWVzLm1hcChlbnRyeSA9PiB7XHJcbiAgICAgICAgICAgICAgICBteWNhdGVnb3JpZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsIDogZW50cnkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWQgOiBlbnRyeS51aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aCxcclxuICAgICAgICAgICAgICAgICAgICBpY29uIDplbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIG9mKG15Y2F0ZWdvcmllcyk7XHJcbiAgICB9KSkgLCAvLyBkZWZhdWx0IGl0ZW1zXHJcbiAgICAgIHRoaXMudGFnc0lucHV0JC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFwKCgpID0+ICh0aGlzLnRhZ3NMb2FkaW5nID0gdHJ1ZSkpLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoc2VhcmNodGVybSkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYgKHNlYXJjaHRlcm0gJiYgc2VhcmNodGVybS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSlcclxuICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSwgLy8gZW1wdHkgbGlzdCBvbiBlcnJvclxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChzZWFyY2hDYXQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgbGV0IG15SW5lckNhdGVnID0gW107XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFnc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgc2VhcmNoQ2F0LmVudHJpZXMubWFwKGVudHJ5ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBteUluZXJDYXRlZy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsIDogZW50cnkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogZW50cnkudWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBlbnRyeS5wYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uIDplbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobXlJbmVyQ2F0ZWcpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgIC8vICAgdGhpcy50YWdzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgLy8gICByZXR1cm4gb2YoKTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25Gb3JtQ29sbGVjdGlvblN1Ym1pdChlKSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuICAgICAgLmFkZFRvQ29sbGVjdGlvbih0aGlzLnNlbGVjdGVkSXRlbXMsIHRoaXMuY29sbGVjdGlvbmlkKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmluc3RhbmNlLnJlc2V0VmFsdWVzKCk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFncyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgICdUT0FTVEVSLlNVQ0NFU1MnLFxyXG4gICAgICAgICAgICAnVE9BU1RFUi5ET0NVTUVOVF9BRERFRF9UT19DT0xMRUNUSU9OJ1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQURERURfVE9fQ09MTEVDVElPTl9FUlJPUidcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJwaG90by1wb3B1cFwiIFt3aWR0aF09XCI1MDBcIiBbaGVpZ2h0XT1cIjIwMFwiXHJcbiAgICAob25TaG93bik9XCJsb2FkSXRlbXMoKVwiIGNsb3NlT25PdXRzaWRlQ2xpY2s9XCJ0cnVlXCIgdGl0bGU9XCJ7eyAnRklMRV9NQU5BR0VSLkFERF9UT19DT0xMRUNUSU9OJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICBbKHZpc2libGUpXT1cInZpc2libGVcIj5cclxuICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8Zm9ybSAoc3VibWl0KT1cIm9uRm9ybUNvbGxlY3Rpb25TdWJtaXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8ZHgtZm9ybSBjbGFzcz1cImNvbGxlY3Rpb24tZm9ybS13cmFwcGVyXCIgI2NyZWF0ZUZvcm0gW2Zvcm1EYXRhXT1cImZvcm1EYXRhXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxkeGktaXRlbSBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIiBiaW5kTGFiZWw9XCJkaXNwbGF5TGFiZWxcIiBbYWRkVGFnXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRUYWdUZXh0PVwiQWRkIGNvbGxlY3Rpb25cIiBbbXVsdGlwbGVdPVwiZmFsc2VcIiBbaGlkZVNlbGVjdGVkXT1cInRydWVcIiBbbWluVGVybUxlbmd0aF09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidGFnc0xvYWRpbmdcIiB0eXBlVG9TZWFyY2hUZXh0PVwic2VhcmNoXCIgW3R5cGVhaGVhZF09XCJ0YWdzSW5wdXQkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRhZ3NcIiByZXF1aXJlZCBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdWT0NBQlVMQVJZLlNFTEVDVF9JVEVNJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIH19XCIgbmFtZT1cInNlbGVjdGVkSXRlbVwiIChjaGFuZ2UpPVwiZW1pdFNlbGVjdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPGR4aS1pdGVtIGl0ZW1UeXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1idXR0b24tb3B0aW9ucyB3aWR0aD1cIjMwJVwiIHR5cGU9XCJkYW5nZXJcIiBbdXNlU3VibWl0QmVoYXZpb3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCInYWRkVG9Db2xsZWN0aW9uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keG8tYnV0dG9uLW9wdGlvbnM+XHJcbiAgICAgICAgICAgICAgICA8L2R4aS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZHhUZW1wbGF0ZT1cImxldCBpdGVtIG9mICdhZGRUb0NvbGxlY3Rpb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImR4LWJ1dHRvbi10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1sb2FkLWluZGljYXRvciB3aWR0aD1cIjI0cHhcIiBoZWlnaHQ9XCIyNHB4XCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHgtbG9hZC1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmc+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRklMRV9NQU5BR0VSLkFERFwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZHgtZm9ybT5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuPC9keC1wb3B1cD4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2FkZC10by1jb2xsZWN0aW9uL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFDTixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsR0FBRyxFQUVILE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFnQzFELFlBQ1Msa0JBQXNDLEVBQ3BDLG1CQUF3QyxFQUMzQyxrQkFBc0MsRUFFN0MsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFD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ZixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDRSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFeEIsT0FBTztzQkFEVixLQUFLO2dCQWVOLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdEluamVjdG9yLFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0Vmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4Rm9ybUNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuXHRkZWJvdW5jZVRpbWUsXHJcblx0ZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcblx0c3dpdGNoTWFwLFxyXG5cdGNhdGNoRXJyb3IsXHJcblx0dGFwLFxyXG5cdG1hcFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE5kZk51eGVvRGlhbG9nIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL251eGVvLmRpYWxvZyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnV4ZW9EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL3NlcnZpY2VzL251eGVvLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1hZGQtdG8tY29sbGVjdGlvbicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FkZC10by1jb2xsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRUb0NvbGxlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkKER4Rm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm06IER4Rm9ybUNvbXBvbmVudDtcclxuXHRAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBWaWV3Q2hpbGQoJ2FjdGlvbnNUZW1wbGF0ZScpIGFjdGlvbnNUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QElucHV0KClcclxuXHRzZXQgdmlzaWJsZSh2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodGhpcy5fdmlzaWJsZSA9PT0gdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHZhbHVlKSB7XHJcblx0XHRcdHRoaXMub3BlbkRpYWxvZygpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG5cdFx0dGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XHJcblx0fVxyXG5cdGdldCB2aXNpYmxlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcblx0fVxyXG5cdEBPdXRwdXQoKVxyXG5cdHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRASW5wdXQoKVxyXG5cdHJ0bEVuYWJsZWQgPSBmYWxzZTtcclxuXHRASW5wdXQoKVxyXG5cdHNlbGVjdGVkSXRlbXM6IGFueTtcclxuXHJcblx0aXNTZWxlY3RlZDogYm9vbGVhbiA9IHRydWU7XHJcblx0Y29sbGVjdGlvbmlkOiBhbnk7XHJcblx0c2VsZWN0ZWRUYWdzOiBhbnk7XHJcblx0aXRlbXMkOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHR0YWdzSW5wdXQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cdHRhZ3NMb2FkaW5nID0gZmFsc2U7XHJcblx0X3Zpc2libGUgPSBmYWxzZTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlOiBGaWxlTWFuYWdlclNlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgY3VzdG9tVG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuXHRcdHB1YmxpYyBudXhlb0RpYWxvZ1NlcnZpY2U6IE51eGVvRGlhbG9nU2VydmljZSxcclxuXHJcblx0XHRpbmplY3RvcjogSW5qZWN0b3JcclxuXHQpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcblx0b3BlbkRpYWxvZygpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG9wdGlvbnM6IERpYWxvZ09wdGlvbnMgPSB7XHJcblx0XHRcdGNvbXBvbmVudDogTmRmTnV4ZW9EaWFsb2csXHJcblx0XHRcdC8vVE9ETyBbQXNlbV0gaG93IHRvIHB1dCB0aGUgd3JhcHBlciBJRFxyXG5cdFx0XHRwYW5lbENsYXNzOiAncG9wVXBQYXJlbnQnLFxyXG5cdFx0XHRjb25maWc6IHtcclxuXHRcdFx0XHR0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZJTEVfTUFOQUdFUi5BRERfVE9fQ09MTEVDVElPTicpLFxyXG5cdFx0XHRcdGNvbnRlbnRUZW1wbGF0ZTogdGhpcy5jb250ZW50VGVtcGxhdGUsXHJcblx0XHRcdFx0YWN0aW9uc1RlbXBsYXRlOiB0aGlzLmFjdGlvbnNUZW1wbGF0ZVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0dGhpcy5udXhlb0RpYWxvZ1NlcnZpY2VcclxuXHRcdFx0Lm9wZW4ob3B0aW9ucylcclxuXHRcdFx0LmFmdGVyQ2xvc2VkKClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy52aXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZW1pdFNlbGVjdGlvbihldmVudCkge1xyXG5cdFx0aWYgKHRoaXMuaXNTZWxlY3RlZCkge1xyXG5cdFx0XHR0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG5cdFx0XHRcdC5jcmVhdGVOZXdDb2xsZWN0aW9uKGV2ZW50LmRpc3BsYXlMYWJlbClcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuY29sbGVjdGlvbmlkID0gcmVzLnVpZDtcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB0aGlzLmNvbGxlY3Rpb25pZCA9IGV2ZW50LmlkO1xyXG5cdH1cclxuXHJcblx0bG9hZEl0ZW1zKCkge1xyXG5cdFx0bGV0IHNlYXJjaHRlcm0gPSAnJztcclxuXHRcdHRoaXMuaXNTZWxlY3RlZCA9IGZhbHNlO1xyXG5cdFx0bGV0IG15Y2F0ZWdvcmllcyA9IFtdO1xyXG5cdFx0dGhpcy5pdGVtcyQgPSBjb25jYXQoXHJcblx0XHRcdHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSkucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRyZXMuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB7XHJcblx0XHRcdFx0XHRcdG15Y2F0ZWdvcmllcy5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5TGFiZWw6IGVudHJ5LnRpdGxlLFxyXG5cdFx0XHRcdFx0XHRcdGlkOiBlbnRyeS51aWQsXHJcblx0XHRcdFx0XHRcdFx0cGF0aDogZW50cnkucGF0aCxcclxuXHRcdFx0XHRcdFx0XHRpY29uOiBlbnRyeS5wcm9wZXJ0aWVzWydjb21tb246aWNvbiddXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRyZXR1cm4gb2YobXljYXRlZ29yaWVzKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpLCAvLyBkZWZhdWx0IGl0ZW1zXHJcblx0XHRcdHRoaXMudGFnc0lucHV0JC5waXBlKFxyXG5cdFx0XHRcdGRlYm91bmNlVGltZSgyMDApLFxyXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcblx0XHRcdFx0dGFwKCgpID0+ICh0aGlzLnRhZ3NMb2FkaW5nID0gdHJ1ZSkpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoc2VhcmNodGVybSkgPT4ge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldENvbGxlY3Rpb25Gcm9tUFAoc2VhcmNodGVybSkucGlwZShcclxuXHRcdFx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLCAvLyBlbXB0eSBsaXN0IG9uIGVycm9yXHJcblx0XHRcdFx0XHRcdHN3aXRjaE1hcCgoc2VhcmNoQ2F0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IG15SW5lckNhdGVnID0gW107XHJcblx0XHRcdFx0XHRcdFx0dGhpcy50YWdzTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0c2VhcmNoQ2F0LmVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0bXlJbmVyQ2F0ZWcucHVzaCh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXlMYWJlbDogZW50cnkudGl0bGUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlkOiBlbnRyeS51aWQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHBhdGg6IGVudHJ5LnBhdGgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb246IGVudHJ5LnByb3BlcnRpZXNbJ2NvbW1vbjppY29uJ11cclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiBvZihteUluZXJDYXRlZyk7XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRvbkZvcm1Db2xsZWN0aW9uU3VibWl0OiBEaWFsb2dBY3Rpb25UeXBlID0gKGUpID0+IHtcclxuXHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0XHRyZXR1cm4gdGhpcy5maWxlTWFuYWdlclNlcnZpY2VcclxuXHRcdFx0LmFkZFRvQ29sbGVjdGlvbih0aGlzLnNlbGVjdGVkSXRlbXMsIHRoaXMuY29sbGVjdGlvbmlkKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHR0YXAoXHJcblx0XHRcdFx0XHQocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZvcm0uaW5zdGFuY2UucmVzZXRWYWx1ZXMoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFRhZ3MgPSBudWxsO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcblx0XHRcdFx0XHRcdFx0J3N1Y2Nlc3MnLFxyXG5cdFx0XHRcdFx0XHRcdCdUT0FTVEVSLlNVQ0NFU1MnLFxyXG5cdFx0XHRcdFx0XHRcdCdUT0FTVEVSLkRPQ1VNRU5UX0FEREVEX1RPX0NPTExFQ1RJT04nXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0KGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcblx0XHRcdFx0XHRcdFx0J2Vycm9yJyxcclxuXHRcdFx0XHRcdFx0XHQnVE9BU1RFUi5FUlJPUicsXHJcblx0XHRcdFx0XHRcdFx0J1RPQVNURVIuRE9DVU1FTlRfQURERURfVE9fQ09MTEVDVElPTl9FUlJPUidcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQpXHJcblx0XHRcdCk7XHJcblx0fTtcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cclxuXHQ8Zm9ybT5cclxuXHRcdDxkeC1mb3JtXHJcblx0XHRcdGNsYXNzPVwiY29sbGVjdGlvbi1mb3JtLXdyYXBwZXJcIlxyXG5cdFx0XHQjY3JlYXRlRm9ybVxyXG5cdFx0XHRbZm9ybURhdGFdPVwiZm9ybURhdGFcIlxyXG5cdFx0XHRbZGlzYWJsZWRdPVwibG9hZGluZ1wiXHJcblx0XHQ+XHJcblx0XHRcdDxkeGktaXRlbSBlZGl0b3JUeXBlPVwiZHhUZXh0Qm94XCI+XHJcblx0XHRcdFx0PG5nLXNlbGVjdFxyXG5cdFx0XHRcdFx0W2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuXHRcdFx0XHRcdGJpbmRMYWJlbD1cImRpc3BsYXlMYWJlbFwiXHJcblx0XHRcdFx0XHRbYWRkVGFnXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0YWRkVGFnVGV4dD1cIkFkZCBjb2xsZWN0aW9uXCJcclxuXHRcdFx0XHRcdFttdWx0aXBsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0W21pblRlcm1MZW5ndGhdPVwiMFwiXHJcblx0XHRcdFx0XHRbbG9hZGluZ109XCJ0YWdzTG9hZGluZ1wiXHJcblx0XHRcdFx0XHR0eXBlVG9TZWFyY2hUZXh0PVwic2VhcmNoXCJcclxuXHRcdFx0XHRcdFt0eXBlYWhlYWRdPVwidGFnc0lucHV0JFwiXHJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFnc1wiXHJcblx0XHRcdFx0XHRyZXF1aXJlZFxyXG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJ7eyAnVk9DQUJVTEFSWS5TRUxFQ1RfSVRFTScgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0bmFtZT1cInNlbGVjdGVkSXRlbVwiXHJcblx0XHRcdFx0XHQoY2hhbmdlKT1cImVtaXRTZWxlY3Rpb24oJGV2ZW50KVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvbmctc2VsZWN0PlxyXG5cdFx0XHQ8L2R4aS1pdGVtPlxyXG5cdFx0PC9keC1mb3JtPlxyXG5cdDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWN0aW9uc1RlbXBsYXRlIGxldC1kaWFsb2c9XCJkaWFsb2dcIj5cclxuXHQ8c3BhblxyXG5cdFx0Y2xhc3M9XCJkeC1idXR0b24tdGV4dFwiXHJcblx0XHQoY2xpY2spPVwiZGlhbG9nLmV4ZWN1dGVBY3Rpb24ob25Gb3JtQ29sbGVjdGlvblN1Ym1pdCwgWyRldmVudF0pXCJcclxuXHQ+XHJcblx0XHR7eyAnRklMRV9NQU5BR0VSLkFERCcgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,17 +1,21 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { DxFormComponent } from 'devextreme-angular';
3
3
  import { of } from 'rxjs';
4
+ import { NdfNuxeoDialog } from '../../../../shared/components/nuxeo-dialog/nuxeo.dialog';
5
+ import { tap } from 'rxjs/operators';
6
+ import { BaseComponent } from '../../../../shared/components/base/base.component';
4
7
  import * as i0 from "@angular/core";
5
8
  import * as i1 from "../../../../shared-services/file-manager.service";
6
9
  import * as i2 from "../../../custom-toastr/services/custom-toastr.service";
7
- import * as i3 from "devextreme-angular";
8
- import * as i4 from "devextreme-angular/ui/nested";
9
- import * as i5 from "devextreme-angular/core";
10
- import * as i6 from "@ngx-translate/core";
11
- export class CopyComponent {
12
- constructor(fileManagerService, customToastrService) {
10
+ import * as i3 from "../../../../shared/components/nuxeo-dialog/services/nuxeo-dialog.service";
11
+ import * as i4 from "devextreme-angular";
12
+ import * as i5 from "@ngx-translate/core";
13
+ export class CopyComponent extends BaseComponent {
14
+ constructor(fileManagerService, customToastrService, nuxeoDialogService, injector) {
15
+ super(injector);
13
16
  this.fileManagerService = fileManagerService;
14
17
  this.customToastrService = customToastrService;
18
+ this.nuxeoDialogService = nuxeoDialogService;
15
19
  this.visibleChange = new EventEmitter();
16
20
  this.getSelectedFolder = new EventEmitter();
17
21
  this.rtlEnabled = false;
@@ -22,7 +26,7 @@ export class CopyComponent {
22
26
  let myparent = parent ? parent.key : this.rootFolder;
23
27
  let myobs;
24
28
  if (myparent === this.pageConfigurations.rootName) {
25
- // when it is root of file list then used passed root entries and for root of
29
+ // when it is root of file list then used passed root entries and for root of
26
30
  // my files or any other folder use getting childs for that folder with its id
27
31
  myobs = this.fileManagerService.parseNodeChildren(of(this.rootEntries), this.pageConfigurations, parent);
28
32
  }
@@ -40,18 +44,62 @@ export class CopyComponent {
40
44
  // )
41
45
  // return this.fileManagerService.parseNodeChildren(obs, parent);
42
46
  };
47
+ this.copy = (answer) => {
48
+ var _a, _b;
49
+ if (this.currentItem.canCopyToDestination) {
50
+ if (((_b = (_a = this.directory) === null || _a === void 0 ? void 0 : _a.dataItem) === null || _b === void 0 ? void 0 : _b.id) !== this.currentItem.id &&
51
+ !this.currentItem.entity.path.includes(this.selectedItem.name)) {
52
+ // this.currentPath = '';
53
+ return this.fileManagerService
54
+ .copyTo(this.currentItem, this.selectedItems)
55
+ .pipe(tap((res) => {
56
+ this.visible = answer;
57
+ this.getSelectedFolder.next(this.currentItem.id);
58
+ this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_COPIED');
59
+ }, (err) => {
60
+ this.visible = true;
61
+ this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_COPIED_ERROR');
62
+ }));
63
+ }
64
+ else
65
+ this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.FAILED_TO_COPY');
66
+ }
67
+ else {
68
+ this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.NO_PERMISSION');
69
+ }
70
+ return of(null);
71
+ };
43
72
  }
44
73
  set visible(value) {
45
74
  if (this._visible === value) {
46
75
  return;
47
76
  }
77
+ if (value) {
78
+ this.openDialog();
79
+ }
48
80
  this._visible = value;
49
81
  this.visibleChange.emit(this._visible);
50
82
  }
51
83
  get visible() {
52
84
  return this._visible;
53
85
  }
54
- ngOnInit() {
86
+ ngOnInit() { }
87
+ openDialog() {
88
+ const options = {
89
+ component: NdfNuxeoDialog,
90
+ panelClass: 'popUpParent',
91
+ config: {
92
+ title: this.translateService.instant('FILE_MANAGER.COPY_OR_MOVE'),
93
+ contentTemplate: this.contentTemplate,
94
+ actionsTemplate: this.actionsTemplate
95
+ }
96
+ };
97
+ this.nuxeoDialogService
98
+ .open(options)
99
+ .afterClosed()
100
+ .subscribe((res) => {
101
+ this.cancel();
102
+ });
55
103
  }
56
104
  cancel() {
57
105
  this.visible = false;
@@ -60,33 +108,9 @@ export class CopyComponent {
60
108
  this.disable = false;
61
109
  this.currentItem = e.itemData;
62
110
  }
63
- copy(answer) {
64
- var _a, _b;
65
- if (this.currentItem.canCopyToDestination) {
66
- if (((_b = (_a = this.directory) === null || _a === void 0 ? void 0 : _a.dataItem) === null || _b === void 0 ? void 0 : _b.id) !== this.currentItem.id &&
67
- !this.currentItem.entity.path.includes(this.selectedItem.name)) {
68
- // this.currentPath = '';
69
- this.fileManagerService
70
- .copyTo(this.currentItem, this.selectedItems)
71
- .subscribe((res) => {
72
- this.visible = answer;
73
- this.getSelectedFolder.next(this.currentItem.id);
74
- this.customToastrService.show('success', 'TOASTER.SUCCESS', 'TOASTER.DOCUMENT_COPIED');
75
- }, (err) => {
76
- this.visible = true;
77
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.DOCUMENT_COPIED_ERROR');
78
- });
79
- }
80
- else
81
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.FAILED_TO_COPY');
82
- }
83
- else {
84
- this.customToastrService.show('error', 'TOASTER.ERROR', 'TOASTER.NO_PERMISSION');
85
- }
86
- }
87
111
  }
88
- CopyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CopyComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
89
- CopyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CopyComponent, selector: "app-copy", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItem: "selectedItem", rootFolder: "rootFolder", rootEntries: "rootEntries", selectedItems: "selectedItems", directory: "directory", pageConfigurations: "pageConfigurations" }, outputs: { visibleChange: "visibleChange", getSelectedFolder: "getSelectedFolder" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }], ngImport: i0, template: "<dx-popup class=\"popUpParent\" [rtlEnabled]=\"rtlEnabled\" id=\"photo-popup\" [width]=\"500\" [height]=\"500\"\r\n title=\"{{ 'FILE_MANAGER.COPY_OR_MOVE' | translate }}\" [(visible)]=\"visible\" [showTitle]=\"true\"\r\n [closeOnOutsideClick]=\"true\">\r\n <div class=\"p-4\" *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view width=\"100%\" height=\"100%\">\r\n <div class=\"form\">\r\n <dx-tree-view [rtlEnabled]=\"rtlEnabled\" id=\"treeList\" [rootValue]=\"rootFolder\" keyExpr=\"id\"\r\n displayExpr=\"name\" hasItemsExpr=\"isExpanded\" dataStructure=\"plain\"\r\n [createChildren]=\"createTreeNodeChildren\" [width]=\"465\" (onItemClick)=\"selectItem($event)\">\r\n </dx-tree-view>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n <dxi-toolbar-item toolbar=\"bottom\" [disabled]=\"disable\">\r\n <button class=\"submission-button px-5\" (click)=\"copy(false)\">\r\n {{ \"BUTTONS.COPY\" | translate }}\r\n </button>\r\n </dxi-toolbar-item>\r\n <dxi-toolbar-item toolbar=\"bottom\">\r\n <button class=\"cancelation-button px-5\" (click)=\"cancel()\">\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n </dxi-toolbar-item>\r\n</dx-popup>", styles: [""], components: [{ type: i3.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { type: i3.DxTreeViewComponent, selector: "dx-tree-view", inputs: ["accessKey", "activeStateEnabled", "animationEnabled", "collapseIcon", "createChildren", "dataSource", "dataStructure", "disabled", "disabledExpr", "displayExpr", "elementAttr", "expandAllEnabled", "expandedExpr", "expandEvent", "expandIcon", "expandNodesRecursive", "focusStateEnabled", "hasItemsExpr", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemsExpr", "itemTemplate", "keyExpr", "noDataText", "parentIdExpr", "rootValue", "rtlEnabled", "scrollDirection", "searchEditorOptions", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "searchValue", "selectAllText", "selectByClick", "selectedExpr", "selectionMode", "selectNodesRecursive", "showCheckBoxesMode", "tabIndex", "useNativeScrolling", "virtualModeEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemCollapsed", "onItemContextMenu", "onItemExpanded", "onItemHold", "onItemRendered", "onItemSelectionChanged", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationEnabledChange", "collapseIconChange", "createChildrenChange", "dataSourceChange", "dataStructureChange", "disabledChange", "disabledExprChange", "displayExprChange", "elementAttrChange", "expandAllEnabledChange", "expandedExprChange", "expandEventChange", "expandIconChange", "expandNodesRecursiveChange", "focusStateEnabledChange", "hasItemsExprChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemsExprChange", "itemTemplateChange", "keyExprChange", "noDataTextChange", "parentIdExprChange", "rootValueChange", "rtlEnabledChange", "scrollDirectionChange", "searchEditorOptionsChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "searchValueChange", "selectAllTextChange", "selectByClickChange", "selectedExprChange", "selectionModeChange", "selectNodesRecursiveChange", "showCheckBoxesModeChange", "tabIndexChange", "useNativeScrollingChange", "virtualModeEnabledChange", "visibleChange", "widthChange"] }, { type: i4.DxiToolbarItemComponent, selector: "dxi-toolbar-item", inputs: ["cssClass", "disabled", "html", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "template", "text", "toolbar", "visible", "widget"] }], directives: [{ type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }], pipes: { "translate": i6.TranslatePipe } });
112
+ CopyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CopyComponent, deps: [{ token: i1.FileManagerService }, { token: i2.CustomToastrService }, { token: i3.NuxeoDialogService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
113
+ CopyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CopyComponent, selector: "app-copy", inputs: { visible: "visible", rtlEnabled: "rtlEnabled", selectedItem: "selectedItem", rootFolder: "rootFolder", rootEntries: "rootEntries", selectedItems: "selectedItems", directory: "directory", pageConfigurations: "pageConfigurations" }, outputs: { visibleChange: "visibleChange", getSelectedFolder: "getSelectedFolder" }, viewQueries: [{ propertyName: "form", first: true, predicate: DxFormComponent, descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: ["actionsTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #contentTemplate>\r\n\t<div class=\"p-4\">\r\n\t\t<dx-scroll-view width=\"100%\" height=\"100%\">\r\n\t\t\t<div class=\"form\">\r\n\t\t\t\t<dx-tree-view\r\n\t\t\t\t\t[rtlEnabled]=\"rtlEnabled\"\r\n\t\t\t\t\tid=\"treeList\"\r\n\t\t\t\t\t[rootValue]=\"rootFolder\"\r\n\t\t\t\t\tkeyExpr=\"id\"\r\n\t\t\t\t\tdisplayExpr=\"name\"\r\n\t\t\t\t\thasItemsExpr=\"isExpanded\"\r\n\t\t\t\t\tdataStructure=\"plain\"\r\n\t\t\t\t\t[createChildren]=\"createTreeNodeChildren\"\r\n\t\t\t\t\t[width]=\"465\"\r\n\t\t\t\t\t(onItemClick)=\"selectItem($event)\"\r\n\t\t\t\t>\r\n\t\t\t\t</dx-tree-view>\r\n\t\t\t</div>\r\n\t\t</dx-scroll-view>\r\n\t</div>\r\n</ng-template>\r\n\r\n<ng-template #actionsTemplate let-dialog=\"dialog\">\r\n\t<button\r\n\t\t[disabled]=\"disable\"\r\n\t\tclass=\"submission-button px-5\"\r\n\t\t(click)=\"dialog.executeAction(copy, [false])\"\r\n\t>\r\n\t\t{{ 'BUTTONS.COPY' | translate }}\r\n\t</button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i4.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { type: i4.DxTreeViewComponent, selector: "dx-tree-view", inputs: ["accessKey", "activeStateEnabled", "animationEnabled", "collapseIcon", "createChildren", "dataSource", "dataStructure", "disabled", "disabledExpr", "displayExpr", "elementAttr", "expandAllEnabled", "expandedExpr", "expandEvent", "expandIcon", "expandNodesRecursive", "focusStateEnabled", "hasItemsExpr", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemsExpr", "itemTemplate", "keyExpr", "noDataText", "parentIdExpr", "rootValue", "rtlEnabled", "scrollDirection", "searchEditorOptions", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "searchValue", "selectAllText", "selectByClick", "selectedExpr", "selectionMode", "selectNodesRecursive", "showCheckBoxesMode", "tabIndex", "useNativeScrolling", "virtualModeEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemCollapsed", "onItemContextMenu", "onItemExpanded", "onItemHold", "onItemRendered", "onItemSelectionChanged", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationEnabledChange", "collapseIconChange", "createChildrenChange", "dataSourceChange", "dataStructureChange", "disabledChange", "disabledExprChange", "displayExprChange", "elementAttrChange", "expandAllEnabledChange", "expandedExprChange", "expandEventChange", "expandIconChange", "expandNodesRecursiveChange", "focusStateEnabledChange", "hasItemsExprChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemsExprChange", "itemTemplateChange", "keyExprChange", "noDataTextChange", "parentIdExprChange", "rootValueChange", "rtlEnabledChange", "scrollDirectionChange", "searchEditorOptionsChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "searchValueChange", "selectAllTextChange", "selectByClickChange", "selectedExprChange", "selectionModeChange", "selectNodesRecursiveChange", "showCheckBoxesModeChange", "tabIndexChange", "useNativeScrollingChange", "virtualModeEnabledChange", "visibleChange", "widthChange"] }], pipes: { "translate": i5.TranslatePipe } });
90
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CopyComponent, decorators: [{
91
115
  type: Component,
92
116
  args: [{
@@ -94,9 +118,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
94
118
  templateUrl: './copy.component.html',
95
119
  styleUrls: ['./copy.component.scss']
96
120
  }]
97
- }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }]; }, propDecorators: { form: [{
121
+ }], ctorParameters: function () { return [{ type: i1.FileManagerService }, { type: i2.CustomToastrService }, { type: i3.NuxeoDialogService }, { type: i0.Injector }]; }, propDecorators: { form: [{
98
122
  type: ViewChild,
99
123
  args: [DxFormComponent, { static: false }]
124
+ }], contentTemplate: [{
125
+ type: ViewChild,
126
+ args: ['contentTemplate']
127
+ }], actionsTemplate: [{
128
+ type: ViewChild,
129
+ args: ['actionsTemplate']
100
130
  }], visible: [{
101
131
  type: Input
102
132
  }], visibleChange: [{
@@ -118,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
118
148
  }], pageConfigurations: [{
119
149
  type: Input
120
150
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY29weS9jb3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUzFCLE1BQU0sT0FBTyxhQUFhO0lBa0N4QixZQUNVLGtCQUFzQyxFQUNwQyxtQkFBd0M7UUFEMUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEJwRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFvQmpCLDJCQUFzQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFN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QUFDLElBQUksQ0FDM0IsT0FBTyxFQUNQLGVBQWUsRUFDZix1QkFBdUIsQ0FDeEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7MkdBcEhVLGFBQWE7K0ZBQWIsYUFBYSwyWkFDYixlQUFlLGdEQ1o1QixzekNBdUJXOzRGRFpFLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNyQzsySUFFZ0QsSUFBSTtzQkFBbEQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV6QyxPQUFPO3NCQURWLEtBQUs7Z0JBWU4sYUFBYTtzQkFEWixNQUFNO2dCQUdQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFHUCxVQUFVO3NCQURULEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhGb3JtQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvcHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3B5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3B5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHhGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybTogRHhGb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZpc2libGUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuX3Zpc2libGUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgZ2V0U2VsZWN0ZWRGb2xkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKVxyXG4gIHJ0bEVuYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkSXRlbTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcm9vdEZvbGRlcjogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcm9vdEVudHJpZXM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkSXRlbXM6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGRpcmVjdG9yeTogYW55O1xyXG4gIEBJbnB1dCgpIHBhZ2VDb25maWd1cmF0aW9ucztcclxuICBmb3JtRGF0YTogYW55ID0ge307XHJcbiAgZGlzYWJsZSA9IHRydWU7XHJcbiAgX3Zpc2libGUgPSBmYWxzZTtcclxuICBjdXJyZW50SXRlbTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmlsZU1hbmFnZXJTZXJ2aWNlOiBGaWxlTWFuYWdlclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY3VzdG9tVG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZVxyXG5cclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICB9XHJcbiAgc2VsZWN0SXRlbShlKSB7XHJcbiAgICB0aGlzLmRpc2FibGUgPSBmYWxzZTtcclxuICAgIHRoaXMuY3VycmVudEl0ZW0gPSBlLml0ZW1EYXRhO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVHJlZU5vZGVDaGlsZHJlbiA9IChwYXJlbnQpID0+IHtcclxuICAgIGxldCBteXBhcmVudCA9IHBhcmVudCA/IHBhcmVudC5rZXkgOiB0aGlzLnJvb3RGb2xkZXI7XHJcbiAgICBsZXQgbXlvYnM7XHJcbiAgICBpZiAobXlwYXJlbnQgPT09IHRoaXMucGFnZUNvbmZpZ3VyYXRpb25zLnJvb3ROYW1lKSB7XHJcbiAgICAgIC8vIHdoZW4gaXQgaXMgcm9vdCBvZiBmaWxlIGxpc3QgdGhlbiB1c2VkIHBhc3NlZCByb290IGVudHJpZXMgYW5kIGZvciByb290IG9mIFxyXG4gICAgICAvLyBteSBmaWxlcyBvciBhbnkgb3RoZXIgZm9sZGVyIHVzZSBnZXR0aW5nIGNoaWxkcyBmb3IgdGhhdCBmb2xkZXIgd2l0aCBpdHMgaWRcclxuICAgICAgbXlvYnMgPSB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5wYXJzZU5vZGVDaGlsZHJlbihvZih0aGlzLnJvb3RFbnRyaWVzKSwgdGhpcy5wYWdlQ29uZmlndXJhdGlvbnMgLCBwYXJlbnQpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG15b2JzID0gdGhpcy5maWxlTWFuYWdlclNlcnZpY2UuY3JlYXRlVHJlZU5vZGVDaGlsZHJlbihteXBhcmVudClcclxuICAgIH1cclxuICAgIHJldHVybiBteW9icztcclxuICAgIC8vIGNvbnNvbGUubG9nKHBhcmVudCk7XHJcbiAgICAvLyBsZXQgb2JzID0gKFxyXG4gICAgLy8gICBwYXJlbnRcclxuICAgIC8vICAgICA/IHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLmdldFRyZWVOb2RlQ2hpbGRyZW4ocGFyZW50KVxyXG4gICAgLy8gICAgIDogb2YoXHJcbiAgICAvLyAgICAgICB0aGlzLnJvb3RFbnRyaWVzXHJcbiAgICAvLyAgICAgKVxyXG4gICAgLy8gKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuZmlsZU1hbmFnZXJTZXJ2aWNlLnBhcnNlTm9kZUNoaWxkcmVuKG9icywgcGFyZW50KTtcclxuICB9XHJcblxyXG4gIGNvcHkoYW5zd2VyKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50SXRlbS5jYW5Db3B5VG9EZXN0aW5hdGlvbikge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5kaXJlY3Rvcnk/LmRhdGFJdGVtPy5pZCAhPT0gdGhpcy5jdXJyZW50SXRlbS5pZCAmJlxyXG4gICAgICAgICF0aGlzLmN1cnJlbnRJdGVtLmVudGl0eS5wYXRoLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRJdGVtLm5hbWUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIC8vIHRoaXMuY3VycmVudFBhdGggPSAnJztcclxuICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG4gICAgICAgICAgLmNvcHlUbyh0aGlzLmN1cnJlbnRJdGVtLCB0aGlzLnNlbGVjdGVkSXRlbXMpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gYW5zd2VyO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRGb2xkZXIubmV4dCh0aGlzLmN1cnJlbnRJdGVtLmlkKTtcclxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLlNVQ0NFU1MnLFxyXG4gICAgICAgICAgICAgICAgJ1RPQVNURVIuRE9DVU1FTlRfQ09QSUVEJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG4gICAgICAgICAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLkVSUk9SJyxcclxuICAgICAgICAgICAgICAgICdUT0FTVEVSLkRPQ1VNRU5UX0NPUElFRF9FUlJPUidcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2VcclxuICAgICAgICB0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgICAnVE9BU1RFUi5GQUlMRURfVE9fQ09QWSdcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcbiAgICAgICAgJ2Vycm9yJyxcclxuICAgICAgICAnVE9BU1RFUi5FUlJPUicsXHJcbiAgICAgICAgJ1RPQVNURVIuTk9fUEVSTUlTU0lPTidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGR4LXBvcHVwIGNsYXNzPVwicG9wVXBQYXJlbnRcIiBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJwaG90by1wb3B1cFwiIFt3aWR0aF09XCI1MDBcIiBbaGVpZ2h0XT1cIjUwMFwiXHJcbiAgICB0aXRsZT1cInt7ICdGSUxFX01BTkFHRVIuQ09QWV9PUl9NT1ZFJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwidmlzaWJsZVwiIFtzaG93VGl0bGVdPVwidHJ1ZVwiXHJcbiAgICBbY2xvc2VPbk91dHNpZGVDbGlja109XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC00XCIgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8ZHgtc2Nyb2xsLXZpZXcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRyZWUtdmlldyBbcnRsRW5hYmxlZF09XCJydGxFbmFibGVkXCIgaWQ9XCJ0cmVlTGlzdFwiIFtyb290VmFsdWVdPVwicm9vdEZvbGRlclwiIGtleUV4cHI9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCIgaGFzSXRlbXNFeHByPVwiaXNFeHBhbmRlZFwiIGRhdGFTdHJ1Y3R1cmU9XCJwbGFpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NyZWF0ZUNoaWxkcmVuXT1cImNyZWF0ZVRyZWVOb2RlQ2hpbGRyZW5cIiBbd2lkdGhdPVwiNDY1XCIgKG9uSXRlbUNsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9keC10cmVlLXZpZXc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiBweC01XCIgKGNsaWNrKT1cImNvcHkoZmFsc2UpXCI+XHJcbiAgICAgICAgICAgIHt7IFwiQlVUVE9OUy5DT1BZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZHhpLXRvb2xiYXItaXRlbT5cclxuICAgIDxkeGktdG9vbGJhci1pdGVtIHRvb2xiYXI9XCJib3R0b21cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsYXRpb24tYnV0dG9uIHB4LTVcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgICAgICAge3sgXCJCVVRUT05TLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2R4aS10b29sYmFyLWl0ZW0+XHJcbjwvZHgtcG9wdXA+Il19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY29weS9jb3B5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBR3pGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7QUFNbEYsTUFBTSxPQUFPLGFBQWMsU0FBUSxhQUFhO0lBdUMvQyxZQUNTLGtCQUFzQyxFQUNwQyxtQkFBd0MsRUFDM0Msa0JBQXNDLEVBQzdDLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUxSLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUMzQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkI5QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBWW5CLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUF1Q2pCLDJCQUFzQixHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3JELElBQUksS0FBSyxDQUFDO1lBQ1YsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtnQkFDbEQsNkVBQTZFO2dCQUM3RSw4RUFBOEU7Z0JBQzlFLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQ2hELEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQ3BCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsTUFBTSxDQUNOLENBQUM7YUFDRjtpQkFBTTtnQkFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pFO1lBQ0QsT0FBTyxLQUFLLENBQUM7WUFDYix1QkFBdUI7WUFDdkIsY0FBYztZQUNkLFdBQVc7WUFDWCw0REFBNEQ7WUFDNUQsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixRQUFRO1lBQ1IsSUFBSTtZQUNKLGlFQUFpRTtRQUNsRSxDQUFDLENBQUM7UUFFRixTQUFJLEdBQXFCLENBQUMsTUFBTSxFQUFFLEVBQUU7O1lBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRTtnQkFDMUMsSUFDQyxDQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxRQUFRLDBDQUFFLEVBQUUsTUFBSyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3BELENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUM3RDtvQkFDRCx5QkFBeUI7b0JBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQjt5QkFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQzt5QkFDNUMsSUFBSSxDQUNKLEdBQUcsQ0FDRixDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO3dCQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzVCLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIseUJBQXlCLENBQ3pCLENBQUM7b0JBQ0gsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzVCLE9BQU8sRUFDUCxlQUFlLEVBQ2YsK0JBQStCLENBQy9CLENBQUM7b0JBQ0gsQ0FBQyxDQUNELENBQ0QsQ0FBQztpQkFDSDs7b0JBQ0EsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDNUIsT0FBTyxFQUNQLGVBQWUsRUFDZix3QkFBd0IsQ0FDeEIsQ0FBQzthQUNIO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzVCLE9BQU8sRUFDUCxlQUFlLEVBQ2YsdUJBQXVCLENBQ3ZCLENBQUM7YUFDRjtZQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztJQXBHRixDQUFDO0lBMUNELElBQ0ksT0FBTyxDQUFDLEtBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUM1QixPQUFPO1NBQ1A7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNWLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNsQjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUErQkQsUUFBUSxLQUFVLENBQUM7SUFFbkIsVUFBVTtRQUNULE1BQU0sT0FBTyxHQUFrQjtZQUM5QixTQUFTLEVBQUUsY0FBYztZQUN6QixVQUFVLEVBQUUsYUFBYTtZQUN6QixNQUFNLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUM7Z0JBQ2pFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDckMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3JDO1NBQ0QsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0I7YUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNiLFdBQVcsRUFBRTthQUNiLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQzs7MkdBMUVXLGFBQWE7K0ZBQWIsYUFBYSwyWkFDZCxlQUFlLGlSQzFCM0IsazdCQStCQTs0RkROYSxhQUFhO2tCQUx6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixXQUFXLEVBQUUsdUJBQXVCO29CQUNwQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDcEM7bU1BRStDLElBQUk7c0JBQWxELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDZixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDRSxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFeEIsT0FBTztzQkFEVixLQUFLO2dCQWVOLGFBQWE7c0JBRFosTUFBTTtnQkFHUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBR1AsVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sV0FBVztzQkFEVixLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdEluamVjdG9yLFxyXG5cdElucHV0LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0Vmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4Rm9ybUNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9maWxlLW1hbmFnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9udXhlby1kaWFsb2cvbW9kZWxzL2RpYWxvZy1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBOZGZOdXhlb0RpYWxvZyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9udXhlby5kaWFsb2cnO1xyXG5pbXBvcnQgeyBOdXhlb0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9udXhlby1kaWFsb2cvc2VydmljZXMvbnV4ZW8tZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbnV4ZW8tZGlhbG9nL21vZGVscy9kaWFsb2ctb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWNvcHknLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jb3B5LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9jb3B5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkKER4Rm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm06IER4Rm9ybUNvbXBvbmVudDtcclxuXHRAVmlld0NoaWxkKCdjb250ZW50VGVtcGxhdGUnKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBWaWV3Q2hpbGQoJ2FjdGlvbnNUZW1wbGF0ZScpIGFjdGlvbnNUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QElucHV0KClcclxuXHRzZXQgdmlzaWJsZSh2YWx1ZTogYW55KSB7XHJcblx0XHRpZiAodGhpcy5fdmlzaWJsZSA9PT0gdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHZhbHVlKSB7XHJcblx0XHRcdHRoaXMub3BlbkRpYWxvZygpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG5cdFx0dGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XHJcblx0fVxyXG5cdGdldCB2aXNpYmxlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcblx0fVxyXG5cdEBPdXRwdXQoKVxyXG5cdHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KClcclxuXHRnZXRTZWxlY3RlZEZvbGRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBJbnB1dCgpXHJcblx0cnRsRW5hYmxlZCA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpXHJcblx0c2VsZWN0ZWRJdGVtOiBhbnk7XHJcblx0QElucHV0KClcclxuXHRyb290Rm9sZGVyOiBhbnk7XHJcblx0QElucHV0KClcclxuXHRyb290RW50cmllczogYW55O1xyXG5cdEBJbnB1dCgpXHJcblx0c2VsZWN0ZWRJdGVtczogYW55O1xyXG5cdEBJbnB1dCgpXHJcblx0ZGlyZWN0b3J5OiBhbnk7XHJcblx0QElucHV0KCkgcGFnZUNvbmZpZ3VyYXRpb25zO1xyXG5cdGZvcm1EYXRhOiBhbnkgPSB7fTtcclxuXHRkaXNhYmxlID0gdHJ1ZTtcclxuXHRfdmlzaWJsZSA9IGZhbHNlO1xyXG5cdGN1cnJlbnRJdGVtO1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBmaWxlTWFuYWdlclNlcnZpY2U6IEZpbGVNYW5hZ2VyU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBjdXN0b21Ub2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHVibGljIG51eGVvRGlhbG9nU2VydmljZTogTnV4ZW9EaWFsb2dTZXJ2aWNlLFxyXG5cdFx0aW5qZWN0b3I6IEluamVjdG9yXHJcblx0KSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG5cdG9wZW5EaWFsb2coKTogdm9pZCB7XHJcblx0XHRjb25zdCBvcHRpb25zOiBEaWFsb2dPcHRpb25zID0ge1xyXG5cdFx0XHRjb21wb25lbnQ6IE5kZk51eGVvRGlhbG9nLFxyXG5cdFx0XHRwYW5lbENsYXNzOiAncG9wVXBQYXJlbnQnLFxyXG5cdFx0XHRjb25maWc6IHtcclxuXHRcdFx0XHR0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZJTEVfTUFOQUdFUi5DT1BZX09SX01PVkUnKSxcclxuXHRcdFx0XHRjb250ZW50VGVtcGxhdGU6IHRoaXMuY29udGVudFRlbXBsYXRlLFxyXG5cdFx0XHRcdGFjdGlvbnNUZW1wbGF0ZTogdGhpcy5hY3Rpb25zVGVtcGxhdGVcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHRcdHRoaXMubnV4ZW9EaWFsb2dTZXJ2aWNlXHJcblx0XHRcdC5vcGVuKG9wdGlvbnMpXHJcblx0XHRcdC5hZnRlckNsb3NlZCgpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuY2FuY2VsKCk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Y2FuY2VsKCkge1xyXG5cdFx0dGhpcy52aXNpYmxlID0gZmFsc2U7XHJcblx0fVxyXG5cdHNlbGVjdEl0ZW0oZSkge1xyXG5cdFx0dGhpcy5kaXNhYmxlID0gZmFsc2U7XHJcblx0XHR0aGlzLmN1cnJlbnRJdGVtID0gZS5pdGVtRGF0YTtcclxuXHR9XHJcblxyXG5cdGNyZWF0ZVRyZWVOb2RlQ2hpbGRyZW4gPSAocGFyZW50KSA9PiB7XHJcblx0XHRsZXQgbXlwYXJlbnQgPSBwYXJlbnQgPyBwYXJlbnQua2V5IDogdGhpcy5yb290Rm9sZGVyO1xyXG5cdFx0bGV0IG15b2JzO1xyXG5cdFx0aWYgKG15cGFyZW50ID09PSB0aGlzLnBhZ2VDb25maWd1cmF0aW9ucy5yb290TmFtZSkge1xyXG5cdFx0XHQvLyB3aGVuIGl0IGlzIHJvb3Qgb2YgZmlsZSBsaXN0IHRoZW4gdXNlZCBwYXNzZWQgcm9vdCBlbnRyaWVzIGFuZCBmb3Igcm9vdCBvZlxyXG5cdFx0XHQvLyBteSBmaWxlcyBvciBhbnkgb3RoZXIgZm9sZGVyIHVzZSBnZXR0aW5nIGNoaWxkcyBmb3IgdGhhdCBmb2xkZXIgd2l0aCBpdHMgaWRcclxuXHRcdFx0bXlvYnMgPSB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5wYXJzZU5vZGVDaGlsZHJlbihcclxuXHRcdFx0XHRvZih0aGlzLnJvb3RFbnRyaWVzKSxcclxuXHRcdFx0XHR0aGlzLnBhZ2VDb25maWd1cmF0aW9ucyxcclxuXHRcdFx0XHRwYXJlbnRcclxuXHRcdFx0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdG15b2JzID0gdGhpcy5maWxlTWFuYWdlclNlcnZpY2UuY3JlYXRlVHJlZU5vZGVDaGlsZHJlbihteXBhcmVudCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbXlvYnM7XHJcblx0XHQvLyBjb25zb2xlLmxvZyhwYXJlbnQpO1xyXG5cdFx0Ly8gbGV0IG9icyA9IChcclxuXHRcdC8vICAgcGFyZW50XHJcblx0XHQvLyAgICAgPyB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5nZXRUcmVlTm9kZUNoaWxkcmVuKHBhcmVudClcclxuXHRcdC8vICAgICA6IG9mKFxyXG5cdFx0Ly8gICAgICAgdGhpcy5yb290RW50cmllc1xyXG5cdFx0Ly8gICAgIClcclxuXHRcdC8vIClcclxuXHRcdC8vIHJldHVybiB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZS5wYXJzZU5vZGVDaGlsZHJlbihvYnMsIHBhcmVudCk7XHJcblx0fTtcclxuXHJcblx0Y29weTogRGlhbG9nQWN0aW9uVHlwZSA9IChhbnN3ZXIpID0+IHtcclxuXHRcdGlmICh0aGlzLmN1cnJlbnRJdGVtLmNhbkNvcHlUb0Rlc3RpbmF0aW9uKSB7XHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHR0aGlzLmRpcmVjdG9yeT8uZGF0YUl0ZW0/LmlkICE9PSB0aGlzLmN1cnJlbnRJdGVtLmlkICYmXHJcblx0XHRcdFx0IXRoaXMuY3VycmVudEl0ZW0uZW50aXR5LnBhdGguaW5jbHVkZXModGhpcy5zZWxlY3RlZEl0ZW0ubmFtZSlcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0Ly8gdGhpcy5jdXJyZW50UGF0aCA9ICcnO1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmZpbGVNYW5hZ2VyU2VydmljZVxyXG5cdFx0XHRcdFx0LmNvcHlUbyh0aGlzLmN1cnJlbnRJdGVtLCB0aGlzLnNlbGVjdGVkSXRlbXMpXHJcblx0XHRcdFx0XHQucGlwZShcclxuXHRcdFx0XHRcdFx0dGFwKFxyXG5cdFx0XHRcdFx0XHRcdChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMudmlzaWJsZSA9IGFuc3dlcjtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZ2V0U2VsZWN0ZWRGb2xkZXIubmV4dCh0aGlzLmN1cnJlbnRJdGVtLmlkKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdFx0XHRcdCdUT0FTVEVSLlNVQ0NFU1MnLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnVE9BU1RFUi5ET0NVTUVOVF9DT1BJRUQnXHJcblx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdFx0KGVycikgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuY3VzdG9tVG9hc3RyU2VydmljZS5zaG93KFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnZXJyb3InLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHQnVE9BU1RFUi5FUlJPUicsXHJcblx0XHRcdFx0XHRcdFx0XHRcdCdUT0FTVEVSLkRPQ1VNRU5UX0NPUElFRF9FUlJPUidcclxuXHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQpXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHR9IGVsc2VcclxuXHRcdFx0XHR0aGlzLmN1c3RvbVRvYXN0clNlcnZpY2Uuc2hvdyhcclxuXHRcdFx0XHRcdCdlcnJvcicsXHJcblx0XHRcdFx0XHQnVE9BU1RFUi5FUlJPUicsXHJcblx0XHRcdFx0XHQnVE9BU1RFUi5GQUlMRURfVE9fQ09QWSdcclxuXHRcdFx0XHQpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jdXN0b21Ub2FzdHJTZXJ2aWNlLnNob3coXHJcblx0XHRcdFx0J2Vycm9yJyxcclxuXHRcdFx0XHQnVE9BU1RFUi5FUlJPUicsXHJcblx0XHRcdFx0J1RPQVNURVIuTk9fUEVSTUlTU0lPTidcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBvZihudWxsKTtcclxuXHR9O1xyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxyXG5cdDxkaXYgY2xhc3M9XCJwLTRcIj5cclxuXHRcdDxkeC1zY3JvbGwtdmlldyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcblx0XHRcdFx0PGR4LXRyZWUtdmlld1xyXG5cdFx0XHRcdFx0W3J0bEVuYWJsZWRdPVwicnRsRW5hYmxlZFwiXHJcblx0XHRcdFx0XHRpZD1cInRyZWVMaXN0XCJcclxuXHRcdFx0XHRcdFtyb290VmFsdWVdPVwicm9vdEZvbGRlclwiXHJcblx0XHRcdFx0XHRrZXlFeHByPVwiaWRcIlxyXG5cdFx0XHRcdFx0ZGlzcGxheUV4cHI9XCJuYW1lXCJcclxuXHRcdFx0XHRcdGhhc0l0ZW1zRXhwcj1cImlzRXhwYW5kZWRcIlxyXG5cdFx0XHRcdFx0ZGF0YVN0cnVjdHVyZT1cInBsYWluXCJcclxuXHRcdFx0XHRcdFtjcmVhdGVDaGlsZHJlbl09XCJjcmVhdGVUcmVlTm9kZUNoaWxkcmVuXCJcclxuXHRcdFx0XHRcdFt3aWR0aF09XCI0NjVcIlxyXG5cdFx0XHRcdFx0KG9uSXRlbUNsaWNrKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXHJcblx0XHRcdFx0PlxyXG5cdFx0XHRcdDwvZHgtdHJlZS12aWV3PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZHgtc2Nyb2xsLXZpZXc+XHJcblx0PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2FjdGlvbnNUZW1wbGF0ZSBsZXQtZGlhbG9nPVwiZGlhbG9nXCI+XHJcblx0PGJ1dHRvblxyXG5cdFx0W2Rpc2FibGVkXT1cImRpc2FibGVcIlxyXG5cdFx0Y2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiBweC01XCJcclxuXHRcdChjbGljayk9XCJkaWFsb2cuZXhlY3V0ZUFjdGlvbihjb3B5LCBbZmFsc2VdKVwiXHJcblx0PlxyXG5cdFx0e3sgJ0JVVFRPTlMuQ09QWScgfCB0cmFuc2xhdGUgfX1cclxuXHQ8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19