UNPKG

@storybook/angular

Version:

Storybook for Angular: Develop, document, and test UI components in isolation

78 lines (73 loc) 2.66 kB
import { computesTemplateFromComponent, formatPropInTemplate, isComponent, render_exports } from "./chunk-6CHBWP5J.js"; // src/client/portable-stories.ts import { setProjectAnnotations as originalSetProjectAnnotations, setDefaultProjectAnnotations } from "storybook/preview-api"; function setProjectAnnotations(projectAnnotations) { return setDefaultProjectAnnotations(render_exports), originalSetProjectAnnotations( projectAnnotations ); } // src/client/decorators.ts var moduleMetadata = (metadata) => (storyFn) => { let story = storyFn(), storyMetadata = story.moduleMetadata || {}; return metadata = metadata || {}, { ...story, moduleMetadata: { declarations: [...metadata.declarations || [], ...storyMetadata.declarations || []], entryComponents: [ ...metadata.entryComponents || [], ...storyMetadata.entryComponents || [] ], imports: [...metadata.imports || [], ...storyMetadata.imports || []], schemas: [...metadata.schemas || [], ...storyMetadata.schemas || []], providers: [...metadata.providers || [], ...storyMetadata.providers || []] } }; }; function applicationConfig(config) { return (storyFn) => { let story = storyFn(), storyConfig = story.applicationConfig; return { ...story, applicationConfig: storyConfig || config ? { ...config, ...storyConfig, providers: [...config?.providers || [], ...storyConfig?.providers || []] } : void 0 }; }; } var componentWrapperDecorator = (element, props) => (storyFn, storyContext) => { let story = storyFn(), currentProps = typeof props == "function" ? props(storyContext) : props, template = isComponent(element) ? computesTemplateFromComponent(element, currentProps ?? {}, story.template) : element(story.template); return { ...story, template, ...currentProps || story.props ? { props: { ...currentProps, ...story.props } } : {} }; }; // src/client/argsToTemplate.ts function argsToTemplate(args, options = {}) { let includeSet = options.include ? new Set(options.include) : null, excludeSet = options.exclude ? new Set(options.exclude) : null; return Object.entries(args).filter(([key]) => args[key] !== void 0).filter(([key]) => includeSet ? includeSet.has(key) : excludeSet ? !excludeSet.has(key) : !0).map( ([key, value]) => typeof value == "function" ? `(${key})="${formatPropInTemplate(key)}($event)"` : `[${key}]="${formatPropInTemplate(key)}"` ).join(" "); } export { setProjectAnnotations, moduleMetadata, applicationConfig, componentWrapperDecorator, argsToTemplate };