@storybook/angular 6.4.0-alpha.9 → 6.4.0-beta.11

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.
Files changed (92) hide show
  1. package/dist/ts3.4/builders/build-storybook/index.d.ts +2 -1
  2. package/dist/ts3.4/builders/start-storybook/index.d.ts +2 -1
  3. package/dist/ts3.4/builders/utils/build-standalone-errors-handler.d.ts +1 -0
  4. package/dist/ts3.4/client/preview/angular/helpers.d.ts +3 -3
  5. package/dist/ts3.4/client/preview/angular-beta/AbstractRenderer.d.ts +3 -1
  6. package/dist/ts3.4/client/preview/angular-beta/CanvasRenderer.d.ts +1 -0
  7. package/dist/ts3.4/client/preview/angular-beta/DocsRenderer.d.ts +1 -0
  8. package/dist/ts3.4/client/preview/angular-beta/RendererFactory.d.ts +1 -1
  9. package/dist/ts3.4/client/preview/angular-beta/StorybookModule.d.ts +2 -3
  10. package/dist/ts3.4/client/preview/config.d.ts +4 -0
  11. package/dist/ts3.4/client/preview/decorateStory.d.ts +3 -3
  12. package/dist/ts3.4/client/preview/decorators.d.ts +5 -4
  13. package/dist/ts3.4/client/preview/index.d.ts +3 -2
  14. package/dist/ts3.4/client/preview/render.d.ts +5 -11
  15. package/dist/ts3.4/client/preview/types-6-0.d.ts +25 -9
  16. package/dist/ts3.4/client/preview/types-7-0.d.ts +9 -0
  17. package/dist/ts3.4/client/preview/types.d.ts +2 -1
  18. package/dist/ts3.4/renderer.d.ts +0 -1
  19. package/dist/ts3.4/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +1 -0
  20. package/dist/ts3.4/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +1 -0
  21. package/dist/ts3.4/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +1 -0
  22. package/dist/ts3.4/server/angular-devkit-build-webpack.d.ts +1 -1
  23. package/dist/ts3.4/server/framework-preset-angular-cli.d.ts +1 -0
  24. package/dist/ts3.9/builders/build-storybook/index.d.ts +2 -1
  25. package/dist/ts3.9/builders/build-storybook/index.js +35 -16
  26. package/dist/ts3.9/builders/build-storybook/schema.json +14 -2
  27. package/dist/ts3.9/builders/start-storybook/index.d.ts +2 -1
  28. package/dist/ts3.9/builders/start-storybook/index.js +35 -16
  29. package/dist/ts3.9/builders/start-storybook/schema.json +14 -2
  30. package/dist/ts3.9/builders/utils/build-standalone-errors-handler.d.ts +1 -0
  31. package/dist/ts3.9/builders/utils/build-standalone-errors-handler.js +36 -0
  32. package/dist/ts3.9/client/preview/angular/helpers.d.ts +3 -3
  33. package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.d.ts +3 -1
  34. package/dist/ts3.9/client/preview/angular-beta/AbstractRenderer.js +5 -3
  35. package/dist/ts3.9/client/preview/angular-beta/CanvasRenderer.d.ts +1 -0
  36. package/dist/ts3.9/client/preview/angular-beta/ComputesTemplateFromComponent.js +3 -1
  37. package/dist/ts3.9/client/preview/angular-beta/DocsRenderer.d.ts +1 -0
  38. package/dist/ts3.9/client/preview/angular-beta/RendererFactory.d.ts +1 -1
  39. package/dist/ts3.9/client/preview/angular-beta/RendererFactory.js +6 -0
  40. package/dist/ts3.9/client/preview/angular-beta/StorybookModule.d.ts +2 -3
  41. package/dist/ts3.9/client/preview/angular-beta/StorybookModule.js +2 -2
  42. package/dist/ts3.9/client/preview/angular-beta/utils/NgComponentAnalyzer.js +14 -2
  43. package/dist/ts3.9/client/preview/config.d.ts +4 -0
  44. package/dist/ts3.9/client/preview/config.js +7 -0
  45. package/dist/ts3.9/client/preview/decorateStory.d.ts +3 -3
  46. package/dist/ts3.9/client/preview/decorateStory.js +7 -28
  47. package/dist/ts3.9/client/preview/decorators.d.ts +5 -4
  48. package/dist/ts3.9/client/preview/decorators.js +2 -0
  49. package/dist/ts3.9/client/preview/index.d.ts +3 -2
  50. package/dist/ts3.9/client/preview/index.js +2 -3
  51. package/dist/ts3.9/client/preview/render.d.ts +5 -11
  52. package/dist/ts3.9/client/preview/render.js +10 -9
  53. package/dist/ts3.9/client/preview/types-6-0.d.ts +25 -9
  54. package/dist/ts3.9/client/preview/types-7-0.d.ts +9 -0
  55. package/dist/ts3.9/client/preview/types-7-0.js +2 -0
  56. package/dist/ts3.9/client/preview/types.d.ts +2 -1
  57. package/dist/ts3.9/renderer.d.ts +0 -1
  58. package/dist/ts3.9/renderer.js +0 -2
  59. package/dist/ts3.9/server/__mocks-ng-workspace__/with-angularBrowserTarget/angular.json +32 -0
  60. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/angular.json +28 -0
  61. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.d.ts +1 -0
  62. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/src/main.js +5 -0
  63. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/projects/pattern-lib/tsconfig.lib.json +25 -0
  64. package/dist/ts3.9/server/__mocks-ng-workspace__/with-lib/tsconfig.json +13 -0
  65. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.d.ts +1 -0
  66. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/src/main.js +5 -0
  67. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/projects/pattern-lib/tsconfig.lib.json +25 -0
  68. package/dist/ts3.9/server/__mocks-ng-workspace__/without-projects-entry/tsconfig.json +13 -0
  69. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/angular.json +16 -0
  70. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/main.d.ts +1 -0
  71. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/main.js +5 -0
  72. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/src/tsconfig.app.json +9 -0
  73. package/dist/ts3.9/server/__mocks-ng-workspace__/without-tsConfig/tsconfig.json +13 -0
  74. package/dist/ts3.9/server/angular-devkit-build-webpack.d.ts +1 -1
  75. package/dist/ts3.9/server/angular-devkit-build-webpack.js +20 -10
  76. package/dist/ts3.9/server/build.js +58 -1
  77. package/dist/ts3.9/server/framework-preset-angular-cli.d.ts +1 -0
  78. package/dist/ts3.9/server/framework-preset-angular-cli.js +23 -13
  79. package/package.json +13 -10
  80. package/preset.js +7 -0
  81. package/standalone.d.ts +2 -1
  82. package/dist/ts3.4/client/preview/angular-beta/ElementRendererService.d.ts +0 -17
  83. package/dist/ts3.4/client/preview/angular-beta/RendererService.d.ts +0 -35
  84. package/dist/ts3.4/element-renderer.d.ts +0 -1
  85. package/dist/ts3.9/client/preview/angular-beta/ElementRendererService.d.ts +0 -17
  86. package/dist/ts3.9/client/preview/angular-beta/ElementRendererService.js +0 -115
  87. package/dist/ts3.9/client/preview/angular-beta/RendererService.d.ts +0 -35
  88. package/dist/ts3.9/client/preview/angular-beta/RendererService.js +0 -170
  89. package/dist/ts3.9/element-renderer.d.ts +0 -1
  90. package/dist/ts3.9/element-renderer.js +0 -4
  91. package/element-renderer.d.ts +0 -1
  92. package/element-renderer.js +0 -1
