@storybook/angular 6.4.0-alpha.7 → 6.4.0-beta.1
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/dist/ts3.4/builders/build-storybook/index.d.ts +2 -1
- package/dist/ts3.4/builders/start-storybook/index.d.ts +2 -1
- package/dist/ts3.4/builders/utils/build-standalone-errors-handler.d.ts +1 -0
- package/dist/ts3.4/client/preview/angular/helpers.d.ts +3 -3
- package/dist/ts3.4/client/preview/angular-beta/AbstractRenderer.d.ts +3 -1
- package/dist/ts3.4/client/preview/angular-beta/CanvasRenderer.d.ts +1 -0
- package/dist/ts3.4/client/preview/angular-beta/DocsRenderer.d.ts +1 -0
- package/dist/ts3.4/client/preview/angular-beta/StorybookModule.d.ts +2 -3
- package/dist/ts3.4/client/preview/config.d.ts +4 -0
- package/dist/ts3.4/client/preview/decorateStory.d.ts +3 -3
- package/dist/ts3.4/client/preview/decorators.d.ts +5 -4
- package/dist/ts3.4/client/preview/index.d.ts +3 -2
- package/dist/ts3.4/client/preview/render.d.ts +5 -11
- package/dist/ts3.4/client/preview/types-6-0.d.ts +25 -9
- package/dist/ts3.4/client/preview/types-7-0.d.ts +9 -0
- package/dist/ts3.4/client/preview/types.d.ts +2 -1
- package/dist/ts3.4/renderer.d.ts +0 -1
- package/dist/ts3.4/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +1 -0
- package/dist/ts3.4/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +1 -0
- package/dist/ts3.4/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +1 -0
- package/dist/ts3.4/server/framework-preset-angular-cli.d.ts +1 -0
- package/dist/ts3.9/builders/build-storybook/index.d.ts +2 -1
- package/dist/ts3.9/builders/build-storybook/index.js +35 -16
- package/dist/ts3.9/builders/build-storybook/schema.json +14 -2
- package/dist/ts3.9/builders/start-storybook/index.d.ts +2 -1
- package/dist/ts3.9/builders/start-storybook/index.js +35 -16
- package/dist/ts3.9/builders/start-storybook/schema.json +14 -2
- package/dist/ts3.9/builders/utils/build-standalone-errors-handler.d.ts +1 -0
- package/dist/ts3.9/builders/utils/build-standalone-errors-handler.js +36 -0
- package/dist/ts3.9/client/preview/angular/helpers.d.ts +3 -3
- package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.d.ts +3 -1
- package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.js +5 -3
- package/dist/ts3.9/client/preview/angular-beta/CanvasRenderer.d.ts +1 -0
- package/dist/ts3.9/client/preview/angular-beta/ComputesTemplateFromComponent.js +3 -1
- package/dist/ts3.9/client/preview/angular-beta/DocsRenderer.d.ts +1 -0
- package/dist/ts3.9/client/preview/angular-beta/StorybookModule.d.ts +2 -3
- package/dist/ts3.9/client/preview/angular-beta/StorybookModule.js +2 -2
- package/dist/ts3.9/client/preview/angular-beta/utils/NgComponentAnalyzer.js +12 -1
- package/dist/ts3.9/client/preview/config.d.ts +4 -0
- package/dist/ts3.9/client/preview/config.js +7 -0
- package/dist/ts3.9/client/preview/decorateStory.d.ts +3 -3
- package/dist/ts3.9/client/preview/decorateStory.js +7 -28
- package/dist/ts3.9/client/preview/decorators.d.ts +5 -4
- package/dist/ts3.9/client/preview/index.d.ts +3 -2
- package/dist/ts3.9/client/preview/index.js +2 -3
- package/dist/ts3.9/client/preview/render.d.ts +5 -11
- package/dist/ts3.9/client/preview/render.js +10 -9
- package/dist/ts3.9/client/preview/types-6-0.d.ts +25 -9
- package/dist/ts3.9/client/preview/types-7-0.d.ts +9 -0
- package/dist/ts3.9/client/preview/types-7-0.js +2 -0
- package/dist/ts3.9/client/preview/types.d.ts +2 -1
- package/dist/ts3.9/renderer.d.ts +0 -1
- package/dist/ts3.9/renderer.js +0 -2
- package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/angular.json +28 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +1 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +5 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/tsconfig.lib.json +25 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/tsconfig.json +13 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +1 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +5 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/tsconfig.lib.json +25 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +13 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/angular.json +16 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +1 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/main.js +5 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +9 -0
- package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +13 -0
- package/dist/ts3.9/server/angular-devkit-build-webpack.js +2 -2
- package/dist/ts3.9/server/build.js +58 -1
- package/dist/ts3.9/server/framework-preset-angular-cli.d.ts +1 -0
- package/dist/ts3.9/server/framework-preset-angular-cli.js +20 -11
- package/package.json +13 -10
- package/preset.js +7 -0
- package/standalone.d.ts +2 -1
- package/dist/ts3.4/client/preview/angular-beta/ElementRendererService.d.ts +0 -17
- package/dist/ts3.4/client/preview/angular-beta/RendererService.d.ts +0 -35
- package/dist/ts3.4/element-renderer.d.ts +0 -1
- package/dist/ts3.9/client/preview/angular-beta/ElementRendererService.d.ts +0 -17
- package/dist/ts3.9/client/preview/angular-beta/ElementRendererService.js +0 -115
- package/dist/ts3.9/client/preview/angular-beta/RendererService.d.ts +0 -35
- package/dist/ts3.9/client/preview/angular-beta/RendererService.js +0 -170
- package/dist/ts3.9/element-renderer.d.ts +0 -1
- package/dist/ts3.9/element-renderer.js +0 -4
- package/element-renderer.d.ts +0 -1
- package/element-renderer.js +0 -1
|
@@ -2,7 +2,8 @@ import { BuilderOutput } from '@angular-devkit/architect';
|
|
|
2
2
|
import { JsonObject } from '@angular-devkit/core';
|
|
3
3
|
import { CLIOptions } from '@storybook/core-common';
|
|
4
4
|
export declare type StorybookBuilderOptions = JsonObject & {
|
|
5
|
-
browserTarget
|
|
5
|
+
browserTarget?: string | null;
|
|
6
|
+
tsConfig?: string;
|
|
6
7
|
compodoc: boolean;
|
|
7
8
|
compodocArgs: string[];
|
|
8
9
|
} & Pick<CLIOptions, 'staticDir' | 'outputDir' | 'configDir' | 'loglevel' | 'quiet' | 'docs'>;
|
|
@@ -2,7 +2,8 @@ import { BuilderOutput } from '@angular-devkit/architect';
|
|
|
2
2
|
import { JsonObject } from '@angular-devkit/core';
|
|
3
3
|
import { CLIOptions } from '@storybook/core-common';
|
|
4
4
|
export declare type StorybookBuilderOptions = JsonObject & {
|
|
5
|
-
browserTarget
|
|
5
|
+
browserTarget?: string | null;
|
|
6
|
+
tsConfig?: string;
|
|
6
7
|
compodoc: boolean;
|
|
7
8
|
compodocArgs: string[];
|
|
8
9
|
} & Pick<CLIOptions, 'port' | 'host' | 'staticDir' | 'configDir' | 'https' | 'sslCa' | 'sslCert' | 'sslKey' | 'smokeTest' | 'ci' | 'quiet' | 'docs'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const buildStandaloneErrorHandler: (error: any) => any;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { PartialStoryFn } from '@storybook/csf';
|
|
2
|
+
import { AngularFramework } from '../types-6-0';
|
|
3
3
|
declare global {
|
|
4
4
|
interface Window {
|
|
5
5
|
NODE_ENV: 'string' | 'development' | undefined;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
export declare const renderNgApp: (storyFn:
|
|
8
|
+
export declare const renderNgApp: (storyFn: PartialStoryFn<AngularFramework>, forced: boolean) => void;
|
|
@@ -28,11 +28,13 @@ export declare abstract class AbstractRenderer {
|
|
|
28
28
|
* @param forced {boolean} If :
|
|
29
29
|
* - true render will only use the StoryFn `props' in storyProps observable that will update sotry's component/template properties. Improves performance without reloading the whole module&component if props changes
|
|
30
30
|
* - false fully recharges or initializes angular module & component
|
|
31
|
+
* @param component {Component}
|
|
31
32
|
* @param parameters {Parameters}
|
|
32
33
|
*/
|
|
33
|
-
render({ storyFnAngular, forced, parameters, targetDOMNode, }: {
|
|
34
|
+
render({ storyFnAngular, forced, parameters, component, targetDOMNode, }: {
|
|
34
35
|
storyFnAngular: StoryFnAngularReturnType;
|
|
35
36
|
forced: boolean;
|
|
37
|
+
component?: any;
|
|
36
38
|
parameters: Parameters;
|
|
37
39
|
targetDOMNode: HTMLElement;
|
|
38
40
|
}): Promise<void>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { NgModule, Type } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { ICollection, StoryFnAngularReturnType } from '../types';
|
|
4
|
-
|
|
5
|
-
export declare const getStorybookModuleMetadata: ({ storyFnAngular, parameters, targetSelector, }: {
|
|
4
|
+
export declare const getStorybookModuleMetadata: ({ storyFnAngular, component: annotatedComponent, targetSelector, }: {
|
|
6
5
|
storyFnAngular: StoryFnAngularReturnType;
|
|
7
|
-
|
|
6
|
+
component?: any;
|
|
8
7
|
targetSelector: string;
|
|
9
8
|
}, storyProps$: Subject<ICollection>) => NgModule;
|
|
10
9
|
export declare const createStorybookModule: (ngModule: NgModule) => Type<unknown>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { DecoratorFunction,
|
|
2
|
-
import {
|
|
3
|
-
export default function decorateStory(mainStoryFn:
|
|
1
|
+
import { DecoratorFunction, LegacyStoryFn } from '@storybook/csf';
|
|
2
|
+
import { AngularFramework } from './types-6-0';
|
|
3
|
+
export default function decorateStory(mainStoryFn: LegacyStoryFn<AngularFramework>, decorators: DecoratorFunction<AngularFramework>[]): LegacyStoryFn<AngularFramework>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Type } from '@angular/core';
|
|
2
|
-
import { DecoratorFunction, StoryContext } from '@storybook/
|
|
3
|
-
import { ICollection, NgModuleMetadata
|
|
4
|
-
|
|
5
|
-
export declare const
|
|
2
|
+
import { DecoratorFunction, StoryContext } from '@storybook/csf';
|
|
3
|
+
import { ICollection, NgModuleMetadata } from './types';
|
|
4
|
+
import { AngularFramework } from './types-6-0';
|
|
5
|
+
export declare const moduleMetadata: (metadata: Partial<NgModuleMetadata>) => DecoratorFunction<AngularFramework>;
|
|
6
|
+
export declare const componentWrapperDecorator: (element: Type<unknown> | ((story: string) => string), props?: ICollection | ((storyContext: StoryContext<AngularFramework>) => ICollection)) => DecoratorFunction<AngularFramework>;
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { ClientStoryApi, Loadable } from '@storybook/addons';
|
|
4
4
|
import './globals';
|
|
5
|
-
import { IStorybookSection
|
|
6
|
-
|
|
5
|
+
import { IStorybookSection } from './types';
|
|
6
|
+
import { AngularFramework } from './types-6-0';
|
|
7
|
+
interface ClientApi extends ClientStoryApi<AngularFramework['storyResult']> {
|
|
7
8
|
setAddon(addon: any): void;
|
|
8
9
|
configure(loader: Loadable, module: NodeModule): void;
|
|
9
10
|
getStorybook(): IStorybookSection[];
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { RenderContext } from '@storybook/store';
|
|
2
|
+
import { ArgsStoryFn } from '@storybook/csf';
|
|
3
|
+
import { AngularFramework } from './types-6-0';
|
|
4
4
|
import { RendererFactory } from './angular-beta/RendererFactory';
|
|
5
5
|
export declare const rendererFactory: RendererFactory;
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
showMain: () => void;
|
|
9
|
-
forceRender: boolean;
|
|
10
|
-
parameters: Parameters;
|
|
11
|
-
targetDOMNode: HTMLElement;
|
|
12
|
-
id: string;
|
|
13
|
-
}): Promise<void>;
|
|
6
|
+
export declare const render: ArgsStoryFn<AngularFramework>;
|
|
7
|
+
export declare function renderToDOM({ storyFn, showMain, forceRemount, storyContext: { parameters, component }, id, }: RenderContext<AngularFramework>, element: HTMLElement): Promise<void>;
|
|
@@ -1,26 +1,42 @@
|
|
|
1
|
-
import { Args
|
|
1
|
+
import { Args, Parameters as DefaultParameters, StoryContext as DefaultStoryContext, ComponentAnnotations, StoryAnnotations, AnnotatedStoryFn } from '@storybook/csf';
|
|
2
2
|
import { StoryFnAngularReturnType } from './types';
|
|
3
|
-
export { Args, ArgTypes } from '@storybook/
|
|
4
|
-
declare type
|
|
5
|
-
|
|
3
|
+
export { Args, ArgTypes } from '@storybook/csf';
|
|
4
|
+
export declare type AngularFramework = {
|
|
5
|
+
component: any;
|
|
6
|
+
storyResult: StoryFnAngularReturnType;
|
|
7
|
+
};
|
|
6
8
|
/**
|
|
7
9
|
* Metadata to configure the stories for a component.
|
|
8
10
|
*
|
|
9
11
|
* @see [Default export](https://storybook.js.org/docs/formats/component-story-format/#default-export)
|
|
10
12
|
*/
|
|
11
|
-
export declare type Meta<
|
|
13
|
+
export declare type Meta<TArgs = Args> = ComponentAnnotations<AngularFramework, TArgs>;
|
|
14
|
+
/**
|
|
15
|
+
* Story function that represents a CSFv2 component example.
|
|
16
|
+
*
|
|
17
|
+
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
18
|
+
*/
|
|
19
|
+
export declare type StoryFn<TArgs = Args> = AnnotatedStoryFn<AngularFramework, TArgs>;
|
|
12
20
|
/**
|
|
13
|
-
* Story function that represents a component example.
|
|
21
|
+
* Story function that represents a CSFv3 component example.
|
|
14
22
|
*
|
|
15
23
|
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
16
24
|
*/
|
|
17
|
-
export declare type
|
|
25
|
+
export declare type StoryObj<TArgs = Args> = StoryAnnotations<AngularFramework, TArgs>;
|
|
26
|
+
/**
|
|
27
|
+
* Story function that represents a CSFv2 component example.
|
|
28
|
+
*
|
|
29
|
+
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
30
|
+
*
|
|
31
|
+
* NOTE that in Storybook 7.0, this type will be renamed to `StoryFn` and replaced by the current `StoryObj` type.
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export declare type Story<TArgs = Args> = StoryFn<TArgs>;
|
|
18
35
|
export declare type Parameters = DefaultParameters & {
|
|
19
36
|
/** Uses legacy angular rendering engine that use dynamic component */
|
|
20
37
|
angularLegacyRendering?: boolean;
|
|
21
|
-
component: unknown;
|
|
22
38
|
bootstrapModuleOptions?: unknown;
|
|
23
39
|
};
|
|
24
|
-
export declare type StoryContext = DefaultStoryContext & {
|
|
40
|
+
export declare type StoryContext = DefaultStoryContext<AngularFramework> & {
|
|
25
41
|
parameters: Parameters;
|
|
26
42
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Args } from '@storybook/csf';
|
|
2
|
+
import { StoryObj } from './types-6-0';
|
|
3
|
+
export { StoryFn, StoryObj, Meta } from './types-6-0';
|
|
4
|
+
/**
|
|
5
|
+
* Story function that represents a CSFv3 component example.
|
|
6
|
+
*
|
|
7
|
+
* @see [Named Story exports](https://storybook.js.org/docs/formats/component-story-format/#named-story-exports)
|
|
8
|
+
*/
|
|
9
|
+
export declare type Story<TArgs = Args> = StoryObj<TArgs>;
|
|
@@ -10,7 +10,7 @@ export interface ICollection {
|
|
|
10
10
|
}
|
|
11
11
|
export interface IStorybookStory {
|
|
12
12
|
name: string;
|
|
13
|
-
render: () => any;
|
|
13
|
+
render: (context: any) => any;
|
|
14
14
|
}
|
|
15
15
|
export interface IStorybookSection {
|
|
16
16
|
kind: string;
|
|
@@ -25,4 +25,5 @@ export interface StoryFnAngularReturnType {
|
|
|
25
25
|
moduleMetadata?: NgModuleMetadata;
|
|
26
26
|
template?: string;
|
|
27
27
|
styles?: string[];
|
|
28
|
+
userDefinedTemplate?: boolean;
|
|
28
29
|
}
|
package/dist/ts3.4/renderer.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { computesTemplateSourceFromComponent } from './client/preview/angular-beta/ComputesTemplateFromComponent';
|
|
2
|
-
export { RendererService } from './client/preview/angular-beta/RendererService';
|
|
3
2
|
export { rendererFactory } from './client/preview/render';
|
|
4
3
|
export { AbstractRenderer } from './client/preview/angular-beta/AbstractRenderer';
|
|
5
4
|
export { getStorybookModuleMetadata } from './client/preview/angular-beta/StorybookModule';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const not = "empty";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const not = "empty";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const not = "empty";
|
|
@@ -3,6 +3,7 @@ import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin';
|
|
|
3
3
|
import { Options as CoreOptions } from '@storybook/core-common';
|
|
4
4
|
export declare type Options = CoreOptions & {
|
|
5
5
|
angularBrowserTarget?: string;
|
|
6
|
+
tsConfig?: string;
|
|
6
7
|
};
|
|
7
8
|
export declare function webpackFinal(baseConfig: webpack.Configuration, options: Options): Promise<webpack.Configuration | {
|
|
8
9
|
entry: any[];
|
|
@@ -2,7 +2,8 @@ import { BuilderOutput } from '@angular-devkit/architect';
|
|
|
2
2
|
import { JsonObject } from '@angular-devkit/core';
|
|
3
3
|
import { CLIOptions } from '@storybook/core-common';
|
|
4
4
|
export declare type StorybookBuilderOptions = JsonObject & {
|
|
5
|
-
browserTarget
|
|
5
|
+
browserTarget?: string | null;
|
|
6
|
+
tsConfig?: string;
|
|
6
7
|
compodoc: boolean;
|
|
7
8
|
compodocArgs: string[];
|
|
8
9
|
} & Pick<CLIOptions, 'staticDir' | 'outputDir' | 'configDir' | 'loglevel' | 'quiet' | 'docs'>;
|
|
@@ -46,6 +46,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
50
|
+
var t = {};
|
|
51
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
52
|
+
t[p] = s[p];
|
|
53
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
54
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
55
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
56
|
+
t[p[i]] = s[p[i]];
|
|
57
|
+
}
|
|
58
|
+
return t;
|
|
59
|
+
};
|
|
49
60
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
61
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
62
|
};
|
|
@@ -56,40 +67,48 @@ var operators_1 = require("rxjs/operators");
|
|
|
56
67
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
57
68
|
var standalone_1 = __importDefault(require("@storybook/angular/standalone"));
|
|
58
69
|
var run_compodoc_1 = require("../utils/run-compodoc");
|
|
70
|
+
var build_standalone_errors_handler_1 = require("../utils/build-standalone-errors-handler");
|
|
59
71
|
exports.default = architect_1.createBuilder(commandBuilder);
|
|
60
72
|
function commandBuilder(options, context) {
|
|
61
73
|
return rxjs_1.from(setup(options, context)).pipe(operators_1.switchMap(function (_a) {
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
? run_compodoc_1.runCompodoc({ compodocArgs: options.compodocArgs, tsconfig:
|
|
74
|
+
var tsConfig = _a.tsConfig;
|
|
75
|
+
var runCompodoc$ = options.compodoc
|
|
76
|
+
? run_compodoc_1.runCompodoc({ compodocArgs: options.compodocArgs, tsconfig: tsConfig }, context).pipe(operators_1.mapTo({ tsConfig: tsConfig }))
|
|
65
77
|
: rxjs_1.of({});
|
|
66
|
-
|
|
78
|
+
return runCompodoc$.pipe(operators_1.mapTo({ tsConfig: tsConfig }));
|
|
79
|
+
}), operators_1.map(function (_a) {
|
|
80
|
+
var tsConfig = _a.tsConfig;
|
|
81
|
+
var browserTarget = options.browserTarget, otherOptions = __rest(options, ["browserTarget"]);
|
|
82
|
+
return __assign(__assign({}, otherOptions), { angularBrowserTarget: browserTarget, tsConfig: tsConfig });
|
|
83
|
+
}), operators_1.switchMap(function (standaloneOptions) { return runInstance(__assign(__assign({}, standaloneOptions), { mode: 'static' })); }), operators_1.map(function () {
|
|
67
84
|
return { success: true };
|
|
68
85
|
}));
|
|
69
86
|
}
|
|
70
87
|
function setup(options, context) {
|
|
88
|
+
var _a, _b;
|
|
71
89
|
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var
|
|
73
|
-
return __generator(this, function (
|
|
74
|
-
switch (
|
|
90
|
+
var browserOptions, browserTarget, _c, _d, _e;
|
|
91
|
+
return __generator(this, function (_f) {
|
|
92
|
+
switch (_f.label) {
|
|
75
93
|
case 0:
|
|
94
|
+
if (!options.browserTarget) return [3 /*break*/, 4];
|
|
76
95
|
browserTarget = architect_1.targetFromTargetString(options.browserTarget);
|
|
77
|
-
|
|
96
|
+
_d = (_c = context).validateOptions;
|
|
78
97
|
return [4 /*yield*/, context.getTargetOptions(browserTarget)];
|
|
79
98
|
case 1:
|
|
80
|
-
|
|
99
|
+
_e = [_f.sent()];
|
|
81
100
|
return [4 /*yield*/, context.getBuilderNameForTarget(browserTarget)];
|
|
82
|
-
case 2: return [4 /*yield*/,
|
|
101
|
+
case 2: return [4 /*yield*/, _d.apply(_c, _e.concat([_f.sent()]))];
|
|
83
102
|
case 3:
|
|
84
|
-
browserOptions =
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
103
|
+
browserOptions = _f.sent();
|
|
104
|
+
_f.label = 4;
|
|
105
|
+
case 4: return [2 /*return*/, {
|
|
106
|
+
tsConfig: (_b = (_a = options.tsConfig) !== null && _a !== void 0 ? _a : browserOptions.tsConfig) !== null && _b !== void 0 ? _b : undefined,
|
|
107
|
+
}];
|
|
89
108
|
}
|
|
90
109
|
});
|
|
91
110
|
});
|
|
92
111
|
}
|
|
93
112
|
function runInstance(options) {
|
|
94
|
-
return rxjs_1.from(standalone_1.default(options));
|
|
113
|
+
return rxjs_1.from(standalone_1.default(options)).pipe(operators_1.catchError(function (error) { return rxjs_1.throwError(build_standalone_errors_handler_1.buildStandaloneErrorHandler(error)); }));
|
|
95
114
|
}
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
"browserTarget": {
|
|
8
8
|
"type": "string",
|
|
9
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]+)?$"
|
|
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."
|
|
11
16
|
},
|
|
12
17
|
"staticDir": {
|
|
13
18
|
"type": "array",
|
|
@@ -56,5 +61,12 @@
|
|
|
56
61
|
}
|
|
57
62
|
},
|
|
58
63
|
"additionalProperties": false,
|
|
59
|
-
"
|
|
64
|
+
"oneOf": [
|
|
65
|
+
{
|
|
66
|
+
"required": ["browserTarget"]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"required": ["tsConfig"]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
60
72
|
}
|
|
@@ -2,7 +2,8 @@ import { BuilderOutput } from '@angular-devkit/architect';
|
|
|
2
2
|
import { JsonObject } from '@angular-devkit/core';
|
|
3
3
|
import { CLIOptions } from '@storybook/core-common';
|
|
4
4
|
export declare type StorybookBuilderOptions = JsonObject & {
|
|
5
|
-
browserTarget
|
|
5
|
+
browserTarget?: string | null;
|
|
6
|
+
tsConfig?: string;
|
|
6
7
|
compodoc: boolean;
|
|
7
8
|
compodocArgs: string[];
|
|
8
9
|
} & Pick<CLIOptions, 'port' | 'host' | 'staticDir' | 'configDir' | 'https' | 'sslCa' | 'sslCert' | 'sslKey' | 'smokeTest' | 'ci' | 'quiet' | 'docs'>;
|
|
@@ -46,6 +46,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
50
|
+
var t = {};
|
|
51
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
52
|
+
t[p] = s[p];
|
|
53
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
54
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
55
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
56
|
+
t[p[i]] = s[p[i]];
|
|
57
|
+
}
|
|
58
|
+
return t;
|
|
59
|
+
};
|
|
49
60
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
61
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
62
|
};
|
|
@@ -56,36 +67,44 @@ var operators_1 = require("rxjs/operators");
|
|
|
56
67
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
57
68
|
var standalone_1 = __importDefault(require("@storybook/angular/standalone"));
|
|
58
69
|
var run_compodoc_1 = require("../utils/run-compodoc");
|
|
70
|
+
var build_standalone_errors_handler_1 = require("../utils/build-standalone-errors-handler");
|
|
59
71
|
exports.default = architect_1.createBuilder(commandBuilder);
|
|
60
72
|
function commandBuilder(options, context) {
|
|
61
73
|
return rxjs_1.from(setup(options, context)).pipe(operators_1.switchMap(function (_a) {
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
? run_compodoc_1.runCompodoc({ compodocArgs: options.compodocArgs, tsconfig:
|
|
74
|
+
var tsConfig = _a.tsConfig;
|
|
75
|
+
var runCompodoc$ = options.compodoc
|
|
76
|
+
? run_compodoc_1.runCompodoc({ compodocArgs: options.compodocArgs, tsconfig: tsConfig }, context).pipe(operators_1.mapTo({ tsConfig: tsConfig }))
|
|
65
77
|
: rxjs_1.of({});
|
|
66
|
-
|
|
78
|
+
return runCompodoc$.pipe(operators_1.mapTo({ tsConfig: tsConfig }));
|
|
79
|
+
}), operators_1.map(function (_a) {
|
|
80
|
+
var tsConfig = _a.tsConfig;
|
|
81
|
+
var browserTarget = options.browserTarget, otherOptions = __rest(options, ["browserTarget"]);
|
|
82
|
+
return __assign(__assign({}, otherOptions), { angularBrowserTarget: browserTarget, tsConfig: tsConfig });
|
|
83
|
+
}), operators_1.switchMap(function (standaloneOptions) { return runInstance(standaloneOptions); }), operators_1.map(function () {
|
|
67
84
|
return { success: true };
|
|
68
85
|
}));
|
|
69
86
|
}
|
|
70
87
|
function setup(options, context) {
|
|
88
|
+
var _a, _b;
|
|
71
89
|
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var
|
|
73
|
-
return __generator(this, function (
|
|
74
|
-
switch (
|
|
90
|
+
var browserOptions, browserTarget, _c, _d, _e;
|
|
91
|
+
return __generator(this, function (_f) {
|
|
92
|
+
switch (_f.label) {
|
|
75
93
|
case 0:
|
|
94
|
+
if (!options.browserTarget) return [3 /*break*/, 4];
|
|
76
95
|
browserTarget = architect_1.targetFromTargetString(options.browserTarget);
|
|
77
|
-
|
|
96
|
+
_d = (_c = context).validateOptions;
|
|
78
97
|
return [4 /*yield*/, context.getTargetOptions(browserTarget)];
|
|
79
98
|
case 1:
|
|
80
|
-
|
|
99
|
+
_e = [_f.sent()];
|
|
81
100
|
return [4 /*yield*/, context.getBuilderNameForTarget(browserTarget)];
|
|
82
|
-
case 2: return [4 /*yield*/,
|
|
101
|
+
case 2: return [4 /*yield*/, _d.apply(_c, _e.concat([_f.sent()]))];
|
|
83
102
|
case 3:
|
|
84
|
-
browserOptions =
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
103
|
+
browserOptions = _f.sent();
|
|
104
|
+
_f.label = 4;
|
|
105
|
+
case 4: return [2 /*return*/, {
|
|
106
|
+
tsConfig: (_b = (_a = options.tsConfig) !== null && _a !== void 0 ? _a : browserOptions.tsConfig) !== null && _b !== void 0 ? _b : undefined,
|
|
107
|
+
}];
|
|
89
108
|
}
|
|
90
109
|
});
|
|
91
110
|
});
|
|
@@ -93,6 +112,6 @@ function setup(options, context) {
|
|
|
93
112
|
function runInstance(options) {
|
|
94
113
|
return new rxjs_1.Observable(function (observer) {
|
|
95
114
|
// This Observable intentionally never complete, leaving the process running ;)
|
|
96
|
-
standalone_1.default(options).then(function () { return observer.next(); }, function (error) { return observer.error(error); });
|
|
115
|
+
standalone_1.default(options).then(function () { return observer.next(); }, function (error) { return observer.error(build_standalone_errors_handler_1.buildStandaloneErrorHandler(error)); });
|
|
97
116
|
});
|
|
98
117
|
}
|
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
"browserTarget": {
|
|
8
8
|
"type": "string",
|
|
9
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]+)?$"
|
|
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."
|
|
11
16
|
},
|
|
12
17
|
"port": {
|
|
13
18
|
"type": "number",
|
|
@@ -83,5 +88,12 @@
|
|
|
83
88
|
}
|
|
84
89
|
},
|
|
85
90
|
"additionalProperties": false,
|
|
86
|
-
"
|
|
91
|
+
"oneOf": [
|
|
92
|
+
{
|
|
93
|
+
"required": ["browserTarget"]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"required": ["tsConfig"]
|
|
97
|
+
}
|
|
98
|
+
]
|
|
87
99
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const buildStandaloneErrorHandler: (error: any) => any;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.buildStandaloneErrorHandler = void 0;
|
|
11
|
+
var node_logger_1 = require("@storybook/node-logger");
|
|
12
|
+
var ts_dedent_1 = __importDefault(require("ts-dedent"));
|
|
13
|
+
exports.buildStandaloneErrorHandler = function (error) {
|
|
14
|
+
var _a;
|
|
15
|
+
// Duplicate code for Standalone error handling
|
|
16
|
+
// Source: https://github.com/storybookjs/storybook/blob/39c7ba09ad84fbd466f9c25d5b92791a5450b9f6/lib/core-server/src/build-dev.ts#L136
|
|
17
|
+
node_logger_1.instance.heading = '';
|
|
18
|
+
if (error instanceof Error) {
|
|
19
|
+
if (error.error) {
|
|
20
|
+
node_logger_1.logger.error(error.error);
|
|
21
|
+
}
|
|
22
|
+
else if (error.stats && error.stats.compilation.errors) {
|
|
23
|
+
error.stats.compilation.errors.forEach(function (e) { return node_logger_1.logger.plain(e); });
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
node_logger_1.logger.error(error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else if ((_a = error.compilation) === null || _a === void 0 ? void 0 : _a.errors) {
|
|
30
|
+
error.compilation.errors.forEach(function (e) { return node_logger_1.logger.plain(e); });
|
|
31
|
+
}
|
|
32
|
+
node_logger_1.logger.line();
|
|
33
|
+
return error.close
|
|
34
|
+
? ts_dedent_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n FATAL broken build!, will close the process,\n Fix the error below and restart storybook.\n "], ["\n FATAL broken build!, will close the process,\n Fix the error below and restart storybook.\n "]))) : ts_dedent_1.default(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n Broken build, fix the error above.\n You may need to refresh the browser.\n "], ["\n Broken build, fix the error above.\n You may need to refresh the browser.\n "])));
|
|
35
|
+
};
|
|
36
|
+
var templateObject_1, templateObject_2;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { PartialStoryFn } from '@storybook/csf';
|
|
2
|
+
import { AngularFramework } from '../types-6-0';
|
|
3
3
|
declare global {
|
|
4
4
|
interface Window {
|
|
5
5
|
NODE_ENV: 'string' | 'development' | undefined;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
export declare const renderNgApp: (storyFn:
|
|
8
|
+
export declare const renderNgApp: (storyFn: PartialStoryFn<AngularFramework>, forced: boolean) => void;
|
|
@@ -28,11 +28,13 @@ export declare abstract class AbstractRenderer {
|
|
|
28
28
|
* @param forced {boolean} If :
|
|
29
29
|
* - true render will only use the StoryFn `props' in storyProps observable that will update sotry's component/template properties. Improves performance without reloading the whole module&component if props changes
|
|
30
30
|
* - false fully recharges or initializes angular module & component
|
|
31
|
+
* @param component {Component}
|
|
31
32
|
* @param parameters {Parameters}
|
|
32
33
|
*/
|
|
33
|
-
render({ storyFnAngular, forced, parameters, targetDOMNode, }: {
|
|
34
|
+
render({ storyFnAngular, forced, parameters, component, targetDOMNode, }: {
|
|
34
35
|
storyFnAngular: StoryFnAngularReturnType;
|
|
35
36
|
forced: boolean;
|
|
37
|
+
component?: any;
|
|
36
38
|
parameters: Parameters;
|
|
37
39
|
targetDOMNode: HTMLElement;
|
|
38
40
|
}): Promise<void>;
|
|
@@ -60,6 +60,7 @@ exports.AbstractRenderer = void 0;
|
|
|
60
60
|
var core_1 = require("@angular/core");
|
|
61
61
|
var platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
|
|
62
62
|
var rxjs_1 = require("rxjs");
|
|
63
|
+
var telejson_1 = require("telejson");
|
|
63
64
|
var StorybookModule_1 = require("./StorybookModule");
|
|
64
65
|
// platform must be init only if render is called at least once
|
|
65
66
|
var platformRef;
|
|
@@ -113,11 +114,12 @@ var AbstractRenderer = /** @class */ (function () {
|
|
|
113
114
|
* @param forced {boolean} If :
|
|
114
115
|
* - true render will only use the StoryFn `props' in storyProps observable that will update sotry's component/template properties. Improves performance without reloading the whole module&component if props changes
|
|
115
116
|
* - false fully recharges or initializes angular module & component
|
|
117
|
+
* @param component {Component}
|
|
116
118
|
* @param parameters {Parameters}
|
|
117
119
|
*/
|
|
118
120
|
AbstractRenderer.prototype.render = function (_a) {
|
|
119
121
|
var _b;
|
|
120
|
-
var storyFnAngular = _a.storyFnAngular, forced = _a.forced, parameters = _a.parameters, targetDOMNode = _a.targetDOMNode;
|
|
122
|
+
var storyFnAngular = _a.storyFnAngular, forced = _a.forced, parameters = _a.parameters, component = _a.component, targetDOMNode = _a.targetDOMNode;
|
|
121
123
|
return __awaiter(this, void 0, void 0, function () {
|
|
122
124
|
var targetSelector, newStoryProps$, moduleMetadata;
|
|
123
125
|
return __generator(this, function (_c) {
|
|
@@ -125,7 +127,7 @@ var AbstractRenderer = /** @class */ (function () {
|
|
|
125
127
|
case 0:
|
|
126
128
|
targetSelector = "" + this.storyId;
|
|
127
129
|
newStoryProps$ = new rxjs_1.BehaviorSubject(storyFnAngular.props);
|
|
128
|
-
moduleMetadata = StorybookModule_1.getStorybookModuleMetadata({ storyFnAngular: storyFnAngular,
|
|
130
|
+
moduleMetadata = StorybookModule_1.getStorybookModuleMetadata({ storyFnAngular: storyFnAngular, component: component, targetSelector: targetSelector }, newStoryProps$);
|
|
129
131
|
if (!this.fullRendererRequired({
|
|
130
132
|
storyFnAngular: storyFnAngular,
|
|
131
133
|
moduleMetadata: moduleMetadata,
|
|
@@ -166,7 +168,7 @@ var AbstractRenderer = /** @class */ (function () {
|
|
|
166
168
|
var previousStoryRenderInfo = this.previousStoryRenderInfo;
|
|
167
169
|
var currentStoryRender = {
|
|
168
170
|
storyFnAngular: storyFnAngular,
|
|
169
|
-
moduleMetadataSnapshot:
|
|
171
|
+
moduleMetadataSnapshot: telejson_1.stringify(moduleMetadata),
|
|
170
172
|
};
|
|
171
173
|
this.previousStoryRenderInfo = currentStoryRender;
|
|
172
174
|
if (
|