@ng-nest/ui 18.0.8 → 18.0.10

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 (151) hide show
  1. package/alert/alert.component.d.ts +3 -3
  2. package/auto-complete/auto-complete-portal.component.d.ts +6 -9
  3. package/auto-complete/auto-complete.component.d.ts +1 -0
  4. package/cascade/cascade-portal.component.d.ts +7 -9
  5. package/cascade/cascade.component.d.ts +1 -9
  6. package/cascade/cascade.property.d.ts +5 -2
  7. package/checkbox/checkbox.property.d.ts +10 -98
  8. package/color-picker/color-picker-portal.component.d.ts +6 -9
  9. package/core/functions/convert.d.ts +5 -0
  10. package/core/util/public-api.d.ts +1 -0
  11. package/core/util/sleep.d.ts +5 -0
  12. package/date-picker/date-picker-portal.component.d.ts +5 -6
  13. package/date-picker/date-picker.property.d.ts +1 -31
  14. package/date-picker/date-range-portal.component.d.ts +5 -6
  15. package/dialog/dialog.component.d.ts +4 -3
  16. package/dropdown/dropdown-portal.component.d.ts +5 -7
  17. package/esm2022/alert/alert.component.mjs +13 -10
  18. package/esm2022/auto-complete/auto-complete-portal.component.mjs +17 -10
  19. package/esm2022/auto-complete/auto-complete.component.mjs +7 -4
  20. package/esm2022/back-top/back-top.component.mjs +4 -2
  21. package/esm2022/cascade/cascade-portal.component.mjs +20 -11
  22. package/esm2022/cascade/cascade.component.mjs +5 -3
  23. package/esm2022/cascade/cascade.property.mjs +2 -2
  24. package/esm2022/checkbox/checkbox.property.mjs +3 -43
  25. package/esm2022/color-picker/color-picker-portal.component.mjs +17 -10
  26. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  27. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  28. package/esm2022/core/functions/convert.mjs +15 -1
  29. package/esm2022/core/util/public-api.mjs +2 -1
  30. package/esm2022/core/util/sleep.mjs +8 -0
  31. package/esm2022/date-picker/date-picker-portal.component.mjs +17 -6
  32. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  33. package/esm2022/date-picker/date-picker.property.mjs +2 -17
  34. package/esm2022/date-picker/date-range-portal.component.mjs +17 -6
  35. package/esm2022/date-picker/date-range.component.mjs +3 -3
  36. package/esm2022/dialog/dialog.component.mjs +23 -18
  37. package/esm2022/dropdown/dropdown-portal.component.mjs +17 -8
  38. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  39. package/esm2022/find/find.component.mjs +15 -8
  40. package/esm2022/find/find.property.mjs +7 -57
  41. package/esm2022/form/form.component.mjs +3 -3
  42. package/esm2022/form/form.property.mjs +1 -1
  43. package/esm2022/highlight/highlight.component.mjs +3 -3
  44. package/esm2022/icon/icon.component.mjs +2 -2
  45. package/esm2022/image/image.component.mjs +3 -3
  46. package/esm2022/input/input.component.mjs +3 -3
  47. package/esm2022/input-number/input-number.component.mjs +3 -3
  48. package/esm2022/input-number/input-number.property.mjs +3 -23
  49. package/esm2022/loading/loading.component.mjs +3 -3
  50. package/esm2022/loading/loading.property.mjs +5 -5
  51. package/esm2022/radio/radio.property.mjs +3 -53
  52. package/esm2022/rate/rate.property.mjs +3 -58
  53. package/esm2022/select/select-portal.component.mjs +17 -10
  54. package/esm2022/select/select.component.mjs +23 -5
  55. package/esm2022/select/select.property.mjs +2 -2
  56. package/esm2022/slider-select/slider-select.property.mjs +3 -58
  57. package/esm2022/switch/switch.property.mjs +3 -58
  58. package/esm2022/table/table-body.component.mjs +5 -4
  59. package/esm2022/table/table.component.mjs +3 -3
  60. package/esm2022/table/table.property.mjs +14 -4
  61. package/esm2022/textarea/textarea.property.mjs +3 -38
  62. package/esm2022/time-picker/time-picker-portal.component.mjs +17 -6
  63. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  64. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  65. package/esm2022/transfer/transfer.component.mjs +3 -3
  66. package/esm2022/tree/tree-node.component.mjs +10 -2
  67. package/esm2022/tree/tree.component.mjs +11 -9
  68. package/esm2022/tree/tree.property.mjs +1 -1
  69. package/esm2022/tree/tree.service.mjs +28 -4
  70. package/esm2022/tree-select/tree-select-portal.component.mjs +17 -6
  71. package/esm2022/tree-select/tree-select.component.mjs +20 -4
  72. package/fesm2022/ng-nest-ui-alert.mjs +12 -9
  73. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-auto-complete.mjs +21 -11
  75. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-back-top.mjs +3 -1
  77. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-cascade.mjs +24 -13
  79. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-checkbox.mjs +2 -42
  81. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-color-picker.mjs +20 -13
  83. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-core.mjs +23 -1
  85. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-date-picker.mjs +36 -29
  87. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-dialog.mjs +22 -17
  89. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-dropdown.mjs +19 -10
  91. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-find.mjs +20 -63
  93. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-form.mjs +2 -2
  95. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-highlight.mjs +2 -2
  97. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-icon.mjs +1 -1
  99. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-image.mjs +2 -2
  101. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-input-number.mjs +4 -24
  103. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-input.mjs +2 -2
  105. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-loading.mjs +6 -6
  107. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-radio.mjs +2 -52
  109. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-rate.mjs +2 -57
  111. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-select.mjs +39 -14
  113. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-slider-select.mjs +2 -57
  115. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-switch.mjs +2 -57
  117. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-table.mjs +19 -8
  119. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-textarea.mjs +2 -37
  121. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-time-picker.mjs +20 -9
  123. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-transfer.mjs +2 -2
  125. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-tree-select.mjs +35 -8
  127. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-tree.mjs +46 -12
  129. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  130. package/find/find.component.d.ts +2 -0
  131. package/find/find.property.d.ts +20 -97
  132. package/form/form.property.d.ts +13 -6
  133. package/input-number/input-number.property.d.ts +4 -56
  134. package/loading/loading.property.d.ts +4 -4
  135. package/package.json +124 -124
  136. package/radio/radio.property.d.ts +10 -118
  137. package/rate/rate.property.d.ts +16 -121
  138. package/select/select-portal.component.d.ts +6 -9
  139. package/select/select.component.d.ts +5 -1
  140. package/slider-select/slider-select.property.d.ts +6 -113
  141. package/switch/switch.property.d.ts +2 -117
  142. package/table/table-body.component.d.ts +1 -1
  143. package/table/table.property.d.ts +13 -3
  144. package/textarea/textarea.property.d.ts +10 -45
  145. package/time-picker/time-picker-portal.component.d.ts +5 -6
  146. package/time-picker/time-picker.property.d.ts +1 -2
  147. package/tree/tree.component.d.ts +2 -3
  148. package/tree/tree.property.d.ts +1 -1
  149. package/tree/tree.service.d.ts +1 -1
  150. package/tree-select/tree-select-portal.component.d.ts +5 -6
  151. package/tree-select/tree-select.component.d.ts +7 -4
