1 | "use strict";
|
2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7 | };
|
8 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
9 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
10 | };
|
11 | Object.defineProperty(exports, "__esModule", { value: true });
|
12 | exports.createStorybookModule = exports.getStorybookModuleMetadata = void 0;
|
13 | const core_1 = require("@angular/core");
|
14 | const platform_browser_1 = require("@angular/platform-browser");
|
15 | const ts_dedent_1 = __importDefault(require("ts-dedent"));
|
16 | const util_deprecate_1 = __importDefault(require("util-deprecate"));
|
17 | const StorybookProvider_1 = require("./StorybookProvider");
|
18 | const NgModulesAnalyzer_1 = require("./utils/NgModulesAnalyzer");
|
19 | const NgComponentAnalyzer_1 = require("./utils/NgComponentAnalyzer");
|
20 | const StorybookWrapperComponent_1 = require("./StorybookWrapperComponent");
|
21 | const ComputesTemplateFromComponent_1 = require("./ComputesTemplateFromComponent");
|
22 | const deprecatedStoryComponentWarning = util_deprecate_1.default(() => { }, ts_dedent_1.default `\`component\` story return value is deprecated, and will be removed in Storybook 7.0.
|
23 | Instead, use \`export const default = () => ({ component: AppComponent });\`
|
24 | or
|
25 | \`\`\`
|
26 | export const Primary: Story = () => ({});
|
27 | Primary.parameters = { component: AppComponent };
|
28 | \`\`\`
|
29 | Read more at
|
30 | - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-angular-story-component).
|
31 | - https://storybook.js.org/docs/angular/writing-stories/parameters
|
32 | `);
|
33 | exports.getStorybookModuleMetadata = ({ storyFnAngular, component: annotatedComponent, targetSelector, }, storyProps$) => {
|
34 | var _a, _b, _c, _d, _e;
|
35 | const { component: storyComponent, props, styles, moduleMetadata = {} } = storyFnAngular;
|
36 | let { template } = storyFnAngular;
|
37 | if (storyComponent) {
|
38 | deprecatedStoryComponentWarning();
|
39 | }
|
40 | const component = storyComponent !== null && storyComponent !== void 0 ? storyComponent : annotatedComponent;
|
41 | if (hasNoTemplate(template) && component) {
|
42 | template = ComputesTemplateFromComponent_1.computesTemplateFromComponent(component, props, '');
|
43 | }
|
44 | |
45 |
|
46 |
|
47 | const ComponentToInject = StorybookWrapperComponent_1.createStorybookWrapperComponent(targetSelector, template, component, styles, props);
|
48 | const isStandalone = NgComponentAnalyzer_1.isStandaloneComponent(component);
|
49 |
|
50 | const requiresComponentDeclaration = NgComponentAnalyzer_1.isDeclarable(component) &&
|
51 | !NgModulesAnalyzer_1.isComponentAlreadyDeclaredInModules(component, moduleMetadata.declarations, moduleMetadata.imports) &&
|
52 | !isStandalone;
|
53 | return {
|
54 | declarations: [
|
55 | ...(requiresComponentDeclaration ? [component] : []),
|
56 | ComponentToInject,
|
57 | ...((_a = moduleMetadata.declarations) !== null && _a !== void 0 ? _a : []),
|
58 | ],
|
59 | imports: [
|
60 | platform_browser_1.BrowserModule,
|
61 | ...(isStandalone ? [component] : []),
|
62 | ...((_b = moduleMetadata.imports) !== null && _b !== void 0 ? _b : []),
|
63 | ],
|
64 | providers: [StorybookProvider_1.storyPropsProvider(storyProps$), ...((_c = moduleMetadata.providers) !== null && _c !== void 0 ? _c : [])],
|
65 | entryComponents: [...((_d = moduleMetadata.entryComponents) !== null && _d !== void 0 ? _d : [])],
|
66 | schemas: [...((_e = moduleMetadata.schemas) !== null && _e !== void 0 ? _e : [])],
|
67 | bootstrap: [ComponentToInject],
|
68 | };
|
69 | };
|
70 | exports.createStorybookModule = (ngModule) => {
|
71 | let StorybookModule = class StorybookModule {
|
72 | };
|
73 | StorybookModule = __decorate([
|
74 | core_1.NgModule(ngModule)
|
75 | ], StorybookModule);
|
76 | return StorybookModule;
|
77 | };
|
78 | function hasNoTemplate(template) {
|
79 | return template === null || template === undefined;
|
80 | }
|