@theseam/ui-common 0.4.12 → 0.4.14

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 (158) hide show
  1. package/buttons/public-api.d.ts +1 -0
  2. package/buttons/testing/anchor-badge-button.harness.d.ts +16 -0
  3. package/buttons/testing/anchor-button.harness.d.ts +16 -0
  4. package/buttons/testing/badge-button.harness.d.ts +15 -0
  5. package/buttons/testing/base-badge-button.harness.d.ts +15 -0
  6. package/buttons/testing/base-button.harness.d.ts +19 -0
  7. package/buttons/testing/button.harness.d.ts +15 -0
  8. package/buttons/testing/index.d.ts +5 -0
  9. package/buttons/testing/toggle-button.harness.d.ts +21 -0
  10. package/checkbox/checkbox.component.d.ts +1 -1
  11. package/checkbox/checkbox.module.d.ts +2 -3
  12. package/datatable/datatable.module.d.ts +1 -1
  13. package/esm2020/buttons/button/button.component.mjs +2 -1
  14. package/esm2020/buttons/public-api.mjs +2 -1
  15. package/esm2020/buttons/testing/anchor-badge-button.harness.mjs +18 -0
  16. package/esm2020/buttons/testing/anchor-button.harness.mjs +18 -0
  17. package/esm2020/buttons/testing/badge-button.harness.mjs +14 -0
  18. package/esm2020/buttons/testing/base-badge-button.harness.mjs +29 -0
  19. package/esm2020/buttons/testing/base-button.harness.mjs +41 -0
  20. package/esm2020/buttons/testing/button.harness.mjs +16 -0
  21. package/esm2020/buttons/testing/index.mjs +6 -0
  22. package/esm2020/buttons/testing/toggle-button.harness.mjs +25 -0
  23. package/esm2020/checkbox/checkbox.component.mjs +8 -3
  24. package/esm2020/checkbox/checkbox.module.mjs +5 -12
  25. package/esm2020/datatable/datatable.module.mjs +5 -5
  26. package/esm2020/form-field/form-field.component.mjs +4 -4
  27. package/esm2020/framework/schema-form/index.mjs +2 -1
  28. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +6 -3
  29. package/esm2020/framework/schema-form/schema-form-framework.mjs +62 -7
  30. package/esm2020/framework/schema-form/schema-form-widget.mjs +2 -0
  31. package/esm2020/framework/schema-form/schema-form.module.mjs +1 -8
  32. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +21 -11
  33. package/esm2020/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.mjs +20 -0
  34. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +17 -8
  35. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +14 -5
  36. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +19 -9
  37. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +21 -13
  38. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +30 -18
  39. package/esm2020/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.mjs +48 -0
  40. package/esm2020/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.mjs +57 -0
  41. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
  42. package/esm2020/menu/menu-item.component.mjs +3 -3
  43. package/esm2020/menu/public-api.mjs +5 -1
  44. package/esm2020/menu/testing/menu-footer.harness.mjs +28 -0
  45. package/esm2020/menu/testing/menu-header.harness.mjs +23 -0
  46. package/esm2020/menu/testing/menu-item.harness.mjs +59 -0
  47. package/esm2020/menu/testing/menu.harness.mjs +163 -0
  48. package/esm2020/menu/testing/utils.mjs +13 -0
  49. package/esm2020/services/preferences/preferences-accessor.mjs +1 -1
  50. package/esm2020/services/preferences/preferences-manager.service.mjs +1 -1
  51. package/esm2020/services/preferences/preferences-record.mjs +1 -1
  52. package/esm2020/services/preferences/preferences.models.mjs +1 -1
  53. package/esm2020/story-helpers/args-to-tpl.mjs +83 -0
  54. package/esm2020/story-helpers/public-api.mjs +2 -2
  55. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +1 -1
  56. package/esm2020/tel-input/public-api.mjs +2 -1
  57. package/esm2020/tel-input/tel-input/tel-input.component.mjs +22 -10
  58. package/esm2020/tel-input/tel-input.directive.mjs +12 -13
  59. package/esm2020/tel-input/tel-input.module.mjs +10 -9
  60. package/esm2020/tel-input/testing/tel-input.harness.mjs +49 -0
  61. package/esm2020/testing/harnesses/ng-select-dropdown.harness.mjs +39 -0
  62. package/esm2020/testing/harnesses/ng-select-option.harness.mjs +26 -0
  63. package/esm2020/testing/harnesses/ng-select.harness.mjs +104 -0
  64. package/esm2020/testing/public-api.mjs +4 -1
  65. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +1 -1
  66. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  67. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  68. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  69. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  70. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  71. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  72. package/esm2020/widget/preferences/widget-preferences.models.mjs +1 -1
  73. package/esm2020/widget/preferences/widget-preferences.service.mjs +1 -1
  74. package/esm2020/widget/preferences/widget-preferences.token.mjs +1 -1
  75. package/esm2020/widget/widget.models.mjs +1 -1
  76. package/fesm2015/theseam-ui-common-buttons.mjs +181 -3
  77. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  78. package/fesm2015/theseam-ui-common-checkbox.mjs +12 -14
  79. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  80. package/fesm2015/theseam-ui-common-datatable.mjs +4 -4
  81. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  82. package/fesm2015/theseam-ui-common-form-field.mjs +3 -3
  83. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  84. package/fesm2015/theseam-ui-common-framework.mjs +248 -164
  85. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  86. package/fesm2015/theseam-ui-common-google-maps.mjs +2 -2
  87. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  88. package/fesm2015/theseam-ui-common-menu.mjs +331 -5
  89. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  90. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  91. package/fesm2015/theseam-ui-common-story-helpers.mjs +86 -1
  92. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  93. package/fesm2015/theseam-ui-common-tel-input.mjs +105 -29
  94. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  95. package/fesm2015/theseam-ui-common-testing.mjs +197 -1
  96. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  97. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  98. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  99. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  100. package/fesm2020/theseam-ui-common-buttons.mjs +154 -2
  101. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  102. package/fesm2020/theseam-ui-common-checkbox.mjs +12 -14
  103. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  104. package/fesm2020/theseam-ui-common-datatable.mjs +4 -4
  105. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  106. package/fesm2020/theseam-ui-common-form-field.mjs +3 -3
  107. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  108. package/fesm2020/theseam-ui-common-framework.mjs +236 -162
  109. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  110. package/fesm2020/theseam-ui-common-google-maps.mjs +2 -2
  111. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  112. package/fesm2020/theseam-ui-common-menu.mjs +277 -4
  113. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  114. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  115. package/fesm2020/theseam-ui-common-story-helpers.mjs +84 -1
  116. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  117. package/fesm2020/theseam-ui-common-tel-input.mjs +89 -29
  118. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  119. package/fesm2020/theseam-ui-common-testing.mjs +165 -1
  120. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  121. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  122. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  123. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  124. package/framework/schema-form/index.d.ts +1 -0
  125. package/framework/schema-form/schema-form-framework.d.ts +12 -1
  126. package/framework/schema-form/schema-form-widget.d.ts +61 -0
  127. package/framework/schema-form/schema-form.module.d.ts +1 -2
  128. package/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.d.ts +12 -11
  129. package/framework/schema-form-controls/schema-form-divider/schema-form-divider.component.d.ts +12 -0
  130. package/framework/schema-form-controls/schema-form-input/schema-form-input.component.d.ts +10 -9
  131. package/framework/schema-form-controls/schema-form-number/schema-form-number.component.d.ts +8 -7
  132. package/framework/schema-form-controls/schema-form-select/schema-form-select.component.d.ts +10 -9
  133. package/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.d.ts +10 -9
  134. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +10 -9
  135. package/framework/schema-form-controls/schema-form-tel/schema-form-tel.component.d.ts +23 -0
  136. package/framework/schema-form-controls/schema-form-tiled-select/schema-form-tiled-select.component.d.ts +32 -0
  137. package/menu/menu-footer-action/menu-footer-action.component.d.ts +1 -1
  138. package/menu/public-api.d.ts +4 -0
  139. package/menu/testing/menu-footer.harness.d.ts +22 -0
  140. package/menu/testing/menu-header.harness.d.ts +18 -0
  141. package/menu/testing/menu-item.harness.d.ts +37 -0
  142. package/menu/testing/menu.harness.d.ts +74 -0
  143. package/menu/testing/utils.d.ts +5 -0
  144. package/package.json +1 -1
  145. package/story-helpers/args-to-tpl.d.ts +25 -0
  146. package/story-helpers/public-api.d.ts +1 -0
  147. package/tel-input/public-api.d.ts +1 -0
  148. package/tel-input/tel-input/tel-input.component.d.ts +2 -2
  149. package/tel-input/tel-input.directive.d.ts +1 -1
  150. package/tel-input/tel-input.module.d.ts +7 -7
  151. package/tel-input/testing/tel-input.harness.d.ts +19 -0
  152. package/testing/harnesses/ng-select-dropdown.harness.d.ts +23 -0
  153. package/testing/harnesses/ng-select-option.harness.d.ts +18 -0
  154. package/testing/harnesses/ng-select.harness.d.ts +50 -0
  155. package/testing/public-api.d.ts +3 -0
  156. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +10 -10
  157. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +0 -79
  158. package/framework/schema-form-controls/schema-form-controls.module.d.ts +0 -20
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1QcmVmZXJlbmNlc0FjY2Vzc29yIHtcblxuICAvKipcbiAgICogR2V0cyBhIHByZWZlcmVuY2UuXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhIHByZWZlcmVuY2UuXG4gICAqL1xuICB1cGRhdGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHByZWZlcmVuY2UuXG4gICAqL1xuICBkZWxldGUobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgYSBwcmVmZXJlbmNlLlxyXG4gICAqL1xyXG4gIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz5cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIGEgcHJlZmVyZW5jZS5cclxuICAgKi9cclxuICB1cGRhdGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhIHByZWZlcmVuY2UuXHJcbiAgICovXHJcbiAgZGVsZXRlKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj5cclxuXHJcbn1cclxuIl19
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
66
66
  providedIn: 'root'
67
67
  }]
