@coolon/angular-ui-powerups 16.1.0-aplpha.9 → 16.1.0-aplpha.91

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 (145) hide show
  1. package/assets/activities/input-activities.scss +10 -2
  2. package/assets/form.scss +74 -27
  3. package/assets/table.scss +13 -24
  4. package/assets/tabs.scss +2 -6
  5. package/esm2022/lib/animations/slide-animations.mjs +6 -1
  6. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  7. package/esm2022/lib/components/commands/command/command.component.mjs +24 -10
  8. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  9. package/esm2022/lib/components/commands/command-face.mjs +11 -11
  10. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
  11. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +6 -4
  12. package/esm2022/lib/components/components.module.mjs +22 -8
  13. package/esm2022/lib/components/disposable-component.mjs +19 -37
  14. package/esm2022/lib/components/exports.mjs +6 -2
  15. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  16. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
  17. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +3 -3
  18. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  19. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
  20. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +49 -10
  21. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  22. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  23. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  24. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +21 -9
  25. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  26. package/esm2022/lib/components/loadable-component.mjs +49 -0
  27. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  28. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  29. package/esm2022/lib/components/tables/abstract-table-model.mjs +42 -25
  30. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  31. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  32. package/esm2022/lib/components/tables/column/column-model.mjs +13 -3
  33. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  34. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  35. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  36. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  37. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  38. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  39. package/esm2022/lib/components/tables/column/selection-column-model.mjs +3 -3
  40. package/esm2022/lib/components/tables/editor/edit-session.mjs +4 -2
  41. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  42. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  43. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  44. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +132 -41
  45. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +7 -2
  46. package/esm2022/lib/components/tables/table/table.component.mjs +19 -68
  47. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  48. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  49. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +7 -4
  50. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +3 -3
  51. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  52. package/esm2022/lib/directives/directives.module.mjs +1 -1
  53. package/esm2022/lib/directives/exports.mjs +2 -1
  54. package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
  55. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  56. package/esm2022/lib/interaction/activity.mjs +3 -4
  57. package/esm2022/lib/interaction/alert.mjs +2 -2
  58. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -4
  59. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +7 -9
  60. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +28 -11
  61. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  62. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  63. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +2 -2
  64. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +3 -3
  65. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  66. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +3 -1
  67. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  68. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +129 -0
  69. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  70. package/esm2022/lib/interaction/exports.mjs +2 -1
  71. package/esm2022/lib/interaction/interaction.module.mjs +7 -9
  72. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +3 -4
  73. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  74. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  75. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  76. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  77. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  78. package/esm2022/lib/place/place-component.mjs +7 -7
  79. package/esm2022/lib/place/place-definition.mjs +3 -3
  80. package/esm2022/lib/place/place-history.mjs +2 -2
  81. package/esm2022/lib/place/place.decorator.mjs +2 -2
  82. package/esm2022/lib/place/place.module.mjs +1 -5
  83. package/esm2022/lib/place/route/formatter.mjs +2 -2
  84. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  85. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  86. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  87. package/esm2022/lib/place/visit-segment.mjs +2 -2
  88. package/esm2022/lib/place/visit.mjs +2 -2
  89. package/fesm2022/coolon-angular-ui-powerups.mjs +1075 -485
  90. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  91. package/lib/animations/slide-animations.d.ts +1 -0
  92. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  93. package/lib/components/commands/command/command.component.d.ts +2 -1
  94. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  95. package/lib/components/commands/command-face.d.ts +5 -7
  96. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
  97. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  98. package/lib/components/components.module.d.ts +55 -53
  99. package/lib/components/disposable-component.d.ts +11 -8
  100. package/lib/components/exports.d.ts +5 -1
  101. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  102. package/lib/components/forms/form-field.d.ts +5 -0
  103. package/lib/components/forms/number-input/number-input.component.d.ts +8 -4
  104. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  105. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  106. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  107. package/lib/components/forms/string-input/string-input.component.d.ts +3 -1
  108. package/lib/components/loadable-component.d.ts +17 -0
  109. package/lib/components/resize-aware.component.d.ts +24 -5
  110. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  111. package/lib/components/tables/abstract-table-model.d.ts +10 -5
  112. package/lib/components/tables/abstract-table.component.d.ts +3 -2
  113. package/lib/components/tables/column/column-manager.d.ts +19 -0
  114. package/lib/components/tables/column/column-model.d.ts +5 -1
  115. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  116. package/lib/components/tables/column/custom-template-column-model.d.ts +2 -1
  117. package/lib/components/tables/column/custom-value-column-model.d.ts +2 -1
  118. package/lib/components/tables/column/editor-controls-column-model.d.ts +2 -1
  119. package/lib/components/tables/column/list-propery-column-model.d.ts +2 -1
  120. package/lib/components/tables/column/property-column-model.d.ts +2 -1
  121. package/lib/components/tables/column/selection-column-model.d.ts +2 -1
  122. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  123. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +35 -16
  124. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +2 -1
  125. package/lib/components/tables/table/table.component.d.ts +5 -10
  126. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -1
  127. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  128. package/lib/directives/exports.d.ts +1 -0
  129. package/lib/directives/resize-observer.directive.d.ts +16 -0
  130. package/lib/interaction/activity.d.ts +2 -2
  131. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -0
  132. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +1 -3
  133. package/lib/interaction/components/activity-container/activity-container.component.d.ts +7 -3
  134. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  135. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  136. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +1 -1
  137. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  138. package/lib/interaction/exports.d.ts +1 -0
  139. package/lib/interaction/interaction.module.d.ts +28 -28
  140. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  141. package/lib/place/place-component.d.ts +4 -4
  142. package/lib/place/place.module.d.ts +4 -5
  143. package/package.json +7 -5
  144. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  145. package/lib/components/tables/column/column-list-model.d.ts +0 -13
@@ -1,4 +1,5 @@
1
- import { Component, HostBinding, Input } from '@angular/core';
1
+ /* eslint-disable @angular-eslint/no-host-metadata-property */
2
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
3
  import { Enum } from 'typescript-string-enums';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
@@ -35,11 +36,13 @@ export class IconComponent {
35
36
  return `fa-${this.suffix}`;
36
37
  }
37
38
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size) fa-icon;width-vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size);height:var(--resolved-size)}:host .svgIcon{width:var(--resolved-size);height:var(--resolved-size)}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size);width:var(--resolved-size);height:var(--resolved-size);margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" }, classAttribute: "mat-icon" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39
40
  }
