@storybook/angular 7.0.0-alpha.6 → 7.0.0-alpha.61

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 (314) hide show
  1. package/.eslintrc.js +8 -0
  2. package/README.md +1 -1
  3. package/dist/{types/builders → builders}/build-storybook/index.d.ts +3 -3
  4. package/dist/{types/builders → builders}/build-storybook/index.js +0 -0
  5. package/dist/builders/build-storybook/index.spec.d.ts +1 -0
  6. package/dist/builders/build-storybook/index.spec.js +218 -0
  7. package/dist/{types/builders → builders}/build-storybook/schema.json +0 -0
  8. package/dist/{types/builders → builders}/builders.json +0 -0
  9. package/dist/{types/builders → builders}/start-storybook/index.d.ts +3 -3
  10. package/dist/{types/builders → builders}/start-storybook/index.js +0 -0
  11. package/dist/builders/start-storybook/index.spec.d.ts +1 -0
  12. package/dist/builders/start-storybook/index.spec.js +214 -0
  13. package/dist/{types/builders → builders}/start-storybook/schema.json +0 -0
  14. package/dist/{types/builders → builders}/utils/build-standalone-errors-handler.d.ts +0 -0
  15. package/dist/{types/builders → builders}/utils/build-standalone-errors-handler.js +3 -6
  16. package/dist/{types/builders → builders}/utils/run-compodoc.d.ts +0 -0
  17. package/dist/{types/builders → builders}/utils/run-compodoc.js +0 -1
  18. package/dist/builders/utils/run-compodoc.spec.d.ts +1 -0
  19. package/dist/builders/utils/run-compodoc.spec.js +59 -0
  20. package/dist/{types/builders → builders}/utils/standalone-options.d.ts +3 -3
  21. package/dist/{types/builders → builders}/utils/standalone-options.js +0 -0
  22. package/dist/{types/client/preview/angular/components → client/angular}/app.component.d.ts +2 -2
  23. package/dist/{types/client/preview/angular/components → client/angular}/app.component.js +1 -2
  24. package/dist/{types/client/preview → client}/angular/app.token.d.ts +0 -0
  25. package/dist/{types/client/preview → client}/angular/app.token.js +0 -0
  26. package/dist/{types/client/preview → client}/angular/helpers.d.ts +3 -3
  27. package/dist/{types/client/preview → client}/angular/helpers.js +2 -3
  28. package/dist/{types/client/preview → client}/angular-beta/AbstractRenderer.d.ts +2 -3
  29. package/dist/{types/client/preview → client}/angular-beta/AbstractRenderer.js +13 -13
  30. package/dist/{types/client/preview → client}/angular-beta/CanvasRenderer.d.ts +1 -2
  31. package/dist/{types/client/preview → client}/angular-beta/CanvasRenderer.js +0 -0
  32. package/dist/{types/client/preview → client}/angular-beta/ComputesTemplateFromComponent.d.ts +3 -3
  33. package/dist/{types/client/preview → client}/angular-beta/ComputesTemplateFromComponent.js +3 -3
  34. package/dist/client/angular-beta/ComputesTemplateFromComponent.test.d.ts +1 -0
  35. package/dist/client/angular-beta/ComputesTemplateFromComponent.test.js +390 -0
  36. package/dist/{types/client/preview → client}/angular-beta/DocsRenderer.d.ts +1 -2
  37. package/dist/{types/client/preview → client}/angular-beta/DocsRenderer.js +5 -8
  38. package/dist/{types/client/preview → client}/angular-beta/RendererFactory.d.ts +1 -1
  39. package/dist/{types/client/preview → client}/angular-beta/RendererFactory.js +3 -3
  40. package/dist/client/angular-beta/RendererFactory.test.d.ts +1 -0
  41. package/dist/client/angular-beta/RendererFactory.test.js +297 -0
  42. package/dist/{types/client/preview → client}/angular-beta/StorybookModule.d.ts +2 -2
  43. package/dist/{types/client/preview → client}/angular-beta/StorybookModule.js +4 -23
  44. package/dist/client/angular-beta/StorybookModule.test.d.ts +1 -0
  45. package/dist/client/angular-beta/StorybookModule.test.js +279 -0
  46. package/dist/{types/client/preview → client}/angular-beta/StorybookProvider.d.ts +1 -1
  47. package/dist/{types/client/preview → client}/angular-beta/StorybookProvider.js +0 -0
  48. package/dist/{types/client/preview → client}/angular-beta/StorybookWrapperComponent.d.ts +0 -0
  49. package/dist/{types/client/preview → client}/angular-beta/StorybookWrapperComponent.js +0 -1
  50. package/dist/client/angular-beta/__testfixtures__/input.component.d.ts +26 -0
  51. package/dist/client/angular-beta/__testfixtures__/input.component.js +67 -0
  52. package/dist/{types/client/preview → client}/angular-beta/utils/NgComponentAnalyzer.d.ts +2 -2
  53. package/dist/{types/client/preview → client}/angular-beta/utils/NgComponentAnalyzer.js +0 -0
  54. package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.d.ts +1 -0
  55. package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.js +340 -0
  56. package/dist/{types/client/preview → client}/angular-beta/utils/NgModulesAnalyzer.d.ts +0 -0
  57. package/dist/{types/client/preview → client}/angular-beta/utils/NgModulesAnalyzer.js +0 -0
  58. package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.d.ts +1 -0
  59. package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.js +23 -0
  60. package/dist/client/config.d.ts +6 -0
  61. package/dist/client/config.js +10 -0
  62. package/dist/client/decorateStory.d.ts +4 -0
  63. package/dist/{types/client/preview → client}/decorateStory.js +3 -3
  64. package/dist/client/decorateStory.test.d.ts +1 -0
  65. package/dist/client/decorateStory.test.js +335 -0
  66. package/dist/client/decorators.d.ts +5 -0
  67. package/dist/{types/client/preview → client}/decorators.js +0 -0
  68. package/dist/client/decorators.test.d.ts +1 -0
  69. package/dist/client/decorators.test.js +106 -0
  70. package/dist/client/docs/__testfixtures__/doc-button/input.d.ts +111 -0
  71. package/dist/client/docs/__testfixtures__/doc-button/input.js +207 -0
  72. package/dist/client/docs/__testfixtures__/doc-button/tsconfig.json +7 -0
  73. package/dist/client/docs/angular-properties.test.d.ts +1 -0
  74. package/dist/client/docs/angular-properties.test.js +56 -0
  75. package/dist/{types/client → client}/docs/compodoc.d.ts +5 -11
  76. package/dist/{types/client → client}/docs/compodoc.js +7 -7
  77. package/dist/client/docs/compodoc.test.d.ts +1 -0
  78. package/dist/client/docs/compodoc.test.js +131 -0
  79. package/dist/client/docs/config.d.ts +4 -0
  80. package/dist/{types/client → client}/docs/config.js +0 -0
  81. package/dist/{types/client → client}/docs/index.d.ts +0 -0
  82. package/dist/{types/client → client}/docs/index.js +0 -0
  83. package/dist/{types/client → client}/docs/sourceDecorator.d.ts +3 -3
  84. package/dist/{types/client → client}/docs/sourceDecorator.js +3 -3
  85. package/dist/{types/client → client}/docs/types.d.ts +1 -1
  86. package/dist/{types/client → client}/docs/types.js +0 -0
  87. package/dist/{types/client/preview/angular-polyfills.d.ts → client/globals.d.ts} +0 -10
  88. package/dist/{types/client/preview/angular-polyfills.js → client/globals.js} +7 -1
  89. package/dist/client/index.d.ts +5 -0
  90. package/dist/client/index.js +28 -0
  91. package/dist/client/public-api.d.ts +15 -0
  92. package/dist/client/public-api.js +36 -0
  93. package/dist/client/public-types.d.ts +36 -0
  94. package/dist/{types/client/preview/types-6-0.js → client/public-types.js} +0 -0
  95. package/dist/client/render.d.ts +6 -0
  96. package/dist/{types/client/preview → client}/render.js +3 -3
  97. package/dist/{types/client/preview → client}/types.d.ts +17 -8
  98. package/dist/{types/client/preview → client}/types.js +0 -0
  99. package/dist/index.d.ts +2 -0
  100. package/dist/{types/index.js → index.js} +1 -1
  101. package/dist/preset.d.ts +6 -0
  102. package/dist/{types/preset.js → preset.js} +12 -9
  103. package/dist/renderer.d.ts +4 -0
  104. package/dist/{types/renderer.js → renderer.js} +4 -4
  105. package/dist/{types/server → server}/__mocks-ng-workspace__/empty-projects-entry/angular.json +0 -0
  106. package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/angular.json +0 -0
  107. package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/src/main.d.ts +0 -0
  108. package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/src/main.js +0 -0
  109. package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/src/tsconfig.app.json +0 -0
  110. package/dist/{types/server/__mocks-ng-workspace__/some-config → server/__mocks-ng-workspace__/minimal-config}/tsconfig.json +1 -4
  111. package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/angular.json +0 -0
  112. package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/src/main.d.ts +0 -0
  113. package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/src/main.js +0 -0
  114. package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/src/tsconfig.app.json +0 -0
  115. package/dist/{types/server/__mocks-ng-workspace__/with-angularBrowserTarget → server/__mocks-ng-workspace__/some-config}/tsconfig.json +1 -4
  116. package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/angular.json +0 -0
  117. package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.d.ts +0 -0
  118. package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.js +0 -0
  119. package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/src/tsconfig.app.json +0 -0
  120. package/dist/{types/server/__mocks-ng-workspace__/minimal-config → server/__mocks-ng-workspace__/with-angularBrowserTarget}/tsconfig.json +1 -4
  121. package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/angular.json +0 -0
  122. package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +0 -0
  123. package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +0 -0
  124. package/dist/{types/server/__mocks-ng-workspace__/without-projects-entry → server/__mocks-ng-workspace__/with-lib}/projects/pattern-lib/tsconfig.lib.json +2 -8
  125. package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/tsconfig.json +1 -4
  126. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/angular.json +0 -0
  127. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/nx.json +0 -0
  128. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/src/main.d.ts +0 -0
  129. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/src/main.js +0 -0
  130. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/src/tsconfig.app.json +0 -0
  131. package/dist/server/__mocks-ng-workspace__/with-nx/tsconfig.json +14 -0
  132. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/nx.json +0 -0
  133. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/src/main.d.ts +0 -0
  134. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/src/main.js +0 -0
  135. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/src/tsconfig.app.json +0 -0
  136. package/dist/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +14 -0
  137. package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/workspace.json +0 -0
  138. package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/angular.json +0 -0
  139. package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/src/main.d.ts +0 -0
  140. package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/src/main.js +0 -0
  141. package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/src/tsconfig.app.json +0 -0
  142. package/dist/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +13 -0
  143. package/dist/{types/server → server}/__mocks-ng-workspace__/without-architect-build/angular.json +0 -0
  144. package/dist/{types/server → server}/__mocks-ng-workspace__/without-architect-build-options/angular.json +0 -0
  145. package/dist/{types/server → server}/__mocks-ng-workspace__/without-compatible-projects/angular.json +0 -0
  146. package/dist/{types/server → server}/__mocks-ng-workspace__/without-projects-entry/angular.json +0 -0
  147. package/dist/{types/server → server}/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +0 -0
  148. package/dist/{types/server → server}/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +0 -0
  149. package/dist/{types/server/__mocks-ng-workspace__/with-lib → server/__mocks-ng-workspace__/without-projects-entry}/projects/pattern-lib/tsconfig.lib.json +2 -8
  150. package/dist/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +13 -0
  151. package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/angular.json +0 -0
  152. package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +0 -0
  153. package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/src/main.js +0 -0
  154. package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +0 -0
  155. package/dist/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +13 -0
  156. package/dist/server/__tests__/angular.json +96 -0
  157. package/dist/{types/server/angular-cli-webpack-12.2.x.d.ts → server/angular-cli-webpack.d.ts} +0 -0
  158. package/dist/{types/server/angular-cli-webpack-13.x.x.js → server/angular-cli-webpack.js} +6 -1
  159. package/dist/{types/server → server}/angular-read-workspace.d.ts +0 -0
  160. package/dist/{types/server → server}/angular-read-workspace.js +1 -1
  161. package/dist/{types/server → server}/framework-preset-angular-cli.d.ts +1 -1
  162. package/dist/{types/server → server}/framework-preset-angular-cli.js +5 -24
  163. package/dist/server/framework-preset-angular-cli.test.d.ts +1 -0
  164. package/dist/server/framework-preset-angular-cli.test.js +698 -0
  165. package/dist/{types/server → server}/framework-preset-angular-docs.d.ts +1 -1
  166. package/dist/{types/server → server}/framework-preset-angular-docs.js +1 -1
  167. package/dist/{types/server → server}/framework-preset-angular-ivy.d.ts +1 -1
  168. package/dist/{types/server → server}/framework-preset-angular-ivy.js +4 -2
  169. package/dist/server/plugins/storybook-normalize-angular-entry-plugin.d.ts +25 -0
  170. package/dist/server/plugins/storybook-normalize-angular-entry-plugin.js +46 -0
  171. package/dist/{types/server → server}/preset-options.d.ts +2 -2
  172. package/dist/{types/server → server}/preset-options.js +0 -0
  173. package/dist/{types/server → server}/utils/filter-out-styling-rules.d.ts +1 -1
  174. package/dist/{types/server → server}/utils/filter-out-styling-rules.js +0 -0
  175. package/dist/{types/server → server}/utils/module-is-available.d.ts +0 -0
  176. package/dist/{types/server → server}/utils/module-is-available.js +0 -0
  177. package/dist/{types/server → server}/utils/normalize-asset-patterns.d.ts +1 -1
  178. package/dist/{types/server → server}/utils/normalize-asset-patterns.js +0 -0
  179. package/dist/{types/server → server}/utils/normalize-optimization.d.ts +0 -0
  180. package/dist/{types/server → server}/utils/normalize-optimization.js +0 -0
  181. package/dist/types.d.ts +29 -0
  182. package/dist/{types/types.js → types.js} +0 -0
  183. package/jest.config.js +8 -1
  184. package/package.json +48 -53
  185. package/preset.js +1 -1
  186. package/renderer.d.ts +1 -1
  187. package/renderer.js +1 -1
  188. package/template/cli/.eslintrc.json +5 -0
  189. package/template/cli/Button.stories.ts +51 -0
  190. package/template/cli/Header.stories.ts +37 -0
  191. package/template/cli/Page.stories.ts +46 -0
  192. package/template/cli/User.ts +2 -0
  193. package/template/cli/button.component.ts +53 -0
  194. package/template/cli/header.component.ts +75 -0
  195. package/template/cli/page.component.ts +77 -0
  196. package/template/components/button.component.ts +54 -0
  197. package/template/components/button.css +30 -0
  198. package/template/components/form.component.ts +37 -0
  199. package/template/components/html.component.ts +22 -0
  200. package/template/components/index.js +8 -0
  201. package/template/components/pre.component.ts +29 -0
  202. package/template/stories/angular-mdx.stories.mdx +25 -0
  203. package/template/stories/argTypes/doc-button/doc-button.component.html +7 -0
  204. package/template/stories/argTypes/doc-button/doc-button.component.scss +3 -0
  205. package/template/stories/argTypes/doc-button/doc-button.component.ts +233 -0
  206. package/template/stories/argTypes/doc-button/doc-button.stories.ts +24 -0
  207. package/template/stories/argTypes/doc-directive/doc-directive.directive.ts +24 -0
  208. package/template/stories/argTypes/doc-directive/doc-directive.stories.ts +14 -0
  209. package/template/stories/argTypes/doc-injectable/doc-injectable.service.ts +27 -0
  210. package/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts +17 -0
  211. package/template/stories/argTypes/doc-pipe/doc-pipe.pipe.ts +18 -0
  212. package/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts +17 -0
  213. package/template/stories/basics/README.stories.mdx +7 -0
  214. package/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts +27 -0
  215. package/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva.component.ts +57 -0
  216. package/template/stories/basics/component-with-complex-selectors/attribute-selector.component.ts +19 -0
  217. package/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts +8 -0
  218. package/template/stories/basics/component-with-complex-selectors/class-selector.component.stories.ts +8 -0
  219. package/template/stories/basics/component-with-complex-selectors/class-selector.component.ts +19 -0
  220. package/template/stories/basics/component-with-complex-selectors/multiple-class-selector.component.stories.ts +8 -0
  221. package/template/stories/basics/component-with-complex-selectors/multiple-selector.component.stories.ts +8 -0
  222. package/template/stories/basics/component-with-complex-selectors/multiple-selector.component.ts +37 -0
  223. package/template/stories/basics/component-with-enums/enums.component.html +8 -0
  224. package/template/stories/basics/component-with-enums/enums.component.stories.ts +24 -0
  225. package/template/stories/basics/component-with-enums/enums.component.ts +53 -0
  226. package/template/stories/basics/component-with-inheritance/base-button.component.ts +10 -0
  227. package/template/stories/basics/component-with-inheritance/base-button.stories.ts +12 -0
  228. package/template/stories/basics/component-with-inheritance/icon-button.component.ts +11 -0
  229. package/template/stories/basics/component-with-inheritance/icon-button.stories.ts +13 -0
  230. package/template/stories/basics/component-with-ng-content/ng-content-about-parent.stories.ts +58 -0
  231. package/template/stories/basics/component-with-ng-content/ng-content-simple.stories.ts +29 -0
  232. package/template/stories/basics/component-with-ng-on-destroy/component-with-on-destroy.stories.ts +42 -0
  233. package/template/stories/basics/component-with-on-push/on-push-box.component.ts +21 -0
  234. package/template/stories/basics/component-with-on-push/on-push.stories.ts +21 -0
  235. package/template/stories/basics/component-with-pipe/custom-pipes.stories.ts +31 -0
  236. package/template/stories/basics/component-with-pipe/custom.pipe.ts +10 -0
  237. package/template/stories/basics/component-with-pipe/with-pipe.component.ts +10 -0
  238. package/template/stories/basics/component-with-provider/di.component.html +7 -0
  239. package/template/stories/basics/component-with-provider/di.component.stories.ts +26 -0
  240. package/template/stories/basics/component-with-provider/di.component.ts +28 -0
  241. package/template/stories/basics/component-with-style/styled.component.css +3 -0
  242. package/template/stories/basics/component-with-style/styled.component.html +5 -0
  243. package/template/stories/basics/component-with-style/styled.component.scss +5 -0
  244. package/template/stories/basics/component-with-style/styled.component.stories.ts +10 -0
  245. package/template/stories/basics/component-with-style/styled.component.ts +8 -0
  246. package/template/stories/basics/component-without-selector/without-selector-ng-component-outlet.stories.ts +73 -0
  247. package/template/stories/basics/component-without-selector/without-selector-ng-factory-resolver.stories.ts +71 -0
  248. package/template/stories/basics/component-without-selector/without-selector.component.ts +30 -0
  249. package/template/stories/basics/component-without-selector/without-selector.stories.ts +30 -0
  250. package/template/stories/basics/ng-module/angular-src/chip-color.token.ts +3 -0
  251. package/template/stories/basics/ng-module/angular-src/chip-text.pipe.ts +29 -0
  252. package/template/stories/basics/ng-module/angular-src/chip.component.ts +60 -0
  253. package/template/stories/basics/ng-module/angular-src/chips-group.component.ts +49 -0
  254. package/template/stories/basics/ng-module/angular-src/chips.module.ts +31 -0
  255. package/template/stories/basics/ng-module/import-module-for-root.stories.ts +50 -0
  256. package/template/stories/basics/ng-module/import-module.stories.ts +46 -0
  257. package/template/stories/button.component.ts +26 -0
  258. package/template/stories/core/README.stories.mdx +7 -0
  259. package/template/stories/core/decorators/componentWrapperDecorator/child.component.ts +20 -0
  260. package/template/stories/core/decorators/componentWrapperDecorator/decorators.stories.ts +117 -0
  261. package/template/stories/core/decorators/componentWrapperDecorator/parent.component.ts +18 -0
  262. package/template/stories/core/decorators/theme-decorator/decorators.stories.ts +20 -0
  263. package/template/stories/core/moduleMetadata/angular-src/custom.pipe.ts +10 -0
  264. package/template/stories/core/moduleMetadata/angular-src/dummy.service.ts +14 -0
  265. package/template/stories/core/moduleMetadata/angular-src/service.component.ts +24 -0
  266. package/template/stories/core/moduleMetadata/angular-src/token.component.ts +31 -0
  267. package/template/stories/core/moduleMetadata/in-export-default.stories.ts +38 -0
  268. package/template/stories/core/moduleMetadata/in-stories.stories.ts +46 -0
  269. package/template/stories/core/moduleMetadata/merge-default-and-story.stories.ts +35 -0
  270. package/template/stories/core/parameters/bootstrap-options.stories.ts +22 -0
  271. package/template/stories/core/styles/story-styles.stories.ts +50 -0
  272. package/template/stories/others/issues/12009-unknown-component.stories.ts +14 -0
  273. package/template/stories/others/ngx-translate/README.stories.mdx +58 -0
  274. package/LICENSE +0 -21
  275. package/dist/types/client/docs/config.d.ts +0 -14
  276. package/dist/types/client/index.d.ts +0 -4
  277. package/dist/types/client/index.js +0 -32
  278. package/dist/types/client/preview/config.d.ts +0 -6
  279. package/dist/types/client/preview/config.js +0 -10
  280. package/dist/types/client/preview/decorateStory.d.ts +0 -4
  281. package/dist/types/client/preview/decorators.d.ts +0 -6
  282. package/dist/types/client/preview/globals.d.ts +0 -1
  283. package/dist/types/client/preview/globals.js +0 -9
  284. package/dist/types/client/preview/index.d.ts +0 -25
  285. package/dist/types/client/preview/index.js +0 -29
  286. package/dist/types/client/preview/render.d.ts +0 -7
  287. package/dist/types/client/preview/types-6-0.d.ts +0 -42
  288. package/dist/types/client/preview/types-7-0.d.ts +0 -9
  289. package/dist/types/client/preview/types-7-0.js +0 -2
  290. package/dist/types/index.d.ts +0 -2
  291. package/dist/types/preset.d.ts +0 -13
  292. package/dist/types/renderer.d.ts +0 -4
  293. package/dist/types/server/__mocks-ng-workspace__/with-nx/tsconfig.json +0 -19
  294. package/dist/types/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +0 -19
  295. package/dist/types/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +0 -16
  296. package/dist/types/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +0 -16
  297. package/dist/types/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +0 -16
  298. package/dist/types/server/angular-cli-webpack-12.2.x.js +0 -66
  299. package/dist/types/server/angular-cli-webpack-13.x.x.d.ts +0 -1
  300. package/dist/types/server/angular-cli-webpack-older.d.ts +0 -6
  301. package/dist/types/server/angular-cli-webpack-older.js +0 -111
  302. package/dist/types/server/angular-devkit-build-webpack.d.ts +0 -30
  303. package/dist/types/server/angular-devkit-build-webpack.js +0 -164
  304. package/dist/types/server/create-fork-ts-checker-plugin.d.ts +0 -3
  305. package/dist/types/server/create-fork-ts-checker-plugin.js +0 -19
  306. package/dist/types/server/framework-preset-angular.d.ts +0 -5
  307. package/dist/types/server/framework-preset-angular.js +0 -103
  308. package/dist/types/server/ngx-template-loader/index.d.ts +0 -1
  309. package/dist/types/server/ngx-template-loader/index.js +0 -46
  310. package/dist/types/server/ts_config.d.ts +0 -2
  311. package/dist/types/server/ts_config.js +0 -28
  312. package/dist/types/types.d.ts +0 -13
  313. package/types-6-0.d.ts +0 -1
  314. package/types-7-0.d.ts +0 -1
@@ -0,0 +1,297 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const core_1 = require("@angular/core");
10
+ const testing_1 = require("@angular/platform-browser-dynamic/testing");
11
+ const platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
12
+ const CanvasRenderer_1 = require("./CanvasRenderer");
13
+ const RendererFactory_1 = require("./RendererFactory");
14
+ const DocsRenderer_1 = require("./DocsRenderer");
15
+ jest.mock('@angular/platform-browser-dynamic');
16
+ describe('RendererFactory', () => {
17
+ let rendererFactory;
18
+ let rootTargetDOMNode;
19
+ let rootDocstargetDOMNode;
20
+ beforeEach(async () => {
21
+ rendererFactory = new RendererFactory_1.RendererFactory();
22
+ document.body.innerHTML =
23
+ '<div id="storybook-root"></div><div id="root-docs"><div id="story-in-docs"></div></div>';
24
+ rootTargetDOMNode = global.document.getElementById('storybook-root');
25
+ rootDocstargetDOMNode = global.document.getElementById('root-docs');
26
+ platform_browser_dynamic_1.platformBrowserDynamic.mockImplementation(testing_1.platformBrowserDynamicTesting);
27
+ jest.spyOn(console, 'log').mockImplementation(() => { });
28
+ });
29
+ afterEach(() => {
30
+ jest.clearAllMocks();
31
+ // Necessary to avoid this error "Provided value for `preserveWhitespaces` can not be changed once it has been set." :
32
+ // Source: https://github.com/angular/angular/commit/e342ffd855ffeb8af7067b42307ffa320d82177e#diff-92b125e532cc22977b46a91f068d6d7ea81fd61b772842a4a0212f1cfd875be6R28
33
+ (0, core_1.ɵresetJitOptions)();
34
+ });
35
+ describe('CanvasRenderer', () => {
36
+ it('should get CanvasRenderer instance', async () => {
37
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
38
+ expect(render).toBeInstanceOf(CanvasRenderer_1.CanvasRenderer);
39
+ });
40
+ it('should render my-story for story template', async () => {
41
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
42
+ await render.render({
43
+ storyFnAngular: {
44
+ template: '🦊',
45
+ props: {},
46
+ },
47
+ forced: false,
48
+ parameters: {},
49
+ targetDOMNode: rootTargetDOMNode,
50
+ });
51
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('🦊');
52
+ });
53
+ it('should render my-story for story component', async () => {
54
+ let FooComponent = class FooComponent {
55
+ };
56
+ FooComponent = __decorate([
57
+ (0, core_1.Component)({ selector: 'foo', template: '🦊' })
58
+ ], FooComponent);
59
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
60
+ await render.render({
61
+ storyFnAngular: {
62
+ props: {},
63
+ },
64
+ forced: false,
65
+ parameters: {},
66
+ component: FooComponent,
67
+ targetDOMNode: rootTargetDOMNode,
68
+ });
69
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('<foo>🦊</foo><!--container-->');
70
+ });
71
+ it('should handle circular reference in moduleMetadata', async () => {
72
+ class Thing {
73
+ constructor() {
74
+ this.token = this;
75
+ }
76
+ }
77
+ const token = new Thing();
78
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
79
+ await render.render({
80
+ storyFnAngular: {
81
+ template: '🦊',
82
+ props: {},
83
+ moduleMetadata: { providers: [{ provide: 'foo', useValue: token }] },
84
+ },
85
+ forced: false,
86
+ parameters: {},
87
+ targetDOMNode: rootTargetDOMNode,
88
+ });
89
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('🦊');
90
+ });
91
+ describe('when forced=true', () => {
92
+ beforeEach(async () => {
93
+ // Init first render
94
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
95
+ await render.render({
96
+ storyFnAngular: {
97
+ template: '{{ logo }}: {{ name }}',
98
+ props: {
99
+ logo: '🦊',
100
+ name: 'Fox',
101
+ },
102
+ },
103
+ forced: true,
104
+ parameters: {},
105
+ targetDOMNode: rootTargetDOMNode,
106
+ });
107
+ });
108
+ it('should be rendered a first time', async () => {
109
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('🦊: Fox');
110
+ });
111
+ it('should not be re-rendered when only props change', async () => {
112
+ let countDestroy = 0;
113
+ (0, core_1.getPlatform)().onDestroy(() => {
114
+ countDestroy += 1;
115
+ });
116
+ // only props change
117
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
118
+ await render.render({
119
+ storyFnAngular: {
120
+ props: {
121
+ logo: '👾',
122
+ },
123
+ },
124
+ forced: true,
125
+ parameters: {},
126
+ targetDOMNode: rootTargetDOMNode,
127
+ });
128
+ expect(countDestroy).toEqual(0);
129
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('👾: Fox');
130
+ });
131
+ it('should be re-rendered when template change', async () => {
132
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
133
+ await render.render({
134
+ storyFnAngular: {
135
+ template: '{{ beer }}',
136
+ props: {
137
+ beer: '🍺',
138
+ },
139
+ },
140
+ forced: true,
141
+ parameters: {},
142
+ targetDOMNode: rootTargetDOMNode,
143
+ });
144
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('🍺');
145
+ });
146
+ it('should be re-rendered when moduleMetadata structure change', async () => {
147
+ let countDestroy = 0;
148
+ (0, core_1.getPlatform)().onDestroy(() => {
149
+ countDestroy += 1;
150
+ });
151
+ // Only props change -> no full rendering
152
+ const firstRender = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
153
+ await firstRender.render({
154
+ storyFnAngular: {
155
+ template: '{{ logo }}: {{ name }}',
156
+ props: {
157
+ logo: '🍺',
158
+ name: 'Beer',
159
+ },
160
+ },
161
+ forced: true,
162
+ parameters: {},
163
+ targetDOMNode: rootTargetDOMNode,
164
+ });
165
+ expect(countDestroy).toEqual(0);
166
+ // Change in the module structure -> full rendering
167
+ const secondRender = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
168
+ await secondRender.render({
169
+ storyFnAngular: {
170
+ template: '{{ logo }}: {{ name }}',
171
+ props: {
172
+ logo: '🍺',
173
+ name: 'Beer',
174
+ },
175
+ moduleMetadata: { providers: [{ provide: 'foo', useValue: 42 }] },
176
+ },
177
+ forced: true,
178
+ parameters: {},
179
+ targetDOMNode: rootTargetDOMNode,
180
+ });
181
+ expect(countDestroy).toEqual(1);
182
+ });
183
+ });
184
+ it('should properly destroy angular platform between each render', async () => {
185
+ let countDestroy = 0;
186
+ const firstRender = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
187
+ await firstRender.render({
188
+ storyFnAngular: {
189
+ template: '🦊',
190
+ props: {},
191
+ },
192
+ forced: false,
193
+ parameters: {},
194
+ targetDOMNode: rootTargetDOMNode,
195
+ });
196
+ (0, core_1.getPlatform)().onDestroy(() => {
197
+ countDestroy += 1;
198
+ });
199
+ const secondRender = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
200
+ await secondRender.render({
201
+ storyFnAngular: {
202
+ template: '🐻',
203
+ props: {},
204
+ },
205
+ forced: false,
206
+ parameters: {},
207
+ targetDOMNode: rootTargetDOMNode,
208
+ });
209
+ expect(countDestroy).toEqual(1);
210
+ });
211
+ describe('when story id contains non-Ascii characters', () => {
212
+ it('should render my-story for story template', async () => {
213
+ const render = await rendererFactory.getRendererInstance('my-ストーリー', rootTargetDOMNode);
214
+ await render.render({
215
+ storyFnAngular: {
216
+ template: '🦊',
217
+ props: {},
218
+ },
219
+ forced: false,
220
+ parameters: {},
221
+ targetDOMNode: rootTargetDOMNode,
222
+ });
223
+ expect(document.body.getElementsByTagName('sb-my--component')[0].innerHTML).toBe('🦊');
224
+ });
225
+ it('should render my-story for story component', async () => {
226
+ let FooComponent = class FooComponent {
227
+ };
228
+ FooComponent = __decorate([
229
+ (0, core_1.Component)({ selector: 'foo', template: '🦊' })
230
+ ], FooComponent);
231
+ const render = await rendererFactory.getRendererInstance('my-ストーリー', rootTargetDOMNode);
232
+ await render.render({
233
+ storyFnAngular: {
234
+ props: {},
235
+ },
236
+ forced: false,
237
+ parameters: {},
238
+ component: FooComponent,
239
+ targetDOMNode: rootTargetDOMNode,
240
+ });
241
+ expect(document.body.getElementsByTagName('sb-my--component')[0].innerHTML).toBe('<foo>🦊</foo><!--container-->');
242
+ });
243
+ });
244
+ });
245
+ describe('DocsRenderer', () => {
246
+ describe('when canvas render is done before', () => {
247
+ beforeEach(async () => {
248
+ // Init first Canvas render
249
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
250
+ await render.render({
251
+ storyFnAngular: {
252
+ template: 'Canvas 🖼',
253
+ },
254
+ forced: true,
255
+ parameters: {},
256
+ targetDOMNode: rootTargetDOMNode,
257
+ });
258
+ });
259
+ it('should reset root HTML', async () => {
260
+ global.document
261
+ .getElementById('storybook-root')
262
+ .appendChild(global.document.createElement('👾'));
263
+ expect(global.document.getElementById('storybook-root').innerHTML).toContain('Canvas 🖼');
264
+ await rendererFactory.getRendererInstance('my-story-in-docs', rootDocstargetDOMNode);
265
+ expect(global.document.getElementById('storybook-root').innerHTML).toBe('');
266
+ });
267
+ });
268
+ it('should get DocsRenderer instance', async () => {
269
+ const render = await rendererFactory.getRendererInstance('my-story-in-docs', rootDocstargetDOMNode);
270
+ expect(render).toBeInstanceOf(DocsRenderer_1.DocsRenderer);
271
+ });
272
+ });
273
+ describe('bootstrap module options', () => {
274
+ async function setupComponentWithWhitespace(bootstrapModuleOptions) {
275
+ const render = await rendererFactory.getRendererInstance('my-story', rootTargetDOMNode);
276
+ await render.render({
277
+ storyFnAngular: {
278
+ template: '<div> </div>',
279
+ props: {},
280
+ },
281
+ forced: false,
282
+ parameters: {
283
+ bootstrapModuleOptions,
284
+ },
285
+ targetDOMNode: rootTargetDOMNode,
286
+ });
287
+ }
288
+ it('should preserve whitespaces', async () => {
289
+ await setupComponentWithWhitespace({ preserveWhitespaces: true });
290
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('<div> </div>');
291
+ });
292
+ it('should remove whitespaces', async () => {
293
+ await setupComponentWithWhitespace({ preserveWhitespaces: false });
294
+ expect(document.body.getElementsByTagName('my-story')[0].innerHTML).toBe('<div></div>');
295
+ });
296
+ });
297
+ });
@@ -1,7 +1,7 @@
1
- import { NgModule, Type } from '@angular/core';
1
+ import { Type, NgModule } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { ICollection, StoryFnAngularReturnType } from '../types';
4
- export declare const getStorybookModuleMetadata: ({ storyFnAngular, component: annotatedComponent, targetSelector, }: {
4
+ export declare const getStorybookModuleMetadata: ({ storyFnAngular, component, targetSelector, }: {
5
5
  storyFnAngular: StoryFnAngularReturnType;
6
6
  component?: any;
7
7
  targetSelector: string;
@@ -5,39 +5,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
8
  Object.defineProperty(exports, "__esModule", { value: true });
12
9
  exports.createStorybookModule = exports.getStorybookModuleMetadata = void 0;
13
10
  const core_1 = require("@angular/core");
14
11
  const platform_browser_1 = require("@angular/platform-browser");
15
- const ts_dedent_1 = __importDefault(require("ts-dedent"));
16
- const util_deprecate_1 = __importDefault(require("util-deprecate"));
17
12
  const StorybookProvider_1 = require("./StorybookProvider");
18
13
  const NgModulesAnalyzer_1 = require("./utils/NgModulesAnalyzer");
19
14
  const NgComponentAnalyzer_1 = require("./utils/NgComponentAnalyzer");
20
15
  const StorybookWrapperComponent_1 = require("./StorybookWrapperComponent");
21
16
  const ComputesTemplateFromComponent_1 = require("./ComputesTemplateFromComponent");
22
- const deprecatedStoryComponentWarning = (0, util_deprecate_1.default)(() => { }, (0, ts_dedent_1.default) `\`component\` story return value is deprecated, and will be removed in Storybook 7.0.
23
- Instead, use \`export const default = () => ({ component: AppComponent });\`
24
- or
25
- \`\`\`
26
- export const Primary: Story = () => ({});
27
- Primary.parameters = { component: AppComponent };
28
- \`\`\`
29
- Read more at
30
- - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-angular-story-component).
31
- - https://storybook.js.org/docs/angular/writing-stories/parameters
32
- `);
33
- const getStorybookModuleMetadata = ({ storyFnAngular, component: annotatedComponent, targetSelector, }, storyProps$) => {
34
- const { component: storyComponent, props, styles, moduleMetadata = {} } = storyFnAngular;
17
+ const getStorybookModuleMetadata = ({ storyFnAngular, component, targetSelector, }, storyProps$) => {
18
+ const { props, styles, moduleMetadata = {} } = storyFnAngular;
35
19
  let { template } = storyFnAngular;
36
- if (storyComponent) {
37
- deprecatedStoryComponentWarning();
38
- }
39
- const component = storyComponent ?? annotatedComponent;
40
- if (hasNoTemplate(template) && component) {
20
+ const hasTemplate = !hasNoTemplate(template);
21
+ if (!hasTemplate && component) {
41
22
  template = (0, ComputesTemplateFromComponent_1.computesTemplateFromComponent)(component, props, '');
42
23
  }
43
24
  /**
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,279 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const core_1 = require("@angular/core");
13
+ const testing_1 = require("@angular/core/testing");
14
+ const platform_browser_1 = require("@angular/platform-browser");
15
+ const rxjs_1 = require("rxjs");
16
+ const StorybookModule_1 = require("./StorybookModule");
17
+ describe('StorybookModule', () => {
18
+ describe('getStorybookModuleMetadata', () => {
19
+ describe('with simple component', () => {
20
+ let FooComponent = class FooComponent {
21
+ constructor() {
22
+ this.output = new core_1.EventEmitter();
23
+ this.localOutput = new core_1.EventEmitter();
24
+ this.localFunction = () => '';
25
+ this.setterCallNb = 0;
26
+ }
27
+ set setter(value) {
28
+ this.setterCallNb += 1;
29
+ }
30
+ };
31
+ __decorate([
32
+ (0, core_1.Input)(),
33
+ __metadata("design:type", String)
34
+ ], FooComponent.prototype, "input", void 0);
35
+ __decorate([
36
+ (0, core_1.Input)('inputBindingPropertyName'),
37
+ __metadata("design:type", String)
38
+ ], FooComponent.prototype, "localPropertyName", void 0);
39
+ __decorate([
40
+ (0, core_1.Input)(),
41
+ __metadata("design:type", String),
42
+ __metadata("design:paramtypes", [String])
43
+ ], FooComponent.prototype, "setter", null);
44
+ __decorate([
45
+ (0, core_1.Output)(),
46
+ __metadata("design:type", Object)
47
+ ], FooComponent.prototype, "output", void 0);
48
+ __decorate([
49
+ (0, core_1.Output)('outputBindingPropertyName'),
50
+ __metadata("design:type", Object)
51
+ ], FooComponent.prototype, "localOutput", void 0);
52
+ FooComponent = __decorate([
53
+ (0, core_1.Component)({
54
+ selector: 'foo',
55
+ template: `
56
+ <p id="input">{{ input }}</p>
57
+ <p id="inputBindingPropertyName">{{ localPropertyName }}</p>
58
+ <p id="setterCallNb">{{ setterCallNb }}</p>
59
+ <p id="localProperty">{{ localProperty }}</p>
60
+ <p id="localFunction">{{ localFunction() }}</p>
61
+ <p id="output" (click)="output.emit('outputEmitted')"></p>
62
+ <p id="outputBindingPropertyName" (click)="localOutput.emit('outputEmitted')"></p>
63
+ `,
64
+ })
65
+ ], FooComponent);
66
+ it('should initialize inputs', async () => {
67
+ const props = {
68
+ input: 'input',
69
+ inputBindingPropertyName: 'inputBindingPropertyName',
70
+ localProperty: 'localProperty',
71
+ localFunction: () => 'localFunction',
72
+ };
73
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
74
+ storyFnAngular: { props },
75
+ component: FooComponent,
76
+ targetSelector: 'my-selector',
77
+ }, new rxjs_1.BehaviorSubject(props));
78
+ const { fixture } = await configureTestingModule(ngModule);
79
+ fixture.detectChanges();
80
+ expect(fixture.nativeElement.querySelector('p#input').innerHTML).toEqual(props.input);
81
+ expect(fixture.nativeElement.querySelector('p#inputBindingPropertyName').innerHTML).toEqual(props.inputBindingPropertyName);
82
+ expect(fixture.nativeElement.querySelector('p#localProperty').innerHTML).toEqual(props.localProperty);
83
+ expect(fixture.nativeElement.querySelector('p#localFunction').innerHTML).toEqual(props.localFunction());
84
+ });
85
+ it('should initialize outputs', async () => {
86
+ let expectedOutputValue;
87
+ let expectedOutputBindingValue;
88
+ const props = {
89
+ output: (value) => {
90
+ expectedOutputValue = value;
91
+ },
92
+ outputBindingPropertyName: (value) => {
93
+ expectedOutputBindingValue = value;
94
+ },
95
+ };
96
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
97
+ storyFnAngular: { props },
98
+ component: FooComponent,
99
+ targetSelector: 'my-selector',
100
+ }, new rxjs_1.BehaviorSubject(props));
101
+ const { fixture } = await configureTestingModule(ngModule);
102
+ fixture.detectChanges();
103
+ fixture.nativeElement.querySelector('p#output').click();
104
+ fixture.nativeElement.querySelector('p#outputBindingPropertyName').click();
105
+ expect(expectedOutputValue).toEqual('outputEmitted');
106
+ expect(expectedOutputBindingValue).toEqual('outputEmitted');
107
+ });
108
+ it('should change inputs if storyProps$ Subject emit', async () => {
109
+ const initialProps = {
110
+ input: 'input',
111
+ inputBindingPropertyName: '',
112
+ };
113
+ const storyProps$ = new rxjs_1.BehaviorSubject(initialProps);
114
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
115
+ storyFnAngular: { props: initialProps },
116
+ component: FooComponent,
117
+ targetSelector: 'my-selector',
118
+ }, storyProps$);
119
+ const { fixture } = await configureTestingModule(ngModule);
120
+ fixture.detectChanges();
121
+ expect(fixture.nativeElement.querySelector('p#input').innerHTML).toEqual(initialProps.input);
122
+ expect(fixture.nativeElement.querySelector('p#inputBindingPropertyName').innerHTML).toEqual('');
123
+ const newProps = {
124
+ input: 'new input',
125
+ inputBindingPropertyName: 'new inputBindingPropertyName',
126
+ localProperty: 'new localProperty',
127
+ localFunction: () => 'new localFunction',
128
+ };
129
+ storyProps$.next(newProps);
130
+ fixture.detectChanges();
131
+ expect(fixture.nativeElement.querySelector('p#input').innerHTML).toEqual(newProps.input);
132
+ expect(fixture.nativeElement.querySelector('p#inputBindingPropertyName').innerHTML).toEqual(newProps.inputBindingPropertyName);
133
+ expect(fixture.nativeElement.querySelector('p#localProperty').innerHTML).toEqual(newProps.localProperty);
134
+ expect(fixture.nativeElement.querySelector('p#localFunction').innerHTML).toEqual(newProps.localFunction());
135
+ });
136
+ it('should override outputs if storyProps$ Subject emit', async () => {
137
+ let expectedOutputValue;
138
+ let expectedOutputBindingValue;
139
+ const initialProps = {
140
+ input: '',
141
+ output: (value) => {
142
+ expectedOutputValue = value;
143
+ },
144
+ outputBindingPropertyName: (value) => {
145
+ expectedOutputBindingValue = value;
146
+ },
147
+ };
148
+ const storyProps$ = new rxjs_1.BehaviorSubject(initialProps);
149
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
150
+ storyFnAngular: { props: initialProps },
151
+ component: FooComponent,
152
+ targetSelector: 'my-selector',
153
+ }, storyProps$);
154
+ const { fixture } = await configureTestingModule(ngModule);
155
+ fixture.detectChanges();
156
+ const newProps = {
157
+ input: 'new input',
158
+ output: () => {
159
+ expectedOutputValue = 'should be called';
160
+ },
161
+ outputBindingPropertyName: () => {
162
+ expectedOutputBindingValue = 'should be called';
163
+ },
164
+ };
165
+ storyProps$.next(newProps);
166
+ fixture.detectChanges();
167
+ fixture.nativeElement.querySelector('p#output').click();
168
+ fixture.nativeElement.querySelector('p#outputBindingPropertyName').click();
169
+ expect(fixture.nativeElement.querySelector('p#input').innerHTML).toEqual(newProps.input);
170
+ expect(expectedOutputValue).toEqual('should be called');
171
+ expect(expectedOutputBindingValue).toEqual('should be called');
172
+ });
173
+ it('should change template inputs if storyProps$ Subject emit', async () => {
174
+ const initialProps = {
175
+ color: 'red',
176
+ input: 'input',
177
+ };
178
+ const storyProps$ = new rxjs_1.BehaviorSubject(initialProps);
179
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
180
+ storyFnAngular: {
181
+ props: initialProps,
182
+ template: '<p [style.color]="color"><foo [input]="input"></foo></p>',
183
+ },
184
+ component: FooComponent,
185
+ targetSelector: 'my-selector',
186
+ }, storyProps$);
187
+ const { fixture } = await configureTestingModule(ngModule);
188
+ fixture.detectChanges();
189
+ expect(fixture.nativeElement.querySelector('p').style.color).toEqual('red');
190
+ expect(fixture.nativeElement.querySelector('p#input').innerHTML).toEqual(initialProps.input);
191
+ const newProps = {
192
+ color: 'black',
193
+ input: 'new input',
194
+ };
195
+ storyProps$.next(newProps);
196
+ fixture.detectChanges();
197
+ expect(fixture.nativeElement.querySelector('p').style.color).toEqual('black');
198
+ expect(fixture.nativeElement.querySelector('p#input').innerHTML).toEqual(newProps.input);
199
+ });
200
+ it('should call the Input() setter the right number of times', async () => {
201
+ const initialProps = {
202
+ setter: 'init',
203
+ };
204
+ const storyProps$ = new rxjs_1.BehaviorSubject(initialProps);
205
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
206
+ storyFnAngular: { props: initialProps },
207
+ component: FooComponent,
208
+ targetSelector: 'my-selector',
209
+ }, storyProps$);
210
+ const { fixture } = await configureTestingModule(ngModule);
211
+ fixture.detectChanges();
212
+ expect(fixture.nativeElement.querySelector('p#setterCallNb').innerHTML).toEqual('1');
213
+ const newProps = {
214
+ setter: 'new setter value',
215
+ };
216
+ storyProps$.next(newProps);
217
+ fixture.detectChanges();
218
+ expect(fixture.nativeElement.querySelector('p#setterCallNb').innerHTML).toEqual('2');
219
+ });
220
+ });
221
+ describe('with component without selector', () => {
222
+ let WithoutSelectorComponent = class WithoutSelectorComponent {
223
+ };
224
+ WithoutSelectorComponent = __decorate([
225
+ (0, core_1.Component)({
226
+ template: `The content`,
227
+ })
228
+ ], WithoutSelectorComponent);
229
+ it('should display the component', async () => {
230
+ const props = {};
231
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
232
+ storyFnAngular: {
233
+ props,
234
+ moduleMetadata: { entryComponents: [WithoutSelectorComponent] },
235
+ },
236
+ component: WithoutSelectorComponent,
237
+ targetSelector: 'my-selector',
238
+ }, new rxjs_1.BehaviorSubject(props));
239
+ const { fixture } = await configureTestingModule(ngModule);
240
+ fixture.detectChanges();
241
+ expect(fixture.nativeElement.innerHTML).toContain('The content');
242
+ });
243
+ });
244
+ it('should keep template with an empty value', async () => {
245
+ let FooComponent = class FooComponent {
246
+ };
247
+ FooComponent = __decorate([
248
+ (0, core_1.Component)({
249
+ selector: 'foo',
250
+ template: `Should not be displayed`,
251
+ })
252
+ ], FooComponent);
253
+ const ngModule = (0, StorybookModule_1.getStorybookModuleMetadata)({
254
+ storyFnAngular: { template: '' },
255
+ component: FooComponent,
256
+ targetSelector: 'my-selector',
257
+ }, new rxjs_1.BehaviorSubject({}));
258
+ const { fixture } = await configureTestingModule(ngModule);
259
+ fixture.detectChanges();
260
+ expect(fixture.nativeElement.innerHTML).toEqual('');
261
+ });
262
+ });
263
+ async function configureTestingModule(ngModule) {
264
+ await testing_1.TestBed.configureTestingModule({
265
+ declarations: ngModule.declarations,
266
+ providers: ngModule.providers,
267
+ })
268
+ .overrideModule(platform_browser_1.BrowserModule, {
269
+ set: {
270
+ entryComponents: [...ngModule.entryComponents],
271
+ },
272
+ })
273
+ .compileComponents();
274
+ const fixture = testing_1.TestBed.createComponent(ngModule.bootstrap[0]);
275
+ return {
276
+ fixture,
277
+ };
278
+ }
279
+ });
@@ -1,4 +1,4 @@
1
- import { InjectionToken, Provider } from '@angular/core';
1
+ import { Provider, InjectionToken } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { ICollection } from '../types';
4
4
  export declare const STORY_PROPS: InjectionToken<Subject<ICollection>>;
@@ -38,7 +38,6 @@ const createStorybookWrapperComponent = (selector, template, storyComponent, sty
38
38
  // storyComponent was not provided.
39
39
  const viewChildSelector = storyComponent ?? '__storybook-noop';
40
40
  let StorybookWrapperComponent = class StorybookWrapperComponent {
41
- // eslint-disable-next-line no-useless-constructor
42
41
  constructor(storyProps$, changeDetectorRef) {
43
42
  this.storyProps$ = storyProps$;
44
43
  this.changeDetectorRef = changeDetectorRef;