ng-mocks 11.2.7 → 11.4.0

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 (126) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +41 -3174
  3. package/dist/lib/common/core.helpers.d.ts +2 -2
  4. package/dist/lib/common/core.helpers.js +55 -27
  5. package/dist/lib/common/{core.reflect.body.d.ts → core.reflect.body-catch.d.ts} +0 -0
  6. package/dist/lib/common/core.reflect.body-catch.js +12 -0
  7. package/dist/lib/common/core.reflect.body-global.d.ts +3 -0
  8. package/dist/lib/common/core.reflect.body-global.js +11 -0
  9. package/dist/lib/common/core.reflect.directive-resolve.js +6 -4
  10. package/dist/lib/common/core.reflect.jit.d.ts +3 -0
  11. package/dist/lib/common/core.reflect.jit.js +11 -0
  12. package/dist/lib/common/core.reflect.module-resolve.js +6 -4
  13. package/dist/lib/common/core.reflect.pipe-resolve.js +6 -4
  14. package/dist/lib/common/core.tokens.d.ts +2 -2
  15. package/dist/lib/common/core.tokens.js +1 -1
  16. package/dist/lib/common/decorate.inputs.js +2 -2
  17. package/dist/lib/common/decorate.mock.d.ts +3 -0
  18. package/dist/lib/common/decorate.mock.js +13 -0
  19. package/dist/lib/common/decorate.outputs.js +2 -2
  20. package/dist/lib/common/decorate.queries.js +2 -2
  21. package/dist/lib/common/func.is-mock-control-value-accessor.js +2 -3
  22. package/dist/lib/common/func.is-mock-validator.js +2 -3
  23. package/dist/lib/common/func.is-ng-def.d.ts +7 -1
  24. package/dist/lib/common/func.is-ng-def.js +5 -1
  25. package/dist/lib/common/func.is-ng-injection-token.js +2 -3
  26. package/dist/lib/common/func.is-ng-module-def-with-providers.js +2 -3
  27. package/dist/lib/common/func.is-ng-type.d.ts +2 -2
  28. package/dist/lib/common/func.is-ng-type.js +6 -5
  29. package/dist/lib/common/mock-control-value-accessor.d.ts +3 -3
  30. package/dist/lib/common/mock-control-value-accessor.js +1 -1
  31. package/dist/lib/common/mock.js +31 -26
  32. package/dist/lib/common/ng-mocks-universe.d.ts +5 -0
  33. package/dist/lib/common/ng-mocks-universe.js +65 -7
  34. package/dist/lib/mock/clone-providers.js +23 -6
  35. package/dist/lib/mock/decorate-declaration.js +6 -6
  36. package/dist/lib/mock/to-existing-provider.d.ts +1 -1
  37. package/dist/lib/mock/to-factory-provider.d.ts +1 -1
  38. package/dist/lib/mock-builder/mock-builder-stash.js +3 -1
  39. package/dist/lib/mock-builder/mock-builder.js +2 -2
  40. package/dist/lib/mock-builder/mock-builder.performance.js +2 -2
  41. package/dist/lib/mock-builder/mock-builder.promise.js +4 -1
  42. package/dist/lib/mock-builder/promise/create-ng-mocks-overrides-token.js +2 -2
  43. package/dist/lib/mock-builder/promise/create-ng-mocks-touches-token.js +2 -2
  44. package/dist/lib/mock-builder/promise/get-override-meta.js +4 -4
  45. package/dist/lib/mock-builder/promise/get-root-provider-parameters.js +3 -3
  46. package/dist/lib/mock-builder/promise/init-module.js +2 -2
  47. package/dist/lib/mock-builder/promise/init-ng-modules.js +2 -2
  48. package/dist/lib/mock-component/mock-component.d.ts +1 -1
  49. package/dist/lib/mock-component/mock-component.js +9 -17
  50. package/dist/lib/mock-directive/mock-directive.d.ts +1 -1
  51. package/dist/lib/mock-directive/mock-directive.js +10 -23
  52. package/dist/lib/mock-helper/func.global-prepare.d.ts +2 -0
  53. package/dist/lib/mock-helper/func.global-prepare.js +9 -0
  54. package/dist/lib/mock-helper/mock-helper.auto-spy.js +2 -2
  55. package/dist/lib/mock-helper/mock-helper.d.ts +38 -0
  56. package/dist/lib/mock-helper/mock-helper.global-exclude.d.ts +4 -0
  57. package/dist/lib/mock-helper/mock-helper.global-exclude.js +9 -0
  58. package/dist/lib/mock-helper/mock-helper.global-keep.d.ts +4 -0
  59. package/dist/lib/mock-helper/mock-helper.global-keep.js +9 -0
  60. package/dist/lib/mock-helper/mock-helper.global-mock.d.ts +4 -0
  61. package/dist/lib/mock-helper/mock-helper.global-mock.js +9 -0
  62. package/dist/lib/mock-helper/mock-helper.global-replace.d.ts +3 -0
  63. package/dist/lib/mock-helper/mock-helper.global-replace.js +26 -0
  64. package/dist/lib/mock-helper/mock-helper.global-wipe.d.ts +4 -0
  65. package/dist/lib/mock-helper/mock-helper.global-wipe.js +11 -0
  66. package/dist/lib/mock-helper/mock-helper.guts.js +100 -37
  67. package/dist/lib/mock-helper/mock-helper.js +15 -1
  68. package/dist/lib/mock-helper/mock-helper.reset.js +2 -1
  69. package/dist/lib/mock-helper/mock-helper.stub-member.d.ts +2 -0
  70. package/dist/lib/mock-helper/mock-helper.stub-member.js +25 -0
  71. package/dist/lib/mock-helper/mock-helper.stub.js +2 -1
  72. package/dist/lib/mock-helper/mock-helper.throw-on-console.d.ts +2 -0
  73. package/dist/lib/mock-helper/mock-helper.throw-on-console.js +25 -0
  74. package/dist/lib/mock-instance/mock-instance.js +11 -7
  75. package/dist/lib/mock-module/mock-module.d.ts +2 -2
  76. package/dist/lib/mock-module/mock-module.js +7 -9
  77. package/dist/lib/mock-module/mock-ng-def.js +29 -12
  78. package/dist/lib/mock-pipe/mock-pipe.d.ts +2 -2
  79. package/dist/lib/mock-pipe/mock-pipe.js +18 -44
  80. package/dist/lib/mock-provider/mock-provider.d.ts +3 -3
  81. package/dist/lib/mock-provider/mock-provider.js +1 -1
  82. package/dist/lib/mock-render/func.generate-template.d.ts +2 -0
  83. package/dist/lib/mock-render/func.generate-template.js +87 -0
  84. package/dist/lib/mock-render/func.install-prop-reader.d.ts +2 -0
  85. package/dist/lib/mock-render/func.install-prop-reader.js +80 -0
  86. package/dist/lib/mock-render/mock-render.d.ts +16 -2
  87. package/dist/lib/mock-render/mock-render.js +111 -132
  88. package/dist/lib/mock-service/helper.resolve-provider.js +9 -12
  89. package/dist/lib/mock-service/helper.use-factory.js +3 -3
  90. package/dist/lib/mock-service/mock-provider.js +2 -1
  91. package/dist/lib/mock-service/mock-service.d.ts +4 -4
  92. package/dist/lib/mock-service/mock-service.js +1 -1
  93. package/examples/MockBuilder/test.deep.spec.ts +1 -1
  94. package/examples/MockBuilder/test.ng-mocks.spec.ts +1 -1
  95. package/examples/MockForms/test.spec.ts +2 -2
  96. package/examples/MockInstance/test.spec.ts +1 -1
  97. package/examples/MockObservable/test.spec.ts +7 -4
  98. package/examples/MockPipe/test.spec.ts +1 -1
  99. package/examples/MockProvider/test.spec.ts +5 -6
  100. package/examples/MockReactiveForms/test.spec.ts +2 -2
  101. package/examples/MockViewChild/test.spec.ts +3 -3
  102. package/examples/TestAttributeDirective/test.spec.ts +1 -1
  103. package/examples/TestHttpInterceptor/test.spec.ts +10 -4
  104. package/examples/TestHttpRequest/test.spec.ts +6 -4
  105. package/examples/TestLifecycleHooks/test.spec.ts +6 -2
  106. package/examples/TestLifecycleHooks/test.string.spec.ts +3 -2
  107. package/examples/TestLifecycleHooks/test.type-without-params.spec.ts +3 -2
  108. package/examples/TestMultiToken/test.spec.ts +3 -3
  109. package/examples/TestProvider/test.spec.ts +2 -3
  110. package/examples/TestProviderWithDependencies/test.spec.ts +7 -3
  111. package/examples/TestProviderWithUseClass/test.spec.ts +9 -3
  112. package/examples/TestProviderWithUseExisting/test.spec.ts +9 -3
  113. package/examples/TestProviderWithUseFactory/test.spec.ts +2 -3
  114. package/examples/TestProviderWithUseValue/test.spec.ts +4 -4
  115. package/examples/TestRoute/test.spec.ts +7 -7
  116. package/examples/TestRoutingGuard/test.spec.ts +8 -6
  117. package/examples/TestRoutingResolver/test.spec.ts +6 -4
  118. package/examples/TestToken/test.spec.ts +7 -6
  119. package/examples/main/test.spec.ts +2 -2
  120. package/examples/ngMocksFaster/test.spec.ts +2 -2
  121. package/package.json +2 -3
  122. package/dist/lib/common/core.reflect.body.js +0 -12
  123. package/dist/lib/common/core.reflect.d.ts +0 -6
  124. package/dist/lib/common/core.reflect.js +0 -10
  125. package/dist/lib/common/mock-of.d.ts +0 -3
  126. package/dist/lib/common/mock-of.js +0 -23