@@ -1,4 +1,4 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, model, input, viewChild, computed, output, HostBinding, HostListener } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, model, input, viewChild, computed, output, HostBinding, HostListener, signal, DestroyRef } from '@angular/core';
2
2
  import { XTreeSelectPortalPrefix } from './tree-select.property';
3
3
  import { XConnectBaseAnimation, XIsEmpty } from '@ng-nest/ui/core';
4
4
  import { map } from 'rxjs/operators';
@@ -31,6 +31,8 @@ export class XTreeSelectPortalComponent {
31
31
  this.animating = output();
32
32
  this.nodeClick = output();
33
33
  this.isEmpty = computed(() => XIsEmpty(this.data()));
34
+ this.destroy = signal(false);
35
+ this.destroyRef = inject(DestroyRef);
34
36
  this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.treeSelect)), {
35
37
  initialValue: zh_CN.treeSelect
36
38
  });
@@ -39,11 +41,20 @@ export class XTreeSelectPortalComponent {
39
41
  get getPlacement() {
40
42
  return this.placement();
41
43
  }
42
- done(event) {
43
- event.toState !== 'void' && this.animating.emit(false);
44
+ done() {
45
+ if (this.destroy())
46
+ return;
47
+ this.animating.emit(false);
44
48
  }
45
- start(event) {
46
- event.toState !== 'void' && this.animating.emit(true);
49
+ start() {
50
+ if (this.destroy())
51
+ return;
52
+ this.animating.emit(true);
53
+ }
54
+ ngOnInit() {
55
+ this.destroyRef.onDestroy(() => {
56
+ this.destroy.set(true);
57
+ });
47
58
  }
48
59
  stopPropagation(event) {
49
60
  event.stopPropagation();
@@ -72,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
72
83
  type: HostListener,
73
84
  args: ['@x-connect-base-animation.start', ['$event']]
74
85
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFDdEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQW1CLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVl0RCxNQUFNLE9BQU8sMEJBQTBCO0lBVnZDO1FBcUJFLFNBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFpQixNQUFNLENBQUMsQ0FBQztRQUMxQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBDLFVBQUssR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNyQixTQUFJLEdB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QkFBdUIsRUFBRSxjQUMxQixJQUFJLFdBQ1AsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLGlCQUczQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUM7OEJBR2tCLFlBQVk7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUdHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBUZW1wbGF0ZVJlZixcclxuICBpbmplY3QsXHJcbiAgbW9kZWwsXHJcbiAgaW5wdXQsXHJcbiAgdmlld0NoaWxkLFxyXG4gIGNvbXB1dGVkLFxyXG4gIG91dHB1dCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVTZWxlY3ROb2RlLCBYVHJlZVNlbGVjdFBvcnRhbFByZWZpeCB9IGZyb20gJy4vdHJlZS1zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhJc0VtcHR5LCBYUGxhY2VtZW50LCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyZWVTZWxlY3QsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhUcmVlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdHJlZSc7XHJcbmltcG9ydCB7IFhFbXB0eUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2VtcHR5JztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVTZWxlY3RQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtYVHJlZUNvbXBvbmVudCwgWEVtcHR5Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZVNlbGVjdFBvcnRhbENvbXBvbmVudCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIGdldCBnZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgZXZlbnQudG9TdGF0ZSAhPT0gJ3ZvaWQnICYmIHRoaXMuYW5pbWF0aW5nLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIGV2ZW50LnRvU3RhdGUgIT09ICd2b2lkJyAmJiB0aGlzLmFuaW1hdGluZy5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgdHJlZSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxYVHJlZUNvbXBvbmVudD4oJ3RyZWUnKTtcclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuXHJcbiAgdmFsdWUgPSBtb2RlbDxhbnk+KCk7XHJcbiAgZGF0YSA9IGlucHV0PFhUcmVlU2VsZWN0Tm9kZVtdPihbXSk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8WFBsYWNlbWVudD4oJ2JvdHRvbScpO1xyXG4gIG11bHRpcGxlID0gaW5wdXQoZmFsc2UpO1xyXG4gIG5vZGVUcGwgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xyXG4gIGlucHV0Q29tID0gaW5wdXQ8WElucHV0Q29tcG9uZW50PigpO1xyXG4gIHBvcnRhbE1heEhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIG9iamVjdEFycmF5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHNlbGVjdEFsbCA9IGlucHV0KGZhbHNlKTtcclxuICBzZWxlY3RBbGxUZXh0ID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgY2FzZVNlbnNpdGl2ZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNlYXJjaCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICB2aXJ0dWFsU2Nyb2xsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGtleXdvcmRUZXh0ID0gaW5wdXQ8YW55PignJyk7XHJcbiAgc2l6ZSA9IGlucHV0PFhTaXplPigpO1xyXG4gIG9ubHlMZWFmID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGV4cGFuZGVkTGV2ZWwgPSBpbnB1dDxudW1iZXI+KCk7XHJcblxyXG4gIGFuaW1hdGluZyA9IG91dHB1dDxib29sZWFuPigpO1xyXG4gIG5vZGVDbGljayA9IG91dHB1dDx7IG5vZGU6IFhUcmVlU2VsZWN0Tm9kZTsgdmFsdWU/OiBYVHJlZVNlbGVjdE5vZGVbXSB8IChzdHJpbmcgfCBudW1iZXIpW10gfT4oKTtcclxuXHJcbiAgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IFhJc0VtcHR5KHRoaXMuZGF0YSgpKSk7XHJcblxyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHgudHJlZVNlbGVjdCBhcyBYSTE4blRyZWVTZWxlY3QpKSwge1xyXG4gICAgaW5pdGlhbFZhbHVlOiB6aF9DTi50cmVlU2VsZWN0XHJcbiAgfSk7XHJcblxyXG4gIGdldFNlbGVjdEFsbFRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdEFsbFRleHQoKSB8fCB0aGlzLmxvY2FsZSgpLnNlbGVjdEFsbFRleHQpO1xyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgbm9kZSwgdmFsdWU6IHRoaXMudmFsdWUoKSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBub2RlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3RyZWVTZWxlY3RQb3J0YWxcclxuICBjbGFzcz1cIngtdHJlZS1zZWxlY3QtcG9ydGFsXCJcclxuICBbY2xhc3MueC10cmVlLXNlbGVjdC1wb3J0YWwtdmlydHVhbC1zY3JvbGxdPVwidmlydHVhbFNjcm9sbCgpXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20oKT8uaW5wdXRGb2N1cygnZm9jdXMnKTsgc3RvcFByb3BhZ2F0aW9uKCRldmVudClcIlxyXG4gIFtzdHlsZS5tYXhIZWlnaHRdPVwicG9ydGFsTWF4SGVpZ2h0KClcIlxyXG4gIFtzdHlsZS5oZWlnaHRdPVwidmlydHVhbFNjcm9sbCgpID8gcG9ydGFsTWF4SGVpZ2h0KCkgOiAnJ1wiXHJcbj5cclxuICA8eC10cmVlXHJcbiAgICAjdHJlZVxyXG4gICAgW2RhdGFdPVwiZGF0YSgpXCJcclxuICAgIFtsYWJlbFRwbF09XCJub2RlVHBsKClcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbCgpXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCgpID8gdW5kZWZpbmVkIDogdHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbZXhwYW5kZWRMZXZlbF09XCJleHBhbmRlZExldmVsKCkhXCJcclxuICAgIFsoYWN0aXZhdGVkSWQpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwib25Ob2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcbiAgICBbYWxsb3dNYW55QWN0aXZhdGVkXT1cIm11bHRpcGxlKClcIlxyXG4gICAgW29iamVjdEFycmF5XT1cIm9iamVjdEFycmF5KClcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0KClcIlxyXG4gICAgW2Nhc2VTZW5zaXRpdmVdPVwiY2FzZVNlbnNpdGl2ZSgpXCJcclxuICAgIFtvbmx5TGVhZl09XCJvbmx5TGVhZigpXCJcclxuICAgIFtub2RlT3Blbl09XCJvbmx5TGVhZigpXCJcclxuICA+PC94LXRyZWU+XHJcbiAgQGlmIChpc0VtcHR5KCkpIHtcclxuICAgIDx4LWVtcHR5PjwveC1lbXB0eT5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3RyZWUtc2VsZWN0L3RyZWUtc2VsZWN0LXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90cmVlLXNlbGVjdC90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBbUIsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBWXRELE1BQU0sT0FBTywwQkFBMEI7SUFWdkM7UUF1QkUsU0FBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWlCLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEMsVUFBSyxHQUFHLEtBQUssRUFB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QyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO2lJQWhFVSwwQkFBMEI7cUhBQTFCLDBCQUEwQiw4cUZDbkN2Qyx1Z0NBOEJBLHVxQkRGWSxjQUFjLG1EQUFFLGVBQWUsc0NBSzdCLENBQUMscUJBQXFCLENBQUM7OzJGQUV4QiwwQkFBMEI7a0JBVnRDLFNBQVM7K0JBQ0UsR0FBRyx1QkFBdUIsRUFBRSxjQUMxQixJQUFJLFdBQ1AsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLGlCQUczQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUM7OEJBR2tCLFlBQVk7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBUZW1wbGF0ZVJlZixcclxuICBpbmplY3QsXHJcbiAgbW9kZWwsXHJcbiAgaW5wdXQsXHJcbiAgdmlld0NoaWxkLFxyXG4gIGNvbXB1dGVkLFxyXG4gIG91dHB1dCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgc2lnbmFsLFxyXG4gIERlc3Ryb3lSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRyZWVTZWxlY3ROb2RlLCBYVHJlZVNlbGVjdFBvcnRhbFByZWZpeCB9IGZyb20gJy4vdHJlZS1zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhJc0VtcHR5LCBYUGxhY2VtZW50LCBYU2l6ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2lucHV0JztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4blRyZWVTZWxlY3QsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFhUcmVlQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdHJlZSc7XHJcbmltcG9ydCB7IFhFbXB0eUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2VtcHR5JztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRyZWVTZWxlY3RQb3J0YWxQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtYVHJlZUNvbXBvbmVudCwgWEVtcHR5Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zZWxlY3QtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlbGVjdC1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVHJlZVNlbGVjdFBvcnRhbENvbXBvbmVudCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIGdldCBnZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmRlc3Ryb3koKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hbmltYXRpbmcuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIGlmICh0aGlzLmRlc3Ryb3koKSkgcmV0dXJuO1xyXG4gICAgdGhpcy5hbmltYXRpbmcuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHRyZWUgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8WFRyZWVDb21wb25lbnQ+KCd0cmVlJyk7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcblxyXG4gIHZhbHVlID0gbW9kZWw8YW55PigpO1xyXG4gIGRhdGEgPSBpbnB1dDxYVHJlZVNlbGVjdE5vZGVbXT4oW10pO1xyXG4gIHBsYWNlbWVudCA9IGlucHV0PFhQbGFjZW1lbnQ+KCdib3R0b20nKTtcclxuICBtdWx0aXBsZSA9IGlucHV0KGZhbHNlKTtcclxuICBub2RlVHBsID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcclxuICBpbnB1dENvbSA9IGlucHV0PFhJbnB1dENvbXBvbmVudD4oKTtcclxuICBwb3J0YWxNYXhIZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICBvYmplY3RBcnJheSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzZWxlY3RBbGwgPSBpbnB1dChmYWxzZSk7XHJcbiAgc2VsZWN0QWxsVGV4dCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gIGNhc2VTZW5zaXRpdmUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBzZWFyY2ggPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgdmlydHVhbFNjcm9sbCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBrZXl3b3JkVGV4dCA9IGlucHV0PGFueT4oJycpO1xyXG4gIHNpemUgPSBpbnB1dDxYU2l6ZT4oKTtcclxuICBvbmx5TGVhZiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBleHBhbmRlZExldmVsID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cclxuICBhbmltYXRpbmcgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICBub2RlQ2xpY2sgPSBvdXRwdXQ8eyBub2RlOiBYVHJlZVNlbGVjdE5vZGU7IHZhbHVlPzogWFRyZWVTZWxlY3ROb2RlW10gfCAoc3RyaW5nIHwgbnVtYmVyKVtdIH0+KCk7XHJcblxyXG4gIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiBYSXNFbXB0eSh0aGlzLmRhdGEoKSkpO1xyXG5cclxuICBkZXN0cm95ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHgudHJlZVNlbGVjdCBhcyBYSTE4blRyZWVTZWxlY3QpKSwge1xyXG4gICAgaW5pdGlhbFZhbHVlOiB6aF9DTi50cmVlU2VsZWN0XHJcbiAgfSk7XHJcblxyXG4gIGdldFNlbGVjdEFsbFRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdEFsbFRleHQoKSB8fCB0aGlzLmxvY2FsZSgpLnNlbGVjdEFsbFRleHQpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmRlc3Ryb3kuc2V0KHRydWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKG5vZGU6IFhUcmVlU2VsZWN0Tm9kZSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgbm9kZSwgdmFsdWU6IHRoaXMudmFsdWUoKSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBub2RlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3RyZWVTZWxlY3RQb3J0YWxcclxuICBjbGFzcz1cIngtdHJlZS1zZWxlY3QtcG9ydGFsXCJcclxuICBbY2xhc3MueC10cmVlLXNlbGVjdC1wb3J0YWwtdmlydHVhbC1zY3JvbGxdPVwidmlydHVhbFNjcm9sbCgpXCJcclxuICAoY2xpY2spPVwiaW5wdXRDb20oKT8uaW5wdXRGb2N1cygnZm9jdXMnKTsgc3RvcFByb3BhZ2F0aW9uKCRldmVudClcIlxyXG4gIFtzdHlsZS5tYXhIZWlnaHRdPVwicG9ydGFsTWF4SGVpZ2h0KClcIlxyXG4gIFtzdHlsZS5oZWlnaHRdPVwidmlydHVhbFNjcm9sbCgpID8gcG9ydGFsTWF4SGVpZ2h0KCkgOiAnJ1wiXHJcbj5cclxuICA8eC10cmVlXHJcbiAgICAjdHJlZVxyXG4gICAgW2RhdGFdPVwiZGF0YSgpXCJcclxuICAgIFtsYWJlbFRwbF09XCJub2RlVHBsKClcIlxyXG4gICAgW3ZpcnR1YWxTY3JvbGxdPVwidmlydHVhbFNjcm9sbCgpXCJcclxuICAgIFtzY3JvbGxFbGVtZW50XT1cInNlYXJjaCgpID8gdW5kZWZpbmVkIDogdHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbaGVpZ2h0QWRhcHRpb25dPVwidHJlZVNlbGVjdFBvcnRhbFwiXHJcbiAgICBbZXhwYW5kZWRMZXZlbF09XCJleHBhbmRlZExldmVsKCkhXCJcclxuICAgIFsoYWN0aXZhdGVkSWQpXT1cInZhbHVlXCJcclxuICAgIChub2RlQ2xpY2spPVwib25Ob2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXHJcbiAgICBbYWxsb3dNYW55QWN0aXZhdGVkXT1cIm11bHRpcGxlKClcIlxyXG4gICAgW29iamVjdEFycmF5XT1cIm9iamVjdEFycmF5KClcIlxyXG4gICAgW2tleXdvcmRUZXh0XT1cImtleXdvcmRUZXh0KClcIlxyXG4gICAgW2Nhc2VTZW5zaXRpdmVdPVwiY2FzZVNlbnNpdGl2ZSgpXCJcclxuICAgIFtvbmx5TGVhZl09XCJvbmx5TGVhZigpXCJcclxuICAgIFtub2RlT3Blbl09XCJvbmx5TGVhZigpXCJcclxuICA+PC94LXRyZWU+XHJcbiAgQGlmIChpc0VtcHR5KCkpIHtcclxuICAgIDx4LWVtcHR5PjwveC1lbXB0eT5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=