@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.
- package/.eslintrc.js +8 -0
- package/README.md +1 -1
- package/dist/{types/builders → builders}/build-storybook/index.d.ts +3 -3
- package/dist/{types/builders → builders}/build-storybook/index.js +0 -0
- package/dist/builders/build-storybook/index.spec.d.ts +1 -0
- package/dist/builders/build-storybook/index.spec.js +218 -0
- package/dist/{types/builders → builders}/build-storybook/schema.json +0 -0
- package/dist/{types/builders → builders}/builders.json +0 -0
- package/dist/{types/builders → builders}/start-storybook/index.d.ts +3 -3
- package/dist/{types/builders → builders}/start-storybook/index.js +0 -0
- package/dist/builders/start-storybook/index.spec.d.ts +1 -0
- package/dist/builders/start-storybook/index.spec.js +214 -0
- package/dist/{types/builders → builders}/start-storybook/schema.json +0 -0
- package/dist/{types/builders → builders}/utils/build-standalone-errors-handler.d.ts +0 -0
- package/dist/{types/builders → builders}/utils/build-standalone-errors-handler.js +3 -6
- package/dist/{types/builders → builders}/utils/run-compodoc.d.ts +0 -0
- package/dist/{types/builders → builders}/utils/run-compodoc.js +0 -1
- package/dist/builders/utils/run-compodoc.spec.d.ts +1 -0
- package/dist/builders/utils/run-compodoc.spec.js +59 -0
- package/dist/{types/builders → builders}/utils/standalone-options.d.ts +3 -3
- package/dist/{types/builders → builders}/utils/standalone-options.js +0 -0
- package/dist/{types/client/preview/angular/components → client/angular}/app.component.d.ts +2 -2
- package/dist/{types/client/preview/angular/components → client/angular}/app.component.js +1 -2
- package/dist/{types/client/preview → client}/angular/app.token.d.ts +0 -0
- package/dist/{types/client/preview → client}/angular/app.token.js +0 -0
- package/dist/{types/client/preview → client}/angular/helpers.d.ts +3 -3
- package/dist/{types/client/preview → client}/angular/helpers.js +2 -3
- package/dist/{types/client/preview → client}/angular-beta/AbstractRenderer.d.ts +2 -3
- package/dist/{types/client/preview → client}/angular-beta/AbstractRenderer.js +13 -13
- package/dist/{types/client/preview → client}/angular-beta/CanvasRenderer.d.ts +1 -2
- package/dist/{types/client/preview → client}/angular-beta/CanvasRenderer.js +0 -0
- package/dist/{types/client/preview → client}/angular-beta/ComputesTemplateFromComponent.d.ts +3 -3
- package/dist/{types/client/preview → client}/angular-beta/ComputesTemplateFromComponent.js +3 -3
- package/dist/client/angular-beta/ComputesTemplateFromComponent.test.d.ts +1 -0
- package/dist/client/angular-beta/ComputesTemplateFromComponent.test.js +390 -0
- package/dist/{types/client/preview → client}/angular-beta/DocsRenderer.d.ts +1 -2
- package/dist/{types/client/preview → client}/angular-beta/DocsRenderer.js +5 -8
- package/dist/{types/client/preview → client}/angular-beta/RendererFactory.d.ts +1 -1
- package/dist/{types/client/preview → client}/angular-beta/RendererFactory.js +3 -3
- package/dist/client/angular-beta/RendererFactory.test.d.ts +1 -0
- package/dist/client/angular-beta/RendererFactory.test.js +297 -0
- package/dist/{types/client/preview → client}/angular-beta/StorybookModule.d.ts +2 -2
- package/dist/{types/client/preview → client}/angular-beta/StorybookModule.js +4 -23
- package/dist/client/angular-beta/StorybookModule.test.d.ts +1 -0
- package/dist/client/angular-beta/StorybookModule.test.js +279 -0
- package/dist/{types/client/preview → client}/angular-beta/StorybookProvider.d.ts +1 -1
- package/dist/{types/client/preview → client}/angular-beta/StorybookProvider.js +0 -0
- package/dist/{types/client/preview → client}/angular-beta/StorybookWrapperComponent.d.ts +0 -0
- package/dist/{types/client/preview → client}/angular-beta/StorybookWrapperComponent.js +0 -1
- package/dist/client/angular-beta/__testfixtures__/input.component.d.ts +26 -0
- package/dist/client/angular-beta/__testfixtures__/input.component.js +67 -0
- package/dist/{types/client/preview → client}/angular-beta/utils/NgComponentAnalyzer.d.ts +2 -2
- package/dist/{types/client/preview → client}/angular-beta/utils/NgComponentAnalyzer.js +0 -0
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.d.ts +1 -0
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.js +340 -0
- package/dist/{types/client/preview → client}/angular-beta/utils/NgModulesAnalyzer.d.ts +0 -0
- package/dist/{types/client/preview → client}/angular-beta/utils/NgModulesAnalyzer.js +0 -0
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.d.ts +1 -0
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.js +23 -0
- package/dist/client/config.d.ts +6 -0
- package/dist/client/config.js +10 -0
- package/dist/client/decorateStory.d.ts +4 -0
- package/dist/{types/client/preview → client}/decorateStory.js +3 -3
- package/dist/client/decorateStory.test.d.ts +1 -0
- package/dist/client/decorateStory.test.js +335 -0
- package/dist/client/decorators.d.ts +5 -0
- package/dist/{types/client/preview → client}/decorators.js +0 -0
- package/dist/client/decorators.test.d.ts +1 -0
- package/dist/client/decorators.test.js +106 -0
- package/dist/client/docs/__testfixtures__/doc-button/input.d.ts +111 -0
- package/dist/client/docs/__testfixtures__/doc-button/input.js +207 -0
- package/dist/client/docs/__testfixtures__/doc-button/tsconfig.json +7 -0
- package/dist/client/docs/angular-properties.test.d.ts +1 -0
- package/dist/client/docs/angular-properties.test.js +56 -0
- package/dist/{types/client → client}/docs/compodoc.d.ts +5 -11
- package/dist/{types/client → client}/docs/compodoc.js +7 -7
- package/dist/client/docs/compodoc.test.d.ts +1 -0
- package/dist/client/docs/compodoc.test.js +131 -0
- package/dist/client/docs/config.d.ts +4 -0
- package/dist/{types/client → client}/docs/config.js +0 -0
- package/dist/{types/client → client}/docs/index.d.ts +0 -0
- package/dist/{types/client → client}/docs/index.js +0 -0
- package/dist/{types/client → client}/docs/sourceDecorator.d.ts +3 -3
- package/dist/{types/client → client}/docs/sourceDecorator.js +3 -3
- package/dist/{types/client → client}/docs/types.d.ts +1 -1
- package/dist/{types/client → client}/docs/types.js +0 -0
- package/dist/{types/client/preview/angular-polyfills.d.ts → client/globals.d.ts} +0 -10
- package/dist/{types/client/preview/angular-polyfills.js → client/globals.js} +7 -1
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.js +28 -0
- package/dist/client/public-api.d.ts +15 -0
- package/dist/client/public-api.js +36 -0
- package/dist/client/public-types.d.ts +36 -0
- package/dist/{types/client/preview/types-6-0.js → client/public-types.js} +0 -0
- package/dist/client/render.d.ts +6 -0
- package/dist/{types/client/preview → client}/render.js +3 -3
- package/dist/{types/client/preview → client}/types.d.ts +17 -8
- package/dist/{types/client/preview → client}/types.js +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/{types/index.js → index.js} +1 -1
- package/dist/preset.d.ts +6 -0
- package/dist/{types/preset.js → preset.js} +12 -9
- package/dist/renderer.d.ts +4 -0
- package/dist/{types/renderer.js → renderer.js} +4 -4
- package/dist/{types/server → server}/__mocks-ng-workspace__/empty-projects-entry/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/minimal-config/src/tsconfig.app.json +0 -0
- package/dist/{types/server/__mocks-ng-workspace__/some-config → server/__mocks-ng-workspace__/minimal-config}/tsconfig.json +1 -4
- package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/some-config/src/tsconfig.app.json +0 -0
- package/dist/{types/server/__mocks-ng-workspace__/with-angularBrowserTarget → server/__mocks-ng-workspace__/some-config}/tsconfig.json +1 -4
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-angularBrowserTarget/src/tsconfig.app.json +0 -0
- package/dist/{types/server/__mocks-ng-workspace__/minimal-config → server/__mocks-ng-workspace__/with-angularBrowserTarget}/tsconfig.json +1 -4
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +0 -0
- package/dist/{types/server/__mocks-ng-workspace__/without-projects-entry → server/__mocks-ng-workspace__/with-lib}/projects/pattern-lib/tsconfig.lib.json +2 -8
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-lib/tsconfig.json +1 -4
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/nx.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx/src/tsconfig.app.json +0 -0
- package/dist/server/__mocks-ng-workspace__/with-nx/tsconfig.json +14 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/nx.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/src/tsconfig.app.json +0 -0
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +14 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-nx-workspace/workspace.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/with-options-styles/src/tsconfig.app.json +0 -0
- package/dist/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +13 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-architect-build/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-architect-build-options/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-compatible-projects/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-projects-entry/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +0 -0
- package/dist/{types/server/__mocks-ng-workspace__/with-lib → server/__mocks-ng-workspace__/without-projects-entry}/projects/pattern-lib/tsconfig.lib.json +2 -8
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +13 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/angular.json +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/src/main.js +0 -0
- package/dist/{types/server → server}/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +0 -0
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +13 -0
- package/dist/server/__tests__/angular.json +96 -0
- package/dist/{types/server/angular-cli-webpack-12.2.x.d.ts → server/angular-cli-webpack.d.ts} +0 -0
- package/dist/{types/server/angular-cli-webpack-13.x.x.js → server/angular-cli-webpack.js} +6 -1
- package/dist/{types/server → server}/angular-read-workspace.d.ts +0 -0
- package/dist/{types/server → server}/angular-read-workspace.js +1 -1
- package/dist/{types/server → server}/framework-preset-angular-cli.d.ts +1 -1
- package/dist/{types/server → server}/framework-preset-angular-cli.js +5 -24
- package/dist/server/framework-preset-angular-cli.test.d.ts +1 -0
- package/dist/server/framework-preset-angular-cli.test.js +698 -0
- package/dist/{types/server → server}/framework-preset-angular-docs.d.ts +1 -1
- package/dist/{types/server → server}/framework-preset-angular-docs.js +1 -1
- package/dist/{types/server → server}/framework-preset-angular-ivy.d.ts +1 -1
- package/dist/{types/server → server}/framework-preset-angular-ivy.js +4 -2
- package/dist/server/plugins/storybook-normalize-angular-entry-plugin.d.ts +25 -0
- package/dist/server/plugins/storybook-normalize-angular-entry-plugin.js +46 -0
- package/dist/{types/server → server}/preset-options.d.ts +2 -2
- package/dist/{types/server → server}/preset-options.js +0 -0
- package/dist/{types/server → server}/utils/filter-out-styling-rules.d.ts +1 -1
- package/dist/{types/server → server}/utils/filter-out-styling-rules.js +0 -0
- package/dist/{types/server → server}/utils/module-is-available.d.ts +0 -0
- package/dist/{types/server → server}/utils/module-is-available.js +0 -0
- package/dist/{types/server → server}/utils/normalize-asset-patterns.d.ts +1 -1
- package/dist/{types/server → server}/utils/normalize-asset-patterns.js +0 -0
- package/dist/{types/server → server}/utils/normalize-optimization.d.ts +0 -0
- package/dist/{types/server → server}/utils/normalize-optimization.js +0 -0
- package/dist/types.d.ts +29 -0
- package/dist/{types/types.js → types.js} +0 -0
- package/jest.config.js +8 -1
- package/package.json +48 -53
- package/preset.js +1 -1
- package/renderer.d.ts +1 -1
- package/renderer.js +1 -1
- package/template/cli/.eslintrc.json +5 -0
- package/template/cli/Button.stories.ts +51 -0
- package/template/cli/Header.stories.ts +37 -0
- package/template/cli/Page.stories.ts +46 -0
- package/template/cli/User.ts +2 -0
- package/template/cli/button.component.ts +53 -0
- package/template/cli/header.component.ts +75 -0
- package/template/cli/page.component.ts +77 -0
- package/template/components/button.component.ts +54 -0
- package/template/components/button.css +30 -0
- package/template/components/form.component.ts +37 -0
- package/template/components/html.component.ts +22 -0
- package/template/components/index.js +8 -0
- package/template/components/pre.component.ts +29 -0
- package/template/stories/angular-mdx.stories.mdx +25 -0
- package/template/stories/argTypes/doc-button/doc-button.component.html +7 -0
- package/template/stories/argTypes/doc-button/doc-button.component.scss +3 -0
- package/template/stories/argTypes/doc-button/doc-button.component.ts +233 -0
- package/template/stories/argTypes/doc-button/doc-button.stories.ts +24 -0
- package/template/stories/argTypes/doc-directive/doc-directive.directive.ts +24 -0
- package/template/stories/argTypes/doc-directive/doc-directive.stories.ts +14 -0
- package/template/stories/argTypes/doc-injectable/doc-injectable.service.ts +27 -0
- package/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts +17 -0
- package/template/stories/argTypes/doc-pipe/doc-pipe.pipe.ts +18 -0
- package/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts +17 -0
- package/template/stories/basics/README.stories.mdx +7 -0
- package/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts +27 -0
- package/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva.component.ts +57 -0
- package/template/stories/basics/component-with-complex-selectors/attribute-selector.component.ts +19 -0
- package/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts +8 -0
- package/template/stories/basics/component-with-complex-selectors/class-selector.component.stories.ts +8 -0
- package/template/stories/basics/component-with-complex-selectors/class-selector.component.ts +19 -0
- package/template/stories/basics/component-with-complex-selectors/multiple-class-selector.component.stories.ts +8 -0
- package/template/stories/basics/component-with-complex-selectors/multiple-selector.component.stories.ts +8 -0
- package/template/stories/basics/component-with-complex-selectors/multiple-selector.component.ts +37 -0
- package/template/stories/basics/component-with-enums/enums.component.html +8 -0
- package/template/stories/basics/component-with-enums/enums.component.stories.ts +24 -0
- package/template/stories/basics/component-with-enums/enums.component.ts +53 -0
- package/template/stories/basics/component-with-inheritance/base-button.component.ts +10 -0
- package/template/stories/basics/component-with-inheritance/base-button.stories.ts +12 -0
- package/template/stories/basics/component-with-inheritance/icon-button.component.ts +11 -0
- package/template/stories/basics/component-with-inheritance/icon-button.stories.ts +13 -0
- package/template/stories/basics/component-with-ng-content/ng-content-about-parent.stories.ts +58 -0
- package/template/stories/basics/component-with-ng-content/ng-content-simple.stories.ts +29 -0
- package/template/stories/basics/component-with-ng-on-destroy/component-with-on-destroy.stories.ts +42 -0
- package/template/stories/basics/component-with-on-push/on-push-box.component.ts +21 -0
- package/template/stories/basics/component-with-on-push/on-push.stories.ts +21 -0
- package/template/stories/basics/component-with-pipe/custom-pipes.stories.ts +31 -0
- package/template/stories/basics/component-with-pipe/custom.pipe.ts +10 -0
- package/template/stories/basics/component-with-pipe/with-pipe.component.ts +10 -0
- package/template/stories/basics/component-with-provider/di.component.html +7 -0
- package/template/stories/basics/component-with-provider/di.component.stories.ts +26 -0
- package/template/stories/basics/component-with-provider/di.component.ts +28 -0
- package/template/stories/basics/component-with-style/styled.component.css +3 -0
- package/template/stories/basics/component-with-style/styled.component.html +5 -0
- package/template/stories/basics/component-with-style/styled.component.scss +5 -0
- package/template/stories/basics/component-with-style/styled.component.stories.ts +10 -0
- package/template/stories/basics/component-with-style/styled.component.ts +8 -0
- package/template/stories/basics/component-without-selector/without-selector-ng-component-outlet.stories.ts +73 -0
- package/template/stories/basics/component-without-selector/without-selector-ng-factory-resolver.stories.ts +71 -0
- package/template/stories/basics/component-without-selector/without-selector.component.ts +30 -0
- package/template/stories/basics/component-without-selector/without-selector.stories.ts +30 -0
- package/template/stories/basics/ng-module/angular-src/chip-color.token.ts +3 -0
- package/template/stories/basics/ng-module/angular-src/chip-text.pipe.ts +29 -0
- package/template/stories/basics/ng-module/angular-src/chip.component.ts +60 -0
- package/template/stories/basics/ng-module/angular-src/chips-group.component.ts +49 -0
- package/template/stories/basics/ng-module/angular-src/chips.module.ts +31 -0
- package/template/stories/basics/ng-module/import-module-for-root.stories.ts +50 -0
- package/template/stories/basics/ng-module/import-module.stories.ts +46 -0
- package/template/stories/button.component.ts +26 -0
- package/template/stories/core/README.stories.mdx +7 -0
- package/template/stories/core/decorators/componentWrapperDecorator/child.component.ts +20 -0
- package/template/stories/core/decorators/componentWrapperDecorator/decorators.stories.ts +117 -0
- package/template/stories/core/decorators/componentWrapperDecorator/parent.component.ts +18 -0
- package/template/stories/core/decorators/theme-decorator/decorators.stories.ts +20 -0
- package/template/stories/core/moduleMetadata/angular-src/custom.pipe.ts +10 -0
- package/template/stories/core/moduleMetadata/angular-src/dummy.service.ts +14 -0
- package/template/stories/core/moduleMetadata/angular-src/service.component.ts +24 -0
- package/template/stories/core/moduleMetadata/angular-src/token.component.ts +31 -0
- package/template/stories/core/moduleMetadata/in-export-default.stories.ts +38 -0
- package/template/stories/core/moduleMetadata/in-stories.stories.ts +46 -0
- package/template/stories/core/moduleMetadata/merge-default-and-story.stories.ts +35 -0
- package/template/stories/core/parameters/bootstrap-options.stories.ts +22 -0
- package/template/stories/core/styles/story-styles.stories.ts +50 -0
- package/template/stories/others/issues/12009-unknown-component.stories.ts +14 -0
- package/template/stories/others/ngx-translate/README.stories.mdx +58 -0
- package/LICENSE +0 -21
- package/dist/types/client/docs/config.d.ts +0 -14
- package/dist/types/client/index.d.ts +0 -4
- package/dist/types/client/index.js +0 -32
- package/dist/types/client/preview/config.d.ts +0 -6
- package/dist/types/client/preview/config.js +0 -10
- package/dist/types/client/preview/decorateStory.d.ts +0 -4
- package/dist/types/client/preview/decorators.d.ts +0 -6
- package/dist/types/client/preview/globals.d.ts +0 -1
- package/dist/types/client/preview/globals.js +0 -9
- package/dist/types/client/preview/index.d.ts +0 -25
- package/dist/types/client/preview/index.js +0 -29
- package/dist/types/client/preview/render.d.ts +0 -7
- package/dist/types/client/preview/types-6-0.d.ts +0 -42
- package/dist/types/client/preview/types-7-0.d.ts +0 -9
- package/dist/types/client/preview/types-7-0.js +0 -2
- package/dist/types/index.d.ts +0 -2
- package/dist/types/preset.d.ts +0 -13
- package/dist/types/renderer.d.ts +0 -4
- package/dist/types/server/__mocks-ng-workspace__/with-nx/tsconfig.json +0 -19
- package/dist/types/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +0 -19
- package/dist/types/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +0 -16
- package/dist/types/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +0 -16
- package/dist/types/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +0 -16
- package/dist/types/server/angular-cli-webpack-12.2.x.js +0 -66
- package/dist/types/server/angular-cli-webpack-13.x.x.d.ts +0 -1
- package/dist/types/server/angular-cli-webpack-older.d.ts +0 -6
- package/dist/types/server/angular-cli-webpack-older.js +0 -111
- package/dist/types/server/angular-devkit-build-webpack.d.ts +0 -30
- package/dist/types/server/angular-devkit-build-webpack.js +0 -164
- package/dist/types/server/create-fork-ts-checker-plugin.d.ts +0 -3
- package/dist/types/server/create-fork-ts-checker-plugin.js +0 -19
- package/dist/types/server/framework-preset-angular.d.ts +0 -5
- package/dist/types/server/framework-preset-angular.js +0 -103
- package/dist/types/server/ngx-template-loader/index.d.ts +0 -1
- package/dist/types/server/ngx-template-loader/index.js +0 -46
- package/dist/types/server/ts_config.d.ts +0 -2
- package/dist/types/server/ts_config.js +0 -28
- package/dist/types/types.d.ts +0 -13
- package/types-6-0.d.ts +0 -1
- 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 {
|
|
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
|
|
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
|
|
23
|
-
|
|
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
|
-
|
|
37
|
-
|
|
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
|
+
});
|
|
File without changes
|
|
File without changes
|
|
@@ -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;
|