@storybook/angular 6.4.0-beta.24 → 6.4.0-beta.28

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 (211) hide show
  1. package/dist/ts3.4/builders/build-storybook/index.d.ts +12 -0
  2. package/dist/ts3.4/builders/start-storybook/index.d.ts +12 -0
  3. package/dist/ts3.4/builders/utils/build-standalone-errors-handler.d.ts +1 -0
  4. package/dist/ts3.4/builders/utils/run-compodoc.d.ts +6 -0
  5. package/dist/ts3.4/client/index.d.ts +4 -0
  6. package/dist/ts3.4/client/preview/angular/app.token.d.ts +3 -0
  7. package/dist/ts3.4/client/preview/angular/components/app.component.d.ts +38 -0
  8. package/dist/ts3.4/client/preview/angular/helpers.d.ts +8 -0
  9. package/dist/ts3.4/client/preview/angular-beta/AbstractRenderer.d.ts +44 -0
  10. package/dist/ts3.4/client/preview/angular-beta/CanvasRenderer.d.ts +14 -0
  11. package/dist/ts3.4/client/preview/angular-beta/ComputesTemplateFromComponent.d.ts +17 -0
  12. package/dist/ts3.4/client/preview/angular-beta/DocsRenderer.d.ts +14 -0
  13. package/dist/ts3.4/client/preview/angular-beta/RendererFactory.d.ts +11 -0
  14. package/dist/ts3.4/client/preview/angular-beta/StorybookModule.d.ts +9 -0
  15. package/dist/ts3.4/client/preview/angular-beta/StorybookProvider.d.ts +5 -0
  16. package/dist/ts3.4/client/preview/angular-beta/StorybookWrapperComponent.d.ts +9 -0
  17. package/dist/ts3.4/client/preview/angular-beta/utils/NgComponentAnalyzer.d.ts +26 -0
  18. package/dist/ts3.4/client/preview/angular-beta/utils/NgModulesAnalyzer.d.ts +6 -0
  19. package/dist/ts3.4/client/preview/angular-polyfills.d.ts +41 -0
  20. package/dist/ts3.4/client/preview/config.d.ts +5 -0
  21. package/dist/ts3.4/client/preview/decorateStory.d.ts +4 -0
  22. package/dist/ts3.4/client/preview/decorators.d.ts +6 -0
  23. package/dist/ts3.4/client/preview/globals.d.ts +1 -0
  24. package/dist/ts3.4/client/preview/index.d.ts +25 -0
  25. package/dist/ts3.4/client/preview/render.d.ts +7 -0
  26. package/dist/ts3.4/client/preview/types-6-0.d.ts +42 -0
  27. package/dist/ts3.4/client/preview/types-7-0.d.ts +9 -0
  28. package/dist/ts3.4/client/preview/types.d.ts +29 -0
  29. package/dist/ts3.4/demo/button.component.d.ts +5 -0
  30. package/dist/ts3.4/demo/welcome.component.d.ts +4 -0
  31. package/dist/ts3.4/public_api.d.ts +1 -0
  32. package/dist/ts3.4/renderer.d.ts +4 -0
  33. package/dist/ts3.4/server/__mocks-ng-workspace__/minimal-config/src/main.d.ts +1 -0
  34. package/dist/ts3.4/server/__mocks-ng-workspace__/some-config/src/main.d.ts +1 -0
  35. package/dist/ts3.4/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.d.ts +1 -0
  36. package/dist/ts3.4/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +1 -0
  37. package/dist/ts3.4/server/__mocks-ng-workspace__/with-nx/src/main.d.ts +1 -0
  38. package/dist/ts3.4/server/__mocks-ng-workspace__/with-nx-workspace/src/main.d.ts +1 -0
  39. package/dist/ts3.4/server/__mocks-ng-workspace__/with-options-styles/src/main.d.ts +1 -0
  40. package/dist/ts3.4/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +1 -0
  41. package/dist/ts3.4/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +1 -0
  42. package/dist/ts3.4/server/angular-devkit-build-webpack.d.ts +30 -0
  43. package/dist/ts3.4/server/angular-read-workspace.d.ts +13 -0
  44. package/dist/ts3.4/server/build.d.ts +1 -0
  45. package/dist/ts3.4/server/create-fork-ts-checker-plugin.d.ts +3 -0
  46. package/dist/ts3.4/server/framework-preset-angular-cli.d.ts +73 -0
  47. package/dist/ts3.4/server/framework-preset-angular-ivy.d.ts +10 -0
  48. package/dist/ts3.4/server/framework-preset-angular.d.ts +4 -0
  49. package/dist/ts3.4/server/index.d.ts +1 -0
  50. package/dist/ts3.4/server/ngx-template-loader/index.d.ts +1 -0
  51. package/dist/ts3.4/server/options.d.ts +3 -0
  52. package/dist/ts3.4/server/preset.d.ts +3 -0
  53. package/dist/ts3.4/server/ts_config.d.ts +2 -0
  54. package/dist/ts3.4/server/utils/filter-out-styling-rules.d.ts +2 -0
  55. package/dist/ts3.4/server/utils/module-is-available.d.ts +1 -0
  56. package/dist/ts3.4/server/utils/normalize-asset-patterns.d.ts +6 -0
  57. package/dist/ts3.4/server/utils/normalize-optimization.d.ts +3 -0
  58. package/dist/ts3.4/types/index.d.ts +6 -0
  59. package/dist/ts3.9/builders/build-storybook/index.d.ts +12 -0
  60. package/dist/ts3.9/builders/build-storybook/index.js +114 -0
  61. package/dist/ts3.9/builders/build-storybook/schema.json +72 -0
  62. package/dist/ts3.9/builders/builders.json +14 -0
  63. package/dist/ts3.9/builders/start-storybook/index.d.ts +12 -0
  64. package/dist/ts3.9/builders/start-storybook/index.js +117 -0
  65. package/dist/ts3.9/builders/start-storybook/schema.json +99 -0
  66. package/dist/ts3.9/builders/utils/build-standalone-errors-handler.d.ts +1 -0
  67. package/dist/ts3.9/builders/utils/build-standalone-errors-handler.js +36 -0
  68. package/dist/ts3.9/builders/utils/run-compodoc.d.ts +6 -0
  69. package/dist/ts3.9/builders/utils/run-compodoc.js +45 -0
  70. package/dist/ts3.9/client/index.d.ts +4 -0
  71. package/dist/ts3.9/client/index.js +28 -0
  72. package/dist/ts3.9/client/preview/angular/app.token.d.ts +3 -0
  73. package/dist/ts3.9/client/preview/angular/app.token.js +5 -0
  74. package/dist/ts3.9/client/preview/angular/components/app.component.d.ts +38 -0
  75. package/dist/ts3.9/client/preview/angular/components/app.component.js +146 -0
  76. package/dist/ts3.9/client/preview/angular/helpers.d.ts +8 -0
  77. package/dist/ts3.9/client/preview/angular/helpers.js +165 -0
  78. package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.d.ts +44 -0
  79. package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.js +215 -0
  80. package/dist/ts3.9/client/preview/angular-beta/CanvasRenderer.d.ts +14 -0
  81. package/dist/ts3.9/client/preview/angular-beta/CanvasRenderer.js +97 -0
  82. package/dist/ts3.9/client/preview/angular-beta/ComputesTemplateFromComponent.d.ts +17 -0
  83. package/dist/ts3.9/client/preview/angular-beta/ComputesTemplateFromComponent.js +112 -0
  84. package/dist/ts3.9/client/preview/angular-beta/DocsRenderer.d.ts +14 -0
  85. package/dist/ts3.9/client/preview/angular-beta/DocsRenderer.js +145 -0
  86. package/dist/ts3.9/client/preview/angular-beta/RendererFactory.d.ts +11 -0
  87. package/dist/ts3.9/client/preview/angular-beta/RendererFactory.js +101 -0
  88. package/dist/ts3.9/client/preview/angular-beta/StorybookModule.d.ts +9 -0
  89. package/dist/ts3.9/client/preview/angular-beta/StorybookModule.js +78 -0
  90. package/dist/ts3.9/client/preview/angular-beta/StorybookProvider.d.ts +5 -0
  91. package/dist/ts3.9/client/preview/angular-beta/StorybookProvider.js +27 -0
  92. package/dist/ts3.9/client/preview/angular-beta/StorybookWrapperComponent.d.ts +9 -0
  93. package/dist/ts3.9/client/preview/angular-beta/StorybookWrapperComponent.js +155 -0
  94. package/dist/ts3.9/client/preview/angular-beta/utils/NgComponentAnalyzer.d.ts +26 -0
  95. package/dist/ts3.9/client/preview/angular-beta/utils/NgComponentAnalyzer.js +124 -0
  96. package/dist/ts3.9/client/preview/angular-beta/utils/NgModulesAnalyzer.d.ts +6 -0
  97. package/dist/ts3.9/client/preview/angular-beta/utils/NgModulesAnalyzer.js +44 -0
  98. package/dist/ts3.9/client/preview/angular-polyfills.d.ts +41 -0
  99. package/dist/ts3.9/client/preview/angular-polyfills.js +61 -0
  100. package/dist/ts3.9/client/preview/config.d.ts +5 -0
  101. package/dist/ts3.9/client/preview/config.js +9 -0
  102. package/dist/ts3.9/client/preview/decorateStory.d.ts +4 -0
  103. package/dist/ts3.9/client/preview/decorateStory.js +64 -0
  104. package/dist/ts3.9/client/preview/decorators.d.ts +6 -0
  105. package/dist/ts3.9/client/preview/decorators.js +49 -0
  106. package/dist/ts3.9/client/preview/globals.d.ts +1 -0
  107. package/dist/ts3.9/client/preview/globals.js +9 -0
  108. package/dist/ts3.9/client/preview/index.d.ts +25 -0
  109. package/dist/ts3.9/client/preview/index.js +40 -0
  110. package/dist/ts3.9/client/preview/render.d.ts +7 -0
  111. package/dist/ts3.9/client/preview/render.js +73 -0
  112. package/dist/ts3.9/client/preview/types-6-0.d.ts +42 -0
  113. package/dist/ts3.9/client/preview/types-6-0.js +2 -0
  114. package/dist/ts3.9/client/preview/types-7-0.d.ts +9 -0
  115. package/dist/ts3.9/client/preview/types-7-0.js +2 -0
  116. package/dist/ts3.9/client/preview/types.d.ts +29 -0
  117. package/dist/ts3.9/client/preview/types.js +2 -0
  118. package/dist/ts3.9/demo/button.component.d.ts +5 -0
  119. package/dist/ts3.9/demo/button.component.js +37 -0
  120. package/dist/ts3.9/demo/welcome.component.d.ts +4 -0
  121. package/dist/ts3.9/demo/welcome.component.js +32 -0
  122. package/dist/ts3.9/public_api.d.ts +1 -0
  123. package/dist/ts3.9/public_api.js +24 -0
  124. package/dist/ts3.9/renderer.d.ts +4 -0
  125. package/dist/ts3.9/renderer.js +10 -0
  126. package/dist/ts3.9/server/__mocks-ng-workspace__/empty-projects-entry/angular.json +4 -0
  127. package/dist/ts3.9/server/__mocks-ng-workspace__/minimal-config/angular.json +17 -0
  128. package/dist/ts3.9/server/__mocks-ng-workspace__/minimal-config/src/main.d.ts +1 -0
  129. package/dist/ts3.9/server/__mocks-ng-workspace__/minimal-config/src/main.js +5 -0
  130. package/dist/ts3.9/server/__mocks-ng-workspace__/minimal-config/src/tsconfig.app.json +9 -0
  131. package/dist/ts3.9/server/__mocks-ng-workspace__/minimal-config/tsconfig.json +13 -0
  132. package/dist/ts3.9/server/__mocks-ng-workspace__/some-config/angular.json +18 -0
  133. package/dist/ts3.9/server/__mocks-ng-workspace__/some-config/src/main.d.ts +1 -0
  134. package/dist/ts3.9/server/__mocks-ng-workspace__/some-config/src/main.js +5 -0
  135. package/dist/ts3.9/server/__mocks-ng-workspace__/some-config/src/tsconfig.app.json +9 -0
  136. package/dist/ts3.9/server/__mocks-ng-workspace__/some-config/tsconfig.json +13 -0
  137. package/dist/ts3.9/server/__mocks-ng-workspace__/with-angularBrowserTarget/angular.json +60 -0
  138. package/dist/ts3.9/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.d.ts +1 -0
  139. package/dist/ts3.9/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.js +5 -0
  140. package/dist/ts3.9/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/tsconfig.app.json +9 -0
  141. package/dist/ts3.9/server/__mocks-ng-workspace__/with-angularBrowserTarget/tsconfig.json +13 -0
  142. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/angular.json +28 -0
  143. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +1 -0
  144. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +5 -0
  145. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/tsconfig.lib.json +25 -0
  146. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/tsconfig.json +13 -0
  147. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx/angular.json +17 -0
  148. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx/nx.json +3 -0
  149. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx/src/main.d.ts +1 -0
  150. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx/src/main.js +5 -0
  151. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx/src/tsconfig.app.json +8 -0
  152. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx/tsconfig.json +14 -0
  153. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx-workspace/nx.json +3 -0
  154. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx-workspace/src/main.d.ts +1 -0
  155. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx-workspace/src/main.js +5 -0
  156. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx-workspace/src/tsconfig.app.json +8 -0
  157. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +14 -0
  158. package/dist/ts3.9/server/__mocks-ng-workspace__/with-nx-workspace/workspace.json +17 -0
  159. package/dist/ts3.9/server/__mocks-ng-workspace__/with-options-styles/angular.json +17 -0
  160. package/dist/ts3.9/server/__mocks-ng-workspace__/with-options-styles/src/main.d.ts +1 -0
  161. package/dist/ts3.9/server/__mocks-ng-workspace__/with-options-styles/src/main.js +5 -0
  162. package/dist/ts3.9/server/__mocks-ng-workspace__/with-options-styles/src/tsconfig.app.json +9 -0
  163. package/dist/ts3.9/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +13 -0
  164. package/dist/ts3.9/server/__mocks-ng-workspace__/without-architect-build/angular.json +5 -0
  165. package/dist/ts3.9/server/__mocks-ng-workspace__/without-architect-build-options/angular.json +11 -0
  166. package/dist/ts3.9/server/__mocks-ng-workspace__/without-compatible-projects/angular.json +7 -0
  167. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/angular.json +3 -0
  168. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +1 -0
  169. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +5 -0
  170. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/tsconfig.lib.json +25 -0
  171. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +13 -0
  172. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/angular.json +16 -0
  173. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +1 -0
  174. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/main.js +5 -0
  175. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +9 -0
  176. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +13 -0
  177. package/dist/ts3.9/server/angular-devkit-build-webpack.d.ts +30 -0
  178. package/dist/ts3.9/server/angular-devkit-build-webpack.js +213 -0
  179. package/dist/ts3.9/server/angular-read-workspace.d.ts +13 -0
  180. package/dist/ts3.9/server/angular-read-workspace.js +118 -0
  181. package/dist/ts3.9/server/build.d.ts +1 -0
  182. package/dist/ts3.9/server/build.js +65 -0
  183. package/dist/ts3.9/server/create-fork-ts-checker-plugin.d.ts +3 -0
  184. package/dist/ts3.9/server/create-fork-ts-checker-plugin.js +19 -0
  185. package/dist/ts3.9/server/framework-preset-angular-cli.d.ts +73 -0
  186. package/dist/ts3.9/server/framework-preset-angular-cli.js +159 -0
  187. package/dist/ts3.9/server/framework-preset-angular-ivy.d.ts +10 -0
  188. package/dist/ts3.9/server/framework-preset-angular-ivy.js +111 -0
  189. package/dist/ts3.9/server/framework-preset-angular.d.ts +4 -0
  190. package/dist/ts3.9/server/framework-preset-angular.js +74 -0
  191. package/dist/ts3.9/server/index.d.ts +1 -0
  192. package/dist/ts3.9/server/index.js +8 -0
  193. package/dist/ts3.9/server/ngx-template-loader/index.d.ts +1 -0
  194. package/dist/ts3.9/server/ngx-template-loader/index.js +46 -0
  195. package/dist/ts3.9/server/options.d.ts +3 -0
  196. package/dist/ts3.9/server/options.js +8 -0
  197. package/dist/ts3.9/server/preset.d.ts +3 -0
  198. package/dist/ts3.9/server/preset.js +21 -0
  199. package/dist/ts3.9/server/ts_config.d.ts +2 -0
  200. package/dist/ts3.9/server/ts_config.js +28 -0
  201. package/dist/ts3.9/server/utils/filter-out-styling-rules.d.ts +2 -0
  202. package/dist/ts3.9/server/utils/filter-out-styling-rules.js +16 -0
  203. package/dist/ts3.9/server/utils/module-is-available.d.ts +1 -0
  204. package/dist/ts3.9/server/utils/module-is-available.js +12 -0
  205. package/dist/ts3.9/server/utils/normalize-asset-patterns.d.ts +6 -0
  206. package/dist/ts3.9/server/utils/normalize-asset-patterns.js +79 -0
  207. package/dist/ts3.9/server/utils/normalize-optimization.d.ts +3 -0
  208. package/dist/ts3.9/server/utils/normalize-optimization.js +20 -0
  209. package/dist/ts3.9/types/index.d.ts +6 -0
  210. package/dist/ts3.9/types/index.js +2 -0
  211. package/package.json +9 -9
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STORY = void 0;
4
+ var core_1 = require("@angular/core");
5
+ exports.STORY = new core_1.InjectionToken('story');
@@ -0,0 +1,38 @@
1
+ import { OnInit, ViewContainerRef, ComponentFactoryResolver, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
+ import { Observable, Subscription } from 'rxjs';
3
+ import { StoryFnAngularReturnType } from '../../types';
4
+ export declare class AppComponent implements OnInit, OnDestroy {
5
+ private cfr;
6
+ private changeDetectorRef;
7
+ private data;
8
+ target: ViewContainerRef;
9
+ readonly previousValues: {
10
+ [key: string]: any;
11
+ };
12
+ subscription: Subscription;
13
+ propSubscriptions: Map<any, {
14
+ prop: any;
15
+ sub: Subscription;
16
+ }>;
17
+ constructor(cfr: ComponentFactoryResolver, changeDetectorRef: ChangeDetectorRef, data: Observable<StoryFnAngularReturnType>);
18
+ ngOnInit(): void;
19
+ ngOnDestroy(): void;
20
+ /**
21
+ * Set inputs and outputs
22
+ */
23
+ private setProps;
24
+ /**
25
+ * Manually call 'ngOnChanges' hook because angular doesn't do that for dynamic components
26
+ * Issue: [https://github.com/angular/angular/issues/8903]
27
+ */
28
+ private callNgOnChangesHook;
29
+ /**
30
+ * If component implements ControlValueAccessor interface try to set ngModel
31
+ */
32
+ private setNgModel;
33
+ /**
34
+ * Store ref to subscription for cleanup in 'ngOnDestroy' and check if
35
+ * observable needs to be resubscribed to, before creating a new subscription.
36
+ */
37
+ private setPropSubscription;
38
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AppComponent = void 0;
16
+ /* eslint-disable no-useless-constructor */
17
+ // We could use NgComponentOutlet here but there's currently no easy way
18
+ // to provide @Inputs and subscribe to @Outputs, see
19
+ // https://github.com/angular/angular/issues/15360
20
+ // For the time being, the ViewContainerRef approach works pretty well.
21
+ var core_1 = require("@angular/core");
22
+ var rxjs_1 = require("rxjs");
23
+ var operators_1 = require("rxjs/operators");
24
+ var app_token_1 = require("../app.token");
25
+ var AppComponent = /** @class */ (function () {
26
+ function AppComponent(cfr, changeDetectorRef, data) {
27
+ this.cfr = cfr;
28
+ this.changeDetectorRef = changeDetectorRef;
29
+ this.data = data;
30
+ this.previousValues = {};
31
+ this.propSubscriptions = new Map();
32
+ }
33
+ AppComponent.prototype.ngOnInit = function () {
34
+ var _this = this;
35
+ this.data.pipe(operators_1.first()).subscribe(function (data) {
36
+ _this.target.clear();
37
+ var compFactory = _this.cfr.resolveComponentFactory(data.component);
38
+ var componentRef = _this.target.createComponent(compFactory);
39
+ var instance = componentRef.instance;
40
+ // For some reason, manual change detection ref is only working when getting the ref from the injector (rather than componentRef.changeDetectorRef)
41
+ var childChangeDetectorRef = componentRef.injector.get(core_1.ChangeDetectorRef);
42
+ _this.subscription = _this.data.subscribe(function (newData) {
43
+ _this.setProps(instance, newData);
44
+ childChangeDetectorRef.markForCheck();
45
+ // Must detect changes on the current component in order to update any changes in child component's @HostBinding properties (angular/angular#22560)
46
+ _this.changeDetectorRef.detectChanges();
47
+ });
48
+ });
49
+ };
50
+ AppComponent.prototype.ngOnDestroy = function () {
51
+ this.target.clear();
52
+ if (this.subscription) {
53
+ this.subscription.unsubscribe();
54
+ }
55
+ this.propSubscriptions.forEach(function (v) {
56
+ if (!v.sub.closed) {
57
+ v.sub.unsubscribe();
58
+ }
59
+ });
60
+ this.propSubscriptions.clear();
61
+ };
62
+ /**
63
+ * Set inputs and outputs
64
+ */
65
+ AppComponent.prototype.setProps = function (instance, _a) {
66
+ var _this = this;
67
+ var _b = _a.props, props = _b === void 0 ? {} : _b;
68
+ var changes = {};
69
+ var hasNgOnChangesHook = !!instance.ngOnChanges;
70
+ Object.keys(props).forEach(function (key) {
71
+ var value = props[key];
72
+ var instanceProperty = instance[key];
73
+ if (!(instanceProperty instanceof core_1.EventEmitter) && value !== undefined && value !== null) {
74
+ // eslint-disable-next-line no-param-reassign
75
+ instance[key] = value;
76
+ if (hasNgOnChangesHook) {
77
+ var previousValue = _this.previousValues[key];
78
+ if (previousValue !== value) {
79
+ changes[key] = new core_1.SimpleChange(previousValue, value, !Object.prototype.hasOwnProperty.call(_this.previousValues, key));
80
+ _this.previousValues[key] = value;
81
+ }
82
+ }
83
+ }
84
+ else if (typeof value === 'function' && key !== 'ngModelChange') {
85
+ _this.setPropSubscription(key, instanceProperty, value);
86
+ }
87
+ });
88
+ this.callNgOnChangesHook(instance, changes);
89
+ this.setNgModel(instance, props);
90
+ };
91
+ /**
92
+ * Manually call 'ngOnChanges' hook because angular doesn't do that for dynamic components
93
+ * Issue: [https://github.com/angular/angular/issues/8903]
94
+ */
95
+ AppComponent.prototype.callNgOnChangesHook = function (instance, changes) {
96
+ if (Object.keys(changes).length) {
97
+ instance.ngOnChanges(changes);
98
+ }
99
+ };
100
+ /**
101
+ * If component implements ControlValueAccessor interface try to set ngModel
102
+ */
103
+ AppComponent.prototype.setNgModel = function (instance, props) {
104
+ if (props.ngModel) {
105
+ instance.writeValue(props.ngModel);
106
+ }
107
+ if (typeof props.ngModelChange === 'function') {
108
+ instance.registerOnChange(props.ngModelChange);
109
+ }
110
+ };
111
+ /**
112
+ * Store ref to subscription for cleanup in 'ngOnDestroy' and check if
113
+ * observable needs to be resubscribed to, before creating a new subscription.
114
+ */
115
+ AppComponent.prototype.setPropSubscription = function (key, instanceProperty, value) {
116
+ if (this.propSubscriptions.has(key)) {
117
+ var v = this.propSubscriptions.get(key);
118
+ if (v.prop === value) {
119
+ // Prop hasn't changed, so the existing subscription can stay.
120
+ return;
121
+ }
122
+ // Now that the value has changed, unsubscribe from the previous value's subscription.
123
+ if (!v.sub.closed) {
124
+ v.sub.unsubscribe();
125
+ }
126
+ }
127
+ var sub = instanceProperty.subscribe(value);
128
+ this.propSubscriptions.set(key, { prop: value, sub: sub });
129
+ };
130
+ __decorate([
131
+ core_1.ViewChild('target', { read: core_1.ViewContainerRef, static: true }),
132
+ __metadata("design:type", core_1.ViewContainerRef)
133
+ ], AppComponent.prototype, "target", void 0);
134
+ AppComponent = __decorate([
135
+ core_1.Component({
136
+ selector: 'storybook-dynamic-app-root',
137
+ template: '<ng-template #target></ng-template>',
138
+ }),
139
+ __param(2, core_1.Inject(app_token_1.STORY)),
140
+ __metadata("design:paramtypes", [core_1.ComponentFactoryResolver,
141
+ core_1.ChangeDetectorRef,
142
+ rxjs_1.Observable])
143
+ ], AppComponent);
144
+ return AppComponent;
145
+ }());
146
+ exports.AppComponent = AppComponent;
@@ -0,0 +1,8 @@
1
+ import { PartialStoryFn } from '@storybook/csf';
2
+ import { AngularFramework } from '../types-6-0';
3
+ declare global {
4
+ interface Window {
5
+ NODE_ENV: 'string' | 'development' | undefined;
6
+ }
7
+ }
8
+ export declare const renderNgApp: (storyFn: PartialStoryFn<AngularFramework>, forced: boolean) => void;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
3
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
5
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
6
+ r[k] = a[j];
7
+ return r;
8
+ };
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.renderNgApp = void 0;
14
+ // @ts-ignore
15
+ var global_1 = __importDefault(require("global"));
16
+ var core_1 = require("@angular/core");
17
+ var forms_1 = require("@angular/forms");
18
+ var platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
19
+ var platform_browser_1 = require("@angular/platform-browser");
20
+ var rxjs_1 = require("rxjs");
21
+ var app_component_1 = require("./components/app.component");
22
+ var app_token_1 = require("./app.token");
23
+ var document = global_1.default.document;
24
+ var platform = null;
25
+ var promises = [];
26
+ var storyData = new rxjs_1.ReplaySubject(1);
27
+ var moduleClass = /** @class */ (function () {
28
+ function DynamicModule() {
29
+ }
30
+ return DynamicModule;
31
+ }());
32
+ var componentClass = /** @class */ (function () {
33
+ function DynamicComponent() {
34
+ }
35
+ return DynamicComponent;
36
+ }());
37
+ function storyDataFactory(data) {
38
+ return function (ngZone) {
39
+ return new rxjs_1.Observable(function (subscriber) {
40
+ var sub = data.subscribe(function (v) {
41
+ ngZone.run(function () { return subscriber.next(v); });
42
+ }, function (err) {
43
+ ngZone.run(function () { return subscriber.error(err); });
44
+ }, function () {
45
+ ngZone.run(function () { return subscriber.complete(); });
46
+ });
47
+ return function () {
48
+ sub.unsubscribe();
49
+ };
50
+ });
51
+ };
52
+ }
53
+ var getModule = function (declarations, entryComponents, bootstrap, data, moduleMetadata) {
54
+ // Complete last ReplaySubject and create a new one for the current module
55
+ storyData.complete();
56
+ storyData = new rxjs_1.ReplaySubject(1);
57
+ storyData.next(data);
58
+ var moduleMeta = {
59
+ declarations: __spreadArrays(declarations, (moduleMetadata.declarations || [])),
60
+ imports: __spreadArrays([platform_browser_1.BrowserModule, forms_1.FormsModule], (moduleMetadata.imports || [])),
61
+ providers: __spreadArrays([
62
+ { provide: app_token_1.STORY, useFactory: storyDataFactory(storyData.asObservable()), deps: [core_1.NgZone] }
63
+ ], (moduleMetadata.providers || [])),
64
+ entryComponents: __spreadArrays(entryComponents, (moduleMetadata.entryComponents || [])),
65
+ schemas: __spreadArrays((moduleMetadata.schemas || [])),
66
+ bootstrap: __spreadArrays(bootstrap),
67
+ };
68
+ return core_1.NgModule(moduleMeta)(moduleClass);
69
+ };
70
+ var createComponentFromTemplate = function (template, styles) {
71
+ return core_1.Component({
72
+ template: template,
73
+ styles: styles,
74
+ })(componentClass);
75
+ };
76
+ var extractNgModuleMetadata = function (importItem) {
77
+ var target = importItem && importItem.ngModule ? importItem.ngModule : importItem;
78
+ var decoratorKey = '__annotations__';
79
+ var decorators = Reflect &&
80
+ Reflect.getOwnPropertyDescriptor &&
81
+ Reflect.getOwnPropertyDescriptor(target, decoratorKey)
82
+ ? Reflect.getOwnPropertyDescriptor(target, decoratorKey).value
83
+ : target[decoratorKey];
84
+ if (!decorators || decorators.length === 0) {
85
+ return null;
86
+ }
87
+ var ngModuleDecorator = decorators.find(function (decorator) { return decorator instanceof core_1.NgModule; });
88
+ if (!ngModuleDecorator) {
89
+ return null;
90
+ }
91
+ return ngModuleDecorator;
92
+ };
93
+ var getExistenceOfComponentInModules = function (component, declarations, imports) {
94
+ if (declarations && declarations.some(function (declaration) { return declaration === component; })) {
95
+ // Found component in declarations array
96
+ return true;
97
+ }
98
+ if (!imports) {
99
+ return false;
100
+ }
101
+ return imports.some(function (importItem) {
102
+ var extractedNgModuleMetadata = extractNgModuleMetadata(importItem);
103
+ if (!extractedNgModuleMetadata) {
104
+ // Not an NgModule
105
+ return false;
106
+ }
107
+ return getExistenceOfComponentInModules(component, extractedNgModuleMetadata.declarations, extractedNgModuleMetadata.imports);
108
+ });
109
+ };
110
+ var initModule = function (storyFn) {
111
+ var storyObj = storyFn();
112
+ var component = storyObj.component, template = storyObj.template, props = storyObj.props, styles = storyObj.styles, _a = storyObj.moduleMetadata, moduleMetadata = _a === void 0 ? {} : _a;
113
+ var isCreatingComponentFromTemplate = Boolean(template);
114
+ var AnnotatedComponent = isCreatingComponentFromTemplate
115
+ ? createComponentFromTemplate(template, styles)
116
+ : component;
117
+ var componentRequiresDeclaration = isCreatingComponentFromTemplate ||
118
+ !getExistenceOfComponentInModules(component, moduleMetadata.declarations, moduleMetadata.imports);
119
+ var componentDeclarations = componentRequiresDeclaration
120
+ ? [app_component_1.AppComponent, AnnotatedComponent]
121
+ : [app_component_1.AppComponent];
122
+ var story = {
123
+ component: AnnotatedComponent,
124
+ props: props,
125
+ };
126
+ return getModule(componentDeclarations, [AnnotatedComponent], [app_component_1.AppComponent], story, moduleMetadata);
127
+ };
128
+ var staticRoot = document.getElementById('root');
129
+ var insertDynamicRoot = function () {
130
+ var app = document.createElement('storybook-dynamic-app-root');
131
+ staticRoot.innerHTML = '';
132
+ staticRoot.appendChild(app);
133
+ };
134
+ var draw = function (newModule) {
135
+ if (!platform) {
136
+ insertDynamicRoot();
137
+ // eslint-disable-next-line no-undef
138
+ if (typeof NODE_ENV === 'string' && NODE_ENV !== 'development') {
139
+ try {
140
+ core_1.enableProdMode();
141
+ }
142
+ catch (e) {
143
+ //
144
+ }
145
+ }
146
+ platform = platform_browser_dynamic_1.platformBrowserDynamic();
147
+ promises.push(platform.bootstrapModule(newModule));
148
+ }
149
+ else {
150
+ Promise.all(promises).then(function (modules) {
151
+ modules.forEach(function (mod) { return mod.destroy(); });
152
+ insertDynamicRoot();
153
+ promises = [];
154
+ promises.push(platform.bootstrapModule(newModule));
155
+ });
156
+ }
157
+ };
158
+ exports.renderNgApp = function (storyFn, forced) {
159
+ if (!forced) {
160
+ draw(initModule(storyFn));
161
+ }
162
+ else {
163
+ storyData.next(storyFn());
164
+ }
165
+ };
@@ -0,0 +1,44 @@
1
+ import { Subject } from 'rxjs';
2
+ import { ICollection, StoryFnAngularReturnType } from '../types';
3
+ import { Parameters } from '../types-6-0';
4
+ declare type StoryRenderInfo = {
5
+ storyFnAngular: StoryFnAngularReturnType;
6
+ moduleMetadataSnapshot: string;
7
+ };
8
+ export declare abstract class AbstractRenderer {
9
+ storyId: string;
10
+ /**
11
+ * Wait and destroy the platform
12
+ */
13
+ static resetPlatformBrowserDynamic(): Promise<void>;
14
+ /**
15
+ * Reset compiled components because we often want to compile the same component with
16
+ * more than one NgModule.
17
+ */
18
+ protected static resetCompiledComponents: () => Promise<void>;
19
+ protected previousStoryRenderInfo: StoryRenderInfo;
20
+ protected storyProps$: Subject<ICollection | undefined>;
21
+ constructor(storyId: string);
22
+ protected abstract beforeFullRender(): Promise<void>;
23
+ protected abstract afterFullRender(): Promise<void>;
24
+ /**
25
+ * Bootstrap main angular module with main component or send only new `props` with storyProps$
26
+ *
27
+ * @param storyFnAngular {StoryFnAngularReturnType}
28
+ * @param forced {boolean} If :
29
+ * - true render will only use the StoryFn `props' in storyProps observable that will update sotry's component/template properties. Improves performance without reloading the whole module&component if props changes
30
+ * - false fully recharges or initializes angular module & component
31
+ * @param component {Component}
32
+ * @param parameters {Parameters}
33
+ */
34
+ render({ storyFnAngular, forced, parameters, component, targetDOMNode, }: {
35
+ storyFnAngular: StoryFnAngularReturnType;
36
+ forced: boolean;
37
+ component?: any;
38
+ parameters: Parameters;
39
+ targetDOMNode: HTMLElement;
40
+ }): Promise<void>;
41
+ protected initAngularRootElement(targetDOMNode: HTMLElement, targetSelector: string): void;
42
+ private fullRendererRequired;
43
+ }
44
+ export {};
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = (this && this.__generator) || function (thisArg, body) {
31
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
32
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
+ function verb(n) { return function (v) { return step([n, v]); }; }
34
+ function step(op) {
35
+ if (f) throw new TypeError("Generator is already executing.");
36
+ while (_) try {
37
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
38
+ if (y = 0, t) op = [op[0] & 2, t.value];
39
+ switch (op[0]) {
40
+ case 0: case 1: t = op; break;
41
+ case 4: _.label++; return { value: op[1], done: false };
42
+ case 5: _.label++; y = op[1]; op = [0]; continue;
43
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
+ default:
45
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
+ if (t[2]) _.ops.pop();
50
+ _.trys.pop(); continue;
51
+ }
52
+ op = body.call(thisArg, _);
53
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
+ }
56
+ };
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ exports.AbstractRenderer = void 0;
59
+ /* eslint-disable no-undef */
60
+ var core_1 = require("@angular/core");
61
+ var platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
62
+ var rxjs_1 = require("rxjs");
63
+ var telejson_1 = require("telejson");
64
+ var StorybookModule_1 = require("./StorybookModule");
65
+ // platform must be init only if render is called at least once
66
+ var platformRef;
67
+ function getPlatform(newPlatform) {
68
+ if (!platformRef || newPlatform) {
69
+ platformRef = platform_browser_dynamic_1.platformBrowserDynamic();
70
+ }
71
+ return platformRef;
72
+ }
73
+ var AbstractRenderer = /** @class */ (function () {
74
+ function AbstractRenderer(storyId) {
75
+ this.storyId = storyId;
76
+ if (typeof NODE_ENV === 'string' && NODE_ENV !== 'development') {
77
+ try {
78
+ // platform should be set after enableProdMode()
79
+ core_1.enableProdMode();
80
+ }
81
+ catch (e) {
82
+ // eslint-disable-next-line no-console
83
+ console.debug(e);
84
+ }
85
+ }
86
+ }
87
+ /**
88
+ * Wait and destroy the platform
89
+ */
90
+ AbstractRenderer.resetPlatformBrowserDynamic = function () {
91
+ var _this = this;
92
+ return new Promise(function (resolve) {
93
+ if (platformRef && !platformRef.destroyed) {
94
+ platformRef.onDestroy(function () { return __awaiter(_this, void 0, void 0, function () {
95
+ return __generator(this, function (_a) {
96
+ resolve();
97
+ return [2 /*return*/];
98
+ });
99
+ }); });
100
+ // Destroys the current Angular platform and all Angular applications on the page.
101
+ // So call each angular ngOnDestroy and avoid memory leaks
102
+ platformRef.destroy();
103
+ return;
104
+ }
105
+ resolve();
106
+ }).then(function () {
107
+ getPlatform(true);
108
+ });
109
+ };
110
+ /**
111
+ * Bootstrap main angular module with main component or send only new `props` with storyProps$
112
+ *
113
+ * @param storyFnAngular {StoryFnAngularReturnType}
114
+ * @param forced {boolean} If :
115
+ * - true render will only use the StoryFn `props' in storyProps observable that will update sotry's component/template properties. Improves performance without reloading the whole module&component if props changes
116
+ * - false fully recharges or initializes angular module & component
117
+ * @param component {Component}
118
+ * @param parameters {Parameters}
119
+ */
120
+ AbstractRenderer.prototype.render = function (_a) {
121
+ var _b;
122
+ var storyFnAngular = _a.storyFnAngular, forced = _a.forced, parameters = _a.parameters, component = _a.component, targetDOMNode = _a.targetDOMNode;
123
+ return __awaiter(this, void 0, void 0, function () {
124
+ var targetSelector, newStoryProps$, moduleMetadata;
125
+ return __generator(this, function (_c) {
126
+ switch (_c.label) {
127
+ case 0:
128
+ targetSelector = "" + this.storyId;
129
+ newStoryProps$ = new rxjs_1.BehaviorSubject(storyFnAngular.props);
130
+ moduleMetadata = StorybookModule_1.getStorybookModuleMetadata({ storyFnAngular: storyFnAngular, component: component, targetSelector: targetSelector }, newStoryProps$);
131
+ if (!this.fullRendererRequired({
132
+ storyFnAngular: storyFnAngular,
133
+ moduleMetadata: moduleMetadata,
134
+ forced: forced,
135
+ })) {
136
+ this.storyProps$.next(storyFnAngular.props);
137
+ return [2 /*return*/];
138
+ }
139
+ return [4 /*yield*/, this.beforeFullRender()];
140
+ case 1:
141
+ _c.sent();
142
+ // Complete last BehaviorSubject and set a new one for the current module
143
+ if (this.storyProps$) {
144
+ this.storyProps$.complete();
145
+ }
146
+ this.storyProps$ = newStoryProps$;
147
+ this.initAngularRootElement(targetDOMNode, targetSelector);
148
+ return [4 /*yield*/, getPlatform().bootstrapModule(StorybookModule_1.createStorybookModule(moduleMetadata), (_b = parameters.bootstrapModuleOptions) !== null && _b !== void 0 ? _b : undefined)];
149
+ case 2:
150
+ _c.sent();
151
+ return [4 /*yield*/, this.afterFullRender()];
152
+ case 3:
153
+ _c.sent();
154
+ return [2 /*return*/];
155
+ }
156
+ });
157
+ });
158
+ };
159
+ AbstractRenderer.prototype.initAngularRootElement = function (targetDOMNode, targetSelector) {
160
+ // Adds DOM element that angular will use as bootstrap component
161
+ // eslint-disable-next-line no-param-reassign
162
+ targetDOMNode.innerHTML = '';
163
+ targetDOMNode.appendChild(document.createElement(targetSelector));
164
+ };
165
+ AbstractRenderer.prototype.fullRendererRequired = function (_a) {
166
+ var _b;
167
+ var storyFnAngular = _a.storyFnAngular, moduleMetadata = _a.moduleMetadata, forced = _a.forced;
168
+ var previousStoryRenderInfo = this.previousStoryRenderInfo;
169
+ var currentStoryRender = {
170
+ storyFnAngular: storyFnAngular,
171
+ moduleMetadataSnapshot: telejson_1.stringify(moduleMetadata),
172
+ };
173
+ this.previousStoryRenderInfo = currentStoryRender;
174
+ if (
175
+ // check `forceRender` of story RenderContext
176
+ !forced ||
177
+ // if it's the first rendering and storyProps$ is not init
178
+ !this.storyProps$) {
179
+ return true;
180
+ }
181
+ // force the rendering if the template has changed
182
+ var hasChangedTemplate = !!(storyFnAngular === null || storyFnAngular === void 0 ? void 0 : storyFnAngular.template) &&
183
+ ((_b = previousStoryRenderInfo === null || previousStoryRenderInfo === void 0 ? void 0 : previousStoryRenderInfo.storyFnAngular) === null || _b === void 0 ? void 0 : _b.template) !== storyFnAngular.template;
184
+ if (hasChangedTemplate) {
185
+ return true;
186
+ }
187
+ // force the rendering if the metadata structure has changed
188
+ var hasChangedModuleMetadata = currentStoryRender.moduleMetadataSnapshot !== (previousStoryRenderInfo === null || previousStoryRenderInfo === void 0 ? void 0 : previousStoryRenderInfo.moduleMetadataSnapshot);
189
+ return hasChangedModuleMetadata;
190
+ };
191
+ /**
192
+ * Reset compiled components because we often want to compile the same component with
193
+ * more than one NgModule.
194
+ */
195
+ AbstractRenderer.resetCompiledComponents = function () { return __awaiter(void 0, void 0, void 0, function () {
196
+ var ɵresetCompiledComponents, e_1;
197
+ return __generator(this, function (_a) {
198
+ switch (_a.label) {
199
+ case 0:
200
+ _a.trys.push([0, 2, , 3]);
201
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('@angular/core')); })];
202
+ case 1:
203
+ ɵresetCompiledComponents = (_a.sent()).ɵresetCompiledComponents;
204
+ ɵresetCompiledComponents();
205
+ return [3 /*break*/, 3];
206
+ case 2:
207
+ e_1 = _a.sent();
208
+ return [3 /*break*/, 3];
209
+ case 3: return [2 /*return*/];
210
+ }
211
+ });
212
+ }); };
213
+ return AbstractRenderer;
214
+ }());
215
+ exports.AbstractRenderer = AbstractRenderer;
@@ -0,0 +1,14 @@
1
+ import { AbstractRenderer } from './AbstractRenderer';
2
+ import { StoryFnAngularReturnType } from '../types';
3
+ import { Parameters } from '../types-6-0';
4
+ export declare class CanvasRenderer extends AbstractRenderer {
5
+ render(options: {
6
+ storyFnAngular: StoryFnAngularReturnType;
7
+ forced: boolean;
8
+ parameters: Parameters;
9
+ component: any;
10
+ targetDOMNode: HTMLElement;
11
+ }): Promise<void>;
12
+ beforeFullRender(): Promise<void>;
13
+ afterFullRender(): Promise<void>;
14
+ }