UNPKG

1.97 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.componentWrapperDecorator = exports.moduleMetadata = void 0;
4const ComputesTemplateFromComponent_1 = require("./angular-beta/ComputesTemplateFromComponent");
5const NgComponentAnalyzer_1 = require("./angular-beta/utils/NgComponentAnalyzer");
6// We use `any` here as the default type rather than `Args` because we need something that is
7// castable to any component-specific args type when the user is being careful.
8exports.moduleMetadata = (metadata) => (storyFn) => {
9 const story = storyFn();
10 const storyMetadata = story.moduleMetadata || {};
11 metadata = metadata || {};
12 return Object.assign(Object.assign({}, story), { moduleMetadata: {
13 declarations: [...(metadata.declarations || []), ...(storyMetadata.declarations || [])],
14 entryComponents: [
15 ...(metadata.entryComponents || []),
16 ...(storyMetadata.entryComponents || []),
17 ],
18 imports: [...(metadata.imports || []), ...(storyMetadata.imports || [])],
19 schemas: [...(metadata.schemas || []), ...(storyMetadata.schemas || [])],
20 providers: [...(metadata.providers || []), ...(storyMetadata.providers || [])],
21 } });
22};
23exports.componentWrapperDecorator = (element, props) => (storyFn, storyContext) => {
24 const story = storyFn();
25 const currentProps = typeof props === 'function' ? props(storyContext) : props;
26 const template = NgComponentAnalyzer_1.isComponent(element)
27 ? ComputesTemplateFromComponent_1.computesTemplateFromComponent(element, currentProps !== null && currentProps !== void 0 ? currentProps : {}, story.template)
28 : element(story.template);
29 return Object.assign(Object.assign(Object.assign({}, story), { template }), (currentProps || story.props
30 ? {
31 props: Object.assign(Object.assign({}, currentProps), story.props),
32 }
33 : {}));
34};