40
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, decorators: [{
41
42
  type: Component,
42
- args: [{ selector: 'aup-icon', template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size) fa-icon;width-vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size);height:var(--resolved-size)}:host .svgIcon{width:var(--resolved-size);height:var(--resolved-size)}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size);width:var(--resolved-size);height:var(--resolved-size);margin-right:0!important}\n"] }]
43
+ args: [{ selector: 'aup-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
44
+ class: "mat-icon" // this ensures angular form styles that target mat icon also work with us
45
+ }, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"] }]
43
46
  }], propDecorators: { icon: [{
44
47
  type: Input
45
48
  }, {
@@ -53,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
53
56
  MATERIAL: 'mat'
54
57
  });
55
58
  })(IconComponent || (IconComponent = {}));
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7OztBQU83QyxNQUFNLE9BQU8sYUFBYTtJQUV4QixLQUFLLENBQVM7SUFFZCxNQUFNLENBQVM7SUFDZixNQUFNLENBQVM7SUFDZixZQUFZLENBQVM7SUFFckIsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRSxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztJQUV0QyxJQUVJLElBQUksQ0FBQyxRQUFnQjtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLGlCQUFpQixRQUFRLEdBQUcsQ0FBQztTQUNsRDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcseUNBQXlDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztJQUN2SCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7dUdBdENVLGFBQWE7MkZBQWIsYUFBYSw4SENSMUIsd2dCQXNCQTs7MkZEZGEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxVQUFVOzhCQWlCaEIsSUFBSTtzQkFGUCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLFdBQVc7O0FBK0IxQixXQUFpQixhQUFhO0lBRWYsd0JBQVUsR0FBRyxJQUFJLENBQUM7UUFDN0IsR0FBRyxFQUFFLEtBQUs7UUFDVixZQUFZLEVBQUUsSUFBSTtRQUNsQixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDLENBQUM7QUFHTCxDQUFDLEVBVGdCLGFBQWEsS0FBYixhQUFhLFFBUzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VudW19IGZyb20gJ3R5cGVzY3JpcHQtc3RyaW5nLWVudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ljb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcblxuICBfaWNvbjogc3RyaW5nO1xuXG4gIHByZWZpeDogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgYWxsb3dlZFByZWZpeGVzID0gRW51bS52YWx1ZXMoSWNvbkNvbXBvbmVudC5JY29uUHJlZml4KS5tYXAocCA9PiBgJHtwfTpgKTtcbiAgaWNvblByZWZpeCA9IEljb25Db21wb25lbnQuSWNvblByZWZpeDtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmljb25cIilcbiAgc2V0IGljb24oaWNvbk5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ljb24gPSBpY29uTmFtZTtcbiAgICBpZiAoIWljb25OYW1lKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdpY29uIGlzIG5pbCc7XG4gICAgICB0aGlzLnByZWZpeCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xvbkluZGV4ID0gaWNvbk5hbWUuaW5kZXhPZignOicpO1xuICAgIGlmIChjb2xvbkluZGV4ID4gMCkge1xuICAgICAgdGhpcy5wcmVmaXggPSB0aGlzLmljb24uc2xpY2UoMCwgY29sb25JbmRleCk7XG4gICAgICB0aGlzLnN1ZmZpeCA9IHRoaXMuaWNvbi5zbGljZShjb2xvbkluZGV4ICsgMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByZWZpeCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBgVW5rbm93biBpY29uIFwiJHtpY29uTmFtZX1cImA7XG4gICAgfVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gYFVua25vd24gaWNvbiBwcmVmaXgsIGV4cGVjdGVkIG9uZSBvZiBbJHt0aGlzLmFsbG93ZWRQcmVmaXhlcy5qb2luKCcsJyl9XSBnb3QgXCIke3RoaXMucHJlZml4fTpcImA7XG4gIH1cblxuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pY29uO1xuICB9XG5cbiAgZ2V0IGZhSWNvbigpOnN0cmluZyB7XG4gICAgcmV0dXJuIGBmYS0ke3RoaXMuc3VmZml4fWA7XG4gIH1cblxufVxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgSWNvbkNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGNvbnN0IEljb25QcmVmaXggPSBFbnVtKHtcbiAgICBTVkc6ICdzdmcnLFxuICAgIEZPTlRfQVdFU09NRTogJ2ZhJyxcbiAgICBNQVRFUklBTDogJ21hdCdcbiAgfSk7XG4gIGV4cG9ydCB0eXBlIEljb25QcmVmaXggPSBFbnVtPHR5cGVvZiBJY29uUHJlZml4PjtcblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicHJlZml4XCI+XG5cbiAgPG1hdC1pY29uICpuZ1N3aXRjaENhc2U9XCJpY29uUHJlZml4LlNWR1wiXG4gICAgICAgICAgICBbc3ZnSWNvbl09XCJzdWZmaXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJzdmdJY29uXCI+XG4gIDwvbWF0LWljb24+XG5cbiAgPG1hdC1pY29uICpuZ1N3aXRjaENhc2U9XCJpY29uUHJlZml4Lk1BVEVSSUFMXCI+XG4gICAge3tzdWZmaXh9fVxuICA8L21hdC1pY29uPlxuXG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cImljb25QcmVmaXguRk9OVF9BV0VTT01FXCIgY2xhc3M9XCJmYUljb25XcmFwcGVyXCI+XG4gICAgPGkgY2xhc3M9XCJmYS1zb2xpZFwiIFtjbGFzc109XCJmYUljb25cIj48L2k+XG4gIDwvZGl2PlxuXG4gIDxtYXQtaWNvbiAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlcnJvck1lc3NhZ2VcIj5cbiAgICBidWdfcmVwb3J0XG4gIDwvbWF0LWljb24+XG5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFXN0MsTUFBTSxPQUFPLGFBQWE7SUFFeEIsS0FBSyxDQUFTO0lBRWQsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBQ2YsWUFBWSxDQUFTO0lBRXJCLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUUsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFFdEMsSUFFSSxJQUFJLENBQUMsUUFBZ0I7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3hCLE9BQU87U0FDUjtRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsUUFBUSxHQUFHLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLHlDQUF5QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7SUFDdkgsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQXRDVSxhQUFhOzJGQUFiLGFBQWEsMEpDYjFCLHdnQkFzQkE7OzJGRFRhLGFBQWE7a0JBVHpCLFNBQVM7K0JBQ0UsVUFBVSxtQkFHSCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxVQUFVLENBQUUsMEVBQTBFO3FCQUM5Rjs4QkFlRyxJQUFJO3NCQUZQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsV0FBVzs7QUErQjFCLFdBQWlCLGFBQWE7SUFFZix3QkFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixHQUFHLEVBQUUsS0FBSztRQUNWLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFFBQVEsRUFBRSxLQUFLO0tBQ2hCLENBQUMsQ0FBQztBQUdMLENBQUMsRUFUZ0IsYUFBYSxLQUFiLGFBQWEsUUFTN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwibWF0LWljb25cIiAgLy8gdGhpcyBlbnN1cmVzIGFuZ3VsYXIgZm9ybSBzdHlsZXMgdGhhdCB0YXJnZXQgbWF0IGljb24gYWxzbyB3b3JrIHdpdGggdXNcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcblxuICBfaWNvbjogc3RyaW5nO1xuXG4gIHByZWZpeDogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgYWxsb3dlZFByZWZpeGVzID0gRW51bS52YWx1ZXMoSWNvbkNvbXBvbmVudC5JY29uUHJlZml4KS5tYXAocCA9PiBgJHtwfTpgKTtcbiAgaWNvblByZWZpeCA9IEljb25Db21wb25lbnQuSWNvblByZWZpeDtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmljb25cIilcbiAgc2V0IGljb24oaWNvbk5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ljb24gPSBpY29uTmFtZTtcbiAgICBpZiAoIWljb25OYW1lKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdpY29uIGlzIG5pbCc7XG4gICAgICB0aGlzLnByZWZpeCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xvbkluZGV4ID0gaWNvbk5hbWUuaW5kZXhPZignOicpO1xuICAgIGlmIChjb2xvbkluZGV4ID4gMCkge1xuICAgICAgdGhpcy5wcmVmaXggPSB0aGlzLmljb24uc2xpY2UoMCwgY29sb25JbmRleCk7XG4gICAgICB0aGlzLnN1ZmZpeCA9IHRoaXMuaWNvbi5zbGljZShjb2xvbkluZGV4ICsgMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByZWZpeCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBgVW5rbm93biBpY29uIFwiJHtpY29uTmFtZX1cImA7XG4gICAgfVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gYFVua25vd24gaWNvbiBwcmVmaXgsIGV4cGVjdGVkIG9uZSBvZiBbJHt0aGlzLmFsbG93ZWRQcmVmaXhlcy5qb2luKCcsJyl9XSBnb3QgXCIke3RoaXMucHJlZml4fTpcImA7XG4gIH1cblxuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pY29uO1xuICB9XG5cbiAgZ2V0IGZhSWNvbigpOnN0cmluZyB7XG4gICAgcmV0dXJuIGBmYS0ke3RoaXMuc3VmZml4fWA7XG4gIH1cblxufVxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgSWNvbkNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGNvbnN0IEljb25QcmVmaXggPSBFbnVtKHtcbiAgICBTVkc6ICdzdmcnLFxuICAgIEZPTlRfQVdFU09NRTogJ2ZhJyxcbiAgICBNQVRFUklBTDogJ21hdCdcbiAgfSk7XG4gIGV4cG9ydCB0eXBlIEljb25QcmVmaXggPSBFbnVtPHR5cGVvZiBJY29uUHJlZml4PjtcblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicHJlZml4XCI+XG5cbiAgPG1hdC1pY29uICpuZ1N3aXRjaENhc2U9XCJpY29uUHJlZml4LlNWR1wiXG4gICAgICAgICAgICBbc3ZnSWNvbl09XCJzdWZmaXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJzdmdJY29uXCI+XG4gIDwvbWF0LWljb24+XG5cbiAgPG1hdC1pY29uICpuZ1N3aXRjaENhc2U9XCJpY29uUHJlZml4Lk1BVEVSSUFMXCI+XG4gICAge3tzdWZmaXh9fVxuICA8L21hdC1pY29uPlxuXG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cImljb25QcmVmaXguRk9OVF9BV0VTT01FXCIgY2xhc3M9XCJmYUljb25XcmFwcGVyXCI+XG4gICAgPGkgY2xhc3M9XCJmYS1zb2xpZFwiIFtjbGFzc109XCJmYUljb25cIj48L2k+XG4gIDwvZGl2PlxuXG4gIDxtYXQtaWNvbiAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlcnJvck1lc3NhZ2VcIj5cbiAgICBidWdfcmVwb3J0XG4gIDwvbWF0LWljb24+XG5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { MutableValueModel } from '@coolon/pectin';
3
+ import { DisposableComponent } from "./disposable-component";
4
+ import * as i0 from "@angular/core";
5
+ export class LoadableComponent extends DisposableComponent {
6
+ #_loaded$ = new MutableValueModel();
7
+ #asyncLoadables = [];
8
+ #awaitedLoadables = [];
9
+ get loaded$() {
10
+ return this.#_loaded$.readonly$;
11
+ }
12
+ ngOnInit() {
13
+ super.ngOnInit();
14
+ this.#asyncLoadables.forEach(it => it.ensureLoaded());
15
+ if (this.#awaitedLoadables.length > 0) {
16
+ Promise.all(this.#awaitedLoadables.map(it => {
17
+ return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
18
+ })).then(() => {
19
+ this.#_loaded$.value = true;
20
+ });
21
+ }
22
+ else {
23
+ this.#_loaded$.value = true;
24
+ }
25
+ }
26
+ injectLoadable(token, options) {
27
+ return this.registerLoadable(inject(token), options);
28
+ }
29
+ registerLoadable(loadable, options) {
30
+ if (this.loaded$.value) {
31
+ loadable.ensureLoaded();
32
+ }
33
+ else {
34
+ if (!options || options.wait === true) {
35
+ this.#awaitedLoadables.push(loadable);
36
+ }
37
+ else {
38
+ this.#asyncLoadables.push(loadable);
39
+ }
40
+ }
41
+ return loadable;
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
44
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
47
+ type: Directive
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQUkzRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRXhELFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFbkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtJQUNqQyxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBLDREQUE0RDtZQUN2RixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7SUFHUyxjQUFjLENBQXFCLEtBQXVCLEVBQUUsT0FBMkI7UUFDL0YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxnQkFBZ0IsQ0FBcUIsUUFBVyxFQUFFLE9BQTJCO1FBQzNFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDdEIsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ3RDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ3BDO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO3VHQXhDVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3QsIFByb3ZpZGVyVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNdXRhYmxlVmFsdWVNb2RlbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi9kaXNwb3NhYmxlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHtMb2FkYWJsZX0gZnJvbSBcIi4vdHlwZXMvbG9hZGFibGVcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTG9hZGFibGVDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcblxuICAjX2xvYWRlZCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgI2FzeW5jTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG4gICNhd2FpdGVkTG9hZGFibGVzOiBMb2FkYWJsZVtdID0gW107XG5cbiAgZ2V0IGxvYWRlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI19sb2FkZWQkLnJlYWRvbmx5JFxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKVxuICAgIHRoaXMuI2FzeW5jTG9hZGFibGVzLmZvckVhY2goaXQgPT4gaXQuZW5zdXJlTG9hZGVkKCkpO1xuICAgIGlmICh0aGlzLiNhd2FpdGVkTG9hZGFibGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIFByb21pc2UuYWxsKHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMubWFwKGl0ID0+IHtcbiAgICAgICAgcmV0dXJuIGl0LmVuc3VyZUxvYWRlZCgpOy8vLnRoZW4oKCkgPT4gY29uc29sZS5sb2coYCR7aXQuY29uc3RydWN0b3IubmFtZX0gbG9hZGVkYCkpO1xuICAgICAgfSkpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLiNfbG9hZGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGluamVjdExvYWRhYmxlPFQgZXh0ZW5kcyBMb2FkYWJsZT4odG9rZW46IFByb3ZpZGVyVG9rZW48VD4sIG9wdGlvbnM/OiB7IHdhaXQ6IGJvb2xlYW4gfSk6IFQge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyTG9hZGFibGUoaW5qZWN0KHRva2VuKSwgb3B0aW9ucyk7XG4gIH1cblxuICByZWdpc3RlckxvYWRhYmxlPFQgZXh0ZW5kcyBMb2FkYWJsZT4obG9hZGFibGU6IFQsIG9wdGlvbnM/OiB7IHdhaXQ6IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy53YWl0ID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuI2F3YWl0ZWRMb2FkYWJsZXMucHVzaChsb2FkYWJsZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI2FzeW5jTG9hZGFibGVzLnB1c2gobG9hZGFibGUpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb2FkYWJsZTtcbiAgfVxufVxuIl19
@@ -1,29 +1,18 @@
1
1
  import { Directive, ElementRef, NgZone } from '@angular/core';
2
- import { MutableValueModel } from '@coolon/pectin';
2
+ import { Dsl, GarbageCollector, MutableValueModel } from '@coolon/pectin';
3
3
  import ResizeObserver from 'resize-observer-polyfill';
4
4
  import { DisposableComponent } from './disposable-component';
5
5
  import { Bounds } from './types/bounds.class';
6
6
  import * as i0 from "@angular/core";
7
7
  export class ResizeAwareComponent extends DisposableComponent {
8
- elementRef;
9
- ngZone;
10
- _bounds$ = new MutableValueModel(new Bounds(0, 0, 0, 0));
11
- constructor(elementRef, ngZone) {
12
- super();
13
- this.elementRef = elementRef;
14
- this.ngZone = ngZone;
15
- }
8
+ elementRef = this.inject(ElementRef);
9
+ ngZone = this.inject(NgZone);
10
+ boundsTracker = new ResizeAwareComponent.ResizeTracker(this.elementRef, this.ngZone);
16
11
  ngAfterViewInit() {
17
- const element = this.elementRef.nativeElement;
18
- const ro = new ResizeObserver((entries, observer) => {
19
- this.ngZone.run(() => this._updateBounds());
20
- });
21
- ro.observe(element);
22
- this.onDispose(() => ro.disconnect());
23
- setTimeout(() => this._updateBounds());
12
+ this.boundsTracker.notifyViewReady();
24
13
  }
25
14
  get bounds$() {
26
- return this._bounds$.readonly$;
15
+ return this.boundsTracker.bounds$;
27
16
  }
28
17
  get nativeElement() {
29
18
  return this.elementRef.nativeElement;
@@ -33,15 +22,63 @@ export class ResizeAwareComponent extends DisposableComponent {
33
22
  return this.bounds.relativePositionOf(point);
34
23
  }
35
24
  get bounds() {
36
- return this._bounds$.value;
37
- }
38
- _updateBounds() {
39
- this._bounds$.value = Bounds.ofElement(this.nativeElement);
25
+ return this.bounds$.value;
40
26
  }
41
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
42
28
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
43
29
  }
44
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, decorators: [{
45
31
  type: Directive
46
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWF3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvcmVzaXplLWF3YXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQyxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJNUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQUk1QjtJQUEyQztJQUZsRSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsQ0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpFLFlBQStCLFVBQXNCLEVBQXFCLE1BQWM7UUFDdEYsS0FBSyxFQUFFLENBQUM7UUFEcUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFxQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXhGLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQ0FBcUM7SUFDOUIsa0JBQWtCLENBQUMsS0FBNEM7UUFDcEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELENBQUM7dUdBckNVLG9CQUFvQjsyRkFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge011dGFibGVWYWx1ZU1vZGVsLCBWYWx1ZU1vZGVsfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAncmVzaXplLW9ic2VydmVyLXBvbHlmaWxsJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQge0JvdW5kc30gZnJvbSAnLi90eXBlcy9ib3VuZHMuY2xhc3MnO1xuaW1wb3J0IHtQb2ludH0gZnJvbSAnLi90eXBlcy9wb2ludC5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFJlc2l6ZUF3YXJlQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgX2JvdW5kcyQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Qm91bmRzPihuZXcgQm91bmRzKDAsIDAsIDAsIDApKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5fdXBkYXRlQm91bmRzKCkpO1xuICAgIH0pO1xuICAgIHJvLm9ic2VydmUoZWxlbWVudCk7XG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4gcm8uZGlzY29ubmVjdCgpKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3VwZGF0ZUJvdW5kcygpKTtcbiAgfVxuXG4gIGdldCBib3VuZHMkKCk6IFZhbHVlTW9kZWw8Qm91bmRzPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JvdW5kcyQucmVhZG9ubHkkO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8gVE9ETzogTWFrZSB0aGlzIGhhbmRsZSBib2R5IHNjcm9sbFxuICBwdWJsaWMgcmVsYXRpdmVQb3NpdGlvbk9mKHBvaW50OiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0gfCBNb3VzZUV2ZW50KTogUG9pbnQge1xuICAgIHJldHVybiB0aGlzLmJvdW5kcy5yZWxhdGl2ZVBvc2l0aW9uT2YocG9pbnQpO1xuICB9XG5cbiAgZ2V0IGJvdW5kcygpOiBCb3VuZHMge1xuICAgIHJldHVybiB0aGlzLl9ib3VuZHMkLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQm91bmRzKCkge1xuICAgIHRoaXMuX2JvdW5kcyQudmFsdWUgPSBCb3VuZHMub2ZFbGVtZW50KHRoaXMubmF0aXZlRWxlbWVudCk7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFJlc2l6ZUF3YXJlQ29tcG9uZW50IHtcblxufVxuIl19
32
+ }] });
33
+ (function (ResizeAwareComponent) {
34
+ class ResizeTracker extends GarbageCollector {
35
+ elementRef;
36
+ ngZone;
37
+ _bounds$ = new MutableValueModel(new Bounds(0, 0, 0, 0));
38
+ width$;
39
+ height$;
40
+ top$;
41
+ left$;
42
+ bottom$;
43
+ right$;
44
+ constructor(elementRef, ngZone) {
45
+ super();
46
+ this.elementRef = elementRef;
47
+ this.ngZone = ngZone;
48
+ const { chain } = Dsl.disposeWith(this);
49
+ this.width$ = chain(this.bounds$).pluck("width");
50
+ this.height$ = chain(this.bounds$).pluck("height");
51
+ this.top$ = chain(this.bounds$).pluck("top");
52
+ this.left$ = chain(this.bounds$).pluck("left");
53
+ this.bottom$ = chain.numericValue(this.top$).add(this.height$);
54
+ this.right$ = chain.numericValue(this.left$).add(this.width$);
55
+ }
56
+ notifyViewReady() {
57
+ const element = this.elementRef.nativeElement;
58
+ const ro = new ResizeObserver((entries, observer) => {
59
+ this.ngZone.run(() => this._updateBounds());
60
+ });
61
+ ro.observe(element);
62
+ this.onDispose(() => ro.disconnect());
63
+ setTimeout(() => this._updateBounds());
64
+ }
65
+ get bounds$() {
66
+ return this._bounds$.readonly$;
67
+ }
68
+ get nativeElement() {
69
+ return this.elementRef.nativeElement;
70
+ }
71
+ // TODO: Make this handle body scroll
72
+ relativePositionOf(point) {
73
+ return this.bounds.relativePositionOf(point);
74
+ }
75
+ get bounds() {
76
+ return this._bounds$.value;
77
+ }
78
+ _updateBounds() {
79
+ this._bounds$.value = Bounds.ofElement(this.nativeElement);
80
+ }
81
+ }
82
+ ResizeAwareComponent.ResizeTracker = ResizeTracker;
83
+ })(ResizeAwareComponent || (ResizeAwareComponent = {}));
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWF3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvcmVzaXplLWF3YXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBSTVDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFFeEMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsYUFBYSxHQUFHLElBQUksb0JBQW9CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9GLGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQ0FBcUM7SUFDOUIsa0JBQWtCLENBQUMsS0FBNEM7UUFDcEUs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QyxLQUFLLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxNQUFNO1lBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBRU8sYUFBYTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxDQUFDO0tBRUY7SUFwRFksa0NBQWEsZ0JBb0R6QixDQUFBO0FBQ0gsQ0FBQyxFQXhEZ0Isb0JBQW9CLEtBQXBCLG9CQUFvQixRQXdEcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBNdXRhYmxlVmFsdWVNb2RlbCwgVmFsdWVNb2RlbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbCc7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHtCb3VuZHN9IGZyb20gJy4vdHlwZXMvYm91bmRzLmNsYXNzJztcbmltcG9ydCB7UG9pbnR9IGZyb20gJy4vdHlwZXMvcG9pbnQuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBSZXNpemVBd2FyZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZiA9IHRoaXMuaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lID0gdGhpcy5pbmplY3QoTmdab25lKTtcblxuICBwcm90ZWN0ZWQgYm91bmRzVHJhY2tlciA9IG5ldyBSZXNpemVBd2FyZUNvbXBvbmVudC5SZXNpemVUcmFja2VyKHRoaXMuZWxlbWVudFJlZiwgdGhpcy5uZ1pvbmUpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJvdW5kc1RyYWNrZXIubm90aWZ5Vmlld1JlYWR5KCk7XG4gIH1cblxuICBnZXQgYm91bmRzJCgpOiBWYWx1ZU1vZGVsPEJvdW5kcz4ge1xuICAgIHJldHVybiB0aGlzLmJvdW5kc1RyYWNrZXIuYm91bmRzJDtcbiAgfVxuXG4gIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIC8vIFRPRE86IE1ha2UgdGhpcyBoYW5kbGUgYm9keSBzY3JvbGxcbiAgcHVibGljIHJlbGF0aXZlUG9zaXRpb25PZihwb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgTW91c2VFdmVudCk6IFBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5ib3VuZHMucmVsYXRpdmVQb3NpdGlvbk9mKHBvaW50KTtcbiAgfVxuXG4gIGdldCBib3VuZHMoKTogQm91bmRzIHtcbiAgICByZXR1cm4gdGhpcy5ib3VuZHMkLnZhbHVlO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBSZXNpemVBd2FyZUNvbXBvbmVudCB7XG5cblxuICBleHBvcnQgY2xhc3MgUmVzaXplVHJhY2tlciBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gICAgcHJpdmF0ZSBfYm91bmRzJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxCb3VuZHM+KG5ldyBCb3VuZHMoMCwgMCwgMCwgMCkpO1xuICAgIHJlYWRvbmx5IHdpZHRoJDogVmFsdWVNb2RlbDxudW1iZXI+O1xuICAgIHJlYWRvbmx5IGhlaWdodCQ6IFZhbHVlTW9kZWw8bnVtYmVyPjtcbiAgICByZWFkb25seSB0b3AkOiBWYWx1ZU1vZGVsPG51bWJlcj47XG4gICAgcmVhZG9ubHkgbGVmdCQ6IFZhbHVlTW9kZWw8bnVtYmVyPjtcbiAgICByZWFkb25seSBib3R0b20kOiBWYWx1ZU1vZGVsPG51bWJlcj47XG4gICAgcmVhZG9ubHkgcmlnaHQkOiBWYWx1ZU1vZGVsPG51bWJlcj47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMud2lkdGgkID0gY2hhaW4odGhpcy5ib3VuZHMkKS5wbHVjayhcIndpZHRoXCIpXG4gICAgICB0aGlzLmhlaWdodCQgPSBjaGFpbih0aGlzLmJvdW5kcyQpLnBsdWNrKFwiaGVpZ2h0XCIpXG4gICAgICB0aGlzLnRvcCQgPSBjaGFpbih0aGlzLmJvdW5kcyQpLnBsdWNrKFwidG9wXCIpXG4gICAgICB0aGlzLmxlZnQkID0gY2hhaW4odGhpcy5ib3VuZHMkKS5wbHVjayhcImxlZnRcIilcbiAgICAgIHRoaXMuYm90dG9tJCA9IGNoYWluLm51bWVyaWNWYWx1ZSh0aGlzLnRvcCQpLmFkZCh0aGlzLmhlaWdodCQpXG4gICAgICB0aGlzLnJpZ2h0JCA9IGNoYWluLm51bWVyaWNWYWx1ZSh0aGlzLmxlZnQkKS5hZGQodGhpcy53aWR0aCQpXG4gICAgfVxuXG4gICAgbm90aWZ5Vmlld1JlYWR5KCkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLl91cGRhdGVCb3VuZHMoKSk7XG4gICAgICB9KTtcbiAgICAgIHJvLm9ic2VydmUoZWxlbWVudCk7XG4gICAgICB0aGlzLm9uRGlzcG9zZSgoKSA9PiByby5kaXNjb25uZWN0KCkpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVCb3VuZHMoKSk7XG4gICAgfVxuXG4gICAgZ2V0IGJvdW5kcyQoKTogVmFsdWVNb2RlbDxCb3VuZHM+IHtcbiAgICAgIHJldHVybiB0aGlzLl9ib3VuZHMkLnJlYWRvbmx5JDtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgaGFuZGxlIGJvZHkgc2Nyb2xsXG4gICAgcHVibGljIHJlbGF0aXZlUG9zaXRpb25PZihwb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgTW91c2VFdmVudCk6IFBvaW50IHtcbiAgICAgIHJldHVybiB0aGlzLmJvdW5kcy5yZWxhdGl2ZVBvc2l0aW9uT2YocG9pbnQpO1xuICAgIH1cblxuICAgIGdldCBib3VuZHMoKTogQm91bmRzIHtcbiAgICAgIHJldHVybiB0aGlzLl9ib3VuZHMkLnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUJvdW5kcygpIHtcbiAgICAgIHRoaXMuX2JvdW5kcyQudmFsdWUgPSBCb3VuZHMub2ZFbGVtZW50KHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectorRef, Component, ContentChildren, Directive, Input, QueryList, TemplateRef } from '@angular/core';
2
+ import { Component, ContentChildren, Directive, Input, QueryList, TemplateRef } from '@angular/core';
3
3
  import { Dsl, Proxify, proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
4
4
  import { DisposableComponent } from '../disposable-component';
5
5
  import * as i0 from "@angular/core";
@@ -61,7 +61,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
61
61
  * </aup-switch-case>
62
62
  */
63
63
  export class SwitchCaseComponent extends DisposableComponent {
64
- cdr;
65
64
  #switch$_accessor_storage = proxify((ValueModel));
66
65
  get switch$() { return this.#switch$_accessor_storage; }
67
66
  set switch$(value) { this.#switch$_accessor_storage = value; }
@@ -70,9 +69,8 @@ export class SwitchCaseComponent extends DisposableComponent {
70
69
  set switch(value) { this.#switch_accessor_storage = value; }
71
70
  switchCaseOptions;
72
71
  selectedIndex = 0;
73
- constructor(cdr) {
72
+ constructor() {
74
73
  super();
75
- this.cdr = cdr;
76
74
  }
77
75
  ngAfterContentInit() {
78
76
  const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
@@ -109,7 +107,7 @@ export class SwitchCaseComponent extends DisposableComponent {
109
107
  this.selectedIndex = -1;
110
108
  }
111
109
  }
112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
111
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SwitchCaseComponent, selector: "aup-switch-case", inputs: { switch$: "switch$", switch: "switch" }, queries: [{ propertyName: "switchCaseOptions", predicate: SwitchCaseOption }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }] });
114
112
  }
115
113
  __decorate([
@@ -123,7 +121,7 @@ __decorate([
123
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, decorators: [{
124
122
  type: Component,
125
123
  args: [{ selector: 'aup-switch-case', template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"] }]
126
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { switch$: [{
124
+ }], ctorParameters: function () { return []; }, propDecorators: { switch$: [{
127
125
  type: Input
128
126
  }], switch: [{
129
127
  type: Input
@@ -131,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
131
129
  type: ContentChildren,
132
130
  args: [SwitchCaseOption]
133
131
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWNhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9zd2l0Y2gtY2FzZS9zd2l0Y2gtY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3N3aXRjaC1jYXNlL3N3aXRjaC1jYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUc1RCxNQUFNLE9BQWdCLGdCQUFnQjtJQUlmO0lBQXJCLFlBQXFCLFdBQWdDO1FBQWhDLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtJQUNyRCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0NBR0Y7QUFNRCxNQUFNLE9BQU8sdUJBQTJCLFNBQVEsZ0JBQW1CO0lBQ3hELGlCQUFpQixDQUFJO0lBQ3JCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFM0IsWUFBWSxXQUFnQztRQUMxQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEtBQUssS0FBSyxDQUFDO0lBQzFDLENBQUM7dUdBVlUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsa0dBRnZCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLENBQUM7OzJGQUVyRSx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxDQUFDO2lCQUNqRjtrR0FFVSxpQkFBaUI7c0JBQXpCLEtBQUs7O0FBZ0JSLE1BQU0sT0FBTywwQkFBOEIsU0FBUSxnQkFBbUI7SUFDM0QsU0FBUyxHQUFHLElBQUksQ0FBQztJQUUxQixZQUFZLFdBQWdDO1FBQzFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVE7UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7dUdBVFUsMEJBQTBCOzJGQUExQiwwQkFBMEIsaURBRjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLENBQUM7OzJGQUV4RSwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyw0QkFBNEIsRUFBRSxDQUFDO2lCQUNwRjs7QUFhRDs7Ozs7O0dBTUc7QUFNSCxNQUFNLE9BQU8sbUJBQXVCLFNBQVEsbUJBQW1CO0lBYXpDO0lBVlgsNEJBQVUsT0FBTyxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUFqQyxJQUFBLE9BQU8sNkNBQTBCO0lBQWpDLElBQUEsT0FBTyxtREFBMEI7SUFHakMseUJBQVU7SUFBVixJQUFBLE1BQU0sNENBQUk7SUFBVixJQUFBLE1BQU0sa0RBQUk7SUFHbkIsaUJBQWlCLENBQWlDO0lBRWxELGFBQWEsR0FBRyxDQUFDLENBQUM7SUFFbEIsWUFBb0IsR0FBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUUxQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQy9DLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0QyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSw4Q0FBOEMsQ0FBQyxDQUFDO1NBQzlGO1FBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQy9DLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtvQkFDcEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM5QjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSw2Q0FBNkMsQ0FBQyxDQUFDO2FBQzdGO1NBQ0Y7UUFDRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO3VHQW5EVSxtQkFBbUI7MkZBQW5CLG1CQUFtQiwySUFRYixnQkFBZ0Isb0RDbEZuQyxxUkFPQTs7QURzRVc7SUFEQyxPQUFPLEVBQUU7O2tEQUN1QjtBQUdqQztJQURDLGlCQUFpQixFQUFFOztpREFDVjsyRkFOUixtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO3dHQU9sQixPQUFPO3NCQURmLEtBQUs7Z0JBSUcsTUFBTTtzQkFEZCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsZUFBZTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RHNsLCBQcm94aWZ5LCBwcm94aWZ5LCBTdG9yZUluVmFsdWVNb2RlbCwgVmFsdWVNb2RlbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN3aXRjaENhc2VPcHRpb248VD4ge1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzRGVmYXVsdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8b2JqZWN0Pikge1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIGFic3RyYWN0IG1hdGNoZXModmFsdWU6IFQpOiBib29sZWFuO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVwU3dpdGNoQ2FzZVdoZW5dJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBTd2l0Y2hDYXNlT3B0aW9uLCB1c2VFeGlzdGluZzogU3dpdGNoQ2FzZVdoZW5EaXJlY3RpdmUgfV1cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ2FzZVdoZW5EaXJlY3RpdmU8VD4gZXh0ZW5kcyBTd2l0Y2hDYXNlT3B0aW9uPFQ+IHtcbiAgQElucHV0KCkgYXVwU3dpdGNoQ2FzZVdoZW46IFQ7XG4gIHJlYWRvbmx5IGlzRGVmYXVsdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+KSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYpO1xuICB9XG5cbiAgbWF0Y2hlcyh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmF1cFN3aXRjaENhc2VXaGVuID09PSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVwU3dpdGNoQ2FzZURlZmF1bHRdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBTd2l0Y2hDYXNlT3B0aW9uLCB1c2VFeGlzdGluZzogU3dpdGNoQ2FzZURlZmF1bHREaXJlY3RpdmUgfV1cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ2FzZURlZmF1bHREaXJlY3RpdmU8VD4gZXh0ZW5kcyBTd2l0Y2hDYXNlT3B0aW9uPFQ+IHtcbiAgcmVhZG9ubHkgaXNEZWZhdWx0ID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8b2JqZWN0Pikge1xuICAgIHN1cGVyKHRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIG1hdGNoZXModmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBAZXhhbXBsZVxuICogPGF1cC1zd2l0Y2gtY2FzZSBbc3dpdGNoTW9kZWxdPVwiYm9vbGVhbk1vZGVsXCI+XG4gKiAgICA8ZGl2ICphdXBTd2l0Y2hDYXNlV2hlbj1cInRydWVcIj48L2Rpdj5cbiAqICAgIDxkaXYgKmF1cFN3aXRjaENhc2VEZWZhdWx0PlRoZSBkZWZhdWx0IGNvbnRlbnQ8L2Rpdj5cbiAqIDwvYXVwLXN3aXRjaC1jYXNlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtc3dpdGNoLWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpdGNoLWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zd2l0Y2gtY2FzZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENhc2VDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgIEFmdGVyQ29udGVudEluaXQge1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3Igc3dpdGNoJCA9IHByb3hpZnkoVmFsdWVNb2RlbDxUPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3Igc3dpdGNoOiBUO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU3dpdGNoQ2FzZU9wdGlvbilcbiAgc3dpdGNoQ2FzZU9wdGlvbnM6IFF1ZXJ5TGlzdDxTd2l0Y2hDYXNlT3B0aW9uPFQ+PjtcblxuICBzZWxlY3RlZEluZGV4ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3dpdGNoQ2FzZU9wdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlID0+IHRoaXMudXBkYXRlU2VsZWN0aW9uKCkpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICBjb25zdCB7IGNoYWluLCB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLnN3aXRjaCQpLmNoYW5nZXMoKCkgPT4gdGhpcy51cGRhdGVTZWxlY3Rpb24oKSwgeyBpbml0aWFsVmFsdWU6ICd0cmlnZ2VyQ2hhbmdlJyB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBtYXRjaGluZ0luZGljaWVzID0gW107XG4gICAgdGhpcy5zd2l0Y2hDYXNlT3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uLm1hdGNoZXModGhpcy5zd2l0Y2gkLnZhbHVlKSkge1xuICAgICAgICBtYXRjaGluZ0luZGljaWVzLnB1c2goaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChtYXRjaGluZ0luZGljaWVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihgZm91bmQgJHttYXRjaGluZ0luZGljaWVzLmxlbmd0aH0gbWF0Y2hpbmcgY2FzZSB2YWx1ZXMsIGRpc3BsYXlpbmcgdGhlIGZpcnN0LmApO1xuICAgIH1cbiAgICBpZiAobWF0Y2hpbmdJbmRpY2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc3dpdGNoQ2FzZU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAob3B0aW9uLmlzRGVmYXVsdCkge1xuICAgICAgICAgIG1hdGNoaW5nSW5kaWNpZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKG1hdGNoaW5nSW5kaWNpZXMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYGZvdW5kICR7bWF0Y2hpbmdJbmRpY2llcy5sZW5ndGh9IGRlZmF1bHQgY2FzZSB2YWx1ZXMsIGRpc3BsYXlpbmcgdGhlIGZpcnN0LmApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWF0Y2hpbmdJbmRpY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBtYXRjaGluZ0luZGljaWVzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oYGZvdW5kIG5vIG1hdGNoaW5nIG9yIGRlZmF1bHQgY2FzZSB2YWx1ZXMuYCk7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcbiAgICB9XG4gIH1cbn1cblxuIiwiPG1hdC10YWItZ3JvdXAgY2xhc3M9XCJjb250ZW50LXdyYXBwZXJcIiBuby10YWItaGVhZGVyIGZ1bGwtaGVpZ2h0LXRhYnMgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRJbmRleFwiPlxuICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHN3aXRjaENhc2VPcHRpb25zXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbi50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG4gIDwvbWF0LXRhYj5cbjwvbWF0LXRhYi1ncm91cD5cblxuXG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWNhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9zd2l0Y2gtY2FzZS9zd2l0Y2gtY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3N3aXRjaC1jYXNlL3N3aXRjaC1jYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRzVELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBSWY7SUFBckIsWUFBcUIsV0FBZ0M7UUFBaEMsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO0lBQ3JELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7Q0FHRjtBQU1ELE1BQU0sT0FBTyx1QkFBMkIsU0FBUSxnQkFBbUI7SUFDeEQsaUJBQWlCLENBQUk7SUFDckIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUzQixZQUFZLFdBQWdDO1FBQzFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVE7UUFDZCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUM7SUFDMUMsQ0FBQzt1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QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO29CQUNwQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFNLDZDQUE2QyxDQUFDLENBQUM7YUFDN0Y7U0FDRjtRQUNELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7dUdBbkRVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLDJJQVFiLGdCQUFnQixvRENsRm5DLHFSQU9BOztBRHNFVztJQURDLE9BQU8sRUFBRTs7a0RBQ3VCO0FBR2pDO0lBREMsaUJBQWlCLEVBQUU7O2lEQUNWOzJGQU5SLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7MEVBT2xCLE9BQU87c0JBRGYsS0FBSztnQkFJRyxNQUFNO3NCQURkLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixlQUFlO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEc2wsIFByb3hpZnksIHByb3hpZnksIFN0b3JlSW5WYWx1ZU1vZGVsLCBWYWx1ZU1vZGVsfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3dpdGNoQ2FzZU9wdGlvbjxUPiB7XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNEZWZhdWx0OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+KSB7XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgYWJzdHJhY3QgbWF0Y2hlcyh2YWx1ZTogVCk6IGJvb2xlYW47XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdXBTd2l0Y2hDYXNlV2hlbl0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFN3aXRjaENhc2VPcHRpb24sIHVzZUV4aXN0aW5nOiBTd2l0Y2hDYXNlV2hlbkRpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDYXNlV2hlbkRpcmVjdGl2ZTxUPiBleHRlbmRzIFN3aXRjaENhc2VPcHRpb248VD4ge1xuICBASW5wdXQoKSBhdXBTd2l0Y2hDYXNlV2hlbjogVDtcbiAgcmVhZG9ubHkgaXNEZWZhdWx0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPG9iamVjdD4pIHtcbiAgICBzdXBlcih0ZW1wbGF0ZVJlZik7XG4gIH1cblxuICBtYXRjaGVzKHZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXVwU3dpdGNoQ2FzZVdoZW4gPT09IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdXBTd2l0Y2hDYXNlRGVmYXVsdF0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFN3aXRjaENhc2VPcHRpb24sIHVzZUV4aXN0aW5nOiBTd2l0Y2hDYXNlRGVmYXVsdERpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDYXNlRGVmYXVsdERpcmVjdGl2ZTxUPiBleHRlbmRzIFN3aXRjaENhc2VPcHRpb248VD4ge1xuICByZWFkb25seSBpc0RlZmF1bHQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+KSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYpO1xuICB9XG5cbiAgbWF0Y2hlcyh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiA8YXVwLXN3aXRjaC1jYXNlIFtzd2l0Y2hNb2RlbF09XCJib29sZWFuTW9kZWxcIj5cbiAqICAgIDxkaXYgKmF1cFN3aXRjaENhc2VXaGVuPVwidHJ1ZVwiPjwvZGl2PlxuICogICAgPGRpdiAqYXVwU3dpdGNoQ2FzZURlZmF1bHQ+VGhlIGRlZmF1bHQgY29udGVudDwvZGl2PlxuICogPC9hdXAtc3dpdGNoLWNhc2U+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1zd2l0Y2gtY2FzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2gtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N3aXRjaC1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ2FzZUNvbXBvbmVudDxUPiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyAgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBzd2l0Y2gkID0gcHJveGlmeShWYWx1ZU1vZGVsPFQ+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBzd2l0Y2g6IFQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTd2l0Y2hDYXNlT3B0aW9uKVxuICBzd2l0Y2hDYXNlT3B0aW9uczogUXVlcnlMaXN0PFN3aXRjaENhc2VPcHRpb248VD4+O1xuXG4gIHNlbGVjdGVkSW5kZXggPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zd2l0Y2hDYXNlT3B0aW9ucy5jaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4gdGhpcy51cGRhdGVTZWxlY3Rpb24oKSk7XG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHdoZW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMuc3dpdGNoJCkuY2hhbmdlcygoKSA9PiB0aGlzLnVwZGF0ZVNlbGVjdGlvbigpLCB7IGluaXRpYWxWYWx1ZTogJ3RyaWdnZXJDaGFuZ2UnIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uKCkge1xuICAgIGNvbnN0IG1hdGNoaW5nSW5kaWNpZXMgPSBbXTtcbiAgICB0aGlzLnN3aXRjaENhc2VPcHRpb25zLmZvckVhY2goKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChvcHRpb24ubWF0Y2hlcyh0aGlzLnN3aXRjaCQudmFsdWUpKSB7XG4gICAgICAgIG1hdGNoaW5nSW5kaWNpZXMucHVzaChpbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKG1hdGNoaW5nSW5kaWNpZXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKGBmb3VuZCAke21hdGNoaW5nSW5kaWNpZXMubGVuZ3RofSBtYXRjaGluZyBjYXNlIHZhbHVlcywgZGlzcGxheWluZyB0aGUgZmlyc3QuYCk7XG4gICAgfVxuICAgIGlmIChtYXRjaGluZ0luZGljaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zd2l0Y2hDYXNlT3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChvcHRpb24uaXNEZWZhdWx0KSB7XG4gICAgICAgICAgbWF0Y2hpbmdJbmRpY2llcy5wdXNoKGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAobWF0Y2hpbmdJbmRpY2llcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgZm91bmQgJHttYXRjaGluZ0luZGljaWVzLmxlbmd0aH0gZGVmYXVsdCBjYXNlIHZhbHVlcywgZGlzcGxheWluZyB0aGUgZmlyc3QuYCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChtYXRjaGluZ0luZGljaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG1hdGNoaW5nSW5kaWNpZXNbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihgZm91bmQgbm8gbWF0Y2hpbmcgb3IgZGVmYXVsdCBjYXNlIHZhbHVlcy5gKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IC0xO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8bWF0LXRhYi1ncm91cCBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiIG5vLXRhYi1oZWFkZXIgZnVsbC1oZWlnaHQtdGFicyBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZEluZGV4XCI+XG4gIDxtYXQtdGFiICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc3dpdGNoQ2FzZU9wdGlvbnNcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuXG5cbiJdfQ==