@@ -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, parameters: parameters, targetSelector: targetSelector }, newStoryProps$);
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: JSON.stringify(moduleMetadata),
171
+ moduleMetadataSnapshot: telejson_1.stringify(moduleMetadata),
170
172
  };
171
173
  this.previousStoryRenderInfo = currentStoryRender;
172
174
  if (
@@ -6,6 +6,7 @@ export declare class CanvasRenderer extends AbstractRenderer {
6
6
  storyFnAngular: StoryFnAngularReturnType;
7
7
  forced: boolean;
8
8
  parameters: Parameters;
9
+ component: any;
9
10
  targetDOMNode: HTMLElement;
10
11
  }): Promise<void>;
11
12
  beforeFullRender(): Promise<void>;
@@ -93,7 +93,9 @@ exports.computesTemplateSourceFromComponent = function (component, initialProps,
93
93
  return buildTemplate(ngComponentMetadata.selector, '', templateInputs, templateOutputs);
94
94
  };
95
95
  var buildTemplate = function (selector, innerTemplate, inputs, outputs) {
96
+ var firstSelector = selector.split(',')[0];
96
97
  var templateReplacers = [
98
+ [/(^.*?)(?=[,])/, '$1'],
97
99
  [/(^\..+)/, 'div$1'],
98
100
  [/(^\[.+?])/, 'div$1'],
99
101
  [/([\w[\]]+)(\s*,[\w\s-[\],]+)+/, "$1"],
@@ -105,6 +107,6 @@ var buildTemplate = function (selector, innerTemplate, inputs, outputs) {
105
107
  return templateReplacers.reduce(function (prevSelector, _a) {
106
108
  var searchValue = _a[0], replacer = _a[1];
107
109
  return prevSelector.replace(searchValue, replacer);
108
- }, selector);
110
+ }, firstSelector);
109
111
  };
