UNPKG

@storybook/svelte

Version:
6 lines (4 loc) • 8.5 kB
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var config_exports={};__export(config_exports,{applyDecorators:()=>decorateStory,argTypesEnhancers:()=>argTypesEnhancers,decorators:()=>decorators,parameters:()=>parameters2,render:()=>render,renderToCanvas:()=>renderToCanvas});module.exports=__toCommonJS(config_exports);var import_docs_tools2=require("@storybook/docs-tools");var import_client_logger=require("@storybook/client-logger");function hasKeyword(keyword,keywords){return keywords?keywords.find(k=>k.name===keyword)!=null:!1}var extractArgTypes=component=>{try{let docgen=component.__docgen;if(docgen)return createArgTypes(docgen)}catch(err){import_client_logger.logger.log(`Error extracting argTypes: ${err}`)}return{}},createArgTypes=docgen=>{let results={};return docgen.data&&docgen.data.forEach(item=>{var _a,_b;results[item.name]={control:parseTypeToControl(item.type),name:item.name,description:item.description||void 0,type:{required:hasKeyword("required",item.keywords||[]),name:(_a=item.type)==null?void 0:_a.text},table:{type:{summary:(_b=item.type)==null?void 0:_b.text},defaultValue:{summary:item.defaultValue},category:"properties"}}}),docgen.events&&docgen.events.forEach(item=>{results[`event_${item.name}`]={name:item.name,action:item.name,control:!1,...item.description?{description:item.description}:{},table:{category:"events"}}}),docgen.slots&&docgen.slots.forEach(item=>{var _a;results[`slot_${item.name}`]={name:item.name,control:!1,description:[item.description,(_a=item.params)==null?void 0:_a.map(p=>`\`${p.name}\``).join(" ")].filter(p=>p).join(` `),table:{category:"slots"}}}),results},parseTypeToControl=type=>{if(!type)return null;if(type.kind==="type")switch(type.type){case"string":return{type:"text"};case"enum":return{type:"radio"};case"any":return{type:"object"};default:return{type:type.type}}else if(type.kind==="union"&&Array.isArray(type.type)&&!type.type.find(t=>t.type!=="string"))return{type:"radio",options:type.type.filter(t=>t.kind==="const").map(t=>t.value)};return null};function extractComponentDescription(component){if(!component)return"";let{__docgen={}}=component;return __docgen.description}var import_preview_api=require("@storybook/preview-api"),import_client_logger2=require("@storybook/client-logger"),import_docs_tools=require("@storybook/docs-tools"),skipSourceRender=context=>{var _a;let sourceParams=(_a=context==null?void 0:context.parameters.docs)==null?void 0:_a.source,isArgsStory=context==null?void 0:context.parameters.__isArgsStory;return(sourceParams==null?void 0:sourceParams.type)===import_docs_tools.SourceType.DYNAMIC?!1:!isArgsStory||(sourceParams==null?void 0:sourceParams.code)||(sourceParams==null?void 0:sourceParams.type)===import_docs_tools.SourceType.CODE};function toSvelteProperty(key,value,argTypes){return value==null||argTypes[key]&&argTypes[key].defaultValue===value?null:value===!0?key:typeof value=="string"?`${key}=${JSON.stringify(value)}`:`${key}={${JSON.stringify(value)}}`}function getComponentName(component){if(component==null)return null;let{__docgen={}}=component,{name}=__docgen;return name?(name.endsWith(".svelte")&&(name=name.substring(0,name.length-7)),name):component.name}function generateSvelteSource(component,args,argTypes,slotProperty){let name=getComponentName(component);if(!name)return null;let props=Object.entries(args).filter(([k])=>k!==slotProperty).map(([k,v])=>toSvelteProperty(k,v,argTypes)).filter(p=>p).join(" "),slotValue=slotProperty?args[slotProperty]:null;return slotValue?`<${name} ${props}> ${slotValue} </${name}>`:`<${name} ${props}/>`}function getWrapperProperties(component){let{__docgen}=component;if(!__docgen)return{wrapper:!1};if(!__docgen.keywords.find(kw=>kw.name==="wrapper"))return{wrapper:!1};let slotProp=__docgen.data.find(prop=>prop.keywords.find(kw=>kw.name==="slot"));return{wrapper:!0,slotProperty:slotProp==null?void 0:slotProp.name}}var sourceDecorator=(storyFn,context)=>{let channel=import_preview_api.addons.getChannel(),skip=skipSourceRender(context),story=storyFn(),source;if((0,import_preview_api.useEffect)(()=>{if(!skip&&source){let{id,unmappedArgs}=context;channel.emit(import_docs_tools.SNIPPET_RENDERED,{id,args:unmappedArgs,source})}}),skip)return story;let{parameters:parameters3={},args={},component:ctxtComponent}=context||{},{Component:component={}}=story,{wrapper,slotProperty}=getWrapperProperties(component);wrapper&&(parameters3.component&&(0,import_client_logger2.deprecate)("parameters.component is deprecated. Using context.component instead."),component=ctxtComponent);let generated=generateSvelteSource(component,args,context==null?void 0:context.argTypes,slotProperty);return generated&&(source=generated),story};var parameters={docs:{story:{inline:!0},extractArgTypes,extractComponentDescription}},decorators=[sourceDecorator],argTypesEnhancers=[import_docs_tools2.enhanceArgTypes];var import_core_events=require("@storybook/core-events"),import_PreviewRender=__toESM(require("@storybook/svelte/templates/PreviewRender.svelte")),import_preview_api2=require("@storybook/preview-api"),componentsByDomElement=new Map;function teardown(canvasElement){componentsByDomElement.has(canvasElement)&&(componentsByDomElement.get(canvasElement).$destroy(),canvasElement.innerHTML="",componentsByDomElement.delete(canvasElement))}var storyIdsToRemountFromResetArgsEvent=new Set;import_preview_api2.addons.getChannel().on(import_core_events.RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId)});function renderToCanvas({storyFn,kind,name,showMain,showError,storyContext,forceRemount},canvasElement){let existingComponent=componentsByDomElement.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&teardown(canvasElement),!existingComponent||remount){let createdComponent=new import_PreviewRender.default({target:canvasElement,props:{storyFn,storyContext,name,kind,showError}});componentsByDomElement.set(canvasElement,createdComponent)}else existingComponent.$set({storyFn,storyContext,name,kind,showError});return showMain(),()=>{teardown(canvasElement)}}var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return{Component,props:args}};var import_preview_api3=require("@storybook/preview-api"),import_SlotDecorator=__toESM(require("@storybook/svelte/templates/SlotDecorator.svelte"));function unWrap(obj){return obj&&typeof obj=="object"&&"default"in obj?obj.default:obj}function prepareStory(context,rawStory,rawInnerStory){let story=unWrap(rawStory),innerStory=rawInnerStory&&unWrap(rawInnerStory),preparedStory;return!story||Object.keys(story).length===0?preparedStory={Component:context.component}:story.Component?preparedStory=story:preparedStory={Component:story},innerStory?{Component:import_SlotDecorator.default,props:{...innerStory,decorator:preparedStory}}:preparedStory}function decorateStory(storyFn,decorators2){return decorators2.reduce((decorated,decorator)=>context=>{let story,decoratedStory=decorator(update=>(story=decorated({...context,...(0,import_preview_api3.sanitizeStoryContextUpdate)(update)}),story),context);return story||(story=decorated(context)),decoratedStory===story?story:prepareStory(context,decoratedStory,story)},context=>prepareStory(context,storyFn(context)))}var parameters2={renderer:"svelte",...parameters};0&&(module.exports={applyDecorators,argTypesEnhancers,decorators,parameters,render,renderToCanvas});