68
68
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFJdEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7O0FBS2xFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFIN0M7UUFLbUIsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQTtLQXFFakY7SUFuRVEsV0FBVyxDQUNoQixhQUFxQixFQUNyQixRQUFvQyxFQUNwQyxVQUFrQztRQUVsQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUVsRCxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUMsTUFBTSxLQUFLLENBQUMsMENBQTBDLGFBQWEsNENBQTRDLENBQUMsQ0FBQTtTQUNqSDtRQUVELElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sS0FBSyxDQUFDLDRDQUE0QyxhQUFhLDhDQUE4QyxDQUFDLENBQUE7U0FDckg7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHLElBQUksMkJBQTJCLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQTtZQUM1RSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7U0FDOUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixtRUFBbUU7WUFDbkUscUVBQXFFO1lBQ3JFLG9DQUFvQztZQUNwQyxFQUFFO1lBQ0Ysd0VBQXdFO1lBQ3hFLGVBQWU7WUFDZixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxVQUFVLENBQUE7YUFDbEI7WUFFRCxPQUFPLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQXFCLEVBQUUsS0FBNkI7UUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3BCO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFxQjtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUNmO0lBQ0gsQ0FBQztJQUVNLE9BQU8sQ0FBQyxhQUFxQjtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUNoQjtJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsYUFBcUI7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDbkQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxhQUFxQjtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNsRCxDQUFDOzs2SEFyRVUsZ0NBQWdDO2lJQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy5tb2RlbHMnXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciB9IGZyb20gJy4vcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNNYXBSZWNvcmQgfSBmcm9tICcuL3ByZWZlcmVuY2VzLXJlY29yZCdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVByZWZlcmVuY2VzTWFuYWdlclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlUHJlZnNNYXAgPSBuZXcgTWFwPHN0cmluZywgVGhlU2VhbVByZWZlcmVuY2VzTWFwUmVjb3JkPigpXG5cbiAgcHVibGljIHByZWZlcmVuY2VzKFxuICAgIHByZWZlcmVuY2VLZXk6IHN0cmluZyxcbiAgICBhY2Nlc3NvcjogVGhlU2VhbVByZWZlcmVuY2VzQWNjZXNzb3IsXG4gICAgZW1wdHlQcmVmczogVGhlU2VhbVByZWZlcmVuY2VzQmFzZSxcbiAgKTogT2JzZXJ2YWJsZTxUaGVTZWFtUHJlZmVyZW5jZXNCYXNlPiB7XG4gICAgbGV0IHByZWZzID0gdGhpcy5fdGFibGVQcmVmc01hcC5nZXQocHJlZmVyZW5jZUtleSlcblxuICAgIGlmIChwcmVmcyAmJiAhcHJlZnMuaXNTYW1lQWNjZXNzb3IoYWNjZXNzb3IpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgUHJlZmVyZW5jZXMgYWNjZXNzb3IgbWlzbWF0Y2ggZm9yIGtleSAnJHtwcmVmZXJlbmNlS2V5fScuIENoYW5naW5nIHRoZSBhY2Nlc3NvciBpcyBub3Qgc3VwcG9ydGVkLmApXG4gICAgfVxuXG4gICAgaWYgKHByZWZzICYmICFwcmVmcy5pc1NhbWVFbXB0eVByZWZzKGVtcHR5UHJlZnMpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgUHJlZmVyZW5jZXMgZW1wdHlQcmVmcyBtaXNtYXRjaCBmb3Iga2V5ICcke3ByZWZlcmVuY2VLZXl9Jy4gQ2hhbmdpbmcgdGhlIGVtcHR5UHJlZnMgaXMgbm90IHN1cHBvcnRlZC5gKVxuICAgIH1cblxuICAgIGlmICghcHJlZnMpIHtcbiAgICAgIHByZWZzID0gbmV3IFRoZVNlYW1QcmVmZXJlbmNlc01hcFJlY29yZChwcmVmZXJlbmNlS2V5LCBhY2Nlc3NvciwgZW1wdHlQcmVmcylcbiAgICAgIHRoaXMuX3RhYmxlUHJlZnNNYXAuc2V0KHByZWZlcmVuY2VLZXksIHByZWZzKVxuICAgIH1cbiAgICByZXR1cm4gcHJlZnMub2JzZXJ2YWJsZS5waXBlKFxuICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAvLyBUaGlzIGlzIGZvciBhc3N1bWluZyB0aGUgYWNjZXNzb3IgcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0LCBhcyBhXG4gICAgICAgIC8vIGRlZmF1bHQgZm9yIGEgbWlzc2luZyBwcmVmZXJlbmNlLiBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGVycm9yLCB3ZVxuICAgICAgICAvLyByZXR1cm4gYSB2YWxpZCBlbXB0eSBwcmVmZXJlbmNlcy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gTk9URTogTWF5IHJlbW92ZSB0aGlzLCB3aGVuIGEgbW9yZSBnZW5lcmljIHByZWZlcmVuY2VzIGltcGxlbWVudGF0aW9uXG4gICAgICAgIC8vIGlzIGZpbmlzaGVkLlxuICAgICAgICBpZiAoT2JqZWN0LmtleXModikubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGVtcHR5UHJlZnNcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2XG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHByZWZlcmVuY2VLZXk6IHN0cmluZywgdmFsdWU6IFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2UpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuX3RhYmxlUHJlZnNNYXAuZ2V0KHByZWZlcmVuY2VLZXkpXG4gICAgaWYgKHByZWZzKSB7XG4gICAgICBwcmVmcy51cGRhdGUodmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZShwcmVmZXJlbmNlS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuX3RhYmxlUHJlZnNNYXAuZ2V0KHByZWZlcmVuY2VLZXkpXG4gICAgaWYgKHByZWZzKSB7XG4gICAgICBwcmVmcy5kZWxldGUoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKHByZWZlcmVuY2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHByZWZzID0gdGhpcy5fdGFibGVQcmVmc01hcC5nZXQocHJlZmVyZW5jZUtleSlcbiAgICBpZiAocHJlZnMpIHtcbiAgICAgIHByZWZzLnJlZnJlc2goKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1BlbmRpbmcocHJlZmVyZW5jZUtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHJlZnMgPSB0aGlzLl90YWJsZVByZWZzTWFwLmdldChwcmVmZXJlbmNlS2V5KVxuICAgIHJldHVybiBwcmVmcyA/IHByZWZzLnN0YXR1cyA9PT0gJ3BlbmRpbmcnIDogZmFsc2VcbiAgfVxuXG4gIHB1YmxpYyBpc0xvYWRlZChwcmVmZXJlbmNlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuX3RhYmxlUHJlZnNNYXAuZ2V0KHByZWZlcmVuY2VLZXkpXG4gICAgcmV0dXJuIHByZWZzID8gcHJlZnMuc3RhdHVzID09PSAnbG9hZGVkJyA6IGZhbHNlXG4gIH1cblxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFJdEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7O0FBS2xFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFIN0M7UUFLbUIsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQTtLQXFFakY7SUFuRVEsV0FBVyxDQUNoQixhQUFxQixFQUNyQixRQUFvQyxFQUNwQyxVQUFrQztRQUVsQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUVsRCxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUMsTUFBTSxLQUFLLENBQUMsMENBQTBDLGFBQWEsNENBQTRDLENBQUMsQ0FBQTtTQUNqSDtRQUVELElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sS0FBSyxDQUFDLDRDQUE0QyxhQUFhLDhDQUE4QyxDQUFDLENBQUE7U0FDckg7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHLElBQUksMkJBQTJCLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQTtZQUM1RSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7U0FDOUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixtRUFBbUU7WUFDbkUscUVBQXFFO1lBQ3JFLG9DQUFvQztZQUNwQyxFQUFFO1lBQ0Ysd0VBQXdFO1lBQ3hFLGVBQWU7WUFDZixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxVQUFVLENBQUE7YUFDbEI7WUFFRCxPQUFPLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQXFCLEVBQUUsS0FBNkI7UUFDaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3BCO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFxQjtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtTQUNmO0lBQ0gsQ0FBQztJQUVNLE9BQU8sQ0FBQyxhQUFxQjtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtTQUNoQjtJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsYUFBcUI7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDbkQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxhQUFxQjtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNsRCxDQUFDOzs2SEFyRVUsZ0NBQWdDO2lJQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcblxyXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IFRoZVNlYW1QcmVmZXJlbmNlc0FjY2Vzc29yIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy1hY2Nlc3NvcidcclxuaW1wb3J0IHsgVGhlU2VhbVByZWZlcmVuY2VzTWFwUmVjb3JkIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy1yZWNvcmQnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaGVTZWFtUHJlZmVyZW5jZXNNYW5hZ2VyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlUHJlZnNNYXAgPSBuZXcgTWFwPHN0cmluZywgVGhlU2VhbVByZWZlcmVuY2VzTWFwUmVjb3JkPigpXHJcblxyXG4gIHB1YmxpYyBwcmVmZXJlbmNlcyhcclxuICAgIHByZWZlcmVuY2VLZXk6IHN0cmluZyxcclxuICAgIGFjY2Vzc29yOiBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvcixcclxuICAgIGVtcHR5UHJlZnM6IFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2UsXHJcbiAgKTogT2JzZXJ2YWJsZTxUaGVTZWFtUHJlZmVyZW5jZXNCYXNlPiB7XHJcbiAgICBsZXQgcHJlZnMgPSB0aGlzLl90YWJsZVByZWZzTWFwLmdldChwcmVmZXJlbmNlS2V5KVxyXG5cclxuICAgIGlmIChwcmVmcyAmJiAhcHJlZnMuaXNTYW1lQWNjZXNzb3IoYWNjZXNzb3IpKSB7XHJcbiAgICAgIHRocm93IEVycm9yKGBQcmVmZXJlbmNlcyBhY2Nlc3NvciBtaXNtYXRjaCBmb3Iga2V5ICcke3ByZWZlcmVuY2VLZXl9Jy4gQ2hhbmdpbmcgdGhlIGFjY2Vzc29yIGlzIG5vdCBzdXBwb3J0ZWQuYClcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHJlZnMgJiYgIXByZWZzLmlzU2FtZUVtcHR5UHJlZnMoZW1wdHlQcmVmcykpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoYFByZWZlcmVuY2VzIGVtcHR5UHJlZnMgbWlzbWF0Y2ggZm9yIGtleSAnJHtwcmVmZXJlbmNlS2V5fScuIENoYW5naW5nIHRoZSBlbXB0eVByZWZzIGlzIG5vdCBzdXBwb3J0ZWQuYClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXByZWZzKSB7XHJcbiAgICAgIHByZWZzID0gbmV3IFRoZVNlYW1QcmVmZXJlbmNlc01hcFJlY29yZChwcmVmZXJlbmNlS2V5LCBhY2Nlc3NvciwgZW1wdHlQcmVmcylcclxuICAgICAgdGhpcy5fdGFibGVQcmVmc01hcC5zZXQocHJlZmVyZW5jZUtleSwgcHJlZnMpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJlZnMub2JzZXJ2YWJsZS5waXBlKFxyXG4gICAgICBtYXAodiA9PiB7XHJcbiAgICAgICAgLy8gVGhpcyBpcyBmb3IgYXNzdW1pbmcgdGhlIGFjY2Vzc29yIHJldHVybmVkIGFuIGVtcHR5IG9iamVjdCwgYXMgYVxyXG4gICAgICAgIC8vIGRlZmF1bHQgZm9yIGEgbWlzc2luZyBwcmVmZXJlbmNlLiBJbnN0ZWFkIG9mIHRocm93aW5nIGFuIGVycm9yLCB3ZVxyXG4gICAgICAgIC8vIHJldHVybiBhIHZhbGlkIGVtcHR5IHByZWZlcmVuY2VzLlxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gTk9URTogTWF5IHJlbW92ZSB0aGlzLCB3aGVuIGEgbW9yZSBnZW5lcmljIHByZWZlcmVuY2VzIGltcGxlbWVudGF0aW9uXHJcbiAgICAgICAgLy8gaXMgZmluaXNoZWQuXHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHYpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIGVtcHR5UHJlZnNcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB2XHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZShwcmVmZXJlbmNlS2V5OiBzdHJpbmcsIHZhbHVlOiBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuX3RhYmxlUHJlZnNNYXAuZ2V0KHByZWZlcmVuY2VLZXkpXHJcbiAgICBpZiAocHJlZnMpIHtcclxuICAgICAgcHJlZnMudXBkYXRlKHZhbHVlKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZShwcmVmZXJlbmNlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHByZWZzID0gdGhpcy5fdGFibGVQcmVmc01hcC5nZXQocHJlZmVyZW5jZUtleSlcclxuICAgIGlmIChwcmVmcykge1xyXG4gICAgICBwcmVmcy5kZWxldGUoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZnJlc2gocHJlZmVyZW5jZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuX3RhYmxlUHJlZnNNYXAuZ2V0KHByZWZlcmVuY2VLZXkpXHJcbiAgICBpZiAocHJlZnMpIHtcclxuICAgICAgcHJlZnMucmVmcmVzaCgpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNQZW5kaW5nKHByZWZlcmVuY2VLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcHJlZnMgPSB0aGlzLl90YWJsZVByZWZzTWFwLmdldChwcmVmZXJlbmNlS2V5KVxyXG4gICAgcmV0dXJuIHByZWZzID8gcHJlZnMuc3RhdHVzID09PSAncGVuZGluZycgOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzTG9hZGVkKHByZWZlcmVuY2VLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcHJlZnMgPSB0aGlzLl90YWJsZVByZWZzTWFwLmdldChwcmVmZXJlbmNlS2V5KVxyXG4gICAgcmV0dXJuIHByZWZzID8gcHJlZnMuc3RhdHVzID09PSAnbG9hZGVkJyA6IGZhbHNlXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -69,4 +69,4 @@ export class TheSeamPreferencesMapRecord {
69
69
  return prefs;
70
70
  }
