@storybook/angular 9.1.0-alpha.5 → 9.1.0-alpha.7
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 +59 -12
- 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
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"title": "Build Storybook",
|
|
4
|
+
"description": "Serve up storybook in development mode.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"browserTarget": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Build target to be served in project-name:builder:config format. Should generally target on the builder: '@angular-devkit/build-angular:browser'. Useful for Storybook to use options (styles, assets, ...).",
|
|
10
|
+
"pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$",
|
|
11
|
+
"default": null
|
|
12
|
+
},
|
|
13
|
+
"tsConfig": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "The full path for the TypeScript configuration file, relative to the current workspace."
|
|
16
|
+
},
|
|
17
|
+
"outputDir": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Directory where to store built files.",
|
|
20
|
+
"default": "storybook-static"
|
|
21
|
+
},
|
|
22
|
+
"preserveSymlinks": {
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"description": "Do not use the real path when resolving modules. If true, symlinks are resolved to their real path, if false, symlinks are resolved to their symlinked path.",
|
|
25
|
+
"default": false
|
|
26
|
+
},
|
|
27
|
+
"configDir": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Directory where to load Storybook configurations from.",
|
|
30
|
+
"default": ".storybook"
|
|
31
|
+
},
|
|
32
|
+
"loglevel": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].",
|
|
35
|
+
"pattern": "(silly|verbose|info|warn|silent)"
|
|
36
|
+
},
|
|
37
|
+
"debugWebpack": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"description": "Debug the Webpack configuration",
|
|
40
|
+
"default": false
|
|
41
|
+
},
|
|
42
|
+
"enableProdMode": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"description": "Disable Angular's development mode, which turns off assertions and other checks within the framework.",
|
|
45
|
+
"default": true
|
|
46
|
+
},
|
|
47
|
+
"quiet": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"description": "Suppress verbose build output.",
|
|
50
|
+
"default": false
|
|
51
|
+
},
|
|
52
|
+
"docs": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/writing-docs/build-documentation#preview-storybooks-documentation.",
|
|
55
|
+
"default": false
|
|
56
|
+
},
|
|
57
|
+
"test": {
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"description": "Build the static version of the sandbox optimized for testing purposes",
|
|
60
|
+
"default": false
|
|
61
|
+
},
|
|
62
|
+
"compodoc": {
|
|
63
|
+
"type": "boolean",
|
|
64
|
+
"description": "Execute compodoc before.",
|
|
65
|
+
"default": true
|
|
66
|
+
},
|
|
67
|
+
"compodocArgs": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"description": "Compodoc options : https://compodoc.app/guides/options.html. Options `-p` with tsconfig path and `-d` with workspace root is always given.",
|
|
70
|
+
"default": ["-e", "json"],
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "string"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"webpackStatsJson": {
|
|
76
|
+
"type": ["boolean", "string"],
|
|
77
|
+
"description": "Write Webpack Stats JSON to disk",
|
|
78
|
+
"default": false
|
|
79
|
+
},
|
|
80
|
+
"statsJson": {
|
|
81
|
+
"type": ["boolean", "string"],
|
|
82
|
+
"description": "Write stats JSON to disk",
|
|
83
|
+
"default": false
|
|
84
|
+
},
|
|
85
|
+
"previewUrl": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"description": "Disables the default storybook preview and lets you use your own"
|
|
88
|
+
},
|
|
89
|
+
"styles": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"description": "Global styles to be included in the build.",
|
|
92
|
+
"items": {
|
|
93
|
+
"$ref": "#/definitions/styleElement"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"stylePreprocessorOptions": {
|
|
97
|
+
"description": "Options to pass to style preprocessors.",
|
|
98
|
+
"type": "object",
|
|
99
|
+
"properties": {
|
|
100
|
+
"includePaths": {
|
|
101
|
+
"description": "Paths to include. Paths will be resolved to workspace root.",
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": {
|
|
104
|
+
"type": "string"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"additionalProperties": false
|
|
109
|
+
},
|
|
110
|
+
"assets": {
|
|
111
|
+
"type": "array",
|
|
112
|
+
"description": "List of static application assets.",
|
|
113
|
+
"default": [],
|
|
114
|
+
"items": {
|
|
115
|
+
"$ref": "#/definitions/assetPattern"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"sourceMap": {
|
|
119
|
+
"type": ["boolean", "object"],
|
|
120
|
+
"description": "Configure sourcemaps. See: https://angular.io/guide/workspace-config#source-map-configuration",
|
|
121
|
+
"default": false
|
|
122
|
+
},
|
|
123
|
+
"experimentalZoneless": {
|
|
124
|
+
"type": "boolean",
|
|
125
|
+
"description": "Experimental: Use zoneless change detection.",
|
|
126
|
+
"default": false
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"additionalProperties": false,
|
|
130
|
+
"definitions": {
|
|
131
|
+
"assetPattern": {
|
|
132
|
+
"oneOf": [
|
|
133
|
+
{
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"followSymlinks": {
|
|
137
|
+
"type": "boolean",
|
|
138
|
+
"default": false,
|
|
139
|
+
"description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
|
|
140
|
+
},
|
|
141
|
+
"glob": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"description": "The pattern to match."
|
|
144
|
+
},
|
|
145
|
+
"input": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"description": "The input directory path in which to apply 'glob'. Defaults to the project root."
|
|
148
|
+
},
|
|
149
|
+
"ignore": {
|
|
150
|
+
"description": "An array of globs to ignore.",
|
|
151
|
+
"type": "array",
|
|
152
|
+
"items": {
|
|
153
|
+
"type": "string"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"output": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"description": "Absolute path within the output."
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"required": ["glob", "input", "output"]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"type": "string"
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"styleElement": {
|
|
170
|
+
"oneOf": [
|
|
171
|
+
{
|
|
172
|
+
"type": "object",
|
|
173
|
+
"properties": {
|
|
174
|
+
"input": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"description": "The file to include."
|
|
177
|
+
},
|
|
178
|
+
"bundleName": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"pattern": "^[\\w\\-.]*$",
|
|
181
|
+
"description": "The bundle name for this extra entry point."
|
|
182
|
+
},
|
|
183
|
+
"inject": {
|
|
184
|
+
"type": "boolean",
|
|
185
|
+
"description": "If the bundle will be referenced in the HTML file.",
|
|
186
|
+
"default": true
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"required": ["input"]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"type": "string",
|
|
194
|
+
"description": "The file to include."
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
package/builders.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"builders": {
|
|
3
|
+
"build-storybook": {
|
|
4
|
+
"implementation": "./dist/builders/build-storybook",
|
|
5
|
+
"schema": "./build-schema.json",
|
|
6
|
+
"description": "Build storybook"
|
|
7
|
+
},
|
|
8
|
+
"start-storybook": {
|
|
9
|
+
"implementation": "./dist/builders/start-storybook",
|
|
10
|
+
"schema": "./start-schema.json",
|
|
11
|
+
"description": "Start storybook"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,80 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
loglevel,
|
|
33
|
-
outputDir,
|
|
34
|
-
test,
|
|
35
|
-
quiet,
|
|
36
|
-
enableProdMode,
|
|
37
|
-
disableTelemetry,
|
|
38
|
-
angularBrowserTarget: browserTarget,
|
|
39
|
-
angularBuilderContext: context,
|
|
40
|
-
angularBuilderOptions: {
|
|
41
|
-
...(stylePreprocessorOptions ? { stylePreprocessorOptions } : {}),
|
|
42
|
-
...(styles ? { styles } : {}),
|
|
43
|
-
...(assets ? { assets } : {}),
|
|
44
|
-
sourceMap,
|
|
45
|
-
preserveSymlinks,
|
|
46
|
-
experimentalZoneless,
|
|
47
|
-
},
|
|
48
|
-
tsConfig,
|
|
49
|
-
webpackStatsJson,
|
|
50
|
-
statsJson,
|
|
51
|
-
debugWebpack,
|
|
52
|
-
previewUrl,
|
|
53
|
-
};
|
|
54
|
-
return standaloneOptions;
|
|
55
|
-
}), (0, operators_1.switchMap)((standaloneOptions) => runInstance({ ...standaloneOptions, mode: 'static' })), (0, operators_1.map)(() => {
|
|
56
|
-
return { success: true };
|
|
57
|
-
}));
|
|
58
|
-
return builder;
|
|
59
|
-
};
|
|
60
|
-
exports.default = (0, architect_1.createBuilder)(commandBuilder);
|
|
61
|
-
async function setup(options, context) {
|
|
62
|
-
let browserOptions;
|
|
63
|
-
let browserTarget;
|
|
64
|
-
if (options.browserTarget) {
|
|
65
|
-
browserTarget = (0, architect_1.targetFromTargetString)(options.browserTarget);
|
|
66
|
-
browserOptions = await context.validateOptions(await context.getTargetOptions(browserTarget), await context.getBuilderNameForTarget(browserTarget));
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
tsConfig: options.tsConfig ??
|
|
70
|
-
(0, find_up_1.sync)('tsconfig.json', { cwd: options.configDir }) ??
|
|
71
|
-
browserOptions.tsConfig,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function runInstance(options) {
|
|
75
|
-
return (0, rxjs_1.from)((0, core_server_1.withTelemetry)('build', {
|
|
76
|
-
cliOptions: options,
|
|
77
|
-
presetOptions: { ...options, corePresets: [], overridePresets: [] },
|
|
78
|
-
printError: error_handler_1.printErrorDetails,
|
|
79
|
-
}, () => (0, core_server_1.buildStaticStandalone)(options))).pipe((0, operators_1.catchError)((error) => (0, rxjs_1.throwError)((0, error_handler_1.errorSummary)(error))));
|
|
80
|
-
}
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var common = require('storybook/internal/common');
|
|
4
|
+
var coreServer = require('storybook/internal/core-server');
|
|
5
|
+
var telemetry = require('storybook/internal/telemetry');
|
|
6
|
+
var architect = require('@angular-devkit/architect');
|
|
7
|
+
var path2 = require('path');
|
|
8
|
+
require('fs/promises');
|
|
9
|
+
var fs = require('fs');
|
|
10
|
+
var process = require('process');
|
|
11
|
+
var url = require('url');
|
|
12
|
+
var rxjs = require('rxjs');
|
|
13
|
+
var operators = require('rxjs/operators');
|
|
14
|
+
var nodeLogger = require('storybook/internal/node-logger');
|
|
15
|
+
var tsDedent = require('ts-dedent');
|
|
16
|
+
|
|
17
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
|
|
19
|
+
var path2__default = /*#__PURE__*/_interopDefault(path2);
|
|
20
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
21
|
+
var process__default = /*#__PURE__*/_interopDefault(process);
|
|
22
|
+
|
|
23
|
+
var walkUp=function*(path3){for(path3=path2.resolve(path3);path3;){yield path3;let pp=path2.dirname(path3);if(pp===path3)break;path3=pp;}};function fileExistsSync(path3){try{return fs.statSync(path3).isFile()}catch{return !1}}function findPackagePathSync(cwd){for(let path3 of walkUp(cwd)){let packagePath=path2.resolve(path3,"package.json");if(fileExistsSync(packagePath))return packagePath}return null}function findPackageSync(cwd){let packagePath=findPackagePathSync(cwd);if(!packagePath)return null;try{let source=fs.readFileSync(packagePath,{encoding:"utf8"});return JSON.parse(source)}catch{return null}}var typeMappings={directory:"isDirectory",file:"isFile"};function checkType(type){if(!Object.hasOwnProperty.call(typeMappings,type))throw new Error(`Invalid type specified: ${type}`)}var matchType=(type,stat2)=>stat2[typeMappings[type]](),toPath=urlOrPath=>urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath;function locatePathSync(paths,{cwd=process__default.default.cwd(),type="file",allowSymlinks=!0}={}){checkType(type),cwd=toPath(cwd);let statFunction=allowSymlinks?fs__default.default.statSync:fs__default.default.lstatSync;for(let path_ of paths)try{let stat2=statFunction(path2__default.default.resolve(cwd,path_),{throwIfNoEntry:!1});if(!stat2)continue;if(matchType(type,stat2))return path_}catch{}}function toPath2(urlOrPath){return urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath}var findUpStop=Symbol("findUpStop");function findUpMultipleSync(name,options={}){let directory=path2__default.default.resolve(toPath2(options.cwd)??""),{root}=path2__default.default.parse(directory),stopAt=path2__default.default.resolve(directory,toPath2(options.stopAt)??root),limit=options.limit??Number.POSITIVE_INFINITY,paths=[name].flat(),runMatcher=locateOptions=>{if(typeof name!="function")return locatePathSync(paths,locateOptions);let foundPath=name(locateOptions.cwd);return typeof foundPath=="string"?locatePathSync([foundPath],locateOptions):foundPath},matches=[];for(;;){let foundPath=runMatcher({...options,cwd:directory});if(foundPath===findUpStop||(foundPath&&matches.push(path2__default.default.resolve(directory,foundPath)),directory===stopAt||matches.length>=limit))break;directory=path2__default.default.dirname(directory);}return matches}function findUpSync(name,options={}){return findUpMultipleSync(name,{...options,limit:1})[0]}var printErrorDetails=error=>{nodeLogger.instance.heading="",error instanceof Error?error.error?nodeLogger.logger.error(error.error):error.stats&&error.stats.compilation.errors?error.stats.compilation.errors.forEach(e=>nodeLogger.logger.plain(e)):nodeLogger.logger.error(error):error.compilation?.errors&&error.compilation.errors.forEach(e=>nodeLogger.logger.plain(e)),nodeLogger.logger.line();},errorSummary=error=>error.close?tsDedent.dedent`
|
|
24
|
+
FATAL broken build!, will close the process,
|
|
25
|
+
Fix the error below and restart storybook.
|
|
26
|
+
`:tsDedent.dedent`
|
|
27
|
+
Broken build, fix the error above.
|
|
28
|
+
You may need to refresh the browser.
|
|
29
|
+
`;var hasTsConfigArg=args=>args.indexOf("-p")!==-1,hasOutputArg=args=>args.indexOf("-d")!==-1||args.indexOf("--output")!==-1,toRelativePath=pathToTsConfig=>path2.isAbsolute(pathToTsConfig)?path2.relative(".",pathToTsConfig):pathToTsConfig,runCompodoc=({compodocArgs,tsconfig},context)=>new rxjs.Observable(observer=>{let tsConfigPath=toRelativePath(tsconfig),finalCompodocArgs=[...hasTsConfigArg(compodocArgs)?[]:["-p",tsConfigPath],...hasOutputArg(compodocArgs)?[]:["-d",`${context.workspaceRoot||"."}`],...compodocArgs],packageManager=common.JsPackageManagerFactory.getPackageManager();try{let stdout=packageManager.runPackageCommandSync("compodoc",finalCompodocArgs,context.workspaceRoot,"inherit");context.logger.info(stdout),observer.next(),observer.complete();}catch(e){context.logger.error(e),observer.error();}});telemetry.addToGlobalContext("cliVersion",common.versions.storybook);var commandBuilder=(options,context)=>rxjs.from(setup(options,context)).pipe(operators.switchMap(({tsConfig})=>{let docTSConfig=findUpSync("tsconfig.doc.json",{cwd:options.configDir,stopAt:common.getProjectRoot()});return (options.compodoc?runCompodoc({compodocArgs:options.compodocArgs,tsconfig:docTSConfig??tsConfig},context).pipe(operators.mapTo({tsConfig})):rxjs.of({})).pipe(operators.mapTo({tsConfig}))}),operators.map(({tsConfig})=>{common.getEnvConfig(options,{staticDir:"SBCONFIG_STATIC_DIR",outputDir:"SBCONFIG_OUTPUT_DIR",configDir:"SBCONFIG_CONFIG_DIR"});let{browserTarget,stylePreprocessorOptions,styles,configDir,docs,loglevel,test,outputDir,quiet,enableProdMode=!0,webpackStatsJson,statsJson,debugWebpack,disableTelemetry,assets,previewUrl,sourceMap=!1,preserveSymlinks=!1,experimentalZoneless=!1}=options;return {packageJson:findPackageSync(__dirname),configDir,...docs?{docs}:{},loglevel,outputDir,test,quiet,enableProdMode,disableTelemetry,angularBrowserTarget:browserTarget,angularBuilderContext:context,angularBuilderOptions:{...stylePreprocessorOptions?{stylePreprocessorOptions}:{},...styles?{styles}:{},...assets?{assets}:{},sourceMap,preserveSymlinks,experimentalZoneless},tsConfig,webpackStatsJson,statsJson,debugWebpack,previewUrl}}),operators.switchMap(standaloneOptions=>runInstance({...standaloneOptions,mode:"static"})),operators.map(()=>({success:!0}))),build_storybook_default=architect.createBuilder(commandBuilder);async function setup(options,context){let browserOptions,browserTarget;return options.browserTarget&&(browserTarget=architect.targetFromTargetString(options.browserTarget),browserOptions=await context.validateOptions(await context.getTargetOptions(browserTarget),await context.getBuilderNameForTarget(browserTarget))),{tsConfig:options.tsConfig??findUpSync("tsconfig.json",{cwd:options.configDir,stopAt:common.getProjectRoot()})??browserOptions.tsConfig}}function runInstance(options){return rxjs.from(coreServer.withTelemetry("build",{cliOptions:options,presetOptions:{...options,corePresets:[],overridePresets:[]},printError:printErrorDetails},()=>coreServer.buildStaticStandalone(options))).pipe(operators.catchError(error=>rxjs.throwError(errorSummary(error))))}
|
|
30
|
+
|
|
31
|
+
module.exports = build_storybook_default;
|
|
@@ -1,101 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
options.port = parseInt(`${options.port}`, 10);
|
|
33
|
-
const { browserTarget, stylePreprocessorOptions, styles, ci, configDir, docs, host, https, port, quiet, enableProdMode = false, smokeTest, sslCa, sslCert, sslKey, disableTelemetry, assets, initialPath, open, debugWebpack, loglevel, webpackStatsJson, statsJson, previewUrl, sourceMap = false, preserveSymlinks = false, experimentalZoneless = false, } = options;
|
|
34
|
-
const standaloneOptions = {
|
|
35
|
-
packageJson: (0, fd_package_json_1.findPackageSync)(__dirname),
|
|
36
|
-
ci,
|
|
37
|
-
configDir,
|
|
38
|
-
...(docs ? { docs } : {}),
|
|
39
|
-
host,
|
|
40
|
-
https,
|
|
41
|
-
port,
|
|
42
|
-
quiet,
|
|
43
|
-
enableProdMode,
|
|
44
|
-
smokeTest,
|
|
45
|
-
sslCa,
|
|
46
|
-
sslCert,
|
|
47
|
-
sslKey,
|
|
48
|
-
disableTelemetry,
|
|
49
|
-
angularBrowserTarget: browserTarget,
|
|
50
|
-
angularBuilderContext: context,
|
|
51
|
-
angularBuilderOptions: {
|
|
52
|
-
...(stylePreprocessorOptions ? { stylePreprocessorOptions } : {}),
|
|
53
|
-
...(styles ? { styles } : {}),
|
|
54
|
-
...(assets ? { assets } : {}),
|
|
55
|
-
preserveSymlinks,
|
|
56
|
-
sourceMap,
|
|
57
|
-
experimentalZoneless,
|
|
58
|
-
},
|
|
59
|
-
tsConfig,
|
|
60
|
-
initialPath,
|
|
61
|
-
open,
|
|
62
|
-
debugWebpack,
|
|
63
|
-
webpackStatsJson,
|
|
64
|
-
statsJson,
|
|
65
|
-
loglevel,
|
|
66
|
-
previewUrl,
|
|
67
|
-
};
|
|
68
|
-
return standaloneOptions;
|
|
69
|
-
}), (0, operators_1.switchMap)((standaloneOptions) => runInstance(standaloneOptions)), (0, operators_1.map)((port) => {
|
|
70
|
-
return { success: true, info: { port } };
|
|
71
|
-
}));
|
|
72
|
-
return builder;
|
|
73
|
-
};
|
|
74
|
-
exports.default = (0, architect_1.createBuilder)(commandBuilder);
|
|
75
|
-
async function setup(options, context) {
|
|
76
|
-
let browserOptions;
|
|
77
|
-
let browserTarget;
|
|
78
|
-
if (options.browserTarget) {
|
|
79
|
-
browserTarget = (0, architect_1.targetFromTargetString)(options.browserTarget);
|
|
80
|
-
browserOptions = await context.validateOptions(await context.getTargetOptions(browserTarget), await context.getBuilderNameForTarget(browserTarget));
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
tsConfig: options.tsConfig ??
|
|
84
|
-
(0, find_up_1.sync)('tsconfig.json', { cwd: options.configDir }) ??
|
|
85
|
-
browserOptions.tsConfig,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
function runInstance(options) {
|
|
89
|
-
return new rxjs_1.Observable((observer) => {
|
|
90
|
-
// This Observable intentionally never complete, leaving the process running ;)
|
|
91
|
-
(0, core_server_1.withTelemetry)('dev', {
|
|
92
|
-
cliOptions: options,
|
|
93
|
-
presetOptions: { ...options, corePresets: [], overridePresets: [] },
|
|
94
|
-
printError: error_handler_1.printErrorDetails,
|
|
95
|
-
}, () => (0, core_server_1.buildDevStandalone)(options))
|
|
96
|
-
.then(({ port }) => observer.next(port))
|
|
97
|
-
.catch((error) => {
|
|
98
|
-
observer.error((0, error_handler_1.errorSummary)(error));
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
}
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var common = require('storybook/internal/common');
|
|
4
|
+
var coreServer = require('storybook/internal/core-server');
|
|
5
|
+
var telemetry = require('storybook/internal/telemetry');
|
|
6
|
+
var architect = require('@angular-devkit/architect');
|
|
7
|
+
var path2 = require('path');
|
|
8
|
+
require('fs/promises');
|
|
9
|
+
var fs = require('fs');
|
|
10
|
+
var process = require('process');
|
|
11
|
+
var url = require('url');
|
|
12
|
+
var rxjs = require('rxjs');
|
|
13
|
+
var operators = require('rxjs/operators');
|
|
14
|
+
var nodeLogger = require('storybook/internal/node-logger');
|
|
15
|
+
var tsDedent = require('ts-dedent');
|
|
16
|
+
|
|
17
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
|
|
19
|
+
var path2__default = /*#__PURE__*/_interopDefault(path2);
|
|
20
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
21
|
+
var process__default = /*#__PURE__*/_interopDefault(process);
|
|
22
|
+
|
|
23
|
+
var walkUp=function*(path3){for(path3=path2.resolve(path3);path3;){yield path3;let pp=path2.dirname(path3);if(pp===path3)break;path3=pp;}};function fileExistsSync(path3){try{return fs.statSync(path3).isFile()}catch{return !1}}function findPackagePathSync(cwd){for(let path3 of walkUp(cwd)){let packagePath=path2.resolve(path3,"package.json");if(fileExistsSync(packagePath))return packagePath}return null}function findPackageSync(cwd){let packagePath=findPackagePathSync(cwd);if(!packagePath)return null;try{let source=fs.readFileSync(packagePath,{encoding:"utf8"});return JSON.parse(source)}catch{return null}}var typeMappings={directory:"isDirectory",file:"isFile"};function checkType(type){if(!Object.hasOwnProperty.call(typeMappings,type))throw new Error(`Invalid type specified: ${type}`)}var matchType=(type,stat2)=>stat2[typeMappings[type]](),toPath=urlOrPath=>urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath;function locatePathSync(paths,{cwd=process__default.default.cwd(),type="file",allowSymlinks=!0}={}){checkType(type),cwd=toPath(cwd);let statFunction=allowSymlinks?fs__default.default.statSync:fs__default.default.lstatSync;for(let path_ of paths)try{let stat2=statFunction(path2__default.default.resolve(cwd,path_),{throwIfNoEntry:!1});if(!stat2)continue;if(matchType(type,stat2))return path_}catch{}}function toPath2(urlOrPath){return urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath}var findUpStop=Symbol("findUpStop");function findUpMultipleSync(name,options={}){let directory=path2__default.default.resolve(toPath2(options.cwd)??""),{root}=path2__default.default.parse(directory),stopAt=path2__default.default.resolve(directory,toPath2(options.stopAt)??root),limit=options.limit??Number.POSITIVE_INFINITY,paths=[name].flat(),runMatcher=locateOptions=>{if(typeof name!="function")return locatePathSync(paths,locateOptions);let foundPath=name(locateOptions.cwd);return typeof foundPath=="string"?locatePathSync([foundPath],locateOptions):foundPath},matches=[];for(;;){let foundPath=runMatcher({...options,cwd:directory});if(foundPath===findUpStop||(foundPath&&matches.push(path2__default.default.resolve(directory,foundPath)),directory===stopAt||matches.length>=limit))break;directory=path2__default.default.dirname(directory);}return matches}function findUpSync(name,options={}){return findUpMultipleSync(name,{...options,limit:1})[0]}var printErrorDetails=error=>{nodeLogger.instance.heading="",error instanceof Error?error.error?nodeLogger.logger.error(error.error):error.stats&&error.stats.compilation.errors?error.stats.compilation.errors.forEach(e=>nodeLogger.logger.plain(e)):nodeLogger.logger.error(error):error.compilation?.errors&&error.compilation.errors.forEach(e=>nodeLogger.logger.plain(e)),nodeLogger.logger.line();},errorSummary=error=>error.close?tsDedent.dedent`
|
|
24
|
+
FATAL broken build!, will close the process,
|
|
25
|
+
Fix the error below and restart storybook.
|
|
26
|
+
`:tsDedent.dedent`
|
|
27
|
+
Broken build, fix the error above.
|
|
28
|
+
You may need to refresh the browser.
|
|
29
|
+
`;var hasTsConfigArg=args=>args.indexOf("-p")!==-1,hasOutputArg=args=>args.indexOf("-d")!==-1||args.indexOf("--output")!==-1,toRelativePath=pathToTsConfig=>path2.isAbsolute(pathToTsConfig)?path2.relative(".",pathToTsConfig):pathToTsConfig,runCompodoc=({compodocArgs,tsconfig},context)=>new rxjs.Observable(observer=>{let tsConfigPath=toRelativePath(tsconfig),finalCompodocArgs=[...hasTsConfigArg(compodocArgs)?[]:["-p",tsConfigPath],...hasOutputArg(compodocArgs)?[]:["-d",`${context.workspaceRoot||"."}`],...compodocArgs],packageManager=common.JsPackageManagerFactory.getPackageManager();try{let stdout=packageManager.runPackageCommandSync("compodoc",finalCompodocArgs,context.workspaceRoot,"inherit");context.logger.info(stdout),observer.next(),observer.complete();}catch(e){context.logger.error(e),observer.error();}});telemetry.addToGlobalContext("cliVersion",common.versions.storybook);var commandBuilder=(options,context)=>rxjs.from(setup(options,context)).pipe(operators.switchMap(({tsConfig})=>{let docTSConfig=findUpSync("tsconfig.doc.json",{cwd:options.configDir,stopAt:common.getProjectRoot()});return (options.compodoc?runCompodoc({compodocArgs:[...options.compodocArgs,...options.quiet?["--silent"]:[]],tsconfig:docTSConfig??tsConfig},context).pipe(operators.mapTo({tsConfig})):rxjs.of({})).pipe(operators.mapTo({tsConfig}))}),operators.map(({tsConfig})=>{common.getEnvConfig(options,{port:"SBCONFIG_PORT",host:"SBCONFIG_HOSTNAME",staticDir:"SBCONFIG_STATIC_DIR",configDir:"SBCONFIG_CONFIG_DIR",ci:"CI"}),options.port=parseInt(`${options.port}`,10);let{browserTarget,stylePreprocessorOptions,styles,ci,configDir,docs,host,https,port,quiet,enableProdMode=!1,smokeTest,sslCa,sslCert,sslKey,disableTelemetry,assets,initialPath,open,debugWebpack,loglevel,webpackStatsJson,statsJson,previewUrl,sourceMap=!1,preserveSymlinks=!1,experimentalZoneless=!1}=options;return {packageJson:findPackageSync(__dirname),ci,configDir,...docs?{docs}:{},host,https,port,quiet,enableProdMode,smokeTest,sslCa,sslCert,sslKey,disableTelemetry,angularBrowserTarget:browserTarget,angularBuilderContext:context,angularBuilderOptions:{...stylePreprocessorOptions?{stylePreprocessorOptions}:{},...styles?{styles}:{},...assets?{assets}:{},preserveSymlinks,sourceMap,experimentalZoneless},tsConfig,initialPath,open,debugWebpack,webpackStatsJson,statsJson,loglevel,previewUrl}}),operators.switchMap(standaloneOptions=>runInstance(standaloneOptions)),operators.map(port=>({success:!0,info:{port}}))),start_storybook_default=architect.createBuilder(commandBuilder);async function setup(options,context){let browserOptions,browserTarget;return options.browserTarget&&(browserTarget=architect.targetFromTargetString(options.browserTarget),browserOptions=await context.validateOptions(await context.getTargetOptions(browserTarget),await context.getBuilderNameForTarget(browserTarget))),{tsConfig:options.tsConfig??findUpSync("tsconfig.json",{cwd:options.configDir})??browserOptions.tsConfig}}function runInstance(options){return new rxjs.Observable(observer=>{coreServer.withTelemetry("dev",{cliOptions:options,presetOptions:{...options,corePresets:[],overridePresets:[]},printError:printErrorDetails},()=>coreServer.buildDevStandalone(options)).then(({port})=>observer.next(port)).catch(error=>{observer.error(errorSummary(error));});})}
|
|
30
|
+
|
|
31
|
+
module.exports = start_storybook_default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { render_exports, isComponent, computesTemplateFromComponent, formatPropInTemplate } from './chunk-LXSTVAFF.mjs';
|
|
2
|
+
import { setDefaultProjectAnnotations, setProjectAnnotations as setProjectAnnotations$1 } from 'storybook/preview-api';
|
|
3
|
+
|
|
4
|
+
function setProjectAnnotations(projectAnnotations){return setDefaultProjectAnnotations(render_exports),setProjectAnnotations$1(projectAnnotations)}var moduleMetadata=metadata=>storyFn=>{let story=storyFn(),storyMetadata=story.moduleMetadata||{};return metadata=metadata||{},{...story,moduleMetadata:{declarations:[...metadata.declarations||[],...storyMetadata.declarations||[]],entryComponents:[...metadata.entryComponents||[],...storyMetadata.entryComponents||[]],imports:[...metadata.imports||[],...storyMetadata.imports||[]],schemas:[...metadata.schemas||[],...storyMetadata.schemas||[]],providers:[...metadata.providers||[],...storyMetadata.providers||[]]}}};function applicationConfig(config){return storyFn=>{let story=storyFn(),storyConfig=story.applicationConfig;return {...story,applicationConfig:storyConfig||config?{...config,...storyConfig,providers:[...config?.providers||[],...storyConfig?.providers||[]]}:void 0}}}var componentWrapperDecorator=(element,props)=>(storyFn,storyContext)=>{let story=storyFn(),currentProps=typeof props=="function"?props(storyContext):props,template=isComponent(element)?computesTemplateFromComponent(element,currentProps??{},story.template):element(story.template);return {...story,template,...currentProps||story.props?{props:{...currentProps,...story.props}}:{}}};function argsToTemplate(args,options={}){let includeSet=options.include?new Set(options.include):null,excludeSet=options.exclude?new Set(options.exclude):null;return Object.entries(args).filter(([key])=>args[key]!==void 0).filter(([key])=>includeSet?includeSet.has(key):excludeSet?!excludeSet.has(key):!0).map(([key,value])=>typeof value=="function"?`(${key})="${formatPropInTemplate(key)}($event)"`:`[${key}]="${formatPropInTemplate(key)}"`).join(" ")}
|
|
5
|
+
|
|
6
|
+
export { applicationConfig, argsToTemplate, componentWrapperDecorator, moduleMetadata, setProjectAnnotations };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import '@angular/compiler';
|
|
2
|
+
import { BrowserModule, bootstrapApplication } from '@angular/platform-browser';
|
|
3
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
|
+
import { stringify } from 'telejson';
|
|
5
|
+
import { ɵReflectionCapabilities, InjectionToken, Component, Input, Output, NgZone, VERSION, NgModule, ViewChild, ViewContainerRef, Inject, ChangeDetectorRef, Injectable, Pipe, Directive } from '@angular/core';
|
|
6
|
+
import { skip, map } from 'rxjs/operators';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import { dedent } from 'ts-dedent';
|
|
9
|
+
import { STORY_CHANGED, DOCS_RENDERED } from 'storybook/internal/core-events';
|
|
10
|
+
import { addons } from 'storybook/preview-api';
|
|
11
|
+
|
|
12
|
+
var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0});};var __decorateClass=(decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp(target,key,result),result},__decorateParam=(index,decorator)=>(target,key)=>decorator(target,key,index);var render_exports={};__export(render_exports,{render:()=>render,renderToCanvas:()=>renderToCanvas,rendererFactory:()=>rendererFactory});var reflectionCapabilities=new ɵReflectionCapabilities,getComponentInputsOutputs=component=>{let componentMetadata=getComponentDecoratorMetadata(component),componentPropsMetadata=getComponentPropsDecoratorMetadata(component),initialValue={inputs:[],outputs:[]};return componentMetadata&&componentMetadata.inputs&&initialValue.inputs.push(...componentMetadata.inputs.map(i=>({propName:typeof i=="string"?i:i.name,templateName:typeof i=="string"?i:i.alias}))),componentMetadata&&componentMetadata.outputs&&initialValue.outputs.push(...componentMetadata.outputs.map(i=>({propName:i,templateName:i}))),componentPropsMetadata?Object.entries(componentPropsMetadata).reduce((previousValue,[propertyName,values])=>{let value=values.find(v=>v instanceof Input||v instanceof Output);if(value instanceof Input){let inputToAdd={propName:propertyName,templateName:value.bindingPropertyName??value.alias??propertyName},previousInputsFiltered=previousValue.inputs.filter(i=>i.templateName!==propertyName);return {...previousValue,inputs:[...previousInputsFiltered,inputToAdd]}}if(value instanceof Output){let outputToAdd={propName:propertyName,templateName:value.bindingPropertyName??value.alias??propertyName},previousOutputsFiltered=previousValue.outputs.filter(i=>i.templateName!==propertyName);return {...previousValue,outputs:[...previousOutputsFiltered,outputToAdd]}}return previousValue},initialValue):initialValue};var isComponent=component=>component?(reflectionCapabilities.annotations(component)||[]).some(d=>d instanceof Component):!1;var getComponentPropsDecoratorMetadata=component=>reflectionCapabilities.propMetadata(component),getComponentDecoratorMetadata=component=>reflectionCapabilities.annotations(component).reverse().find(d=>d instanceof Component);var isValidIdentifier=name=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name),formatPropInTemplate=propertyName=>isValidIdentifier(propertyName)?propertyName:`this['${propertyName}']`,separateInputsOutputsAttributes=(ngComponentInputsOutputs,props={})=>{let inputs=ngComponentInputsOutputs.inputs.filter(i=>i.templateName in props).map(i=>i.templateName),outputs=ngComponentInputsOutputs.outputs.filter(o=>o.templateName in props).map(o=>o.templateName);return {inputs,outputs,otherProps:Object.keys(props).filter(k=>![...inputs,...outputs].includes(k))}},computesTemplateFromComponent=(component,initialProps,innerTemplate="")=>{let ngComponentMetadata=getComponentDecoratorMetadata(component),ngComponentInputsOutputs=getComponentInputsOutputs(component);if(!ngComponentMetadata.selector)return '<ng-container *ngComponentOutlet="storyComponent"></ng-container>';let{inputs:initialInputs,outputs:initialOutputs}=separateInputsOutputsAttributes(ngComponentInputsOutputs,initialProps),templateInputs=initialInputs.length>0?` ${initialInputs.map(i=>`[${i}]="${formatPropInTemplate(i)}"`).join(" ")}`:"",templateOutputs=initialOutputs.length>0?` ${initialOutputs.map(i=>`(${i})="${formatPropInTemplate(i)}($event)"`).join(" ")}`:"";return buildTemplate(ngComponentMetadata.selector,innerTemplate,templateInputs,templateOutputs)};function stringifyCircular(obj){let seen=new Set;return JSON.stringify(obj,(key,value)=>{if(typeof value=="object"&&value!==null){if(seen.has(value))return "[Circular]";seen.add(value);}return value})}var createAngularInputProperty=({propertyName,value,argType})=>{let templateValue;switch(typeof value){case"string":templateValue=`'${value}'`;break;case"object":templateValue=stringifyCircular(value).replace(/'/g,"\u2019").replace(/\\"/g,"\u201D").replace(/"([^-"]+)":/g,"$1: ").replace(/"/g,"'").replace(/\u2019/g,"\\'").replace(/\u201D/g,"\\'").split(",").join(", ");break;default:templateValue=value;}return `[${propertyName}]="${templateValue}"`},computesTemplateSourceFromComponent=(component,initialProps,argTypes)=>{let ngComponentMetadata=getComponentDecoratorMetadata(component);if(!ngComponentMetadata)return null;if(!ngComponentMetadata.selector)return `<ng-container *ngComponentOutlet="${component.name}"></ng-container>`;let ngComponentInputsOutputs=getComponentInputsOutputs(component),{inputs:initialInputs,outputs:initialOutputs}=separateInputsOutputsAttributes(ngComponentInputsOutputs,initialProps),templateInputs=initialInputs.length>0?` ${initialInputs.map(propertyName=>createAngularInputProperty({propertyName,value:initialProps[propertyName],argType:argTypes?.[propertyName]})).join(" ")}`:"",templateOutputs=initialOutputs.length>0?` ${initialOutputs.map(i=>`(${i})="${formatPropInTemplate(i)}($event)"`).join(" ")}`:"";return buildTemplate(ngComponentMetadata.selector,"",templateInputs,templateOutputs)},buildTemplate=(selector,innerTemplate,inputs,outputs)=>{let voidElements=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],firstSelector=selector.split(",")[0];return [[/(^.*?)(?=[,])/,"$1"],[/(^\..+)/,"div$1"],[/(^\[.+?])/,"div$1"],[/([\w[\]]+)(\s*,[\w\s-[\],]+)+/,"$1"],[/#([\w-]+)/,' id="$1"'],[/((\.[\w-]+)+)/,(_,c)=>` class="${c.split`.`.join` `.trim()}"`],[/(\[.+?])/g,(_,a)=>` ${a.slice(1,-1)}`],[/([\S]+)(.*)/,(template,elementSelector)=>voidElements.some(element=>elementSelector===element)?template.replace(/([\S]+)(.*)/,`<$1$2${inputs}${outputs} />`):template.replace(/([\S]+)(.*)/,`<$1$2${inputs}${outputs}>${innerTemplate}</$1>`)]].reduce((prevSelector,[searchValue,replacer])=>prevSelector.replace(searchValue,replacer),firstSelector)};var STORY_PROPS=new InjectionToken("STORY_PROPS"),storyPropsProvider=storyProps$=>({provide:STORY_PROPS,useFactory:storyDataFactory(storyProps$.asObservable()),deps:[NgZone]});function storyDataFactory(data){return ngZone=>new Observable(subscriber=>{let sub=data.subscribe(v=>{ngZone.run(()=>subscriber.next(v));},err=>{ngZone.run(()=>subscriber.error(err));},()=>{ngZone.run(()=>subscriber.complete());});return ()=>{sub.unsubscribe();}})}var reflectionCapabilities2=new ɵReflectionCapabilities,isComponentAlreadyDeclared=(componentToFind,moduleDeclarations,moduleImports)=>moduleDeclarations&&moduleDeclarations.flat().some(declaration=>declaration===componentToFind)?!0:moduleImports?moduleImports.flat().some(importItem=>{let extractedNgModuleMetadata=extractNgModuleMetadata(importItem);return extractedNgModuleMetadata?isComponentAlreadyDeclared(componentToFind,extractedNgModuleMetadata.declarations,extractedNgModuleMetadata.imports):!1}):!1,extractNgModuleMetadata=importItem=>{let target=importItem&&importItem.ngModule?importItem.ngModule:importItem,decorators=reflectionCapabilities2.annotations(target);if(!decorators||decorators.length===0)return null;let ngModuleDecorator=decorators.find(decorator=>decorator instanceof NgModule);return ngModuleDecorator||null};var reflectionCapabilities3=new ɵReflectionCapabilities;new InjectionToken("REMOVED_MODULES");var uniqueArray=arr=>arr.flat(Number.MAX_VALUE).filter(Boolean).filter((value,index,self)=>self.indexOf(value)===index),_PropertyExtractor=class _PropertyExtractor{constructor(metadata,component){this.metadata=metadata;this.component=component;this.declarations=[];this.analyzeMetadata=async metadata=>{let declarations=[...metadata?.declarations||[]],providers=[...metadata?.providers||[]],applicationProviders=[],imports=await Promise.all([...metadata?.imports||[]].map(async imported=>{let[isRestricted,restrictedProviders]=await _PropertyExtractor.analyzeRestricted(imported);return isRestricted?(applicationProviders.unshift(restrictedProviders||[]),null):imported})).then(results=>results.filter(Boolean));return {...metadata,imports,providers,applicationProviders,declarations}};}static warnImportsModuleWithProviders(propertyExtractor){propertyExtractor.imports.some(importedModule=>"ngModule"in importedModule)&&console.warn(dedent(`
|
|
13
|
+
Storybook Warning:
|
|
14
|
+
moduleMetadata property 'imports' contains one or more ModuleWithProviders, likely the result of a 'Module.forRoot()'-style call.
|
|
15
|
+
In Storybook 7.0 we use Angular's new 'bootstrapApplication' API to mount the component to the DOM, which accepts a list of providers to set up application-wide providers.
|
|
16
|
+
Use the 'applicationConfig' decorator from '@storybook/angular' to pass your ModuleWithProviders to the 'providers' property in combination with the importProvidersFrom helper function from '@angular/core' to extract all the necessary providers.
|
|
17
|
+
Visit https://angular.io/guide/standalone-components#configuring-dependency-injection for more information
|
|
18
|
+
`));}async init(){let analyzed=await this.analyzeMetadata(this.metadata);if(this.imports=uniqueArray([CommonModule,analyzed.imports]),this.providers=uniqueArray(analyzed.providers),this.applicationProviders=uniqueArray(analyzed.applicationProviders),this.declarations=uniqueArray(analyzed.declarations),this.component){let{isDeclarable,isStandalone}=_PropertyExtractor.analyzeDecorators(this.component),isDeclared=isComponentAlreadyDeclared(this.component,analyzed.declarations,this.imports);isStandalone?this.imports.push(this.component):isDeclarable&&!isDeclared&&this.declarations.push(this.component);}}};_PropertyExtractor.analyzeRestricted=async ngModule=>{if(ngModule===BrowserModule)return console.warn(dedent`
|
|
19
|
+
Storybook Warning:
|
|
20
|
+
You have imported the "BrowserModule", which is not necessary anymore.
|
|
21
|
+
In Storybook v7.0 we are using Angular's new bootstrapApplication API to mount an Angular application to the DOM.
|
|
22
|
+
Note that the BrowserModule providers are automatically included when starting an application with bootstrapApplication()
|
|
23
|
+
Please remove the "BrowserModule" from the list of imports in your moduleMetadata definition to remove this warning.
|
|
24
|
+
`),[!0];try{let animations=await import('@angular/platform-browser/animations');if(ngModule===animations.BrowserAnimationsModule)return console.warn(dedent`
|
|
25
|
+
Storybook Warning:
|
|
26
|
+
You have added the "BrowserAnimationsModule" to the list of "imports" in your moduleMetadata definition of your Story.
|
|
27
|
+
In Storybook 7.0 we use Angular's new 'bootstrapApplication' API to mount the component to the DOM, which accepts a list of providers to set up application-wide providers.
|
|
28
|
+
Use the 'applicationConfig' decorator from '@storybook/angular' and add the "provideAnimations" function to the list of "providers".
|
|
29
|
+
If your Angular version does not support "provide-like" functions, use the helper function importProvidersFrom instead to set up animations. For this case, please add "importProvidersFrom(BrowserAnimationsModule)" to the list of providers of your applicationConfig definition.
|
|
30
|
+
Please visit https://angular.io/guide/standalone-components#configuring-dependency-injection for more information.
|
|
31
|
+
`),[!0,animations.provideAnimations()];if(ngModule===animations.NoopAnimationsModule)return console.warn(dedent`
|
|
32
|
+
Storybook Warning:
|
|
33
|
+
You have added the "NoopAnimationsModule" to the list of "imports" in your moduleMetadata definition of your Story.
|
|
34
|
+
In Storybook v7.0 we are using Angular's new bootstrapApplication API to mount an Angular application to the DOM, which accepts a list of providers to set up application-wide providers.
|
|
35
|
+
Use the 'applicationConfig' decorator from '@storybook/angular' and add the "provideNoopAnimations" function to the list of "providers".
|
|
36
|
+
If your Angular version does not support "provide-like" functions, use the helper function importProvidersFrom instead to set up noop animations and to extract all necessary providers from NoopAnimationsModule. For this case, please add "importProvidersFrom(NoopAnimationsModule)" to the list of providers of your applicationConfig definition.
|
|
37
|
+
Please visit https://angular.io/guide/standalone-components#configuring-dependency-injection for more information.
|
|
38
|
+
`),[!0,animations.provideNoopAnimations()]}catch{return [!1]}return [!1]},_PropertyExtractor.analyzeDecorators=component=>{let decorators=reflectionCapabilities3.annotations(component),isComponent2=decorators.some(d=>_PropertyExtractor.isDecoratorInstanceOf(d,"Component")),isDirective=decorators.some(d=>_PropertyExtractor.isDecoratorInstanceOf(d,"Directive")),isPipe=decorators.some(d=>_PropertyExtractor.isDecoratorInstanceOf(d,"Pipe")),isDeclarable=isComponent2||isDirective||isPipe,isStandalone=(isComponent2||isDirective)&&[...decorators].reverse().find(d=>_PropertyExtractor.isDecoratorInstanceOf(d,"Component")||_PropertyExtractor.isDecoratorInstanceOf(d,"Directive"))?.standalone;return isStandalone===void 0&&(isStandalone=!!(VERSION.major&&Number(VERSION.major)>=19)),{isDeclarable,isStandalone}},_PropertyExtractor.isDecoratorInstanceOf=(decorator,name)=>{let factory;switch(name){case"Component":factory=Component;break;case"Directive":factory=Directive;break;case"Pipe":factory=Pipe;break;case"Injectable":factory=Injectable;break;case"Input":factory=Input;break;case"Output":factory=Output;break;default:throw new Error(`Unknown decorator type: ${name}`)}return decorator instanceof factory||decorator.ngMetadataName===name};var PropertyExtractor=_PropertyExtractor;var getNonInputsOutputsProps=(ngComponentInputsOutputs,props={})=>{let inputs=ngComponentInputsOutputs.inputs.filter(i=>i.templateName in props).map(i=>i.templateName),outputs=ngComponentInputsOutputs.outputs.filter(o=>o.templateName in props).map(o=>o.templateName);return Object.keys(props).filter(k=>![...inputs,...outputs].includes(k))},createStorybookWrapperComponent=({selector,template,storyComponent,styles,moduleMetadata,initialProps,analyzedMetadata})=>{let viewChildSelector=storyComponent??"__storybook-noop",{imports,declarations,providers}=analyzedMetadata,StorybookComponentModule=class{};StorybookComponentModule=__decorateClass([NgModule({declarations,imports,exports:[...declarations,...imports]})],StorybookComponentModule),PropertyExtractor.warnImportsModuleWithProviders(analyzedMetadata);let StorybookWrapperComponent=class{constructor(storyProps$,changeDetectorRef){this.storyProps$=storyProps$;this.changeDetectorRef=changeDetectorRef;this.storyComponent=storyComponent??"";}ngOnInit(){this.storyWrapperPropsSubscription=this.storyProps$.subscribe((storyProps={})=>{Object.assign(this,storyProps),this.changeDetectorRef.detectChanges(),this.changeDetectorRef.markForCheck();});}ngAfterViewInit(){if(this.storyComponentElementRef){let ngComponentInputsOutputs=getComponentInputsOutputs(storyComponent);getNonInputsOutputsProps(ngComponentInputsOutputs,initialProps).forEach(p=>{this.storyComponentElementRef[p]=initialProps[p];}),this.storyComponentViewContainerRef.injector.get(ChangeDetectorRef).markForCheck(),this.changeDetectorRef.detectChanges(),this.storyComponentPropsSubscription=this.storyProps$.pipe(skip(1),map(props=>getNonInputsOutputsProps(ngComponentInputsOutputs,props).reduce((acc,p)=>({...acc,[p]:props[p]}),{}))).subscribe(props=>{Object.assign(this.storyComponentElementRef,props),this.storyComponentViewContainerRef.injector.get(ChangeDetectorRef).markForCheck(),this.changeDetectorRef.detectChanges();});}}ngOnDestroy(){this.storyComponentPropsSubscription!=null&&this.storyComponentPropsSubscription.unsubscribe(),this.storyWrapperPropsSubscription!=null&&this.storyWrapperPropsSubscription.unsubscribe();}};return __decorateClass([ViewChild(viewChildSelector,{static:!0})],StorybookWrapperComponent.prototype,"storyComponentElementRef",2),__decorateClass([ViewChild(viewChildSelector,{read:ViewContainerRef,static:!0})],StorybookWrapperComponent.prototype,"storyComponentViewContainerRef",2),StorybookWrapperComponent=__decorateClass([Component({selector,template,standalone:!0,imports:[StorybookComponentModule],providers,styles,schemas:moduleMetadata.schemas}),__decorateParam(0,Inject(STORY_PROPS)),__decorateParam(1,Inject(ChangeDetectorRef))],StorybookWrapperComponent),StorybookWrapperComponent};var getApplication=({storyFnAngular,component,targetSelector,analyzedMetadata})=>{let{props,styles,moduleMetadata={}}=storyFnAngular,{template}=storyFnAngular;return !!hasNoTemplate(template)&&component&&(template=computesTemplateFromComponent(component,props,"")),createStorybookWrapperComponent({moduleMetadata,selector:targetSelector,template,storyComponent:component,styles,initialProps:props,analyzedMetadata})};function hasNoTemplate(template){return template==null}var queue=[],isProcessing=!1,resetCompiledComponents=async()=>{try{let{\u0275resetCompiledComponents}=await import('@angular/core');\u0275resetCompiledComponents();}catch{}},queueBootstrapping=fn=>new Promise((resolve,reject)=>{queue.push(()=>fn().then(resolve).catch(reject)),isProcessing||processQueue();}),processQueue=async()=>{for(isProcessing=!0;queue.length>0;){let bootstrappingFn=queue.shift();bootstrappingFn&&(await bootstrappingFn(),await resetCompiledComponents());}isProcessing=!1;};var getProvideZonelessChangeDetectionFn=async()=>{let angularCore=await import('@angular/core');return "provideExperimentalZonelessChangeDetection"in angularCore?angularCore.provideExperimentalZonelessChangeDetection:"provideZonelessChangeDetection"in angularCore?angularCore.provideZonelessChangeDetection:null};var applicationRefs=new Map,STORY_UID_ATTRIBUTE="data-sb-story-uid",AbstractRenderer=class{constructor(){this.previousStoryRenderInfo=new Map;}static resetApplications(domNode){applicationRefs.forEach((appRef,appDOMNode)=>{!appRef.destroyed&&(!domNode||appDOMNode===domNode)&&appRef.destroy();});}async render({storyFnAngular,forced,component,targetDOMNode}){let targetSelector=this.generateTargetSelectorFromStoryId(targetDOMNode.id),newStoryProps$=new BehaviorSubject(storyFnAngular.props);if(!this.fullRendererRequired({targetDOMNode,storyFnAngular,moduleMetadata:{...storyFnAngular.moduleMetadata},forced})){this.storyProps$.next(storyFnAngular.props);return}await this.beforeFullRender(targetDOMNode),this.storyProps$&&this.storyProps$.complete(),this.storyProps$=newStoryProps$,this.initAngularRootElement(targetDOMNode,targetSelector);let analyzedMetadata=new PropertyExtractor(storyFnAngular.moduleMetadata,component);await analyzedMetadata.init();let storyUid=this.generateStoryUIdFromRawStoryUid(targetDOMNode.getAttribute(STORY_UID_ATTRIBUTE)),componentSelector=storyUid!==null?`${targetSelector}[${storyUid}]`:targetSelector;storyUid!==null&&targetDOMNode.querySelector(targetSelector).toggleAttribute(storyUid,!0);let application=getApplication({storyFnAngular,component,targetSelector:componentSelector,analyzedMetadata}),providers=[storyPropsProvider(newStoryProps$),...analyzedMetadata.applicationProviders,...storyFnAngular.applicationConfig?.providers??[]];if(STORYBOOK_ANGULAR_OPTIONS?.experimentalZoneless){let provideZonelessChangeDetectionFn=await getProvideZonelessChangeDetectionFn();if(provideZonelessChangeDetectionFn)providers.unshift(provideZonelessChangeDetectionFn());else throw new Error("Zoneless change detection requires Angular 18 or higher")}let applicationRef=await queueBootstrapping(()=>bootstrapApplication(application,{...storyFnAngular.applicationConfig,providers}));applicationRefs.set(targetDOMNode,applicationRef);}generateTargetSelectorFromStoryId(id){let invalidHtmlTag=/[^A-Za-z0-9-]/g;return invalidHtmlTag.test(id)?`sb-${id.replace(invalidHtmlTag,"")}-component`:id}generateStoryUIdFromRawStoryUid(rawStoryUid){if(rawStoryUid===null)return rawStoryUid;let accentCharacters=/[\u0300-\u036f]/g;return rawStoryUid.normalize("NFD").replace(accentCharacters,"")}initAngularRootElement(targetDOMNode,targetSelector){targetDOMNode.innerHTML="",targetDOMNode.appendChild(document.createElement(targetSelector));}fullRendererRequired({targetDOMNode,storyFnAngular,moduleMetadata,forced}){let previousStoryRenderInfo=this.previousStoryRenderInfo.get(targetDOMNode),currentStoryRender={storyFnAngular,moduleMetadataSnapshot:stringify(moduleMetadata,{maxDepth:50})};return this.previousStoryRenderInfo.set(targetDOMNode,currentStoryRender),!forced||!this.storyProps$||!!storyFnAngular?.template&&previousStoryRenderInfo?.storyFnAngular?.template!==storyFnAngular.template?!0:currentStoryRender.moduleMetadataSnapshot!==previousStoryRenderInfo?.moduleMetadataSnapshot}};var CanvasRenderer=class _CanvasRenderer extends AbstractRenderer{async render(options){await super.render(options);}async beforeFullRender(){_CanvasRenderer.resetApplications();}};var storyCounts=new Map,getNextStoryUID=storyId=>{storyCounts.has(storyId)||storyCounts.set(storyId,-1);let count=storyCounts.get(storyId)+1;return storyCounts.set(storyId,count),`${storyId}-${count}`};var DocsRenderer=class _DocsRenderer extends AbstractRenderer{async render(options){let channel=addons.getChannel();channel.once(STORY_CHANGED,async()=>{await _DocsRenderer.resetApplications();}),channel.once(DOCS_RENDERED,async()=>{await _DocsRenderer.resetApplications();}),await super.render({...options,forced:!1});}async beforeFullRender(domNode){_DocsRenderer.resetApplications(domNode);}initAngularRootElement(targetDOMNode,targetSelector){super.initAngularRootElement(targetDOMNode,targetSelector),targetDOMNode.setAttribute(STORY_UID_ATTRIBUTE,getNextStoryUID(targetDOMNode.id));}};var RendererFactory=class{constructor(){this.rendererMap=new Map;}async getRendererInstance(targetDOMNode){let targetId=targetDOMNode.id;if(targetDOMNode===null)return null;let renderType=getRenderType(targetDOMNode);return this.lastRenderType&&this.lastRenderType!==renderType&&(await AbstractRenderer.resetApplications(),clearRootHTMLElement(renderType),this.rendererMap.clear()),this.rendererMap.has(targetId)||this.rendererMap.set(targetId,this.buildRenderer(renderType)),this.lastRenderType=renderType,this.rendererMap.get(targetId)}buildRenderer(renderType){return renderType==="docs"?new DocsRenderer:new CanvasRenderer}},getRenderType=targetDOMNode=>targetDOMNode.id==="storybook-root"?"canvas":"docs";function clearRootHTMLElement(renderType){switch(renderType){case"canvas":global.document.getElementById("storybook-docs").innerHTML="";break;case"docs":global.document.getElementById("storybook-root").innerHTML="";break;}}var rendererFactory=new RendererFactory,render=props=>({props});async function renderToCanvas({storyFn,showMain,forceRemount,storyContext:{component}},element){showMain(),await(await rendererFactory.getRendererInstance(element)).render({storyFnAngular:storyFn(),component,forced:!forceRemount,targetDOMNode:element});}
|
|
39
|
+
|
|
40
|
+
export { computesTemplateFromComponent, computesTemplateSourceFromComponent, formatPropInTemplate, isComponent, render, renderToCanvas, render_exports };
|
package/dist/client/config.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
|
-
import '
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { ArgsStoryFn, RenderContext, LegacyStoryFn, DecoratorFunction, Parameters, ArgTypesEnhancer } from 'storybook/internal/types';
|
|
2
|
+
import { A as AngularRenderer } from '../types-3b0b7107.js';
|
|
3
|
+
import '@angular/core';
|
|
4
|
+
import '@angular/platform-browser';
|
|
5
|
+
|
|
6
|
+
declare global {
|
|
7
|
+
const STORYBOOK_ANGULAR_OPTIONS: {
|
|
8
|
+
experimentalZoneless: boolean;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare const render: ArgsStoryFn<AngularRenderer>;
|
|
13
|
+
declare function renderToCanvas({ storyFn, showMain, forceRemount, storyContext: { component } }: RenderContext<AngularRenderer>, element: HTMLElement): Promise<void>;
|
|
14
|
+
|
|
15
|
+
declare function decorateStory(mainStoryFn: LegacyStoryFn<AngularRenderer>, decorators: DecoratorFunction<AngularRenderer>[]): LegacyStoryFn<AngularRenderer>;
|
|
16
|
+
|
|
17
|
+
declare const parameters: Parameters;
|
|
18
|
+
declare const argTypesEnhancers: ArgTypesEnhancer[];
|
|
19
|
+
|
|
20
|
+
export { decorateStory as applyDecorators, argTypesEnhancers, parameters, render, renderToCanvas };
|