UNPKG

10.4 kBJavaScriptView Raw
1import { once } from '@storybook/client-logger';
2import memoize from 'memoizerific';
3import qs from 'qs';
4
5var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __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));var require_freeGlobal=__commonJS({"../../node_modules/lodash/_freeGlobal.js"(exports,module){var freeGlobal=typeof global=="object"&&global&&global.Object===Object&&global;module.exports=freeGlobal;}});var require_root=__commonJS({"../../node_modules/lodash/_root.js"(exports,module){var freeGlobal=require_freeGlobal(),freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")();module.exports=root;}});var require_Symbol=__commonJS({"../../node_modules/lodash/_Symbol.js"(exports,module){var root=require_root(),Symbol2=root.Symbol;module.exports=Symbol2;}});var require_getRawTag=__commonJS({"../../node_modules/lodash/_getRawTag.js"(exports,module){var Symbol2=require_Symbol(),objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=Symbol2?Symbol2.toStringTag:void 0;function getRawTag(value){var isOwn=hasOwnProperty.call(value,symToStringTag),tag=value[symToStringTag];try{value[symToStringTag]=void 0;var unmasked=!0;}catch{}var result=nativeObjectToString.call(value);return unmasked&&(isOwn?value[symToStringTag]=tag:delete value[symToStringTag]),result}module.exports=getRawTag;}});var require_objectToString=__commonJS({"../../node_modules/lodash/_objectToString.js"(exports,module){var objectProto=Object.prototype,nativeObjectToString=objectProto.toString;function objectToString(value){return nativeObjectToString.call(value)}module.exports=objectToString;}});var require_baseGetTag=__commonJS({"../../node_modules/lodash/_baseGetTag.js"(exports,module){var Symbol2=require_Symbol(),getRawTag=require_getRawTag(),objectToString=require_objectToString(),nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol2?Symbol2.toStringTag:void 0;function baseGetTag(value){return value==null?value===void 0?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(value)?getRawTag(value):objectToString(value)}module.exports=baseGetTag;}});var require_overArg=__commonJS({"../../node_modules/lodash/_overArg.js"(exports,module){function overArg(func,transform){return function(arg){return func(transform(arg))}}module.exports=overArg;}});var require_getPrototype=__commonJS({"../../node_modules/lodash/_getPrototype.js"(exports,module){var overArg=require_overArg(),getPrototype=overArg(Object.getPrototypeOf,Object);module.exports=getPrototype;}});var require_isObjectLike=__commonJS({"../../node_modules/lodash/isObjectLike.js"(exports,module){function isObjectLike(value){return value!=null&&typeof value=="object"}module.exports=isObjectLike;}});var require_isPlainObject=__commonJS({"../../node_modules/lodash/isPlainObject.js"(exports,module){var baseGetTag=require_baseGetTag(),getPrototype=require_getPrototype(),isObjectLike=require_isObjectLike(),objectTag="[object Object]",funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject2(value){if(!isObjectLike(value)||baseGetTag(value)!=objectTag)return !1;var proto=getPrototype(value);if(proto===null)return !0;var Ctor=hasOwnProperty.call(proto,"constructor")&&proto.constructor;return typeof Ctor=="function"&&Ctor instanceof Ctor&&funcToString.call(Ctor)==objectCtorString}module.exports=isPlainObject2;}});var has=Object.prototype.hasOwnProperty;function find(iter,tar,key){for(key of iter.keys())if(dequal(key,tar))return key}function dequal(foo,bar){var ctor,len,tmp;if(foo===bar)return !0;if(foo&&bar&&(ctor=foo.constructor)===bar.constructor){if(ctor===Date)return foo.getTime()===bar.getTime();if(ctor===RegExp)return foo.toString()===bar.toString();if(ctor===Array){if((len=foo.length)===bar.length)for(;len--&&dequal(foo[len],bar[len]););return len===-1}if(ctor===Set){if(foo.size!==bar.size)return !1;for(len of foo)if(tmp=len,tmp&&typeof tmp=="object"&&(tmp=find(bar,tmp),!tmp)||!bar.has(tmp))return !1;return !0}if(ctor===Map){if(foo.size!==bar.size)return !1;for(len of foo)if(tmp=len[0],tmp&&typeof tmp=="object"&&(tmp=find(bar,tmp),!tmp)||!dequal(len[1],bar.get(tmp)))return !1;return !0}if(ctor===ArrayBuffer)foo=new Uint8Array(foo),bar=new Uint8Array(bar);else if(ctor===DataView){if((len=foo.byteLength)===bar.byteLength)for(;len--&&foo.getInt8(len)===bar.getInt8(len););return len===-1}if(ArrayBuffer.isView(foo)){if((len=foo.byteLength)===bar.byteLength)for(;len--&&foo[len]===bar[len];);return len===-1}if(!ctor||typeof foo=="object"){len=0;for(ctor in foo)if(has.call(foo,ctor)&&++len&&!has.call(bar,ctor)||!(ctor in bar)||!dequal(foo[ctor],bar[ctor]))return !1;return Object.keys(bar).length===len}}return foo!==foo&&bar!==bar}var import_isPlainObject=__toESM(require_isPlainObject());function dedent(templ){for(var values=[],_i=1;_i<arguments.length;_i++)values[_i-1]=arguments[_i];var strings=Array.from(typeof templ=="string"?[templ]:templ);strings[strings.length-1]=strings[strings.length-1].replace(/\r?\n([\t ]*)$/,"");var indentLengths=strings.reduce(function(arr,str){var matches=str.match(/\n([\t ]+|(?!\s).)/g);return matches?arr.concat(matches.map(function(match){var _a,_b;return (_b=(_a=match.match(/[\t ]/g))===null||_a===void 0?void 0:_a.length)!==null&&_b!==void 0?_b:0})):arr},[]);if(indentLengths.length){var pattern_1=new RegExp(`
6[ ]{`+Math.min.apply(Math,indentLengths)+"}","g");strings=strings.map(function(str){return str.replace(pattern_1,`
7`)});}strings[0]=strings[0].replace(/^\r?\n/,"");var string=strings[0];return values.forEach(function(value,i){var endentations=string.match(/(?:^|\n)( *)$/),endentation=endentations?endentations[1]:"",indentedValue=value;typeof value=="string"&&value.includes(`
8`)&&(indentedValue=String(value).split(`
9`).map(function(str,i2){return i2===0?str:""+endentation+str}).join(`
10`)),string+=indentedValue+strings[i+1];}),string}var splitPathRegex=/\/([^/]+)\/(?:(.*)_)?([^/]+)?/,parsePath=memoize(1e3)(path=>{let result={viewMode:void 0,storyId:void 0,refId:void 0};if(path){let[,viewMode,refId,storyId]=path.toLowerCase().match(splitPathRegex)||[];viewMode&&Object.assign(result,{viewMode,storyId,refId});}return result}),DEEPLY_EQUAL=Symbol("Deeply equal"),deepDiff=(value,update)=>{if(typeof value!=typeof update)return update;if(dequal(value,update))return DEEPLY_EQUAL;if(Array.isArray(value)&&Array.isArray(update)){let res=update.reduce((acc,upd,index)=>{let diff=deepDiff(value[index],upd);return diff!==DEEPLY_EQUAL&&(acc[index]=diff),acc},new Array(update.length));return update.length>=value.length?res:res.concat(new Array(value.length-update.length).fill(void 0))}return (0, import_isPlainObject.default)(value)&&(0, import_isPlainObject.default)(update)?Object.keys({...value,...update}).reduce((acc,key)=>{let diff=deepDiff(value?.[key],update?.[key]);return diff===DEEPLY_EQUAL?acc:Object.assign(acc,{[key]:diff})},{}):update},VALIDATION_REGEXP=/^[a-zA-Z0-9 _-]*$/,NUMBER_REGEXP=/^-?[0-9]+(\.[0-9]+)?$/,HEX_REGEXP=/^#([a-f0-9]{3,4}|[a-f0-9]{6}|[a-f0-9]{8})$/i,COLOR_REGEXP=/^(rgba?|hsla?)\(([0-9]{1,3}),\s?([0-9]{1,3})%?,\s?([0-9]{1,3})%?,?\s?([0-9](\.[0-9]{1,2})?)?\)$/i,validateArgs=(key="",value)=>key===null||key===""||!VALIDATION_REGEXP.test(key)?!1:value==null||value instanceof Date||typeof value=="number"||typeof value=="boolean"?!0:typeof value=="string"?VALIDATION_REGEXP.test(value)||NUMBER_REGEXP.test(value)||HEX_REGEXP.test(value)||COLOR_REGEXP.test(value):Array.isArray(value)?value.every(v=>validateArgs(key,v)):(0, import_isPlainObject.default)(value)?Object.entries(value).every(([k,v])=>validateArgs(k,v)):!1,encodeSpecialValues=value=>value===void 0?"!undefined":value===null?"!null":typeof value=="string"?HEX_REGEXP.test(value)?`!hex(${value.slice(1)})`:COLOR_REGEXP.test(value)?`!${value.replace(/[\s%]/g,"")}`:value:typeof value=="boolean"?`!${value}`:Array.isArray(value)?value.map(encodeSpecialValues):(0, import_isPlainObject.default)(value)?Object.entries(value).reduce((acc,[key,val])=>Object.assign(acc,{[key]:encodeSpecialValues(val)}),{}):value,QS_OPTIONS={encode:!1,delimiter:";",allowDots:!0,format:"RFC1738",serializeDate:date=>`!date(${date.toISOString()})`},buildArgsParam=(initialArgs,args)=>{let update=deepDiff(initialArgs,args);if(!update||update===DEEPLY_EQUAL)return "";let object=Object.entries(update).reduce((acc,[key,value])=>validateArgs(key,value)?Object.assign(acc,{[key]:value}):(once.warn(dedent`
11 Omitted potentially unsafe URL args.
12
13 More info: https://storybook.js.org/docs/react/writing-stories/args#setting-args-through-the-url
14 `),acc),{});return qs.stringify(encodeSpecialValues(object),QS_OPTIONS).replace(/ /g,"+").split(";").map(part=>part.replace("=",":")).join(";")},queryFromString=memoize(1e3)(s=>s!==void 0?qs.parse(s,{ignoreQueryPrefix:!0}):{}),queryFromLocation=location=>queryFromString(location.search),stringifyQuery=query=>qs.stringify(query,{addQueryPrefix:!0,encode:!1}),getMatch=memoize(1e3)((current,target,startsWith=!0)=>{if(startsWith){if(typeof target!="string")throw new Error("startsWith only works with string targets");return current&&current.startsWith(target)?{path:current}:null}let currentIsTarget=typeof target=="string"&&current===target,matchTarget=current&&target&&current.match(target);return currentIsTarget||matchTarget?{path:current}:null});
15
16export { DEEPLY_EQUAL, buildArgsParam, deepDiff, getMatch, parsePath, queryFromLocation, queryFromString, stringifyQuery };