71
71
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtcmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLXJlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRWpHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBWTdELE1BQU0sT0FBTywyQkFBMkI7SUFVdEMsWUFDbUIsSUFBWSxFQUNaLFNBQXFDLEVBQ3JDLFdBQW1DO1FBRm5DLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUE0QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFYckMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO1FBQ3JDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUF3QyxDQUFBO1FBRW5GLFlBQU8sR0FBbUMsU0FBUyxDQUFBO1FBVXpELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDOUQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDNUI7UUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBc0IsRUFBRSxDQUNuRCxJQUFJLENBQUMs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QUVPLHdCQUF3QixDQUFDLFVBQWtCO1FBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFcEMsNEJBQTRCO1FBRTVCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciB9IGZyb20gJy4vcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy5tb2RlbHMnXG5cbmV4cG9ydCB0eXBlIFRoZVNlYW1QcmVmZXJlbmNlc1JlY29yZFN0YXR1cyA9ICdwZW5kaW5nJyB8ICdsb2FkZWQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbVByZWZlcmVuY2VzUmVjb3JkU3RhdHVzQ2hhbmdlIHtcbiAgcHJldmlvdXM6IFRoZVNlYW1QcmVmZXJlbmNlc1JlY29yZFN0YXR1c1xuICBjdXJyZW50OiBUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXNcbn1cblxuZXhwb3J0IGNsYXNzIFRoZVNlYW1QcmVmZXJlbmNlc01hcFJlY29yZCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXR1c0NoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDxUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXNDaGFuZ2U+KClcblxuICBwcml2YXRlIF9zdGF0dXM6IFRoZVNlYW1QcmVmZXJlbmNlc1JlY29yZFN0YXR1cyA9ICdwZW5kaW5nJ1xuXG4gIHB1YmxpYyByZWFkb25seSBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2U+XG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXNDaGFuZ2U6IE9ic2VydmFibGU8VGhlU2VhbVByZWZlcmVuY2VzUmVjb3JkU3RhdHVzQ2hhbmdlPlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2tleTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjY2Vzc29yOiBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbXB0eVByZWZzOiBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlLFxuICApIHtcbiAgICB0aGlzLm9ic2VydmFibGUgPSB0aGlzLl9jcmVhdGVPYnNlcnZhYmxlKClcbiAgICB0aGlzLnN0YXR1c0NoYW5nZSA9IHRoaXMuX3N0YXR1c0NoYW5nZVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxUaGVTZWFtUHJlZmVyZW5jZXNCYXNlPiB7XG4gICAgaWYgKCF0aGlzLl9hY2Nlc3Nvcikge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuX2VtcHR5UHJlZnMpXG4gICAgfVxuXG4gICAgY29uc3QgYWNjZXNzb3IgPSAoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT5cbiAgICAgIHRoaXMuX2FjY2Vzc29yID8gdGhpcy5fYWNjZXNzb3IuZ2V0KGtleSkgOiBvZihKU09OLnN0cmluZ2lmeSh0aGlzLl9lbXB0eVByZWZzKSlcblxuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoU3ViamVjdC5waXBlKFxuICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gYWNjZXNzb3IodGhpcy5fa2V5KS5waXBlKFxuICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgaWYgKCF2KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFRPRE86IEFkZCBhIHNjaGVtYSB2YWxpZGF0b3IgYW5kIG1pZ3JhdGlvbiB0b29sIHRvIGF2b2lkIHBhcnNpbmcgaXNzdWVzLlxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVzY2VyaWFsaXplUHJlZmVyZW5jZXModilcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIG1hcCh2ID0+IG5vdE51bGxPclVuZGVmaW5lZCh2KSA/IHYgOiB0aGlzLl9lbXB0eVByZWZzKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9zZXRTdGF0dXMoJ2xvYWRlZCcpXG4gICAgICAgIH0pXG4gICAgICApKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZSh2YWx1ZTogVGhlU2VhbVByZWZlcmVuY2VzQmFzZSk6IHZvaWQge1xuICAgIHRoaXMuX2FjY2Vzc29yLnVwZGF0ZSh0aGlzLl9rZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY2Nlc3Nvci5kZWxldGUodGhpcy5fa2V5KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgpXG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRTdGF0dXMoJ3BlbmRpbmcnKVxuICAgIHRoaXMuX3JlZnJlc2hTdWJqZWN0Lm5leHQoKVxuICB9XG5cbiAgcHVibGljIGlzU2FtZUFjY2Vzc29yKGFjY2Vzc29yOiBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3Nvcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY2Nlc3NvciA9PT0gYWNjZXNzb3JcbiAgfVxuXG4gIHB1YmxpYyBpc1NhbWVFbXB0eVByZWZzKGVtcHR5UHJlZnM6IFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5fZW1wdHlQcmVmcykgPT09IEpTT04uc3RyaW5naWZ5KGVtcHR5UHJlZnMpXG4gIH1cblxuICBnZXQgc3RhdHVzKCk6IFRoZVNlYW1QcmVmZXJlbmNlc1JlY29yZFN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1c1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U3RhdHVzKHN0YXR1czogVGhlU2VhbVByZWZlcmVuY2VzUmVjb3JkU3RhdHVzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXR1cyA9PT0gc3RhdHVzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgcHJldiA9IHRoaXMuX3N0YXR1c1xuICAgIHRoaXMuX3N0YXR1cyA9IHN0YXR1c1xuICAgIHRoaXMuX3N0YXR1c0NoYW5nZVN1YmplY3QubmV4dCh7IHByZXZpb3VzOiBwcmV2LCBjdXJyZW50OiBzdGF0dXMgfSlcbiAgfVxuXG4gIHByaXZhdGUgX2Rlc2NlcmlhbGl6ZVByZWZlcmVuY2VzKHNlcmlhbGl6ZWQ6IHN0cmluZyk6IFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2Uge1xuICAgIGNvbnN0IHByZWZzID0gSlNPTi5wYXJzZShzZXJpYWxpemVkKVxuXG4gICAgLy8gVE9ETzogSW1wbGVtZW50IG1pZ3JhdGlvblxuXG4gICAgcmV0dXJuIHByZWZzXG4gIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtcmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLXJlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRWpHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBWTdELE1BQU0sT0FBTywyQkFBMkI7SUFVdEMsWUFDbUIsSUFBWSxFQUNaLFNBQXFDLEVBQ3JDLFdBQW1DO1FBRm5DLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUE0QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFYckMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO1FBQ3JDLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUF3QyxDQUFBO1FBRW5GLFlBQU8sR0FBbUMsU0FBUyxDQUFBO1FBVXpELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDOUQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDNUI7UUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBc0IsRUFBRSxDQUNuRCxJQUFJLENBQUMs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QUVPLHdCQUF3QixDQUFDLFVBQWtCO1FBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFcEMsNEJBQTRCO1FBRTVCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJ1xyXG5cclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xyXG5cclxuaW1wb3J0IHsgVGhlU2VhbVByZWZlcmVuY2VzQWNjZXNzb3IgfSBmcm9tICcuL3ByZWZlcmVuY2VzLWFjY2Vzc29yJ1xyXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy5tb2RlbHMnXHJcblxyXG5leHBvcnQgdHlwZSBUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXMgPSAncGVuZGluZycgfCAnbG9hZGVkJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXNDaGFuZ2Uge1xyXG4gIHByZXZpb3VzOiBUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXNcclxuICBjdXJyZW50OiBUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXNcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRoZVNlYW1QcmVmZXJlbmNlc01hcFJlY29yZCB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXR1c0NoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdDxUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXNDaGFuZ2U+KClcclxuXHJcbiAgcHJpdmF0ZSBfc3RhdHVzOiBUaGVTZWFtUHJlZmVyZW5jZXNSZWNvcmRTdGF0dXMgPSAncGVuZGluZydcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IG9ic2VydmFibGU6IE9ic2VydmFibGU8VGhlU2VhbVByZWZlcmVuY2VzQmFzZT5cclxuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlOiBPYnNlcnZhYmxlPFRoZVNlYW1QcmVmZXJlbmNlc1JlY29yZFN0YXR1c0NoYW5nZT5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9rZXk6IHN0cmluZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjY2Vzc29yOiBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VtcHR5UHJlZnM6IFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLm9ic2VydmFibGUgPSB0aGlzLl9jcmVhdGVPYnNlcnZhYmxlKClcclxuICAgIHRoaXMuc3RhdHVzQ2hhbmdlID0gdGhpcy5fc3RhdHVzQ2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2U+IHtcclxuICAgIGlmICghdGhpcy5fYWNjZXNzb3IpIHtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMuX2VtcHR5UHJlZnMpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYWNjZXNzb3IgPSAoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT5cclxuICAgICAgdGhpcy5fYWNjZXNzb3IgPyB0aGlzLl9hY2Nlc3Nvci5nZXQoa2V5KSA6IG9mKEpTT04uc3RyaW5naWZ5KHRoaXMuX2VtcHR5UHJlZnMpKVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoU3ViamVjdC5waXBlKFxyXG4gICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IGFjY2Vzc29yKHRoaXMuX2tleSkucGlwZShcclxuICAgICAgICBtYXAodiA9PiB7XHJcbiAgICAgICAgICBpZiAoIXYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGxcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgYSBzY2hlbWEgdmFsaWRhdG9yIGFuZCBtaWdyYXRpb24gdG9vbCB0byBhdm9pZCBwYXJzaW5nIGlzc3Vlcy5cclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZXNjZXJpYWxpemVQcmVmZXJlbmNlcyh2KVxyXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgbWFwKHYgPT4gbm90TnVsbE9yVW5kZWZpbmVkKHYpID8gdiA6IHRoaXMuX2VtcHR5UHJlZnMpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zZXRTdGF0dXMoJ2xvYWRlZCcpXHJcbiAgICAgICAgfSlcclxuICAgICAgKSksXHJcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlKHZhbHVlOiBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hY2Nlc3Nvci51cGRhdGUodGhpcy5fa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hY2Nlc3Nvci5kZWxldGUodGhpcy5fa2V5KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldFN0YXR1cygncGVuZGluZycpXHJcbiAgICB0aGlzLl9yZWZyZXNoU3ViamVjdC5uZXh0KClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NhbWVBY2Nlc3NvcihhY2Nlc3NvcjogVGhlU2VhbVByZWZlcmVuY2VzQWNjZXNzb3IpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hY2Nlc3NvciA9PT0gYWNjZXNzb3JcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1NhbWVFbXB0eVByZWZzKGVtcHR5UHJlZnM6IFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2UpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLl9lbXB0eVByZWZzKSA9PT0gSlNPTi5zdHJpbmdpZnkoZW1wdHlQcmVmcylcclxuICB9XHJcblxyXG4gIGdldCBzdGF0dXMoKTogVGhlU2VhbVByZWZlcmVuY2VzUmVjb3JkU3RhdHVzIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGF0dXNcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFN0YXR1cyhzdGF0dXM6IFRoZVNlYW1QcmVmZXJlbmNlc1JlY29yZFN0YXR1cyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3N0YXR1cyA9PT0gc3RhdHVzKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgY29uc3QgcHJldiA9IHRoaXMuX3N0YXR1c1xyXG4gICAgdGhpcy5fc3RhdHVzID0gc3RhdHVzXHJcbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VTdWJqZWN0Lm5leHQoeyBwcmV2aW91czogcHJldiwgY3VycmVudDogc3RhdHVzIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZXNjZXJpYWxpemVQcmVmZXJlbmNlcyhzZXJpYWxpemVkOiBzdHJpbmcpOiBUaGVTZWFtUHJlZmVyZW5jZXNCYXNlIHtcclxuICAgIGNvbnN0IHByZWZzID0gSlNPTi5wYXJzZShzZXJpYWxpemVkKVxyXG5cclxuICAgIC8vIFRPRE86IEltcGxlbWVudCBtaWdyYXRpb25cclxuXHJcbiAgICByZXR1cm4gcHJlZnNcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgaW50ZXJmYWNlIFRoZVNlYW1QcmVmZXJlbmNlc0Jhc2Uge1xuICB2ZXJzaW9uOiBudW1iZXJcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGhlU2VhbVByZWZlcmVuY2VzQmFzZSB7XHJcbiAgdmVyc2lvbjogbnVtYmVyXHJcbn1cclxuIl19
@@ -0,0 +1,83 @@
1
+ import { useStoryContext } from '@storybook/preview-api';
2
+ /**
3
+ * This is an attempt at simplifying the use of auto-generated args in stories
4
+ * defined with `template`, since Angular doesn't have a way to simply use a
5
+ * spread operator syntax.
6
+ *
7
+ * @experimental
8
+ */
9
+ // export function argsToTplParts(args: any, argTypes: ArgTypes): ArgsTplParts {
10
+ // // console.log({ args, argTypes })
11
+ // const parts: ArgsTplParts = {
12
+ // actions: {},
13
+ // tplfragment: ''
14
+ // }
15
+ // Object.keys(argTypes).forEach(k => {
16
+ // // Inputs
17
+ // if (
18
+ // // Is in the inputs category
19
+ // argTypes[k].table.category === 'inputs' &&
20
+ // // Needs a control to be able to change from auto-generated args.
21
+ // argTypes[k]?.hasOwnProperty('control') &&
22
+ // // Assuming the arg might not be in props if there isn't an arg value.
23
+ // args.hasOwnProperty(k)
24
+ // ) {
25
+ // parts.tplfragment += `[${k}]="${k}" `
26
+ // }
27
+ // // Outputs
28
+ // if (
29
+ // // Is in the outputs category
30
+ // argTypes[k]?.table?.category === 'outputs'
31
+ // ) {
32
+ // // Without access to props, I don't know if I can get an action into the
33
+ // // template context like this.
34
+ // parts.tplfragment += `(${k})="${k}($event)" `
35
+ // parts.actions[k] = action(k)
36
+ // }
37
+ // })
38
+ // return parts
39
+ // }
40
+ function removeDuplicates(arr) {
41
+ const seen = {};
42
+ return arr.filter(item => {
43
+ if (!seen[item]) {
44
+ seen[item] = true;
45
+ return true;
46
+ }
47
+ return false;
48
+ });
49
+ }
50
+ /**
51
+ * This is an attempt at simplifying the use of auto-generated args in stories
52
+ * defined with `template`, since Angular doesn't have a way to simply use a
53
+ * spread operator syntax.
54
+ *
55
+ * @experimental
56
+ */
57
+ export function argsToTpl(options) {
58
+ const context = useStoryContext();
59
+ const exclude = [
60
+ ...(context?.parameters?.argsToTplOptions?.exclude || []),
61
+ ...(options?.exclude || []),
62
+ ];
63
+ const alwaysBind = context?.parameters?.argsToTplOptions?.alwaysBind || [];
64
+ const props = removeDuplicates([
65
+ ...alwaysBind,
66
+ ...Object.keys(context.args),
67
+ ]);
68
+ const parts = props
69
+ .filter(k => exclude.indexOf(k) === -1)
70
+ .map(k => {
71
+ // Outputs
72
+ if (context.argTypes[k]?.hasOwnProperty('action') &&
73
+ (context.args.hasOwnProperty(k) || alwaysBind.indexOf(k) !== -1)) {
74
+ return `(${k})="${k}($event)"`;
75
+ }
76
+ // Inputs
77
+ if ((context.args.hasOwnProperty(k) || alwaysBind.indexOf(k) !== -1)) {
78
+ return `[${k}]="${k}"`;
79
+ }
80
+ });
81
+ return parts.length > 0 ? parts.join(' ') : '';
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy10by10cGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vc3RvcnktaGVscGVycy9hcmdzLXRvLXRwbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFPeEQ7Ozs7OztHQU1HO0FBQ0gsZ0ZBQWdGO0FBQ2hGLHVDQUF1QztBQUN2QyxrQ0FBa0M7QUFDbEMsbUJBQW1CO0FBQ25CLHNCQUFzQjtBQUN0QixNQUFNO0FBRU4seUNBQXlDO0FBQ3pDLGdCQUFnQjtBQUNoQixXQUFXO0FBQ1gscUNBQXFDO0FBQ3JDLG1EQUFtRDtBQUNuRCwwRUFBMEU7QUFDMUUsa0RBQWtEO0FBQ2xELCtFQUErRTtBQUMvRSwrQkFBK0I7QUFDL0IsVUFBVTtBQUNWLDhDQUE4QztBQUM5QyxRQUFRO0FBRVIsaUJBQWlCO0FBQ2pCLFdBQVc7QUFDWCxzQ0FBc0M7QUFDdEMsbURBQW1EO0FBQ25ELFVBQVU7QUFDVixpRkFBaUY7QUFDakYsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxxQ0FBcUM7QUFDckMsUUFBUTtBQUNSLE9BQU87QUFFUCxpQkFBaUI7QUFDakIsSUFBSTtBQUVKLFNBQVMsZ0JBQWdCLENBQUMsR0FBYTtJQUNyQyxNQUFNLElBQUksR0FBNkIsRUFBRSxDQUFBO0lBQ3pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQTtZQUNqQixPQUFPLElBQUksQ0FBQTtTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFhRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQXdCO0lBQ2hELE1BQU0sT0FBTyxHQUFHLGVBQWUsRUFBbUIsQ0FBQTtJQUVsRCxNQUFNLE9BQU8sR0FBRztRQUNkLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDekQsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0tBQzVCLENBQUE7SUFFRCxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUE7SUFFMUUsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsR0FBRyxVQUFVO1FBQ2IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDN0IsQ0FBQyxDQUFBO0lBRUYsTUFBTSxLQUFLLEdBQUcsS0FBSztTQUNoQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNQLFVBQVU7UUFDVixJQUNFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUM3QyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDaEU7WUFDQSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFBO1NBQy9CO1FBRUQsU0FBUztRQUNULElBQ0UsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ2hFO1lBQ0EsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQTtTQUN2QjtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUosT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbmltcG9ydCB7IGFjdGlvbiwgSGFuZGxlckZ1bmN0aW9uIH0gZnJvbSAnQHN0b3J5Ym9vay9hZGRvbi1hY3Rpb25zJ1xuaW1wb3J0IHsgQW5ndWxhclJlbmRlcmVyLCBBcmdUeXBlcyB9IGZyb20gJ0BzdG9yeWJvb2svYW5ndWxhcidcbmltcG9ydCB7IHVzZVN0b3J5Q29udGV4dCB9IGZyb20gJ0BzdG9yeWJvb2svcHJldmlldy1hcGknXG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJnc1RwbFBhcnRzIHtcbiAgYWN0aW9uczogeyBbcHJvcDogc3RyaW5nXTogSGFuZGxlckZ1bmN0aW9uIH1cbiAgdHBsZnJhZ21lbnQ6IHN0cmluZ1xufVxuXG4vKipcbiAqIFRoaXMgaXMgYW4gYXR0ZW1wdCBhdCBzaW1wbGlmeWluZyB0aGUgdXNlIG9mIGF1dG8tZ2VuZXJhdGVkIGFyZ3MgaW4gc3Rvcmllc1xuICogZGVmaW5lZCB3aXRoIGB0ZW1wbGF0ZWAsIHNpbmNlIEFuZ3VsYXIgZG9lc24ndCBoYXZlIGEgd2F5IHRvIHNpbXBseSB1c2UgYVxuICogc3ByZWFkIG9wZXJhdG9yIHN5bnRheC5cbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbi8vIGV4cG9ydCBmdW5jdGlvbiBhcmdzVG9UcGxQYXJ0cyhhcmdzOiBhbnksIGFyZ1R5cGVzOiBBcmdUeXBlcyk6IEFyZ3NUcGxQYXJ0cyB7XG4vLyAgIC8vIGNvbnNvbGUubG9nKHsgYXJncywgYXJnVHlwZXMgfSlcbi8vICAgY29uc3QgcGFydHM6IEFyZ3NUcGxQYXJ0cyA9IHtcbi8vICAgICBhY3Rpb25zOiB7fSxcbi8vICAgICB0cGxmcmFnbWVudDogJydcbi8vICAgfVxuXG4vLyAgIE9iamVjdC5rZXlzKGFyZ1R5cGVzKS5mb3JFYWNoKGsgPT4ge1xuLy8gICAgIC8vIElucHV0c1xuLy8gICAgIGlmIChcbi8vICAgICAgIC8vIElzIGluIHRoZSBpbnB1dHMgY2F0ZWdvcnlcbi8vICAgICAgIGFyZ1R5cGVzW2tdLnRhYmxlLmNhdGVnb3J5ID09PSAnaW5wdXRzJyAmJlxuLy8gICAgICAgLy8gTmVlZHMgYSBjb250cm9sIHRvIGJlIGFibGUgdG8gY2hhbmdlIGZyb20gYXV0by1nZW5lcmF0ZWQgYXJncy5cbi8vICAgICAgIGFyZ1R5cGVzW2tdPy5oYXNPd25Qcm9wZXJ0eSgnY29udHJvbCcpICYmXG4vLyAgICAgICAvLyBBc3N1bWluZyB0aGUgYXJnIG1pZ2h0IG5vdCBiZSBpbiBwcm9wcyBpZiB0aGVyZSBpc24ndCBhbiBhcmcgdmFsdWUuXG4vLyAgICAgICBhcmdzLmhhc093blByb3BlcnR5KGspXG4vLyAgICAgKSB7XG4vLyAgICAgICBwYXJ0cy50cGxmcmFnbWVudCArPSBgWyR7a31dPVwiJHtrfVwiIGBcbi8vICAgICB9XG5cbi8vICAgICAvLyBPdXRwdXRzXG4vLyAgICAgaWYgKFxuLy8gICAgICAgLy8gSXMgaW4gdGhlIG91dHB1dHMgY2F0ZWdvcnlcbi8vICAgICAgIGFyZ1R5cGVzW2tdPy50YWJsZT8uY2F0ZWdvcnkgPT09ICdvdXRwdXRzJ1xuLy8gICAgICkge1xuLy8gICAgICAgLy8gV2l0aG91dCBhY2Nlc3MgdG8gcHJvcHMsIEkgZG9uJ3Qga25vdyBpZiBJIGNhbiBnZXQgYW4gYWN0aW9uIGludG8gdGhlXG4vLyAgICAgICAvLyB0ZW1wbGF0ZSBjb250ZXh0IGxpa2UgdGhpcy5cbi8vICAgICAgIHBhcnRzLnRwbGZyYWdtZW50ICs9IGAoJHtrfSk9XCIke2t9KCRldmVudClcIiBgXG4vLyAgICAgICBwYXJ0cy5hY3Rpb25zW2tdID0gYWN0aW9uKGspXG4vLyAgICAgfVxuLy8gICB9KVxuXG4vLyAgIHJldHVybiBwYXJ0c1xuLy8gfVxuXG5mdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVzKGFycjogc3RyaW5nW10pIHtcbiAgY29uc3Qgc2VlbjogeyBbazogc3RyaW5nXTogYm9vbGVhbiB9ID0ge31cbiAgcmV0dXJuIGFyci5maWx0ZXIoaXRlbSA9PiB7XG4gICAgaWYgKCFzZWVuW2l0ZW1dKSB7XG4gICAgICBzZWVuW2l0ZW1dID0gdHJ1ZVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0pXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJnc1RwbE9wdGlvbnMge1xuICAvKipcbiAgICogUHJvcGVydGllcyB0byBhbHdheXMgYmluZCB0byB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBhbHdheXNCaW5kPzogc3RyaW5nW11cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gZXhjbHVkZSBmcm9tIGJpZG5pbmcgdG8gdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgZXhjbHVkZT86IHN0cmluZ1tdXG59XG5cbi8qKlxuICogVGhpcyBpcyBhbiBhdHRlbXB0IGF0IHNpbXBsaWZ5aW5nIHRoZSB1c2Ugb2YgYXV0by1nZW5lcmF0ZWQgYXJncyBpbiBzdG9yaWVzXG4gKiBkZWZpbmVkIHdpdGggYHRlbXBsYXRlYCwgc2luY2UgQW5ndWxhciBkb2Vzbid0IGhhdmUgYSB3YXkgdG8gc2ltcGx5IHVzZSBhXG4gKiBzcHJlYWQgb3BlcmF0b3Igc3ludGF4LlxuICpcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyZ3NUb1RwbChvcHRpb25zPzogQXJnc1RwbE9wdGlvbnMpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZVN0b3J5Q29udGV4dDxBbmd1bGFyUmVuZGVyZXI+KClcblxuICBjb25zdCBleGNsdWRlID0gW1xuICAgIC4uLihjb250ZXh0Py5wYXJhbWV0ZXJzPy5hcmdzVG9UcGxPcHRpb25zPy5leGNsdWRlIHx8IFtdKSxcbiAgICAuLi4ob3B0aW9ucz8uZXhjbHVkZSB8fCBbXSksXG4gIF1cblxuICBjb25zdCBhbHdheXNCaW5kID0gY29udGV4dD8ucGFyYW1ldGVycz8uYXJnc1RvVHBsT3B0aW9ucz8uYWx3YXlzQmluZCB8fCBbXVxuXG4gIGNvbnN0IHByb3BzID0gcmVtb3ZlRHVwbGljYXRlcyhbXG4gICAgLi4uYWx3YXlzQmluZCxcbiAgICAuLi5PYmplY3Qua2V5cyhjb250ZXh0LmFyZ3MpLFxuICBdKVxuXG4gIGNvbnN0IHBhcnRzID0gcHJvcHNcbiAgICAuZmlsdGVyKGsgPT4gZXhjbHVkZS5pbmRleE9mKGspID09PSAtMSlcbiAgICAubWFwKGsgPT4ge1xuICAgICAgLy8gT3V0cHV0c1xuICAgICAgaWYgKFxuICAgICAgICBjb250ZXh0LmFyZ1R5cGVzW2tdPy5oYXNPd25Qcm9wZXJ0eSgnYWN0aW9uJykgJiZcbiAgICAgICAgKGNvbnRleHQuYXJncy5oYXNPd25Qcm9wZXJ0eShrKSB8fCBhbHdheXNCaW5kLmluZGV4T2YoaykgIT09IC0xKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBgKCR7a30pPVwiJHtrfSgkZXZlbnQpXCJgXG4gICAgICB9XG5cbiAgICAgIC8vIElucHV0c1xuICAgICAgaWYgKFxuICAgICAgICAoY29udGV4dC5hcmdzLmhhc093blByb3BlcnR5KGspIHx8IGFsd2F5c0JpbmQuaW5kZXhPZihrKSAhPT0gLTEpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGBbJHtrfV09XCIke2t9XCJgXG4gICAgICB9XG4gICAgfSlcblxuICByZXR1cm4gcGFydHMubGVuZ3RoID4gMCA/IHBhcnRzLmpvaW4oJyAnKSA6ICcnXG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  export * from './arg-type-helpers';
2
- // export * from './args-to-tpl'
2
+ export * from './args-to-tpl';
3
3
  export * from './story-empty.component';
4
4
  export * from './story-initial-route';
5
5
  export * from './route-button';
@@ -13,4 +13,4 @@ export * from './story-toastr.service';
13
13
  export * from './on-story-bootstrapped-exec';
14
14
  export * from './on-story-bootstrapped-trigger';
15
15
  export * from './story-preferences-accessor.service';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9zdG9yeS1oZWxwZXJzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxnQ0FBZ0M7QUFDaEMsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXJnLXR5cGUtaGVscGVycydcbi8vIGV4cG9ydCAqIGZyb20gJy4vYXJncy10by10cGwnXG5leHBvcnQgKiBmcm9tICcuL3N0b3J5LWVtcHR5LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vc3RvcnktaW5pdGlhbC1yb3V0ZSdcbmV4cG9ydCAqIGZyb20gJy4vcm91dGUtYnV0dG9uJ1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXMtYXJnLXR5cGUnXG5leHBvcnQgKiBmcm9tICcuL3N0b3J5LWhlbHBlci1jb21wb25lbnRzLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vaW5pdGlhbC1yb3V0ZS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9pbml0aWFsLXJvdXRlLWZhY3RvcnknXG5leHBvcnQgKiBmcm9tICcuL3N0b3J5LWVtcHR5LXdpdGgtcm91dGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yeS1tb2RhbC1jb250YWluZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yeS10b2FzdHIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vb24tc3RvcnktYm9vdHN0cmFwcGVkLWV4ZWMnXG5leHBvcnQgKiBmcm9tICcuL29uLXN0b3J5LWJvb3RzdHJhcHBlZC10cmlnZ2VyJ1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yeS1wcmVmZXJlbmNlcy1hY2Nlc3Nvci5zZXJ2aWNlJ1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9zdG9yeS1oZWxwZXJzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLHlCQUF5QixDQUFBO0FBQ3ZDLGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLHNDQUFzQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcmctdHlwZS1oZWxwZXJzJ1xuZXhwb3J0ICogZnJvbSAnLi9hcmdzLXRvLXRwbCdcbmV4cG9ydCAqIGZyb20gJy4vc3RvcnktZW1wdHkuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yeS1pbml0aWFsLXJvdXRlJ1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS1idXR0b24nXG5leHBvcnQgKiBmcm9tICcuL3JvdXRlcy1hcmctdHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vc3RvcnktaGVscGVyLWNvbXBvbmVudHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9pbml0aWFsLXJvdXRlLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2luaXRpYWwtcm91dGUtZmFjdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vc3RvcnktZW1wdHktd2l0aC1yb3V0ZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3N0b3J5LW1vZGFsLWNvbnRhaW5lci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3N0b3J5LXRvYXN0ci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9vbi1zdG9yeS1ib290c3RyYXBwZWQtZXhlYydcbmV4cG9ydCAqIGZyb20gJy4vb24tc3RvcnktYm9vdHN0cmFwcGVkLXRyaWdnZXInXG5leHBvcnQgKiBmcm9tICcuL3N0b3J5LXByZWZlcmVuY2VzLWFjY2Vzc29yLnNlcnZpY2UnXG4iXX0=
@@ -31,4 +31,4 @@ StoryPreferencesAccessorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StoryPreferencesAccessorService, decorators: [{
32
32
  type: Injectable
33
33
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcnktcHJlZmVyZW5jZXMtYWNjZXNzb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9zdG9yeS1oZWxwZXJzL3N0b3J5LXByZWZlcmVuY2VzLWFjY2Vzc29yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBOztBQUlyQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUE7QUFHcEMsTUFBTSxPQUFPLCtCQUErQjtJQUUxQzs7T0FFRztJQUNJLEdBQUcsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDdkMsOEJBQThCO1FBQzlCLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDekQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxJQUFZO1FBQ3hCLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNyRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNqQixDQUFDOzs0SEF6QlUsK0JBQStCO2dJQUEvQiwrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9zZXJ2aWNlcydcblxuY29uc3QgQUNDRVNTT1JfUFJFRklYID0gJ3N0b3J5LXByZWYnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdG9yeVByZWZlcmVuY2VzQWNjZXNzb3JTZXJ2aWNlIGltcGxlbWVudHMgVGhlU2VhbVByZWZlcmVuY2VzQWNjZXNzb3Ige1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgcHJlZmVyZW5jZS5cbiAgICovXG4gIHB1YmxpYyBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zb2xlLmxvZygnZ2V0JywgbmFtZSlcbiAgICByZXR1cm4gb2YobG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7QUNDRVNTT1JfUFJFRklYfS0ke25hbWV9YCkgfHwgJ3t9JylcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBwcmVmZXJlbmNlLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIGNvbnNvbGUubG9nKCd1cGRhdGUnLCBuYW1lKVxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke0FDQ0VTU09SX1BSRUZJWH0tJHtuYW1lfWAsIHZhbHVlKVxuICAgIHJldHVybiB0aGlzLmdldChuYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHByZWZlcmVuY2UuXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGAke0FDQ0VTU09SX1BSRUZJWH0tJHtuYW1lfWApXG4gICAgcmV0dXJuIG9mKHRydWUpXG4gIH1cblxufVxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcnktcHJlZmVyZW5jZXMtYWNjZXNzb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9zdG9yeS1oZWxwZXJzL3N0b3J5LXByZWZlcmVuY2VzLWFjY2Vzc29yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBOztBQUlyQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUE7QUFHcEMsTUFBTSxPQUFPLCtCQUErQjtJQUUxQzs7T0FFRztJQUNJLEdBQUcsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ3hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDdkMsOEJBQThCO1FBQzlCLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLElBQUksSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDekQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxJQUFZO1FBQ3hCLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNyRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNqQixDQUFDOzs0SEF6QlUsK0JBQStCO2dJQUEvQiwrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXHJcblxyXG5pbXBvcnQgeyBUaGVTZWFtUHJlZmVyZW5jZXNBY2Nlc3NvciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9zZXJ2aWNlcydcclxuXHJcbmNvbnN0IEFDQ0VTU09SX1BSRUZJWCA9ICdzdG9yeS1wcmVmJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3RvcnlQcmVmZXJlbmNlc0FjY2Vzc29yU2VydmljZSBpbXBsZW1lbnRzIFRoZVNlYW1QcmVmZXJlbmNlc0FjY2Vzc29yIHtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBhIHByZWZlcmVuY2UuXHJcbiAgICovXHJcbiAgcHVibGljIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc29sZS5sb2coJ2dldCcsIG5hbWUpXHJcbiAgICByZXR1cm4gb2YobG9jYWxTdG9yYWdlLmdldEl0ZW0oYCR7QUNDRVNTT1JfUFJFRklYfS0ke25hbWV9YCkgfHwgJ3t9JylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhIHByZWZlcmVuY2UuXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3VwZGF0ZScsIG5hbWUpXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgJHtBQ0NFU1NPUl9QUkVGSVh9LSR7bmFtZX1gLCB2YWx1ZSlcclxuICAgIHJldHVybiB0aGlzLmdldChuYW1lKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGEgcHJlZmVyZW5jZS5cclxuICAgKi9cclxuICBwdWJsaWMgZGVsZXRlKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7QUNDRVNTT1JfUFJFRklYfS0ke25hbWV9YClcclxuICAgIHJldHVybiBvZih0cnVlKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -7,4 +7,5 @@ export * from './tel-input.directive';
7
7
  export * from './tel-input-validator';
8
8
  export * from './tel-input.module';
9
9
  export * from './phone-number.pipe';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90ZWwtaW5wdXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90ZWwtaW5wdXQvdGVsLWlucHV0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJ1xuZXhwb3J0ICogZnJvbSAnLi91dGlscydcbmV4cG9ydCAqIGZyb20gJy4vaW50bC10ZWwtaW5wdXQnXG5leHBvcnQgKiBmcm9tICcuL3RlbC1pbnB1dC1jb25zdGFudHMnXG5leHBvcnQgKiBmcm9tICcuL3RlbC1pbnB1dC5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL3RlbC1pbnB1dC12YWxpZGF0b3InXG5leHBvcnQgKiBmcm9tICcuL3RlbC1pbnB1dC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL3Bob25lLW51bWJlci5waXBlJ1xuIl19
10
+ export * from './testing/tel-input.harness';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90ZWwtaW5wdXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUE7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLHFCQUFxQixDQUFBO0FBRW5DLGNBQWMsNkJBQTZCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RlbC1pbnB1dC90ZWwtaW5wdXQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9pbnRsLXRlbC1pbnB1dCdcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWlucHV0LWNvbnN0YW50cydcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWlucHV0LmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWlucHV0LXZhbGlkYXRvcidcbmV4cG9ydCAqIGZyb20gJy4vdGVsLWlucHV0Lm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vcGhvbmUtbnVtYmVyLnBpcGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vdGVzdGluZy90ZWwtaW5wdXQuaGFybmVzcydcbiJdfQ==
@@ -1,18 +1,18 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
3
3
  import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, HostListener, InjectFlags, Input, Output, ViewChild } from '@angular/core';
4
- import { UntypedFormControl, NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { UntypedFormControl, NgControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
5
5
  import { defer, fromEvent, merge, of, Subject } from 'rxjs';
6
6
  import { auditTime, map, switchMap, takeUntil } from 'rxjs/operators';
7
7
  import { InputBoolean } from '@theseam/ui-common/core';
8
- import { InputDirective } from '@theseam/ui-common/form-field';
8
+ import { InputDirective, TheSeamFormFieldModule } from '@theseam/ui-common/form-field';
9
9
  import { TheSeamTelInputDirective } from '../tel-input.directive';
10
+ import { CommonModule } from '@angular/common';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@angular/cdk/a11y";
12
- import * as i2 from "@angular/forms";
13
- import * as i3 from "@theseam/ui-common/form-field";
14
- import * as i4 from "../tel-input.directive";
15
- import * as i5 from "@angular/common";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "@angular/forms";
15
+ import * as i4 from "@theseam/ui-common/form-field";
16
16
  // TODO: Fix focus
17
17
  // TODO: Fix disabled
18
18
  export class TheSeamTelInputComponent {
@@ -88,11 +88,14 @@ export class TheSeamTelInputComponent {
88
88
  this._focusMonitor.monitor(this._elementRef, true).pipe(takeUntil(this._ngUnsubscribe)).subscribe(origin => this._focusOrigin = origin);
89
89
  this._control.valueChanges.pipe(takeUntil(this._ngUnsubscribe)).subscribe(v => {
90
90
  const value = this._telInputDirective?.getFullNumber();
91
+ // console.log('valueChanges', v, value)
91
92
  this.value = value;
92
93
  if (this._controlValueAccessorChangeFn) {
93
94
  this._controlValueAccessorChangeFn(value);
95
+ this.change.emit(value);
94
96
  }
95
97
  });
98
+ this._control.setValue(this.value ?? '');
96
99
  }
97
100
  /** @ignore */
98
101
  ngOnDestroy() {
@@ -103,7 +106,11 @@ export class TheSeamTelInputComponent {
103
106
  // Implemented as part of ControlValueAccessor.
104
107
  /** @ignore */
105
108
  writeValue(value) {
109
+ // console.log('writeValue', value, this._telInputDirective?.getFullNumber(), this._control.value)
106
110
  this.value = value;
111
+ if (this._control.value !== value) {
112
+ this._control.setValue(value);
113
+ }
107
114
  if (this._telInputDirective) {
108
115
  this._telInputDirective.value = value;
109
116
  this._telInputDirective.updateValue();
@@ -137,11 +144,11 @@ export class TheSeamTelInputComponent {
137
144
  }
138
145
  }
139
146
  TheSeamTelInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTelInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
140
- TheSeamTelInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTelInputComponent, selector: "seam-tel-input", inputs: { required: "required", disabled: "disabled", tabIndex: "tabIndex", name: "name", value: "value" }, outputs: { change: "change" }, host: { listeners: { "focus": "_onFocus($event)" }, properties: { "attr.disabled": "this._attrDisabled", "attr.tabindex": "this._attrTabIndex" } }, providers: [{
147
+ TheSeamTelInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTelInputComponent, isStandalone: true, selector: "seam-tel-input", inputs: { required: "required", disabled: "disabled", tabIndex: "tabIndex", name: "name", value: "value" }, outputs: { change: "change" }, host: { listeners: { "focus": "_onFocus($event)" }, properties: { "attr.disabled": "this._attrDisabled", "attr.tabindex": "this._attrTabIndex" } }, providers: [{
141
148
  provide: NG_VALUE_ACCESSOR,
142
149
  useExisting: forwardRef(() => TheSeamTelInputComponent),
143
150
  multi: true
144
- }], viewQueries: [{ propertyName: "_telInputDirective", first: true, predicate: TheSeamTelInputDirective, descendants: true, static: true }, { propertyName: "_inputDirective", first: true, predicate: InputDirective, descendants: true, static: true }, { propertyName: "_inputElementRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input seamTelInput seamInput\n [formControl]=\"_control\"\n [class.is-invalid]=\"_hasInvalidCss$ | async\" />\n", styles: [":host{display:block}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover{cursor:default}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:transparent}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__arrow{display:none}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.TheSeamTelInputDirective, selector: "input[seamTelInput]", inputs: ["value"], exportAs: ["seamTelInput"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
+ }], viewQueries: [{ propertyName: "_telInputDirective", first: true, predicate: TheSeamTelInputDirective, descendants: true, static: true }, { propertyName: "_inputDirective", first: true, predicate: InputDirective, descendants: true, static: true }, { propertyName: "_inputElementRef", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<input seamTelInput seamInput\n [formControl]=\"_control\"\n [class.is-invalid]=\"_hasInvalidCss$ | async\"\n [required]=\"required\"/>\n", styles: [":host{display:block}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover{cursor:default}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:transparent}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__arrow{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "directive", type: i4.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: TheSeamTelInputDirective, selector: "input[seamTelInput]", inputs: ["value"], exportAs: ["seamTelInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
145
152
  __decorate([
146
153
  InputBoolean()
147
154
  ], TheSeamTelInputComponent.prototype, "required", void 0);
@@ -151,7 +158,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
151
158
  provide: NG_VALUE_ACCESSOR,
152
159
  useExisting: forwardRef(() => TheSeamTelInputComponent),
153
160
  multi: true
154
- }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<input seamTelInput seamInput\n [formControl]=\"_control\"\n [class.is-invalid]=\"_hasInvalidCss$ | async\" />\n", styles: [":host{display:block}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover{cursor:default}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:transparent}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__arrow{display:none}\n"] }]
161
+ }], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
162
+ CommonModule,
163
+ ReactiveFormsModule,
164
+ TheSeamFormFieldModule,
165
+ TheSeamTelInputDirective,
166
+ ], template: "<input seamTelInput seamInput\n [formControl]=\"_control\"\n [class.is-invalid]=\"_hasInvalidCss$ | async\"\n [required]=\"required\"/>\n", styles: [":host{display:block}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover{cursor:default}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:transparent}:host[disabled] ::ng-deep .iti--allow-dropdown .iti__arrow{display:none}\n"] }]
155
167
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: i0.ElementRef }, { type: i1.FocusMonitor }]; }, propDecorators: { required: [{
156
168
  type: Input
157
169
  }], disabled: [{
@@ -183,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
183
195
  type: HostListener,
184
196
  args: ['focus', ['$event']]
185
197
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90ZWwtaW5wdXQvdGVsLWlucHV0L3RlbC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vdGVsLWlucHV0L3RlbC1pbnB1dC90ZWwtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osV0FBVyxFQUVYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkcsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUE7Ozs7Ozs7QUFFakUsa0JBQWtCO0FBQ2xCLHFCQUFxQjtBQWFyQixNQUFNLE9BQU8sd0JBQXdCO0lBZ0JuQyxJQUNJLFFBQVEsS0FBYyxPQUFPLElBQUksQ0FBQyxTQUFTLENB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bml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RGbGFncyxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IGRlZmVyLCBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBhdWRpdFRpbWUsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9mb3JtLWZpZWxkJ1xuXG5pbXBvcnQgeyBUaGVTZWFtVGVsSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi90ZWwtaW5wdXQuZGlyZWN0aXZlJ1xuXG4vLyBUT0RPOiBGaXggZm9jdXNcbi8vIFRPRE86IEZpeCBkaXNhYmxlZFxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXRlbC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWwtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZWwtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZVNlYW1UZWxJbnB1dENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1UZWxJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAvKiogQGlnbm9yZSAqL1xuICByZWFkb25seSBfY29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKVxuXG4gIHByaXZhdGUgX2ZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9IG51bGxcblxuICBfaGFzSW52YWxpZENzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcmVxdWlyZWQgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG5cbiAgICBpZiAodGhpcy5fY29udHJvbC5kaXNhYmxlZCAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICB0aGlzLl9jb250cm9sLmRpc2FibGUoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fY29udHJvbC5lbmFibGUoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZVxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRhYiBpbmRleCB0byBgLTFgIHRvIGFsbG93IHRoZSByb290IGVsZW1lbnQgb2YgdGhlXG4gICAqIGNvbXBvbmVudCB0byByZWNlaXZlIGBmb2N1c2AgZXZlbnQgZnJvbSBqYXZhc2NyaXB0LCBidXQgbm90IGdldCBmb2N1c2VkIGJ5XG4gICAqIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikgeyB0aGlzLl90YWJJbmRleCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKSB9XG4gIGdldCB0YWJJbmRleCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fdGFiSW5kZXggfVxuICBwcml2YXRlIF90YWJJbmRleCA9IC0xXG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgZ2V0IF9hdHRyRGlzYWJsZWQoKSB7IHJldHVybiB0aGlzLmRpc2FibGVkIHx8IG51bGwgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIGdldCBfYXR0clRhYkluZGV4KCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogKHRoaXMudGFiSW5kZXggfHwgMCkgfVxuXG4gIC8qKiBOYW1lIHZhbHVlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW5wdXQgZWxlbWVudCBpZiBwcmVzZW50ICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIFRoZSB2YWx1ZSBhdHRyaWJ1dGUgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50ICovXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgXCJ0ZWxcIiBpbnB1dCB2YWx1ZSBjaGFuZ2VzLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgLyoqXG4gICAqIFRoZSB0ZWxJbnB1dCBkaXJlY3RpdmVcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZChUaGVTZWFtVGVsSW5wdXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIF90ZWxJbnB1dERpcmVjdGl2ZT86IFRoZVNlYW1UZWxJbnB1dERpcmVjdGl2ZVxuXG4gIC8qKlxuICAgKiBUaGUgdGVsSW5wdXQgZGlyZWN0aXZlXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoSW5wdXREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIF9pbnB1dERpcmVjdGl2ZT86IElucHV0RGlyZWN0aXZlXG5cbiAgLyoqXG4gICAqIFRoZSBuYXRpdmUgYDxpbnB1dCB0eXBlPVwidGVsXCI+YCBlbGVtZW50XG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgX2lucHV0RWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsgJyRldmVudCcgXSlcbiAgX29uRm9jdXMoKSB7XG4gICAgdGhpcy5fdGVsSW5wdXREaXJlY3RpdmU/LmZvY3VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2hlY2tib3ggaXMgYmx1cnJlZC4gTmVlZGVkIHRvIHByb3Blcmx5IGltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgX29uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge31cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICkge1xuICAgIGNvbnN0IHRlbElucHV0Qmx1ckV2ZW50JCA9IHRoaXMuX3RlbElucHV0RGlyZWN0aXZlXG4gICAgICA/IGZyb21FdmVudCh0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZS5nZXRIb3N0RWxlbWVudCgpLCAnYmx1cicpXG4gICAgICA6IG9mPEV2ZW50PigpXG5cbiAgICB0aGlzLl9oYXNJbnZhbGlkQ3NzJCA9IGRlZmVyKCgpID0+IG9mKCh0aGlzLl9pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsLCBJbmplY3RGbGFncy5TZWxmKT8uY29udHJvbCkgfHwgdW5kZWZpbmVkKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb250cm9sID0+IHtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcyxcbiAgICAgICAgICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcyxcbiAgICAgICAgICAgIHRlbElucHV0Qmx1ckV2ZW50JFxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGlucHV0Q29udHJvbCA9IHRoaXMuX2lucHV0RGlyZWN0aXZlPy5uZ0NvbnRyb2xcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2wuaW52YWxpZCAmJiAoaW5wdXRDb250cm9sPy5kaXJ0eSBhcyBib29sZWFuIHx8IGlucHV0Q29udHJvbD8udG91Y2hlZCBhcyBib29sZWFuKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCB0cnVlKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgKS5zdWJzY3JpYmUob3JpZ2luID0+IHRoaXMuX2ZvY3VzT3JpZ2luID0gb3JpZ2luKVxuXG4gICAgdGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZT8uZ2V0RnVsbE51bWJlcigpXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICAgIGlmICh0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKSB7XG4gICAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odmFsdWUpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLl9lbGVtZW50UmVmKVxuXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIC8qKiBAaWdub3JlICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICAgIGlmICh0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZSkge1xuICAgICAgdGhpcy5fdGVsSW5wdXREaXJlY3RpdmUudmFsdWUgPSB2YWx1ZVxuICAgICAgdGhpcy5fdGVsSW5wdXREaXJlY3RpdmUudXBkYXRlVmFsdWUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIC8qKiBAaWdub3JlICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIC8qKiBAaWdub3JlICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkXG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgaW5wdXQuICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZT8uZm9jdXMoKVxuICB9XG5cbiAgLyoqIFVuZm9jdXNlcyB0aGUgaW5wdXQuICovXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3RlbElucHV0RGlyZWN0aXZlPy5ibHVyKClcbiAgfVxuXG4gIHB1YmxpYyBoYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNPcmlnaW4gIT09IG51bGwgJiYgdGhpcy5fZm9jdXNPcmlnaW4gIT09IHVuZGVmaW5lZFxuICB9XG5cbn1cbiIsIjxpbnB1dCBzZWFtVGVsSW5wdXQgc2VhbUlucHV0XG4gIFtmb3JtQ29udHJvbF09XCJfY29udHJvbFwiXG4gIFtjbGFzcy5pcy1pbnZhbGlkXT1cIl9oYXNJbnZhbGlkQ3NzJCB8IGFzeW5jXCIgLz5cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90ZWwtaW5wdXQvdGVsLWlucHV0L3RlbC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vdGVsLWlucHV0L3RlbC1pbnB1dC90ZWwtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osV0FBVyxFQUVYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUgsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7Ozs7QUFFOUMsa0JBQWtCO0FBQ2xCLHFCQUFxQjtB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QUFLO2dCQTJCRixRQUFRO3NCQURYLEtBQUs7Z0JBTUYsYUFBYTtzQkFEaEIsV0FBVzt1QkFBQyxlQUFlO2dCQUl4QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLGVBQWU7Z0JBSW5CLElBQUk7c0JBQVosS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFNZ0Qsa0JBQWtCO3NCQUF4RSxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNUixlQUFlO3NCQUEzRCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTUwsZ0JBQWdCO3NCQUFyRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR3BDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RGbGFncyxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IGRlZmVyLCBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBhdWRpdFRpbWUsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBJbnB1dERpcmVjdGl2ZSwgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9mb3JtLWZpZWxkJ1xuXG5pbXBvcnQgeyBUaGVTZWFtVGVsSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi90ZWwtaW5wdXQuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG4vLyBUT0RPOiBGaXggZm9jdXNcbi8vIFRPRE86IEZpeCBkaXNhYmxlZFxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXRlbC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWwtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZWwtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZVNlYW1UZWxJbnB1dENvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbiAgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaGVTZWFtVGVsSW5wdXREaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1UZWxJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAvKiogQGlnbm9yZSAqL1xuICByZWFkb25seSBfY29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKVxuXG4gIHByaXZhdGUgX2ZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9IG51bGxcblxuICBfaGFzSW52YWxpZENzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcmVxdWlyZWQgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG5cbiAgICBpZiAodGhpcy5fY29udHJvbC5kaXNhYmxlZCAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICB0aGlzLl9jb250cm9sLmRpc2FibGUoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fY29udHJvbC5lbmFibGUoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZVxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRhYiBpbmRleCB0byBgLTFgIHRvIGFsbG93IHRoZSByb290IGVsZW1lbnQgb2YgdGhlXG4gICAqIGNvbXBvbmVudCB0byByZWNlaXZlIGBmb2N1c2AgZXZlbnQgZnJvbSBqYXZhc2NyaXB0LCBidXQgbm90IGdldCBmb2N1c2VkIGJ5XG4gICAqIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikgeyB0aGlzLl90YWJJbmRleCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKSB9XG4gIGdldCB0YWJJbmRleCgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fdGFiSW5kZXggfVxuICBwcml2YXRlIF90YWJJbmRleCA9IC0xXG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgZ2V0IF9hdHRyRGlzYWJsZWQoKSB7IHJldHVybiB0aGlzLmRpc2FibGVkIHx8IG51bGwgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIGdldCBfYXR0clRhYkluZGV4KCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogKHRoaXMudGFiSW5kZXggfHwgMCkgfVxuXG4gIC8qKiBOYW1lIHZhbHVlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW5wdXQgZWxlbWVudCBpZiBwcmVzZW50ICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIFRoZSB2YWx1ZSBhdHRyaWJ1dGUgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50ICovXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgXCJ0ZWxcIiBpbnB1dCB2YWx1ZSBjaGFuZ2VzLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4oKVxuXG4gIC8qKlxuICAgKiBUaGUgdGVsSW5wdXQgZGlyZWN0aXZlXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoVGhlU2VhbVRlbElucHV0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBfdGVsSW5wdXREaXJlY3RpdmU/OiBUaGVTZWFtVGVsSW5wdXREaXJlY3RpdmVcblxuICAvKipcbiAgICogVGhlIHRlbElucHV0IGRpcmVjdGl2ZVxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKElucHV0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBfaW5wdXREaXJlY3RpdmU/OiBJbnB1dERpcmVjdGl2ZVxuXG4gIC8qKlxuICAgKiBUaGUgbmF0aXZlIGA8aW5wdXQgdHlwZT1cInRlbFwiPmAgZWxlbWVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIF9pbnB1dEVsZW1lbnRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbICckZXZlbnQnIF0pXG4gIF9vbkZvY3VzKCkge1xuICAgIHRoaXMuX3RlbElucHV0RGlyZWN0aXZlPy5mb2N1cygpXG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGNoZWNrYm94IGlzIGJsdXJyZWQuIE5lZWRlZCB0byBwcm9wZXJseSBpbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIF9vblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHt9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvclxuICApIHtcbiAgICBjb25zdCB0ZWxJbnB1dEJsdXJFdmVudCQgPSB0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZVxuICAgICAgPyBmcm9tRXZlbnQodGhpcy5fdGVsSW5wdXREaXJlY3RpdmUuZ2V0SG9zdEVsZW1lbnQoKSwgJ2JsdXInKVxuICAgICAgOiBvZjxFdmVudD4oKVxuXG4gICAgdGhpcy5faGFzSW52YWxpZENzcyQgPSBkZWZlcigoKSA9PiBvZigodGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwgSW5qZWN0RmxhZ3MuU2VsZik/LmNvbnRyb2wpIHx8IHVuZGVmaW5lZCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY29udHJvbCA9PiB7XG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgY29udHJvbC52YWx1ZUNoYW5nZXMsXG4gICAgICAgICAgICBjb250cm9sLnN0YXR1c0NoYW5nZXMsXG4gICAgICAgICAgICB0ZWxJbnB1dEJsdXJFdmVudCRcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBhdWRpdFRpbWUoMCksXG4gICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpbnB1dENvbnRyb2wgPSB0aGlzLl9pbnB1dERpcmVjdGl2ZT8ubmdDb250cm9sXG4gICAgICAgICAgICAgIHJldHVybiBjb250cm9sLmludmFsaWQgJiYgKGlucHV0Q29udHJvbD8uZGlydHkgYXMgYm9vbGVhbiB8fCBpbnB1dENvbnRyb2w/LnRvdWNoZWQgYXMgYm9vbGVhbilcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihmYWxzZSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKG9yaWdpbiA9PiB0aGlzLl9mb2N1c09yaWdpbiA9IG9yaWdpbilcblxuICAgIHRoaXMuX2NvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSlcbiAgICApLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fdGVsSW5wdXREaXJlY3RpdmU/LmdldEZ1bGxOdW1iZXIoKVxuICAgICAgLy8gY29uc29sZS5sb2coJ3ZhbHVlQ2hhbmdlcycsIHYsIHZhbHVlKVxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlXG4gICAgICBpZiAodGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbikge1xuICAgICAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHZhbHVlKVxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlKVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlID8/ICcnKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpXG5cbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQodW5kZWZpbmVkKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3dyaXRlVmFsdWUnLCB2YWx1ZSwgdGhpcy5fdGVsSW5wdXREaXJlY3RpdmU/LmdldEZ1bGxOdW1iZXIoKSwgdGhpcy5fY29udHJvbC52YWx1ZSlcbiAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICBpZiAodGhpcy5fY29udHJvbC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsdWUpXG4gICAgfVxuICAgIGlmICh0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZSkge1xuICAgICAgdGhpcy5fdGVsSW5wdXREaXJlY3RpdmUudmFsdWUgPSB2YWx1ZVxuICAgICAgdGhpcy5fdGVsSW5wdXREaXJlY3RpdmUudXBkYXRlVmFsdWUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIC8qKiBAaWdub3JlICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gIC8qKiBAaWdub3JlICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkXG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgaW5wdXQuICovXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl90ZWxJbnB1dERpcmVjdGl2ZT8uZm9jdXMoKVxuICB9XG5cbiAgLyoqIFVuZm9jdXNlcyB0aGUgaW5wdXQuICovXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3RlbElucHV0RGlyZWN0aXZlPy5ibHVyKClcbiAgfVxuXG4gIHB1YmxpYyBoYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNPcmlnaW4gIT09IG51bGwgJiYgdGhpcy5fZm9jdXNPcmlnaW4gIT09IHVuZGVmaW5lZFxuICB9XG5cbn1cbiIsIjxpbnB1dCBzZWFtVGVsSW5wdXQgc2VhbUlucHV0XG4gIFtmb3JtQ29udHJvbF09XCJfY29udHJvbFwiXG4gIFtjbGFzcy5pcy1pbnZhbGlkXT1cIl9oYXNJbnZhbGlkQ3NzJCB8IGFzeW5jXCJcbiAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIvPlxuIl19
@@ -11,7 +11,6 @@ import * as i1 from "@theseam/ui-common/services";
11
11
  import * as i2 from "@angular/forms";
12
12
  export class TheSeamTelInputDirective {
13
13
  set value(v) {
14
- // console.log('set value', v, this._instance)
15
14
  this._value = v;
16
15
  if (this._instance) {
17
16
  this._instance.setNumber(notNullOrUndefined(v) ? v : '');
@@ -46,11 +45,9 @@ export class TheSeamTelInputDirective {
46
45
  };
47
46
  }
48
47
  ngOnInit() {
49
- merge(this._assetLoader.loadStyleSheet(TEL_INPUT_STYLESHEET_PATH), this._assetLoader.loadStyle(TEL_INPUT_STYLES)).pipe(
50
- // tap(v => console.log('loaded', v)),
51
- tap(v => this._loadedAssetRefs.push(v)), last(),
52
- // tap(v => console.log('StyleLoadingDone', v)),
53
- switchMap(() => {
48
+ this._elementRef.nativeElement.value = this._ngControl ? this._ngControl.value : this.value ?? '';
49
+ this._elementRef.nativeElement.setAttribute('instance-loading', '');
50
+ merge(this._assetLoader.loadStyleSheet(TEL_INPUT_STYLESHEET_PATH), this._assetLoader.loadStyle(TEL_INPUT_STYLES)).pipe(tap(v => this._loadedAssetRefs.push(v)), last(), switchMap(() => {
54
51
  this._instance = IntlTelInputFn(this._elementRef.nativeElement, {
55
52
  utilsScript: TEL_INPUT_UTILS_PATH,
56
53
  preferredCountries: ['US'],
@@ -63,10 +60,11 @@ export class TheSeamTelInputDirective {
63
60
  // initialCountry: 'auto'
64
61
  });
65
62
  this._tryUpdateDropdownAttributes();
66
- return this._instance.promise;
67
- }),
68
- // tap(() => console.log('%c_instance ready', 'color:green', this._instance, this._elementRef.nativeElement.value)),
69
- tap(() => this._initDropdownListener()), tap(() => this.value = this._value), tap(this._formatIntlTelInput), switchMap(() => merge(fromEvent(this._elementRef.nativeElement, 'keyup'), fromEvent(this._elementRef.nativeElement, 'change'))), tap(this._formatIntlTelInput), takeUntil(this._ngUnsubscribe)).subscribe();
63
+ return this._instance.promise.then(v => {
64
+ this._elementRef.nativeElement.removeAttribute('instance-loading');
65
+ return v;
66
+ });
67
+ }), tap(() => this._initDropdownListener()), tap(() => this.value = this._value), tap(this._formatIntlTelInput), switchMap(() => merge(fromEvent(this._elementRef.nativeElement, 'keyup'), fromEvent(this._elementRef.nativeElement, 'change'))), tap(this._formatIntlTelInput), takeUntil(this._ngUnsubscribe)).subscribe();
70
68
  }
71
69
  ngOnDestroy() {
72
70
  this._instance?.destroy();
@@ -185,12 +183,13 @@ export class TheSeamTelInputDirective {
185
183
  }
186
184
  }
187
185
  TheSeamTelInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTelInputDirective, deps: [{ token: i0.ElementRef }, { token: i1.AssetLoaderService }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
188
- TheSeamTelInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTelInputDirective, selector: "input[seamTelInput]", inputs: { value: "value" }, host: { properties: { "attr.type": "this._attrType" } }, exportAs: ["seamTelInput"], ngImport: i0 });
186
+ TheSeamTelInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamTelInputDirective, isStandalone: true, selector: "input[seamTelInput]", inputs: { value: "value" }, host: { properties: { "attr.type": "this._attrType" } }, exportAs: ["seamTelInput"], ngImport: i0 });
189
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamTelInputDirective, decorators: [{
190
188
  type: Directive,
191
189
  args: [{
192
190
  selector: 'input[seamTelInput]',
193
- exportAs: 'seamTelInput'
191
+ exportAs: 'seamTelInput',
192
+ standalone: true,
194
193
  }]
195
194
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AssetLoaderService }, { type: i0.NgZone }, { type: undefined, decorators: [{
196
195
  type: Optional
@@ -207,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
207
206
  }], value: [{
208
207
  type: Input
209
208
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90ZWwtaW5wdXQvdGVsLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBNkIsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTZCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFHMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7OztBQU12RCxNQUFNLE9BQU8sd0JBQXdCO0lBUW5DLElBQ0ksS0FBSyxDQUFDLENBQTRCO1FBQ3BDLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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SUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtJQUN2QyxDQUFDOztxSEFyT1Usd0JBQXdCLG9HQTZCYixRQUFRO3lHQTdCbkIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzswQkE4QkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksSUFBSTs0Q0F4Qk8sU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxXQUFXO2dCQUdwQixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IERpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgSG9zdCwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBsYXN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEFzc2V0TG9hZGVyU2VydmljZSwgTG9hZGVkQXNzZXRSZWYgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2VydmljZXMnXG5pbXBvcnQgeyBnZXRBdHRyaWJ1dGUsIGhhc0F0dHJpYnV0ZSwgbm90TnVsbE9yVW5kZWZpbmVkLCB0b2dnbGVBdHRyaWJ1dGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgSW50bFRlbElucHV0Rm4sIGludGxUZWxJbnB1dFV0aWxzIH0gZnJvbSAnLi9pbnRsLXRlbC1pbnB1dCdcbmltcG9ydCB0eXBlIHsgSW50bFRlbElucHV0IH0gZnJvbSAnLi9pbnRsLXRlbC1pbnB1dCdcbmltcG9ydCB7IFRFTF9JTlBVVF9TVFlMRVMsIFRFTF9JTlBVVF9TVFlMRVNIRUVUX1BBVEgsIFRFTF9JTlBVVF9VVElMU19QQVRIIH0gZnJvbSAnLi90ZWwtaW5wdXQtY29uc3RhbnRzJ1xuaW1wb3J0IHsgZ2xvYmFsSW50bFRlbElucHV0VXRpbHMgfSBmcm9tICcuL3V0aWxzL2luZGV4J1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFtzZWFtVGVsSW5wdXRdJyxcbiAgZXhwb3J0QXM6ICdzZWFtVGVsSW5wdXQnXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1UZWxJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICBwcml2YXRlIF9pbnN0YW5jZTogSW50bFRlbElucHV0LlBsdWdpbiB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9sb2FkZWRBc3NldFJlZnM6IExvYWRlZEFzc2V0UmVmPEhUTUxMaW5rRWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQ+W10gPSBbXVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50eXBlJykgX2F0dHJUeXBlID0gJ3RlbCdcblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodjogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdzZXQgdmFsdWUnLCB2LCB0aGlzLl9pbnN0YW5jZSlcbiAgICB0aGlzLl92YWx1ZSA9IHZcbiAgICBpZiAodGhpcy5faW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuX2luc3RhbmNlLnNldE51bWJlcihub3ROdWxsT3JVbmRlZmluZWQodikgPyB2IDogJycpXG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKClcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIGlmICh0aGlzLl9pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlPy5nZXROdW1iZXIoKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXNzZXRMb2FkZXI6IEFzc2V0TG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudD86IGFueSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgcmVhZG9ubHkgX25nQ29udHJvbD86IE5nQ29udHJvbCxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBtZXJnZShcbiAgICAgIHRoaXMuX2Fzc2V0TG9hZGVyLmxvYWRTdHlsZVNoZWV0KFRFTF9JTlBVVF9TVFlMRVNIRUVUX1BBVEgpLFxuICAgICAgdGhpcy5fYXNzZXRMb2FkZXIubG9hZFN0eWxlKFRFTF9JTlBVVF9TVFlMRVMpXG4gICAgKS5waXBlKFxuICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ2xvYWRlZCcsIHYpKSxcbiAgICAgIHRhcCh2ID0+IHRoaXMuX2xvYWRlZEFzc2V0UmVmcy5wdXNoKHYpKSxcbiAgICAgIGxhc3QoKSxcbiAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdTdHlsZUxvYWRpbmdEb25lJywgdikpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBJbnRsVGVsSW5wdXRGbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICB1dGlsc1NjcmlwdDogVEVMX0lOUFVUX1VUSUxTX1BBVEgsXG4gICAgICAgICAgcHJlZmVycmVkQ291bnRyaWVzOiBbICdVUycgXSxcbiAgICAgICAgICBuYXRpb25hbE1vZGU6IGZhbHNlLFxuICAgICAgICAgIGZvcm1hdE9uRGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICBhdXRvUGxhY2Vob2xkZXI6ICdvZmYnLFxuICAgICAgICAgIHNlcGFyYXRlRGlhbENvZGU6IGZhbHNlLFxuICAgICAgICAgIGF1dG9IaWRlRGlhbENvZGU6IGZhbHNlLFxuICAgICAgICAgIC8vIFRPRE86IEFkZCBpbml0aWFsQ291bnRyeSBzdXBwb3J0LlxuICAgICAgICAgIC8vIGluaXRpYWxDb3VudHJ5OiAnYXV0bydcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLl90cnlVcGRhdGVEcm9wZG93bkF0dHJpYnV0ZXMoKVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZS5wcm9taXNlXG4gICAgICB9KSxcbiAgICAgIC8vIHRhcCgoKSA9PiBjb25zb2xlLmxvZygnJWNfaW5zdGFuY2UgcmVhZHknLCAnY29sb3I6Z3JlZW4nLCB0aGlzLl9pbnN0YW5jZSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5faW5pdERyb3Bkb3duTGlzdGVuZXIoKSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy52YWx1ZSA9IHRoaXMuX3ZhbHVlKSxcbiAgICAgIHRhcCh0aGlzLl9mb3JtYXRJbnRsVGVsSW5wdXQpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKFxuICAgICAgICBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnKSxcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NoYW5nZScpXG4gICAgICApKSxcbiAgICAgIHRhcCh0aGlzLl9mb3JtYXRJbnRsVGVsSW5wdXQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5faW5zdGFuY2U/LmRlc3Ryb3koKVxuICAgIGZvciAoY29uc3QgcmVmIG9mIHRoaXMuX2xvYWRlZEFzc2V0UmVmcykge1xuICAgICAgcmVmLmRlc3Ryb3koKVxuICAgIH1cblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCh1bmRlZmluZWQpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgdGhpcy5fdHJ5VXBkYXRlRHJvcGRvd25BdHRyaWJ1dGVzKClcbiAgfVxuXG4gIHByaXZhdGUgX3RyeVVwZGF0ZURyb3Bkb3duQXR0cmlidXRlcygpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5fbmdDb250cm9sXG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGZsYWdzQ29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQgPSAodGhpcy5faW5zdGFuY2UgYXMgYW55KT8uc2VsZWN0ZWRGbGFnXG4gICAgICBpZiAoZmxhZ3NDb250YWluZXIpIHtcbiAgICAgICAgdG9nZ2xlQXR0cmlidXRlKGZsYWdzQ29udGFpbmVyLCAnYXJpYS1kaXNhYmxlZCcsIGNvbnRyb2wuZGlzYWJsZWQgPz8gZmFsc2UpXG5cbiAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBjb250cm9sLmRpc2FibGVkID8/IGZhbHNlXG4gICAgICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgICBpZiAoZ2V0QXR0cmlidXRlKGZsYWdzQ29udGFpbmVyLCAndGFiaW5kZXgnKSAhPT0gJzAnKSB7XG4gICAgICAgICAgICBmbGFnc0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaGFzQXR0cmlidXRlKGZsYWdzQ29udGFpbmVyLCAndGFiaW5kZXgnKSkge1xuICAgICAgICAgICAgZmxhZ3NDb250YWluZXIucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0SW50bFRlbElucHV0ID0gKCkgPT4ge1xuICAgIC8vIGlmICh0eXBlb2YgaW50bFRlbElucHV0VXRpbHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gICBjb25zdCBjdXJyZW50VGV4dCA9IHRoaXMuX2luc3RhbmNlPy5nZXROdW1iZXIoaW50bFRlbElucHV0VXRpbHMubnVtYmVyRm9ybWF0LklOVEVSTkFUSU9OQUwpXG4gICAgLy8gICBjb25zb2xlLmxvZygnY3VycmVudFRleHQnLCBjdXJyZW50VGV4dCwgdGhpcy5faW5zdGFuY2U/LmdldFNlbGVjdGVkQ291bnRyeURhdGEoKSlcbiAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuX2luc3RhbmNlPy5nZXRWYWxpZGF0aW9uRXJyb3IoKSlcbiAgICAvLyAgIGlmICh0eXBlb2YgY3VycmVudFRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gICAgIHRoaXMuX2luc3RhbmNlPy5zZXROdW1iZXIoY3VycmVudFRleHQpXG4gICAgLy8gICB9XG4gICAgLy8gfVxuXG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmFsdWUoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2coJyVjdXBkYXRlVmFsdWUgU1RBUlQnLCAnY29sb3I6Y3lhbicsIHR5cGVvZiBpbnRsVGVsSW5wdXRVdGlscyAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgaWYgKHR5cGVvZiBnbG9iYWxJbnRsVGVsSW5wdXRVdGlscygpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgY3VycmVudFRleHQgPSB0aGlzLl9pbnN0YW5jZT8uZ2V0TnVtYmVyKGludGxUZWxJbnB1dFV0aWxzLm51bWJlckZvcm1hdC5FMTY0KVxuICAgICAgLy8gY29uc29sZS5sb2coJ2N1cnJlbnRUZXh0JywgY3VycmVudFRleHQsIHRoaXMuX2luc3RhbmNlPy5nZXRTZWxlY3RlZENvdW50cnlEYXRhKCkpXG4gICAgICAvLyBjb25zb2xlLmxvZygnZnVsbE51bWJlcicsICh0aGlzLl9pbnN0YW5jZSBhcyBhbnkpLl9nZXRGdWxsTnVtYmVyKCkpXG4gICAgICAvLyBjb25zb2xlLmxvZygnRTE2NCcsIHRoaXMuX2luc3RhbmNlPy5nZXROdW1iZXIoaW50bFRlbElucHV0VXRpbHMubnVtYmVyRm9ybWF0LkUxNjQpKVxuICAgICAgLy8gY29uc29sZS5sb2coJ0lOVEVSTkFUSU9OQUwnLCB0aGlzLl9pbnN0YW5jZT8uZ2V0TnVtYmVyKGludGxUZWxJbnB1dFV0aWxzLm51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMKSlcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdOQVRJT05BTCcsIHRoaXMuX2luc3RhbmNlPy5nZXROdW1iZXIoaW50bFRlbElucHV0VXRpbHMubnVtYmVyRm9ybWF0Lk5BVElPTkFMKSlcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdSRkMzOTY2JywgdGhpcy5faW5zdGFuY2U/LmdldE51bWJlcihpbnRsVGVsSW5wdXRVdGlscy5udW1iZXJGb3JtYXQuUkZDMzk2NikpXG4gICAgICAvLyBjb25zb2xlLmxvZygnZ2V0VmFsaWRhdGlvbkVycm9yJywgdGhpcy5faW5zdGFuY2U/LmdldFZhbGlkYXRpb25FcnJvcigpKVxuICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2U/LnNldE51bWJlcihjdXJyZW50VGV4dClcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gY29uc29sZS5sb2coJyVjdXBkYXRlVmFsdWUgRU5EJywgJ2NvbG9yOmN5YW4nKVxuICB9XG5cbiAgcHVibGljIGdldEZ1bGxOdW1iZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBnbG9iYWxJbnRsVGVsSW5wdXRVdGlscygpICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLl9pbnN0YW5jZSkge1xuICAgICAgLy8gcmV0dXJuICh0aGlzLl9pbnN0YW5jZSBhcyBhbnkpLl9nZXRGdWxsTnVtYmVyKClcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZS5nZXROdW1iZXIoaW50bFRlbElucHV0VXRpbHMubnVtYmVyRm9ybWF0LkUxNjQpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlXG4gIH1cblxuICBwcml2YXRlIF9pbml0RHJvcGRvd25MaXN0ZW5lcigpIHtcbiAgICBjb25zdCBkb2MgPSB0aGlzLl9kb2N1bWVudFxuICAgIGlmICghZG9jKSB7XG4gICAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBvcGVuRHJvcGRvd24kID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ29wZW46Y291bnRyeWRyb3Bkb3duJylcbiAgICAgIGNvbnN0IGNsb3NlRHJvcGRvd24kID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Nsb3NlOmNvdW50cnlkcm9wZG93bicpXG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX2luc3RhbmNlIGFzIGFueVxuICAgICAgb3BlbkRyb3Bkb3duJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByZXNzRG93biQgPSBtZXJnZShcbiAgICAgICAgICAgIGZyb21FdmVudChkb2MsICd0b3VjaHN0YXJ0JywgeyBjYXB0dXJlOiB0cnVlIH0pLFxuICAgICAgICAgICAgZnJvbUV2ZW50KGRvYywgJ21vdXNlZG93bicsIHsgY2FwdHVyZTogdHJ1ZSB9KVxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgICAgIHRhcCgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UuY291bnRyeUxpc3QuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fCBpbnN0YW5jZS5zZWxlY3RlZEZsYWcuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGluc3RhbmNlLl9jbG9zZURyb3Bkb3duKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3QgZmxhZ0J0bkNsaWNrJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50PihpbnN0YW5jZS5zZWxlY3RlZEZsYWcsICdjbGljaycpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgIGluc3RhbmNlLl9jbG9zZURyb3Bkb3duKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgcmV0dXJuIG1lcmdlKHByZXNzRG93biQsIGZsYWdCdG5DbGljayQpLnBpcGUodGFrZVVudGlsKGNsb3NlRHJvcGRvd24kKSlcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICAgKS5zdWJzY3JpYmUoKVxuXG4gICAgICBjb25zdCBmbGFnc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gKHRoaXMuX2luc3RhbmNlIGFzIGFueSk/LnNlbGVjdGVkRmxhZ1xuICAgICAgaWYgKGZsYWdzQ29udGFpbmVyKSB7XG4gICAgICAgIGZyb21FdmVudChmbGFnc0NvbnRhaW5lciwgJ2tleWRvd24nLCB7IGNhcHR1cmU6IHRydWUgfSkucGlwZShcbiAgICAgICAgICB0YXAoKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX25nQ29udHJvbFxuICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBjb250cm9sLmRpc2FibGVkID8/IGZhbHNlXG4gICAgICAgICAgICAgIGlmIChkaXNhYmxlZCAmJiBbJ0Fycm93VXAnLCAnVXAnLCAnQXJyb3dEb3duJywgJ0Rvd24nLCAnICcsICdFbnRlciddLmluZGV4T2YoZS5rZXkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgZm9ybSBmcm9tIGJlaW5nIHN1Ym1pdHRlZCBpZiBcIkVOVEVSXCIgd2FzIHByZXNzZWRcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGV2ZW50IGZyb20gYmVpbmcgaGFuZGxlZCBhZ2FpbiBieSBkb2N1bWVudFxuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICApLnN1YnNjcmliZSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBpc0Ryb3Bkb3duVmlzaWJsZSgpIHtcbiAgICBpZiAoIXRoaXMuX2luc3RhbmNlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX2luc3RhbmNlIGFzIGFueVxuICAgIHJldHVybiAhaW5zdGFuY2UuY291bnRyeUxpc3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdpdGlfX2hpZGUnKVxuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGlucHV0LiAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgfVxuXG4gIC8qKiBVbmZvY3VzZXMgdGhlIGlucHV0LiAqL1xuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpXG4gIH1cblxuICBwdWJsaWMgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICB9XG59XG4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90ZWwtaW5wdXQvdGVsLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBdUIsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTZCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckksT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFHMUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7OztBQU92RCxNQUFNLE9BQU8sd0JBQXdCO0lBUW5DLElBQ0ksS0FBSyxDQUFDLENBQTRCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUs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UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFnQixDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELHlCQUF5QjtJQUNsQixLQUFLO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELDJCQUEyQjtJQUNwQixJQUFJO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtJQUN2QyxDQUFDOztxSEF0T1Usd0JBQXdCLG9HQTRCYixRQUFRO3lHQTVCbkIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBNkJJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLElBQUk7NENBdkJPLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsV0FBVztnQkFHcEIsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBEaXJlY3RpdmUsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgbGFzdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBc3NldExvYWRlclNlcnZpY2UsIExvYWRlZEFzc2V0UmVmIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3NlcnZpY2VzJ1xuaW1wb3J0IHsgZ2V0QXR0cmlidXRlLCBoYXNBdHRyaWJ1dGUsIG5vdE51bGxPclVuZGVmaW5lZCwgdG9nZ2xlQXR0cmlidXRlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEludGxUZWxJbnB1dEZuLCBpbnRsVGVsSW5wdXRVdGlscyB9IGZyb20gJy4vaW50bC10ZWwtaW5wdXQnXG5pbXBvcnQgdHlwZSB7IEludGxUZWxJbnB1dCB9IGZyb20gJy4vaW50bC10ZWwtaW5wdXQnXG5pbXBvcnQgeyBURUxfSU5QVVRfU1RZTEVTLCBURUxfSU5QVVRfU1RZTEVTSEVFVF9QQVRILCBURUxfSU5QVVRfVVRJTFNfUEFUSCB9IGZyb20gJy4vdGVsLWlucHV0LWNvbnN0YW50cydcbmltcG9ydCB7IGdsb2JhbEludGxUZWxJbnB1dFV0aWxzIH0gZnJvbSAnLi91dGlscy9pbmRleCdcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbc2VhbVRlbElucHV0XScsXG4gIGV4cG9ydEFzOiAnc2VhbVRlbElucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVRlbElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIHByaXZhdGUgX2luc3RhbmNlOiBJbnRsVGVsSW5wdXQuUGx1Z2luIHwgdW5kZWZpbmVkXG4gIHByaXZhdGUgX2xvYWRlZEFzc2V0UmVmczogTG9hZGVkQXNzZXRSZWY8SFRNTExpbmtFbGVtZW50IHwgSFRNTFN0eWxlRWxlbWVudD5bXSA9IFtdXG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnR5cGUnKSBfYXR0clR5cGUgPSAndGVsJ1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2XG4gICAgaWYgKHRoaXMuX2luc3RhbmNlKSB7XG4gICAgICB0aGlzLl9pbnN0YW5jZS5zZXROdW1iZXIobm90TnVsbE9yVW5kZWZpbmVkKHYpID8gdiA6ICcnKVxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpXG4gICAgfVxuICB9XG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5faW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZT8uZ2V0TnVtYmVyKClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlXG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Fzc2V0TG9hZGVyOiBBc3NldExvYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ/OiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IF9uZ0NvbnRyb2w/OiBOZ0NvbnRyb2wsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fbmdDb250cm9sID8gdGhpcy5fbmdDb250cm9sLnZhbHVlIDogdGhpcy52YWx1ZSA/PyAnJ1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2luc3RhbmNlLWxvYWRpbmcnLCAnJylcbiAgICBtZXJnZShcbiAgICAgIHRoaXMuX2Fzc2V0TG9hZGVyLmxvYWRTdHlsZVNoZWV0KFRFTF9JTlBVVF9TVFlMRVNIRUVUX1BBVEgpLFxuICAgICAgdGhpcy5fYXNzZXRMb2FkZXIubG9hZFN0eWxlKFRFTF9JTlBVVF9TVFlMRVMpXG4gICAgKS5waXBlKFxuICAgICAgdGFwKHYgPT4gdGhpcy5fbG9hZGVkQXNzZXRSZWZzLnB1c2godikpLFxuICAgICAgbGFzdCgpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBJbnRsVGVsSW5wdXRGbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICB1dGlsc1NjcmlwdDogVEVMX0lOUFVUX1VUSUxTX1BBVEgsXG4gICAgICAgICAgcHJlZmVycmVkQ291bnRyaWVzOiBbICdVUycgXSxcbiAgICAgICAgICBuYXRpb25hbE1vZGU6IGZhbHNlLFxuICAgICAgICAgIGZvcm1hdE9uRGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICBhdXRvUGxhY2Vob2xkZXI6ICdvZmYnLFxuICAgICAgICAgIHNlcGFyYXRlRGlhbENvZGU6IGZhbHNlLFxuICAgICAgICAgIGF1dG9IaWRlRGlhbENvZGU6IGZhbHNlLFxuICAgICAgICAgIC8vIFRPRE86IEFkZCBpbml0aWFsQ291bnRyeSBzdXBwb3J0LlxuICAgICAgICAgIC8vIGluaXRpYWxDb3VudHJ5OiAnYXV0bydcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLl90cnlVcGRhdGVEcm9wZG93bkF0dHJpYnV0ZXMoKVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZS5wcm9taXNlLnRoZW4odiA9PiB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaW5zdGFuY2UtbG9hZGluZycpXG4gICAgICAgICAgcmV0dXJuIHZcbiAgICAgICAgfSlcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHRoaXMuX2luaXREcm9wZG93bkxpc3RlbmVyKCkpLFxuICAgICAgdGFwKCgpID0+IHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZSksXG4gICAgICB0YXAodGhpcy5fZm9ybWF0SW50bFRlbElucHV0KSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZShcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleXVwJyksXG4gICAgICAgIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjaGFuZ2UnKVxuICAgICAgKSksXG4gICAgICB0YXAodGhpcy5fZm9ybWF0SW50bFRlbElucHV0KSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2luc3RhbmNlPy5kZXN0cm95KClcbiAgICBmb3IgKGNvbnN0IHJlZiBvZiB0aGlzLl9sb2FkZWRBc3NldFJlZnMpIHtcbiAgICAgIHJlZi5kZXN0cm95KClcbiAgICB9XG5cbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQodW5kZWZpbmVkKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuX3RyeVVwZGF0ZURyb3Bkb3duQXR0cmlidXRlcygpXG4gIH1cblxuICBwcml2YXRlIF90cnlVcGRhdGVEcm9wZG93bkF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuX25nQ29udHJvbFxuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBjb25zdCBmbGFnc0NvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gKHRoaXMuX2luc3RhbmNlIGFzIGFueSk/LnNlbGVjdGVkRmxhZ1xuICAgICAgaWYgKGZsYWdzQ29udGFpbmVyKSB7XG4gICAgICAgIHRvZ2dsZUF0dHJpYnV0ZShmbGFnc0NvbnRhaW5lciwgJ2FyaWEtZGlzYWJsZWQnLCBjb250cm9sLmRpc2FibGVkID8/IGZhbHNlKVxuXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gY29udHJvbC5kaXNhYmxlZCA/PyBmYWxzZVxuICAgICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgaWYgKGdldEF0dHJpYnV0ZShmbGFnc0NvbnRhaW5lciwgJ3RhYmluZGV4JykgIT09ICcwJykge1xuICAgICAgICAgICAgZmxhZ3NDb250YWluZXIuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJylcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGhhc0F0dHJpYnV0ZShmbGFnc0NvbnRhaW5lciwgJ3RhYmluZGV4JykpIHtcbiAgICAgICAgICAgIGZsYWdzQ29udGFpbmVyLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdEludGxUZWxJbnB1dCA9ICgpID0+IHtcbiAgICAvLyBpZiAodHlwZW9mIGludGxUZWxJbnB1dFV0aWxzICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vICAgY29uc3QgY3VycmVudFRleHQgPSB0aGlzLl9pbnN0YW5jZT8uZ2V0TnVtYmVyKGludGxUZWxJbnB1dFV0aWxzLm51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMKVxuICAgIC8vICAgY29uc29sZS5sb2coJ2N1cnJlbnRUZXh0JywgY3VycmVudFRleHQsIHRoaXMuX2luc3RhbmNlPy5nZXRTZWxlY3RlZENvdW50cnlEYXRhKCkpXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLl9pbnN0YW5jZT8uZ2V0VmFsaWRhdGlvbkVycm9yKCkpXG4gICAgLy8gICBpZiAodHlwZW9mIGN1cnJlbnRUZXh0ID09PSAnc3RyaW5nJykge1xuICAgIC8vICAgICB0aGlzLl9pbnN0YW5jZT8uc2V0TnVtYmVyKGN1cnJlbnRUZXh0KVxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIHRoaXMudXBkYXRlVmFsdWUoKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlKCk6IHZvaWQge1xuICAgIC8vIGNvbnNvbGUubG9nKCclY3VwZGF0ZVZhbHVlIFNUQVJUJywgJ2NvbG9yOmN5YW4nLCB0eXBlb2YgaW50bFRlbElucHV0VXRpbHMgIT09ICd1bmRlZmluZWQnKVxuICAgIGlmICh0eXBlb2YgZ2xvYmFsSW50bFRlbElucHV0VXRpbHMoKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRUZXh0ID0gdGhpcy5faW5zdGFuY2U/LmdldE51bWJlcihpbnRsVGVsSW5wdXRVdGlscy5udW1iZXJGb3JtYXQuRTE2NClcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdjdXJyZW50VGV4dCcsIGN1cnJlbnRUZXh0LCB0aGlzLl9pbnN0YW5jZT8uZ2V0U2VsZWN0ZWRDb3VudHJ5RGF0YSgpKVxuICAgICAgLy8gY29uc29sZS5sb2coJ2Z1bGxOdW1iZXInLCAodGhpcy5faW5zdGFuY2UgYXMgYW55KS5fZ2V0RnVsbE51bWJlcigpKVxuICAgICAgLy8gY29uc29sZS5sb2coJ0UxNjQnLCB0aGlzLl9pbnN0YW5jZT8uZ2V0TnVtYmVyKGludGxUZWxJbnB1dFV0aWxzLm51bWJlckZvcm1hdC5FMTY0KSlcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdJTlRFUk5BVElPTkFMJywgdGhpcy5faW5zdGFuY2U/LmdldE51bWJlcihpbnRsVGVsSW5wdXRVdGlscy5udW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTCkpXG4gICAgICAvLyBjb25zb2xlLmxvZygnTkFUSU9OQUwnLCB0aGlzLl9pbnN0YW5jZT8uZ2V0TnVtYmVyKGludGxUZWxJbnB1dFV0aWxzLm51bWJlckZvcm1hdC5OQVRJT05BTCkpXG4gICAgICAvLyBjb25zb2xlLmxvZygnUkZDMzk2NicsIHRoaXMuX2luc3RhbmNlPy5nZXROdW1iZXIoaW50bFRlbElucHV0VXRpbHMubnVtYmVyRm9ybWF0LlJGQzM5NjYpKVxuICAgICAgLy8gY29uc29sZS5sb2coJ2dldFZhbGlkYXRpb25FcnJvcicsIHRoaXMuX2luc3RhbmNlPy5nZXRWYWxpZGF0aW9uRXJyb3IoKSlcbiAgICAgIGlmICh0eXBlb2YgY3VycmVudFRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlPy5zZXROdW1iZXIoY3VycmVudFRleHQpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIGNvbnNvbGUubG9nKCclY3VwZGF0ZVZhbHVlIEVORCcsICdjb2xvcjpjeWFuJylcbiAgfVxuXG4gIHB1YmxpYyBnZXRGdWxsTnVtYmVyKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsSW50bFRlbElucHV0VXRpbHMoKSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5faW5zdGFuY2UpIHtcbiAgICAgIC8vIHJldHVybiAodGhpcy5faW5zdGFuY2UgYXMgYW55KS5fZ2V0RnVsbE51bWJlcigpXG4gICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UuZ2V0TnVtYmVyKGludGxUZWxJbnB1dFV0aWxzLm51bWJlckZvcm1hdC5FMTY0KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52YWx1ZVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyb3Bkb3duTGlzdGVuZXIoKSB7XG4gICAgY29uc3QgZG9jID0gdGhpcy5fZG9jdW1lbnRcbiAgICBpZiAoIWRvYykge1xuICAgICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3Qgb3BlbkRyb3Bkb3duJCA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdvcGVuOmNvdW50cnlkcm9wZG93bicpXG4gICAgICBjb25zdCBjbG9zZURyb3Bkb3duJCA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbG9zZTpjb3VudHJ5ZHJvcGRvd24nKVxuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9pbnN0YW5jZSBhcyBhbnlcbiAgICAgIG9wZW5Ecm9wZG93biQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBwcmVzc0Rvd24kID0gbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoZG9jLCAndG91Y2hzdGFydCcsIHsgY2FwdHVyZTogdHJ1ZSB9KSxcbiAgICAgICAgICAgIGZyb21FdmVudChkb2MsICdtb3VzZWRvd24nLCB7IGNhcHR1cmU6IHRydWUgfSlcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBhdWRpdFRpbWUoMCksXG4gICAgICAgICAgICB0YXAoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLmNvdW50cnlMaXN0LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHwgaW5zdGFuY2Uuc2VsZWN0ZWRGbGFnLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbnN0YW5jZS5fY2xvc2VEcm9wZG93bigpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcblxuICAgICAgICAgIGNvbnN0IGZsYWdCdG5DbGljayQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4oaW5zdGFuY2Uuc2VsZWN0ZWRGbGFnLCAnY2xpY2snKS5waXBlKFxuICAgICAgICAgICAgdGFwKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNEcm9wZG93blZpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICBpbnN0YW5jZS5fY2xvc2VEcm9wZG93bigpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcblxuICAgICAgICAgIHJldHVybiBtZXJnZShwcmVzc0Rvd24kLCBmbGFnQnRuQ2xpY2skKS5waXBlKHRha2VVbnRpbChjbG9zZURyb3Bkb3duJCkpXG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSlcbiAgICAgICkuc3Vic2NyaWJlKClcblxuICAgICAgY29uc3QgZmxhZ3NDb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9ICh0aGlzLl9pbnN0YW5jZSBhcyBhbnkpPy5zZWxlY3RlZEZsYWdcbiAgICAgIGlmIChmbGFnc0NvbnRhaW5lcikge1xuICAgICAgICBmcm9tRXZlbnQoZmxhZ3NDb250YWluZXIsICdrZXlkb3duJywgeyBjYXB0dXJlOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgICAgdGFwKChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9uZ0NvbnRyb2xcbiAgICAgICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gY29udHJvbC5kaXNhYmxlZCA/PyBmYWxzZVxuICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQgJiYgWydBcnJvd1VwJywgJ1VwJywgJ0Fycm93RG93bicsICdEb3duJywgJyAnLCAnRW50ZXInXS5pbmRleE9mKGUua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGZvcm0gZnJvbSBiZWluZyBzdWJtaXR0ZWQgaWYgXCJFTlRFUlwiIHdhcyBwcmVzc2VkXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgLy8gcHJldmVudCBldmVudCBmcm9tIGJlaW5nIGhhbmRsZWQgYWdhaW4gYnkgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgaXNEcm9wZG93blZpc2libGUoKSB7XG4gICAgaWYgKCF0aGlzLl9pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9pbnN0YW5jZSBhcyBhbnlcbiAgICByZXR1cm4gIWluc3RhbmNlLmNvdW50cnlMaXN0LmNsYXNzTGlzdC5jb250YWlucygnaXRpX19oaWRlJylcbiAgfVxuXG4gIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICAvKiogVW5mb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKVxuICB9XG5cbiAgcHVibGljIGdldEhvc3RFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgfVxufVxuIl19