@storybook/angular 9.1.0-alpha.1 → 9.1.0-alpha.10
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/build-schema.json +199 -0
- package/builders.json +14 -0
- package/dist/builders/build-storybook/index.js +31 -80
- package/dist/builders/start-storybook/index.js +31 -101
- package/dist/chunk-CUDJAP6K.mjs +3 -0
- package/dist/chunk-KMSSK3DZ.mjs +6 -0
- package/dist/chunk-LXSTVAFF.mjs +40 -0
- package/dist/client/config.d.ts +20 -6
- package/dist/client/config.js +49 -20
- package/dist/client/config.mjs +10 -13
- package/dist/client/docs/config.d.ts +6 -3
- package/dist/client/docs/config.js +18 -14
- package/dist/client/docs/config.mjs +6 -10
- package/dist/client/index.d.ts +144 -6
- package/dist/client/index.js +47 -30
- package/dist/client/index.mjs +3 -9
- package/dist/client/preview-prod.d.ts +2 -1
- package/dist/client/preview-prod.js +5 -4
- package/dist/client/preview-prod.mjs +1 -0
- package/dist/index.d.ts +59 -2
- package/dist/index.js +47 -29
- package/dist/index.mjs +3 -13
- package/dist/preset.js +8 -38
- package/dist/server/framework-preset-angular-cli.js +20 -83
- package/dist/server/framework-preset-angular-ivy.js +6 -59
- package/dist/{client/types.d.ts → types-3b0b7107.d.ts} +9 -9
- package/package.json +60 -13
- package/start-schema.json +234 -0
- package/dist/builders/build-storybook/index.d.ts +0 -25
- package/dist/builders/build-storybook/index.mjs +0 -78
- package/dist/builders/build-storybook/index.spec.d.ts +0 -1
- package/dist/builders/build-storybook/index.spec.js +0 -222
- package/dist/builders/build-storybook/index.spec.mjs +0 -187
- package/dist/builders/build-storybook/schema.json +0 -199
- package/dist/builders/builders.json +0 -14
- package/dist/builders/start-storybook/index.d.ts +0 -21
- package/dist/builders/start-storybook/index.mjs +0 -99
- package/dist/builders/start-storybook/index.spec.d.ts +0 -1
- package/dist/builders/start-storybook/index.spec.js +0 -188
- package/dist/builders/start-storybook/index.spec.mjs +0 -186
- package/dist/builders/start-storybook/schema.json +0 -234
- package/dist/builders/utils/error-handler.d.ts +0 -2
- package/dist/builders/utils/error-handler.js +0 -38
- package/dist/builders/utils/error-handler.mjs +0 -33
- package/dist/builders/utils/run-compodoc.d.ts +0 -6
- package/dist/builders/utils/run-compodoc.js +0 -35
- package/dist/builders/utils/run-compodoc.mjs +0 -31
- package/dist/builders/utils/run-compodoc.spec.d.ts +0 -1
- package/dist/builders/utils/run-compodoc.spec.js +0 -76
- package/dist/builders/utils/run-compodoc.spec.mjs +0 -74
- package/dist/builders/utils/standalone-options.d.ts +0 -18
- package/dist/builders/utils/standalone-options.js +0 -2
- package/dist/builders/utils/standalone-options.mjs +0 -1
- package/dist/client/angular-beta/AbstractRenderer.d.ts +0 -75
- package/dist/client/angular-beta/AbstractRenderer.js +0 -201
- package/dist/client/angular-beta/AbstractRenderer.mjs +0 -164
- package/dist/client/angular-beta/CanvasRenderer.d.ts +0 -12
- package/dist/client/angular-beta/CanvasRenderer.js +0 -13
- package/dist/client/angular-beta/CanvasRenderer.mjs +0 -9
- package/dist/client/angular-beta/ComputesTemplateFromComponent.d.ts +0 -24
- package/dist/client/angular-beta/ComputesTemplateFromComponent.js +0 -160
- package/dist/client/angular-beta/ComputesTemplateFromComponent.mjs +0 -154
- package/dist/client/angular-beta/ComputesTemplateFromComponent.test.d.ts +0 -1
- package/dist/client/angular-beta/ComputesTemplateFromComponent.test.js +0 -730
- package/dist/client/angular-beta/ComputesTemplateFromComponent.test.mjs +0 -728
- package/dist/client/angular-beta/DocsRenderer.d.ts +0 -13
- package/dist/client/angular-beta/DocsRenderer.js +0 -39
- package/dist/client/angular-beta/DocsRenderer.mjs +0 -35
- package/dist/client/angular-beta/RendererFactory.d.ts +0 -11
- package/dist/client/angular-beta/RendererFactory.js +0 -56
- package/dist/client/angular-beta/RendererFactory.mjs +0 -50
- package/dist/client/angular-beta/RendererFactory.test.d.ts +0 -1
- package/dist/client/angular-beta/RendererFactory.test.js +0 -235
- package/dist/client/angular-beta/RendererFactory.test.mjs +0 -233
- package/dist/client/angular-beta/StorybookModule.d.ts +0 -8
- package/dist/client/angular-beta/StorybookModule.js +0 -27
- package/dist/client/angular-beta/StorybookModule.mjs +0 -23
- package/dist/client/angular-beta/StorybookModule.test.d.ts +0 -1
- package/dist/client/angular-beta/StorybookModule.test.js +0 -321
- package/dist/client/angular-beta/StorybookModule.test.mjs +0 -319
- package/dist/client/angular-beta/StorybookProvider.d.ts +0 -5
- package/dist/client/angular-beta/StorybookProvider.js +0 -26
- package/dist/client/angular-beta/StorybookProvider.mjs +0 -22
- package/dist/client/angular-beta/StorybookWrapperComponent.d.ts +0 -13
- package/dist/client/angular-beta/StorybookWrapperComponent.js +0 -127
- package/dist/client/angular-beta/StorybookWrapperComponent.mjs +0 -123
- package/dist/client/angular-beta/__testfixtures__/input.component.d.ts +0 -29
- package/dist/client/angular-beta/__testfixtures__/input.component.js +0 -76
- package/dist/client/angular-beta/__testfixtures__/input.component.mjs +0 -73
- package/dist/client/angular-beta/__testfixtures__/test.module.d.ts +0 -2
- package/dist/client/angular-beta/__testfixtures__/test.module.js +0 -20
- package/dist/client/angular-beta/__testfixtures__/test.module.mjs +0 -17
- package/dist/client/angular-beta/utils/BootstrapQueue.d.ts +0 -12
- package/dist/client/angular-beta/utils/BootstrapQueue.js +0 -86
- package/dist/client/angular-beta/utils/BootstrapQueue.mjs +0 -49
- package/dist/client/angular-beta/utils/BootstrapQueue.test.d.ts +0 -1
- package/dist/client/angular-beta/utils/BootstrapQueue.test.js +0 -164
- package/dist/client/angular-beta/utils/BootstrapQueue.test.mjs +0 -162
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.d.ts +0 -22
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.js +0 -93
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.mjs +0 -84
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.d.ts +0 -1
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.js +0 -388
- package/dist/client/angular-beta/utils/NgComponentAnalyzer.test.mjs +0 -386
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.d.ts +0 -6
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.js +0 -41
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.mjs +0 -37
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.d.ts +0 -1
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.js +0 -24
- package/dist/client/angular-beta/utils/NgModulesAnalyzer.test.mjs +0 -22
- package/dist/client/angular-beta/utils/PropertyExtractor.d.ts +0 -30
- package/dist/client/angular-beta/utils/PropertyExtractor.js +0 -196
- package/dist/client/angular-beta/utils/PropertyExtractor.mjs +0 -158
- package/dist/client/angular-beta/utils/PropertyExtractor.test.d.ts +0 -1
- package/dist/client/angular-beta/utils/PropertyExtractor.test.js +0 -177
- package/dist/client/angular-beta/utils/PropertyExtractor.test.mjs +0 -175
- package/dist/client/angular-beta/utils/StoryUID.d.ts +0 -22
- package/dist/client/angular-beta/utils/StoryUID.js +0 -43
- package/dist/client/angular-beta/utils/StoryUID.mjs +0 -38
- package/dist/client/argsToTemplate.d.ts +0 -56
- package/dist/client/argsToTemplate.js +0 -58
- package/dist/client/argsToTemplate.mjs +0 -55
- package/dist/client/argsToTemplate.test.d.ts +0 -1
- package/dist/client/argsToTemplate.test.js +0 -102
- package/dist/client/argsToTemplate.test.mjs +0 -100
- package/dist/client/compodoc-types.d.ts +0 -102
- package/dist/client/compodoc-types.js +0 -2
- package/dist/client/compodoc-types.mjs +0 -1
- package/dist/client/compodoc.d.ts +0 -12
- package/dist/client/compodoc.js +0 -261
- package/dist/client/compodoc.mjs +0 -248
- package/dist/client/compodoc.test.d.ts +0 -1
- package/dist/client/compodoc.test.js +0 -132
- package/dist/client/compodoc.test.mjs +0 -130
- package/dist/client/decorateStory.d.ts +0 -4
- package/dist/client/decorateStory.js +0 -48
- package/dist/client/decorateStory.mjs +0 -45
- package/dist/client/decorateStory.test.d.ts +0 -1
- package/dist/client/decorateStory.test.js +0 -306
- package/dist/client/decorateStory.test.mjs +0 -301
- package/dist/client/decorators.d.ts +0 -13
- package/dist/client/decorators.js +0 -69
- package/dist/client/decorators.mjs +0 -63
- package/dist/client/decorators.test.d.ts +0 -1
- package/dist/client/decorators.test.js +0 -159
- package/dist/client/decorators.test.mjs +0 -157
- package/dist/client/docs/__testfixtures__/doc-button/input.d.ts +0 -110
- package/dist/client/docs/__testfixtures__/doc-button/input.js +0 -204
- package/dist/client/docs/__testfixtures__/doc-button/input.mjs +0 -201
- package/dist/client/docs/__testfixtures__/doc-button/tsconfig.json +0 -7
- package/dist/client/docs/angular-properties.test.d.ts +0 -1
- package/dist/client/docs/angular-properties.test.js +0 -36
- package/dist/client/docs/angular-properties.test.mjs +0 -34
- package/dist/client/docs/sourceDecorator.d.ts +0 -10
- package/dist/client/docs/sourceDecorator.js +0 -53
- package/dist/client/docs/sourceDecorator.mjs +0 -48
- package/dist/client/globals.d.ts +0 -1
- package/dist/client/globals.js +0 -33
- package/dist/client/globals.mjs +0 -31
- package/dist/client/portable-stories.d.ts +0 -23
- package/dist/client/portable-stories.js +0 -62
- package/dist/client/portable-stories.mjs +0 -26
- package/dist/client/public-types.d.ts +0 -54
- package/dist/client/public-types.js +0 -2
- package/dist/client/public-types.mjs +0 -1
- package/dist/client/render.d.ts +0 -7
- package/dist/client/render.js +0 -19
- package/dist/client/render.mjs +0 -14
- package/dist/client/types.js +0 -2
- package/dist/client/types.mjs +0 -1
- package/dist/node/index.d.ts +0 -2
- package/dist/node/index.js +0 -6
- package/dist/node/index.mjs +0 -3
- package/dist/preset.d.ts +0 -5
- package/dist/preset.mjs +0 -34
- package/dist/renderer.d.ts +0 -6
- package/dist/renderer.js +0 -15
- package/dist/renderer.mjs +0 -6
- package/dist/server/__mocks-ng-workspace__/empty-projects-entry/angular.json +0 -4
- package/dist/server/__mocks-ng-workspace__/minimal-config/angular.json +0 -18
- package/dist/server/__mocks-ng-workspace__/minimal-config/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/minimal-config/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/minimal-config/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/minimal-config/src/tsconfig.app.json +0 -9
- package/dist/server/__mocks-ng-workspace__/minimal-config/tsconfig.json +0 -13
- package/dist/server/__mocks-ng-workspace__/some-config/angular.json +0 -19
- package/dist/server/__mocks-ng-workspace__/some-config/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/some-config/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/some-config/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/some-config/src/tsconfig.app.json +0 -9
- package/dist/server/__mocks-ng-workspace__/some-config/tsconfig.json +0 -13
- package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/angular.json +0 -64
- package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/src/tsconfig.app.json +0 -9
- package/dist/server/__mocks-ng-workspace__/with-angularBrowserTarget/tsconfig.json +0 -13
- package/dist/server/__mocks-ng-workspace__/with-lib/angular.json +0 -28
- package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/tsconfig.lib.json +0 -20
- package/dist/server/__mocks-ng-workspace__/with-lib/tsconfig.json +0 -13
- package/dist/server/__mocks-ng-workspace__/with-nx/angular.json +0 -18
- package/dist/server/__mocks-ng-workspace__/with-nx/nx.json +0 -3
- package/dist/server/__mocks-ng-workspace__/with-nx/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/with-nx/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/with-nx/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/with-nx/src/tsconfig.app.json +0 -8
- package/dist/server/__mocks-ng-workspace__/with-nx/tsconfig.json +0 -14
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/nx.json +0 -3
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/src/tsconfig.app.json +0 -8
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/tsconfig.json +0 -14
- package/dist/server/__mocks-ng-workspace__/with-nx-workspace/workspace.json +0 -18
- package/dist/server/__mocks-ng-workspace__/with-options-styles/angular.json +0 -18
- package/dist/server/__mocks-ng-workspace__/with-options-styles/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/with-options-styles/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/with-options-styles/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/with-options-styles/src/tsconfig.app.json +0 -9
- package/dist/server/__mocks-ng-workspace__/with-options-styles/tsconfig.json +0 -13
- package/dist/server/__mocks-ng-workspace__/without-architect-build/angular.json +0 -5
- package/dist/server/__mocks-ng-workspace__/without-architect-build-options/angular.json +0 -11
- package/dist/server/__mocks-ng-workspace__/without-compatible-projects/angular.json +0 -7
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/angular.json +0 -3
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/tsconfig.lib.json +0 -20
- package/dist/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +0 -13
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/angular.json +0 -16
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +0 -1
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/main.js +0 -5
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/main.mjs +0 -2
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +0 -9
- package/dist/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +0 -13
- package/dist/server/__tests__/angular.json +0 -96
- package/dist/server/angular-cli-webpack.d.ts +0 -1
- package/dist/server/angular-cli-webpack.js +0 -80
- package/dist/server/angular-cli-webpack.mjs +0 -80
- package/dist/server/framework-preset-angular-cli.d.ts +0 -3
- package/dist/server/framework-preset-angular-cli.mjs +0 -81
- package/dist/server/framework-preset-angular-ivy.d.ts +0 -10
- package/dist/server/framework-preset-angular-ivy.mjs +0 -56
- package/dist/server/plugins/storybook-normalize-angular-entry-plugin.d.ts +0 -12
- package/dist/server/plugins/storybook-normalize-angular-entry-plugin.js +0 -55
- package/dist/server/plugins/storybook-normalize-angular-entry-plugin.mjs +0 -52
- package/dist/server/preset-options.d.ts +0 -9
- package/dist/server/preset-options.js +0 -2
- package/dist/server/preset-options.mjs +0 -1
- package/dist/server/utils/filter-out-styling-rules.d.ts +0 -2
- package/dist/server/utils/filter-out-styling-rules.js +0 -17
- package/dist/server/utils/filter-out-styling-rules.mjs +0 -13
- package/dist/server/utils/module-is-available.d.ts +0 -1
- package/dist/server/utils/module-is-available.js +0 -13
- package/dist/server/utils/module-is-available.mjs +0 -9
- package/dist/test-setup.d.ts +0 -1
- package/dist/test-setup.js +0 -6
- package/dist/test-setup.mjs +0 -4
- package/dist/types.d.ts +0 -27
- package/dist/types.js +0 -2
- package/dist/types.mjs +0 -1
- package/scripts/postbuild.js +0 -17
- package/template/cli/.eslintrc.json +0 -5
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Parameters, StoryFnAngularReturnType } from '../types';
|
|
2
|
-
import { AbstractRenderer } from './AbstractRenderer';
|
|
3
|
-
export declare class DocsRenderer extends AbstractRenderer {
|
|
4
|
-
render(options: {
|
|
5
|
-
storyFnAngular: StoryFnAngularReturnType;
|
|
6
|
-
forced: boolean;
|
|
7
|
-
component: any;
|
|
8
|
-
parameters: Parameters;
|
|
9
|
-
targetDOMNode: HTMLElement;
|
|
10
|
-
}): Promise<void>;
|
|
11
|
-
beforeFullRender(domNode?: HTMLElement): Promise<void>;
|
|
12
|
-
protected initAngularRootElement(targetDOMNode: HTMLElement, targetSelector: string): void;
|
|
13
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DocsRenderer = void 0;
|
|
4
|
-
const core_events_1 = require("storybook/internal/core-events");
|
|
5
|
-
const preview_api_1 = require("storybook/preview-api");
|
|
6
|
-
const AbstractRenderer_1 = require("./AbstractRenderer");
|
|
7
|
-
const StoryUID_1 = require("./utils/StoryUID");
|
|
8
|
-
class DocsRenderer extends AbstractRenderer_1.AbstractRenderer {
|
|
9
|
-
async render(options) {
|
|
10
|
-
const channel = preview_api_1.addons.getChannel();
|
|
11
|
-
/**
|
|
12
|
-
* Destroy and recreate the PlatformBrowserDynamic of angular For several stories to be rendered
|
|
13
|
-
* in the same docs we should not destroy angular between each rendering but do it when the
|
|
14
|
-
* rendered stories are not needed anymore.
|
|
15
|
-
*
|
|
16
|
-
* Note for improvement: currently there is one event per story rendered in the doc. But one
|
|
17
|
-
* event could be enough for the whole docs
|
|
18
|
-
*/
|
|
19
|
-
channel.once(core_events_1.STORY_CHANGED, async () => {
|
|
20
|
-
await DocsRenderer.resetApplications();
|
|
21
|
-
});
|
|
22
|
-
/**
|
|
23
|
-
* Destroy and recreate the PlatformBrowserDynamic of angular when doc re render. Allows to call
|
|
24
|
-
* ngOnDestroy of angular for previous component
|
|
25
|
-
*/
|
|
26
|
-
channel.once(core_events_1.DOCS_RENDERED, async () => {
|
|
27
|
-
await DocsRenderer.resetApplications();
|
|
28
|
-
});
|
|
29
|
-
await super.render({ ...options, forced: false });
|
|
30
|
-
}
|
|
31
|
-
async beforeFullRender(domNode) {
|
|
32
|
-
DocsRenderer.resetApplications(domNode);
|
|
33
|
-
}
|
|
34
|
-
initAngularRootElement(targetDOMNode, targetSelector) {
|
|
35
|
-
super.initAngularRootElement(targetDOMNode, targetSelector);
|
|
36
|
-
targetDOMNode.setAttribute(AbstractRenderer_1.STORY_UID_ATTRIBUTE, (0, StoryUID_1.getNextStoryUID)(targetDOMNode.id));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.DocsRenderer = DocsRenderer;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { DOCS_RENDERED, STORY_CHANGED } from 'storybook/internal/core-events';
|
|
2
|
-
import { addons } from 'storybook/preview-api';
|
|
3
|
-
import { AbstractRenderer, STORY_UID_ATTRIBUTE } from './AbstractRenderer';
|
|
4
|
-
import { getNextStoryUID } from './utils/StoryUID';
|
|
5
|
-
export class DocsRenderer extends AbstractRenderer {
|
|
6
|
-
async render(options) {
|
|
7
|
-
const channel = addons.getChannel();
|
|
8
|
-
/**
|
|
9
|
-
* Destroy and recreate the PlatformBrowserDynamic of angular For several stories to be rendered
|
|
10
|
-
* in the same docs we should not destroy angular between each rendering but do it when the
|
|
11
|
-
* rendered stories are not needed anymore.
|
|
12
|
-
*
|
|
13
|
-
* Note for improvement: currently there is one event per story rendered in the doc. But one
|
|
14
|
-
* event could be enough for the whole docs
|
|
15
|
-
*/
|
|
16
|
-
channel.once(STORY_CHANGED, async () => {
|
|
17
|
-
await DocsRenderer.resetApplications();
|
|
18
|
-
});
|
|
19
|
-
/**
|
|
20
|
-
* Destroy and recreate the PlatformBrowserDynamic of angular when doc re render. Allows to call
|
|
21
|
-
* ngOnDestroy of angular for previous component
|
|
22
|
-
*/
|
|
23
|
-
channel.once(DOCS_RENDERED, async () => {
|
|
24
|
-
await DocsRenderer.resetApplications();
|
|
25
|
-
});
|
|
26
|
-
await super.render({ ...options, forced: false });
|
|
27
|
-
}
|
|
28
|
-
async beforeFullRender(domNode) {
|
|
29
|
-
DocsRenderer.resetApplications(domNode);
|
|
30
|
-
}
|
|
31
|
-
initAngularRootElement(targetDOMNode, targetSelector) {
|
|
32
|
-
super.initAngularRootElement(targetDOMNode, targetSelector);
|
|
33
|
-
targetDOMNode.setAttribute(STORY_UID_ATTRIBUTE, getNextStoryUID(targetDOMNode.id));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { AbstractRenderer } from './AbstractRenderer';
|
|
2
|
-
type RenderType = 'canvas' | 'docs';
|
|
3
|
-
export declare class RendererFactory {
|
|
4
|
-
private lastRenderType;
|
|
5
|
-
private rendererMap;
|
|
6
|
-
getRendererInstance(targetDOMNode: HTMLElement): Promise<AbstractRenderer | null>;
|
|
7
|
-
private buildRenderer;
|
|
8
|
-
}
|
|
9
|
-
export declare const getRenderType: (targetDOMNode: HTMLElement) => RenderType;
|
|
10
|
-
export declare function clearRootHTMLElement(renderType: RenderType): void;
|
|
11
|
-
export {};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRenderType = exports.RendererFactory = void 0;
|
|
4
|
-
exports.clearRootHTMLElement = clearRootHTMLElement;
|
|
5
|
-
const AbstractRenderer_1 = require("./AbstractRenderer");
|
|
6
|
-
const CanvasRenderer_1 = require("./CanvasRenderer");
|
|
7
|
-
const DocsRenderer_1 = require("./DocsRenderer");
|
|
8
|
-
class RendererFactory {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.rendererMap = new Map();
|
|
11
|
-
}
|
|
12
|
-
async getRendererInstance(targetDOMNode) {
|
|
13
|
-
const targetId = targetDOMNode.id;
|
|
14
|
-
// do nothing if the target node is null
|
|
15
|
-
// fix a problem when the docs asks 2 times the same component at the same time
|
|
16
|
-
// the 1st targetDOMNode of the 1st requested rendering becomes null 🤷♂️
|
|
17
|
-
if (targetDOMNode === null) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
const renderType = (0, exports.getRenderType)(targetDOMNode);
|
|
21
|
-
// keep only instances of the same type
|
|
22
|
-
if (this.lastRenderType && this.lastRenderType !== renderType) {
|
|
23
|
-
await AbstractRenderer_1.AbstractRenderer.resetApplications();
|
|
24
|
-
clearRootHTMLElement(renderType);
|
|
25
|
-
this.rendererMap.clear();
|
|
26
|
-
}
|
|
27
|
-
if (!this.rendererMap.has(targetId)) {
|
|
28
|
-
this.rendererMap.set(targetId, this.buildRenderer(renderType));
|
|
29
|
-
}
|
|
30
|
-
this.lastRenderType = renderType;
|
|
31
|
-
return this.rendererMap.get(targetId);
|
|
32
|
-
}
|
|
33
|
-
buildRenderer(renderType) {
|
|
34
|
-
if (renderType === 'docs') {
|
|
35
|
-
return new DocsRenderer_1.DocsRenderer();
|
|
36
|
-
}
|
|
37
|
-
return new CanvasRenderer_1.CanvasRenderer();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.RendererFactory = RendererFactory;
|
|
41
|
-
const getRenderType = (targetDOMNode) => {
|
|
42
|
-
return targetDOMNode.id === 'storybook-root' ? 'canvas' : 'docs';
|
|
43
|
-
};
|
|
44
|
-
exports.getRenderType = getRenderType;
|
|
45
|
-
function clearRootHTMLElement(renderType) {
|
|
46
|
-
switch (renderType) {
|
|
47
|
-
case 'canvas':
|
|
48
|
-
global.document.getElementById('storybook-docs').innerHTML = '';
|
|
49
|
-
break;
|
|
50
|
-
case 'docs':
|
|
51
|
-
global.document.getElementById('storybook-root').innerHTML = '';
|
|
52
|
-
break;
|
|
53
|
-
default:
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { AbstractRenderer } from './AbstractRenderer';
|
|
2
|
-
import { CanvasRenderer } from './CanvasRenderer';
|
|
3
|
-
import { DocsRenderer } from './DocsRenderer';
|
|
4
|
-
export class RendererFactory {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.rendererMap = new Map();
|
|
7
|
-
}
|
|
8
|
-
async getRendererInstance(targetDOMNode) {
|
|
9
|
-
const targetId = targetDOMNode.id;
|
|
10
|
-
// do nothing if the target node is null
|
|
11
|
-
// fix a problem when the docs asks 2 times the same component at the same time
|
|
12
|
-
// the 1st targetDOMNode of the 1st requested rendering becomes null 🤷♂️
|
|
13
|
-
if (targetDOMNode === null) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
const renderType = getRenderType(targetDOMNode);
|
|
17
|
-
// keep only instances of the same type
|
|
18
|
-
if (this.lastRenderType && this.lastRenderType !== renderType) {
|
|
19
|
-
await AbstractRenderer.resetApplications();
|
|
20
|
-
clearRootHTMLElement(renderType);
|
|
21
|
-
this.rendererMap.clear();
|
|
22
|
-
}
|
|
23
|
-
if (!this.rendererMap.has(targetId)) {
|
|
24
|
-
this.rendererMap.set(targetId, this.buildRenderer(renderType));
|
|
25
|
-
}
|
|
26
|
-
this.lastRenderType = renderType;
|
|
27
|
-
return this.rendererMap.get(targetId);
|
|
28
|
-
}
|
|
29
|
-
buildRenderer(renderType) {
|
|
30
|
-
if (renderType === 'docs') {
|
|
31
|
-
return new DocsRenderer();
|
|
32
|
-
}
|
|
33
|
-
return new CanvasRenderer();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export const getRenderType = (targetDOMNode) => {
|
|
37
|
-
return targetDOMNode.id === 'storybook-root' ? 'canvas' : 'docs';
|
|
38
|
-
};
|
|
39
|
-
export function clearRootHTMLElement(renderType) {
|
|
40
|
-
switch (renderType) {
|
|
41
|
-
case 'canvas':
|
|
42
|
-
global.document.getElementById('storybook-docs').innerHTML = '';
|
|
43
|
-
break;
|
|
44
|
-
case 'docs':
|
|
45
|
-
global.document.getElementById('storybook-root').innerHTML = '';
|
|
46
|
-
break;
|
|
47
|
-
default:
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// @vitest-environment happy-dom
|
|
3
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
4
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const vitest_1 = require("vitest");
|
|
11
|
-
const core_1 = require("@angular/core");
|
|
12
|
-
const testing_1 = require("@angular/platform-browser-dynamic/testing");
|
|
13
|
-
const platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
|
|
14
|
-
const CanvasRenderer_1 = require("./CanvasRenderer");
|
|
15
|
-
const RendererFactory_1 = require("./RendererFactory");
|
|
16
|
-
const DocsRenderer_1 = require("./DocsRenderer");
|
|
17
|
-
vitest_1.vi.mock('@angular/platform-browser-dynamic');
|
|
18
|
-
(0, vitest_1.describe)('RendererFactory', () => {
|
|
19
|
-
let rendererFactory;
|
|
20
|
-
let rootTargetDOMNode;
|
|
21
|
-
let rootDocstargetDOMNode;
|
|
22
|
-
(0, vitest_1.beforeEach)(async () => {
|
|
23
|
-
rendererFactory = new RendererFactory_1.RendererFactory();
|
|
24
|
-
document.body.innerHTML =
|
|
25
|
-
'<div id="storybook-root"></div><div id="root-docs"><div id="story-in-docs"></div></div>' +
|
|
26
|
-
'<div id="storybook-docs"></div>';
|
|
27
|
-
rootTargetDOMNode = global.document.getElementById('storybook-root');
|
|
28
|
-
rootDocstargetDOMNode = global.document.getElementById('root-docs');
|
|
29
|
-
platform_browser_dynamic_1.platformBrowserDynamic.mockImplementation(testing_1.platformBrowserDynamicTesting);
|
|
30
|
-
vitest_1.vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
31
|
-
// @ts-expect-error Ignore
|
|
32
|
-
globalThis.STORYBOOK_ANGULAR_OPTIONS = { experimentalZoneless: false };
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.afterEach)(() => {
|
|
35
|
-
vitest_1.vi.clearAllMocks();
|
|
36
|
-
// Necessary to avoid this error "Provided value for `preserveWhitespaces` can not be changed once it has been set." :
|
|
37
|
-
// Source: https://github.com/angular/angular/commit/e342ffd855ffeb8af7067b42307ffa320d82177e#diff-92b125e532cc22977b46a91f068d6d7ea81fd61b772842a4a0212f1cfd875be6R28
|
|
38
|
-
(0, core_1.ɵresetJitOptions)();
|
|
39
|
-
});
|
|
40
|
-
(0, vitest_1.describe)('CanvasRenderer', () => {
|
|
41
|
-
(0, vitest_1.it)('should get CanvasRenderer instance', async () => {
|
|
42
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
43
|
-
(0, vitest_1.expect)(render).toBeInstanceOf(CanvasRenderer_1.CanvasRenderer);
|
|
44
|
-
});
|
|
45
|
-
(0, vitest_1.it)('should render my-story for story template', async () => {
|
|
46
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
47
|
-
await render?.render({
|
|
48
|
-
storyFnAngular: {
|
|
49
|
-
template: '🦊',
|
|
50
|
-
props: {},
|
|
51
|
-
},
|
|
52
|
-
forced: false,
|
|
53
|
-
targetDOMNode: rootTargetDOMNode,
|
|
54
|
-
});
|
|
55
|
-
(0, vitest_1.expect)(document.body.getElementsByTagName('storybook-root')[0].innerHTML).toBe('🦊');
|
|
56
|
-
});
|
|
57
|
-
(0, vitest_1.it)('should render my-story for story component', async () => {
|
|
58
|
-
let FooComponent = class FooComponent {
|
|
59
|
-
};
|
|
60
|
-
FooComponent = __decorate([
|
|
61
|
-
(0, core_1.Component)({ selector: 'foo', template: '🦊' })
|
|
62
|
-
], FooComponent);
|
|
63
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
64
|
-
await render?.render({
|
|
65
|
-
storyFnAngular: {
|
|
66
|
-
props: {},
|
|
67
|
-
},
|
|
68
|
-
forced: false,
|
|
69
|
-
component: FooComponent,
|
|
70
|
-
targetDOMNode: rootTargetDOMNode,
|
|
71
|
-
});
|
|
72
|
-
(0, vitest_1.expect)(document.body.getElementsByTagName('storybook-root')[0].innerHTML).toBe('<foo>🦊</foo><!--container-->');
|
|
73
|
-
});
|
|
74
|
-
(0, vitest_1.it)('should handle circular reference in moduleMetadata', async () => {
|
|
75
|
-
class Thing {
|
|
76
|
-
constructor() {
|
|
77
|
-
this.token = this;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
const token = new Thing();
|
|
81
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
82
|
-
await render?.render({
|
|
83
|
-
storyFnAngular: {
|
|
84
|
-
template: '🦊',
|
|
85
|
-
props: {},
|
|
86
|
-
moduleMetadata: { providers: [{ provide: 'foo', useValue: token }] },
|
|
87
|
-
},
|
|
88
|
-
forced: false,
|
|
89
|
-
targetDOMNode: rootTargetDOMNode,
|
|
90
|
-
});
|
|
91
|
-
(0, vitest_1.expect)(document.body.getElementsByTagName('storybook-root')[0].innerHTML).toBe('🦊');
|
|
92
|
-
});
|
|
93
|
-
(0, vitest_1.describe)('when forced=true', () => {
|
|
94
|
-
(0, vitest_1.beforeEach)(async () => {
|
|
95
|
-
// Init first render
|
|
96
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
97
|
-
await render?.render({
|
|
98
|
-
storyFnAngular: {
|
|
99
|
-
template: '{{ logo }}: {{ name }}',
|
|
100
|
-
props: {
|
|
101
|
-
logo: '🦊',
|
|
102
|
-
name: 'Fox',
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
forced: true,
|
|
106
|
-
targetDOMNode: rootTargetDOMNode,
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
(0, vitest_1.it)('should be rendered a first time', async () => {
|
|
110
|
-
(0, vitest_1.expect)(document.body.getElementsByTagName('storybook-root')[0].innerHTML).toBe('🦊: Fox');
|
|
111
|
-
});
|
|
112
|
-
(0, vitest_1.it)('should not be re-rendered when only props change', async () => {
|
|
113
|
-
// only props change
|
|
114
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
115
|
-
await render?.render({
|
|
116
|
-
storyFnAngular: {
|
|
117
|
-
props: {
|
|
118
|
-
logo: '👾',
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
forced: true,
|
|
122
|
-
targetDOMNode: rootTargetDOMNode,
|
|
123
|
-
});
|
|
124
|
-
(0, vitest_1.expect)(document.body.getElementsByTagName('storybook-root')[0].innerHTML).toBe('👾: Fox');
|
|
125
|
-
});
|
|
126
|
-
(0, vitest_1.it)('should be re-rendered when template change', async () => {
|
|
127
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
128
|
-
await render?.render({
|
|
129
|
-
storyFnAngular: {
|
|
130
|
-
template: '{{ beer }}',
|
|
131
|
-
props: {
|
|
132
|
-
beer: '🍺',
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
forced: true,
|
|
136
|
-
targetDOMNode: rootTargetDOMNode,
|
|
137
|
-
});
|
|
138
|
-
(0, vitest_1.expect)(document.body.getElementsByTagName('storybook-root')[0].innerHTML).toBe('🍺');
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
(0, vitest_1.describe)('DocsRenderer', () => {
|
|
143
|
-
(0, vitest_1.describe)('when canvas render is done before', () => {
|
|
144
|
-
(0, vitest_1.beforeEach)(async () => {
|
|
145
|
-
// Init first Canvas render
|
|
146
|
-
const render = await rendererFactory.getRendererInstance(rootTargetDOMNode);
|
|
147
|
-
await render?.render({
|
|
148
|
-
storyFnAngular: {
|
|
149
|
-
template: 'Canvas 🖼',
|
|
150
|
-
},
|
|
151
|
-
forced: true,
|
|
152
|
-
targetDOMNode: rootTargetDOMNode,
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
(0, vitest_1.it)('should reset root HTML', async () => {
|
|
156
|
-
global.document
|
|
157
|
-
.getElementById('storybook-root')
|
|
158
|
-
.appendChild(global.document.createElement('👾'));
|
|
159
|
-
(0, vitest_1.expect)(global.document.getElementById('storybook-root').innerHTML).toContain('Canvas 🖼');
|
|
160
|
-
await rendererFactory.getRendererInstance(rootDocstargetDOMNode);
|
|
161
|
-
(0, vitest_1.expect)(global.document.getElementById('storybook-root').innerHTML).toBe('');
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
(0, vitest_1.it)('should get DocsRenderer instance', async () => {
|
|
165
|
-
const render = await rendererFactory.getRendererInstance(rootDocstargetDOMNode);
|
|
166
|
-
(0, vitest_1.expect)(render).toBeInstanceOf(DocsRenderer_1.DocsRenderer);
|
|
167
|
-
});
|
|
168
|
-
(0, vitest_1.describe)('when multiple story for the same component', () => {
|
|
169
|
-
(0, vitest_1.it)('should render both stories', async () => {
|
|
170
|
-
let FooComponent = class FooComponent {
|
|
171
|
-
};
|
|
172
|
-
FooComponent = __decorate([
|
|
173
|
-
(0, core_1.Component)({ selector: 'foo', template: '🦊' })
|
|
174
|
-
], FooComponent);
|
|
175
|
-
const render = await rendererFactory.getRendererInstance(global.document.getElementById('storybook-docs'));
|
|
176
|
-
const targetDOMNode1 = global.document.createElement('div');
|
|
177
|
-
targetDOMNode1.id = 'story-1';
|
|
178
|
-
global.document.getElementById('storybook-docs').appendChild(targetDOMNode1);
|
|
179
|
-
await render?.render({
|
|
180
|
-
storyFnAngular: {
|
|
181
|
-
props: {},
|
|
182
|
-
},
|
|
183
|
-
forced: false,
|
|
184
|
-
component: FooComponent,
|
|
185
|
-
targetDOMNode: targetDOMNode1,
|
|
186
|
-
});
|
|
187
|
-
const targetDOMNode2 = global.document.createElement('div');
|
|
188
|
-
targetDOMNode2.id = 'story-1';
|
|
189
|
-
global.document.getElementById('storybook-docs').appendChild(targetDOMNode2);
|
|
190
|
-
await render?.render({
|
|
191
|
-
storyFnAngular: {
|
|
192
|
-
props: {},
|
|
193
|
-
},
|
|
194
|
-
forced: false,
|
|
195
|
-
component: FooComponent,
|
|
196
|
-
targetDOMNode: targetDOMNode2,
|
|
197
|
-
});
|
|
198
|
-
(0, vitest_1.expect)(global.document.querySelectorAll('#story-1 > story-1')[0].innerHTML).toBe('<foo>🦊</foo><!--container-->');
|
|
199
|
-
(0, vitest_1.expect)(global.document.querySelectorAll('#story-1 > story-1')[1].innerHTML).toBe('<foo>🦊</foo><!--container-->');
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
(0, vitest_1.describe)('when bootstrapping multiple stories in parallel', () => {
|
|
203
|
-
(0, vitest_1.it)('should render both stories', async () => {
|
|
204
|
-
let FooComponent = class FooComponent {
|
|
205
|
-
};
|
|
206
|
-
FooComponent = __decorate([
|
|
207
|
-
(0, core_1.Component)({ selector: 'foo', template: '🦊' })
|
|
208
|
-
], FooComponent);
|
|
209
|
-
const render = await rendererFactory.getRendererInstance(global.document.getElementById('storybook-docs'));
|
|
210
|
-
const targetDOMNode1 = global.document.createElement('div');
|
|
211
|
-
targetDOMNode1.id = 'story-1';
|
|
212
|
-
global.document.getElementById('storybook-docs').appendChild(targetDOMNode1);
|
|
213
|
-
const targetDOMNode2 = global.document.createElement('div');
|
|
214
|
-
targetDOMNode2.id = 'story-2';
|
|
215
|
-
global.document.getElementById('storybook-docs').appendChild(targetDOMNode2);
|
|
216
|
-
await Promise.all([
|
|
217
|
-
render.render({
|
|
218
|
-
storyFnAngular: {},
|
|
219
|
-
forced: false,
|
|
220
|
-
component: FooComponent,
|
|
221
|
-
targetDOMNode: targetDOMNode1,
|
|
222
|
-
}),
|
|
223
|
-
render.render({
|
|
224
|
-
storyFnAngular: {},
|
|
225
|
-
forced: false,
|
|
226
|
-
component: FooComponent,
|
|
227
|
-
targetDOMNode: targetDOMNode2,
|
|
228
|
-
}),
|
|
229
|
-
]);
|
|
230
|
-
(0, vitest_1.expect)(global.document.querySelector('#story-1 > story-1').innerHTML).toBe('<foo>🦊</foo><!--container-->');
|
|
231
|
-
(0, vitest_1.expect)(global.document.querySelector('#story-2 > story-2').innerHTML).toBe('<foo>🦊</foo><!--container-->');
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
});
|