@storybook/angular 9.1.0-alpha.6 → 9.1.0-alpha.8
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 -83
- package/dist/builders/start-storybook/index.js +31 -104
- 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 -84
- 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 -81
- 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 -102
- 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 -82
- 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
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,59 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export { Decorator, Loader, Meta, Preview, StoryContext, StoryFn, StoryObj, applicationConfig, argsToTemplate, componentWrapperDecorator, moduleMetadata, setProjectAnnotations } from './client/index.js';
|
|
2
|
+
export { P as AngularParameters, A as AngularRenderer, S as IStory } from './types-3b0b7107.js';
|
|
3
|
+
import { StorybookConfig as StorybookConfig$2, Options, TypescriptOptions as TypescriptOptions$1, CompatibleString } from 'storybook/internal/types';
|
|
4
|
+
export { ArgTypes, Args, Parameters, StrictArgs } from 'storybook/internal/types';
|
|
5
|
+
import { BuilderOptions, StorybookConfigWebpack, TypescriptOptions } from '@storybook/builder-webpack5';
|
|
6
|
+
import '@angular/core';
|
|
7
|
+
import '@angular/platform-browser';
|
|
8
|
+
|
|
9
|
+
type RulesConfig = any;
|
|
10
|
+
type ModuleConfig = {
|
|
11
|
+
rules?: RulesConfig[];
|
|
12
|
+
};
|
|
13
|
+
type ResolveConfig = {
|
|
14
|
+
extensions?: string[];
|
|
15
|
+
mainFields?: (string | string[])[] | undefined;
|
|
16
|
+
alias?: any;
|
|
17
|
+
};
|
|
18
|
+
interface WebpackConfiguration {
|
|
19
|
+
plugins?: any[];
|
|
20
|
+
module?: ModuleConfig;
|
|
21
|
+
resolve?: ResolveConfig;
|
|
22
|
+
optimization?: any;
|
|
23
|
+
devtool?: false | string;
|
|
24
|
+
}
|
|
25
|
+
type StorybookConfig$1<TWebpackConfiguration = WebpackConfiguration> = StorybookConfig$2 & {
|
|
26
|
+
/**
|
|
27
|
+
* Modify or return a custom Webpack config after the Storybook's default configuration has run
|
|
28
|
+
* (mostly used by addons).
|
|
29
|
+
*/
|
|
30
|
+
webpack?: (config: TWebpackConfiguration, options: Options) => TWebpackConfiguration | Promise<TWebpackConfiguration>;
|
|
31
|
+
/** Modify or return a custom Webpack config after every addon has run. */
|
|
32
|
+
webpackFinal?: (config: TWebpackConfiguration, options: Options) => TWebpackConfiguration | Promise<TWebpackConfiguration>;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type FrameworkName = CompatibleString<'@storybook/angular'>;
|
|
36
|
+
type BuilderName = CompatibleString<'@storybook/builder-webpack5'>;
|
|
37
|
+
type FrameworkOptions = AngularOptions & {
|
|
38
|
+
builder?: BuilderOptions;
|
|
39
|
+
};
|
|
40
|
+
type StorybookConfigFramework = {
|
|
41
|
+
framework: FrameworkName | {
|
|
42
|
+
name: FrameworkName;
|
|
43
|
+
options: FrameworkOptions;
|
|
44
|
+
};
|
|
45
|
+
core?: StorybookConfig$1['core'] & {
|
|
46
|
+
builder?: BuilderName | {
|
|
47
|
+
name: BuilderName;
|
|
48
|
+
options: BuilderOptions;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
typescript?: Partial<TypescriptOptions & TypescriptOptions$1> & StorybookConfig$1['typescript'];
|
|
52
|
+
};
|
|
53
|
+
/** The interface for Storybook configuration in `main.ts` files. */
|
|
54
|
+
type StorybookConfig = Omit<StorybookConfig$1, keyof StorybookConfigWebpack | keyof StorybookConfigFramework> & StorybookConfigWebpack & StorybookConfigFramework;
|
|
55
|
+
interface AngularOptions {
|
|
56
|
+
enableIvy?: boolean;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { AngularOptions, FrameworkOptions, StorybookConfig };
|
package/dist/index.js
CHANGED
|
@@ -1,29 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var global$1 = require('@storybook/global');
|
|
4
|
+
var previewApi = require('storybook/preview-api');
|
|
5
|
+
require('@angular/compiler');
|
|
6
|
+
var platformBrowser = require('@angular/platform-browser');
|
|
7
|
+
var rxjs = require('rxjs');
|
|
8
|
+
var telejson = require('telejson');
|
|
9
|
+
var core = require('@angular/core');
|
|
10
|
+
var operators = require('rxjs/operators');
|
|
11
|
+
var common = require('@angular/common');
|
|
12
|
+
var tsDedent = require('ts-dedent');
|
|
13
|
+
var coreEvents = require('storybook/internal/core-events');
|
|
14
|
+
|
|
15
|
+
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);global$1.global.STORYBOOK_ENV="angular";var render_exports={};__export(render_exports,{render:()=>render,renderToCanvas:()=>renderToCanvas,rendererFactory:()=>rendererFactory});var reflectionCapabilities=new core["ɵ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 core.Input||v instanceof core.Output);if(value instanceof core.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 core.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 core.Component):!1;var getComponentPropsDecoratorMetadata=component=>reflectionCapabilities.propMetadata(component),getComponentDecoratorMetadata=component=>reflectionCapabilities.annotations(component).reverse().find(d=>d instanceof core.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)};var 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 core.InjectionToken("STORY_PROPS"),storyPropsProvider=storyProps$=>({provide:STORY_PROPS,useFactory:storyDataFactory(storyProps$.asObservable()),deps:[core.NgZone]});function storyDataFactory(data){return ngZone=>new rxjs.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 core["ɵ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 core.NgModule);return ngModuleDecorator||null};var reflectionCapabilities3=new core["ɵReflectionCapabilities"];new core.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(tsDedent.dedent(`
|
|
16
|
+
Storybook Warning:
|
|
17
|
+
moduleMetadata property 'imports' contains one or more ModuleWithProviders, likely the result of a 'Module.forRoot()'-style call.
|
|
18
|
+
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.
|
|
19
|
+
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.
|
|
20
|
+
Visit https://angular.io/guide/standalone-components#configuring-dependency-injection for more information
|
|
21
|
+
`));}async init(){let analyzed=await this.analyzeMetadata(this.metadata);if(this.imports=uniqueArray([common.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===platformBrowser.BrowserModule)return console.warn(tsDedent.dedent`
|
|
22
|
+
Storybook Warning:
|
|
23
|
+
You have imported the "BrowserModule", which is not necessary anymore.
|
|
24
|
+
In Storybook v7.0 we are using Angular's new bootstrapApplication API to mount an Angular application to the DOM.
|
|
25
|
+
Note that the BrowserModule providers are automatically included when starting an application with bootstrapApplication()
|
|
26
|
+
Please remove the "BrowserModule" from the list of imports in your moduleMetadata definition to remove this warning.
|
|
27
|
+
`),[!0];try{let animations=await import('@angular/platform-browser/animations');if(ngModule===animations.BrowserAnimationsModule)return console.warn(tsDedent.dedent`
|
|
28
|
+
Storybook Warning:
|
|
29
|
+
You have added the "BrowserAnimationsModule" to the list of "imports" in your moduleMetadata definition of your Story.
|
|
30
|
+
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.
|
|
31
|
+
Use the 'applicationConfig' decorator from '@storybook/angular' and add the "provideAnimations" function to the list of "providers".
|
|
32
|
+
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.
|
|
33
|
+
Please visit https://angular.io/guide/standalone-components#configuring-dependency-injection for more information.
|
|
34
|
+
`),[!0,animations.provideAnimations()];if(ngModule===animations.NoopAnimationsModule)return console.warn(tsDedent.dedent`
|
|
35
|
+
Storybook Warning:
|
|
36
|
+
You have added the "NoopAnimationsModule" to the list of "imports" in your moduleMetadata definition of your Story.
|
|
37
|
+
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.
|
|
38
|
+
Use the 'applicationConfig' decorator from '@storybook/angular' and add the "provideNoopAnimations" function to the list of "providers".
|
|
39
|
+
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.
|
|
40
|
+
Please visit https://angular.io/guide/standalone-components#configuring-dependency-injection for more information.
|
|
41
|
+
`),[!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=!!(core.VERSION.major&&Number(core.VERSION.major)>=19)),{isDeclarable,isStandalone}},_PropertyExtractor.isDecoratorInstanceOf=(decorator,name)=>{let factory;switch(name){case"Component":factory=core.Component;break;case"Directive":factory=core.Directive;break;case"Pipe":factory=core.Pipe;break;case"Injectable":factory=core.Injectable;break;case"Input":factory=core.Input;break;case"Output":factory=core.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:moduleMetadata2,initialProps,analyzedMetadata})=>{let viewChildSelector=storyComponent??"__storybook-noop",{imports,declarations,providers}=analyzedMetadata,StorybookComponentModule=class{};StorybookComponentModule=__decorateClass([core.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(core.ChangeDetectorRef).markForCheck(),this.changeDetectorRef.detectChanges(),this.storyComponentPropsSubscription=this.storyProps$.pipe(operators.skip(1),operators.map(props=>getNonInputsOutputsProps(ngComponentInputsOutputs,props).reduce((acc,p)=>({...acc,[p]:props[p]}),{}))).subscribe(props=>{Object.assign(this.storyComponentElementRef,props),this.storyComponentViewContainerRef.injector.get(core.ChangeDetectorRef).markForCheck(),this.changeDetectorRef.detectChanges();});}}ngOnDestroy(){this.storyComponentPropsSubscription!=null&&this.storyComponentPropsSubscription.unsubscribe(),this.storyWrapperPropsSubscription!=null&&this.storyWrapperPropsSubscription.unsubscribe();}};return __decorateClass([core.ViewChild(viewChildSelector,{static:!0})],StorybookWrapperComponent.prototype,"storyComponentElementRef",2),__decorateClass([core.ViewChild(viewChildSelector,{read:core.ViewContainerRef,static:!0})],StorybookWrapperComponent.prototype,"storyComponentViewContainerRef",2),StorybookWrapperComponent=__decorateClass([core.Component({selector,template,standalone:!0,imports:[StorybookComponentModule],providers,styles,schemas:moduleMetadata2.schemas}),__decorateParam(0,core.Inject(STORY_PROPS)),__decorateParam(1,core.Inject(core.ChangeDetectorRef))],StorybookWrapperComponent),StorybookWrapperComponent};var getApplication=({storyFnAngular,component,targetSelector,analyzedMetadata})=>{let{props,styles,moduleMetadata:moduleMetadata2={}}=storyFnAngular,{template}=storyFnAngular;return !!hasNoTemplate(template)&&component&&(template=computesTemplateFromComponent(component,props,"")),createStorybookWrapperComponent({moduleMetadata:moduleMetadata2,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 rxjs.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(()=>platformBrowser.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:moduleMetadata2,forced}){let previousStoryRenderInfo=this.previousStoryRenderInfo.get(targetDOMNode),currentStoryRender={storyFnAngular,moduleMetadataSnapshot:telejson.stringify(moduleMetadata2,{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=previewApi.addons.getChannel();channel.once(coreEvents.STORY_CHANGED,async()=>{await _DocsRenderer.resetApplications();}),channel.once(coreEvents.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});}function setProjectAnnotations(projectAnnotations){return previewApi.setDefaultProjectAnnotations(render_exports),previewApi.setProjectAnnotations(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(" ")}
|
|
42
|
+
|
|
43
|
+
exports.applicationConfig = applicationConfig;
|
|
44
|
+
exports.argsToTemplate = argsToTemplate;
|
|
45
|
+
exports.componentWrapperDecorator = componentWrapperDecorator;
|
|
46
|
+
exports.moduleMetadata = moduleMetadata;
|
|
47
|
+
exports.setProjectAnnotations = setProjectAnnotations;
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* ATTENTION:
|
|
5
|
-
* - moduleMetadata
|
|
6
|
-
* - NgModuleMetadata
|
|
7
|
-
* - ICollection
|
|
8
|
-
*
|
|
9
|
-
* These typings are coped out of decorators.d.ts and types.d.ts in order to fix a bug with tsc
|
|
10
|
-
* It was imported out of dist before which was not the proper way of exporting public API
|
|
11
|
-
*
|
|
12
|
-
* This can be fixed by migrating app/angular to typescript
|
|
13
|
-
*/
|
|
1
|
+
export { applicationConfig, argsToTemplate, componentWrapperDecorator, moduleMetadata, setProjectAnnotations } from './chunk-KMSSK3DZ.mjs';
|
|
2
|
+
import './chunk-CUDJAP6K.mjs';
|
|
3
|
+
import './chunk-LXSTVAFF.mjs';
|
package/dist/preset.js
CHANGED
|
@@ -1,40 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
require.resolve('./server/framework-preset-angular-ivy'),
|
|
9
|
-
];
|
|
10
|
-
const previewAnnotations = async (entries = [], options) => {
|
|
11
|
-
const annotations = [...entries, require.resolve('./client/config.mjs')];
|
|
12
|
-
if (options.enableProdMode) {
|
|
13
|
-
annotations.unshift(require.resolve('./client/preview-prod.mjs'));
|
|
14
|
-
}
|
|
15
|
-
const docsConfig = await options.presets.apply('docs', {}, options);
|
|
16
|
-
const docsEnabled = Object.keys(docsConfig).length > 0;
|
|
17
|
-
if (docsEnabled) {
|
|
18
|
-
annotations.push(require.resolve('./client/docs/config.mjs'));
|
|
19
|
-
}
|
|
20
|
-
return annotations;
|
|
21
|
-
};
|
|
22
|
-
exports.previewAnnotations = previewAnnotations;
|
|
23
|
-
const core = async (config, options) => {
|
|
24
|
-
const framework = await options.presets.apply('framework');
|
|
25
|
-
return {
|
|
26
|
-
...config,
|
|
27
|
-
builder: {
|
|
28
|
-
name: getAbsolutePath('@storybook/builder-webpack5'),
|
|
29
|
-
options: typeof framework === 'string' ? {} : framework.options.builder || {},
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
};
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
|
|
5
|
+
var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var getAbsolutePath=input=>path.dirname(__require.resolve(path.join(input,"package.json"))),addons=[__require.resolve("./server/framework-preset-angular-cli"),__require.resolve("./server/framework-preset-angular-ivy")],previewAnnotations=async(entries=[],options)=>{let config=path.join(getAbsolutePath("@storybook/angular"),"dist/client/config.mjs"),annotations=[...entries,config];if(options.enableProdMode){let previewProdPath=path.join(getAbsolutePath("@storybook/angular"),"dist/client/preview-prod.mjs");annotations.unshift(previewProdPath);}let docsConfig=await options.presets.apply("docs",{},options);if(Object.keys(docsConfig).length>0){let docsConfigPath=path.join(getAbsolutePath("@storybook/angular"),"dist/client/docs/config.mjs");annotations.push(docsConfigPath);}return annotations},core=async(config,options)=>{let framework=await options.presets.apply("framework");return {...config,builder:{name:getAbsolutePath("@storybook/builder-webpack5"),options:typeof framework=="string"?{}:framework.options.builder||{}}}},typescript=async config=>({...config,skipCompiler:!0});
|
|
6
|
+
|
|
7
|
+
exports.addons = addons;
|
|
33
8
|
exports.core = core;
|
|
34
|
-
|
|
35
|
-
return {
|
|
36
|
-
...config,
|
|
37
|
-
skipCompiler: true,
|
|
38
|
-
};
|
|
39
|
-
};
|
|
9
|
+
exports.previewAnnotations = previewAnnotations;
|
|
40
10
|
exports.typescript = typescript;
|
|
@@ -1,85 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nodeLogger = require('storybook/internal/node-logger');
|
|
4
|
+
var serverErrors = require('storybook/internal/server-errors');
|
|
5
|
+
var builderWebpack5 = require('@storybook/builder-webpack5');
|
|
6
|
+
var architect = require('@angular-devkit/architect');
|
|
7
|
+
var core = require('@angular-devkit/core');
|
|
8
|
+
var path2 = require('path');
|
|
9
|
+
var process2 = require('process');
|
|
10
|
+
var fs = require('fs');
|
|
11
|
+
var url = require('url');
|
|
12
|
+
var common = require('storybook/internal/common');
|
|
13
|
+
|
|
14
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
|
|
16
|
+
var path2__default = /*#__PURE__*/_interopDefault(path2);
|
|
17
|
+
var process2__default = /*#__PURE__*/_interopDefault(process2);
|
|
18
|
+
|
|
19
|
+
var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0, fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0});},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var filter_out_styling_rules_exports={};__export(filter_out_styling_rules_exports,{filterOutStylingRules:()=>filterOutStylingRules});var isStylingRule,filterOutStylingRules,init_filter_out_styling_rules=__esm({"src/server/utils/filter-out-styling-rules.ts"(){isStylingRule=rule=>{let{test}=rule;return !test||!(test instanceof RegExp)?!1:test.test(".css")||test.test(".scss")||test.test(".sass")},filterOutStylingRules=config=>config.module.rules.filter(rule=>!isStylingRule(rule));}});var storybook_normalize_angular_entry_plugin_exports={};__export(storybook_normalize_angular_entry_plugin_exports,{default:()=>StorybookNormalizeAngularEntryPlugin});var PLUGIN_NAME,StorybookNormalizeAngularEntryPlugin,init_storybook_normalize_angular_entry_plugin=__esm({"src/server/plugins/storybook-normalize-angular-entry-plugin.js"(){PLUGIN_NAME="storybook-normalize-angular-entry-plugin",StorybookNormalizeAngularEntryPlugin=class{constructor(options){this.options=options;}apply(compiler){compiler.hooks.environment.tap(PLUGIN_NAME,()=>{let originalEntry=compiler.options.entry;compiler.options.entry=async()=>{let entryResult;if(typeof originalEntry=="function")try{entryResult=await originalEntry();}catch(error){throw console.error("Failed to execute the entry function:",error),error}else entryResult=originalEntry;return entryResult&&entryResult.main&&entryResult.styles?{main:{import:Array.from(new Set([...entryResult.main.import,...entryResult.styles.import]))}}:entryResult};}),compiler.hooks.thisCompilation.tap(PLUGIN_NAME,compilation=>{this.compilation=compilation;});}};}});var require_angular_cli_webpack=__commonJS({"src/server/angular-cli-webpack.js"(exports){var{generateI18nBrowserWebpackConfigFromContext}=__require("@angular-devkit/build-angular/src/utils/webpack-browser-config"),TsconfigPathsPlugin=__require("tsconfig-paths-webpack-plugin"),{filterOutStylingRules:filterOutStylingRules2}=(init_filter_out_styling_rules(),__toCommonJS(filter_out_styling_rules_exports)),{default:StorybookNormalizeAngularEntryPlugin2}=(init_storybook_normalize_angular_entry_plugin(),__toCommonJS(storybook_normalize_angular_entry_plugin_exports)),{getCommonConfig,getStylesConfig,getDevServerConfig,getTypeScriptConfig}=__require("@angular-devkit/build-angular/src/tools/webpack/configs");exports.getWebpackConfig=async(baseConfig,{builderOptions,builderContext})=>{async function getCustomStylesConfig(wco){let{root}=wco;if((()=>{try{return __require.resolve("@tailwindcss/postcss",{paths:[root]}),!0}catch{return !1}})()){let fs3=__require("fs/promises"),originalReaddir=fs3.readdir;fs3.readdir=async function(path3,options){let results=await originalReaddir.call(this,path3,options),tailwindFiles=["tailwind.config.js","tailwind.config.cjs","tailwind.config.mjs","tailwind.config.ts"];return results.filter(file=>!tailwindFiles.includes(file))};let styleConfig=await getStylesConfig(wco);fs3.readdir=originalReaddir;let tailwindPackagePath=__require.resolve("@tailwindcss/postcss",{paths:[root]}),extraPostcssPlugins=[__require(tailwindPackagePath)()];return styleConfig.module.rules.map(rule=>rule.rules).forEach(rule=>{rule.forEach(r=>{r.oneOf?.forEach?.(oneOfRule=>oneOfRule.use.forEach(use=>{if(use.loader.includes("postcss-loader")&&use.options.postcssOptions){let originalOptionsFn=use.options.postcssOptions;use.options.postcssOptions=loaderOptions=>{let originalOptions=originalOptionsFn(loaderOptions);return {...originalOptions,plugins:[...originalOptions.plugins,...extraPostcssPlugins]}};}}));});}),styleConfig}else return getStylesConfig(wco)}let{config:cliConfig}=await generateI18nBrowserWebpackConfigFromContext({index:"noop-index",main:"noop-main",...builderOptions,styles:builderOptions.styles?.map(style=>typeof style=="string"?style:style.input).filter(style=>typeof style=="string"||style.inject!==!1),outputPath:typeof builderOptions.outputPath=="string"?builderOptions.outputPath:builderOptions.outputPath?.base??"noop-out",optimization:!1,namedChunks:!1,progress:!1,buildOptimizer:!1,aot:!1},builderContext,wco=>[getCommonConfig(wco),getCustomStylesConfig(wco),getTypeScriptConfig?getTypeScriptConfig(wco):getDevServerConfig(wco)]);!builderOptions.experimentalZoneless&&!cliConfig.entry.polyfills?.includes("zone.js")&&cliConfig.entry.polyfills.push("zone.js");let entry=[...cliConfig.entry.polyfills??[],...baseConfig.entry,...cliConfig.entry.styles??[]],rulesExcludingStyles=filterOutStylingRules2(baseConfig),module2={...baseConfig.module,rules:[...cliConfig.module.rules,...rulesExcludingStyles]},plugins=[...cliConfig.plugins??[],...baseConfig.plugins,new StorybookNormalizeAngularEntryPlugin2],resolve={...baseConfig.resolve,modules:Array.from(new Set([...baseConfig.resolve.modules,...cliConfig.resolve.modules])),plugins:[new TsconfigPathsPlugin({configFile:builderOptions.tsConfig,mainFields:["browser","module","main"]})]};return {...baseConfig,entry,module:module2,plugins,resolve,resolveLoader:cliConfig.resolveLoader}};}});var Node=class{value;next;constructor(value){this.value=value;}},Queue=class{#head;#tail;#size;constructor(){this.clear();}enqueue(value){let node=new Node(value);this.#head?(this.#tail.next=node,this.#tail=node):(this.#head=node,this.#tail=node),this.#size++;}dequeue(){let current=this.#head;if(current)return this.#head=this.#head.next,this.#size--,current.value}peek(){if(this.#head)return this.#head.value}clear(){this.#head=void 0,this.#tail=void 0,this.#size=0;}get size(){return this.#size}*[Symbol.iterator](){let current=this.#head;for(;current;)yield current.value,current=current.next;}*drain(){for(;this.#head;)yield this.dequeue();}};function pLimit(concurrency){if(!((Number.isInteger(concurrency)||concurrency===Number.POSITIVE_INFINITY)&&concurrency>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let queue=new Queue,activeCount=0,next=()=>{activeCount--,queue.size>0&&queue.dequeue()();},run=async(fn,resolve,args)=>{activeCount++;let result=(async()=>fn(...args))();resolve(result);try{await result;}catch{}next();},enqueue=(fn,resolve,args)=>{queue.enqueue(run.bind(void 0,fn,resolve,args)),(async()=>(await Promise.resolve(),activeCount<concurrency&&queue.size>0&&queue.dequeue()()))();},generator=(fn,...args)=>new Promise(resolve=>{enqueue(fn,resolve,args);});return Object.defineProperties(generator,{activeCount:{get:()=>activeCount},pendingCount:{get:()=>queue.size},clearQueue:{value:()=>{queue.clear();}}}),generator}var EndError=class extends Error{constructor(value){super(),this.value=value;}},testElement=async(element,tester)=>tester(await element),finder=async element=>{let values=await Promise.all(element);if(values[1]===!0)throw new EndError(values[0]);return !1};async function pLocate(iterable,tester,{concurrency=Number.POSITIVE_INFINITY,preserveOrder=!0}={}){let limit=pLimit(concurrency),items=[...iterable].map(element=>[element,limit(testElement,element,tester)]),checkLimit=pLimit(preserveOrder?1:Number.POSITIVE_INFINITY);try{await Promise.all(items.map(element=>checkLimit(finder,element)));}catch(error){if(error instanceof EndError)return error.value;throw error}}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,stat)=>stat[typeMappings[type]](),toPath=urlOrPath=>urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath;async function locatePath(paths,{cwd=process2__default.default.cwd(),type="file",allowSymlinks=!0,concurrency,preserveOrder}={}){checkType(type),cwd=toPath(cwd);let statFunction=allowSymlinks?fs.promises.stat:fs.promises.lstat;return pLocate(paths,async path_=>{try{let stat=await statFunction(path2__default.default.resolve(cwd,path_));return matchType(type,stat)}catch{return !1}},{concurrency,preserveOrder})}function toPath2(urlOrPath){return urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath}var findUpStop=Symbol("findUpStop");async function findUpMultiple(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=async locateOptions=>{if(typeof name!="function")return locatePath(paths,locateOptions);let foundPath=await name(locateOptions.cwd);return typeof foundPath=="string"?locatePath([foundPath],locateOptions):foundPath},matches=[];for(;;){let foundPath=await 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}async function findUp(name,options={}){return (await findUpMultiple(name,{...options,limit:1}))[0]}var import_angular_cli_webpack=__toESM(require_angular_cli_webpack());var moduleIsAvailable=moduleName=>{try{return __require.resolve(moduleName),!0}catch{return !1}};async function webpackFinal(baseConfig,options){if(!moduleIsAvailable("@angular-devkit/build-angular"))return nodeLogger.logger.info('=> Using base config because "@angular-devkit/build-angular" is not installed'),baseConfig;checkForLegacyBuildOptions(options);let builderContext=getBuilderContext(options),builderOptions=await getBuilderOptions(options,builderContext),webpackConfig=await(0, import_angular_cli_webpack.getWebpackConfig)(baseConfig,{builderOptions:{watch:options.configType==="DEVELOPMENT",...builderOptions},builderContext});webpackConfig.plugins=webpackConfig.plugins??[];let miniCssPlugin=webpackConfig?.plugins?.find(plugin=>plugin?.constructor?.name==="MiniCssExtractPlugin");miniCssPlugin&&"options"in miniCssPlugin&&(miniCssPlugin.options.filename="[name].[contenthash].css",miniCssPlugin.options.chunkFilename="[name].iframe.[contenthash].css"),webpackConfig.plugins.push(new builderWebpack5.WebpackDefinePlugin({STORYBOOK_ANGULAR_OPTIONS:JSON.stringify({experimentalZoneless:builderOptions.experimentalZoneless})}));try{__require.resolve("@angular/animations");}catch{webpackConfig.plugins.push(new builderWebpack5.WebpackIgnorePlugin({resourceRegExp:/@angular\/platform-browser\/animations$/}));}return webpackConfig}function getBuilderContext(options){return options.angularBuilderContext??{target:{project:"noop-project",builder:"",options:{}},workspaceRoot:process.cwd(),getProjectMetadata:()=>({}),getTargetOptions:()=>({}),logger:new core.logging.Logger("Storybook")}}async function getBuilderOptions(options,builderContext){let browserTargetOptions={};if(options.angularBrowserTarget){let browserTarget=architect.targetFromTargetString(options.angularBrowserTarget);nodeLogger.logger.info(`=> Using angular browser target options from "${browserTarget.project}:${browserTarget.target}${browserTarget.configuration?`:${browserTarget.configuration}`:""}"`),browserTargetOptions=await builderContext.getTargetOptions(browserTarget);}let builderOptions={...browserTargetOptions,...options.angularBuilderOptions,tsConfig:options.tsConfig??await findUp("tsconfig.json",{cwd:options.configDir,stopAt:common.getProjectRoot()})??browserTargetOptions.tsConfig};return nodeLogger.logger.info(`=> Using angular project with "tsConfig:${builderOptions.tsConfig}"`),builderOptions}function checkForLegacyBuildOptions(options){if(options.angularBrowserTarget===void 0)throw new serverErrors.AngularLegacyBuildOptionsError}
|
|
20
|
+
|
|
3
21
|
exports.webpackFinal = webpackFinal;
|
|
4
|
-
const node_logger_1 = require("storybook/internal/node-logger");
|
|
5
|
-
const server_errors_1 = require("storybook/internal/server-errors");
|
|
6
|
-
const builder_webpack5_1 = require("@storybook/builder-webpack5");
|
|
7
|
-
const architect_1 = require("@angular-devkit/architect");
|
|
8
|
-
const core_1 = require("@angular-devkit/core");
|
|
9
|
-
const find_up_1 = require("find-up");
|
|
10
|
-
const angular_cli_webpack_1 = require("./angular-cli-webpack");
|
|
11
|
-
const module_is_available_1 = require("./utils/module-is-available");
|
|
12
|
-
const common_1 = require("storybook/internal/common");
|
|
13
|
-
async function webpackFinal(baseConfig, options) {
|
|
14
|
-
if (!(0, module_is_available_1.moduleIsAvailable)('@angular-devkit/build-angular')) {
|
|
15
|
-
node_logger_1.logger.info('=> Using base config because "@angular-devkit/build-angular" is not installed');
|
|
16
|
-
return baseConfig;
|
|
17
|
-
}
|
|
18
|
-
checkForLegacyBuildOptions(options);
|
|
19
|
-
const builderContext = getBuilderContext(options);
|
|
20
|
-
const builderOptions = await getBuilderOptions(options, builderContext);
|
|
21
|
-
const webpackConfig = await (0, angular_cli_webpack_1.getWebpackConfig)(baseConfig, {
|
|
22
|
-
builderOptions: {
|
|
23
|
-
watch: options.configType === 'DEVELOPMENT',
|
|
24
|
-
...builderOptions,
|
|
25
|
-
},
|
|
26
|
-
builderContext,
|
|
27
|
-
});
|
|
28
|
-
webpackConfig.plugins = webpackConfig.plugins ?? [];
|
|
29
|
-
webpackConfig.plugins.push(new builder_webpack5_1.WebpackDefinePlugin({
|
|
30
|
-
STORYBOOK_ANGULAR_OPTIONS: JSON.stringify({
|
|
31
|
-
experimentalZoneless: builderOptions.experimentalZoneless,
|
|
32
|
-
}),
|
|
33
|
-
}));
|
|
34
|
-
try {
|
|
35
|
-
require.resolve('@angular/animations');
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
webpackConfig.plugins.push(new builder_webpack5_1.WebpackIgnorePlugin({
|
|
39
|
-
resourceRegExp: /@angular\/platform-browser\/animations$/,
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
|
-
return webpackConfig;
|
|
43
|
-
}
|
|
44
|
-
/** Get Builder Context If storybook is not start by angular builder create dumb BuilderContext */
|
|
45
|
-
function getBuilderContext(options) {
|
|
46
|
-
return (options.angularBuilderContext ??
|
|
47
|
-
{
|
|
48
|
-
target: { project: 'noop-project', builder: '', options: {} },
|
|
49
|
-
workspaceRoot: process.cwd(),
|
|
50
|
-
getProjectMetadata: () => ({}),
|
|
51
|
-
getTargetOptions: () => ({}),
|
|
52
|
-
logger: new core_1.logging.Logger('Storybook'),
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/** Get builder options Merge target options from browser target and from storybook options */
|
|
56
|
-
async function getBuilderOptions(options, builderContext) {
|
|
57
|
-
/** Get Browser Target options */
|
|
58
|
-
let browserTargetOptions = {};
|
|
59
|
-
if (options.angularBrowserTarget) {
|
|
60
|
-
const browserTarget = (0, architect_1.targetFromTargetString)(options.angularBrowserTarget);
|
|
61
|
-
node_logger_1.logger.info(`=> Using angular browser target options from "${browserTarget.project}:${browserTarget.target}${browserTarget.configuration ? `:${browserTarget.configuration}` : ''}"`);
|
|
62
|
-
browserTargetOptions = await builderContext.getTargetOptions(browserTarget);
|
|
63
|
-
}
|
|
64
|
-
/** Merge target options from browser target options and from storybook options */
|
|
65
|
-
const builderOptions = {
|
|
66
|
-
...browserTargetOptions,
|
|
67
|
-
...options.angularBuilderOptions,
|
|
68
|
-
tsConfig: options.tsConfig ??
|
|
69
|
-
(0, find_up_1.findUpSync)('tsconfig.json', { cwd: options.configDir, stopAt: (0, common_1.getProjectRoot)() }) ??
|
|
70
|
-
browserTargetOptions.tsConfig,
|
|
71
|
-
};
|
|
72
|
-
node_logger_1.logger.info(`=> Using angular project with "tsConfig:${builderOptions.tsConfig}"`);
|
|
73
|
-
return builderOptions;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Checks if using legacy configuration that doesn't use builder and logs message referring to
|
|
77
|
-
* migration docs.
|
|
78
|
-
*/
|
|
79
|
-
function checkForLegacyBuildOptions(options) {
|
|
80
|
-
if (options.angularBrowserTarget !== undefined) {
|
|
81
|
-
// Not use legacy way with builder (`angularBrowserTarget` is defined or null with builder and undefined without)
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
throw new server_errors_1.AngularLegacyBuildOptionsError();
|
|
85
|
-
}
|
|
@@ -1,61 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* https://github.com/angular/angular-cli/blob/ebccb5de4a455af813c5e82483db6af20666bdbd/packages/angular_devkit/build_angular/src/utils/load-esm.ts#L23
|
|
8
|
-
* This uses a dynamic import to load a module which may be ESM. CommonJS code can load ESM code via
|
|
9
|
-
* a dynamic import. Unfortunately, TypeScript will currently, unconditionally downlevel dynamic
|
|
10
|
-
* import into a require call. require calls cannot load ESM code and will result in a runtime
|
|
11
|
-
* error. To workaround this, a Function constructor is used to prevent TypeScript from changing the
|
|
12
|
-
* dynamic import. Once TypeScript provides support for keeping the dynamic import this workaround
|
|
13
|
-
* can be dropped.
|
|
14
|
-
*
|
|
15
|
-
* @param modulePath The path of the module to load.
|
|
16
|
-
* @returns A Promise that resolves to the dynamically imported module.
|
|
17
|
-
*/
|
|
18
|
-
function loadEsmModule(modulePath) {
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
20
|
-
return new Function('modulePath', `return import(modulePath);`)(modulePath);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Run ngcc for converting modules to ivy format before starting storybook This step is needed in
|
|
24
|
-
* order to support Ivy in storybook
|
|
25
|
-
*
|
|
26
|
-
* Information about Ivy can be found here https://angular.io/guide/ivy
|
|
27
|
-
*/
|
|
28
|
-
const runNgcc = async () => {
|
|
29
|
-
let ngcc;
|
|
30
|
-
try {
|
|
31
|
-
ngcc = require('@angular/compiler-cli/ngcc');
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
ngcc = await loadEsmModule('@angular/compiler-cli/ngcc');
|
|
35
|
-
}
|
|
36
|
-
ngcc.process({
|
|
37
|
-
// should be async: true but does not work due to
|
|
38
|
-
// https://github.com/storybookjs/storybook/pull/11157/files#r615413803
|
|
39
|
-
async: false,
|
|
40
|
-
basePath: (0, node_path_1.join)(process.cwd(), 'node_modules'), // absolute path to node_modules
|
|
41
|
-
createNewEntryPointFormats: true, // --create-ivy-entry-points
|
|
42
|
-
compileAllFormats: false, // --first-only
|
|
43
|
-
});
|
|
44
|
-
};
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
|
|
5
|
+
var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});function loadEsmModule(modulePath){return new Function("modulePath","return import(modulePath);")(modulePath)}var runNgcc=async()=>{let ngcc;try{ngcc=__require("@angular/compiler-cli/ngcc");}catch{ngcc=await loadEsmModule("@angular/compiler-cli/ngcc");}ngcc.process({async:!1,basePath:path.join(process.cwd(),"node_modules"),createNewEntryPointFormats:!0,compileAllFormats:!1});},webpack=async(webpackConfig,options)=>{let framework=await options.presets.apply("framework");return (typeof framework=="object"?framework.options:{}).enableIvy===!1?webpackConfig:{...webpackConfig,resolve:{...webpackConfig.resolve,mainFields:["browser","module","main"]}}};
|
|
6
|
+
|
|
45
7
|
exports.runNgcc = runNgcc;
|
|
46
|
-
const webpack = async (webpackConfig, options) => {
|
|
47
|
-
const framework = await options.presets.apply('framework');
|
|
48
|
-
const angularOptions = (typeof framework === 'object' ? framework.options : {});
|
|
49
|
-
// Default to true, if undefined
|
|
50
|
-
if (angularOptions.enableIvy === false) {
|
|
51
|
-
return webpackConfig;
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
...webpackConfig,
|
|
55
|
-
resolve: {
|
|
56
|
-
...webpackConfig.resolve,
|
|
57
|
-
mainFields: ['browser', 'module', 'main'],
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
8
|
exports.webpack = webpack;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebRenderer, Parameters as Parameters$1 } from 'storybook/internal/types';
|
|
2
2
|
import { Provider } from '@angular/core';
|
|
3
3
|
import { ApplicationConfig } from '@angular/platform-browser';
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
interface NgModuleMetadata {
|
|
5
6
|
/** List of components, directives, and pipes that belong to your component. */
|
|
6
7
|
declarations?: any[];
|
|
7
8
|
entryComponents?: any[];
|
|
@@ -19,10 +20,10 @@ export interface NgModuleMetadata {
|
|
|
19
20
|
*/
|
|
20
21
|
providers?: Provider[];
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
interface ICollection {
|
|
23
24
|
[p: string]: any;
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
interface StoryFnAngularReturnType {
|
|
26
27
|
props?: ICollection;
|
|
27
28
|
moduleMetadata?: NgModuleMetadata;
|
|
28
29
|
applicationConfig?: ApplicationConfig;
|
|
@@ -30,13 +31,12 @@ export interface StoryFnAngularReturnType {
|
|
|
30
31
|
styles?: string[];
|
|
31
32
|
userDefinedTemplate?: boolean;
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
interface AngularRenderer extends WebRenderer {
|
|
34
35
|
component: any;
|
|
35
36
|
storyResult: StoryFnAngularReturnType;
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
+
type Parameters = Parameters$1 & {
|
|
38
39
|
bootstrapModuleOptions?: unknown;
|
|
39
40
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
41
|
+
|
|
42
|
+
export { AngularRenderer as A, ICollection as I, NgModuleMetadata as N, Parameters as P, StoryFnAngularReturnType as S };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/angular",
|
|
3
|
-
"version": "9.1.0-alpha.
|
|
3
|
+
"version": "9.1.0-alpha.8",
|
|
4
4
|
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook",
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
"require": "./dist/index.js"
|
|
28
28
|
},
|
|
29
29
|
"./preset": "./preset.js",
|
|
30
|
+
"./server/framework-preset-angular-ivy": "./server/framework-preset-angular-ivy.js",
|
|
31
|
+
"./server/framework-preset-angular-cli": "./server/framework-preset-angular-cli.js",
|
|
32
|
+
"./client/config": {
|
|
33
|
+
"types": "./dist/client/config.d.ts",
|
|
34
|
+
"import": "./dist/client/config.mjs",
|
|
35
|
+
"require": "./dist/client/config.js"
|
|
36
|
+
},
|
|
37
|
+
"./client/preview-prod": {
|
|
38
|
+
"types": "./dist/client/preview-prod.d.ts",
|
|
39
|
+
"import": "./dist/client/preview-prod.mjs",
|
|
40
|
+
"require": "./dist/client/preview-prod.js"
|
|
41
|
+
},
|
|
42
|
+
"./client/docs/config": {
|
|
43
|
+
"types": "./dist/client/docs/config.d.ts",
|
|
44
|
+
"import": "./dist/client/docs/config.mjs",
|
|
45
|
+
"require": "./dist/client/docs/config.js"
|
|
46
|
+
},
|
|
30
47
|
"./node": {
|
|
31
48
|
"types": "./dist/node/index.d.ts",
|
|
32
49
|
"import": "./dist/node/index.js",
|
|
@@ -38,7 +55,26 @@
|
|
|
38
55
|
"main": "dist/index.js",
|
|
39
56
|
"module": "dist/index.mjs",
|
|
40
57
|
"types": "dist/index.d.ts",
|
|
58
|
+
"typesVersions": {
|
|
59
|
+
"*": {
|
|
60
|
+
"*": [
|
|
61
|
+
"dist/index.d.ts"
|
|
62
|
+
],
|
|
63
|
+
"client/config": [
|
|
64
|
+
"dist/client/config.d.ts"
|
|
65
|
+
],
|
|
66
|
+
"client/preview-prod": [
|
|
67
|
+
"dist/client/preview-prod.d.ts"
|
|
68
|
+
],
|
|
69
|
+
"client/docs/config": [
|
|
70
|
+
"dist/client/docs/config.d.ts"
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
},
|
|
41
74
|
"files": [
|
|
75
|
+
"builders.json",
|
|
76
|
+
"build-schema.json",
|
|
77
|
+
"start-schema.json",
|
|
42
78
|
"dist/**/*",
|
|
43
79
|
"template/cli/**/*",
|
|
44
80
|
"README.md",
|
|
@@ -48,16 +84,12 @@
|
|
|
48
84
|
"!src/**/*"
|
|
49
85
|
],
|
|
50
86
|
"scripts": {
|
|
51
|
-
"check": "
|
|
52
|
-
"prep": "
|
|
87
|
+
"check": "jiti ../../../scripts/prepare/check.ts",
|
|
88
|
+
"prep": "jiti ../../../scripts/prepare/addon-bundle.ts"
|
|
53
89
|
},
|
|
54
90
|
"dependencies": {
|
|
55
|
-
"@storybook/builder-webpack5": "9.1.0-alpha.
|
|
56
|
-
"@storybook/core-webpack": "9.1.0-alpha.6",
|
|
91
|
+
"@storybook/builder-webpack5": "9.1.0-alpha.8",
|
|
57
92
|
"@storybook/global": "^5.0.0",
|
|
58
|
-
"@types/webpack-env": "^1.18.0",
|
|
59
|
-
"fd-package-json": "^1.2.0",
|
|
60
|
-
"find-up": "^7.0.0",
|
|
61
93
|
"telejson": "8.0.0",
|
|
62
94
|
"ts-dedent": "^2.0.0",
|
|
63
95
|
"tsconfig-paths-webpack-plugin": "^4.0.1",
|
|
@@ -76,7 +108,10 @@
|
|
|
76
108
|
"@angular/forms": "^19.1.1",
|
|
77
109
|
"@angular/platform-browser": "^19.1.1",
|
|
78
110
|
"@angular/platform-browser-dynamic": "^19.1.1",
|
|
111
|
+
"@storybook/core-webpack": "9.1.0-alpha.8",
|
|
79
112
|
"@types/node": "^22.0.0",
|
|
113
|
+
"fd-package-json": "^1.2.0",
|
|
114
|
+
"find-up": "^7.0.0",
|
|
80
115
|
"rimraf": "^6.0.1",
|
|
81
116
|
"typescript": "^5.8.3",
|
|
82
117
|
"webpack": "5",
|
|
@@ -96,7 +131,7 @@
|
|
|
96
131
|
"@angular/platform-browser": ">=18.0.0 < 21.0.0",
|
|
97
132
|
"@angular/platform-browser-dynamic": ">=18.0.0 < 21.0.0",
|
|
98
133
|
"rxjs": "^6.5.3 || ^7.4.0",
|
|
99
|
-
"storybook": "^9.1.0-alpha.
|
|
134
|
+
"storybook": "^9.1.0-alpha.8",
|
|
100
135
|
"typescript": "^4.9.0 || ^5.0.0",
|
|
101
136
|
"zone.js": ">=0.14.0"
|
|
102
137
|
},
|
|
@@ -117,10 +152,22 @@
|
|
|
117
152
|
"publishConfig": {
|
|
118
153
|
"access": "public"
|
|
119
154
|
},
|
|
120
|
-
"builders": "
|
|
155
|
+
"builders": "builders.json",
|
|
121
156
|
"bundler": {
|
|
122
|
-
"
|
|
123
|
-
|
|
157
|
+
"previewEntries": [
|
|
158
|
+
"./src/index.ts",
|
|
159
|
+
"./src/client/index.ts",
|
|
160
|
+
"./src/client/config.ts",
|
|
161
|
+
"./src/client/preview-prod.ts",
|
|
162
|
+
"./src/client/docs/config.ts"
|
|
163
|
+
],
|
|
164
|
+
"nodeEntries": [
|
|
165
|
+
"./src/preset.ts",
|
|
166
|
+
"./src/server/framework-preset-angular-ivy.ts",
|
|
167
|
+
"./src/server/framework-preset-angular-cli.ts",
|
|
168
|
+
"./src/builders/start-storybook/index.ts",
|
|
169
|
+
"./src/builders/build-storybook/index.ts"
|
|
170
|
+
]
|
|
124
171
|
},
|
|
125
172
|
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16"
|
|
126
173
|
}
|