@@ -26,11 +26,11 @@ export declare class LegacyControlValueAccessor extends Mock {
26
26
  */
27
27
  export interface MockControlValueAccessor {
28
28
  /**
29
- * @see https://github.com/ike18t/ng-mocks#how-to-create-a-mock-form-control
29
+ * @see https://github.com/ike18t/ng-mocks#how-to-mock-form-controls
30
30
  */
31
31
  __simulateChange(value: any): void;
32
32
  /**
33
- * @see https://github.com/ike18t/ng-mocks#how-to-create-a-mock-form-control
33
+ * @see https://github.com/ike18t/ng-mocks#how-to-mock-form-controls
34
34
  */
35
35
  __simulateTouch(): void;
36
36
  }
@@ -39,7 +39,7 @@ export interface MockControlValueAccessor {
39
39
  */
40
40
  export interface MockValidator {
41
41
  /**
42
- * @see https://github.com/ike18t/ng-mocks#how-to-create-a-mock-form-control
42
+ * @see https://github.com/ike18t/ng-mocks#how-to-mock-form-controls
43
43
  */
44
44
  __simulateValidatorChange(): void;
45
45
  }
@@ -49,4 +49,4 @@ var LegacyControlValueAccessor = /** @class */ (function (_super) {
49
49
  return LegacyControlValueAccessor;
50
50
  }(mock_1.Mock));
51
51
  exports.LegacyControlValueAccessor = LegacyControlValueAccessor;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QywrQkFBOEI7QUFFOUI7Ozs7R0FJRztBQUNIO0lBQWdELDhDQUFJO0lBQXBEOztJQTRCQSxDQUFDO0lBdEJDLHVCQUF1QjtJQUNoQixxREFBZ0IsR0FBdkI7UUFDRSxpQkFBaUI7SUFDbkIsQ0FBQztJQUVELHVCQUF1QjtJQUN2Qjs7O09BR0c7SUFDSSxvREFBZSxHQUF0QjtRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCOzs7T0FHRztJQUNJLDhEQUF5QixHQUFoQztRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBQ0gsaUNBQUM7QUFBRCxDQUFDLEFBNUJELENBQWdELFdBQUksR0E0Qm5EO0FBNUJZLGdFQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIHZhcmlhYmxlLW5hbWUgYmFuLXRzLWlnbm9yZVxuXG5pbXBvcnQgeyBNb2NrIH0gZnJvbSAnLi9tb2NrJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3Igb3IgaXNNb2NrVmFsaWRhdG9yIGluc3RlYWRcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNpc21vY2tjb250cm9sdmFsdWVhY2Nlc3NvclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2lzbW9ja3ZhbGlkYXRvclxuICovXG5leHBvcnQgY2xhc3MgTGVnYWN5Q29udHJvbFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBNb2NrIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBpc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvciBpbnN0ZWFkXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNpc21vY2tjb250cm9sdmFsdWVhY2Nlc3NvclxuICAgKi9cbiAgcHVibGljIF9fc2ltdWxhdGVDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQ7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBfX3NpbXVsYXRlQ2hhbmdlKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGlzTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yIGluc3RlYWRcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2lzbW9ja2NvbnRyb2x2YWx1ZWFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgX19zaW11bGF0ZVRvdWNoKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGlzTW9ja1ZhbGlkYXRvciBpbnN0ZWFkXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNpc21vY2t2YWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBfX3NpbXVsYXRlVmFsaWRhdG9yQ2hhbmdlKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pa2UxOHQvbmctbW9ja3MjaXNtb2NrY29udHJvbHZhbHVlYWNjZXNzb3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKipcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2hvdy10by1jcmVhdGUtYS1tb2NrLWZvcm0tY29udHJvbFxuICAgKi9cbiAgX19zaW11bGF0ZUNoYW5nZSh2YWx1ZTogYW55KTogdm9pZDtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2hvdy10by1jcmVhdGUtYS1tb2NrLWZvcm0tY29udHJvbFxuICAgKi9cbiAgX19zaW11bGF0ZVRvdWNoKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2lzbW9ja3ZhbGlkYXRvclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tWYWxpZGF0b3Ige1xuICAvKipcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2hvdy10by1jcmVhdGUtYS1tb2NrLWZvcm0tY29udHJvbFxuICAgKi9cbiAgX19zaW11bGF0ZVZhbGlkYXRvckNoYW5nZSgpOiB2b2lkO1xufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QywrQkFBOEI7QUFFOUI7Ozs7R0FJRztBQUNIO0lBQWdELDhDQUFJO0lBQXBEOztJQTRCQSxDQUFDO0lBdEJDLHVCQUF1QjtJQUNoQixxREFBZ0IsR0FBdkI7UUFDRSxpQkFBaUI7SUFDbkIsQ0FBQztJQUVELHVCQUF1QjtJQUN2Qjs7O09BR0c7SUFDSSxvREFBZSxHQUF0QjtRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCOzs7T0FHRztJQUNJLDhEQUF5QixHQUFoQztRQUNFLGlCQUFpQjtJQUNuQixDQUFDO0lBQ0gsaUNBQUM7QUFBRCxDQUFDLEFBNUJELENBQWdELFdBQUksR0E0Qm5EO0FBNUJZLGdFQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIHZhcmlhYmxlLW5hbWUgYmFuLXRzLWlnbm9yZVxuXG5pbXBvcnQgeyBNb2NrIH0gZnJvbSAnLi9tb2NrJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgaXNNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3Igb3IgaXNNb2NrVmFsaWRhdG9yIGluc3RlYWRcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNpc21vY2tjb250cm9sdmFsdWVhY2Nlc3NvclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2lzbW9ja3ZhbGlkYXRvclxuICovXG5leHBvcnQgY2xhc3MgTGVnYWN5Q29udHJvbFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBNb2NrIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBpc01vY2tDb250cm9sVmFsdWVBY2Nlc3NvciBpbnN0ZWFkXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNpc21vY2tjb250cm9sdmFsdWVhY2Nlc3NvclxuICAgKi9cbiAgcHVibGljIF9fc2ltdWxhdGVDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQ7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gIHB1YmxpYyBfX3NpbXVsYXRlQ2hhbmdlKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGlzTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yIGluc3RlYWRcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2lzbW9ja2NvbnRyb2x2YWx1ZWFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgX19zaW11bGF0ZVRvdWNoKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGlzTW9ja1ZhbGlkYXRvciBpbnN0ZWFkXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNpc21vY2t2YWxpZGF0b3JcbiAgICovXG4gIHB1YmxpYyBfX3NpbXVsYXRlVmFsaWRhdG9yQ2hhbmdlKCkge1xuICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gIH1cbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pa2UxOHQvbmctbW9ja3MjaXNtb2NrY29udHJvbHZhbHVlYWNjZXNzb3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKipcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaWtlMTh0L25nLW1vY2tzI2hvdy10by1tb2NrLWZvcm0tY29udHJvbHNcbiAgICovXG4gIF9fc2ltdWxhdGVDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNob3ctdG8tbW9jay1mb3JtLWNvbnRyb2xzXG4gICAqL1xuICBfX3NpbXVsYXRlVG91Y2goKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pa2UxOHQvbmctbW9ja3MjaXNtb2NrdmFsaWRhdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1ZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pa2UxOHQvbmctbW9ja3MjaG93LXRvLW1vY2stZm9ybS1jb250cm9sc1xuICAgKi9cbiAgX19zaW11bGF0ZVZhbGlkYXRvckNoYW5nZSgpOiB2b2lkO1xufVxuIl19
@@ -1,17 +1,5 @@
1
1
  "use strict";
2
2
  // tslint:disable variable-name
3
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7
- return c > 3 && r && Object.defineProperty(target, key, r), r;
8
- };
9
- var __metadata = (this && this.__metadata) || function (k, v) {
10
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
11
- };
12
- var __param = (this && this.__param) || function (paramIndex, decorator) {
13
- return function (target, key) { decorator(target, key, paramIndex); }
14
- };
15
3
  var __values = (this && this.__values) || function(o) {
16
4
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
17
5
  if (m) return m.call(o);
@@ -46,17 +34,30 @@ var __spread = (this && this.__spread) || function () {
46
34
  Object.defineProperty(exports, "__esModule", { value: true });
47
35
  exports.Mock = void 0;
48
36
  var core_1 = require("@angular/core");
49
- var forms_1 = require("@angular/forms");
50
37
  var core_helpers_1 = require("../common/core.helpers");
51
38
  var mock_helper_stub_1 = require("../mock-helper/mock-helper.stub");
52
39
  var helper_mock_service_1 = require("../mock-service/helper.mock-service");
53
40
  var func_is_mock_1 = require("./func.is-mock");
54
41
  var mock_control_value_accessor_proxy_1 = require("./mock-control-value-accessor-proxy");
55
42
  var ng_mocks_universe_1 = require("./ng-mocks-universe");
43
+ var FormControlDirective;
44
+ var NgControl;
45
+ try {
46
+ // tslint:disable-next-line no-require-imports no-var-requires
47
+ var module_1 = require('@angular/forms');
48
+ // istanbul ignore else
49
+ if (module_1) {
50
+ FormControlDirective = module_1.FormControlDirective;
51
+ NgControl = module_1.NgControl;
52
+ }
53
+ }
54
+ catch (e) {
55
+ // nothing to do;
56
+ }
56
57
  var setValueAccessor = function (instance, injector) {
57
58
  if (injector && instance.__ngMocksConfig && instance.__ngMocksConfig.setControlValueAccessor) {
58
59
  try {
59
- var ngControl = injector.get(/* A5 */ forms_1.NgControl, undefined, 10);
60
+ var ngControl = injector.get(/* A5 */ NgControl, undefined, 10);
60
61
  if (ngControl && !ngControl.valueAccessor) {
61
62
  ngControl.valueAccessor = new mock_control_value_accessor_proxy_1.MockControlValueAccessorProxy(instance.constructor);
62
63
  }
@@ -66,12 +67,13 @@ var setValueAccessor = function (instance, injector) {
66
67
  }
67
68
  }
68
69
  };
70
+ // any because of optional @angular/forms
69
71
  var getRelatedNgControl = function (injector) {
70
72
  try {
71
- return injector.get(/* A5 */ forms_1.NgControl, undefined, 10);
73
+ return injector.get(/* A5 */ NgControl, undefined, 10);
72
74
  }
73
75
  catch (e) {
74
- return injector.get(/* A5 */ forms_1.FormControlDirective, undefined, 10);
76
+ return injector.get(/* A5 */ FormControlDirective, undefined, 10);
75
77
  }
76
78
  };
77
79
  // connecting to NG_VALUE_ACCESSOR
@@ -113,9 +115,12 @@ var applyNgValueAccessor = function (instance, injector) {
113
115
  if (injector) {
114
116
  try {
115
117
  var ngControl = getRelatedNgControl(injector);
116
- installValueAccessor(ngControl, instance);
117
- installValidator(ngControl._rawValidators, instance);
118
- installValidator(ngControl._rawAsyncValidators, instance);
118
+ // istanbul ignore else
119
+ if (ngControl) {
120
+ installValueAccessor(ngControl, instance);
121
+ installValidator(ngControl._rawValidators, instance);
122
+ installValidator(ngControl._rawAsyncValidators, instance);
123
+ }
119
124
  }
120
125
  catch (e) {
121
126
  // nothing to do.
@@ -165,6 +170,7 @@ var applyPrototype = function (instance, prototype) {
165
170
  if (!descriptor) {
166
171
  continue;
167
172
  }
173
+ descriptor.configurable = true;
168
174
  Object.defineProperty(instance, prop, descriptor);
169
175
  }
170
176
  }
@@ -223,8 +229,8 @@ var applyOverrides = function (instance, mockOf, injector) {
223
229
  if (instance.__ngMocksConfig.init) {
224
230
  callbacks.push(instance.__ngMocksConfig.init);
225
231
  }
226
- if ((_b = ng_mocks_universe_1.default.config.get(mockOf)) === null || _b === void 0 ? void 0 : _b.init) {
227
- callbacks.push(ng_mocks_universe_1.default.config.get(mockOf).init);
232
+ if ((_b = ng_mocks_universe_1.default.configInstance.get(mockOf)) === null || _b === void 0 ? void 0 : _b.init) {
233
+ callbacks.push(ng_mocks_universe_1.default.configInstance.get(mockOf).init);
228
234
  }
229
235
  try {
230
236
  for (var callbacks_1 = __values(callbacks), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) {
@@ -259,11 +265,10 @@ var Mock = /** @class */ (function () {
259
265
  Object.setPrototypeOf(this, mockOf.prototype);
260
266
  applyOverrides(this, mockOf, injector);
261
267
  }
262
- Mock = __decorate([
263
- __param(0, core_1.Optional()),
264
- __metadata("design:paramtypes", [core_1.Injector])
265
- ], Mock);
266
268
  return Mock;
267
269
  }());
268
270
  exports.Mock = Mock;
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb21tb24vbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9CLHNDQUFpRTtBQUNqRSx3Q0FBaUU7QUFFakUsdURBQW1EO0FBR25ELG9FQUE2RDtBQUM3RCwyRUFBb0U7QUFFcEUsK0NBQXdDO0FBQ3hDLHlGQUFvRjtBQUNwRix5REFBa0Q7QUFFbEQsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLFFBQW9CLEVBQUUsUUFBbUI7SUFDakUsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLHVCQUF1QixFQUFFO1FBQzVGLElBQUk7WUFDRixJQUFNLFNBQVMsR0FBSSxRQUFRLENBQUMsR0FBVyxDQUFDLFFBQVEsQ0FBQyxpQkFBUyxFQUFFLFNBQVMsRUFBRSxFQUFNLENBQUMsQ0FBQztZQUMvRSxJQUFJLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxpRUFBNkIsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbkY7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsaUJBQWlCO1NBQ2xCO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLG1CQUFtQixHQUFHLFVBQUMsUUFBa0I7SUFDN0MsSUFBSTtRQUNGLE9BQVEsUUFBUSxDQUFDLEdBQVcsQ0FBQyxRQUFRLENBQUMsaUJBQVMsRUFBRSxTQUFTLEVBQUUsRUFBTSxDQUFDLENBQUM7S0FDckU7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQVEsUUFBUSxDQUFDLEdBQVcsQ0FBQyxRQUFRLENBQUMsNEJBQW9CLEVBQUUsU0FBUyxFQUFFLEVBQU0sQ0FBQyxDQUFDO0tB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VjtZQUNELDBCQUFjLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3JDOzs7Ozs7Ozs7QUFDSCxDQUFDLENBQUM7QUFNRjtJQUdFLGNBQStCLFFBQW1CO1FBQ2hELElBQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxXQUFtQixDQUFDLE1BQU0sQ0FBQztRQUVoRCx1QkFBdUI7UUFDdkIsSUFBSSxzQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEQsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDcEM7UUFFRCx1QkFBdUI7UUFDdkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFuQlUsSUFBSTtRQUdLLFdBQUEsZUFBUSxFQUFFLENBQUE7eUNBQVksZUFBUTtPQUh2QyxJQUFJLENBb0JoQjtJQUFELFdBQUM7Q0FBQSxBQXBCRCxJQW9CQztBQXBCWSxvQkFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIHZhcmlhYmxlLW5hbWVcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sRGlyZWN0aXZlLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IG1hcFZhbHVlcyB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IElNb2NrQnVpbGRlckNvbmZpZyB9IGZyb20gJy4uL21vY2stYnVpbGRlci90eXBlcyc7XG5pbXBvcnQgbW9ja0hlbHBlclN0dWIgZnJvbSAnLi4vbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuc3R1Yic7XG5pbXBvcnQgaGVscGVyTW9ja1NlcnZpY2UgZnJvbSAnLi4vbW9jay1zZXJ2aWNlL2hlbHBlci5tb2NrLXNlcnZpY2UnO1xuXG5pbXBvcnQgZnVuY0lzTW9jayBmcm9tICcuL2Z1bmMuaXMtbW9jayc7XG5pbXBvcnQgeyBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JQcm94eSB9IGZyb20gJy4vbW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLXByb3h5JztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmNvbnN0IHNldFZhbHVlQWNjZXNzb3IgPSAoaW5zdGFuY2U6IE1vY2tDb25maWcsIGluamVjdG9yPzogSW5qZWN0b3IpID0+IHtcbiAgaWYgKGluamVjdG9yICYmIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZyAmJiBpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbmdDb250cm9sID0gKGluamVjdG9yLmdldCBhcyBhbnkpKC8qIEE1ICovIE5nQ29udHJvbCwgdW5kZWZpbmVkLCAwYjEwMTApO1xuICAgICAgaWYgKG5nQ29udHJvbCAmJiAhbmdDb250cm9sLnZhbHVlQWNjZXNzb3IpIHtcbiAgICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSBuZXcgTW9ja0NvbnRyb2xWYWx1ZUFjY2Vzc29yUHJveHkoaW5zdGFuY2UuY29uc3RydWN0b3IpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBnZXRSZWxhdGVkTmdDb250cm9sID0gKGluamVjdG9yOiBJbmplY3Rvcik6IEZvcm1Db250cm9sRGlyZWN0aXZlID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGluamVjdG9yLmdldCBhcyBhbnkpKC8qIEE1ICovIE5nQ29udHJvbCwgdW5kZWZpbmVkLCAwYjEwMTApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIChpbmplY3Rvci5nZXQgYXMgYW55KSgvKiBBNSAqLyBGb3JtQ29udHJvbERpcmVjdGl2ZSwgdW5kZWZpbmVkLCAwYjEwMTApO1xuICB9XG59O1xuXG4vLyBjb25uZWN0aW5nIHRvIE5HX1ZBTFVFX0FDQ0VTU09SXG5jb25zdCBpbnN0YWxsVmFsdWVBY2Nlc3NvciA9IChuZ0NvbnRyb2w6IGFueSwgaW5zdGFuY2U6IGFueSkgPT4ge1xuICBpZiAoIW5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLmluc3RhbmNlICYmIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLnRhcmdldCA9PT0gaW5zdGFuY2UuY29uc3RydWN0b3IpIHtcbiAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICdyZWdpc3Rlck9uQ2hhbmdlJyk7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3JlZ2lzdGVyT25Ub3VjaGVkJyk7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3NldERpc2FibGVkU3RhdGUnKTtcbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAnd3JpdGVWYWx1ZScpO1xuICAgIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5pc0NvbnRyb2xWYWx1ZUFjY2Vzc29yID0gdHJ1ZTtcbiAgfVxufTtcblxuLy8gY29ubmVjdGluZyB0byBOR19WQUxJREFUT1JTXG4vLyBjb25uZWN0aW5nIHRvIE5HX0FTWU5DX1ZBTElEQVRPUlNcbmNvbnN0IGluc3RhbGxWYWxpZGF0b3IgPSAodmFsaWRhdG9yczogYW55W10sIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgZm9yIChjb25zdCB2YWxpZGF0b3Igb2YgdmFsaWRhdG9ycykge1xuICAgIGlmICghdmFsaWRhdG9yLmluc3RhbmNlICYmIHZhbGlkYXRvci50YXJnZXQgPT09IGluc3RhbmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgICB2YWxpZGF0b3IuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICdyZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlJyk7XG4gICAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAndmFsaWRhdGUnKTtcbiAgICAgIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5pc1ZhbGlkYXRvciA9IHRydWU7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBhcHBseU5nVmFsdWVBY2Nlc3NvciA9IChpbnN0YW5jZTogYW55LCBpbmplY3Rvcj86IEluamVjdG9yKSA9PiB7XG4gIHNldFZhbHVlQWNjZXNzb3IoaW5zdGFuY2UsIGluamVjdG9yKTtcblxuICBpZiAoaW5qZWN0b3IpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbmdDb250cm9sOiBhbnkgPSBnZXRSZWxhdGVkTmdDb250cm9sKGluamVjdG9yKTtcbiAgICAgIGluc3RhbGxWYWx1ZUFjY2Vzc29yKG5nQ29udHJvbCwgaW5zdGFuY2UpO1xuICAgICAgaW5zdGFsbFZhbGlkYXRvcihuZ0NvbnRyb2wuX3Jhd1ZhbGlkYXRvcnMsIGluc3RhbmNlKTtcbiAgICAgIGluc3RhbGxWYWxpZGF0b3IobmdDb250cm9sLl9yYXdBc3luY1ZhbGlkYXRvcnMsIGluc3RhbmNlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3RoaW5nIHRvIGRvLlxuICAgIH1cbiAgfVxufTtcblxuY29uc3QgYXBwbHlPdXRwdXRzID0gKGluc3RhbmNlOiBNb2NrQ29uZmlnICYgUmVjb3JkPGtleW9mIGFueSwgYW55PikgPT4ge1xuICBjb25zdCBtb2NrT3V0cHV0cyA9IFtdO1xuICBmb3IgKGNvbnN0IG91dHB1dCBvZiBpbnN0YW5jZS5fX25nTW9ja3NDb25maWcub3V0cHV0cyB8fCBbXSkge1xuICAgIG1vY2tPdXRwdXRzLnB1c2gob3V0cHV0LnNwbGl0KCc6JylbMF0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBvdXRwdXQgb2YgbW9ja091dHB1dHMpIHtcbiAgICBpZiAoaW5zdGFuY2Vbb3V0cHV0XSB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGluc3RhbmNlLCBvdXRwdXQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaW5zdGFuY2Vbb3V0cHV0XSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseVByb3RvdHlwZSA9IChpbnN0YW5jZTogTW9jaywgcHJvdG90eXBlOiBBbnlUeXBlPGFueT4pID0+IHtcbiAgZm9yIChjb25zdCBwcm9wIG9mIFtcbiAgICAuLi5oZWxwZXJNb2NrU2VydmljZS5leHRyYWN0TWV0aG9kc0Zyb21Qcm90b3R5cGUocHJvdG90eXBlKSxcbiAgICAuLi5oZWxwZXJNb2NrU2VydmljZS5leHRyYWN0UHJvcGVydGllc0Zyb21Qcm90b3R5cGUocHJvdG90eXBlKSxcbiAgXSkge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBoZWxwZXJNb2NrU2VydmljZS5leHRyYWN0UHJvcGVydHlEZXNjcmlwdG9yKHByb3RvdHlwZSwgcHJvcCk7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICBpZiAoIWRlc2NyaXB0b3IpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaW5zdGFuY2UsIHByb3AsIGRlc2NyaXB0b3IpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseU1ldGhvZHMgPSAoaW5zdGFuY2U6IE1vY2sgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+LCBwcm90b3R5cGU6IEFueVR5cGU8YW55PikgPT4ge1xuICBmb3IgKGNvbnN0IG1ldGhvZCBvZiBoZWxwZXJNb2NrU2VydmljZS5leHRyYWN0TWV0aG9kc0Zyb21Qcm90b3R5cGUocHJvdG90eXBlKSkge1xuICAgIGlmIChpbnN0YW5jZVttZXRob2RdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIG1ldGhvZCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCBtZXRob2QpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseVByb3BzID0gKGluc3RhbmNlOiBNb2NrICYgUmVjb3JkPGtleW9mIGFueSwgYW55PiwgcHJvdG90eXBlOiBBbnlUeXBlPGFueT4pID0+IHtcbiAgZm9yIChjb25zdCBwcm9wIG9mIGhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0aWVzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpKSB7XG4gICAgaWYgKGluc3RhbmNlW3Byb3BdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIHByb3ApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgcHJvcCwgJ2dldCcpO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsIHByb3AsICdzZXQnKTtcbiAgfVxufTtcblxuZXhwb3J0IHR5cGUgbmdNb2Nrc01vY2tDb25maWcgPSB7XG4gIGNvbmZpZz86IElNb2NrQnVpbGRlckNvbmZpZztcbiAgaW5pdD86IChpbnN0YW5jZTogYW55KSA9PiB2b2lkO1xuICBpc0NvbnRyb2xWYWx1ZUFjY2Vzc29yPzogYm9vbGVhbjtcbiAgaXNWYWxpZGF0b3I/OiBib29sZWFuO1xuICBvdXRwdXRzPzogc3RyaW5nW107XG4gIHNldENvbnRyb2xWYWx1ZUFjY2Vzc29yPzogYm9vbGVhbjtcbiAgdmlld0NoaWxkUmVmcz86IE1hcDxzdHJpbmcsIHN0cmluZz47XG59O1xuXG5jb25zdCBhcHBseU92ZXJyaWRlcyA9IChpbnN0YW5jZTogYW55LCBtb2NrT2Y6IGFueSwgaW5qZWN0b3I/OiBJbmplY3Rvcik6IHZvaWQgPT4ge1xuICBjb25zdCBjb25maWdHbG9iYWw6IFNldDxhbnk+IHwgdW5kZWZpbmVkID0gbmdNb2Nrc1VuaXZlcnNlLmdldE92ZXJyaWRlcygpLmdldChtb2NrT2YpO1xuICBjb25zdCBjYWxsYmFja3MgPSBjb25maWdHbG9iYWwgPyBtYXBWYWx1ZXMoY29uZmlnR2xvYmFsKSA6IFtdO1xuICBpZiAoaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLmluaXQpIHtcbiAgICBjYWxsYmFja3MucHVzaChpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuaW5pdCk7XG4gIH1cbiAgaWYgKG5nTW9ja3NVbml2ZXJzZS5jb25maWcuZ2V0KG1vY2tPZik/LmluaXQpIHtcbiAgICBjYWxsYmFja3MucHVzaChuZ01vY2tzVW5pdmVyc2UuY29uZmlnLmdldChtb2NrT2YpLmluaXQpO1xuICB9XG5cbiAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBjYWxsYmFja3MpIHtcbiAgICBjb25zdCBvdmVycmlkZXMgPSBjYWxsYmFjayhpbnN0YW5jZSwgaW5qZWN0b3IpO1xuICAgIGlmICghb3ZlcnJpZGVzKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbW9ja0hlbHBlclN0dWIoaW5zdGFuY2UsIG92ZXJyaWRlcyk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja0NvbmZpZyB7XG4gIF9fbmdNb2Nrc0NvbmZpZzogbmdNb2Nrc01vY2tDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrIHtcbiAgcHJvdGVjdGVkIF9fbmdNb2Nrc0NvbmZpZyE6IG5nTW9ja3NNb2NrQ29uZmlnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBpbmplY3Rvcj86IEluamVjdG9yKSB7XG4gICAgY29uc3QgbW9ja09mID0gKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KS5tb2NrT2Y7XG5cbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAgIGlmIChmdW5jSXNNb2NrKHRoaXMpKSB7XG4gICAgICBhcHBseU5nVmFsdWVBY2Nlc3Nvcih0aGlzLCBpbmplY3Rvcik7XG4gICAgICBhcHBseU91dHB1dHModGhpcyk7XG4gICAgICBhcHBseVByb3RvdHlwZSh0aGlzLCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykpO1xuICAgICAgYXBwbHlNZXRob2RzKHRoaXMsIG1vY2tPZi5wcm90b3R5cGUpO1xuICAgICAgYXBwbHlQcm9wcyh0aGlzLCBtb2NrT2YucHJvdG90eXBlKTtcbiAgICB9XG5cbiAgICAvLyBhbmQgZmFraW5nIHByb3RvdHlwZVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBtb2NrT2YucHJvdG90eXBlKTtcblxuICAgIGFwcGx5T3ZlcnJpZGVzKHRoaXMsIG1vY2tPZiwgaW5qZWN0b3IpO1xuICB9XG59XG4iXX0=
271
+ Object.defineProperty(Mock, 'parameters', {
272
+ value: [[core_1.Injector, new core_1.Optional()]],
273
+ });
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb21tb24vbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9CLHNDQUFpRTtBQUVqRSx1REFBbUQ7QUFHbkQsb0VBQTZEO0FBQzdELDJFQUFvRTtBQUVwRSwrQ0FBd0M7QUFDeEMseUZBQW9GO0FBQ3BGLHlEQUFrRDtBQUVsRCxJQUFJLG9CQUFxQyxDQUFDO0FBQzFDLElBQUksU0FBMEIsQ0FBQztBQUMvQixJQUFJO0lBQ0YsOERBQThEO0lBQzlELElBQU0sUUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLHVCQUF1QjtJQUN2QixJQUFJLFFBQU0sRUFBRTtRQUNWLG9CQUFvQixHQUFHLFFBQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUNuRCxTQUFTLEdBQUcsUUFBTSxDQUFDLFNBQVMsQ0FBQztLQUM5QjtDQUNGO0FBQUMsT0FBTyxDQUFDLEVBQUU7SUFDVixpQkFBaUI7Q0FDbEI7QUFFRCxJQUFNLGdCQUFnQixHQUFHLFVBQUMsUUFBb0IsRUFBRSxRQUFtQjtJQUNqRSxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLEVBQUU7UUFDNUYsSUFBSTtZQUNGLElBQU0sU0FBUyxHQUFJLFFBQVEsQ0FBQyxHQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBTSxDQUFDLENBQUM7WUFDL0UsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO2dCQUN6QyxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksaUVBQTZCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ25GO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLGlCQUFpQjtTQUNs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QUFDO0lBQ3pDLENBQUM7SUFDSCxXQUFDO0FBQUQsQ0FBQyxBQXBCRCxJQW9CQztBQXBCWSxvQkFBSTtBQXNCakIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBUSxFQUFFLElBQUksZUFBUSxFQUFFLENBQUMsQ0FBQztDQUNwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZSB2YXJpYWJsZS1uYW1lXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IG1hcFZhbHVlcyB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLmhlbHBlcnMnO1xuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IElNb2NrQnVpbGRlckNvbmZpZyB9IGZyb20gJy4uL21vY2stYnVpbGRlci90eXBlcyc7XG5pbXBvcnQgbW9ja0hlbHBlclN0dWIgZnJvbSAnLi4vbW9jay1oZWxwZXIvbW9jay1oZWxwZXIuc3R1Yic7XG5pbXBvcnQgaGVscGVyTW9ja1NlcnZpY2UgZnJvbSAnLi4vbW9jay1zZXJ2aWNlL2hlbHBlci5tb2NrLXNlcnZpY2UnO1xuXG5pbXBvcnQgZnVuY0lzTW9jayBmcm9tICcuL2Z1bmMuaXMtbW9jayc7XG5pbXBvcnQgeyBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JQcm94eSB9IGZyb20gJy4vbW9jay1jb250cm9sLXZhbHVlLWFjY2Vzc29yLXByb3h5JztcbmltcG9ydCBuZ01vY2tzVW5pdmVyc2UgZnJvbSAnLi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmxldCBGb3JtQ29udHJvbERpcmVjdGl2ZTogYW55IHwgdW5kZWZpbmVkO1xubGV0IE5nQ29udHJvbDogYW55IHwgdW5kZWZpbmVkO1xudHJ5IHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXJlcXVpcmUtaW1wb3J0cyBuby12YXItcmVxdWlyZXNcbiAgY29uc3QgbW9kdWxlID0gcmVxdWlyZSgnQGFuZ3VsYXIvZm9ybXMnKTtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgaWYgKG1vZHVsZSkge1xuICAgIEZvcm1Db250cm9sRGlyZWN0aXZlID0gbW9kdWxlLkZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIE5nQ29udHJvbCA9IG1vZHVsZS5OZ0NvbnRyb2w7XG4gIH1cbn0gY2F0Y2ggKGUpIHtcbiAgLy8gbm90aGluZyB0byBkbztcbn1cblxuY29uc3Qgc2V0VmFsdWVBY2Nlc3NvciA9IChpbnN0YW5jZTogTW9ja0NvbmZpZywgaW5qZWN0b3I/OiBJbmplY3RvcikgPT4ge1xuICBpZiAoaW5qZWN0b3IgJiYgaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnICYmIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5zZXRDb250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZ0NvbnRyb2wgPSAoaW5qZWN0b3IuZ2V0IGFzIGFueSkoLyogQTUgKi8gTmdDb250cm9sLCB1bmRlZmluZWQsIDBiMTAxMCk7XG4gICAgICBpZiAobmdDb250cm9sICYmICFuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvcikge1xuICAgICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IG5ldyBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JQcm94eShpbnN0YW5jZS5jb25zdHJ1Y3Rvcik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbm90aGluZyB0byBkby5cbiAgICB9XG4gIH1cbn07XG5cbi8vIGFueSBiZWNhdXNlIG9mIG9wdGlvbmFsIEBhbmd1bGFyL2Zvcm1zXG5jb25zdCBnZXRSZWxhdGVkTmdDb250cm9sID0gKGluamVjdG9yOiBJbmplY3Rvcik6IGFueSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChpbmplY3Rvci5nZXQgYXMgYW55KSgvKiBBNSAqLyBOZ0NvbnRyb2wsIHVuZGVmaW5lZCwgMGIxMDEwKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiAoaW5qZWN0b3IuZ2V0IGFzIGFueSkoLyogQTUgKi8gRm9ybUNvbnRyb2xEaXJlY3RpdmUsIHVuZGVmaW5lZCwgMGIxMDEwKTtcbiAgfVxufTtcblxuLy8gY29ubmVjdGluZyB0byBOR19WQUxVRV9BQ0NFU1NPUlxuY29uc3QgaW5zdGFsbFZhbHVlQWNjZXNzb3IgPSAobmdDb250cm9sOiBhbnksIGluc3RhbmNlOiBhbnkpID0+IHtcbiAgaWYgKCFuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5pbnN0YW5jZSAmJiBuZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci50YXJnZXQgPT09IGluc3RhbmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAncmVnaXN0ZXJPbkNoYW5nZScpO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICdyZWdpc3Rlck9uVG91Y2hlZCcpO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsICdzZXREaXNhYmxlZFN0YXRlJyk7XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3dyaXRlVmFsdWUnKTtcbiAgICBpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuaXNDb250cm9sVmFsdWVBY2Nlc3NvciA9IHRydWU7XG4gIH1cbn07XG5cbi8vIGNvbm5lY3RpbmcgdG8gTkdfVkFMSURBVE9SU1xuLy8gY29ubmVjdGluZyB0byBOR19BU1lOQ19WQUxJREFUT1JTXG5jb25zdCBpbnN0YWxsVmFsaWRhdG9yID0gKHZhbGlkYXRvcnM6IGFueVtdLCBpbnN0YW5jZTogYW55KSA9PiB7XG4gIGZvciAoY29uc3QgdmFsaWRhdG9yIG9mIHZhbGlkYXRvcnMpIHtcbiAgICBpZiAoIXZhbGlkYXRvci5pbnN0YW5jZSAmJiB2YWxpZGF0b3IudGFyZ2V0ID09PSBpbnN0YW5jZS5jb25zdHJ1Y3Rvcikge1xuICAgICAgdmFsaWRhdG9yLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCAncmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZScpO1xuICAgICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgJ3ZhbGlkYXRlJyk7XG4gICAgICBpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuaXNWYWxpZGF0b3IgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxuY29uc3QgYXBwbHlOZ1ZhbHVlQWNjZXNzb3IgPSAoaW5zdGFuY2U6IGFueSwgaW5qZWN0b3I/OiBJbmplY3RvcikgPT4ge1xuICBzZXRWYWx1ZUFjY2Vzc29yKGluc3RhbmNlLCBpbmplY3Rvcik7XG5cbiAgaWYgKGluamVjdG9yKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5nQ29udHJvbDogYW55ID0gZ2V0UmVsYXRlZE5nQ29udHJvbChpbmplY3Rvcik7XG4gICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAgICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgICBpbnN0YWxsVmFsdWVBY2Nlc3NvcihuZ0NvbnRyb2wsIGluc3RhbmNlKTtcbiAgICAgICAgaW5zdGFsbFZhbGlkYXRvcihuZ0NvbnRyb2wuX3Jhd1ZhbGlkYXRvcnMsIGluc3RhbmNlKTtcbiAgICAgICAgaW5zdGFsbFZhbGlkYXRvcihuZ0NvbnRyb2wuX3Jhd0FzeW5jVmFsaWRhdG9ycywgaW5zdGFuY2UpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdGhpbmcgdG8gZG8uXG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBhcHBseU91dHB1dHMgPSAoaW5zdGFuY2U6IE1vY2tDb25maWcgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+KSA9PiB7XG4gIGNvbnN0IG1vY2tPdXRwdXRzID0gW107XG4gIGZvciAoY29uc3Qgb3V0cHV0IG9mIGluc3RhbmNlLl9fbmdNb2Nrc0NvbmZpZy5vdXRwdXRzIHx8IFtdKSB7XG4gICAgbW9ja091dHB1dHMucHVzaChvdXRwdXQuc3BsaXQoJzonKVswXSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IG91dHB1dCBvZiBtb2NrT3V0cHV0cykge1xuICAgIGlmIChpbnN0YW5jZVtvdXRwdXRdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIG91dHB1dCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpbnN0YW5jZVtvdXRwdXRdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIH1cbn07XG5cbmNvbnN0IGFwcGx5UHJvdG90eXBlID0gKGluc3RhbmNlOiBNb2NrLCBwcm90b3R5cGU6IEFueVR5cGU8YW55PikgPT4ge1xuICBmb3IgKGNvbnN0IHByb3Agb2YgW1xuICAgIC4uLmhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RNZXRob2RzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpLFxuICAgIC4uLmhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0aWVzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpLFxuICBdKSB7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IGhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0eURlc2NyaXB0b3IocHJvdG90eXBlLCBwcm9wKTtcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgIGlmICghZGVzY3JpcHRvcikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoaW5zdGFuY2UsIHByb3AsIGRlc2NyaXB0b3IpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseU1ldGhvZHMgPSAoaW5zdGFuY2U6IE1vY2sgJiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+LCBwcm90b3R5cGU6IEFueVR5cGU8YW55PikgPT4ge1xuICBmb3IgKGNvbnN0IG1ldGhvZCBvZiBoZWxwZXJNb2NrU2VydmljZS5leHRyYWN0TWV0aG9kc0Zyb21Qcm90b3R5cGUocHJvdG90eXBlKSkge1xuICAgIGlmIChpbnN0YW5jZVttZXRob2RdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIG1ldGhvZCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBoZWxwZXJNb2NrU2VydmljZS5tb2NrKGluc3RhbmNlLCBtZXRob2QpO1xuICB9XG59O1xuXG5jb25zdCBhcHBseVByb3BzID0gKGluc3RhbmNlOiBNb2NrICYgUmVjb3JkPGtleW9mIGFueSwgYW55PiwgcHJvdG90eXBlOiBBbnlUeXBlPGFueT4pID0+IHtcbiAgZm9yIChjb25zdCBwcm9wIG9mIGhlbHBlck1vY2tTZXJ2aWNlLmV4dHJhY3RQcm9wZXJ0aWVzRnJvbVByb3RvdHlwZShwcm90b3R5cGUpKSB7XG4gICAgaWYgKGluc3RhbmNlW3Byb3BdIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaW5zdGFuY2UsIHByb3ApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaGVscGVyTW9ja1NlcnZpY2UubW9jayhpbnN0YW5jZSwgcHJvcCwgJ2dldCcpO1xuICAgIGhlbHBlck1vY2tTZXJ2aWNlLm1vY2soaW5zdGFuY2UsIHByb3AsICdzZXQnKTtcbiAgfVxufTtcblxuZXhwb3J0IHR5cGUgbmdNb2Nrc01vY2tDb25maWcgPSB7XG4gIGNvbmZpZz86IElNb2NrQnVpbGRlckNvbmZpZztcbiAgaW5pdD86IChpbnN0YW5jZTogYW55KSA9PiB2b2lkO1xuICBpc0NvbnRyb2xWYWx1ZUFjY2Vzc29yPzogYm9vbGVhbjtcbiAgaXNWYWxpZGF0b3I/OiBib29sZWFuO1xuICBvdXRwdXRzPzogc3RyaW5nW107XG4gIHNldENvbnRyb2xWYWx1ZUFjY2Vzc29yPzogYm9vbGVhbjtcbiAgdmlld0NoaWxkUmVmcz86IE1hcDxzdHJpbmcsIHN0cmluZz47XG59O1xuXG5jb25zdCBhcHBseU92ZXJyaWRlcyA9IChpbnN0YW5jZTogYW55LCBtb2NrT2Y6IGFueSwgaW5qZWN0b3I/OiBJbmplY3Rvcik6IHZvaWQgPT4ge1xuICBjb25zdCBjb25maWdHbG9iYWw6IFNldDxhbnk+IHwgdW5kZWZpbmVkID0gbmdNb2Nrc1VuaXZlcnNlLmdldE92ZXJyaWRlcygpLmdldChtb2NrT2YpO1xuICBjb25zdCBjYWxsYmFja3MgPSBjb25maWdHbG9iYWwgPyBtYXBWYWx1ZXMoY29uZmlnR2xvYmFsKSA6IFtdO1xuICBpZiAoaW5zdGFuY2UuX19uZ01vY2tzQ29uZmlnLmluaXQpIHtcbiAgICBjYWxsYmFja3MucHVzaChpbnN0YW5jZS5fX25nTW9ja3NDb25maWcuaW5pdCk7XG4gIH1cbiAgaWYgKG5nTW9ja3NVbml2ZXJzZS5jb25maWdJbnN0YW5jZS5nZXQobW9ja09mKT8uaW5pdCkge1xuICAgIGNhbGxiYWNrcy5wdXNoKG5nTW9ja3NVbml2ZXJzZS5jb25maWdJbnN0YW5jZS5nZXQobW9ja09mKS5pbml0KTtcbiAgfVxuXG4gIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgY2FsbGJhY2tzKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gY2FsbGJhY2soaW5zdGFuY2UsIGluamVjdG9yKTtcbiAgICBpZiAoIW92ZXJyaWRlcykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIG1vY2tIZWxwZXJTdHViKGluc3RhbmNlLCBvdmVycmlkZXMpO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vY2tDb25maWcge1xuICBfX25nTW9ja3NDb25maWc6IG5nTW9ja3NNb2NrQ29uZmlnO1xufVxuXG5leHBvcnQgY2xhc3MgTW9jayB7XG4gIHByb3RlY3RlZCBfX25nTW9ja3NDb25maWchOiBuZ01vY2tzTW9ja0NvbmZpZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW5qZWN0b3I/OiBJbmplY3Rvcikge1xuICAgIGNvbnN0IG1vY2tPZiA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkubW9ja09mO1xuXG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgICBpZiAoZnVuY0lzTW9jayh0aGlzKSkge1xuICAgICAgYXBwbHlOZ1ZhbHVlQWNjZXNzb3IodGhpcywgaW5qZWN0b3IpO1xuICAgICAgYXBwbHlPdXRwdXRzKHRoaXMpO1xuICAgICAgYXBwbHlQcm90b3R5cGUodGhpcywgT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpKTtcbiAgICAgIGFwcGx5TWV0aG9kcyh0aGlzLCBtb2NrT2YucHJvdG90eXBlKTtcbiAgICAgIGFwcGx5UHJvcHModGhpcywgbW9ja09mLnByb3RvdHlwZSk7XG4gICAgfVxuXG4gICAgLy8gYW5kIGZha2luZyBwcm90b3R5cGVcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgbW9ja09mLnByb3RvdHlwZSk7XG5cbiAgICBhcHBseU92ZXJyaWRlcyh0aGlzLCBtb2NrT2YsIGluamVjdG9yKTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoTW9jaywgJ3BhcmFtZXRlcnMnLCB7XG4gIHZhbHVlOiBbW0luamVjdG9yLCBuZXcgT3B0aW9uYWwoKV1dLFxufSk7XG4iXX0=
@@ -6,10 +6,15 @@ interface NgMocksUniverse {
6
6
  cacheDeclarations: Map<any, any>;
7
7
  cacheProviders: Map<any, any>;
8
8
  config: Map<any, any>;
9
+ configInstance: Map<any, any>;
9
10
  flags: Set<string>;
11
+ getBuildDeclaration: (def: any) => any | undefined;
12
+ getDefaults: () => Map<any, undefined | ['mock' | 'keep' | 'replace' | 'exclude', any?]>;
10
13
  getLocalMocks: () => Array<[any, any]>;
11
14
  getOverrides: () => Map<any, any>;
15
+ getResolution: (def: any) => undefined | 'mock' | 'keep' | 'replace' | 'exclude';
12
16
  global: Map<any, any>;
17
+ hasBuildDeclaration: (def: any) => boolean;
13
18
  isExcludedDef: (def: any) => boolean;
14
19
  isProvidedDef: (def: any) => boolean;
15
20
  touches: Set<AnyType<any> | InjectionToken<any> | string>;
@@ -1,8 +1,30 @@
1
1
  "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
2
18
  Object.defineProperty(exports, "__esModule", { value: true });
3
19
  var core_config_1 = require("./core.config");
4
20
  // istanbul ignore next
5
21
  var getGlobal = function () { return window || global; };
22
+ var globalMap = function (key) { return function () {
23
+ if (!ngMocksUniverse.global.has(key)) {
24
+ ngMocksUniverse.global.set(key, new Map());
25
+ }
26
+ return ngMocksUniverse.global.get(key);
27
+ }; };
6
28
  getGlobal().ngMocksUniverse = getGlobal().ngMocksUniverse || {};
7
29
  var ngMocksUniverse = getGlobal().ngMocksUniverse;
8
30
  ngMocksUniverse.builtDeclarations = new Map();
@@ -10,6 +32,7 @@ ngMocksUniverse.builtProviders = new Map();
10
32
  ngMocksUniverse.cacheDeclarations = new Map();
11
33
  ngMocksUniverse.cacheProviders = new Map();
12
34
  ngMocksUniverse.config = new Map();
35
+ ngMocksUniverse.configInstance = new Map();
13
36
  ngMocksUniverse.flags = new Set(core_config_1.default.flags);
14
37
  ngMocksUniverse.global = new Map();
15
38
  ngMocksUniverse.touches = new Set();
@@ -19,15 +42,50 @@ ngMocksUniverse.getLocalMocks = function () {
19
42
  }
20
43
  return ngMocksUniverse.global.get('local-mocks');
21
44
  };
22
- ngMocksUniverse.getOverrides = function () {
23
- if (!ngMocksUniverse.global.has('overrides')) {
24
- ngMocksUniverse.global.set('overrides', new Map());
45
+ ngMocksUniverse.getOverrides = globalMap('overrides');
46
+ ngMocksUniverse.getDefaults = globalMap('defaults');
47
+ ngMocksUniverse.getResolution = function (def) {
48
+ var set = ngMocksUniverse.config.get('ngMocksDepsResolution');
49
+ if (set === null || set === void 0 ? void 0 : set.has(def)) {
50
+ return set.get(def);
51
+ }
52
+ if (!ngMocksUniverse.getDefaults().has(def)) {
53
+ return undefined;
54
+ }
55
+ var _a = __read(ngMocksUniverse.getDefaults().get(def), 1), value = _a[0];
56
+ return value;
57
+ };
58
+ ngMocksUniverse.getBuildDeclaration = function (def) {
59
+ if (ngMocksUniverse.builtDeclarations.has(def)) {
60
+ return ngMocksUniverse.builtDeclarations.get(def);
61
+ }
62
+ if (!ngMocksUniverse.getDefaults().has(def)) {
63
+ return;
64
+ }
65
+ var _a = __read(ngMocksUniverse.getDefaults().get(def), 2), mode = _a[0], replacement = _a[1];
66
+ if (mode === 'exclude') {
67
+ return null;
68
+ }
69
+ if (mode === 'keep') {
70
+ return def;
71
+ }
72
+ if (mode === 'replace') {
73
+ return replacement;
74
+ }
75
+ };
76
+ ngMocksUniverse.hasBuildDeclaration = function (def) {
77
+ if (ngMocksUniverse.builtDeclarations.has(def)) {
78
+ return true;
79
+ }
80
+ if (!ngMocksUniverse.getDefaults().has(def)) {
81
+ return false;
25
82
  }
26
- return ngMocksUniverse.global.get('overrides');
83
+ var _a = __read(ngMocksUniverse.getDefaults().get(def), 1), mode = _a[0];
84
+ return mode !== 'mock';
27
85
  };
28
- var hasBuildDeclaration = function (def) { return ngMocksUniverse.builtDeclarations.has(def); };
29
- var getBuildDeclaration = function (def) { return ngMocksUniverse.builtDeclarations.get(def); };
86
+ var hasBuildDeclaration = function (def) { return ngMocksUniverse.hasBuildDeclaration(def); };
87
+ var getBuildDeclaration = function (def) { return ngMocksUniverse.getBuildDeclaration(def); };
30
88
  ngMocksUniverse.isExcludedDef = function (def) { return hasBuildDeclaration(def) && getBuildDeclaration(def) === null; };
31
89
  ngMocksUniverse.isProvidedDef = function (def) { return hasBuildDeclaration(def) && getBuildDeclaration(def) !== null; };
32
90
  exports.default = (function () { return ngMocksUniverse; })();
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9ja3MtdW5pdmVyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNkNBQXVDO0FBR3ZDLHVCQUF1QjtBQUN2QixJQUFNLFNBQVMsR0FBRyxjQUFXLE9BQUEsTUFBTSxJQUFJLE1BQU0sRUFBaEIsQ0FBZ0IsQ0FBQztBQWlCOUMsU0FBUyxFQUFFLENBQUMsZUFBZSxHQUFHLFNBQVMsRUFBRSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7QUFDaEUsSUFBTSxlQUFlLEdBQW9CLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztBQUVyRSxlQUFlLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM5QyxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDM0MsZUFBZSxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDOUMsZUFBZSxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxlQUFlLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLHFCQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25DLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUVwQyxlQUFlLENBQUMsYUFBYSxHQUFHO0lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUM5QyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDL0M7SUFFRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGLGVBQWUsQ0FBQyxZQUFZLEdBQUc7SUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQzVDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDcEQ7SUFFRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxHQUFRLElBQWMsT0FBQSxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUExQyxDQUEwQyxDQUFDO0FBQzlGLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxHQUFRLElBQVUsT0FBQSxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUExQyxDQUEwQyxDQUFDO0FBRTFGLGVBQWUsQ0FBQyxhQUFhLEdBQUcsVUFBQyxHQUFRLElBQWMsT0FBQSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQTdELENBQTZELENBQUM7QUFFckgsZUFBZSxDQUFDLGFBQWEsR0FBRyxVQUFDLEdBQVEsSUFBYyxPQUFBLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBN0QsQ0FBNkQsQ0FBQztBQUVySCxrQkFBZSxDQUFDLGNBQXVCLE9BQUEsZUFBZSxFQUFmLENBQWUsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgY29yZUNvbmZpZyBmcm9tICcuL2NvcmUuY29uZmlnJztcbmltcG9ydCB7IEFueVR5cGUgfSBmcm9tICcuL2NvcmUudHlwZXMnO1xuXG4vLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuY29uc3QgZ2V0R2xvYmFsID0gKCk6IGFueSA9PiB3aW5kb3cgfHwgZ2xvYmFsO1xuXG5pbnRlcmZhY2UgTmdNb2Nrc1VuaXZlcnNlIHtcbiAgYnVpbHREZWNsYXJhdGlvbnM6IE1hcDxhbnksIGFueT47XG4gIGJ1aWx0UHJvdmlkZXJzOiBNYXA8YW55LCBhbnk+O1xuICBjYWNoZURlY2xhcmF0aW9uczogTWFwPGFueSwgYW55PjtcbiAgY2FjaGVQcm92aWRlcnM6IE1hcDxhbnksIGFueT47XG4gIGNvbmZpZzogTWFwPGFueSwgYW55PjtcbiAgZmxhZ3M6IFNldDxzdHJpbmc+O1xuICBnZXRMb2NhbE1vY2tzOiAoKSA9PiBBcnJheTxbYW55LCBhbnldPjtcbiAgZ2V0T3ZlcnJpZGVzOiAoKSA9PiBNYXA8YW55LCBhbnk+O1xuICBnbG9iYWw6IE1hcDxhbnksIGFueT47XG4gIGlzRXhjbHVkZWREZWY6IChkZWY6IGFueSkgPT4gYm9vbGVhbjtcbiAgaXNQcm92aWRlZERlZjogKGRlZjogYW55KSA9PiBib29sZWFuO1xuICB0b3VjaGVzOiBTZXQ8QW55VHlwZTxhbnk+IHwgSW5qZWN0aW9uVG9rZW48YW55PiB8IHN0cmluZz47XG59XG5cbmdldEdsb2JhbCgpLm5nTW9ja3NVbml2ZXJzZSA9IGdldEdsb2JhbCgpLm5nTW9ja3NVbml2ZXJzZSB8fCB7fTtcbmNvbnN0IG5nTW9ja3NVbml2ZXJzZTogTmdNb2Nrc1VuaXZlcnNlID0gZ2V0R2xvYmFsKCkubmdNb2Nrc1VuaXZlcnNlO1xuXG5uZ01vY2tzVW5pdmVyc2UuYnVpbHREZWNsYXJhdGlvbnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuYnVpbHRQcm92aWRlcnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuY2FjaGVQcm92aWRlcnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuY29uZmlnID0gbmV3IE1hcCgpO1xubmdNb2Nrc1VuaXZlcnNlLmZsYWdzID0gbmV3IFNldChjb3JlQ29uZmlnLmZsYWdzKTtcbm5nTW9ja3NVbml2ZXJzZS5nbG9iYWwgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UudG91Y2hlcyA9IG5ldyBTZXQoKTtcblxubmdNb2Nrc1VuaXZlcnNlLmdldExvY2FsTW9ja3MgPSAoKSA9PiB7XG4gIGlmICghbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5oYXMoJ2xvY2FsLW1vY2tzJykpIHtcbiAgICBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLnNldCgnbG9jYWwtbW9ja3MnLCBbXSk7XG4gIH1cblxuICByZXR1cm4gbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5nZXQoJ2xvY2FsLW1vY2tzJyk7XG59O1xuXG5uZ01vY2tzVW5pdmVyc2UuZ2V0T3ZlcnJpZGVzID0gKCkgPT4ge1xuICBpZiAoIW5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuaGFzKCdvdmVycmlkZXMnKSkge1xuICAgIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuc2V0KCdvdmVycmlkZXMnLCBuZXcgTWFwKCkpO1xuICB9XG5cbiAgcmV0dXJuIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuZ2V0KCdvdmVycmlkZXMnKTtcbn07XG5cbmNvbnN0IGhhc0J1aWxkRGVjbGFyYXRpb24gPSAoZGVmOiBhbnkpOiBib29sZWFuID0+IG5nTW9ja3NVbml2ZXJzZS5idWlsdERlY2xhcmF0aW9ucy5oYXMoZGVmKTtcbmNvbnN0IGdldEJ1aWxkRGVjbGFyYXRpb24gPSAoZGVmOiBhbnkpOiBhbnkgPT4gbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0RGVjbGFyYXRpb25zLmdldChkZWYpO1xuXG5uZ01vY2tzVW5pdmVyc2UuaXNFeGNsdWRlZERlZiA9IChkZWY6IGFueSk6IGJvb2xlYW4gPT4gaGFzQnVpbGREZWNsYXJhdGlvbihkZWYpICYmIGdldEJ1aWxkRGVjbGFyYXRpb24oZGVmKSA9PT0gbnVsbDtcblxubmdNb2Nrc1VuaXZlcnNlLmlzUHJvdmlkZWREZWYgPSAoZGVmOiBhbnkpOiBib29sZWFuID0+IGhhc0J1aWxkRGVjbGFyYXRpb24oZGVmKSAmJiBnZXRCdWlsZERlY2xhcmF0aW9uKGRlZikgIT09IG51bGw7XG5cbmV4cG9ydCBkZWZhdWx0ICgoKTogTmdNb2Nrc1VuaXZlcnNlID0+IG5nTW9ja3NVbml2ZXJzZSkoKTtcbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9ja3MtdW5pdmVyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29tbW9uL25nLW1vY2tzLXVuaXZlcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDZDQUF1QztBQUd2Qyx1QkFBdUI7QUFDdkIsSUFBTSxTQUFTLEdBQUcsY0FBVyxPQUFBLE1BQU0sSUFBSSxNQUFNLEVBQWhCLENBQWdCLENBQUM7QUFFOUMsSUFBTSxTQUFTLEdBQUcsVUFBQyxHQUFXLElBQUssT0FBQTtJQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDcEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztLQUM1QztJQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekMsQ0FBQyxFQU5rQyxDQU1sQyxDQUFDO0FBc0JGLFNBQVMsRUFBRSxDQUFDLGVBQWUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0FBQ2hFLElBQU0sZUFBZSxHQUFvQixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7QUFFckUsZUFBZSxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDOUMsZUFBZSxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzNDLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzlDLGVBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUMzQyxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDbkMsZUFBZSxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFD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QUMsQ0FBQztBQUVGLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxHQUFRLElBQWMsT0FBQSxlQUFlLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFDNUYsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLEdBQVEsSUFBVSxPQUFBLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBeEMsQ0FBd0MsQ0FBQztBQUV4RixlQUFlLENBQUMsYUFBYSxHQUFHLFVBQUMsR0FBUSxJQUFjLE9BQUEsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUE3RCxDQUE2RCxDQUFDO0FBRXJILGVBQWUsQ0FBQyxhQUFhLEdBQUcsVUFBQyxHQUFRLElBQWMsT0FBQSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQTdELENBQTZELENBQUM7QUFFckgsa0JBQWUsQ0FBQyxjQUF1QixPQUFBLGVBQWUsRUFBZixDQUFlLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IGNvcmVDb25maWcgZnJvbSAnLi9jb3JlLmNvbmZpZyc7XG5pbXBvcnQgeyBBbnlUeXBlIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcblxuLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbmNvbnN0IGdldEdsb2JhbCA9ICgpOiBhbnkgPT4gd2luZG93IHx8IGdsb2JhbDtcblxuY29uc3QgZ2xvYmFsTWFwID0gKGtleTogc3RyaW5nKSA9PiAoKSA9PiB7XG4gIGlmICghbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5oYXMoa2V5KSkge1xuICAgIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuc2V0KGtleSwgbmV3IE1hcCgpKTtcbiAgfVxuXG4gIHJldHVybiBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmdldChrZXkpO1xufTtcblxuaW50ZXJmYWNlIE5nTW9ja3NVbml2ZXJzZSB7XG4gIGJ1aWx0RGVjbGFyYXRpb25zOiBNYXA8YW55LCBhbnk+O1xuICBidWlsdFByb3ZpZGVyczogTWFwPGFueSwgYW55PjtcbiAgY2FjaGVEZWNsYXJhdGlvbnM6IE1hcDxhbnksIGFueT47XG4gIGNhY2hlUHJvdmlkZXJzOiBNYXA8YW55LCBhbnk+O1xuICBjb25maWc6IE1hcDxhbnksIGFueT47XG4gIGNvbmZpZ0luc3RhbmNlOiBNYXA8YW55LCBhbnk+O1xuICBmbGFnczogU2V0PHN0cmluZz47XG4gIGdldEJ1aWxkRGVjbGFyYXRpb246IChkZWY6IGFueSkgPT4gYW55IHwgdW5kZWZpbmVkO1xuICBnZXREZWZhdWx0czogKCkgPT4gTWFwPGFueSwgdW5kZWZpbmVkIHwgWydtb2NrJyB8ICdrZWVwJyB8ICdyZXBsYWNlJyB8ICdleGNsdWRlJywgYW55P10+O1xuICBnZXRMb2NhbE1vY2tzOiAoKSA9PiBBcnJheTxbYW55LCBhbnldPjtcbiAgZ2V0T3ZlcnJpZGVzOiAoKSA9PiBNYXA8YW55LCBhbnk+O1xuICBnZXRSZXNvbHV0aW9uOiAoZGVmOiBhbnkpID0+IHVuZGVmaW5lZCB8ICdtb2NrJyB8ICdrZWVwJyB8ICdyZXBsYWNlJyB8ICdleGNsdWRlJztcbiAgZ2xvYmFsOiBNYXA8YW55LCBhbnk+O1xuICBoYXNCdWlsZERlY2xhcmF0aW9uOiAoZGVmOiBhbnkpID0+IGJvb2xlYW47XG4gIGlzRXhjbHVkZWREZWY6IChkZWY6IGFueSkgPT4gYm9vbGVhbjtcbiAgaXNQcm92aWRlZERlZjogKGRlZjogYW55KSA9PiBib29sZWFuO1xuICB0b3VjaGVzOiBTZXQ8QW55VHlwZTxhbnk+IHwgSW5qZWN0aW9uVG9rZW48YW55PiB8IHN0cmluZz47XG59XG5cbmdldEdsb2JhbCgpLm5nTW9ja3NVbml2ZXJzZSA9IGdldEdsb2JhbCgpLm5nTW9ja3NVbml2ZXJzZSB8fCB7fTtcbmNvbnN0IG5nTW9ja3NVbml2ZXJzZTogTmdNb2Nrc1VuaXZlcnNlID0gZ2V0R2xvYmFsKCkubmdNb2Nrc1VuaXZlcnNlO1xuXG5uZ01vY2tzVW5pdmVyc2UuYnVpbHREZWNsYXJhdGlvbnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuYnVpbHRQcm92aWRlcnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuY2FjaGVQcm92aWRlcnMgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UuY29uZmlnID0gbmV3IE1hcCgpO1xubmdNb2Nrc1VuaXZlcnNlLmNvbmZpZ0luc3RhbmNlID0gbmV3IE1hcCgpO1xubmdNb2Nrc1VuaXZlcnNlLmZsYWdzID0gbmV3IFNldChjb3JlQ29uZmlnLmZsYWdzKTtcbm5nTW9ja3NVbml2ZXJzZS5nbG9iYWwgPSBuZXcgTWFwKCk7XG5uZ01vY2tzVW5pdmVyc2UudG91Y2hlcyA9IG5ldyBTZXQoKTtcblxubmdNb2Nrc1VuaXZlcnNlLmdldExvY2FsTW9ja3MgPSAoKSA9PiB7XG4gIGlmICghbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5oYXMoJ2xvY2FsLW1vY2tzJykpIHtcbiAgICBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLnNldCgnbG9jYWwtbW9ja3MnLCBbXSk7XG4gIH1cblxuICByZXR1cm4gbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5nZXQoJ2xvY2FsLW1vY2tzJyk7XG59O1xuXG5uZ01vY2tzVW5pdmVyc2UuZ2V0T3ZlcnJpZGVzID0gZ2xvYmFsTWFwKCdvdmVycmlkZXMnKTtcbm5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cyA9IGdsb2JhbE1hcCgnZGVmYXVsdHMnKTtcblxubmdNb2Nrc1VuaXZlcnNlLmdldFJlc29sdXRpb24gPSAoZGVmOiBhbnkpOiB1bmRlZmluZWQgfCAnbW9jaycgfCAna2VlcCcgfCAncmVwbGFjZScgfCAnZXhjbHVkZScgPT4ge1xuICBjb25zdCBzZXQgPSBuZ01vY2tzVW5pdmVyc2UuY29uZmlnLmdldCgnbmdNb2Nrc0RlcHNSZXNvbHV0aW9uJyk7XG4gIGlmIChzZXQ/LmhhcyhkZWYpKSB7XG4gICAgcmV0dXJuIHNldC5nZXQoZGVmKTtcbiAgfVxuXG4gIGlmICghbmdNb2Nrc1VuaXZlcnNlLmdldERlZmF1bHRzKCkuaGFzKGRlZikpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgW3ZhbHVlXSA9IG5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cygpLmdldChkZWYpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbm5nTW9ja3NVbml2ZXJzZS5nZXRCdWlsZERlY2xhcmF0aW9uID0gKGRlZjogYW55KTogdW5kZWZpbmVkIHwgbnVsbCB8IGFueSA9PiB7XG4gIGlmIChuZ01vY2tzVW5pdmVyc2UuYnVpbHREZWNsYXJhdGlvbnMuaGFzKGRlZikpIHtcbiAgICByZXR1cm4gbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0RGVjbGFyYXRpb25zLmdldChkZWYpO1xuICB9XG4gIGlmICghbmdNb2Nrc1VuaXZlcnNlLmdldERlZmF1bHRzKCkuaGFzKGRlZikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBbbW9kZSwgcmVwbGFjZW1lbnRdID0gbmdNb2Nrc1VuaXZlcnNlLmdldERlZmF1bHRzKCkuZ2V0KGRlZik7XG5cbiAgaWYgKG1vZGUgPT09ICdleGNsdWRlJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChtb2RlID09PSAna2VlcCcpIHtcbiAgICByZXR1cm4gZGVmO1xuICB9XG4gIGlmIChtb2RlID09PSAncmVwbGFjZScpIHtcbiAgICByZXR1cm4gcmVwbGFjZW1lbnQ7XG4gIH1cbn07XG5cbm5nTW9ja3NVbml2ZXJzZS5oYXNCdWlsZERlY2xhcmF0aW9uID0gKGRlZjogYW55KTogYm9vbGVhbiA9PiB7XG4gIGlmIChuZ01vY2tzVW5pdmVyc2UuYnVpbHREZWNsYXJhdGlvbnMuaGFzKGRlZikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoIW5nTW9ja3NVbml2ZXJzZS5nZXREZWZhdWx0cygpLmhhcyhkZWYpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgW21vZGVdID0gbmdNb2Nrc1VuaXZlcnNlLmdldERlZmF1bHRzKCkuZ2V0KGRlZik7XG5cbiAgcmV0dXJuIG1vZGUgIT09ICdtb2NrJztcbn07XG5cbmNvbnN0IGhhc0J1aWxkRGVjbGFyYXRpb24gPSAoZGVmOiBhbnkpOiBib29sZWFuID0+IG5nTW9ja3NVbml2ZXJzZS5oYXNCdWlsZERlY2xhcmF0aW9uKGRlZik7XG5jb25zdCBnZXRCdWlsZERlY2xhcmF0aW9uID0gKGRlZjogYW55KTogYW55ID0+IG5nTW9ja3NVbml2ZXJzZS5nZXRCdWlsZERlY2xhcmF0aW9uKGRlZik7XG5cbm5nTW9ja3NVbml2ZXJzZS5pc0V4Y2x1ZGVkRGVmID0gKGRlZjogYW55KTogYm9vbGVhbiA9PiBoYXNCdWlsZERlY2xhcmF0aW9uKGRlZikgJiYgZ2V0QnVpbGREZWNsYXJhdGlvbihkZWYpID09PSBudWxsO1xuXG5uZ01vY2tzVW5pdmVyc2UuaXNQcm92aWRlZERlZiA9IChkZWY6IGFueSk6IGJvb2xlYW4gPT4gaGFzQnVpbGREZWNsYXJhdGlvbihkZWYpICYmIGdldEJ1aWxkRGVjbGFyYXRpb24oZGVmKSAhPT0gbnVsbDtcblxuZXhwb3J0IGRlZmF1bHQgKCgpOiBOZ01vY2tzVW5pdmVyc2UgPT4gbmdNb2Nrc1VuaXZlcnNlKSgpO1xuIl19
@@ -11,20 +11,37 @@ var __values = (this && this.__values) || function(o) {
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- var forms_1 = require("@angular/forms");
15
14
  var core_helpers_1 = require("../common/core.helpers");
16
15
  var func_get_provider_1 = require("../common/func.get-provider");
17
16
  var mock_control_value_accessor_proxy_1 = require("../common/mock-control-value-accessor-proxy");
18
17
  var helper_mock_service_1 = require("../mock-service/helper.mock-service");
19
18
  var to_factory_provider_1 = require("./to-factory-provider");
19
+ // tslint:disable variable-name
20
+ var NG_ASYNC_VALIDATORS;
21
+ var NG_VALIDATORS;
22
+ var NG_VALUE_ACCESSOR;
23
+ // tslint:enable variable-name
24
+ try {
25
+ // tslint:disable-next-line no-require-imports no-var-requires
26
+ var module_1 = require('@angular/forms');
27
+ // istanbul ignore else
28
+ if (module_1) {
29
+ NG_ASYNC_VALIDATORS = module_1.NG_ASYNC_VALIDATORS;
30
+ NG_VALIDATORS = module_1.NG_VALIDATORS;
31
+ NG_VALUE_ACCESSOR = module_1.NG_VALUE_ACCESSOR;
32
+ }
33
+ }
34
+ catch (e) {
35
+ // nothing to do;
36
+ }
20
37
  var processProvider = function (provider, mockType, resolutions) {
21
- if (provider === forms_1.NG_VALIDATORS) {
38
+ if (NG_VALIDATORS && provider === NG_VALIDATORS) {
22
39
  return to_factory_provider_1.default(provider, function () { return new mock_control_value_accessor_proxy_1.MockValidatorProxy(mockType); });
23
40
  }
24
- if (provider === forms_1.NG_ASYNC_VALIDATORS) {
41
+ if (NG_ASYNC_VALIDATORS && provider === NG_ASYNC_VALIDATORS) {
25
42
  return to_factory_provider_1.default(provider, function () { return new mock_control_value_accessor_proxy_1.MockAsyncValidatorProxy(mockType); });
26
43
  }
27
- if (provider === forms_1.NG_VALUE_ACCESSOR) {
44
+ if (NG_VALUE_ACCESSOR && provider === NG_VALUE_ACCESSOR) {
28
45
  return to_factory_provider_1.default(provider, function () { return new mock_control_value_accessor_proxy_1.MockControlValueAccessorProxy(mockType); });
29
46
  }
30
47
  return helper_mock_service_1.default.resolveProvider(provider, resolutions);
@@ -38,7 +55,7 @@ exports.default = (function (mockType, providers) {
38
55
  for (var _b = __values(core_helpers_1.flatten(providers || /* istanbul ignore next */ [])), _c = _b.next(); !_c.done; _c = _b.next()) {
39
56
  var provider = _c.value;
40
57
  var provide = func_get_provider_1.default(provider);
41
- if (provide === forms_1.NG_VALUE_ACCESSOR) {
58
+ if (provide === NG_VALUE_ACCESSOR) {
42
59
  setControlValueAccessor = false;
43
60
  }
44
61
  var mock = processProvider(provide, mockType, resolutions);
@@ -59,4 +76,4 @@ exports.default = (function (mockType, providers) {
59
76
  setControlValueAccessor: setControlValueAccessor,
60
77
  };
61
78
  });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUtcHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2svY2xvbmUtcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSx3Q0FBdUY7QUFFdkYsdURBQWlEO0FBRWpELGlFQUEwRDtBQUMxRCxpR0FJcUQ7QUFDckQsMkVBQW9FO0FBRXBFLDZEQUFzRDtBQUV0RCxJQUFNLGVBQWUsR0FBRyxVQUFDLFFBQWEsRUFBRSxRQUFzQixFQUFFLFdBQTBCO0lBQ3hGLElBQUksUUFBUSxLQUFLLHFCQUFhLEVBQUU7UUFDOUIsT0FBTyw2QkFBaUIsQ0FBQyxRQUFRLEVBQUUsY0FBTSxPQUFBLElBQUksc0RBQWtCLENBQUMsUUFBUSxDQUFDLEVBQWhDLENBQWdDLENBQUMsQ0FBQztLQUM1RTtJQUNELElBQUksUUFBUSxLQUFLLDJCQUFtQixFQUFFO1FBQ3BDLE9BQU8sNkJBQWlCLENBQUMsUUFBUSxFQUFFLGNBQU0sT0FBQSxJQUFJLDJEQUF1QixDQUFDLFFBQVEsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDLENBQUM7S0FDakY7SUFDRCxJQUFJLFFBQVEsS0FBSyx5QkFBaUIsRUFBRTtRQUNsQyxPQUFPLDZCQUFpQixDQUFDLFFBQVEsRUFBRSxjQUFNLE9BQUEsSUFBSSxpRUFBNkIsQ0FBQyxRQUFRLENBQUMsRUFBM0MsQ0FBMkMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsT0FBTyw2QkFBaUIsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLG1CQUFlLFVBQ2IsUUFBc0IsRUFDdEIsU0FBaUI7O0lBS2pCLElBQU0sTUFBTSxHQUFlLEVBQUUsQ0FBQztJQUM5QixJQUFJLHVCQUE0QyxDQUFDO0lBQ2pELElBQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7O1FBRTlCLEtBQXVCLElBQUEsS0FBQSxTQUFBLHNCQUFPLENBQUMsU0FBUyxJQUFJLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQXZFLElBQU0sUUFBUSxXQUFBO1lBQ2pCLElBQU0sT0FBTyxHQUFHLDJCQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsSUFBSSxPQUFPLEtBQUsseUJBQWlCLEVBQUU7Z0JBQ2pDLHVCQUF1QixHQUFHLEtBQUssQ0FBQzthQUNqQztZQUNELElBQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzdELElBQUksSUFBSSxFQUFFO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkI7U0FDRjs7Ozs7Ozs7O0lBRUQsT0FBTztRQUNMLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLHVCQUF1Qix5QkFBQTtLQUN4QixDQUFDO0FBQ0osQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX0FTWU5DX1ZBTElEQVRPUlMsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUuaGVscGVycyc7XG5pbXBvcnQgeyBBbnlUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUudHlwZXMnO1xuaW1wb3J0IGZ1bmNHZXRQcm92aWRlciBmcm9tICcuLi9jb21tb24vZnVuYy5nZXQtcHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgTW9ja0FzeW5jVmFsaWRhdG9yUHJveHksXG4gIE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvclByb3h5LFxuICBNb2NrVmFsaWRhdG9yUHJveHksXG59IGZyb20gJy4uL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3ItcHJveHknO1xuaW1wb3J0IGhlbHBlck1vY2tTZXJ2aWNlIGZyb20gJy4uL21vY2stc2VydmljZS9oZWxwZXIubW9jay1zZXJ2aWNlJztcblxuaW1wb3J0IHRvRmFjdG9yeVByb3ZpZGVyIGZyb20gJy4vdG8tZmFjdG9yeS1wcm92aWRlcic7XG5cbmNvbnN0IHByb2Nlc3NQcm92aWRlciA9IChwcm92aWRlcjogYW55LCBtb2NrVHlwZTogQW55VHlwZTxhbnk+LCByZXNvbHV0aW9uczogTWFwPGFueSwgYW55Pik6IGFueSA9PiB7XG4gIGlmIChwcm92aWRlciA9PT0gTkdfVkFMSURBVE9SUykge1xuICAgIHJldHVybiB0b0ZhY3RvcnlQcm92aWRlcihwcm92aWRlciwgKCkgPT4gbmV3IE1vY2tWYWxpZGF0b3JQcm94eShtb2NrVHlwZSkpO1xuICB9XG4gIGlmIChwcm92aWRlciA9PT0gTkdfQVNZTkNfVkFMSURBVE9SUykge1xuICAgIHJldHVybiB0b0ZhY3RvcnlQcm92aWRlcihwcm92aWRlciwgKCkgPT4gbmV3IE1vY2tBc3luY1ZhbGlkYXRvclByb3h5KG1vY2tUeXBlKSk7XG4gIH1cbiAgaWYgKHByb3ZpZGVyID09PSBOR19WQUxVRV9BQ0NFU1NPUikge1xuICAgIHJldHVybiB0b0ZhY3RvcnlQcm92aWRlcihwcm92aWRlciwgKCkgPT4gbmV3IE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvclByb3h5KG1vY2tUeXBlKSk7XG4gIH1cblxuICByZXR1cm4gaGVscGVyTW9ja1NlcnZpY2UucmVzb2x2ZVByb3ZpZGVyKHByb3ZpZGVyLCByZXNvbHV0aW9ucyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoXG4gIG1vY2tUeXBlOiBBbnlUeXBlPGFueT4sXG4gIHByb3ZpZGVycz86IGFueVtdLFxuKToge1xuICBwcm92aWRlcnM6IFByb3ZpZGVyW107XG4gIHNldENvbnRyb2xWYWx1ZUFjY2Vzc29yPzogYm9vbGVhbjtcbn0gPT4ge1xuICBjb25zdCByZXN1bHQ6IFByb3ZpZGVyW10gPSBbXTtcbiAgbGV0IHNldENvbnRyb2xWYWx1ZUFjY2Vzc29yOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBjb25zdCByZXNvbHV0aW9ucyA9IG5ldyBNYXAoKTtcblxuICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIGZsYXR0ZW4ocHJvdmlkZXJzIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIFtdKSkge1xuICAgIGNvbnN0IHByb3ZpZGUgPSBmdW5jR2V0UHJvdmlkZXIocHJvdmlkZXIpO1xuICAgIGlmIChwcm92aWRlID09PSBOR19WQUxVRV9BQ0NFU1NPUikge1xuICAgICAgc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IgPSBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgbW9jayA9IHByb2Nlc3NQcm92aWRlcihwcm92aWRlLCBtb2NrVHlwZSwgcmVzb2x1dGlvbnMpO1xuICAgIGlmIChtb2NrKSB7XG4gICAgICByZXN1bHQucHVzaChtb2NrKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHByb3ZpZGVyczogcmVzdWx0LFxuICAgIHNldENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICB9O1xufTtcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUtcHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2svY2xvbmUtcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFQSx1REFBaUQ7QUFFakQsaUVBQTBEO0FBQzFELGlHQUlxRDtBQUNyRCwyRUFBb0U7QUFFcEUsNkRBQXNEO0FBRXRELCtCQUErQjtBQUMvQixJQUFJLG1CQUFvRCxDQUFDO0FBQ3pELElBQUksYUFBOEMsQ0FBQztBQUNuRCxJQUFJLGlCQUFrRCxDQUFDO0FBQ3ZELDhCQUE4QjtBQUM5QixJQUFJO0lBQ0YsOERBQThEO0lBQzlELElBQU0sUUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLHVCQUF1QjtJQUN2QixJQUFJLFFBQU0sRUFBRTtRQUNWLG1CQUFtQixHQUFHLFFBQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUNqRCxhQUFhLEdBQUcsUUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxpQkFBaUIsR0FBRyxRQUFNLENBQUMsaUJBQWlCLENBQUM7S0FDOUM7Q0FDRjtBQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ1YsaUJBQWlCO0NBQ2xCO0FBRUQsSUFBTSxlQUFlLEdBQUcsVUFBQyxRQUFhLEVBQUUsUUFBc0IsRUFBRSxXQUEwQjtJQUN4RixJQUFJLGFBQWEsSUFBSSxRQUFRLEtBQUssYUFBYSxFQUFFO1FBQy9DLE9BQU8sNkJBQWlCLENBQUMsUUFBUSxFQUFFLGNBQU0sT0FBQSxJQUFJLHNEQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFoQyxDQUFnQyxDQUFDLENBQUM7S0FDNUU7SUFDRCxJQUFJLG1CQUFtQixJQUFJLFFBQVEsS0FBSyxtQkFBbUIsRUFBRTtRQUMzRCxPQUFPLDZCQUFpQixDQUFDLFFBQVEsRUFBRSxjQUFNLE9BQUEsSUFBSSwyREFBdUIsQ0FBQyxRQUFRLENBQUMsRUFBckMsQ0FBcUMsQ0FBQyxDQUFDO0tBQ2pGO0lBQ0QsSUFBSSxpQkFBaUIsSUFBSSxRQUFRLEtBQUssaUJBQWlCLEVBQUU7UUFDdkQsT0FBTyw2QkFBaUIsQ0FBQyxRQUFRLEVBQUUsY0FBTSxPQUFBLElBQUksaUVBQTZCLENBQUMsUUFBUSxDQUFDLEVBQTNDLENBQTJDLENBQUMsQ0FBQztLQUN2RjtJQUVELE9BQU8sNkJBQWlCLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixtQkFBZSxVQUNiLFFBQXNCLEVBQ3RCLFNBQWlCOztJQUtqQixJQUFNLE1BQU0sR0FBZSxFQUFFLENBQUM7SUFDOUIsSUFBSSx1QkFBNEMsQ0FBQztJQUNqRCxJQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDOztRQUU5QixLQUF1QixJQUFBLEtBQUEsU0FBQSxzQkFBTyxDQUFDLFNBQVMsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUF2RSxJQUFNLFFBQVEsV0FBQTtZQUNqQixJQUFNLE9BQU8sR0FBRywyQkFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLElBQUksT0FBTyxLQUFLLGlCQUFpQixFQUFFO2dCQUNqQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7YUFDakM7WUFDRCxJQUFNLElBQUksR0FBRyxlQUFlLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM3RCxJQUFJLElBQUksRUFBRTtnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25CO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTTtRQUNqQix1QkFBdUIseUJBQUE7S0FDeEIsQ0FBQztBQUNKLENBQUMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUuaGVscGVycyc7XG5pbXBvcnQgeyBBbnlUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUudHlwZXMnO1xuaW1wb3J0IGZ1bmNHZXRQcm92aWRlciBmcm9tICcuLi9jb21tb24vZnVuYy5nZXQtcHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgTW9ja0FzeW5jVmFsaWRhdG9yUHJveHksXG4gIE1vY2tDb250cm9sVmFsdWVBY2Nlc3NvclByb3h5LFxuICBNb2NrVmFsaWRhdG9yUHJveHksXG59IGZyb20gJy4uL2NvbW1vbi9tb2NrLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3ItcHJveHknO1xuaW1wb3J0IGhlbHBlck1vY2tTZXJ2aWNlIGZyb20gJy4uL21vY2stc2VydmljZS9oZWxwZXIubW9jay1zZXJ2aWNlJztcblxuaW1wb3J0IHRvRmFjdG9yeVByb3ZpZGVyIGZyb20gJy4vdG8tZmFjdG9yeS1wcm92aWRlcic7XG5cbi8vIHRzbGludDpkaXNhYmxlIHZhcmlhYmxlLW5hbWVcbmxldCBOR19BU1lOQ19WQUxJREFUT1JTOiBJbmplY3Rpb25Ub2tlbjxhbnk+IHwgdW5kZWZpbmVkO1xubGV0IE5HX1ZBTElEQVRPUlM6IEluamVjdGlvblRva2VuPGFueT4gfCB1bmRlZmluZWQ7XG5sZXQgTkdfVkFMVUVfQUNDRVNTT1I6IEluamVjdGlvblRva2VuPGFueT4gfCB1bmRlZmluZWQ7XG4vLyB0c2xpbnQ6ZW5hYmxlIHZhcmlhYmxlLW5hbWVcbnRyeSB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby1yZXF1aXJlLWltcG9ydHMgbm8tdmFyLXJlcXVpcmVzXG4gIGNvbnN0IG1vZHVsZSA9IHJlcXVpcmUoJ0Bhbmd1bGFyL2Zvcm1zJyk7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gIGlmIChtb2R1bGUpIHtcbiAgICBOR19BU1lOQ19WQUxJREFUT1JTID0gbW9kdWxlLk5HX0FTWU5DX1ZBTElEQVRPUlM7XG4gICAgTkdfVkFMSURBVE9SUyA9IG1vZHVsZS5OR19WQUxJREFUT1JTO1xuICAgIE5HX1ZBTFVFX0FDQ0VTU09SID0gbW9kdWxlLk5HX1ZBTFVFX0FDQ0VTU09SO1xuICB9XG59IGNhdGNoIChlKSB7XG4gIC8vIG5vdGhpbmcgdG8gZG87XG59XG5cbmNvbnN0IHByb2Nlc3NQcm92aWRlciA9IChwcm92aWRlcjogYW55LCBtb2NrVHlwZTogQW55VHlwZTxhbnk+LCByZXNvbHV0aW9uczogTWFwPGFueSwgYW55Pik6IGFueSA9PiB7XG4gIGlmIChOR19WQUxJREFUT1JTICYmIHByb3ZpZGVyID09PSBOR19WQUxJREFUT1JTKSB7XG4gICAgcmV0dXJuIHRvRmFjdG9yeVByb3ZpZGVyKHByb3ZpZGVyLCAoKSA9PiBuZXcgTW9ja1ZhbGlkYXRvclByb3h5KG1vY2tUeXBlKSk7XG4gIH1cbiAgaWYgKE5HX0FTWU5DX1ZBTElEQVRPUlMgJiYgcHJvdmlkZXIgPT09IE5HX0FTWU5DX1ZBTElEQVRPUlMpIHtcbiAgICByZXR1cm4gdG9GYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIsICgpID0+IG5ldyBNb2NrQXN5bmNWYWxpZGF0b3JQcm94eShtb2NrVHlwZSkpO1xuICB9XG4gIGlmIChOR19WQUxVRV9BQ0NFU1NPUiAmJiBwcm92aWRlciA9PT0gTkdfVkFMVUVfQUNDRVNTT1IpIHtcbiAgICByZXR1cm4gdG9GYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIsICgpID0+IG5ldyBNb2NrQ29udHJvbFZhbHVlQWNjZXNzb3JQcm94eShtb2NrVHlwZSkpO1xuICB9XG5cbiAgcmV0dXJuIGhlbHBlck1vY2tTZXJ2aWNlLnJlc29sdmVQcm92aWRlcihwcm92aWRlciwgcmVzb2x1dGlvbnMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKFxuICBtb2NrVHlwZTogQW55VHlwZTxhbnk+LFxuICBwcm92aWRlcnM/OiBhbnlbXSxcbik6IHtcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdO1xuICBzZXRDb250cm9sVmFsdWVBY2Nlc3Nvcj86IGJvb2xlYW47XG59ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBQcm92aWRlcltdID0gW107XG4gIGxldCBzZXRDb250cm9sVmFsdWVBY2Nlc3NvcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcmVzb2x1dGlvbnMgPSBuZXcgTWFwKCk7XG5cbiAgZm9yIChjb25zdCBwcm92aWRlciBvZiBmbGF0dGVuKHByb3ZpZGVycyB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBbXSkpIHtcbiAgICBjb25zdCBwcm92aWRlID0gZnVuY0dldFByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgICBpZiAocHJvdmlkZSA9PT0gTkdfVkFMVUVfQUNDRVNTT1IpIHtcbiAgICAgIHNldENvbnRyb2xWYWx1ZUFjY2Vzc29yID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG1vY2sgPSBwcm9jZXNzUHJvdmlkZXIocHJvdmlkZSwgbW9ja1R5cGUsIHJlc29sdXRpb25zKTtcbiAgICBpZiAobW9jaykge1xuICAgICAgcmVzdWx0LnB1c2gobW9jayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlcnM6IHJlc3VsdCxcbiAgICBzZXRDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgfTtcbn07XG4iXX0=
@@ -32,13 +32,13 @@ var __spread = (this && this.__spread) || function () {
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
34
  var decorate_inputs_1 = require("../common/decorate.inputs");
35
+ var decorate_mock_1 = require("../common/decorate.mock");
35
36
  var decorate_outputs_1 = require("../common/decorate.outputs");
36
37
  var decorate_queries_1 = require("../common/decorate.queries");
37
- var mock_of_1 = require("../common/mock-of");
38
38
  var ng_mocks_universe_1 = require("../common/ng-mocks-universe");
39
39
  var helper_mock_service_1 = require("../mock-service/helper.mock-service");
40
- var clone_providers_1 = require("../mock/clone-providers");
41
- var to_existing_provider_1 = require("../mock/to-existing-provider");
40
+ var clone_providers_1 = require("./clone-providers");
41
+ var to_existing_provider_1 = require("./to-existing-provider");
42
42
  exports.default = (function (source, mock, meta, params) {
43
43
  var data = clone_providers_1.default(mock, meta.providers || []);
44
44
  var providers = __spread([to_existing_provider_1.default(source, mock)], data.providers);
@@ -47,12 +47,12 @@ exports.default = (function (source, mock, meta, params) {
47
47
  data.setControlValueAccessor =
48
48
  helper_mock_service_1.default.extractMethodsFromPrototype(source.prototype).indexOf('writeValue') !== -1;
49
49
  }
50
- mock_of_1.MockOf(source, {
50
+ decorate_mock_1.default(mock, source, {
51
51
  config: ng_mocks_universe_1.default.config.get(source),
52
52
  outputs: meta.outputs,
53
53
  setControlValueAccessor: data.setControlValueAccessor,
54
54
  viewChildRefs: meta.viewChildRefs,
55
- })(mock);
55
+ });
56
56
  // istanbul ignore else
57
57
  if (meta.queries) {
58
58
  decorate_inputs_1.default(mock, meta.inputs, Object.keys(meta.queries));
@@ -61,4 +61,4 @@ exports.default = (function (source, mock, meta, params) {
61
61
  decorate_queries_1.default(mock, meta.queries);
62
62
  return options;
63
63
  });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGUtZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay9kZWNvcmF0ZS1kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSw2REFBdUQ7QUFDdkQsK0RBQXlEO0FBQ3pELCtEQUF5RDtBQUN6RCw2Q0FBMkM7QUFDM0MsaUVBQTBEO0FBQzFELDJFQUFvRTtBQUNwRSwyREFBcUQ7QUFDckQscUVBQThEO0FBRTlELG1CQUFlLFVBQ2IsTUFBb0IsRUFDcEIsSUFBa0IsRUFDbEIsSUFNQyxFQUNELE1BQVM7SUFFVCxJQUFNLElBQUksR0FBRyx5QkFBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELElBQU0sU0FBUyxhQUFJLDhCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEUsSUFBTSxPQUFPLHlCQUFXLE1BQU0sS0FBRSxTQUFTLFdBQUEsR0FBRSxDQUFDO0lBRTVDLElBQUksSUFBSSxDQUFDLHVCQUF1QixLQUFLLFNBQVMsRUFBRTtRQUM5QyxJQUFJLENBQUMsdUJBQXVCO1lBQzFCLDZCQUFpQixDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDaEc7SUFDRCxnQkFBTSxDQUFDLE1BQU0sRUFBRTtRQUNiLE1BQU0sRUFBRSwyQkFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztRQUNyQix1QkFBdUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO1FBQ3JELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtLQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFVCx1QkFBdUI7SUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ2hCLHlCQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUM5RDtJQUNELDBCQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQywwQkFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIFByb3ZpZGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCBkZWNvcmF0ZUlucHV0cyBmcm9tICcuLi9jb21tb24vZGVjb3JhdGUuaW5wdXRzJztcbmltcG9ydCBkZWNvcmF0ZU91dHB1dHMgZnJvbSAnLi4vY29tbW9uL2RlY29yYXRlLm91dHB1dHMnO1xuaW1wb3J0IGRlY29yYXRlUXVlcmllcyBmcm9tICcuLi9jb21tb24vZGVjb3JhdGUucXVlcmllcyc7XG5pbXBvcnQgeyBNb2NrT2YgfSBmcm9tICcuLi9jb21tb24vbW9jay1vZic7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5pbXBvcnQgaGVscGVyTW9ja1NlcnZpY2UgZnJvbSAnLi4vbW9jay1zZXJ2aWNlL2hlbHBlci5tb2NrLXNlcnZpY2UnO1xuaW1wb3J0IGNsb25lUHJvdmlkZXJzIGZyb20gJy4uL21vY2svY2xvbmUtcHJvdmlkZXJzJztcbmltcG9ydCB0b0V4aXN0aW5nUHJvdmlkZXIgZnJvbSAnLi4vbW9jay90by1leGlzdGluZy1wcm92aWRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IDxUIGV4dGVuZHMgQ29tcG9uZW50IHwgRGlyZWN0aXZlPihcbiAgc291cmNlOiBBbnlUeXBlPGFueT4sXG4gIG1vY2s6IEFueVR5cGU8YW55PixcbiAgbWV0YToge1xuICAgIGlucHV0cz86IHN0cmluZ1tdO1xuICAgIG91dHB1dHM/OiBzdHJpbmdbXTtcbiAgICBwcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICAgIHF1ZXJpZXM/OiBSZWNvcmQ8c3RyaW5nLCBWaWV3Q2hpbGQ+O1xuICAgIHZpZXdDaGlsZFJlZnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICB9LFxuICBwYXJhbXM6IFQsXG4pOiBUID0+IHtcbiAgY29uc3QgZGF0YSA9IGNsb25lUHJvdmlkZXJzKG1vY2ssIG1ldGEucHJvdmlkZXJzIHx8IFtdKTtcbiAgY29uc3QgcHJvdmlkZXJzID0gW3RvRXhpc3RpbmdQcm92aWRlcihzb3VyY2UsIG1vY2spLCAuLi5kYXRhLnByb3ZpZGVyc107XG4gIGNvbnN0IG9wdGlvbnM6IFQgPSB7IC4uLnBhcmFtcywgcHJvdmlkZXJzIH07XG5cbiAgaWYgKGRhdGEuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IgPT09IHVuZGVmaW5lZCkge1xuICAgIGRhdGEuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IgPVxuICAgICAgaGVscGVyTW9ja1NlcnZpY2UuZXh0cmFjdE1ldGhvZHNGcm9tUHJvdG90eXBlKHNvdXJjZS5wcm90b3R5cGUpLmluZGV4T2YoJ3dyaXRlVmFsdWUnKSAhPT0gLTE7XG4gIH1cbiAgTW9ja09mKHNvdXJjZSwge1xuICAgIGNvbmZpZzogbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZy5nZXQoc291cmNlKSxcbiAgICBvdXRwdXRzOiBtZXRhLm91dHB1dHMsXG4gICAgc2V0Q29udHJvbFZhbHVlQWNjZXNzb3I6IGRhdGEuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgdmlld0NoaWxkUmVmczogbWV0YS52aWV3Q2hpbGRSZWZzLFxuICB9KShtb2NrKTtcblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICBpZiAobWV0YS5xdWVyaWVzKSB7XG4gICAgZGVjb3JhdGVJbnB1dHMobW9jaywgbWV0YS5pbnB1dHMsIE9iamVjdC5rZXlzKG1ldGEucXVlcmllcykpO1xuICB9XG4gIGRlY29yYXRlT3V0cHV0cyhtb2NrLCBtZXRhLm91dHB1dHMpO1xuICBkZWNvcmF0ZVF1ZXJpZXMobW9jaywgbWV0YS5xdWVyaWVzKTtcblxuICByZXR1cm4gb3B0aW9ucztcbn07XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGUtZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvbW9jay9kZWNvcmF0ZS1kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSw2REFBdUQ7QUFDdkQseURBQW1EO0FBQ25ELCtEQUF5RDtBQUN6RCwrREFBeUQ7QUFDekQsaUVBQTBEO0FBQzFELDJFQUFvRTtBQUVwRSxxREFBK0M7QUFDL0MsK0RBQXdEO0FBRXhELG1CQUFlLFVBQ2IsTUFBb0IsRUFDcEIsSUFBa0IsRUFDbEIsSUFNQyxFQUNELE1BQVM7SUFFVCxJQUFNLElBQUksR0FBRyx5QkFBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELElBQU0sU0FBUyxhQUFJLDhCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEUsSUFBTSxPQUFPLHlCQUFXLE1BQU0sS0FBRSxTQUFTLFdBQUEsR0FBRSxDQUFDO0lBRTVDLElBQUksSUFBSSxDQUFDLHVCQUF1QixLQUFLLFNBQVMsRUFBRTtRQUM5QyxJQUFJLENBQUMsdUJBQXVCO1lBQzFCLDZCQUFpQixDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDaEc7SUFDRCx1QkFBWSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDekIsTUFBTSxFQUFFLDJCQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDMUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3JCLHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUI7UUFDckQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUMsQ0FBQztJQUVILHVCQUF1QjtJQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDaEIseUJBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQzlEO0lBQ0QsMEJBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLDBCQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwQyxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgUHJvdmlkZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbnlUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2NvcmUudHlwZXMnO1xuaW1wb3J0IGRlY29yYXRlSW5wdXRzIGZyb20gJy4uL2NvbW1vbi9kZWNvcmF0ZS5pbnB1dHMnO1xuaW1wb3J0IGRlY29yYXRlTW9jayBmcm9tICcuLi9jb21tb24vZGVjb3JhdGUubW9jayc7XG5pbXBvcnQgZGVjb3JhdGVPdXRwdXRzIGZyb20gJy4uL2NvbW1vbi9kZWNvcmF0ZS5vdXRwdXRzJztcbmltcG9ydCBkZWNvcmF0ZVF1ZXJpZXMgZnJvbSAnLi4vY29tbW9uL2RlY29yYXRlLnF1ZXJpZXMnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuaW1wb3J0IGhlbHBlck1vY2tTZXJ2aWNlIGZyb20gJy4uL21vY2stc2VydmljZS9oZWxwZXIubW9jay1zZXJ2aWNlJztcblxuaW1wb3J0IGNsb25lUHJvdmlkZXJzIGZyb20gJy4vY2xvbmUtcHJvdmlkZXJzJztcbmltcG9ydCB0b0V4aXN0aW5nUHJvdmlkZXIgZnJvbSAnLi90by1leGlzdGluZy1wcm92aWRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IDxUIGV4dGVuZHMgQ29tcG9uZW50IHwgRGlyZWN0aXZlPihcbiAgc291cmNlOiBBbnlUeXBlPGFueT4sXG4gIG1vY2s6IEFueVR5cGU8YW55PixcbiAgbWV0YToge1xuICAgIGlucHV0cz86IHN0cmluZ1tdO1xuICAgIG91dHB1dHM/OiBzdHJpbmdbXTtcbiAgICBwcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICAgIHF1ZXJpZXM/OiBSZWNvcmQ8c3RyaW5nLCBWaWV3Q2hpbGQ+O1xuICAgIHZpZXdDaGlsZFJlZnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICB9LFxuICBwYXJhbXM6IFQsXG4pOiBUID0+IHtcbiAgY29uc3QgZGF0YSA9IGNsb25lUHJvdmlkZXJzKG1vY2ssIG1ldGEucHJvdmlkZXJzIHx8IFtdKTtcbiAgY29uc3QgcHJvdmlkZXJzID0gW3RvRXhpc3RpbmdQcm92aWRlcihzb3VyY2UsIG1vY2spLCAuLi5kYXRhLnByb3ZpZGVyc107XG4gIGNvbnN0IG9wdGlvbnM6IFQgPSB7IC4uLnBhcmFtcywgcHJvdmlkZXJzIH07XG5cbiAgaWYgKGRhdGEuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IgPT09IHVuZGVmaW5lZCkge1xuICAgIGRhdGEuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IgPVxuICAgICAgaGVscGVyTW9ja1NlcnZpY2UuZXh0cmFjdE1ldGhvZHNGcm9tUHJvdG90eXBlKHNvdXJjZS5wcm90b3R5cGUpLmluZGV4T2YoJ3dyaXRlVmFsdWUnKSAhPT0gLTE7XG4gIH1cbiAgZGVjb3JhdGVNb2NrKG1vY2ssIHNvdXJjZSwge1xuICAgIGNvbmZpZzogbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZy5nZXQoc291cmNlKSxcbiAgICBvdXRwdXRzOiBtZXRhLm91dHB1dHMsXG4gICAgc2V0Q29udHJvbFZhbHVlQWNjZXNzb3I6IGRhdGEuc2V0Q29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgdmlld0NoaWxkUmVmczogbWV0YS52aWV3Q2hpbGRSZWZzLFxuICB9KTtcblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICBpZiAobWV0YS5xdWVyaWVzKSB7XG4gICAgZGVjb3JhdGVJbnB1dHMobW9jaywgbWV0YS5pbnB1dHMsIE9iamVjdC5rZXlzKG1ldGEucXVlcmllcykpO1xuICB9XG4gIGRlY29yYXRlT3V0cHV0cyhtb2NrLCBtZXRhLm91dHB1dHMpO1xuICBkZWNvcmF0ZVF1ZXJpZXMobW9jaywgbWV0YS5xdWVyaWVzKTtcblxuICByZXR1cm4gb3B0aW9ucztcbn07XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { AnyType, Type } from '../common/core.types';
2
2
  declare const _default: (provide: AnyType<any>, type: AnyType<any>) => {
3
- provide: Type<any> | import("../common/core.types").AbstractType<any>;
3
+ provide: AnyType<any>;
4
4
  useExisting: Type<any> & {
5
5
  __ngMocksSkip?: boolean | undefined;
6
6
  };
@@ -1,7 +1,7 @@
1
1
  import { AnyType } from '../common/core.types';
2
2
  declare const _default: (provide: AnyType<any>, useFactory: any) => {
3
3
  multi: boolean;
4
- provide: import("../common/core.types").Type<any> | import("../common/core.types").AbstractType<any>;
4
+ provide: AnyType<any>;
5
5
  useFactory: any;
6
6
  };
7
7
  export default _default;
@@ -25,6 +25,7 @@ var MockBuilderStash = /** @class */ (function () {
25
25
  cacheDeclarations: ng_mocks_universe_1.default.cacheDeclarations,
26
26
  cacheProviders: ng_mocks_universe_1.default.cacheProviders,
27
27
  config: ng_mocks_universe_1.default.config,
28
+ configInstance: ng_mocks_universe_1.default.configInstance,
28
29
  flags: ng_mocks_universe_1.default.flags,
29
30
  touches: ng_mocks_universe_1.default.touches,
30
31
  };
@@ -33,6 +34,7 @@ var MockBuilderStash = /** @class */ (function () {
33
34
  ng_mocks_universe_1.default.cacheDeclarations = new Map();
34
35
  ng_mocks_universe_1.default.cacheProviders = new Map();
35
36
  ng_mocks_universe_1.default.config = new Map();
37
+ ng_mocks_universe_1.default.configInstance = new Map();
36
38
  ng_mocks_universe_1.default.flags = new Set(core_config_1.default.flags);
37
39
  ng_mocks_universe_1.default.touches = new Set();
38
40
  };
@@ -55,4 +57,4 @@ var MockBuilderStash = /** @class */ (function () {
55
57
  return MockBuilderStash;
56
58
  }());
57
59
  exports.MockBuilderStash = MockBuilderStash;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLXN0YXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXItc3Rhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBK0M7QUFDL0MsaUVBQTBEO0FBRTFEO0lBQUE7UUFDWSxTQUFJLEdBQTJCLEVBQUUsQ0FBQztJQTJCOUMsQ0FBQztJQXpCUSxpQ0FBTSxHQUFiO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWLGlCQUFpQixFQUFFLDJCQUFlLENBQUMsaUJBQWlCO1lBQ3BELGNBQWMsRUFBRSwyQkFBZSxDQUFDLGNBQWM7WUFDOUMsaUJBQWlCLEVBQUUsMkJBQWUsQ0FBQyxpQkFBaUI7WUFDcEQsY0FBYyxFQUFFLDJCQUFlLENBQUMsY0FBYztZQUM5QyxNQUFNLEVBQUUsMkJBQWUsQ0FBQyxNQUFNO1lBQzlCLEtBQUssRUFBRSwyQkFBZSxDQUFDLEtBQUs7WUFDNUIsT0FBTyxFQUFFLDJCQUFlLENBQUMsT0FBTztTQUNqQyxDQUFDO1FBRUYsMkJBQWUsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlDLDJCQUFlLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0MsMkJBQWUsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlDLDJCQUFlLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0MsMkJBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQywyQkFBZSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxxQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELDJCQUFlLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLGtDQUFPLEdBQWQ7OztZQUNFLEtBQWtCLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO2dCQUFyQyxJQUFNLEdBQUcsV0FBQTtnQkFDWCwyQkFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBSSxJQUFJLENBQUMsSUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pEOzs7Ozs7Ozs7SUFDSCxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBNUJELElBNEJDO0FBNUJZLDRDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3JlQ29uZmlnIGZyb20gJy4uL2NvbW1vbi9jb3JlLmNvbmZpZyc7XG5pbXBvcnQgbmdNb2Nrc1VuaXZlcnNlIGZyb20gJy4uL2NvbW1vbi9uZy1tb2Nrcy11bml2ZXJzZSc7XG5cbmV4cG9ydCBjbGFzcyBNb2NrQnVpbGRlclN0YXNoIHtcbiAgcHJvdGVjdGVkIGRhdGE6IFJlY29yZDxrZXlvZiBhbnksIGFueT4gPSB7fTtcblxuICBwdWJsaWMgYmFja3VwKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IHtcbiAgICAgIGJ1aWx0RGVjbGFyYXRpb25zOiBuZ01vY2tzVW5pdmVyc2UuYnVpbHREZWNsYXJhdGlvbnMsXG4gICAgICBidWlsdFByb3ZpZGVyczogbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0UHJvdmlkZXJzLFxuICAgICAgY2FjaGVEZWNsYXJhdGlvbnM6IG5nTW9ja3NVbml2ZXJzZS5jYWNoZURlY2xhcmF0aW9ucyxcbiAgICAgIGNhY2hlUHJvdmlkZXJzOiBuZ01vY2tzVW5pdmVyc2UuY2FjaGVQcm92aWRlcnMsXG4gICAgICBjb25maWc6IG5nTW9ja3NVbml2ZXJzZS5jb25maWcsXG4gICAgICBmbGFnczogbmdNb2Nrc1VuaXZlcnNlLmZsYWdzLFxuICAgICAgdG91Y2hlczogbmdNb2Nrc1VuaXZlcnNlLnRvdWNoZXMsXG4gICAgfTtcblxuICAgIG5nTW9ja3NVbml2ZXJzZS5idWlsdERlY2xhcmF0aW9ucyA9IG5ldyBNYXAoKTtcbiAgICBuZ01vY2tzVW5pdmVyc2UuYnVpbHRQcm92aWRlcnMgPSBuZXcgTWFwKCk7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLmNhY2hlRGVjbGFyYXRpb25zID0gbmV3IE1hcCgpO1xuICAgIG5nTW9ja3NVbml2ZXJzZS5jYWNoZVByb3ZpZGVycyA9IG5ldyBNYXAoKTtcbiAgICBuZ01vY2tzVW5pdmVyc2UuY29uZmlnID0gbmV3IE1hcCgpO1xuICAgIG5nTW9ja3NVbml2ZXJzZS5mbGFncyA9IG5ldyBTZXQoY29yZUNvbmZpZy5mbGFncyk7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLnRvdWNoZXMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVzdG9yZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmRhdGEpKSB7XG4gICAgICAobmdNb2Nrc1VuaXZlcnNlIGFzIGFueSlba2V5XSA9ICh0aGlzLmRhdGEgYXMgYW55KVtrZXldO1xuICAgIH1cbiAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLXN0YXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXItc3Rhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBK0M7QUFDL0MsaUVBQTBEO0FBRTFEO0lBQUE7UUFDWSxTQUFJLEdBQTJCLEVBQUUsQ0FBQztJQTZCOUMsQ0FBQztJQTNCUSxpQ0FBTSxHQUFiO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWLGlCQUFpQixFQUFFLDJCQUFlLENBQUMsaUJBQWlCO1lBQ3BELGNBQWMsRUFBRSwyQkFBZSxDQUFDLGNBQWM7WUFDOUMsaUJBQWlCLEVBQUUsMkJBQWUsQ0FBQyxpQkFBaUI7WUFDcEQsY0FBYyxFQUFFLDJCQUFlLENBQUMsY0FBYztZQUM5QyxNQUFNLEVBQUUsMkJBQWUsQ0FBQyxNQUFNO1lBQzlCLGNBQWMsRUFBRSwyQkFBZSxDQUFDLGNBQWM7WUFDOUMsS0FBSyxFQUFFLDJCQUFlLENBQUMsS0FBSztZQUM1QixPQUFPLEVBQUUsMkJBQWUsQ0FBQyxPQUFPO1NBQ2pDLENBQUM7UUFFRiwyQkFBZSxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDOUMsMkJBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMzQywyQkFBZSxDQUFDLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDOUMsMkJBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMzQywyQkFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25DLDJCQUFlLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0MsMkJBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMscUJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCwyQkFBZSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxrQ0FBTyxHQUFkOzs7WUFDRSxLQUFrQixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBckMsSUFBTSxHQUFHLFdBQUE7Z0JBQ1gsMkJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUksSUFBSSxDQUFDLElBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6RDs7Ozs7Ozs7O0lBQ0gsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQTlCRCxJQThCQztBQTlCWSw0Q0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29yZUNvbmZpZyBmcm9tICcuLi9jb21tb24vY29yZS5jb25maWcnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuXG5leHBvcnQgY2xhc3MgTW9ja0J1aWxkZXJTdGFzaCB7XG4gIHByb3RlY3RlZCBkYXRhOiBSZWNvcmQ8a2V5b2YgYW55LCBhbnk+ID0ge307XG5cbiAgcHVibGljIGJhY2t1cCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSB7XG4gICAgICBidWlsdERlY2xhcmF0aW9uczogbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0RGVjbGFyYXRpb25zLFxuICAgICAgYnVpbHRQcm92aWRlcnM6IG5nTW9ja3NVbml2ZXJzZS5idWlsdFByb3ZpZGVycyxcbiAgICAgIGNhY2hlRGVjbGFyYXRpb25zOiBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMsXG4gICAgICBjYWNoZVByb3ZpZGVyczogbmdNb2Nrc1VuaXZlcnNlLmNhY2hlUHJvdmlkZXJzLFxuICAgICAgY29uZmlnOiBuZ01vY2tzVW5pdmVyc2UuY29uZmlnLFxuICAgICAgY29uZmlnSW5zdGFuY2U6IG5nTW9ja3NVbml2ZXJzZS5jb25maWdJbnN0YW5jZSxcbiAgICAgIGZsYWdzOiBuZ01vY2tzVW5pdmVyc2UuZmxhZ3MsXG4gICAgICB0b3VjaGVzOiBuZ01vY2tzVW5pdmVyc2UudG91Y2hlcyxcbiAgICB9O1xuXG4gICAgbmdNb2Nrc1VuaXZlcnNlLmJ1aWx0RGVjbGFyYXRpb25zID0gbmV3IE1hcCgpO1xuICAgIG5nTW9ja3NVbml2ZXJzZS5idWlsdFByb3ZpZGVycyA9IG5ldyBNYXAoKTtcbiAgICBuZ01vY2tzVW5pdmVyc2UuY2FjaGVEZWNsYXJhdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLmNhY2hlUHJvdmlkZXJzID0gbmV3IE1hcCgpO1xuICAgIG5nTW9ja3NVbml2ZXJzZS5jb25maWcgPSBuZXcgTWFwKCk7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLmNvbmZpZ0luc3RhbmNlID0gbmV3IE1hcCgpO1xuICAgIG5nTW9ja3NVbml2ZXJzZS5mbGFncyA9IG5ldyBTZXQoY29yZUNvbmZpZy5mbGFncyk7XG4gICAgbmdNb2Nrc1VuaXZlcnNlLnRvdWNoZXMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVzdG9yZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmRhdGEpKSB7XG4gICAgICAobmdNb2Nrc1VuaXZlcnNlIGFzIGFueSlba2V5XSA9ICh0aGlzLmRhdGEgYXMgYW55KVtrZXldO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -88,7 +88,7 @@ var applyOverrides = function (testBed, overrides) {
88
88
  finally { if (e_2) throw e_2.error; }
89
89
  }
90
90
  };
91
- // Thanks Ivy and its TestBed.override - it doesn't clean up leftovers.
91
+ // Thanks Ivy and its TestBed.override - it does not clean up leftovers.
92
92
  var applyNgMocksOverrides = function (testBed) {
93
93
  var e_3, _a;
94
94
  if (testBed.ngMocksOverrides) {
@@ -173,4 +173,4 @@ function MockBuilder(keepDeclaration, itsModuleToMock) {
173
173
  return instance;
174
174
  }
175
175
  exports.MockBuilder = MockBuilder;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaURBQXFHO0FBRXJHLHVEQUE2RDtBQUM3RCxxREFBcUU7QUFFckUsMkRBQW1EO0FBQ25ELGlFQUEwRDtBQUMxRCwwREFBcUQ7QUFFckQsdUVBQW9FO0FBR3BFLElBQU0sYUFBYSxHQUFHLFVBQ3BCLFNBQWM7O0lBS2QsSUFBSSxLQUFnQyxDQUFDO0lBQ3JDLElBQUksU0FBK0QsQ0FBQzs7UUFFcEUsS0FBc0IsSUFBQSxLQUFBLFNBQUEsc0JBQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBM0MsSUFBTSxPQUFPLFdBQUE7WUFDaEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQy9CLFNBQVM7YUFDVjtZQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxzQkFBUSxFQUFFO2dCQUNoQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUMxQjtZQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxnQ0FBa0IsRUFBRTtnQkFDMUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDOUI7U0FDRjs7Ozs7Ozs7O0lBRUQsT0FBTztRQUNMLEtBQUssT0FBQTtRQUNMLFNBQVMsV0FBQTtLQUNWLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQXNCLEVBQUUsU0FBbUQ7OztRQUNqRyxLQUE4QixJQUFBLEtBQUEsU0FBQSx5QkFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQUEsS0FBQSxtQkFBZSxFQUFkLEdBQUcsUUFBQSxFQUFFLFFBQVEsUUFBQTtZQUN0QixpQkFB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QyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkQsMkJBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLHFCQUFxQixDQUFDLGlCQUFPLENBQUMsQ0FBQztJQUUvQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsRUFmeUMsQ0FlekMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixlQUFnRixFQUNoRixlQUFpRDtJQUVqRCxJQUFJLENBQUUsaUJBQWUsQ0FBQyxPQUFPLEVBQUU7UUFDN0IsaUJBQU8sQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQyxpQkFBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsaUJBQU8sQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0UsaUJBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0tBQ2pDO0lBRUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxpREFBc0IsRUFBRSxDQUFDO0lBRTlDLElBQUksZUFBZSxFQUFFO1FBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzdCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxJQUFJLGVBQWUsRUFBRTtRQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUM3QixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUF4QkQsa0NBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGFkYXRhT3ZlcnJpZGUsIFRlc3RCZWQsIFRlc3RCZWRTdGF0aWMsIFRlc3RNb2R1bGVNZXRhZGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IGZsYXR0ZW4sIG1hcEVudHJpZXMgfSBmcm9tICcuLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IE5HX01PQ0tTLCBOR19NT0NLU19PVkVSUklERVMgfSBmcm9tICcuLi9jb21tb24vY29yZS50b2tlbnMnO1xuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IGlzTmdEZWYgfSBmcm9tICcuLi9jb21tb24vZnVuYy5pcy1uZy1kZWYnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuaW1wb3J0IHsgbmdNb2NrcyB9IGZyb20gJy4uL21vY2staGVscGVyL21vY2staGVscGVyJztcblxuaW1wb3J0IHsgTW9ja0J1aWxkZXJQZXJmb3JtYW5jZSB9IGZyb20gJy4vbW9jay1idWlsZGVyLnBlcmZvcm1hbmNlJztcbmltcG9ydCB7IElNb2NrQnVpbGRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBleHRyYWN0VG9rZW5zID0gKFxuICBwcm92aWRlcnM6IGFueSxcbik6IHtcbiAgbW9ja3M/OiBNYXA8YW55LCBhbnk+O1xuICBvdmVycmlkZXM/OiBNYXA8QW55VHlwZTxhbnk+LCBNZXRhZGF0YU92ZXJyaWRlPGFueT4+O1xufSA9PiB7XG4gIGxldCBtb2NrczogTWFwPGFueSwgYW55PiB8IHVuZGVmaW5lZDtcbiAgbGV0IG92ZXJyaWRlczogTWFwPEFueVR5cGU8YW55PiwgTWV0YWRhdGFPdmVycmlkZTxhbnk+PiB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IHByb3ZpZGUgb2YgZmxhdHRlbihwcm92aWRlcnMgfHwgW10pKSB7XG4gICAgaWYgKHR5cGVvZiBwcm92aWRlICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwcm92aWRlLnByb3ZpZGUgPT09IE5HX01PQ0tTKSB7XG4gICAgICBtb2NrcyA9IHByb3ZpZGUudXNlVmFsdWU7XG4gICAgfVxuICAgIGlmIChwcm92aWRlLnByb3ZpZGUgPT09IE5HX01PQ0tTX09WRVJSSURFUykge1xuICAgICAgb3ZlcnJpZGVzID0gcHJvdmlkZS51c2VWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1vY2tzLFxuICAgIG92ZXJyaWRlcyxcbiAgfTtcbn07XG5cbmNvbnN0IGFwcGx5T3ZlcnJpZGVzID0gKHRlc3RCZWQ6IFRlc3RCZWRTdGF0aWMsIG92ZXJyaWRlczogTWFwPEFueVR5cGU8YW55PiwgTWV0YWRhdGFPdmVycmlkZTxhbnk+Pik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IFtkZWYsIG92ZXJyaWRlXSBvZiBtYXBFbnRyaWVzKG92ZXJyaWRlcykpIHtcbiAgICAoVGVzdEJlZCBhcyBhbnkpLm5nTW9ja3NPdmVycmlkZXMuYWRkKGRlZik7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgICBpZiAoaXNOZ0RlZihkZWYsICdjJykpIHtcbiAgICAgIHRlc3RCZWQub3ZlcnJpZGVDb21wb25lbnQoZGVmLCBvdmVycmlkZSk7XG4gICAgfSBlbHNlIGlmIChpc05nRGVmKGRlZiwgJ2QnKSkge1xuICAgICAgdGVzdEJlZC5vdmVycmlkZURpcmVjdGl2ZShkZWYsIG92ZXJyaWRlKTtcbiAgICB9XG4gIH1cbn07XG5cbi8vIFRoYW5rcyBJdnkgYW5kIGl0cyBUZXN0QmVkLm92ZXJyaWRlIC0gaXQgZG9lc24ndCBjbGVhbiB1cCBsZWZ0b3ZlcnMuXG5jb25zdCBhcHBseU5nTW9ja3NPdmVycmlkZXMgPSAodGVzdEJlZDogVGVzdEJlZFN0YXRpYyAmIHsgbmdNb2Nrc092ZXJyaWRlcz86IGFueSB9KTogdm9pZCA9PiB7XG4gIGlmICh0ZXN0QmVkLm5nTW9ja3NPdmVycmlkZXMpIHtcbiAgICBuZ01vY2tzLmZsdXNoVGVzdEJlZCgpO1xuICAgIGZvciAoY29uc3QgZGVmIG9mIHRlc3RCZWQubmdNb2Nrc092ZXJyaWRlcykge1xuICAgICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgICAgIGlmIChpc05nRGVmKGRlZiwgJ2MnKSkge1xuICAgICAgICB0ZXN0QmVkLm92ZXJyaWRlQ29tcG9uZW50KGRlZiwge30pO1xuICAgICAgfSBlbHNlIGlmIChpc05nRGVmKGRlZiwgJ2QnKSkge1xuICAgICAgICB0ZXN0QmVkLm92ZXJyaWRlRGlyZWN0aXZlKGRlZiwge30pO1xuICAgICAgfVxuICAgIH1cbiAgICB0ZXN0QmVkLm5nTW9ja3NPdmVycmlkZXMgPSB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmNvbnN0IGNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUgPSAoXG4gIG9yaWdpbmFsOiBUZXN0QmVkU3RhdGljWydjb25maWd1cmVUZXN0aW5nTW9kdWxlJ10sXG4pOiBUZXN0QmVkU3RhdGljWydjb25maWd1cmVUZXN0aW5nTW9kdWxlJ10gPT4gKG1vZHVsZURlZjogVGVzdE1vZHVsZU1ldGFkYXRhKSA9PiB7XG4gIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuc2V0KCdidWxsZXQ6Y3VzdG9taXplZCcsIHRydWUpO1xuICBjb25zdCB7IG1vY2tzLCBvdmVycmlkZXMgfSA9IGV4dHJhY3RUb2tlbnMobW9kdWxlRGVmLnByb3ZpZGVycyk7XG5cbiAgaWYgKG1vY2tzKSB7XG4gICAgbmdNb2Nrcy5mbHVzaFRlc3RCZWQoKTtcbiAgfVxuICBjb25zdCB0ZXN0QmVkID0gb3JpZ2luYWwuY2FsbChUZXN0QmVkLCBtb2R1bGVEZWYpO1xuICBpZiAoIW1vY2tzKSB7XG4gICAgcmV0dXJuIHRlc3RCZWQ7XG4gIH1cblxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgZWxzZVxuICAvLyBOb3cgd2UgY2FuIGFwcGx5IG92ZXJyaWRlcy5cbiAgaWYgKCEoVGVzdEJlZCBhcyBhbnkpLm5nTW9ja3NPdmVycmlkZXMpIHtcbiAgICAoVGVzdEJlZCBhcyBhbnkpLm5nTW9ja3NPdmVycmlkZXMgPSBuZXcgU2V0KCk7XG4gIH1cbiAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgaWYgKG92ZXJyaWRlcykge1xuICAgIGFwcGx5T3ZlcnJpZGVzKHRlc3RCZWQsIG92ZXJyaWRlcyk7XG4gIH1cblxuICByZXR1cm4gdGVzdEJlZDtcbn07XG5cbmNvbnN0IHJlc2V0VGVzdGluZ01vZHVsZSA9IChcbiAgb3JpZ2luYWw6IFRlc3RCZWRTdGF0aWNbJ3Jlc2V0VGVzdGluZ01vZHVsZSddLFxuKTogVGVzdEJlZFN0YXRpY1sncmVzZXRUZXN0aW5nTW9kdWxlJ10gPT4gKCkgPT4ge1xuICBpZiAobmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5oYXMoJ2J1bGxldCcpKSB7XG4gICAgaWYgKG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuaGFzKCdidWxsZXQ6Y3VzdG9taXplZCcpKSB7XG4gICAgICBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLnNldCgnYnVsbGV0OnJlc2V0JywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFRlc3RCZWQ7XG4gIH1cbiAgbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5kZWxldGUoJ2J1aWxkZXI6Y29uZmlnJyk7XG4gIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuZGVsZXRlKCdidWlsZGVyOm1vZHVsZScpO1xuICBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmRlbGV0ZSgnYnVsbGV0OmN1c3RvbWl6ZWQnKTtcbiAgbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5kZWxldGUoJ2J1bGxldDpyZXNldCcpO1xuICBhcHBseU5nTW9ja3NPdmVycmlkZXMoVGVzdEJlZCk7XG5cbiAgcmV0dXJuIG9yaWdpbmFsLmNhbGwoVGVzdEJlZCk7XG59O1xuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lrZTE4dC9uZy1tb2NrcyNtb2NrYnVpbGRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gTW9ja0J1aWxkZXIoXG4gIGtlZXBEZWNsYXJhdGlvbj86IHN0cmluZyB8IEFueVR5cGU8YW55PiB8IEluamVjdGlvblRva2VuPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBpdHNNb2R1bGVUb01vY2s/OiBBbnlUeXBlPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogSU1vY2tCdWlsZGVyIHtcbiAgaWYgKCEoVGVzdEJlZCBhcyBhbnkpLm5nTW9ja3MpIHtcbiAgICBUZXN0QmVkLmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUgPSBjb25maWd1cmVUZXN0aW5nTW9kdWxlKFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSk7XG4gICAgVGVzdEJlZC5yZXNldFRlc3RpbmdNb2R1bGUgPSByZXNldFRlc3RpbmdNb2R1bGUoVGVzdEJlZC5yZXNldFRlc3RpbmdNb2R1bGUpO1xuICAgIChUZXN0QmVkIGFzIGFueSkubmdNb2NrcyA9IHRydWU7XG4gIH1cblxuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBNb2NrQnVpbGRlclBlcmZvcm1hbmNlKCk7XG5cbiAgaWYgKGtlZXBEZWNsYXJhdGlvbikge1xuICAgIGluc3RhbmNlLmtlZXAoa2VlcERlY2xhcmF0aW9uLCB7XG4gICAgICBleHBvcnQ6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgaWYgKGl0c01vZHVsZVRvTW9jaykge1xuICAgIGluc3RhbmNlLm1vY2soaXRzTW9kdWxlVG9Nb2NrLCB7XG4gICAgICBleHBvcnRBbGw6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL21vY2stYnVpbGRlci9tb2NrLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaURBQXFHO0FBRXJHLHVEQUE2RDtBQUM3RCxxREFBcUU7QUFFckUsMkRBQW1EO0FBQ25ELGlFQUEwRDtBQUMxRCwwREFBcUQ7QUFFckQsdUVBQW9FO0FBR3BFLElBQU0sYUFBYSxHQUFHLFVBQ3BCLFNBQWM7O0lBS2QsSUFBSSxLQUFnQyxDQUFDO0lBQ3JDLElBQUksU0FBK0QsQ0FBQzs7UUFFcEUsS0FBc0IsSUFBQSxLQUFBLFNBQUEsc0JBQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBM0MsSUFBTSxPQUFPLFdBQUE7WUFDaEIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7Z0JBQy9CLFNBQVM7YUFDVjtZQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxzQkFBUSxFQUFFO2dCQUNoQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUMxQjtZQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxnQ0FBa0IsRUFBRTtnQkFDMUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDOUI7U0FDRjs7Ozs7Ozs7O0lBRUQsT0FBTztRQUNMLEtBQUssT0FBQTtRQUNMLFNBQVMsV0FBQTtLQUNWLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQXNCLEVBQUUsU0FBbUQ7OztRQUNqRyxLQUE4QixJQUFBLEtBQUEsU0FBQSx5QkFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQUEsS0FBQSxtQkFBZSxFQUFkLEdBQUcsUUFBQSxFQUFFLFFBQVEsUUFBQTtZQUN0QixpQkFB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QyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbkQsMkJBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLHFCQUFxQixDQUFDLGlCQUFPLENBQUMsQ0FBQztJQUUvQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQU8sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsRUFmeUMsQ0FlekMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixlQUFnRixFQUNoRixlQUFpRDtJQUVqRCxJQUFJLENBQUUsaUJBQWUsQ0FBQyxPQUFPLEVBQUU7UUFDN0IsaUJBQU8sQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQyxpQkFBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsaUJBQU8sQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0UsaUJBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0tBQ2pDO0lBRUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxpREFBc0IsRUFBRSxDQUFDO0lBRTlDLElBQUksZUFBZSxFQUFFO1FBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzdCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxJQUFJLGVBQWUsRUFBRTtRQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUM3QixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUF4QkQsa0NBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGFkYXRhT3ZlcnJpZGUsIFRlc3RCZWQsIFRlc3RCZWRTdGF0aWMsIFRlc3RNb2R1bGVNZXRhZGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IGZsYXR0ZW4sIG1hcEVudHJpZXMgfSBmcm9tICcuLi9jb21tb24vY29yZS5oZWxwZXJzJztcbmltcG9ydCB7IE5HX01PQ0tTLCBOR19NT0NLU19PVkVSUklERVMgfSBmcm9tICcuLi9jb21tb24vY29yZS50b2tlbnMnO1xuaW1wb3J0IHsgQW55VHlwZSB9IGZyb20gJy4uL2NvbW1vbi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IGlzTmdEZWYgfSBmcm9tICcuLi9jb21tb24vZnVuYy5pcy1uZy1kZWYnO1xuaW1wb3J0IG5nTW9ja3NVbml2ZXJzZSBmcm9tICcuLi9jb21tb24vbmctbW9ja3MtdW5pdmVyc2UnO1xuaW1wb3J0IHsgbmdNb2NrcyB9IGZyb20gJy4uL21vY2staGVscGVyL21vY2staGVscGVyJztcblxuaW1wb3J0IHsgTW9ja0J1aWxkZXJQZXJmb3JtYW5jZSB9IGZyb20gJy4vbW9jay1idWlsZGVyLnBlcmZvcm1hbmNlJztcbmltcG9ydCB7IElNb2NrQnVpbGRlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBleHRyYWN0VG9rZW5zID0gKFxuICBwcm92aWRlcnM6IGFueSxcbik6IHtcbiAgbW9ja3M/OiBNYXA8YW55LCBhbnk+O1xuICBvdmVycmlkZXM/OiBNYXA8QW55VHlwZTxhbnk+LCBNZXRhZGF0YU92ZXJyaWRlPGFueT4+O1xufSA9PiB7XG4gIGxldCBtb2NrczogTWFwPGFueSwgYW55PiB8IHVuZGVmaW5lZDtcbiAgbGV0IG92ZXJyaWRlczogTWFwPEFueVR5cGU8YW55PiwgTWV0YWRhdGFPdmVycmlkZTxhbnk+PiB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IHByb3ZpZGUgb2YgZmxhdHRlbihwcm92aWRlcnMgfHwgW10pKSB7XG4gICAgaWYgKHR5cGVvZiBwcm92aWRlICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwcm92aWRlLnByb3ZpZGUgPT09IE5HX01PQ0tTKSB7XG4gICAgICBtb2NrcyA9IHByb3ZpZGUudXNlVmFsdWU7XG4gICAgfVxuICAgIGlmIChwcm92aWRlLnByb3ZpZGUgPT09IE5HX01PQ0tTX09WRVJSSURFUykge1xuICAgICAgb3ZlcnJpZGVzID0gcHJvdmlkZS51c2VWYWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1vY2tzLFxuICAgIG92ZXJyaWRlcyxcbiAgfTtcbn07XG5cbmNvbnN0IGFwcGx5T3ZlcnJpZGVzID0gKHRlc3RCZWQ6IFRlc3RCZWRTdGF0aWMsIG92ZXJyaWRlczogTWFwPEFueVR5cGU8YW55PiwgTWV0YWRhdGFPdmVycmlkZTxhbnk+Pik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IFtkZWYsIG92ZXJyaWRlXSBvZiBtYXBFbnRyaWVzKG92ZXJyaWRlcykpIHtcbiAgICAoVGVzdEJlZCBhcyBhbnkpLm5nTW9ja3NPdmVycmlkZXMuYWRkKGRlZik7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgICBpZiAoaXNOZ0RlZihkZWYsICdjJykpIHtcbiAgICAgIHRlc3RCZWQub3ZlcnJpZGVDb21wb25lbnQoZGVmLCBvdmVycmlkZSk7XG4gICAgfSBlbHNlIGlmIChpc05nRGVmKGRlZiwgJ2QnKSkge1xuICAgICAgdGVzdEJlZC5vdmVycmlkZURpcmVjdGl2ZShkZWYsIG92ZXJyaWRlKTtcbiAgICB9XG4gIH1cbn07XG5cbi8vIFRoYW5rcyBJdnkgYW5kIGl0cyBUZXN0QmVkLm92ZXJyaWRlIC0gaXQgZG9lcyBub3QgY2xlYW4gdXAgbGVmdG92ZXJzLlxuY29uc3QgYXBwbHlOZ01vY2tzT3ZlcnJpZGVzID0gKHRlc3RCZWQ6IFRlc3RCZWRTdGF0aWMgJiB7IG5nTW9ja3NPdmVycmlkZXM/OiBhbnkgfSk6IHZvaWQgPT4ge1xuICBpZiAodGVzdEJlZC5uZ01vY2tzT3ZlcnJpZGVzKSB7XG4gICAgbmdNb2Nrcy5mbHVzaFRlc3RCZWQoKTtcbiAgICBmb3IgKGNvbnN0IGRlZiBvZiB0ZXN0QmVkLm5nTW9ja3NPdmVycmlkZXMpIHtcbiAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgICBpZiAoaXNOZ0RlZihkZWYsICdjJykpIHtcbiAgICAgICAgdGVzdEJlZC5vdmVycmlkZUNvbXBvbmVudChkZWYsIHt9KTtcbiAgICAgIH0gZWxzZSBpZiAoaXNOZ0RlZihkZWYsICdkJykpIHtcbiAgICAgICAgdGVzdEJlZC5vdmVycmlkZURpcmVjdGl2ZShkZWYsIHt9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGVzdEJlZC5uZ01vY2tzT3ZlcnJpZGVzID0gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5jb25zdCBjb25maWd1cmVUZXN0aW5nTW9kdWxlID0gKFxuICBvcmlnaW5hbDogVGVzdEJlZFN0YXRpY1snY29uZmlndXJlVGVzdGluZ01vZHVsZSddLFxuKTogVGVzdEJlZFN0YXRpY1snY29uZmlndXJlVGVzdGluZ01vZHVsZSddID0+IChtb2R1bGVEZWY6IFRlc3RNb2R1bGVNZXRhZGF0YSkgPT4ge1xuICBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLnNldCgnYnVsbGV0OmN1c3RvbWl6ZWQnLCB0cnVlKTtcbiAgY29uc3QgeyBtb2Nrcywgb3ZlcnJpZGVzIH0gPSBleHRyYWN0VG9rZW5zKG1vZHVsZURlZi5wcm92aWRlcnMpO1xuXG4gIGlmIChtb2Nrcykge1xuICAgIG5nTW9ja3MuZmx1c2hUZXN0QmVkKCk7XG4gIH1cbiAgY29uc3QgdGVzdEJlZCA9IG9yaWdpbmFsLmNhbGwoVGVzdEJlZCwgbW9kdWxlRGVmKTtcbiAgaWYgKCFtb2Nrcykge1xuICAgIHJldHVybiB0ZXN0QmVkO1xuICB9XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgLy8gTm93IHdlIGNhbiBhcHBseSBvdmVycmlkZXMuXG4gIGlmICghKFRlc3RCZWQgYXMgYW55KS5uZ01vY2tzT3ZlcnJpZGVzKSB7XG4gICAgKFRlc3RCZWQgYXMgYW55KS5uZ01vY2tzT3ZlcnJpZGVzID0gbmV3IFNldCgpO1xuICB9XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gIGlmIChvdmVycmlkZXMpIHtcbiAgICBhcHBseU92ZXJyaWRlcyh0ZXN0QmVkLCBvdmVycmlkZXMpO1xuICB9XG5cbiAgcmV0dXJuIHRlc3RCZWQ7XG59O1xuXG5jb25zdCByZXNldFRlc3RpbmdNb2R1bGUgPSAoXG4gIG9yaWdpbmFsOiBUZXN0QmVkU3RhdGljWydyZXNldFRlc3RpbmdNb2R1bGUnXSxcbik6IFRlc3RCZWRTdGF0aWNbJ3Jlc2V0VGVzdGluZ01vZHVsZSddID0+ICgpID0+IHtcbiAgaWYgKG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuaGFzKCdidWxsZXQnKSkge1xuICAgIGlmIChuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmhhcygnYnVsbGV0OmN1c3RvbWl6ZWQnKSkge1xuICAgICAgbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5zZXQoJ2J1bGxldDpyZXNldCcsIHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiBUZXN0QmVkO1xuICB9XG4gIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuZGVsZXRlKCdidWlsZGVyOmNvbmZpZycpO1xuICBuZ01vY2tzVW5pdmVyc2UuZ2xvYmFsLmRlbGV0ZSgnYnVpbGRlcjptb2R1bGUnKTtcbiAgbmdNb2Nrc1VuaXZlcnNlLmdsb2JhbC5kZWxldGUoJ2J1bGxldDpjdXN0b21pemVkJyk7XG4gIG5nTW9ja3NVbml2ZXJzZS5nbG9iYWwuZGVsZXRlKCdidWxsZXQ6cmVzZXQnKTtcbiAgYXBwbHlOZ01vY2tzT3ZlcnJpZGVzKFRlc3RCZWQpO1xuXG4gIHJldHVybiBvcmlnaW5hbC5jYWxsKFRlc3RCZWQpO1xufTtcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pa2UxOHQvbmctbW9ja3MjbW9ja2J1aWxkZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1vY2tCdWlsZGVyKFxuICBrZWVwRGVjbGFyYXRpb24/OiBzdHJpbmcgfCBBbnlUeXBlPGFueT4gfCBJbmplY3Rpb25Ub2tlbjxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgaXRzTW9kdWxlVG9Nb2NrPzogQW55VHlwZTxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IElNb2NrQnVpbGRlciB7XG4gIGlmICghKFRlc3RCZWQgYXMgYW55KS5uZ01vY2tzKSB7XG4gICAgVGVzdEJlZC5jb25maWd1cmVUZXN0aW5nTW9kdWxlID0gY29uZmlndXJlVGVzdGluZ01vZHVsZShUZXN0QmVkLmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUpO1xuICAgIFRlc3RCZWQucmVzZXRUZXN0aW5nTW9kdWxlID0gcmVzZXRUZXN0aW5nTW9kdWxlKFRlc3RCZWQucmVzZXRUZXN0aW5nTW9kdWxlKTtcbiAgICAoVGVzdEJlZCBhcyBhbnkpLm5nTW9ja3MgPSB0cnVlO1xuICB9XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgTW9ja0J1aWxkZXJQZXJmb3JtYW5jZSgpO1xuXG4gIGlmIChrZWVwRGVjbGFyYXRpb24pIHtcbiAgICBpbnN0YW5jZS5rZWVwKGtlZXBEZWNsYXJhdGlvbiwge1xuICAgICAgZXhwb3J0OiB0cnVlLFxuICAgIH0pO1xuICB9XG4gIGlmIChpdHNNb2R1bGVUb01vY2spIHtcbiAgICBpbnN0YW5jZS5tb2NrKGl0c01vZHVsZVRvTW9jaywge1xuICAgICAgZXhwb3J0QWxsOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuIl19