ngx-edu-sharing-ui 9.2.0 → 10.0.1

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 (131) hide show
  1. package/assets/scss/mixins.scss +4 -4
  2. package/assets/scss/variables-scss.scss +5 -1
  3. package/assets/scss/variables.scss +1 -3
  4. package/esm2022/lib/actionbar/actionbar.component.mjs +38 -20
  5. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +8 -5
  6. package/esm2022/lib/directives/border-box-observer.directive.mjs +6 -6
  7. package/esm2022/lib/directives/check-text-overflow.directive.mjs +5 -5
  8. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +4 -4
  9. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +4 -4
  10. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +4 -4
  11. package/esm2022/lib/directives/focus-state.directive.mjs +4 -4
  12. package/esm2022/lib/directives/icon.directive.mjs +26 -9
  13. package/esm2022/lib/directives/infinite-scroll.directive.mjs +4 -4
  14. package/esm2022/lib/dropdown/dropdown.component.mjs +25 -12
  15. package/esm2022/lib/edu-sharing-ui-configuration.mjs +4 -4
  16. package/esm2022/lib/edu-sharing-ui.module.mjs +5 -5
  17. package/esm2022/lib/index.mjs +88 -0
  18. package/esm2022/lib/list-items/format-duration.pipe.mjs +4 -4
  19. package/esm2022/lib/list-items/list-base/list-base.component.mjs +4 -4
  20. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +4 -4
  21. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +4 -4
  22. package/esm2022/lib/list-items/list-items.module.mjs +5 -5
  23. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +4 -4
  24. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +4 -4
  25. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +5 -5
  26. package/esm2022/lib/list-items/list-text/list-text.component.mjs +11 -11
  27. package/esm2022/lib/list-items/list-widget.mjs +4 -4
  28. package/esm2022/lib/list-items/node-row/node-row.component.mjs +4 -4
  29. package/esm2022/lib/list-items/node-source.pipe.mjs +4 -4
  30. package/esm2022/lib/mds/mds-helper.service.mjs +4 -4
  31. package/esm2022/lib/mds/mds.module.mjs +5 -5
  32. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +5 -5
  33. package/esm2022/lib/node-entries/entries-model.mjs +1 -1
  34. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +11 -8
  35. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +9 -25
  36. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +45 -38
  37. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +7 -8
  38. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +5 -5
  39. package/esm2022/lib/node-entries/node-entries-global.service.mjs +4 -4
  40. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +4 -4
  41. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +51 -56
  42. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +4 -4
  43. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +60 -22
  44. package/esm2022/lib/node-entries/node-entries.component.mjs +5 -5
  45. package/esm2022/lib/node-entries/node-entries.module.mjs +5 -5
  46. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +4 -4
  47. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +4 -4
  48. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +4 -4
  49. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +11 -9
  50. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +4 -4
  51. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +5 -5
  52. package/esm2022/lib/node-url/node-url.component.mjs +4 -4
  53. package/esm2022/lib/pipes/file-size.pipe.mjs +9 -8
  54. package/esm2022/lib/pipes/format-date.pipe.mjs +4 -4
  55. package/esm2022/lib/pipes/node-icon.pipe.mjs +4 -4
  56. package/esm2022/lib/pipes/node-image-size.pipe.mjs +4 -4
  57. package/esm2022/lib/pipes/node-image.pipe.mjs +4 -4
  58. package/esm2022/lib/pipes/node-license.pipe.mjs +24 -0
  59. package/esm2022/lib/pipes/node-person-name.pipe.mjs +4 -4
  60. package/esm2022/lib/pipes/node-title.pipe.mjs +21 -6
  61. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +6 -6
  62. package/esm2022/lib/pipes/property-slug.pipe.mjs +4 -4
  63. package/esm2022/lib/pipes/replace-chars.pipe.mjs +4 -4
  64. package/esm2022/lib/pipes/vcard-name.pipe.mjs +10 -4
  65. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +4 -4
  66. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  67. package/esm2022/lib/services/accessibility.service.mjs +4 -4
  68. package/esm2022/lib/services/app-container.service.mjs +7 -4
  69. package/esm2022/lib/services/local-events.service.mjs +11 -4
  70. package/esm2022/lib/services/node-entries.service.mjs +31 -11
  71. package/esm2022/lib/services/node-helper.service.mjs +38 -6
  72. package/esm2022/lib/services/nodes-drag-drop.service.mjs +4 -4
  73. package/esm2022/lib/services/options-helper-data.service.mjs +7 -7
  74. package/esm2022/lib/services/render-helper.service.mjs +114 -0
  75. package/esm2022/lib/services/repo-url.service.mjs +4 -4
  76. package/esm2022/lib/services/search-helper.service.mjs +52 -0
  77. package/esm2022/lib/services/temporary-storage.service.mjs +4 -4
  78. package/esm2022/lib/services/ui.service.mjs +21 -6
  79. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +8 -8
  80. package/esm2022/lib/spinner/spinner.component.mjs +4 -4
  81. package/esm2022/lib/translations/translation-loader.mjs +54 -16
  82. package/esm2022/lib/translations/translations.module.mjs +8 -6
  83. package/esm2022/lib/translations/translations.service.mjs +36 -10
  84. package/esm2022/lib/types/api-models.mjs +1 -1
  85. package/esm2022/lib/types/injection-tokens.mjs +10 -1
  86. package/esm2022/lib/types/list-item.mjs +1 -1
  87. package/esm2022/lib/types/option-item.mjs +23 -7
  88. package/esm2022/lib/util/VCard.mjs +2 -2
  89. package/esm2022/ngx-edu-sharing-ui.mjs +2 -2
  90. package/esm2022/public-api.mjs +2 -0
  91. package/fesm2022/ngx-edu-sharing-ui.mjs +1004 -577
  92. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  93. package/index.d.ts +1 -1
  94. package/lib/actionbar/actionbar.component.d.ts +15 -4
  95. package/lib/common/edu-sharing-ui-common.module.d.ts +17 -16
  96. package/lib/directives/icon.directive.d.ts +5 -3
  97. package/lib/dropdown/dropdown.component.d.ts +10 -6
  98. package/lib/index.d.ts +84 -0
  99. package/lib/list-items/list-text/list-text.component.d.ts +4 -5
  100. package/lib/node-entries/entries-model.d.ts +4 -1
  101. package/lib/node-entries/list-item-label.pipe.d.ts +3 -1
  102. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +1 -1
  103. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +4 -2
  104. package/lib/node-entries/node-entries-card-small/node-entries-card-small.component.d.ts +1 -3
  105. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +3 -1
  106. package/lib/node-entries/node-entries-wrapper.component.d.ts +9 -2
  107. package/lib/node-entries/option-button/option-button.component.d.ts +2 -1
  108. package/lib/pipes/node-license.pipe.d.ts +14 -0
  109. package/lib/pipes/node-title.pipe.d.ts +4 -1
  110. package/lib/pipes/option-tooltip.pipe.d.ts +1 -1
  111. package/lib/pipes/vcard-name.pipe.d.ts +1 -1
  112. package/lib/services/abstract/options-helper.service.d.ts +2 -2
  113. package/lib/services/app-container.service.d.ts +2 -1
  114. package/lib/services/local-events.service.d.ts +7 -0
  115. package/lib/services/node-entries.service.d.ts +10 -3
  116. package/lib/services/node-helper.service.d.ts +11 -2
  117. package/lib/services/options-helper-data.service.d.ts +7 -7
  118. package/lib/services/render-helper.service.d.ts +24 -0
  119. package/lib/services/search-helper.service.d.ts +21 -0
  120. package/lib/services/ui.service.d.ts +9 -2
  121. package/lib/sort-dropdown/sort-dropdown.component.d.ts +2 -2
  122. package/lib/translations/translation-loader.d.ts +3 -1
  123. package/lib/translations/translations.service.d.ts +6 -2
  124. package/lib/types/api-models.d.ts +9 -0
  125. package/lib/types/injection-tokens.d.ts +9 -0
  126. package/lib/types/list-item.d.ts +2 -2
  127. package/lib/types/option-item.d.ts +27 -10
  128. package/package.json +7 -7
  129. package/public-api.d.ts +1 -0
  130. package/esm2022/module.mjs +0 -84
  131. package/module.d.ts +0 -80
@@ -5,6 +5,13 @@ import * as i0 from "@angular/core";
5
5
  */
6
6
  export class LocalEventsService {
7
7
  constructor() {
8
+ /**
9
+ * One or more nodes have been created
10
+ *
11
+ * Triggers when the full creation process is done, i.e. the metadata/edit dialog after uploading
12
+ * is closed
13
+ */
14
+ this.nodesCreated = new EventEmitter();
8
15
  /**
9
16
  * The metadata of one or more nodes have been updated.
10
17
  *
@@ -24,13 +31,13 @@ export class LocalEventsService {
24
31
  // include a node and lists that the node was moved to.
25
32
  this.nodesDeleted = new EventEmitter();
26
33
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalEventsService, providedIn: 'root' }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LocalEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LocalEventsService, providedIn: 'root' }); }
29
36
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalEventsService, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LocalEventsService, decorators: [{
31
38
  type: Injectable,
32
39
  args: [{
33
40
  providedIn: 'root',
34
41
  }]
35
42
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLWV2ZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6RDs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJSTs7Ozs7O1dBTUc7UUFDTSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7Ozs7OztXQU1HO1FBQ0gsMkZBQTJGO1FBQzNGLHVEQUF1RDtRQUM5QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDdEQ7OEdBbkJZLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmYsTUFBTTs7MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG4vKipcbiAqIEFuIGFwcGxpY2F0aW9uLXdpZGUgZXZlbnQgYnJva2VyLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbEV2ZW50c1NlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSBtZXRhZGF0YSBvZiBvbmUgb3IgbW9yZSBub2RlcyBoYXZlIGJlZW4gdXBkYXRlZC5cbiAgICAgKlxuICAgICAqIFRoZSBlbWl0dGVkIHZhbHVlIGlzIHRoZSBhcnJheSBvZiB1cGRhdGVkIG5vZGVzLlxuICAgICAqXG4gICAgICogVGhlIGVtaXR0ZXIgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQgd2l0aCBhbiBlbXB0eSBhcnJheSBvciBudWxsLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5vZGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZVtdPigpO1xuICAgIC8qKlxuICAgICAqIE9uZSBvciBtb3JlIG5vZGVzIGhhdmUgYmVlbiBtb3ZlZCB0byB0aGUgcmVjeWNsZSBiaW4uXG4gICAgICpcbiAgICAgKiBUaGUgZW1pdHRlZCB2YWx1ZSBpcyB0aGUgYXJyYXkgb2YgZm9ybWVyIG5vZGVzLlxuICAgICAqXG4gICAgICogVGhlIGVtaXR0ZXIgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQgd2l0aCBhbiBlbXB0eSBhcnJheSBvciBudWxsLlxuICAgICAqL1xuICAgIC8vIEZJWE1FOiBNYXliZSBhIGBub2Rlc01vdmVkYCBlbWl0dGVyIHdvdWxkIG1ha2UgZm9yIHNlbnNlIGZvciB1cGRhdGluZyBsaXN0cyB0aGF0IHVzZWQgdG9cbiAgICAvLyBpbmNsdWRlIGEgbm9kZSBhbmQgbGlzdHMgdGhhdCB0aGUgbm9kZSB3YXMgbW92ZWQgdG8uXG4gICAgcmVhZG9ubHkgbm9kZXNEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlW10+KCk7XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLWV2ZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd6RDs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJSTs7Ozs7V0FLRztRQUNNLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRDs7Ozs7O1dBTUc7UUFDTSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7Ozs7OztXQU1HO1FBQ0gsMkZBQTJGO1FBQzNGLHVEQUF1RDtRQUM5QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDdEQ7K0dBMUJZLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmYsTUFBTTs7NEZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG4vKipcbiAqIEFuIGFwcGxpY2F0aW9uLXdpZGUgZXZlbnQgYnJva2VyLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbEV2ZW50c1NlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIE9uZSBvciBtb3JlIG5vZGVzIGhhdmUgYmVlbiBjcmVhdGVkXG4gICAgICpcbiAgICAgKiBUcmlnZ2VycyB3aGVuIHRoZSBmdWxsIGNyZWF0aW9uIHByb2Nlc3MgaXMgZG9uZSwgaS5lLiB0aGUgbWV0YWRhdGEvZWRpdCBkaWFsb2cgYWZ0ZXIgdXBsb2FkaW5nXG4gICAgICogaXMgY2xvc2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgbm9kZXNDcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlW10+KCk7XG4gICAgLyoqXG4gICAgICogVGhlIG1ldGFkYXRhIG9mIG9uZSBvciBtb3JlIG5vZGVzIGhhdmUgYmVlbiB1cGRhdGVkLlxuICAgICAqXG4gICAgICogVGhlIGVtaXR0ZWQgdmFsdWUgaXMgdGhlIGFycmF5IG9mIHVwZGF0ZWQgbm9kZXMuXG4gICAgICpcbiAgICAgKiBUaGUgZW1pdHRlciBzaG91bGQgbm90IGJlIHRyaWdnZXJlZCB3aXRoIGFuIGVtcHR5IGFycmF5IG9yIG51bGwuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbm9kZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlW10+KCk7XG4gICAgLyoqXG4gICAgICogT25lIG9yIG1vcmUgbm9kZXMgaGF2ZSBiZWVuIG1vdmVkIHRvIHRoZSByZWN5Y2xlIGJpbi5cbiAgICAgKlxuICAgICAqIFRoZSBlbWl0dGVkIHZhbHVlIGlzIHRoZSBhcnJheSBvZiBmb3JtZXIgbm9kZXMuXG4gICAgICpcbiAgICAgKiBUaGUgZW1pdHRlciBzaG91bGQgbm90IGJlIHRyaWdnZXJlZCB3aXRoIGFuIGVtcHR5IGFycmF5IG9yIG51bGwuXG4gICAgICovXG4gICAgLy8gRklYTUU6IE1heWJlIGEgYG5vZGVzTW92ZWRgIGVtaXR0ZXIgd291bGQgbWFrZSBmb3Igc2Vuc2UgZm9yIHVwZGF0aW5nIGxpc3RzIHRoYXQgdXNlZCB0b1xuICAgIC8vIGluY2x1ZGUgYSBub2RlIGFuZCBsaXN0cyB0aGF0IHRoZSBub2RlIHdhcyBtb3ZlZCB0by5cbiAgICByZWFkb25seSBub2Rlc0RlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGVbXT4oKTtcbn1cbiJdfQ==
@@ -5,7 +5,8 @@ import { NodeDataSourceRemote } from '../node-entries/node-data-source-remote';
5
5
  import { delay, map } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./ui.service";
8
- import * as i2 from "../node-entries/node-entries-global.service";
8
+ import * as i2 from "./abstract/toast.service";
9
+ import * as i3 from "../node-entries/node-entries-global.service";
9
10
  /**
10
11
  Custom selection model which adds the click source of the selection.
11
12
  USED IN EXTENSIONS!
@@ -55,10 +56,10 @@ export class NodeEntriesService {
55
56
  return this.entriesGlobal.getPaginationStrategy(this.scope);
56
57
  }
57
58
  get columns() {
58
- return this.columnsSubject.value;
59
+ return this.columnsSubject.value?.columns;
59
60
  }
60
- set columns(value) {
61
- this.columnsSubject.next(value);
61
+ set columns(columns) {
62
+ this.columnsSubject.next({ columns, fromUser: true });
62
63
  }
63
64
  get options() {
64
65
  return this.options$.value;
@@ -81,8 +82,9 @@ export class NodeEntriesService {
81
82
  set gridConfig(value) {
82
83
  this.gridConfig$.next(value);
83
84
  }
84
- constructor(uiService, entriesGlobal) {
85
+ constructor(uiService, toast, entriesGlobal) {
85
86
  this.uiService = uiService;
87
+ this.toast = toast;
86
88
  this.entriesGlobal = entriesGlobal;
87
89
  this.dataSource$ = new BehaviorSubject(null);
88
90
  /**
@@ -110,7 +112,6 @@ export class NodeEntriesService {
110
112
  }
111
113
  }
112
114
  onCheckboxChanged(node, checked) {
113
- console.log(node, checked, this.uiService.shiftKeyPressed);
114
115
  if (this.uiService.shiftKeyPressed) {
115
116
  this.expandSelectionTo(node);
116
117
  }
@@ -172,10 +173,29 @@ export class NodeEntriesService {
172
173
  }
173
174
  }
174
175
  }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeEntriesService, deps: [{ token: i1.UIService }, { token: i2.NodeEntriesGlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
176
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeEntriesService }); }
176
+ openDropdown(dropdown, node, onDone = null) {
177
+ if (!this.selection.selected.includes(node)) {
178
+ this.selection.clear();
179
+ this.selection.select(node);
180
+ }
181
+ // Wait for the menu to reflect changed options.
182
+ setTimeout(() => {
183
+ dropdown.callbackObjects = this.selection.selected;
184
+ dropdown.ngOnChanges();
185
+ if (dropdown.canShowDropdown()) {
186
+ if (onDone) {
187
+ onDone();
188
+ }
189
+ }
190
+ else {
191
+ this.toast.toast('NO_AVAILABLE_OPTIONS');
192
+ }
193
+ });
194
+ }
195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesService, deps: [{ token: i1.UIService }, { token: i2.Toast }, { token: i3.NodeEntriesGlobalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
196
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesService }); }
177
197
  }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeEntriesService, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesService, decorators: [{
179
199
  type: Injectable
180
- }], ctorParameters: () => [{ type: i1.UIService }, { type: i2.NodeEntriesGlobalService }] });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbnRyaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL25vZGUtZW50cmllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUF1QnZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG9CQUF3QixTQUFRLGNBQWlCO0lBQTlEOztRQUVJOztXQUVHO1FBQ00sdUJBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzNDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUNMLENBQUM7SUE0Qk4sQ0FBQztJQTNCRyxRQUFRLENBQUMsR0FBRyxNQUFXO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVE7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFD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cG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIENsaWNrU291cmNlLFxuICAgIEZldGNoRXZlbnQsXG4gICAgR3JpZENvbmZpZyxcbiAgICBJbnRlcmFjdGlvblR5cGUsXG4gICAgTGlzdERyYWdHcm9wQ29uZmlnLFxuICAgIExpc3RFdmVudEludGVyZmFjZSxcbiAgICBMaXN0T3B0aW9ucyxcbiAgICBMaXN0U29ydENvbmZpZyxcbiAgICBOb2RlQ2xpY2tFdmVudCxcbiAgICBOb2RlRW50cmllc0RhdGFUeXBlLFxuICAgIE5vZGVFbnRyaWVzRGlzcGxheVR5cGUsXG59IGZyb20gJy4uL25vZGUtZW50cmllcy9lbnRyaWVzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVEYXRhU291cmNlIH0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzL25vZGUtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgICBOb2RlRW50cmllc0dsb2JhbFNlcnZpY2UsXG4gICAgUGFnaW5hdGlvblN0cmF0ZWd5LFxufSBmcm9tICcuLi9ub2RlLWVudHJpZXMvbm9kZS1lbnRyaWVzLWdsb2JhbC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgT3B0aW9uSXRlbSwgU2NvcGUgfSBmcm9tICcuLi90eXBlcy9vcHRpb24taXRlbSc7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL3R5cGVzL2xpc3QtaXRlbSc7XG5pbXBvcnQgeyBVSVNlcnZpY2UgfSBmcm9tICcuL3VpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZURhdGFTb3VyY2VSZW1vdGUgfSBmcm9tICcuLi9ub2RlLWVudHJpZXMvbm9kZS1kYXRhLXNvdXJjZS1yZW1vdGUnO1xuaW1wb3J0IHsgZGVsYXksIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gQ3VzdG9tIHNlbGVjdGlvbiBtb2RlbCB3aGljaCBhZGRzIHRoZSBjbGljayBzb3VyY2Ugb2YgdGhlIHNlbGVjdGlvbi5cbiBVU0VEIElOIEVYVEVOU0lPTlMhXG4gKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21TZWxlY3Rpb25Nb2RlbDxUPiBleHRlbmRzIFNlbGVjdGlvbk1vZGVsPFQ+IHtcbiAgICBwcml2YXRlIF9jbGlja1NvdXJjZTogQ2xpY2tTb3VyY2U7XG4gICAgLyoqXG4gICAgICogdXNlZCBpbiBleHRlbnNpb25zXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2hhbmdlZENsaWNrU291cmNlID0gdGhpcy5jaGFuZ2VkLnBpcGUoXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICBtYXAoKGMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmMsIGNsaWNrU291cmNlOiB0aGlzLl9jbGlja1NvdXJjZSB9O1xuICAgICAgICB9KSxcbiAgICApO1xuICAgIGRlc2VsZWN0KC4uLnZhbHVlczogVFtdKSB7XG4gICAgICAgIHRoaXMuX2NsaWNrU291cmNlID0gbnVsbDtcbiAgICAgICAgc3VwZXIuZGVzZWxlY3QoLi4udmFsdWVzKTtcbiAgICB9XG5cbiAgICB0b2dnbGUodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5fY2xpY2tTb3VyY2UgPSBudWxsO1xuICAgICAgICBzdXBlci50b2dnbGUodmFsdWUpO1xuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLl9jbGlja1NvdXJjZSA9IG51bGw7XG4gICAgICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgc2VsZWN0KC4uLnZhbHVlczogVFtdKSB7XG4gICAgICAgIHRoaXMuX2NsaWNrU291cmNlID0gbnVsbDtcbiAgICAgICAgc3VwZXIuc2VsZWN0KC4uLnZhbHVlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdXNlZCBpbiBleHRlbnNpb25zXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgc2V0IGNsaWNrU291cmNlKHZhbHVlOiBDbGlja1NvdXJjZSkge1xuICAgICAgICB0aGlzLl9jbGlja1NvdXJjZSA9IHZhbHVlO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVFbnRyaWVzU2VydmljZTxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT4ge1xuICAgIGxpc3Q6IExpc3RFdmVudEludGVyZmFjZTxUPjtcbiAgICByZWFkb25seSBkYXRhU291cmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm9kZURhdGFTb3VyY2U8VD4gfCBudWxsPihudWxsKTtcbiAgICAvKipcbiAgICAgKiBzY29wZSB0aGUgY3VycmVudCBsaXN0IGlzIGluLCBlLmcuIHdvcmtzcGFjZVxuICAgICAqIFRoaXMgaXMgdXNlZCBmb3IgYWRkaXRpb25hbCBjb25maWcgaW5qZWN0aW9uIGJhc2VkIG9uIHRoZSBzY29wZVxuICAgICAqL1xuICAgIHNjb3BlOiBTY29wZTtcbiAgICBnZXQgZGF0YVNvdXJjZSgpOiBOb2RlRGF0YVNvdXJjZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UkLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZGF0YVNvdXJjZSh2YWx1ZTogTm9kZURhdGFTb3VyY2U8VD4pIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHBhZ2luYXRpb25TdHJhdGVneSgpOiBQYWdpbmF0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzR2xvYmFsLmdldFBhZ2luYXRpb25TdHJhdGVneSh0aGlzLnNjb3BlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU3ViamVjdCB0aGF0IHJlZmxlY3RzIHRoZSBjdXJyZW50IGNvbHVtbnMgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIFVwZGF0ZWQgd2hlbiBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gYW5kIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi5cbiAgICAgKi9cbiAgICBjb2x1bW5zU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGlzdEl0ZW1bXT4obnVsbCk7XG4gICAgZ2V0IGNvbHVtbnMoKTogTGlzdEl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnNTdWJqZWN0LnZhbHVlO1xuICAgIH1cbiAgICBzZXQgY29sdW1ucyh2YWx1ZTogTGlzdEl0ZW1bXSkge1xuICAgICAgICB0aGlzLmNvbHVtbnNTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBjb25maWd1cmVDb2x1bW5zOiBib29sZWFuO1xuICAgIGRpc3BsYXlUeXBlOiBOb2RlRW50cmllc0Rpc3BsYXlUeXBlO1xuICAgIHNlbGVjdGlvbiA9IG5ldyBDdXN0b21TZWxlY3Rpb25Nb2RlbDxUPih0cnVlLCBbXSk7XG4gICAgZWxlbWVudEludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlO1xuICAgIG9wdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMaXN0T3B0aW9ucz4obnVsbCk7XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMkLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgb3B0aW9ucyhvcHRpb25zOiBMaXN0T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMkLm5leHQob3B0aW9ucyk7XG4gICAgfVxuICAgIGNoZWNrYm94OiBib29sZWFuO1xuICAgIGdsb2JhbE9wdGlvbnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcHRpb25JdGVtW10+KFtdKTtcbiAgICBzZXQgZ2xvYmFsT3B0aW9ucyhnbG9iYWxPcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgdGhpcy5nbG9iYWxPcHRpb25zU3ViamVjdC5uZXh0KGdsb2JhbE9wdGlvbnMpO1xuICAgIH1cbiAgICBzb3J0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGlzdFNvcnRDb25maWc+KHZvaWQgMCk7XG4gICAgZ2V0IHNvcnQoKTogTGlzdFNvcnRDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U3ViamVjdC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHNvcnQodmFsdWU6IExpc3RTb3J0Q29uZmlnKSB7XG4gICAgICAgIHRoaXMuc29ydFN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIHNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxMaXN0U29ydENvbmZpZz47XG4gICAgZHJhZ0Ryb3A6IExpc3REcmFnR3JvcENvbmZpZzxUPjtcbiAgICBjbGlja0l0ZW06IEV2ZW50RW1pdHRlcjxOb2RlQ2xpY2tFdmVudDxUPj47XG4gICAgZGJsQ2xpY2tJdGVtOiBFdmVudEVtaXR0ZXI8Tm9kZUNsaWNrRXZlbnQ8VD4+O1xuICAgIGZldGNoRGF0YTogRXZlbnRFbWl0dGVyPEZldGNoRXZlbnQ+O1xuICAgIHJlYWRvbmx5IGdyaWRDb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHcmlkQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gICAgZ2V0IGdyaWRDb25maWcoKTogR3JpZENvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRDb25maWckLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZ3JpZENvbmZpZyh2YWx1ZTogR3JpZENvbmZpZykge1xuICAgICAgICB0aGlzLmdyaWRDb25maWckLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBwcmltYXJ5SW5zdGFuY2U6IGJvb2xlYW47XG4gICAgc2luZ2xlQ2xpY2tIaW50OiAnZHluYW1pYycgfCAnc3RhdGljJztcbiAgICBkaXNhYmxlSW5maW5pdGVTY3JvbGw6IGJvb2xlYW47XG4gICAgc2Nyb2xsR3JhZGllbnRDb2xvcjogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbCgnZmZmJyk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB1aVNlcnZpY2U6IFVJU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbnRyaWVzR2xvYmFsOiBOb2RlRW50cmllc0dsb2JhbFNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgb25DbGlja2VkKHsgZXZlbnQsIC4uLmRhdGEgfTogTm9kZUNsaWNrRXZlbnQ8VD4gJiB7IGV2ZW50OiBNb3VzZUV2ZW50IH0pIHtcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24udG9nZ2xlKGRhdGEuZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kU2VsZWN0aW9uVG8oZGF0YS5lbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tJdGVtLmVtaXQoZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoZWNrYm94Q2hhbmdlZChub2RlOiBULCBjaGVja2VkOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKG5vZGUsIGNoZWNrZWQsIHRoaXMudWlTZXJ2aWNlLnNoaWZ0S2V5UHJlc3NlZCk7XG4gICAgICAgIGlmICh0aGlzLnVpU2VydmljZS5zaGlmdEtleVByZXNzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kU2VsZWN0aW9uVG8obm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hlY2tlZCAhPT0gdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlU2VsZWN0QWxsKCkge1xuICAgICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZE1vcmUoc291cmNlOiAnYnV0dG9uJyB8ICdzY3JvbGwnKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb25TdHJhdGVneSAhPT0gJ2luZmluaXRlLXNjcm9sbCcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc291cmNlID09PSAnc2Nyb2xsJyAmJiB0aGlzLmRpc2FibGVJbmZpbml0ZVNjcm9sbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE86IGZvY3VzIG5leHQgaXRlbSB3aGVuIHRyaWdnZXJlZCB2aWEgYnV0dG9uLlxuICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlIGluc3RhbmNlb2YgTm9kZURhdGFTb3VyY2VSZW1vdGUpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5kYXRhU291cmNlIGFzIE5vZGVEYXRhU291cmNlUmVtb3RlKS5sb2FkTW9yZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5oYXNNb3JlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoRGF0YS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLmRhdGFTb3VyY2UuZ2V0RGF0YSgpLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgcmVzZXQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEFsbCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuZGF0YVNvdXJjZS5nZXREYXRhKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5nZXREYXRhKCkuZXZlcnkoKG5vZGUpID0+IHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhwYW5kU2VsZWN0aW9uVG8obm9kZTogVCkge1xuICAgICAgICBjb25zdCBub2RlSW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZ2V0RGF0YSgpLmluZGV4T2Yobm9kZSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbkluZGV4ZXMgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZFxuICAgICAgICAgICAgLm1hcCgobm9kZSkgPT4gdGhpcy5kYXRhU291cmNlLmdldERhdGEoKS5pbmRleE9mKG5vZGUpKVxuICAgICAgICAgICAgLmZpbHRlcigoaW5kZXgpID0+IGluZGV4ID49IDApO1xuICAgICAgICBpZiAoTWF0aC5taW4oLi4uc2VsZWN0aW9uSW5kZXhlcykgPCBub2RlSW5kZXgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBNYXRoLm1pbiguLi5zZWxlY3Rpb25JbmRleGVzKSArIDE7IGkgPD0gbm9kZUluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QodGhpcy5kYXRhU291cmNlLmdldERhdGEoKVtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoTWF0aC5tYXgoLi4uc2VsZWN0aW9uSW5kZXhlcykgPiBub2RlSW5kZXgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBub2RlSW5kZXg7IGkgPCBNYXRoLm1heCguLi5zZWxlY3Rpb25JbmRleGVzKTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHRoaXMuZGF0YVNvdXJjZS5nZXREYXRhKClbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
200
+ }], ctorParameters: () => [{ type: i1.UIService }, { type: i2.Toast }, { type: i3.NodeEntriesGlobalService }] });
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbnRyaWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL25vZGUtZW50cmllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUF3QnZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSTVDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxvQkFBd0IsU0FBUSxjQUFpQjtJQUE5RDs7UUFFSTs7V0FFRztRQUNNLHVCQUFrQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUMzQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBNEJOLENBQUM7SUEzQkcsUUFBUSxDQUFDLEdBQUcsTUFBVztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFRO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FB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QyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsZ0RBQWdEO1FBQ2hELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBNkIsQ0FBQztZQUN4RSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkIsSUFBSSxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDVCxNQUFNLEVBQUUsQ0FBQztnQkFDYixDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F2S1Esa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHtcbiAgICBDbGlja1NvdXJjZSxcbiAgICBGZXRjaEV2ZW50LFxuICAgIEdyaWRDb25maWcsXG4gICAgSW50ZXJhY3Rpb25UeXBlLFxuICAgIExpc3REcmFnR3JvcENvbmZpZyxcbiAgICBMaXN0RXZlbnRJbnRlcmZhY2UsXG4gICAgTGlzdE9wdGlvbnMsXG4gICAgTGlzdFNvcnRDb25maWcsXG4gICAgTm9kZUNsaWNrRXZlbnQsXG4gICAgTm9kZUVudHJpZXNEYXRhVHlwZSxcbiAgICBOb2RlRW50cmllc0Rpc3BsYXlUeXBlLFxufSBmcm9tICcuLi9ub2RlLWVudHJpZXMvZW50cmllcy1tb2RlbCc7XG5pbXBvcnQgeyBOb2RlRGF0YVNvdXJjZSB9IGZyb20gJy4uL25vZGUtZW50cmllcy9ub2RlLWRhdGEtc291cmNlJztcbmltcG9ydCB7XG4gICAgTm9kZUVudHJpZXNHbG9iYWxTZXJ2aWNlLFxuICAgIFBhZ2luYXRpb25TdHJhdGVneSxcbn0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzL25vZGUtZW50cmllcy1nbG9iYWwuc2VydmljZSc7XG5cbmltcG9ydCB7IE9wdGlvbkl0ZW0sIFNjb3BlIH0gZnJvbSAnLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuLi90eXBlcy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgVUlTZXJ2aWNlIH0gZnJvbSAnLi91aS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVEYXRhU291cmNlUmVtb3RlIH0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzL25vZGUtZGF0YS1zb3VyY2UtcmVtb3RlJztcbmltcG9ydCB7IGRlbGF5LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vYWJzdHJhY3QvdG9hc3Quc2VydmljZSc7XG5cbi8qKlxuIEN1c3RvbSBzZWxlY3Rpb24gbW9kZWwgd2hpY2ggYWRkcyB0aGUgY2xpY2sgc291cmNlIG9mIHRoZSBzZWxlY3Rpb24uXG4gVVNFRCBJTiBFWFRFTlNJT05TIVxuICovXG5leHBvcnQgY2xhc3MgQ3VzdG9tU2VsZWN0aW9uTW9kZWw8VD4gZXh0ZW5kcyBTZWxlY3Rpb25Nb2RlbDxUPiB7XG4gICAgcHJpdmF0ZSBfY2xpY2tTb3VyY2U6IENsaWNrU291cmNlO1xuICAgIC8qKlxuICAgICAqIHVzZWQgaW4gZXh0ZW5zaW9uc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGNoYW5nZWRDbGlja1NvdXJjZSA9IHRoaXMuY2hhbmdlZC5waXBlKFxuICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgbWFwKChjKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5jLCBjbGlja1NvdXJjZTogdGhpcy5fY2xpY2tTb3VyY2UgfTtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgICBkZXNlbGVjdCguLi52YWx1ZXM6IFRbXSkge1xuICAgICAgICB0aGlzLl9jbGlja1NvdXJjZSA9IG51bGw7XG4gICAgICAgIHN1cGVyLmRlc2VsZWN0KC4uLnZhbHVlcyk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMuX2NsaWNrU291cmNlID0gbnVsbDtcbiAgICAgICAgc3VwZXIudG9nZ2xlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5fY2xpY2tTb3VyY2UgPSBudWxsO1xuICAgICAgICBzdXBlci5jbGVhcigpO1xuICAgIH1cblxuICAgIHNlbGVjdCguLi52YWx1ZXM6IFRbXSkge1xuICAgICAgICB0aGlzLl9jbGlja1NvdXJjZSA9IG51bGw7XG4gICAgICAgIHN1cGVyLnNlbGVjdCguLi52YWx1ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHVzZWQgaW4gZXh0ZW5zaW9uc1xuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHNldCBjbGlja1NvdXJjZSh2YWx1ZTogQ2xpY2tTb3VyY2UpIHtcbiAgICAgICAgdGhpcy5fY2xpY2tTb3VyY2UgPSB2YWx1ZTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlRW50cmllc1NlcnZpY2U8VCBleHRlbmRzIE5vZGVFbnRyaWVzRGF0YVR5cGU+IHtcbiAgICBsaXN0OiBMaXN0RXZlbnRJbnRlcmZhY2U8VD47XG4gICAgcmVhZG9ubHkgZGF0YVNvdXJjZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5vZGVEYXRhU291cmNlPFQ+IHwgbnVsbD4obnVsbCk7XG4gICAgLyoqXG4gICAgICogc2NvcGUgdGhlIGN1cnJlbnQgbGlzdCBpcyBpbiwgZS5nLiB3b3Jrc3BhY2VcbiAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIGFkZGl0aW9uYWwgY29uZmlnIGluamVjdGlvbiBiYXNlZCBvbiB0aGUgc2NvcGVcbiAgICAgKi9cbiAgICBzY29wZTogU2NvcGU7XG4gICAgZ2V0IGRhdGFTb3VyY2UoKTogTm9kZURhdGFTb3VyY2U8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlJC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IGRhdGFTb3VyY2UodmFsdWU6IE5vZGVEYXRhU291cmNlPFQ+KSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBwYWdpbmF0aW9uU3RyYXRlZ3koKTogUGFnaW5hdGlvblN0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllc0dsb2JhbC5nZXRQYWdpbmF0aW9uU3RyYXRlZ3kodGhpcy5zY29wZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN1YmplY3QgdGhhdCByZWZsZWN0cyB0aGUgY3VycmVudCBjb2x1bW5zIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBVcGRhdGVkIHdoZW4gbG9hZGluZyBjb25maWd1cmF0aW9uIGFuZCB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uXG4gICAgICovXG4gICAgY29sdW1uc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgY29sdW1uczogTGlzdEl0ZW1bXTsgZnJvbVVzZXI6IGJvb2xlYW4gfT4obnVsbCk7XG4gICAgZ2V0IGNvbHVtbnMoKTogTGlzdEl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbnNTdWJqZWN0LnZhbHVlPy5jb2x1bW5zO1xuICAgIH1cbiAgICBzZXQgY29sdW1ucyhjb2x1bW5zOiBMaXN0SXRlbVtdKSB7XG4gICAgICAgIHRoaXMuY29sdW1uc1N1YmplY3QubmV4dCh7IGNvbHVtbnMsIGZyb21Vc2VyOiB0cnVlIH0pO1xuICAgIH1cbiAgICBjb25maWd1cmVDb2x1bW5zOiBib29sZWFuO1xuICAgIGRpc3BsYXlUeXBlOiBOb2RlRW50cmllc0Rpc3BsYXlUeXBlO1xuICAgIHNlbGVjdGlvbiA9IG5ldyBDdXN0b21TZWxlY3Rpb25Nb2RlbDxUPih0cnVlLCBbXSk7XG4gICAgZWxlbWVudEludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlO1xuICAgIG9wdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMaXN0T3B0aW9ucz4obnVsbCk7XG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMkLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgb3B0aW9ucyhvcHRpb25zOiBMaXN0T3B0aW9ucykge1xuICAgICAgICB0aGlzLm9wdGlvbnMkLm5leHQob3B0aW9ucyk7XG4gICAgfVxuICAgIGNoZWNrYm94OiBib29sZWFuO1xuICAgIGdsb2JhbE9wdGlvbnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcHRpb25JdGVtW10+KFtdKTtcbiAgICBzZXQgZ2xvYmFsT3B0aW9ucyhnbG9iYWxPcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgdGhpcy5nbG9iYWxPcHRpb25zU3ViamVjdC5uZXh0KGdsb2JhbE9wdGlvbnMpO1xuICAgIH1cbiAgICBzb3J0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGlzdFNvcnRDb25maWc+KHZvaWQgMCk7XG4gICAgZ2V0IHNvcnQoKTogTGlzdFNvcnRDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U3ViamVjdC52YWx1ZTtcbiAgICB9XG4gICAgc2V0IHNvcnQodmFsdWU6IExpc3RTb3J0Q29uZmlnKSB7XG4gICAgICAgIHRoaXMuc29ydFN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIHNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxMaXN0U29ydENvbmZpZz47XG4gICAgZHJhZ0Ryb3A6IExpc3REcmFnR3JvcENvbmZpZzxUPjtcbiAgICBjbGlja0l0ZW06IEV2ZW50RW1pdHRlcjxOb2RlQ2xpY2tFdmVudDxUPj47XG4gICAgZGJsQ2xpY2tJdGVtOiBFdmVudEVtaXR0ZXI8Tm9kZUNsaWNrRXZlbnQ8VD4+O1xuICAgIGZldGNoRGF0YTogRXZlbnRFbWl0dGVyPEZldGNoRXZlbnQ+O1xuICAgIHJlYWRvbmx5IGdyaWRDb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHcmlkQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gICAgZ2V0IGdyaWRDb25maWcoKTogR3JpZENvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRDb25maWckLnZhbHVlO1xuICAgIH1cbiAgICBzZXQgZ3JpZENvbmZpZyh2YWx1ZTogR3JpZENvbmZpZykge1xuICAgICAgICB0aGlzLmdyaWRDb25maWckLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBwcmltYXJ5SW5zdGFuY2U6IGJvb2xlYW47XG4gICAgc2luZ2xlQ2xpY2tIaW50OiAnZHluYW1pYycgfCAnc3RhdGljJztcbiAgICBkaXNhYmxlSW5maW5pdGVTY3JvbGw6IGJvb2xlYW47XG4gICAgc2Nyb2xsR3JhZGllbnRDb2xvcjogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbCgnZmZmJyk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB1aVNlcnZpY2U6IFVJU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0b2FzdDogVG9hc3QsXG4gICAgICAgIHByaXZhdGUgZW50cmllc0dsb2JhbDogTm9kZUVudHJpZXNHbG9iYWxTZXJ2aWNlLFxuICAgICkge31cblxuICAgIG9uQ2xpY2tlZCh7IGV2ZW50LCAuLi5kYXRhIH06IE5vZGVDbGlja0V2ZW50PFQ+ICYgeyBldmVudDogTW91c2VFdmVudCB9KSB7XG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnRvZ2dsZShkYXRhLmVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZFNlbGVjdGlvblRvKGRhdGEuZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrSXRlbS5lbWl0KGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGVja2JveENoYW5nZWQobm9kZTogVCwgY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy51aVNlcnZpY2Uuc2hpZnRLZXlQcmVzc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZFNlbGVjdGlvblRvKG5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrZWQgIT09IHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRNb3JlKHNvdXJjZTogJ2J1dHRvbicgfCAnc2Nyb2xsJyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uU3RyYXRlZ3kgIT09ICdpbmZpbml0ZS1zY3JvbGwnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZSA9PT0gJ3Njcm9sbCcgJiYgdGhpcy5kaXNhYmxlSW5maW5pdGVTY3JvbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPOiBmb2N1cyBuZXh0IGl0ZW0gd2hlbiB0cmlnZ2VyZWQgdmlhIGJ1dHRvbi5cbiAgICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIE5vZGVEYXRhU291cmNlUmVtb3RlKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZGF0YVNvdXJjZSBhcyBOb2RlRGF0YVNvdXJjZVJlbW90ZSkubG9hZE1vcmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuaGFzTW9yZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaERhdGEuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogdGhpcy5kYXRhU291cmNlLmdldERhdGEoKS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIHJlc2V0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdCguLi50aGlzLmRhdGFTb3VyY2UuZ2V0RGF0YSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UuZ2V0RGF0YSgpLmV2ZXJ5KChub2RlKSA9PiB0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cGFuZFNlbGVjdGlvblRvKG5vZGU6IFQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUluZGV4ID0gdGhpcy5kYXRhU291cmNlLmdldERhdGEoKS5pbmRleE9mKG5vZGUpO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25JbmRleGVzID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRcbiAgICAgICAgICAgIC5tYXAoKG5vZGUpID0+IHRoaXMuZGF0YVNvdXJjZS5nZXREYXRhKCkuaW5kZXhPZihub2RlKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGluZGV4KSA9PiBpbmRleCA+PSAwKTtcbiAgICAgICAgaWYgKE1hdGgubWluKC4uLnNlbGVjdGlvbkluZGV4ZXMpIDwgbm9kZUluZGV4KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gTWF0aC5taW4oLi4uc2VsZWN0aW9uSW5kZXhlcykgKyAxOyBpIDw9IG5vZGVJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHRoaXMuZGF0YVNvdXJjZS5nZXREYXRhKClbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKE1hdGgubWF4KC4uLnNlbGVjdGlvbkluZGV4ZXMpID4gbm9kZUluZGV4KSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gbm9kZUluZGV4OyBpIDwgTWF0aC5tYXgoLi4uc2VsZWN0aW9uSW5kZXhlcyk7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdCh0aGlzLmRhdGFTb3VyY2UuZ2V0RGF0YSgpW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5Ecm9wZG93bihkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsIG5vZGU6IFQsIG9uRG9uZTogKCkgPT4gdm9pZCA9IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5pbmNsdWRlcyhub2RlKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdChub2RlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXYWl0IGZvciB0aGUgbWVudSB0byByZWZsZWN0IGNoYW5nZWQgb3B0aW9ucy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBkcm9wZG93bi5jYWxsYmFja09iamVjdHMgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZCBhcyB1bmtub3duIGFzIE5vZGVbXTtcbiAgICAgICAgICAgIGRyb3Bkb3duLm5nT25DaGFuZ2VzKCk7XG4gICAgICAgICAgICBpZiAoZHJvcGRvd24uY2FuU2hvd0Ryb3Bkb3duKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAob25Eb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRG9uZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC50b2FzdCgnTk9fQVZBSUxBQkxFX09QVElPTlMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -88,7 +88,7 @@ export class NodeHelperService {
88
88
  if (icon == 'none' && !useNoneAsFallback)
89
89
  return null;
90
90
  const result = this.apiHelpersService.getServerUrl() + '/../ccimages/licenses/' + icon + '.svg';
91
- return this.repoUrlService.withCurrentOrigin(result);
91
+ return result;
92
92
  }
93
93
  /**
94
94
  * Return a translated name of a license name for a node
@@ -185,6 +185,11 @@ export class NodeHelperService {
185
185
  target.properties = source.properties;
186
186
  target.name = source.name;
187
187
  target.title = source.title;
188
+ target.iconURL = source.iconURL;
189
+ target.preview = source.preview;
190
+ target.authorityName = source.authorityName;
191
+ target.profile = source.profile;
192
+ target.status = source.status;
188
193
  }
189
194
  isNodeCollection(node) {
190
195
  return node.aspects?.includes(RestConstants.CCM_ASPECT_COLLECTION) || !!node.collection;
@@ -198,9 +203,23 @@ export class NodeHelperService {
198
203
  }
199
204
  let data = null;
200
205
  if (this.isNodeCollection(node)) {
206
+ const scope = node.collection?.scope;
207
+ const type = node.collection?.type;
208
+ const queryParams = {
209
+ id: node.ref.id,
210
+ };
211
+ if (type === RestConstants.COLLECTIONTYPE_EDITORIAL) {
212
+ queryParams.scope = RestConstants.COLLECTIONSCOPE_TYPE_EDITORIAL;
213
+ }
214
+ else if (type === RestConstants.COLLECTIONTYPE_MEDIA_CENTER) {
215
+ queryParams.scope = RestConstants.COLLECTIONSCOPE_TYPE_MEDIA_CENTER;
216
+ }
217
+ else if (scope === RestConstants.COLLECTIONSCOPE_CUSTOM_PUBLIC) {
218
+ queryParams.scope = RestConstants.COLLECTIONSCOPE_ALL;
219
+ }
201
220
  data = {
202
221
  routerLink: UIConstants.ROUTER_PREFIX + 'collections',
203
- queryParams: { id: node.ref.id },
222
+ queryParams,
204
223
  };
205
224
  }
206
225
  else {
@@ -240,10 +259,23 @@ export class NodeHelperService {
240
259
  data.queryParams.redirectFromSSO = null;
241
260
  return data.queryParams;
242
261
  }
243
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeHelperService, deps: [{ token: i1.TranslateService }, { token: i2.ApiHelpersService }, { token: i2.NetworkService }, { token: i2.ConfigService }, { token: i3.RepoUrlService }, { token: ASSETS_BASE_PATH, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
244
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeHelperService, providedIn: 'root' }); }
262
+ /**
263
+ * Returns true if this node is a copy of another node, just used as a publish target.
264
+ */
265
+ isNodePublishedCopy(o) {
266
+ return !!o.properties?.[RestConstants.CCM_PROP_PUBLISHED_ORIGINAL]?.[0];
267
+ }
268
+ /**
269
+ * returns true if this is a revoked node
270
+ * (published copy that has been revoked)
271
+ */
272
+ isNodeRevoked(node) {
273
+ return node?.aspects?.includes(RestConstants.CCM_ASPECT_REVOKED);
274
+ }
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeHelperService, deps: [{ token: i1.TranslateService }, { token: i2.ApiHelpersService }, { token: i2.NetworkService }, { token: i2.ConfigService }, { token: i3.RepoUrlService }, { token: ASSETS_BASE_PATH, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
276
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeHelperService, providedIn: 'root' }); }
245
277
  }
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodeHelperService, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeHelperService, decorators: [{
247
279
  type: Injectable,
248
280
  args: [{
249
281
  providedIn: 'root',
@@ -254,4 +286,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
254
286
  type: Inject,
255
287
  args: [ASSETS_BASE_PATH]
256
288
  }] }] });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvc2VydmljZXMvbm9kZS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQU1ILGFBQWEsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSXJDLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDYyxTQUEyQixFQUMzQixpQkFBb0MsRUFDcEMsY0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIsY0FBOEIsRUFDTSxjQUFzQjtRQUwxRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDTSxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtJQUNyRSxDQUFDO0lBRUcsc0JBQXNCLENBQUMsSUFBVTtRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdELElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNsQixJQUFJLFNB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SUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLEdBQUc7b0JBQ0gsVUFBVSxFQUFFLFdBQVcsQ0FBQyxhQUFhLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDL0QsV0FBVyxFQUFFO3dCQUNULFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO3dCQUMzQyxRQUFRLEVBQUcsSUFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7d0JBQ2pELGtCQUFrQixFQUFHLElBQXFCLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLEVBQUU7cUJBQ3hFO2lCQUNKLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsQ0FBQztRQUNELG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7OEdBbFBRLGlCQUFpQiw0S0FPRixnQkFBZ0I7a0hBUC9CLGlCQUFpQixjQUZkLE1BQU07OzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVFRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBcGlIZWxwZXJzU2VydmljZSxcbiAgICBDb25maWdTZXJ2aWNlLFxuICAgIE5ldHdvcmtTZXJ2aWNlLFxuICAgIE5vZGUsXG4gICAgUHJvcG9zYWxOb2RlLFxuICAgIFJlc3RDb25zdGFudHMsXG59IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0ICogYXMgV29ya2Zsb3cgZnJvbSAnLi4vdHlwZXMvd29ya2Zsb3cnO1xuaW1wb3J0IHsgUmVwb1VybFNlcnZpY2UgfSBmcm9tICcuL3JlcG8tdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVJQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbC91aS1jb25zdGFudHMnO1xuaW1wb3J0IHsgQVNTRVRTX0JBU0VfUEFUSCB9IGZyb20gJy4uL3R5cGVzL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZUhlbHBlclNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYXBpSGVscGVyc1NlcnZpY2U6IEFwaUhlbHBlcnNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgbmV0d29ya1NlcnZpY2U6IE5ldHdvcmtTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHJlcG9VcmxTZXJ2aWNlOiBSZXBvVXJsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBU1NFVFNfQkFTRV9QQVRIKSBwcml2YXRlIGFzc2V0c0Jhc2VQYXRoOiBzdHJpbmcsXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGdldENvbGxlY3Rpb25TY29wZUluZm8obm9kZTogTm9kZSk6IHsgaWNvbjogc3RyaW5nOyBzY29wZU5hbWU6IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBub2RlLmNvbGxlY3Rpb24gPyBub2RlLmNvbGxlY3Rpb24uc2NvcGUgOiBudWxsO1xuICAgICAgICBsZXQgaWNvbiA9ICdoZWxwJztcbiAgICAgICAgbGV0IHNjb3BlTmFtZSA9ICdVTktOT1dOJztcbiAgICAgICAgaWYgKHNjb3BlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05TQ09QRV9NWSkge1xuICAgICAgICAgICAgaWNvbiA9ICdsb2NrJztcbiAgICAgICAgICAgIHNjb3BlTmFtZSA9ICdNWSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2NvcGUgPT09IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlNDT1BFX09SR0EgfHxcbiAgICAgICAgICAgIHNjb3BlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05TQ09QRV9DVVNUT01cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpY29uID0gJ2dyb3VwJztcbiAgICAgICAgICAgIHNjb3BlTmFtZSA9ICdTSEFSRUQnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHNjb3BlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05TQ09QRV9BTEwgfHxcbiAgICAgICAgICAgIHNjb3BlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05TQ09QRV9DVVNUT01fUFVCTElDXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWNvbiA9ICdsYW5ndWFnZSc7XG4gICAgICAgICAgICBzY29wZU5hbWUgPSAnUFVCTElDJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5jb2xsZWN0aW9uPy50eXBlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05UWVBFX0VESVRPUklBTCkge1xuICAgICAgICAgICAgaWNvbiA9ICdzdGFyJztcbiAgICAgICAgICAgIHNjb3BlTmFtZSA9ICdUWVBFX0VESVRPUklBTCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuY29sbGVjdGlvbj8udHlwZSA9PT0gUmVzdENvbnN0YW50cy5DT0xMRUNUSU9OVFlQRV9NRURJQV9DRU5URVIpIHtcbiAgICAgICAgICAgIGljb24gPSAnYnVzaW5lc3MnO1xuICAgICAgICAgICAgc2NvcGVOYW1lID0gJ1RZUEVfTUVESUFfQ0VOVEVSJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uLCBzY29wZU5hbWUgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBsaWNlbnNlIGljb24gb2YgYSBub2RlXG4gICAgICovXG4gICAgYXN5bmMgZ2V0TGljZW5zZUljb24obm9kZTogTm9kZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIC8vIHByZWZlciBtYW51YWwgbWFwcGluZyBpbnN0ZWFkIG9mIGJhY2tlbmQgZGF0YSB0byBzdXBwb3J0IGN1c3RvbSBzdGF0ZXMgZnJvbSBsb2NhbCBlZGl0c1xuICAgICAgICBjb25zdCBsaWNlbnNlID0gbm9kZS5wcm9wZXJ0aWVzPy5bUmVzdENvbnN0YW50cy5DQ01fUFJPUF9MSUNFTlNFXT8uWzBdO1xuICAgICAgICBpZiAobGljZW5zZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGljZW5zZUljb25CeVN0cmluZyhsaWNlbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZS5saWNlbnNlID8gdGhpcy5yZXBvVXJsU2VydmljZS5nZXRSZXBvVXJsKG5vZGUubGljZW5zZS5pY29uLCBub2RlKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgbGljZW5zZSBpY29uIGJ5IHVzaW5nIHRoZSBwcm9wZXJ0eSB2YWx1ZSBzdHJpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGljZW5zZUljb25CeVN0cmluZyhzdHJpbmc6IFN0cmluZywgdXNlTm9uZUFzRmFsbGJhY2sgPSB0cnVlKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGljb24gPSBzdHJpbmcucmVwbGFjZSgvXy9nLCAnLScpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChpY29uID09ICcnKSBpY29uID0gJ25vbmUnO1xuXG4gICAgICAgIGNvbnN0IExJQ0VOU0VfSUNPTlMgPSBbXG4gICAgICAgICAgICAnY2MtMCcsXG4gICAgICAgICAgICAnY2MtYnktbmMnLFxuICAgICAgICAgICAgJ2NjLWJ5LW5jLW5kJyxcbiAgICAgICAgICAgICdjYy1ieS1uYy1zYScsXG4gICAgICAgICAgICAnY2MtYnktbmQnLFxuICAgICAgICAgICAgJ2NjLWJ5LXNhJyxcbiAgICAgICAgICAgICdjYy1ieScsXG4gICAgICAgICAgICAnY29weXJpZ2h0LWZyZWUnLFxuICAgICAgICAgICAgJ2NvcHlyaWdodC1saWNlbnNlJyxcbiAgICAgICAgICAgICdjdXN0b20nLFxuICAgICAgICAgICAgJ2VkdS1uYy1uZC1ub0RvJyxcbiAgICAgICAgICAgICdlZHUtbmMtbmQnLFxuICAgICAgICAgICAgJ2VkdS1wLW5yLW5kLW5vRG8nLFxuICAgICAgICAgICAgJ2VkdS1wLW5yLW5kJyxcbiAgICAgICAgICAgICdub25lJyxcbiAgICAgICAgICAgICdwZG0nLFxuICAgICAgICAgICAgJ3NjaHVsZnVuaycsXG4gICAgICAgICAgICAndW50ZXJyaWNodHMtdW5kLWxlaHJtZWRpZW4nLFxuICAgICAgICBdO1xuICAgICAgICBpZiAoTElDRU5TRV9JQ09OUy5pbmRleE9mKGljb24pID09IC0xICYmICF1c2VOb25lQXNGYWxsYmFjaykgcmV0dXJuIG51bGw7IC8vIGljb249J25vbmUnO1xuICAgICAgICBpZiAoaWNvbiA9PSAnbm9uZScgJiYgIXVzZU5vbmVBc0ZhbGxiYWNrKSByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID1cbiAgICAgICAgICAgIHRoaXMuYXBpSGVscGVyc1NlcnZpY2UuZ2V0U2VydmVyVXJsKCkgKyAnLy4uL2NjaW1hZ2VzL2xpY2Vuc2VzLycgKyBpY29uICsgJy5zdmcnO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvVXJsU2VydmljZS53aXRoQ3VycmVudE9yaWdpbihyZXN1bHQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSB0cmFuc2xhdGVkIG5hbWUgb2YgYSBsaWNlbnNlIG5hbWUgZm9yIGEgbm9kZVxuICAgICAqIEBwYXJhbSBub2RlXG4gICAgICogQHBhcmFtIHRyYW5zbGF0ZVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd8YW55fHN0cmluZ3xhbnl8c3RyaW5nfGFueXxzdHJpbmd8YW55fHN0cmluZ3xhbnl8c3RyaW5nfVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRMaWNlbnNlTmFtZShub2RlOiBOb2RlKSB7XG4gICAgICAgIGxldCBwcm9wID0gbm9kZS5wcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfTElDRU5TRV0/LlswXTtcbiAgICAgICAgaWYgKCFwcm9wKSBwcm9wID0gJyc7XG4gICAgICAgIHJldHVybiB0aGlzLmdldExpY2Vuc2VOYW1lQnlTdHJpbmcocHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgdHJhbnNsYXRlZCBuYW1lIGZvciBhIGxpY2Vuc2Ugc3RyaW5nXG4gICAgICogQHBhcmFtIHN0cmluZ1xuICAgICAqIEBwYXJhbSB0cmFuc2xhdGVcbiAgICAgKiBAcmV0dXJucyB7YW55fVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRMaWNlbnNlTmFtZUJ5U3RyaW5nKG5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAobmFtZSA9PSAnJykge1xuICAgICAgICAgICAgbmFtZSA9ICdOT05FJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnTElDRU5TRS5OQU1FUy4nICsgbmFtZSk7XG4gICAgICAgIC8vIHJldHVybiBuYW1lLnJlcGxhY2UoL18vZyxcIi1cIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJuIHRoZSBMaWNlbnNlIFVSTCAoZS5nLiBmb3IgQ0NfQlkgbGljZW5zZXMpIGZvciBhIGxpY2Vuc2Ugc3RyaW5nIGFuZCB2ZXJzaW9uXG4gICAgICogQHBhcmFtIGxpY2Vuc2VQcm9wZXJ0eVxuICAgICAqIEBwYXJhbSBsaWNlbnNlVmVyc2lvblxuICAgICAqIEBwYXJhbSBsaWNlbnNlTG9jYWxlXG4gICAgICovXG4gICAgcHVibGljIGdldExpY2Vuc2VVcmxCeVN0cmluZyhcbiAgICAgICAgbGljZW5zZVByb3BlcnR5OiBzdHJpbmcsXG4gICAgICAgIGxpY2Vuc2VWZXJzaW9uOiBzdHJpbmcsXG4gICAgICAgIGxpY2Vuc2VMb2NhbGU6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgY29uc3QgaXNWNCA9IGxpY2Vuc2VWZXJzaW9uID09PSAnNC4wJztcbiAgICAgICAgY29uc3QgbG9jYWxlID0gaXNWNCB8fCAhbGljZW5zZUxvY2FsZSA/ICcnIDogbGljZW5zZUxvY2FsZS50b0xvd2VyQ2FzZSgpICsgJy8nO1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVcbiAgICAgICAgICAgIC5nZXQoYExJQ0VOU0UuVVJMUy4ke2xpY2Vuc2VQcm9wZXJ0eX1gLCB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbjogbGljZW5zZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSB0cmFuc2xhdGlvbiBmYWlscyBpdCBtaWdodCByZXR1cm4gc29tZXRoaW5nIGxpa2UgJ0xJQ0VOU0UuVVJMUy51bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAgIGlmICghdXJsIHx8IHVybC5zdGFydHNXaXRoKCdMSUNFTlNFLlVSTFMnKSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNWNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSB0aGUgaW50ZXJuYXRpb25hbCA0LjAgdmVyc2lvbiBzdXBwb3J0cyBkaWZmZXJlbnQgbGFuZ3VhZ2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGlzIHBhcnQgbmVlZHMgdG8gYmUgcmVtb3ZlZCBmb3IgYWxsIG90aGVyIHZlcnNpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgnLmRlJywgJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmw7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRXb3JrZmxvd1N0YXR1c0J5SWQoaWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCB3b3JrZmxvd3MgPSB0aGlzLmdldFdvcmtmbG93cygpO1xuICAgICAgICByZXR1cm4gd29ya2Zsb3dzLmZpbHRlcigodykgPT4gdy5pZCA9PT0gaWQpPy5bMF07XG4gICAgfVxuICAgIHB1YmxpYyBnZXRXb3JrZmxvd1N0YXR1cyhub2RlOiBOb2RlLCB1c2VGcm9tQ29uZmlnID0gZmFsc2UpOiBXb3JrZmxvdy5Xb3JrZmxvd0RlZmluaXRpb25TdGF0dXMge1xuICAgICAgICBsZXQgdmFsdWUgPSBub2RlLnByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5DQ01fUFJPUF9XRl9TVEFUVVNdPy5bMF07XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRXb3JrZmxvd1N0YXR1cyh1c2VGcm9tQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3VycmVudDogdGhpcy5nZXRXb3JrZmxvd1N0YXR1c0J5SWQodmFsdWUpLFxuICAgICAgICAgICAgaW5pdGlhbDogdGhpcy5nZXRXb3JrZmxvd1N0YXR1c0J5SWQodmFsdWUpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXREZWZhdWx0V29ya2Zsb3dTdGF0dXModXNlRnJvbUNvbmZpZyA9IGZhbHNlKTogV29ya2Zsb3cuV29ya2Zsb3dEZWZpbml0aW9uU3RhdHVzIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAgICAgY3VycmVudDogbnVsbCBhcyBXb3JrZmxvdy5Xb3JrZmxvd0RlZmluaXRpb24sXG4gICAgICAgICAgICBpbml0aWFsOiBudWxsIGFzIFdvcmtmbG93LldvcmtmbG93RGVmaW5pdGlvbixcbiAgICAgICAgfTtcbiAgICAgICAgcmVzdWx0LmluaXRpYWwgPSB0aGlzLmdldFdvcmtmbG93cygpWzBdO1xuICAgICAgICBsZXQgZGVmYXVsdFN0YXR1czogc3RyaW5nID0gbnVsbDtcbiAgICAgICAgaWYgKHVzZUZyb21Db25maWcpIHtcbiAgICAgICAgICAgIGRlZmF1bHRTdGF0dXMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuaW5zdGFudCgnd29ya2Zsb3cuZGVmYXVsdFN0YXR1cycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWZhdWx0U3RhdHVzKSB7XG4gICAgICAgICAgICByZXN1bHQuY3VycmVudCA9IHRoaXMuZ2V0V29ya2Zsb3dzKCkuZmluZCgodykgPT4gdy5pZCA9PT0gZGVmYXVsdFN0YXR1cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQuY3VycmVudCA9IHJlc3VsdC5pbml0aWFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGdldFdvcmtmbG93cygpOiBXb3JrZmxvdy5Xb3JrZmxvd0RlZmluaXRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuaW5zdGFudCgnd29ya2Zsb3cud29ya2Zsb3dzJywgW1xuICAgICAgICAgICAgV29ya2Zsb3cuV09SS0ZMT1dfU1RBVFVTX1VOQ0hFQ0tFRCxcbiAgICAgICAgICAgIFdvcmtmbG93LldPUktGTE9XX1NUQVRVU19UT19DSEVDSyxcbiAgICAgICAgICAgIFdvcmtmbG93LldPUktGTE9XX1NUQVRVU19IQVNGTEFXUyxcbiAgICAgICAgICAgIFdvcmtmbG93LldPUktGTE9XX1NUQVRVU19DSEVDS0VELFxuICAgICAgICBdKTtcbiAgICB9XG4gICAgY29weURhdGFUb05vZGU8VCBleHRlbmRzIE5vZGU+KHRhcmdldDogVCwgc291cmNlOiBUKSB7XG4gICAgICAgIHRhcmdldC5wcm9wZXJ0aWVzID0gc291cmNlLnByb3BlcnRpZXM7XG4gICAgICAgIHRhcmdldC5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgICAgIHRhcmdldC50aXRsZSA9IHNvdXJjZS50aXRsZTtcbiAgICB9XG4gICAgaXNOb2RlQ29sbGVjdGlvbihub2RlOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBub2RlLmFzcGVjdHM/LmluY2x1ZGVzKFJlc3RDb25zdGFudHMuQ0NNX0FTUEVDVF9DT0xMRUNUSU9OKSB8fCAhIW5vZGUuY29sbGVjdGlvbjtcbiAgICB9XG4gICAgcHVibGljIGdldFNvdXJjZUljb25QYXRoKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5hc3NldHNCYXNlUGF0aCA/PyAnJykgKyAnYXNzZXRzL2ltYWdlcy9zb3VyY2VzLycgKyBzcmMudG9Mb3dlckNhc2UoKSArICcucG5nJztcbiAgICB9XG5cbiAgICBnZXROb2RlTGluayhtb2RlOiAncm91dGVyTGluaycgfCAncXVlcnlQYXJhbXMnLCBub2RlOiBOb2RlKSB7XG4gICAgICAgIGlmICghbm9kZT8ucmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGF0YTogeyByb3V0ZXJMaW5rOiBzdHJpbmc7IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgfSA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmlzTm9kZUNvbGxlY3Rpb24obm9kZSkpIHtcbiAgICAgICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgcm91dGVyTGluazogVUlDb25zdGFudHMuUk9VVEVSX1BSRUZJWCArICdjb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgaWQ6IG5vZGUucmVmLmlkIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG5vZGUuaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGF0aDtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIG5vZGUucHJvcGVydGllcz8uW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfRURVU0NPUEVOQU1FXT8uWzBdID09PVxuICAgICAgICAgICAgICAgICAgICBSZXN0Q29uc3RhbnRzLlNBRkVfU0NPUEVcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCA9IFVJQ29uc3RhbnRzLlJPVVRFUl9QUkVGSVggKyAnd29ya3NwYWNlL3NhZmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGggPSBVSUNvbnN0YW50cy5ST1VURVJfUFJFRklYICsgJ3dvcmtzcGFjZSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IHBhdGgsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGlkOiBub2RlLnJlZi5pZCB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUucmVmKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZnJvbUhvbWUgPSB0aGlzLm5ldHdvcmtTZXJ2aWNlLmlzRnJvbUhvbWVSZXBvc2l0b3J5KG5vZGUpO1xuICAgICAgICAgICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFVJQ29uc3RhbnRzLlJPVVRFUl9QUkVGSVggKyAncmVuZGVyLycgKyBub2RlLnJlZi5pZCxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk6IGZyb21Ib21lID8gbnVsbCA6IG5vZGUucmVmLnJlcG8sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wb3NhbDogKG5vZGUgYXMgUHJvcG9zYWxOb2RlKS5wcm9wb3NhbD8ucmVmLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcG9zYWxDb2xsZWN0aW9uOiAobm9kZSBhcyBQcm9wb3NhbE5vZGUpLnByb3Bvc2FsQ29sbGVjdGlvbj8ucmVmLmlkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9kZSA9PT0gJ3JvdXRlckxpbmsnKSB7XG4gICAgICAgICAgICByZXR1cm4gJy8nICsgZGF0YS5yb3V0ZXJMaW5rO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVuZm9yY2UgY2xlYXJpbmcgb2YgcGFyYW1ldGVycyB3aGljaCBzaG91bGQgb25seSBiZSBjb25zdW1lZCBvbmNlXG4gICAgICAgIGRhdGEucXVlcnlQYXJhbXMucmVkaXJlY3RGcm9tU1NPID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIGRhdGEucXVlcnlQYXJhbXM7XG4gICAgfVxufVxuIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvc2VydmljZXMvbm9kZS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQU9ILGFBQWEsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSXJDLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDYyxTQUEyQixFQUMzQixpQkFBb0MsRUFDcEMsY0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIsY0FBOEIsRUFDTSxjQUFzQjtRQUwxRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDTSxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtJQUNyRSxDQUFDO0lBRUcsc0JBQXNCLENBQUMsSUFBVTtRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdELElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNsQixJQUFJLFNB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Q0FBQyxHQUFHLENBQUMsSUFBSTt3QkFDM0MsUUFBUSxFQUFHLElBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFO3dCQUNqRCxrQkFBa0IsRUFBRyxJQUFxQixDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxFQUFFO3FCQUN4RTtpQkFDSixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN4QixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxDQUFPO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsSUFBVTtRQUNwQixPQUFPLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7K0dBbFJRLGlCQUFpQiw0S0FPRixnQkFBZ0I7bUhBUC9CLGlCQUFpQixjQUZkLE1BQU07OzRGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVFRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBcGlIZWxwZXJzU2VydmljZSxcbiAgICBDb25maWdTZXJ2aWNlLFxuICAgIFVzZXIsXG4gICAgTmV0d29ya1NlcnZpY2UsXG4gICAgTm9kZSxcbiAgICBQcm9wb3NhbE5vZGUsXG4gICAgUmVzdENvbnN0YW50cyxcbn0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgKiBhcyBXb3JrZmxvdyBmcm9tICcuLi90eXBlcy93b3JrZmxvdyc7XG5pbXBvcnQgeyBSZXBvVXJsU2VydmljZSB9IGZyb20gJy4vcmVwby11cmwuc2VydmljZSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVUlDb25zdGFudHMgfSBmcm9tICcuLi91dGlsL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBBU1NFVFNfQkFTRV9QQVRIIH0gZnJvbSAnLi4vdHlwZXMvaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlSGVscGVyU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhcGlIZWxwZXJzU2VydmljZTogQXBpSGVscGVyc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVwb1VybFNlcnZpY2U6IFJlcG9VcmxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFTU0VUU19CQVNFX1BBVEgpIHByaXZhdGUgYXNzZXRzQmFzZVBhdGg6IHN0cmluZyxcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgZ2V0Q29sbGVjdGlvblNjb3BlSW5mbyhub2RlOiBOb2RlKTogeyBpY29uOiBzdHJpbmc7IHNjb3BlTmFtZTogc3RyaW5nIH0ge1xuICAgICAgICBjb25zdCBzY29wZSA9IG5vZGUuY29sbGVjdGlvbiA/IG5vZGUuY29sbGVjdGlvbi5zY29wZSA6IG51bGw7XG4gICAgICAgIGxldCBpY29uID0gJ2hlbHAnO1xuICAgICAgICBsZXQgc2NvcGVOYW1lID0gJ1VOS05PV04nO1xuICAgICAgICBpZiAoc2NvcGUgPT09IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlNDT1BFX01ZKSB7XG4gICAgICAgICAgICBpY29uID0gJ2xvY2snO1xuICAgICAgICAgICAgc2NvcGVOYW1lID0gJ01ZJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBzY29wZSA9PT0gUmVzdENvbnN0YW50cy5DT0xMRUNUSU9OU0NPUEVfT1JHQSB8fFxuICAgICAgICAgICAgc2NvcGUgPT09IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlNDT1BFX0NVU1RPTVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGljb24gPSAnZ3JvdXAnO1xuICAgICAgICAgICAgc2NvcGVOYW1lID0gJ1NIQVJFRCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2NvcGUgPT09IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlNDT1BFX0FMTCB8fFxuICAgICAgICAgICAgc2NvcGUgPT09IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlNDT1BFX0NVU1RPTV9QVUJMSUNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpY29uID0gJ2xhbmd1YWdlJztcbiAgICAgICAgICAgIHNjb3BlTmFtZSA9ICdQVUJMSUMnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLmNvbGxlY3Rpb24/LnR5cGUgPT09IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlRZUEVfRURJVE9SSUFMKSB7XG4gICAgICAgICAgICBpY29uID0gJ3N0YXInO1xuICAgICAgICAgICAgc2NvcGVOYW1lID0gJ1RZUEVfRURJVE9SSUFMJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5jb2xsZWN0aW9uPy50eXBlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05UWVBFX01FRElBX0NFTlRFUikge1xuICAgICAgICAgICAgaWNvbiA9ICdidXNpbmVzcyc7XG4gICAgICAgICAgICBzY29wZU5hbWUgPSAnVFlQRV9NRURJQV9DRU5URVInO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb24sIHNjb3BlTmFtZSB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGxpY2Vuc2UgaWNvbiBvZiBhIG5vZGVcbiAgICAgKi9cbiAgICBhc3luYyBnZXRMaWNlbnNlSWNvbihub2RlOiBOb2RlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgLy8gcHJlZmVyIG1hbnVhbCBtYXBwaW5nIGluc3RlYWQgb2YgYmFja2VuZCBkYXRhIHRvIHN1cHBvcnQgY3VzdG9tIHN0YXRlcyBmcm9tIGxvY2FsIGVkaXRzXG4gICAgICAgIGNvbnN0IGxpY2Vuc2UgPSBub2RlLnByb3BlcnRpZXM/LltSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX0xJQ0VOU0VdPy5bMF07XG4gICAgICAgIGlmIChsaWNlbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaWNlbnNlSWNvbkJ5U3RyaW5nKGxpY2Vuc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmxpY2Vuc2UgPyB0aGlzLnJlcG9VcmxTZXJ2aWNlLmdldFJlcG9Vcmwobm9kZS5saWNlbnNlLmljb24sIG5vZGUpIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBsaWNlbnNlIGljb24gYnkgdXNpbmcgdGhlIHByb3BlcnR5IHZhbHVlIHN0cmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRMaWNlbnNlSWNvbkJ5U3RyaW5nKHN0cmluZzogU3RyaW5nLCB1c2VOb25lQXNGYWxsYmFjayA9IHRydWUpOiBzdHJpbmcge1xuICAgICAgICBsZXQgaWNvbiA9IHN0cmluZy5yZXBsYWNlKC9fL2csICctJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGljb24gPT0gJycpIGljb24gPSAnbm9uZSc7XG5cbiAgICAgICAgY29uc3QgTElDRU5TRV9JQ09OUyA9IFtcbiAgICAgICAgICAgICdjYy0wJyxcbiAgICAgICAgICAgICdjYy1ieS1uYycsXG4gICAgICAgICAgICAnY2MtYnktbmMtbmQnLFxuICAgICAgICAgICAgJ2NjLWJ5LW5jLXNhJyxcbiAgICAgICAgICAgICdjYy1ieS1uZCcsXG4gICAgICAgICAgICAnY2MtYnktc2EnLFxuICAgICAgICAgICAgJ2NjLWJ5JyxcbiAgICAgICAgICAgICdjb3B5cmlnaHQtZnJlZScsXG4gICAgICAgICAgICAnY29weXJpZ2h0LWxpY2Vuc2UnLFxuICAgICAgICAgICAgJ2N1c3RvbScsXG4gICAgICAgICAgICAnZWR1LW5jLW5kLW5vRG8nLFxuICAgICAgICAgICAgJ2VkdS1uYy1uZCcsXG4gICAgICAgICAgICAnZWR1LXAtbnItbmQtbm9EbycsXG4gICAgICAgICAgICAnZWR1LXAtbnItbmQnLFxuICAgICAgICAgICAgJ25vbmUnLFxuICAgICAgICAgICAgJ3BkbScsXG4gICAgICAgICAgICAnc2NodWxmdW5rJyxcbiAgICAgICAgICAgICd1bnRlcnJpY2h0cy11bmQtbGVocm1lZGllbicsXG4gICAgICAgIF07XG4gICAgICAgIGlmIChMSUNFTlNFX0lDT05TLmluZGV4T2YoaWNvbikgPT0gLTEgJiYgIXVzZU5vbmVBc0ZhbGxiYWNrKSByZXR1cm4gbnVsbDsgLy8gaWNvbj0nbm9uZSc7XG4gICAgICAgIGlmIChpY29uID09ICdub25lJyAmJiAhdXNlTm9uZUFzRmFsbGJhY2spIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICAgICAgdGhpcy5hcGlIZWxwZXJzU2VydmljZS5nZXRTZXJ2ZXJVcmwoKSArICcvLi4vY2NpbWFnZXMvbGljZW5zZXMvJyArIGljb24gKyAnLnN2Zyc7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIHRyYW5zbGF0ZWQgbmFtZSBvZiBhIGxpY2Vuc2UgbmFtZSBmb3IgYSBub2RlXG4gICAgICogQHBhcmFtIG5vZGVcbiAgICAgKiBAcGFyYW0gdHJhbnNsYXRlXG4gICAgICogQHJldHVybnMge3N0cmluZ3xhbnl8c3RyaW5nfGFueXxzdHJpbmd8YW55fHN0cmluZ3xhbnl8c3RyaW5nfGFueXxzdHJpbmd9XG4gICAgICovXG4gICAgcHVibGljIGdldExpY2Vuc2VOYW1lKG5vZGU6IE5vZGUpIHtcbiAgICAgICAgbGV0IHByb3AgPSBub2RlLnByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5DQ01fUFJPUF9MSUNFTlNFXT8uWzBdO1xuICAgICAgICBpZiAoIXByb3ApIHByb3AgPSAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGljZW5zZU5hbWVCeVN0cmluZyhwcm9wKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSB0cmFuc2xhdGVkIG5hbWUgZm9yIGEgbGljZW5zZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gc3RyaW5nXG4gICAgICogQHBhcmFtIHRyYW5zbGF0ZVxuICAgICAqIEByZXR1cm5zIHthbnl9XG4gICAgICovXG4gICAgcHVibGljIGdldExpY2Vuc2VOYW1lQnlTdHJpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmIChuYW1lID09ICcnKSB7XG4gICAgICAgICAgICBuYW1lID0gJ05PTkUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdMSUNFTlNFLk5BTUVTLicgKyBuYW1lKTtcbiAgICAgICAgLy8gcmV0dXJuIG5hbWUucmVwbGFjZSgvXy9nLFwiLVwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm4gdGhlIExpY2Vuc2UgVVJMIChlLmcuIGZvciBDQ19CWSBsaWNlbnNlcykgZm9yIGEgbGljZW5zZSBzdHJpbmcgYW5kIHZlcnNpb25cbiAgICAgKiBAcGFyYW0gbGljZW5zZVByb3BlcnR5XG4gICAgICogQHBhcmFtIGxpY2Vuc2VWZXJzaW9uXG4gICAgICogQHBhcmFtIGxpY2Vuc2VMb2NhbGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TGljZW5zZVVybEJ5U3RyaW5nKFxuICAgICAgICBsaWNlbnNlUHJvcGVydHk6IHN0cmluZyxcbiAgICAgICAgbGljZW5zZVZlcnNpb246IHN0cmluZyxcbiAgICAgICAgbGljZW5zZUxvY2FsZTogc3RyaW5nLFxuICAgICkge1xuICAgICAgICBjb25zdCBpc1Y0ID0gbGljZW5zZVZlcnNpb24gPT09ICc0LjAnO1xuICAgICAgICBjb25zdCBsb2NhbGUgPSBpc1Y0IHx8ICFsaWNlbnNlTG9jYWxlID8gJycgOiBsaWNlbnNlTG9jYWxlLnRvTG93ZXJDYXNlKCkgKyAnLyc7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVxuICAgICAgICAgICAgLmdldChgTElDRU5TRS5VUkxTLiR7bGljZW5zZVByb3BlcnR5fWAsIHtcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBsaWNlbnNlVmVyc2lvbixcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gdGhlIHRyYW5zbGF0aW9uIGZhaWxzIGl0IG1pZ2h0IHJldHVybiBzb21ldGhpbmcgbGlrZSAnTElDRU5TRS5VUkxTLnVuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1cmwgfHwgdXJsLnN0YXJ0c1dpdGgoJ0xJQ0VOU0UuVVJMUycpKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Y0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHRoZSBpbnRlcm5hdGlvbmFsIDQuMCB2ZXJzaW9uIHN1cHBvcnRzIGRpZmZlcmVudCBsYW5ndWFnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoaXMgcGFydCBuZWVkcyB0byBiZSByZW1vdmVkIGZvciBhbGwgb3RoZXIgdmVyc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCcuZGUnLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdvcmtmbG93U3RhdHVzQnlJZChpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHdvcmtmbG93cyA9IHRoaXMuZ2V0V29ya2Zsb3dzKCk7XG4gICAgICAgIHJldHVybiB3b3JrZmxvd3MuZmlsdGVyKCh3KSA9PiB3LmlkID09PSBpZCk/LlswXTtcbiAgICB9XG4gICAgcHVibGljIGdldFdvcmtmbG93U3RhdHVzKG5vZGU6IE5vZGUsIHVzZUZyb21Db25maWcgPSBmYWxzZSk6IFdvcmtmbG93LldvcmtmbG93RGVmaW5pdGlvblN0YXR1cyB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGUucHJvcGVydGllc1tSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX1dGX1NUQVRVU10/LlswXTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFdvcmtmbG93U3RhdHVzKHVzZUZyb21Db25maWcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjdXJyZW50OiB0aGlzLmdldFdvcmtmbG93U3RhdHVzQnlJZCh2YWx1ZSksXG4gICAgICAgICAgICBpbml0aWFsOiB0aGlzLmdldFdvcmtmbG93U3RhdHVzQnlJZCh2YWx1ZSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldERlZmF1bHRXb3JrZmxvd1N0YXR1cyh1c2VGcm9tQ29uZmlnID0gZmFsc2UpOiBXb3JrZmxvdy5Xb3JrZmxvd0RlZmluaXRpb25TdGF0dXMge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBudWxsIGFzIFdvcmtmbG93LldvcmtmbG93RGVmaW5pdGlvbixcbiAgICAgICAgICAgIGluaXRpYWw6IG51bGwgYXMgV29ya2Zsb3cuV29ya2Zsb3dEZWZpbml0aW9uLFxuICAgICAgICB9O1xuICAgICAgICByZXN1bHQuaW5pdGlhbCA9IHRoaXMuZ2V0V29ya2Zsb3dzKClbMF07XG4gICAgICAgIGxldCBkZWZhdWx0U3RhdHVzOiBzdHJpbmcgPSBudWxsO1xuICAgICAgICBpZiAodXNlRnJvbUNvbmZpZykge1xuICAgICAgICAgICAgZGVmYXVsdFN0YXR1cyA9IHRoaXMuY29uZmlnU2VydmljZS5pbnN0YW50KCd3b3JrZmxvdy5kZWZhdWx0U3RhdHVzJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmF1bHRTdGF0dXMpIHtcbiAgICAgICAgICAgIHJlc3VsdC5jdXJyZW50ID0gdGhpcy5nZXRXb3JrZmxvd3MoKS5maW5kKCh3KSA9PiB3LmlkID09PSBkZWZhdWx0U3RhdHVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdC5jdXJyZW50ID0gcmVzdWx0LmluaXRpYWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZ2V0V29ya2Zsb3dzKCk6IFdvcmtmbG93LldvcmtmbG93RGVmaW5pdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5pbnN0YW50KCd3b3JrZmxvdy53b3JrZmxvd3MnLCBbXG4gICAgICAgICAgICBXb3JrZmxvdy5XT1JLRkxPV19TVEFUVVNfVU5DSEVDS0VELFxuICAgICAgICAgICAgV29ya2Zsb3cuV09SS0ZMT1dfU1RBVFVTX1RPX0NIRUNLLFxuICAgICAgICAgICAgV29ya2Zsb3cuV09SS0ZMT1dfU1RBVFVTX0hBU0ZMQVdTLFxuICAgICAgICAgICAgV29ya2Zsb3cuV09SS0ZMT1dfU1RBVFVTX0NIRUNLRUQsXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICBjb3B5RGF0YVRvTm9kZTxUIGV4dGVuZHMgTm9kZSB8IFVzZXI+KHRhcmdldDogVCwgc291cmNlOiBUKSB7XG4gICAgICAgIHRhcmdldC5wcm9wZXJ0aWVzID0gc291cmNlLnByb3BlcnRpZXM7XG4gICAgICAgICh0YXJnZXQgYXMgTm9kZSkubmFtZSA9IChzb3VyY2UgYXMgTm9kZSkubmFtZTtcbiAgICAgICAgKHRhcmdldCBhcyBOb2RlKS50aXRsZSA9IChzb3VyY2UgYXMgTm9kZSkudGl0bGU7XG4gICAgICAgICh0YXJnZXQgYXMgTm9kZSkuaWNvblVSTCA9IChzb3VyY2UgYXMgTm9kZSkuaWNvblVSTDtcbiAgICAgICAgKHRhcmdldCBhcyBOb2RlKS5wcmV2aWV3ID0gKHNvdXJjZSBhcyBOb2RlKS5wcmV2aWV3O1xuICAgICAgICAodGFyZ2V0IGFzIFVzZXIpLmF1dGhvcml0eU5hbWUgPSAoc291cmNlIGFzIFVzZXIpLmF1dGhvcml0eU5hbWU7XG4gICAgICAgICh0YXJnZXQgYXMgVXNlcikucHJvZmlsZSA9IChzb3VyY2UgYXMgVXNlcikucHJvZmlsZTtcbiAgICAgICAgKHRhcmdldCBhcyBVc2VyKS5zdGF0dXMgPSAoc291cmNlIGFzIFVzZXIpLnN0YXR1cztcbiAgICB9XG4gICAgaXNOb2RlQ29sbGVjdGlvbihub2RlOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBub2RlLmFzcGVjdHM/LmluY2x1ZGVzKFJlc3RDb25zdGFudHMuQ0NNX0FTUEVDVF9DT0xMRUNUSU9OKSB8fCAhIW5vZGUuY29sbGVjdGlvbjtcbiAgICB9XG4gICAgcHVibGljIGdldFNvdXJjZUljb25QYXRoKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5hc3NldHNCYXNlUGF0aCA/PyAnJykgKyAnYXNzZXRzL2ltYWdlcy9zb3VyY2VzLycgKyBzcmMudG9Mb3dlckNhc2UoKSArICcucG5nJztcbiAgICB9XG5cbiAgICBnZXROb2RlTGluayhtb2RlOiAncm91dGVyTGluaycgfCAncXVlcnlQYXJhbXMnLCBub2RlOiBOb2RlKSB7XG4gICAgICAgIGlmICghbm9kZT8ucmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZGF0YTogeyByb3V0ZXJMaW5rOiBzdHJpbmc7IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgfSA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLmlzTm9kZUNvbGxlY3Rpb24obm9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjb3BlID0gbm9kZS5jb2xsZWN0aW9uPy5zY29wZTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBub2RlLmNvbGxlY3Rpb24/LnR5cGU7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtczogUGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIGlkOiBub2RlLnJlZi5pZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gUmVzdENvbnN0YW50cy5DT0xMRUNUSU9OVFlQRV9FRElUT1JJQUwpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcy5zY29wZSA9IFJlc3RDb25zdGFudHMuQ09MTEVDVElPTlNDT1BFX1RZUEVfRURJVE9SSUFMO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05UWVBFX01FRElBX0NFTlRFUikge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLnNjb3BlID0gUmVzdENvbnN0YW50cy5DT0xMRUNUSU9OU0NPUEVfVFlQRV9NRURJQV9DRU5URVI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNjb3BlID09PSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05TQ09QRV9DVVNUT01fUFVCTElDKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXMuc2NvcGUgPSBSZXN0Q29uc3RhbnRzLkNPTExFQ1RJT05TQ09QRV9BTEw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFVJQ29uc3RhbnRzLlJPVVRFUl9QUkVGSVggKyAnY29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChub2RlLmlzRGlyZWN0b3J5KSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhdGg7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBub2RlLnByb3BlcnRpZXM/LltSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX0VEVVNDT1BFTkFNRV0/LlswXSA9PT1cbiAgICAgICAgICAgICAgICAgICAgUmVzdENvbnN0YW50cy5TQUZFX1NDT1BFXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGggPSBVSUNvbnN0YW50cy5ST1VURVJfUFJFRklYICsgJ3dvcmtzcGFjZS9zYWZlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXRoID0gVUlDb25zdGFudHMuUk9VVEVSX1BSRUZJWCArICd3b3Jrc3BhY2UnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBwYXRoLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBpZDogbm9kZS5yZWYuaWQgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLnJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyb21Ib21lID0gdGhpcy5uZXR3b3JrU2VydmljZS5pc0Zyb21Ib21lUmVwb3NpdG9yeShub2RlKTtcbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBVSUNvbnN0YW50cy5ST1VURVJfUFJFRklYICsgJ3JlbmRlci8nICsgbm9kZS5yZWYuaWQsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5OiBmcm9tSG9tZSA/IG51bGwgOiBub2RlLnJlZi5yZXBvLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcG9zYWw6IChub2RlIGFzIFByb3Bvc2FsTm9kZSkucHJvcG9zYWw/LnJlZi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3Bvc2FsQ29sbGVjdGlvbjogKG5vZGUgYXMgUHJvcG9zYWxOb2RlKS5wcm9wb3NhbENvbGxlY3Rpb24/LnJlZi5pZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vZGUgPT09ICdyb3V0ZXJMaW5rJykge1xuICAgICAgICAgICAgcmV0dXJuICcvJyArIGRhdGEucm91dGVyTGluaztcbiAgICAgICAgfVxuICAgICAgICAvLyBlbmZvcmNlIGNsZWFyaW5nIG9mIHBhcmFtZXRlcnMgd2hpY2ggc2hvdWxkIG9ubHkgYmUgY29uc3VtZWQgb25jZVxuICAgICAgICBkYXRhLnF1ZXJ5UGFyYW1zLnJlZGlyZWN0RnJvbVNTTyA9IG51bGw7XG4gICAgICAgIHJldHVybiBkYXRhLnF1ZXJ5UGFyYW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG5vZGUgaXMgYSBjb3B5IG9mIGFub3RoZXIgbm9kZSwganVzdCB1c2VkIGFzIGEgcHVibGlzaCB0YXJnZXQuXG4gICAgICovXG4gICAgaXNOb2RlUHVibGlzaGVkQ29weShvOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIW8ucHJvcGVydGllcz8uW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfUFVCTElTSEVEX09SSUdJTkFMXT8uWzBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGlzIGlzIGEgcmV2b2tlZCBub2RlXG4gICAgICogKHB1Ymxpc2hlZCBjb3B5IHRoYXQgaGFzIGJlZW4gcmV2b2tlZClcbiAgICAgKi9cbiAgICBpc05vZGVSZXZva2VkKG5vZGU6IE5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGU/LmFzcGVjdHM/LmluY2x1ZGVzKFJlc3RDb25zdGFudHMuQ0NNX0FTUEVDVF9SRVZPS0VEKTtcbiAgICB9XG59XG4iXX0=