110
112
  var templateObject_1, templateObject_2;
@@ -5,6 +5,7 @@ export declare class DocsRenderer extends AbstractRenderer {
5
5
  render(options: {
6
6
  storyFnAngular: StoryFnAngularReturnType;
7
7
  forced: boolean;
8
+ component: any;
8
9
  parameters: Parameters;
9
10
  targetDOMNode: HTMLElement;
10
11
  }): Promise<void>;
@@ -3,7 +3,7 @@ declare type RenderType = 'canvas' | 'docs';
3
3
  export declare class RendererFactory {
4
4
  private lastRenderType;
5
5
  private rendererMap;
6
- getRendererInstance(storyId: string, targetDOMNode: HTMLElement): Promise<AbstractRenderer>;
6
+ getRendererInstance(storyId: string, targetDOMNode: HTMLElement): Promise<AbstractRenderer | null>;
7
7
  private buildRenderer;
8
8
  }
9
9
  export declare const getRenderType: (targetDOMNode: HTMLElement) => RenderType;
@@ -50,6 +50,12 @@ var RendererFactory = /** @class */ (function () {
50
50
  return __generator(this, function (_a) {
51
51
  switch (_a.label) {
52
52
  case 0:
53
+ // do nothing if the target node is null
54
+ // fix a problem when the docs asks 2 times the same component at the same time
55
+ // the 1st targetDOMNode of the 1st requested rendering becomes null 🤷‍♂️
56
+ if (targetDOMNode === null) {
57
+ return [2 /*return*/, null];
58
+ }
53
59
  renderType = exports.getRenderType(targetDOMNode);
54
60
  if (!(this.lastRenderType && this.lastRenderType !== renderType)) return [3 /*break*/, 2];
55
61
  return [4 /*yield*/, AbstractRenderer_1.AbstractRenderer.resetPlatformBrowserDynamic()];
@@ -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
- import { Parameters } from '../types-6-0';
5
- export declare const getStorybookModuleMetadata: ({ storyFnAngular, parameters, targetSelector, }: {
4
+ export declare const getStorybookModuleMetadata: ({ storyFnAngular, component: annotatedComponent, targetSelector, }: {
6
5
  storyFnAngular: StoryFnAngularReturnType;
7
- parameters: Parameters;
6
+ component?: any;
8
7
  targetSelector: string;
9
8
  }, storyProps$: Subject<ICollection>) => NgModule;
10
9
  export declare const createStorybookModule: (ngModule: NgModule) => Type<unknown>;
@@ -33,13 +33,13 @@ var ComputesTemplateFromComponent_1 = require("./ComputesTemplateFromComponent")
33
33
  var deprecatedStoryComponentWarning = util_deprecate_1.default(function () { }, ts_dedent_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["`component` story return value is deprecated, and will be removed in Storybook 7.0.\n Instead, use `export const default = () => ({ component: AppComponent });`\n or\n ```\n export const Primary: Story = () => ({});\n Primary.parameters = { component: AppComponent };\n ```\n Read more at \n - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-angular-story-component).\n - https://storybook.js.org/docs/angular/writing-stories/parameters\n "], ["\\`component\\` story return value is deprecated, and will be removed in Storybook 7.0.\n Instead, use \\`export const default = () => ({ component: AppComponent });\\`\n or\n \\`\\`\\`\n export const Primary: Story = () => ({});\n Primary.parameters = { component: AppComponent };\n \\`\\`\\`\n Read more at \n - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-angular-story-component).\n - https://storybook.js.org/docs/angular/writing-stories/parameters\n "]))));
34
34
  exports.getStorybookModuleMetadata = function (_a, storyProps$) {
35
35
  var _b, _c, _d, _e, _f;
36
- var storyFnAngular = _a.storyFnAngular, parameters = _a.parameters, targetSelector = _a.targetSelector;
36
+ var storyFnAngular = _a.storyFnAngular, annotatedComponent = _a.component, targetSelector = _a.targetSelector;
37
37
  var storyComponent = storyFnAngular.component, props = storyFnAngular.props, styles = storyFnAngular.styles, _g = storyFnAngular.moduleMetadata, moduleMetadata = _g === void 0 ? {} : _g;
38
38
  var template = storyFnAngular.template;
39
39
  if (storyComponent) {
40
40
  deprecatedStoryComponentWarning();
41
41
  }
42
- var component = storyComponent !== null && storyComponent !== void 0 ? storyComponent : parameters.component;
42
+ var component = storyComponent !== null && storyComponent !== void 0 ? storyComponent : annotatedComponent;
43
43
  if (hasNoTemplate(template) && component) {
44
44
  template = ComputesTemplateFromComponent_1.computesTemplateFromComponent(component, props, '');
45
45
  }
@@ -45,7 +45,8 @@ exports.getComponentInputsOutputs = function (component) {
45
45
  // Filters properties that have the same name as the one present in the @Component property
46
46
  return Object.entries(componentPropsMetadata).reduce(function (previousValue, _a) {
47
47
  var _b, _c;
48
- var propertyName = _a[0], value = _a[1][0];
48
+ var propertyName = _a[0], values = _a[1];
49
+ var value = values.find(function (v) { return v instanceof core_1.Input || v instanceof core_1.Output; });
49
50
  if (value instanceof core_1.Input) {
50
51
  var inputToAdd = {
51
52
  propName: propertyName,
@@ -96,6 +97,11 @@ exports.getComponentPropsDecoratorMetadata = function (component) {
96
97
  Reflect.getOwnPropertyDescriptor(component, decoratorKey)
97
98
  ? Reflect.getOwnPropertyDescriptor(component, decoratorKey).value
98
99
  : component[decoratorKey];
100
+ var parent = Reflect && Reflect.getPrototypeOf && Reflect.getPrototypeOf(component);
101
+ if (parent) {
102
+ var parentPropsDecorators = exports.getComponentPropsDecoratorMetadata(parent);
103
+ propsDecorators = __assign(__assign({}, parentPropsDecorators), propsDecorators);
104
+ }
99
105
  return propsDecorators;
100
106
  };
101
107
  /**
@@ -108,5 +114,11 @@ exports.getComponentDecoratorMetadata = function (component) {
108
114
  Reflect.getOwnPropertyDescriptor(component, decoratorKey)
109
115
  ? Reflect.getOwnPropertyDescriptor(component, decoratorKey).value
110
116
  : component[decoratorKey];
111
- return (decorators || []).find(function (d) { return d instanceof core_1.Component; });
117
+ if (!decorators) {
118
+ return (component.decorators &&
119
+ component.decorators[0] &&
120
+ component.decorators[0].args &&
121
+ component.decorators[0].args[0]);
122
+ }
123
+ return decorators.find(function (d) { return d instanceof core_1.Component; });
112
124
  };
@@ -0,0 +1,4 @@
1
+ export { render, renderToDOM } from './render';
2
+ export declare const parameters: {
3
+ framework: string;
4
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parameters = void 0;
4
+ var render_1 = require("./render");
5
+ Object.defineProperty(exports, "render", { enumerable: true, get: function () { return render_1.render; } });
6
+ Object.defineProperty(exports, "renderToDOM", { enumerable: true, get: function () { return render_1.renderToDOM; } });
7
+ exports.parameters = { framework: 'angular' };
@@ -1,3 +1,3 @@
1
- import { DecoratorFunction, StoryFn } from '@storybook/addons';
2
- import { StoryFnAngularReturnType } from './types';
3
- export default function decorateStory(mainStoryFn: StoryFn<StoryFnAngularReturnType>, decorators: DecoratorFunction<StoryFnAngularReturnType>[]): StoryFn<StoryFnAngularReturnType>;
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>;
@@ -10,17 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
13
  var __spreadArrays = (this && this.__spreadArrays) || function () {
25
14
  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
26
15
  for (var r = Array(s), k = 0, i = 0; i < il; i++)
@@ -29,23 +18,12 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
29
18
  return r;
30
19
  };
31
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
+ var store_1 = require("@storybook/store");
32
22
  var ComputesTemplateFromComponent_1 = require("./angular-beta/ComputesTemplateFromComponent");
33
- var defaultContext = {
34
- id: 'unspecified',
35
- name: 'unspecified',
36
- kind: 'unspecified',
37
- parameters: {},
38
- args: {},
39
- argTypes: {},
40
- globals: {},
41
- };
42
23
  function decorateStory(mainStoryFn, decorators) {
43
24
  var returnDecorators = __spreadArrays([cleanArgsDecorator], decorators).reduce(function (previousStoryFn, decorator) { return function (context) {
44
- if (context === void 0) { context = defaultContext; }
45
- var decoratedStory = decorator(function (_a) {
46
- if (_a === void 0) { _a = {}; }
47
- var parameters = _a.parameters, innerContext = __rest(_a, ["parameters"]);
48
- return previousStoryFn(__assign(__assign({}, context), innerContext));
25
+ var decoratedStory = decorator(function (update) {
26
+ return previousStoryFn(__assign(__assign({}, context), store_1.sanitizeStoryContextUpdate(update)));
49
27
  }, context);
50
28
  return decoratedStory;
51
29
  }; }, function (context) { return prepareMain(mainStoryFn(context), context); });
@@ -55,11 +33,12 @@ exports.default = decorateStory;
55
33
  var prepareMain = function (story, context) {
56
34
  var _a;
57
35
  var template = story.template;
58
- var component = (_a = story.component) !== null && _a !== void 0 ? _a : context.parameters.component;
59
- if (hasNoTemplate(template) && component) {
36
+ var component = (_a = story.component) !== null && _a !== void 0 ? _a : context.component;
37
+ var userDefinedTemplate = !hasNoTemplate(template);
38
+ if (!userDefinedTemplate && component) {
60
39
  template = ComputesTemplateFromComponent_1.computesTemplateFromComponent(component, story.props, '');
61
40
  }
62
- return __assign(__assign({}, story), (template ? { template: template } : {}));
41
+ return __assign(__assign({}, story), (template ? { template: template, userDefinedTemplate: userDefinedTemplate } : {}));
63
42
  };
64
43
  function hasNoTemplate(template) {
65
44
  return template === null || template === undefined;
@@ -1,5 +1,6 @@
1
1
  import { Type } from '@angular/core';
2
- import { DecoratorFunction, StoryContext } from '@storybook/addons';
3
- import { ICollection, NgModuleMetadata, StoryFnAngularReturnType } from './types';
4
- export declare const moduleMetadata: (metadata: Partial<NgModuleMetadata>) => DecoratorFunction<StoryFnAngularReturnType>;
5
- export declare const componentWrapperDecorator: (element: Type<unknown> | ((story: string) => string), props?: ICollection | ((storyContext: StoryContext) => ICollection)) => DecoratorFunction<StoryFnAngularReturnType>;
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: <TArgs = any>(metadata: Partial<NgModuleMetadata>) => DecoratorFunction<AngularFramework, TArgs>;
6
+ export declare const componentWrapperDecorator: <TArgs = any>(element: Type<unknown> | ((story: string) => string), props?: ICollection | ((storyContext: StoryContext<AngularFramework, TArgs>) => ICollection)) => DecoratorFunction<AngularFramework, TArgs>;
@@ -21,6 +21,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.componentWrapperDecorator = exports.moduleMetadata = void 0;
22
22
  var ComputesTemplateFromComponent_1 = require("./angular-beta/ComputesTemplateFromComponent");
23
23
  var NgComponentAnalyzer_1 = require("./angular-beta/utils/NgComponentAnalyzer");
24
+ // We use `any` here as the default type rather than `Args` because we need something that is
25
+ // castable to any component-specific args type when the user is being careful.
24
26
  exports.moduleMetadata = function (metadata) { return function (storyFn) {
25
27
  var story = storyFn();
26
28
  var storyMetadata = story.moduleMetadata || {};
@@ -2,8 +2,9 @@
2
2
  /// <reference types="node" />
3
3
  import { ClientStoryApi, Loadable } from '@storybook/addons';
4
4
  import './globals';
5
- import { IStorybookSection, StoryFnAngularReturnType } from './types';
6
- interface ClientApi extends ClientStoryApi<StoryFnAngularReturnType> {
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[];
@@ -11,13 +11,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.raw = exports.getStorybook = exports.forceReRender = exports.setAddon = exports.clearDecorators = exports.addParameters = exports.addDecorator = exports.configure = exports.storiesOf = void 0;
14
- /* eslint-disable prefer-destructuring */
15
14
  var client_1 = require("@storybook/core/client");
16
15
  require("./globals");
17
- var render_1 = __importDefault(require("./render"));
16
+ var render_1 = require("./render");
18
17
  var decorateStory_1 = __importDefault(require("./decorateStory"));
19
18
  var framework = 'angular';
20
- var api = client_1.start(render_1.default, { decorateStory: decorateStory_1.default });
19
+ var api = client_1.start(render_1.renderToDOM, { decorateStory: decorateStory_1.default, render: render_1.render });
21
20
  exports.storiesOf = function (kind, m) {
22
21
  return api.clientApi.storiesOf(kind, m).addParameters({
23
22
  framework: framework,
@@ -1,13 +1,7 @@
1
- import { StoryFn } from '@storybook/addons';
2
- import { StoryFnAngularReturnType } from './types';
3
- import { Parameters } from './types-6-0';
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 default function renderMain({ storyFn, showMain, forceRender, parameters, targetDOMNode, id, }: {
7
- storyFn: StoryFn<StoryFnAngularReturnType>;
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>;
@@ -36,13 +36,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.rendererFactory = void 0;
39
+ exports.renderToDOM = exports.render = exports.rendererFactory = void 0;
40
40
  var helpers_1 = require("./angular/helpers");
41
41
  var RendererFactory_1 = require("./angular-beta/RendererFactory");
42
- var rootElement = global.document.getElementById('root');
43
42
  exports.rendererFactory = new RendererFactory_1.RendererFactory();
44
- function renderMain(_a) {
45
- var storyFn = _a.storyFn, showMain = _a.showMain, forceRender = _a.forceRender, parameters = _a.parameters, _b = _a.targetDOMNode, targetDOMNode = _b === void 0 ? rootElement : _b, id = _a.id;
43
+ exports.render = function (props) { return ({ props: props }); };
44
+ function renderToDOM(_a, element) {
45
+ var storyFn = _a.storyFn, showMain = _a.showMain, forceRemount = _a.forceRemount, _b = _a.storyContext, parameters = _b.parameters, component = _b.component, id = _a.id;
46
46
  return __awaiter(this, void 0, void 0, function () {
47
47
  var renderer;
48
48
  return __generator(this, function (_c) {
@@ -50,17 +50,18 @@ function renderMain(_a) {
50
50
  case 0:
51
51
  showMain();
52
52
  if (parameters.angularLegacyRendering) {
53
- helpers_1.renderNgApp(storyFn, forceRender);
53
+ helpers_1.renderNgApp(storyFn, !forceRemount);
54
54
  return [2 /*return*/];
55
55
  }
56
- return [4 /*yield*/, exports.rendererFactory.getRendererInstance(id, targetDOMNode)];
56
+ return [4 /*yield*/, exports.rendererFactory.getRendererInstance(id, element)];
57
57
  case 1:
58
58
  renderer = _c.sent();
59
59
  return [4 /*yield*/, renderer.render({
60
60
  storyFnAngular: storyFn(),
61
+ component: component,
61
62
  parameters: parameters,
62
- forced: forceRender,
63
- targetDOMNode: targetDOMNode,
63
+ forced: !forceRemount,
64
+ targetDOMNode: element,
64
65
  })];
65
66
  case 2:
66
67
  _c.sent();
@@ -69,4 +70,4 @@ function renderMain(_a) {
69
70
  });
70
71
  });
71
72
  }
72
- exports.default = renderMain;
73
+ exports.renderToDOM = renderToDOM;
@@ -1,26 +1,42 @@
1
- import { Args as DefaultArgs, Annotations, BaseMeta, BaseStory, Parameters as DefaultParameters, StoryContext as DefaultStoryContext } from '@storybook/addons';
1
+ import { Args, Parameters as DefaultParameters, StoryContext as DefaultStoryContext, ComponentAnnotations, StoryAnnotations, AnnotatedStoryFn } from '@storybook/csf';
2
2
  import { StoryFnAngularReturnType } from './types';
3
- export type { Args, ArgTypes } from '@storybook/addons';
4
- declare type AngularComponent = any;
5
- declare type AngularReturnType = StoryFnAngularReturnType;
3
+ export type { 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<Args = DefaultArgs> = BaseMeta<AngularComponent> & Annotations<Args, AngularReturnType>;
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 Story<Args = DefaultArgs> = BaseStory<Args, AngularReturnType> & Annotations<Args, AngularReturnType>;
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 type { StoryObj } from './types-6-0';
3
+ export type { 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>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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
  }
@@ -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';
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var ComputesTemplateFromComponent_1 = require("./client/preview/angular-beta/ComputesTemplateFromComponent");
4
4
  Object.defineProperty(exports, "computesTemplateSourceFromComponent", { enumerable: true, get: function () { return ComputesTemplateFromComponent_1.computesTemplateSourceFromComponent; } });
5
- var RendererService_1 = require("./client/preview/angular-beta/RendererService");
6
- Object.defineProperty(exports, "RendererService", { enumerable: true, get: function () { return RendererService_1.RendererService; } });
7
5
  var render_1 = require("./client/preview/render");
8
6
  Object.defineProperty(exports, "rendererFactory", { enumerable: true, get: function () { return render_1.rendererFactory; } });
9
7
  var AbstractRenderer_1 = require("./client/preview/angular-beta/AbstractRenderer");
@@ -12,6 +12,33 @@
12
12
  }
13
13
  }
14
14
  },
15
+ "no-confs-project": {
16
+ "root": "",
17
+ "architect": {
18
+ "target-build": {
19
+ "options": {
20
+ "tsConfig": "src/tsconfig.app.json",
21
+ "assets": []
22
+ }
23
+ }
24
+ }
25
+ },
26
+ "no-target-conf-project": {
27
+ "root": "",
28
+ "architect": {
29
+ "target-build": {
30
+ "options": {
31
+ "tsConfig": "src/tsconfig.app.json",
32
+ "assets": []
33
+ },
34
+ "configurations": {
35
+ "other-conf": {
36
+ "styles": ["src/styles.css"]
37
+ }
38
+ }
39
+ }
40
+ }
41
+ },
15
42
  "target-project": {
16
43
  "root": "",
17
44
  "architect": {
@@ -19,6 +46,11 @@
19
46
  "options": {
20
47
  "tsConfig": "src/tsconfig.app.json",
21
48
  "assets": []
49
+ },
50
+ "configurations": {
51
+ "target-conf": {
52
+ "styles": ["src/styles.css"]
53
+ }
22
54
  }
23
55
  }
24
56
  }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
+ "version": 1,
4
+ "newProjectRoot": "projects",
5
+ "projects": {
6
+ "pattern-lib": {
7
+ "projectType": "library",
8
+ "root": "projects/pattern-lib",
9
+ "sourceRoot": "projects/pattern-lib/src",
10
+ "prefix": "lib",
11
+ "architect": {
12
+ "build": {
13
+ "builder": "@angular-devkit/build-angular:ng-packagr",
14
+ "options": {
15
+ "tsConfig": "projects/pattern-lib/tsconfig.lib.json",
16
+ "project": "projects/pattern-lib/ng-package.json"
17
+ },
18
+ "configurations": {
19
+ "production": {
20
+ "tsConfig": "projects/pattern-lib/tsconfig.lib.prod.json"
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
26
+ },
27
+ "defaultProject": "pattern-lib"
28
+ }
@@ -0,0 +1 @@
1
+ export declare const not = "empty";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.not = void 0;
4
+ // To avoid "No inputs were found in config file" tsc error
5
+ exports.not = 'empty';
@@ -0,0 +1,25 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "target": "es2015",
7
+ "declaration": true,
8
+ "declarationMap": true,
9
+ "inlineSources": true,
10
+ "types": [],
11
+ "lib": [
12
+ "dom",
13
+ "es2018"
14
+ ]
15
+ },
16
+ "angularCompilerOptions": {
17
+ "skipTemplateCodegen": true,
18
+ "strictMetadataEmit": true,
19
+ "enableResourceInlining": true
20
+ },
21
+ "exclude": [
22
+ "src/test.ts",
23
+ "**/*.spec.ts"
24
+ ]
25
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "sourceMap": true,
4
+ "moduleResolution": "node",
5
+ "emitDecoratorMetadata": true,
6
+ "experimentalDecorators": true,
7
+ "allowSyntheticDefaultImports": true,
8
+ "esModuleInterop": true,
9
+ "skipLibCheck": true,
10
+ "target": "es5",
11
+ "lib": ["es2017", "dom"]
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.not = void 0;
4
+ // To avoid "No inputs were found in config file" tsc error
5
+ exports.not = 'empty';