1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.decorateStory = void 0;
|
4 | const store_1 = require("@storybook/store");
|
5 | const ComputesTemplateFromComponent_1 = require("./angular-beta/ComputesTemplateFromComponent");
|
6 | function decorateStory(mainStoryFn, decorators) {
|
7 | const returnDecorators = [cleanArgsDecorator, ...decorators].reduce((previousStoryFn, decorator) => (context) => {
|
8 | const decoratedStory = decorator((update) => {
|
9 | return previousStoryFn(Object.assign(Object.assign({}, context), store_1.sanitizeStoryContextUpdate(update)));
|
10 | }, context);
|
11 | return decoratedStory;
|
12 | }, (context) => prepareMain(mainStoryFn(context), context));
|
13 | return returnDecorators;
|
14 | }
|
15 | exports.default = decorateStory;
|
16 | exports.decorateStory = decorateStory;
|
17 | const prepareMain = (story, context) => {
|
18 | var _a;
|
19 | let { template } = story;
|
20 | const component = (_a = story.component) !== null && _a !== void 0 ? _a : context.component;
|
21 | const userDefinedTemplate = !hasNoTemplate(template);
|
22 | if (!userDefinedTemplate && component) {
|
23 | template = ComputesTemplateFromComponent_1.computesTemplateFromComponent(component, story.props, '');
|
24 | }
|
25 | return Object.assign(Object.assign({}, story), (template ? { template, userDefinedTemplate } : {}));
|
26 | };
|
27 | function hasNoTemplate(template) {
|
28 | return template === null || template === undefined;
|
29 | }
|
30 | const cleanArgsDecorator = (storyFn, context) => {
|
31 | if (!context.argTypes || !context.args) {
|
32 | return storyFn();
|
33 | }
|
34 | const argsToClean = context.args;
|
35 | context.args = Object.entries(argsToClean).reduce((obj, [key, arg]) => {
|
36 | const argType = context.argTypes[key];
|
37 |
|
38 | if (argType.action || argType.control) {
|
39 | return Object.assign(Object.assign({}, obj), { [key]: arg });
|
40 | }
|
41 | return obj;
|
42 | }, {});
|
43 | return storyFn();
|
44 | };
|