@@ -143,13 +143,13 @@ export class NodesDragDropService {
143
143
  return 'grabbing';
144
144
  }
145
145
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodesDragDropService, deps: [{ token: i0.NgZone }, { token: i1.Toast }, { token: i2.UIService }], target: i0.ɵɵFactoryTarget.Injectable }); }
147
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodesDragDropService, providedIn: 'root' }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragDropService, deps: [{ token: i0.NgZone }, { token: i1.Toast }, { token: i2.UIService }], target: i0.ɵɵFactoryTarget.Injectable }); }
147
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragDropService, providedIn: 'root' }); }
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NodesDragDropService, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragDropService, decorators: [{
150
150
  type: Injectable,
151
151
  args: [{
152
152
  providedIn: 'root',
153
153
  }]
154
154
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.Toast }, { type: i2.UIService }] });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtZHJhZy1kcm9wLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL25vZGVzLWRyYWctZHJvcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBVXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFjN0IsSUFBSSxZQUFZLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFvQixNQUFjLEVBQVUsS0FBWSxFQUFVLFNBQW9CO1FBQWxFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXJCdEYsMkNBQTJDO1FBQ25DLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQ2hFLGlFQUFpRTtRQUN6RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDaEYsMkVBQTJFO1FBQ25FLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWlCLElBQUksQ0FBQyxDQUFDO1FBQ25FLHFGQUFxRjtRQUM3RSx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxD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QUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQy9CLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDOzhHQXRKUSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZqQixNQUFNOzsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBwYWlyd2lzZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhbkRyb3AsIERyb3BBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTm9kZXNEcm9wVGFyZ2V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kcmFnLW5vZGVzL25vZGVzLWRyb3AtdGFyZ2V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vYWJzdHJhY3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVSVNlcnZpY2UgfSBmcm9tICcuL3VpLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOb2Rlc0RyYWdEcm9wU2VydmljZSB7XG4gICAgLyoqIFRoZSBub2RlKHMpIGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkLiAqL1xuICAgIHByaXZhdGUgZHJhZ2dlZE5vZGVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm9kZVtdPihudWxsKTtcbiAgICAvKiogVGhlIGRyb3AgdGFyZ2V0IHRoYXQgc29tZXRoaW5nIGlzIGN1cnJlbnRseSBkcmFnZ2VkIGFib3ZlLiAqL1xuICAgIHByaXZhdGUgZHJvcFRhcmdldFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5vZGVzRHJvcFRhcmdldERpcmVjdGl2ZT4obnVsbCk7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgZHJvcCB0YXJnZXQgYWxsb3dzIGRyb3BwaW5nIHRoZSBkcmFnZ2VkIG5vZGUocykuICovXG4gICAgcHJpdmF0ZSBjYW5Ecm9wU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2FuRHJvcCB8IG51bGw+KG51bGwpO1xuICAgIC8qKiBBIHRhcmdldCBiZWluZyBob3ZlcmVkIHdpdGggdGhlIGN1cnNvci4gRG9lcyBub3QgbWVhbiBhbnl0aGluZyBpcyBkcmFnZ2VkIHlldC4gKi9cbiAgICBwcml2YXRlIGhvdmVyZWRUYXJnZXRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOb2Rlc0Ryb3BUYXJnZXREaXJlY3RpdmU+KG51bGwpO1xuICAgIC8qKiBDdXJyZW50IGRyb3AgYWN0aW9uIGJhc2VkIG9uIHByZXNzZWQgbW9kaWZpZXIga2V5cy4gKi9cbiAgICBwcml2YXRlIGRyb3BBY3Rpb25TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEcm9wQWN0aW9uPignbW92ZScpO1xuICAgIC8qKiBUaGUgY3VycmVudCBjdXJzb3Igc3R5bGUuICovXG4gICAgcHJpdmF0ZSBjdXJzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gICAgc2V0IGRyYWdnZWROb2Rlcyhub2RlczogTm9kZVtdKSB7XG4gICAgICAgIHRoaXMuZHJhZ2dlZE5vZGVzU3ViamVjdC5uZXh0KG5vZGVzKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuRHJvcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuRHJvcFN1YmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSB0b2FzdDogVG9hc3QsIHByaXZhdGUgdWlTZXJ2aWNlOiBVSVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRyb3BUYXJnZXQoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckNhbkRyb3AoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRyb3BBY3Rpb25TdWJqZWN0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJDdXJzb3IoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckFjdGl2ZURyb3BUYXJnZXRTdHlsZSgpO1xuICAgICAgICAvLyB0aGlzLmRyYWdnZWROb2Rlc1N1YmplY3Quc3Vic2NyaWJlKChkcmFnZ2VkTm9kZXMpID0+XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZygnZHJhZ2dlZE5vZGVzJywgZHJhZ2dlZE5vZGVzKSxcbiAgICAgICAgLy8gKTtcbiAgICAgICAgLy8gdGhpcy5kcm9wVGFyZ2V0U3ViamVjdC5zdWJzY3JpYmUoKGRyb3BUYXJnZXQpID0+IGNvbnNvbGUubG9nKCdkcm9wVGFyZ2V0JywgZHJvcFRhcmdldCkpO1xuICAgICAgICAvLyB0aGlzLmNhbkRyb3BTdWJqZWN0LnN1YnNjcmliZSgoY2FuRHJvcCkgPT4gY29uc29sZS5sb2coJ2NhbkRyb3AnLCBjYW5Ecm9wKSk7XG4gICAgfVxuXG4gICAgLyoqIENhbGwgd2hlbiB0aGUgY3Vyc29yIGVudGVycyBhIHBvc3NpYmxlIGRyb3AgdGFyZ2V0LiBSdW5zIG91dHNpZGUgbmdab25lLiAqL1xuICAgIG9uTW91c2VFbnRlcih0YXJnZXQ6IE5vZGVzRHJvcFRhcmdldERpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLmhvdmVyZWRUYXJnZXRTdWJqZWN0Lm5leHQodGFyZ2V0KTtcbiAgICB9XG5cbiAgICAvKiogQ2FsbCB3aGVuIHRoZSBjdXJzb3IgbGVhdmVzIGEgcG9zc2libGUgZHJvcCB0YXJnZXQuIFJ1bnMgb3V0c2lkZSBuZ1pvbmUuICovXG4gICAgb25Nb3VzZUxlYXZlKHRhcmdldDogTm9kZXNEcm9wVGFyZ2V0RGlyZWN0aXZlKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWRUYXJnZXRTdWJqZWN0LnZhbHVlID09PSB0YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaG92ZXJlZFRhcmdldFN1YmplY3QubmV4dChudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJvcHBlZChub2RlczogTm9kZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkRyb3A/LmFjY2VwdCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wVGFyZ2V0U3ViamVjdC52YWx1ZT8ubm9kZURyb3BwZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgZHJhZ2dlZE5vZGVzOiBub2RlcyxcbiAgICAgICAgICAgICAgICBhY3Rpb246IHRoaXMuZHJvcEFjdGlvblN1YmplY3QudmFsdWUsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmRyb3BUYXJnZXRTdWJqZWN0LnZhbHVlLnRhcmdldCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FuRHJvcD8uZGVueVJlYXNvbikge1xuICAgICAgICAgICAgdGhpcy50b2FzdC5lcnJvcihudWxsLCB0aGlzLmNhbkRyb3AuZGVueVJlYXNvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyRHJvcFRhcmdldCgpIHtcbiAgICAgICAgcnhqcy5jb21iaW5lTGF0ZXN0KFt0aGlzLmRyYWdnZWROb2Rlc1N1YmplY3QsIHRoaXMuaG92ZXJlZFRhcmdldFN1YmplY3RdKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChbZHJhZ2dlZE5vZGVzLCBob3ZlcmVkTm9kZV0pID0+IGRyYWdnZWROb2RlcyAmJiBob3ZlcmVkTm9kZSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcFRhcmdldFN1YmplY3QubmV4dCh0YXJnZXQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckNhbkRyb3AoKSB7XG4gICAgICAgIHJ4anMuY29tYmluZUxhdGVzdChbdGhpcy5kcm9wVGFyZ2V0U3ViamVjdCwgdGhpcy5kcm9wQWN0aW9uU3ViamVjdF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtkcm9wVGFyZ2V0LCBkcm9wQWN0aW9uXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgZHJvcFRhcmdldD8uY2FuRHJvcE5vZGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnZWROb2RlczogdGhpcy5kcmFnZ2VkTm9kZXNTdWJqZWN0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkcm9wQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBkcm9wVGFyZ2V0LnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyB3b24ndCBmaWx0ZXIgZXF1YWwgb2JqZWN0c1xuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjYW5Ecm9wKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2FuRHJvcFN1YmplY3QubmV4dChjYW5Ecm9wKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ3Vyc29yKCkge1xuICAgICAgICByeGpzLmNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2VkTm9kZXNTdWJqZWN0LFxuICAgICAgICAgICAgdGhpcy5jYW5Ecm9wU3ViamVjdCxcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblN1YmplY3QsXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW2RyYWdnZWROb2RlcywgY2FuRHJvcCwgZHJvcEFjdGlvbl0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3Vyc2VyU3ViamVjdC5uZXh0KHRoaXMuZ2V0Q3Vyc29yKGRyYWdnZWROb2RlcywgY2FuRHJvcCwgZHJvcEFjdGlvbikpO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50O1xuICAgICAgICB0aGlzLmN1cnNlclN1YmplY3Quc3Vic2NyaWJlKChjdXJzb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJzb3IgJiYgIXN0eWxlKSB7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZSAmJiAhY3Vyc29yKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdHlsZSk7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnNvcikge1xuICAgICAgICAgICAgICAgIHN0eWxlLmlubmVySFRNTCA9IGAqIHtjdXJzb3I6ICR7Y3Vyc29yfSAhaW1wb3J0YW50OyB9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckFjdGl2ZURyb3BUYXJnZXRTdHlsZSgpIHtcbiAgICAgICAgcnhqcy5jb21iaW5lTGF0ZXN0KFt0aGlzLmRyb3BUYXJnZXRTdWJqZWN0LCB0aGlzLmNhbkRyb3BTdWJqZWN0LCB0aGlzLmRyb3BBY3Rpb25TdWJqZWN0XSlcbiAgICAgICAgICAgIC5waXBlKHBhaXJ3aXNlKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbW3ByZXZpb3VzXSwgW2N1cnJlbnQsIGNhbkRyb3AsIGFjdGlvbl1dKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NhbiBkcm9wJywgY2FuRHJvcCk7XG4gICAgICAgICAgICAgICAgcHJldmlvdXM/Ll9zZXRBY3RpdmVEcm9wVGFyZ2V0KG51bGwpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ/Ll9zZXRBY3RpdmVEcm9wVGFyZ2V0KHsgY2FuRHJvcCwgYWN0aW9uIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckRyb3BBY3Rpb25TdWJqZWN0KCkge1xuICAgICAgICB0aGlzLnVpU2VydmljZVxuICAgICAgICAgICAgLm9ic2VydmVDdHJsT3JDbWRLZXlQcmVzc2VkT3V0c2lkZVpvbmUoKVxuICAgICAgICAgICAgLnBpcGUobWFwKChjdHJsT3JDbWRQcmVzc2VkKSA9PiB0aGlzLmdldERyb3BBY3Rpb24oY3RybE9yQ21kUHJlc3NlZCkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZHJvcEFjdGlvbikgPT5cbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5kcm9wQWN0aW9uU3ViamVjdC5uZXh0KGRyb3BBY3Rpb24pKSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREcm9wQWN0aW9uKGN0cmxPckNtZFByZXNzZWQ6IGJvb2xlYW4pOiBEcm9wQWN0aW9uIHtcbiAgICAgICAgaWYgKGN0cmxPckNtZFByZXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAnY29weSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ21vdmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJzb3IoZHJhZ2dlZE5vZGVzOiBOb2RlW10sIGNhbkRyb3A6IENhbkRyb3AsIGRyb3BBY3Rpb246IERyb3BBY3Rpb24pOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRyYWdnZWROb2Rlcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAoY2FuRHJvcD8uZGVueUV4cGxpY2l0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ25vLWRyb3AnO1xuICAgICAgICB9IGVsc2UgaWYgKGRyb3BBY3Rpb24gPT09ICdjb3B5Jykge1xuICAgICAgICAgICAgcmV0dXJuICdjb3B5JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnZ3JhYmJpbmcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtZHJhZy1kcm9wLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3NlcnZpY2VzL25vZGVzLWRyYWctZHJvcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBVXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFjN0IsSUFBSSxZQUFZLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFvQixNQUFjLEVBQVUsS0FBWSxFQUFVLFNBQW9CO1FBQWxFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXJCdEYsMkNBQTJDO1FBQ25DLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQ2hFLGlFQUFpRTtRQUN6RCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDaEYsMkVBQTJFO1FBQ25FLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWlCLElBQUksQ0FBQyxDQUFDO1FBQ25FLHFGQUFxRjtRQUM3RSx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsSUFBSSxD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QUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQy9CLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDOytHQXRKUSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZqQixNQUFNOzs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBwYWlyd2lzZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhbkRyb3AsIERyb3BBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgTm9kZXNEcm9wVGFyZ2V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kcmFnLW5vZGVzL25vZGVzLWRyb3AtdGFyZ2V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vYWJzdHJhY3QvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVSVNlcnZpY2UgfSBmcm9tICcuL3VpLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOb2Rlc0RyYWdEcm9wU2VydmljZSB7XG4gICAgLyoqIFRoZSBub2RlKHMpIGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkLiAqL1xuICAgIHByaXZhdGUgZHJhZ2dlZE5vZGVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm9kZVtdPihudWxsKTtcbiAgICAvKiogVGhlIGRyb3AgdGFyZ2V0IHRoYXQgc29tZXRoaW5nIGlzIGN1cnJlbnRseSBkcmFnZ2VkIGFib3ZlLiAqL1xuICAgIHByaXZhdGUgZHJvcFRhcmdldFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5vZGVzRHJvcFRhcmdldERpcmVjdGl2ZT4obnVsbCk7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgZHJvcCB0YXJnZXQgYWxsb3dzIGRyb3BwaW5nIHRoZSBkcmFnZ2VkIG5vZGUocykuICovXG4gICAgcHJpdmF0ZSBjYW5Ecm9wU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2FuRHJvcCB8IG51bGw+KG51bGwpO1xuICAgIC8qKiBBIHRhcmdldCBiZWluZyBob3ZlcmVkIHdpdGggdGhlIGN1cnNvci4gRG9lcyBub3QgbWVhbiBhbnl0aGluZyBpcyBkcmFnZ2VkIHlldC4gKi9cbiAgICBwcml2YXRlIGhvdmVyZWRUYXJnZXRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOb2Rlc0Ryb3BUYXJnZXREaXJlY3RpdmU+KG51bGwpO1xuICAgIC8qKiBDdXJyZW50IGRyb3AgYWN0aW9uIGJhc2VkIG9uIHByZXNzZWQgbW9kaWZpZXIga2V5cy4gKi9cbiAgICBwcml2YXRlIGRyb3BBY3Rpb25TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEcm9wQWN0aW9uPignbW92ZScpO1xuICAgIC8qKiBUaGUgY3VycmVudCBjdXJzb3Igc3R5bGUuICovXG4gICAgcHJpdmF0ZSBjdXJzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gICAgc2V0IGRyYWdnZWROb2Rlcyhub2RlczogTm9kZVtdKSB7XG4gICAgICAgIHRoaXMuZHJhZ2dlZE5vZGVzU3ViamVjdC5uZXh0KG5vZGVzKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuRHJvcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuRHJvcFN1YmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSB0b2FzdDogVG9hc3QsIHByaXZhdGUgdWlTZXJ2aWNlOiBVSVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRyb3BUYXJnZXQoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckNhbkRyb3AoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRyb3BBY3Rpb25TdWJqZWN0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJDdXJzb3IoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckFjdGl2ZURyb3BUYXJnZXRTdHlsZSgpO1xuICAgICAgICAvLyB0aGlzLmRyYWdnZWROb2Rlc1N1YmplY3Quc3Vic2NyaWJlKChkcmFnZ2VkTm9kZXMpID0+XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZygnZHJhZ2dlZE5vZGVzJywgZHJhZ2dlZE5vZGVzKSxcbiAgICAgICAgLy8gKTtcbiAgICAgICAgLy8gdGhpcy5kcm9wVGFyZ2V0U3ViamVjdC5zdWJzY3JpYmUoKGRyb3BUYXJnZXQpID0+IGNvbnNvbGUubG9nKCdkcm9wVGFyZ2V0JywgZHJvcFRhcmdldCkpO1xuICAgICAgICAvLyB0aGlzLmNhbkRyb3BTdWJqZWN0LnN1YnNjcmliZSgoY2FuRHJvcCkgPT4gY29uc29sZS5sb2coJ2NhbkRyb3AnLCBjYW5Ecm9wKSk7XG4gICAgfVxuXG4gICAgLyoqIENhbGwgd2hlbiB0aGUgY3Vyc29yIGVudGVycyBhIHBvc3NpYmxlIGRyb3AgdGFyZ2V0LiBSdW5zIG91dHNpZGUgbmdab25lLiAqL1xuICAgIG9uTW91c2VFbnRlcih0YXJnZXQ6IE5vZGVzRHJvcFRhcmdldERpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLmhvdmVyZWRUYXJnZXRTdWJqZWN0Lm5leHQodGFyZ2V0KTtcbiAgICB9XG5cbiAgICAvKiogQ2FsbCB3aGVuIHRoZSBjdXJzb3IgbGVhdmVzIGEgcG9zc2libGUgZHJvcCB0YXJnZXQuIFJ1bnMgb3V0c2lkZSBuZ1pvbmUuICovXG4gICAgb25Nb3VzZUxlYXZlKHRhcmdldDogTm9kZXNEcm9wVGFyZ2V0RGlyZWN0aXZlKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWRUYXJnZXRTdWJqZWN0LnZhbHVlID09PSB0YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaG92ZXJlZFRhcmdldFN1YmplY3QubmV4dChudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJvcHBlZChub2RlczogTm9kZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkRyb3A/LmFjY2VwdCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wVGFyZ2V0U3ViamVjdC52YWx1ZT8ubm9kZURyb3BwZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgZHJhZ2dlZE5vZGVzOiBub2RlcyxcbiAgICAgICAgICAgICAgICBhY3Rpb246IHRoaXMuZHJvcEFjdGlvblN1YmplY3QudmFsdWUsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmRyb3BUYXJnZXRTdWJqZWN0LnZhbHVlLnRhcmdldCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FuRHJvcD8uZGVueVJlYXNvbikge1xuICAgICAgICAgICAgdGhpcy50b2FzdC5lcnJvcihudWxsLCB0aGlzLmNhbkRyb3AuZGVueVJlYXNvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyRHJvcFRhcmdldCgpIHtcbiAgICAgICAgcnhqcy5jb21iaW5lTGF0ZXN0KFt0aGlzLmRyYWdnZWROb2Rlc1N1YmplY3QsIHRoaXMuaG92ZXJlZFRhcmdldFN1YmplY3RdKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChbZHJhZ2dlZE5vZGVzLCBob3ZlcmVkTm9kZV0pID0+IGRyYWdnZWROb2RlcyAmJiBob3ZlcmVkTm9kZSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRhcmdldCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcFRhcmdldFN1YmplY3QubmV4dCh0YXJnZXQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckNhbkRyb3AoKSB7XG4gICAgICAgIHJ4anMuY29tYmluZUxhdGVzdChbdGhpcy5kcm9wVGFyZ2V0U3ViamVjdCwgdGhpcy5kcm9wQWN0aW9uU3ViamVjdF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtkcm9wVGFyZ2V0LCBkcm9wQWN0aW9uXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgZHJvcFRhcmdldD8uY2FuRHJvcE5vZGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnZWROb2RlczogdGhpcy5kcmFnZ2VkTm9kZXNTdWJqZWN0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBkcm9wQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBkcm9wVGFyZ2V0LnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyB3b24ndCBmaWx0ZXIgZXF1YWwgb2JqZWN0c1xuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjYW5Ecm9wKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2FuRHJvcFN1YmplY3QubmV4dChjYW5Ecm9wKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ3Vyc29yKCkge1xuICAgICAgICByeGpzLmNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2VkTm9kZXNTdWJqZWN0LFxuICAgICAgICAgICAgdGhpcy5jYW5Ecm9wU3ViamVjdCxcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblN1YmplY3QsXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW2RyYWdnZWROb2RlcywgY2FuRHJvcCwgZHJvcEFjdGlvbl0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3Vyc2VyU3ViamVjdC5uZXh0KHRoaXMuZ2V0Q3Vyc29yKGRyYWdnZWROb2RlcywgY2FuRHJvcCwgZHJvcEFjdGlvbikpO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHN0eWxlOiBIVE1MU3R5bGVFbGVtZW50O1xuICAgICAgICB0aGlzLmN1cnNlclN1YmplY3Quc3Vic2NyaWJlKChjdXJzb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJzb3IgJiYgIXN0eWxlKSB7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZSAmJiAhY3Vyc29yKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzdHlsZSk7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnNvcikge1xuICAgICAgICAgICAgICAgIHN0eWxlLmlubmVySFRNTCA9IGAqIHtjdXJzb3I6ICR7Y3Vyc29yfSAhaW1wb3J0YW50OyB9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckFjdGl2ZURyb3BUYXJnZXRTdHlsZSgpIHtcbiAgICAgICAgcnhqcy5jb21iaW5lTGF0ZXN0KFt0aGlzLmRyb3BUYXJnZXRTdWJqZWN0LCB0aGlzLmNhbkRyb3BTdWJqZWN0LCB0aGlzLmRyb3BBY3Rpb25TdWJqZWN0XSlcbiAgICAgICAgICAgIC5waXBlKHBhaXJ3aXNlKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbW3ByZXZpb3VzXSwgW2N1cnJlbnQsIGNhbkRyb3AsIGFjdGlvbl1dKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NhbiBkcm9wJywgY2FuRHJvcCk7XG4gICAgICAgICAgICAgICAgcHJldmlvdXM/Ll9zZXRBY3RpdmVEcm9wVGFyZ2V0KG51bGwpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ/Ll9zZXRBY3RpdmVEcm9wVGFyZ2V0KHsgY2FuRHJvcCwgYWN0aW9uIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckRyb3BBY3Rpb25TdWJqZWN0KCkge1xuICAgICAgICB0aGlzLnVpU2VydmljZVxuICAgICAgICAgICAgLm9ic2VydmVDdHJsT3JDbWRLZXlQcmVzc2VkT3V0c2lkZVpvbmUoKVxuICAgICAgICAgICAgLnBpcGUobWFwKChjdHJsT3JDbWRQcmVzc2VkKSA9PiB0aGlzLmdldERyb3BBY3Rpb24oY3RybE9yQ21kUHJlc3NlZCkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZHJvcEFjdGlvbikgPT5cbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5kcm9wQWN0aW9uU3ViamVjdC5uZXh0KGRyb3BBY3Rpb24pKSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREcm9wQWN0aW9uKGN0cmxPckNtZFByZXNzZWQ6IGJvb2xlYW4pOiBEcm9wQWN0aW9uIHtcbiAgICAgICAgaWYgKGN0cmxPckNtZFByZXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAnY29weSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ21vdmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJzb3IoZHJhZ2dlZE5vZGVzOiBOb2RlW10sIGNhbkRyb3A6IENhbkRyb3AsIGRyb3BBY3Rpb246IERyb3BBY3Rpb24pOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRyYWdnZWROb2Rlcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAoY2FuRHJvcD8uZGVueUV4cGxpY2l0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ25vLWRyb3AnO1xuICAgICAgICB9IGVsc2UgaWYgKGRyb3BBY3Rpb24gPT09ICdjb3B5Jykge1xuICAgICAgICAgICAgcmV0dXJuICdjb3B5JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnZ3JhYmJpbmcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -56,7 +56,7 @@ export class OptionsHelperDataService {
56
56
  setData(data) {
57
57
  this.data = this.optionsHelperService.wrapOptionCallbacks(data);
58
58
  }
59
- async refreshComponents(refreshListOptions = true) {
59
+ async refreshComponents() {
60
60
  if (this.data == null) {
61
61
  console.warn('options helper refresh called but no data previously bound');
62
62
  return;
@@ -66,7 +66,7 @@ export class OptionsHelperDataService {
66
66
  return;
67
67
  }
68
68
  this.globalOptions = await this.getAvailableOptions(Target.Actionbar);
69
- await this.optionsHelperService?.refreshComponents(this.components, this.data, refreshListOptions);
69
+ await this.optionsHelperService?.refreshComponents(this.components, this.data);
70
70
  }
71
71
  getAvailableOptions(target, objects = null) {
72
72
  return this.optionsHelperService?.getAvailableOptions(target, objects, this.components, this.data);
@@ -119,16 +119,16 @@ export class OptionsHelperDataService {
119
119
  }
120
120
  }
121
121
  pasteNode(nodes = []) {
122
- this.optionsHelperService.pasteNode(this.components, this.data, nodes);
122
+ this.optionsHelperService.pasteNode(this.components, this.data, true, nodes);
123
123
  }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: OptionsHelperDataService, deps: [{ token: i0.NgZone }, { token: i1.ActivatedRoute }, { token: i2.LocalEventsService }, { token: i3.AuthenticationService }, { token: i3.UserService }, { token: i3.NetworkService }, { token: i4.KeyboardShortcutsService, optional: true }, { token: i5.OptionsHelperService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
125
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: OptionsHelperDataService }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, deps: [{ token: i0.NgZone }, { token: i1.ActivatedRoute }, { token: i2.LocalEventsService }, { token: i3.AuthenticationService }, { token: i3.UserService }, { token: i3.NetworkService }, { token: i4.KeyboardShortcutsService, optional: true }, { token: i5.OptionsHelperService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
125
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService }); }
126
126
  }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: OptionsHelperDataService, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, decorators: [{
128
128
  type: Injectable
129
129
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.ActivatedRoute }, { type: i2.LocalEventsService }, { type: i3.AuthenticationService }, { type: i3.UserService }, { type: i3.NetworkService }, { type: i4.KeyboardShortcutsService, decorators: [{
130
130
  type: Optional
131
131
  }] }, { type: i5.OptionsHelperService, decorators: [{
132
132
  type: Optional
133
133
  }] }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1oZWxwZXItZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcy9vcHRpb25zLWhlbHBlci1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQXlCLEVBQUUsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBb0MsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBNkJ2RSxNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQ1ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQStCLEVBQy9CLHFCQUE0QyxFQUM1QyxXQUF3QixFQUN4QixjQUE4QixFQUNsQix3QkFBa0QsRUFDbEQsb0JBQTBDO1FBUHRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBZjFELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRS9CLHNC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QVU7OzBCQW9CRixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBMaXN0RXZlbnRJbnRlcmZhY2UsXG4gICAgTm9kZUVudHJpZXNEYXRhVHlwZSxcbiAgICBOb2RlRW50cmllc0Rpc3BsYXlUeXBlLFxufSBmcm9tICcuLi9ub2RlLWVudHJpZXMvZW50cmllcy1tb2RlbCc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlLCBNRSwgTmV0d29ya1NlcnZpY2UsIE5vZGUsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDdXN0b21PcHRpb25zLCBPcHRpb25JdGVtLCBTY29wZSwgVGFyZ2V0IH0gZnJvbSAnLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgT3B0aW9uc0hlbHBlclNlcnZpY2UgfSBmcm9tICcuL2Fic3RyYWN0L29wdGlvbnMtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hdGNoZXNTaG9ydGN1dENvbmRpdGlvbiB9IGZyb20gJy4uL3R5cGVzL2tleWJvYXJkLXNob3J0Y3V0cyc7XG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UgfSBmcm9tICcuL2Fic3RyYWN0L2tleWJvYXJkLXNob3J0Y3V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvY2FsRXZlbnRzU2VydmljZSB9IGZyb20gJy4vbG9jYWwtZXZlbnRzLnNlcnZpY2UnO1xuXG50eXBlIERlbGV0ZUV2ZW50ID0ge1xuICAgIG9iamVjdHM6IE5vZGVbXSB8IGFueTtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGVycm9yOiBib29sZWFuO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uc0hlbHBlckNvbXBvbmVudHMge1xuICAgIGFjdGlvbmJhcjogQWN0aW9uYmFyQ29tcG9uZW50O1xuICAgIGRyb3Bkb3duOiBEcm9wZG93bkNvbXBvbmVudDtcbiAgICBsaXN0OiBMaXN0RXZlbnRJbnRlcmZhY2U8Tm9kZUVudHJpZXNEYXRhVHlwZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uRGF0YSB7XG4gICAgc2NvcGU6IFNjb3BlO1xuICAgIGFjdGl2ZU9iamVjdHM/OiBOb2RlW10gfCBhbnlbXTtcbiAgICBzZWxlY3RlZE9iamVjdHM/OiBOb2RlW10gfCBhbnlbXTtcbiAgICBhbGxPYmplY3RzPzogTm9kZVtdIHwgYW55W107XG4gICAgcGFyZW50PzogTm9kZSB8IGFueTtcbiAgICBjdXN0b21PcHRpb25zPzogQ3VzdG9tT3B0aW9ucztcbiAgICAvKipcbiAgICAgKiBjdXN0b20gaW50ZXJjZXB0b3IgdG8gbW9kaWZ5IHRoZSBkZWZhdWx0IG9wdGlvbnMgYXJyYXlcbiAgICAgKi9cbiAgICBwb3N0UHJlcGFyZU9wdGlvbnM/OiAob3B0aW9uczogT3B0aW9uSXRlbVtdLCBvYmplY3RzOiBOb2RlW10pID0+IHZvaWQ7XG59XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3B0aW9uc0hlbHBlckRhdGFTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGNvbXBvbmVudHM6IE9wdGlvbnNIZWxwZXJDb21wb25lbnRzO1xuICAgIHByaXZhdGUgZGF0YTogT3B0aW9uRGF0YTtcbiAgICBwcml2YXRlIGtleWJvYXJkU2hvcnRjdXRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBnbG9iYWxPcHRpb25zOiBPcHRpb25JdGVtW107XG4gICAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcmVhZG9ubHkgdmlydHVhbE5vZGVzQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGVbXT4oKTtcbiAgICByZWFkb25seSBub2Rlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGVbXSB8IHZvaWQ+KCk7XG4gICAgcmVhZG9ubHkgbm9kZXNEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEZWxldGVFdmVudD4oKTtcbiAgICByZWFkb25seSBkaXNwbGF5VHlwZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGVFbnRyaWVzRGlzcGxheVR5cGU+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbG9jYWxFdmVudHM6IExvY2FsRXZlbnRzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmV0d29ya1NlcnZpY2U6IE5ldHdvcmtTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGtleWJvYXJkU2hvcnRjdXRzU2VydmljZTogS2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG9wdGlvbnNIZWxwZXJTZXJ2aWNlOiBPcHRpb25zSGVscGVyU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlclN0YXRpY1N1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG4gICAgLyoqIFBlcmZvcm1zIHN1YnNjcmlwdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRvIGJlIHJlZnJlc2hlZC4gKi9cbiAgICBwcml2YXRlIHJlZ2lzdGVyU3RhdGljU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2NhbEV2ZW50cy5ub2Rlc0RlbGV0ZWRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChub2RlcykgPT4gdGhpcy5jb21wb25lbnRzPy5saXN0Py5kZWxldGVOb2Rlcyhub2RlcykpO1xuICAgICAgICB0aGlzLmxvY2FsRXZlbnRzLm5vZGVzQ2hhbmdlZFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5vZGVzKSA9PiB0aGlzLmNvbXBvbmVudHM/Lmxpc3Q/LnVwZGF0ZU5vZGVzKG5vZGVzKSk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdENvbXBvbmVudHMoXG4gICAgICAgIGFjdGlvbmJhcjogQWN0aW9uYmFyQ29tcG9uZW50ID0gbnVsbCxcbiAgICAgICAgbGlzdDogTGlzdEV2ZW50SW50ZXJmYWNlPE5vZGVFbnRyaWVzRGF0YVR5cGU+ID0gbnVsbCxcbiAgICAgICAgZHJvcGRvd246IERyb3Bkb3duQ29tcG9uZW50ID0gbnVsbCxcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzID0ge1xuICAgICAgICAgICAgYWN0aW9uYmFyLFxuICAgICAgICAgICAgbGlzdCxcbiAgICAgICAgICAgIGRyb3Bkb3duLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoKGF3YWl0IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlcihNRSkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKSkucGVyc29uLmF1dGhvcml0eU5hbWUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubmV0d29ya1NlcnZpY2UuZ2V0UmVwb3NpdG9yaWVzKCkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgfVxuXG4gICAgc2V0RGF0YShkYXRhOiBPcHRpb25EYXRhKSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2Uud3JhcE9wdGlvbkNhbGxiYWNrcyhkYXRhKTtcbiAgICB9XG5cbiAgICBhc3luYyByZWZyZXNoQ29tcG9uZW50cyhyZWZyZXNoTGlzdE9wdGlvbnMgPSB0cnVlKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEgPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdvcHRpb25zIGhlbHBlciByZWZyZXNoIGNhbGxlZCBidXQgbm8gZGF0YSBwcmV2aW91c2x5IGJvdW5kJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdvcHRpb25zSGVscGVyU2VydmljZSBub3QgcHJvdmlkZWQuIE5vIGRlZmF1bHQgYWN0aW9ucyB3aWxsIGJlIGdlbmVyYXRlZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2xvYmFsT3B0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0QXZhaWxhYmxlT3B0aW9ucyhUYXJnZXQuQWN0aW9uYmFyKTtcbiAgICAgICAgYXdhaXQgdGhpcy5vcHRpb25zSGVscGVyU2VydmljZT8ucmVmcmVzaENvbXBvbmVudHMoXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMsXG4gICAgICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgICAgICByZWZyZXNoTGlzdE9wdGlvbnMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0QXZhaWxhYmxlT3B0aW9ucyh0YXJnZXQ6IFRhcmdldCwgb2JqZWN0czogTm9kZVtdID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zSGVscGVyU2VydmljZT8uZ2V0QXZhaWxhYmxlT3B0aW9ucyhcbiAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgIG9iamVjdHMsXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMsXG4gICAgICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRWaXJ0dWFsT2JqZWN0cyhvYmplY3RzOiBhbnlbXSkge1xuICAgICAgICBvYmplY3RzID0gb2JqZWN0cy5tYXAoKG86IGFueSkgPT4ge1xuICAgICAgICAgICAgby52aXJ0dWFsID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy52aXJ0dWFsTm9kZXNBZGRlZC5lbWl0KG9iamVjdHMpO1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRzPy5saXN0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudHM/Lmxpc3QuYWRkVmlydHVhbE5vZGVzKG9iamVjdHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJHbG9iYWxLZXlib2FyZFNob3J0Y3V0cygpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmtleWJvYXJkU2hvcnRjdXRzU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5rZXlib2FyZFNob3J0Y3V0c1N1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5nbG9iYWxPcHRpb25zICYmICF0aGlzLmtleWJvYXJkU2hvcnRjdXRzU2VydmljZT8uc2hvdWxkSWdub3JlU2hvcnRjdXQoZXZlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkT3B0aW9uID0gdGhpcy5nbG9iYWxPcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbjogT3B0aW9uSXRlbSkgPT5cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlzRW5hYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ua2V5Ym9hcmRTaG9ydGN1dCAmJlxuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzU2hvcnRjdXRDb25kaXRpb24oZXZlbnQsIG9wdGlvbi5rZXlib2FyZFNob3J0Y3V0KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobWF0Y2hlZE9wdGlvbikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IG1hdGNoZWRPcHRpb24uY2FsbGJhY2sobnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZpbHRlck9wdGlvbnMob3B0aW9uczogT3B0aW9uSXRlbVtdLCB0YXJnZXQ6IFRhcmdldCwgb2JqZWN0czogTm9kZVtdIHwgYW55ID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zSGVscGVyU2VydmljZS5maWx0ZXJPcHRpb25zKG9wdGlvbnMsIHRhcmdldCwgdGhpcy5kYXRhLCBvYmplY3RzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogc2hvcnRjdXQgdG8gc2ltcGx5IGRpc2FibGUgYWxsIG9wdGlvbnMgb24gdGhlIGdpdmVuIGNvbXBvZW5udHNcbiAgICAgKiBAcGFyYW0gYWN0aW9uYmFyXG4gICAgICogQHBhcmFtIGxpc3RcbiAgICAgKi9cbiAgICBjbGVhckNvbXBvbmVudHMoYWN0aW9uYmFyOiBBY3Rpb25iYXJDb21wb25lbnQsIGxpc3Q6IExpc3RFdmVudEludGVyZmFjZTxOb2RlPiA9IG51bGwpIHtcbiAgICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgICAgIGxpc3Quc2V0T3B0aW9ucyhudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uYmFyKSB7XG4gICAgICAgICAgICBhY3Rpb25iYXIub3B0aW9ucyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFzdGVOb2RlKG5vZGVzOiBOb2RlW10gPSBbXSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlLnBhc3RlTm9kZSh0aGlzLmNvbXBvbmVudHMsIHRoaXMuZGF0YSwgbm9kZXMpO1xuICAgIH1cbn1cbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1oZWxwZXItZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcy9vcHRpb25zLWhlbHBlci1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQXlCLEVBQUUsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBb0MsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBNkJ2RSxNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQ1ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQStCLEVBQy9CLHFCQUE0QyxFQUM1QyxXQUF3QixFQUN4QixjQUE4QixFQUNsQix3QkFBa0QsRUFDbEQsb0JBQTBDO1FBUHRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBZjFELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRS9CLHNC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QVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUge1xuICAgIExpc3RFdmVudEludGVyZmFjZSxcbiAgICBOb2RlRW50cmllc0RhdGFUeXBlLFxuICAgIE5vZGVFbnRyaWVzRGlzcGxheVR5cGUsXG59IGZyb20gJy4uL25vZGUtZW50cmllcy9lbnRyaWVzLW1vZGVsJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UsIE1FLCBOZXR3b3JrU2VydmljZSwgTm9kZSwgVXNlclNlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEN1c3RvbU9wdGlvbnMsIE9wdGlvbkl0ZW0sIFNjb3BlLCBUYXJnZXQgfSBmcm9tICcuLi90eXBlcy9vcHRpb24taXRlbSc7XG5pbXBvcnQgeyBPcHRpb25zSGVscGVyU2VydmljZSB9IGZyb20gJy4vYWJzdHJhY3Qvb3B0aW9ucy1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWF0Y2hlc1Nob3J0Y3V0Q29uZGl0aW9uIH0gZnJvbSAnLi4vdHlwZXMva2V5Ym9hcmQtc2hvcnRjdXRzJztcbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRzU2VydmljZSB9IGZyb20gJy4vYWJzdHJhY3Qva2V5Ym9hcmQtc2hvcnRjdXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9jYWxFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1ldmVudHMuc2VydmljZSc7XG5cbnR5cGUgRGVsZXRlRXZlbnQgPSB7XG4gICAgb2JqZWN0czogTm9kZVtdIHwgYW55O1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgZXJyb3I6IGJvb2xlYW47XG59O1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zSGVscGVyQ29tcG9uZW50cyB7XG4gICAgYWN0aW9uYmFyPzogQWN0aW9uYmFyQ29tcG9uZW50O1xuICAgIGRyb3Bkb3duPzogRHJvcGRvd25Db21wb25lbnQ7XG4gICAgbGlzdD86IExpc3RFdmVudEludGVyZmFjZTxOb2RlRW50cmllc0RhdGFUeXBlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25EYXRhIHtcbiAgICBzY29wZTogU2NvcGU7XG4gICAgYWN0aXZlT2JqZWN0cz86IE5vZGVbXSB8IGFueVtdO1xuICAgIHNlbGVjdGVkT2JqZWN0cz86IE5vZGVbXSB8IGFueVtdO1xuICAgIGFsbE9iamVjdHM/OiBOb2RlW10gfCBhbnlbXTtcbiAgICBwYXJlbnQ/OiBOb2RlIHwgYW55O1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDdXN0b21PcHRpb25zO1xuICAgIC8qKlxuICAgICAqIGN1c3RvbSBpbnRlcmNlcHRvciB0byBtb2RpZnkgdGhlIGRlZmF1bHQgb3B0aW9ucyBhcnJheVxuICAgICAqL1xuICAgIHBvc3RQcmVwYXJlT3B0aW9ucz86IChvcHRpb25zOiBPcHRpb25JdGVtW10sIG9iamVjdHM6IE5vZGVbXSkgPT4gdm9pZDtcbn1cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPcHRpb25zSGVscGVyRGF0YVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgY29tcG9uZW50czogT3B0aW9uc0hlbHBlckNvbXBvbmVudHM7XG4gICAgcHJpdmF0ZSBkYXRhOiBPcHRpb25EYXRhO1xuICAgIHByaXZhdGUga2V5Ym9hcmRTaG9ydGN1dHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGdsb2JhbE9wdGlvbnM6IE9wdGlvbkl0ZW1bXTtcbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICByZWFkb25seSB2aXJ0dWFsTm9kZXNBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZVtdPigpO1xuICAgIHJlYWRvbmx5IG5vZGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZVtdIHwgdm9pZD4oKTtcbiAgICByZWFkb25seSBub2Rlc0RlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERlbGV0ZUV2ZW50PigpO1xuICAgIHJlYWRvbmx5IGRpc3BsYXlUeXBlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZUVudHJpZXNEaXNwbGF5VHlwZT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBsb2NhbEV2ZW50czogTG9jYWxFdmVudHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUga2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlOiBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgb3B0aW9uc0hlbHBlclNlcnZpY2U6IE9wdGlvbnNIZWxwZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3RhdGljU3Vic2NyaXB0aW9ucygpO1xuICAgIH1cbiAgICAvKiogUGVyZm9ybXMgc3Vic2NyaXB0aW9ucyB0aGF0IGRvbid0IGhhdmUgdG8gYmUgcmVmcmVzaGVkLiAqL1xuICAgIHByaXZhdGUgcmVnaXN0ZXJTdGF0aWNTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsRXZlbnRzLm5vZGVzRGVsZXRlZFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5vZGVzKSA9PiB0aGlzLmNvbXBvbmVudHM/Lmxpc3Q/LmRlbGV0ZU5vZGVzKG5vZGVzKSk7XG4gICAgICAgIHRoaXMubG9jYWxFdmVudHMubm9kZXNDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobm9kZXMpID0+IHRoaXMuY29tcG9uZW50cz8ubGlzdD8udXBkYXRlTm9kZXMobm9kZXMpKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0Q29tcG9uZW50cyhcbiAgICAgICAgYWN0aW9uYmFyOiBBY3Rpb25iYXJDb21wb25lbnQgPSBudWxsLFxuICAgICAgICBsaXN0OiBMaXN0RXZlbnRJbnRlcmZhY2U8Tm9kZUVudHJpZXNEYXRhVHlwZT4gPSBudWxsLFxuICAgICAgICBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQgPSBudWxsLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgICAgICBhY3Rpb25iYXIsXG4gICAgICAgICAgICBsaXN0LFxuICAgICAgICAgICAgZHJvcGRvd24sXG4gICAgICAgIH07XG4gICAgICAgIGlmICgoYXdhaXQgdGhpcy51c2VyU2VydmljZS5nZXRVc2VyKE1FKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpKS5wZXJzb24uYXV0aG9yaXR5TmFtZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5uZXR3b3JrU2VydmljZS5nZXRSZXBvc2l0b3JpZXMoKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG5cbiAgICBzZXREYXRhKGRhdGE6IE9wdGlvbkRhdGEpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5vcHRpb25zSGVscGVyU2VydmljZS53cmFwT3B0aW9uQ2FsbGJhY2tzKGRhdGEpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignb3B0aW9ucyBoZWxwZXIgcmVmcmVzaCBjYWxsZWQgYnV0IG5vIGRhdGEgcHJldmlvdXNseSBib3VuZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignb3B0aW9uc0hlbHBlclNlcnZpY2Ugbm90IHByb3ZpZGVkLiBObyBkZWZhdWx0IGFjdGlvbnMgd2lsbCBiZSBnZW5lcmF0ZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdsb2JhbE9wdGlvbnMgPSBhd2FpdCB0aGlzLmdldEF2YWlsYWJsZU9wdGlvbnMoVGFyZ2V0LkFjdGlvbmJhcik7XG4gICAgICAgIGF3YWl0IHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2U/LnJlZnJlc2hDb21wb25lbnRzKHRoaXMuY29tcG9uZW50cywgdGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBnZXRBdmFpbGFibGVPcHRpb25zKHRhcmdldDogVGFyZ2V0LCBvYmplY3RzOiBOb2RlW10gPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlPy5nZXRBdmFpbGFibGVPcHRpb25zKFxuICAgICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgICAgb2JqZWN0cyxcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFZpcnR1YWxPYmplY3RzKG9iamVjdHM6IGFueVtdKSB7XG4gICAgICAgIG9iamVjdHMgPSBvYmplY3RzLm1hcCgobzogYW55KSA9PiB7XG4gICAgICAgICAgICBvLnZpcnR1YWwgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG87XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpcnR1YWxOb2Rlc0FkZGVkLmVtaXQob2JqZWN0cyk7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudHM/Lmxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cz8ubGlzdC5hZGRWaXJ0dWFsTm9kZXMob2JqZWN0cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlckdsb2JhbEtleWJvYXJkU2hvcnRjdXRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMua2V5Ym9hcmRTaG9ydGN1dHNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmtleWJvYXJkU2hvcnRjdXRzU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmdsb2JhbE9wdGlvbnMgJiYgIXRoaXMua2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlPy5zaG91bGRJZ25vcmVTaG9ydGN1dChldmVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb24gPSB0aGlzLmdsb2JhbE9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAob3B0aW9uOiBPcHRpb25JdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICBvcHRpb24uaXNFbmFibGVkICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5rZXlib2FyZFNob3J0Y3V0ICYmXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXNTaG9ydGN1dENvbmRpdGlvbihldmVudCwgb3B0aW9uLmtleWJvYXJkU2hvcnRjdXQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChtYXRjaGVkT3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gbWF0Y2hlZE9wdGlvbi5jYWxsYmFjayhudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmlsdGVyT3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10sIHRhcmdldDogVGFyZ2V0LCBvYmplY3RzOiBOb2RlW10gfCBhbnkgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlLmZpbHRlck9wdGlvbnMob3B0aW9ucywgdGFyZ2V0LCB0aGlzLmRhdGEsIG9iamVjdHMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBzaG9ydGN1dCB0byBzaW1wbHkgZGlzYWJsZSBhbGwgb3B0aW9ucyBvbiB0aGUgZ2l2ZW4gY29tcG9lbm50c1xuICAgICAqIEBwYXJhbSBhY3Rpb25iYXJcbiAgICAgKiBAcGFyYW0gbGlzdFxuICAgICAqL1xuICAgIGNsZWFyQ29tcG9uZW50cyhhY3Rpb25iYXI6IEFjdGlvbmJhckNvbXBvbmVudCwgbGlzdDogTGlzdEV2ZW50SW50ZXJmYWNlPE5vZGU+ID0gbnVsbCkge1xuICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgbGlzdC5zZXRPcHRpb25zKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25iYXIpIHtcbiAgICAgICAgICAgIGFjdGlvbmJhci5vcHRpb25zID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXN0ZU5vZGUobm9kZXM6IE5vZGVbXSA9IFtdKSB7XG4gICAgICAgIHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2UucGFzdGVOb2RlKHRoaXMuY29tcG9uZW50cywgdGhpcy5kYXRhLCB0cnVlLCBub2Rlcyk7XG4gICAgfVxufVxuIl19