@storybook/addon-links 7.0.0-beta.4 → 7.0.0-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/chunk-YFKH3BW3.mjs +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/dist/manager.js +1 -1
- package/dist/preview.js +1 -1
- package/dist/preview.mjs +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.mjs +1 -1
- package/package.json +17 -11
- package/react.d.ts +1 -2
- package/react.js +1 -1
- package/dist/chunk-UXWXBGPY.mjs +0 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ yarn add -D @storybook/addon-links
|
|
|
15
15
|
within `.storybook/main.js`:
|
|
16
16
|
|
|
17
17
|
```js
|
|
18
|
-
|
|
18
|
+
export default {
|
|
19
19
|
addons: ['@storybook/addon-links'],
|
|
20
20
|
};
|
|
21
21
|
```
|
|
@@ -144,4 +144,4 @@ It accepts all the props the `a` element does, plus `story` and `kind`. It the `
|
|
|
144
144
|
</LinkTo>
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
To implement such a component for another framework, you need to add special handling for `click` event on native `a` element. See [`RoutedLink` sources](https://github.com/storybookjs/storybook/blob/
|
|
147
|
+
To implement such a component for another framework, you need to add special handling for `click` event on native `a` element. See [`RoutedLink` sources](https://github.com/storybookjs/storybook/blob/next/code/addons/links/src/react/components/RoutedLink.tsx) for reference.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{PARAM_KEY}from"./chunk-JT3VIYBO.mjs";import{global}from"@storybook/global";import{addons,makeDecorator}from"@storybook/preview-api";import{STORY_CHANGED,SELECT_STORY}from"@storybook/core-events";import{toId}from"@storybook/csf";var{document,HTMLElement}=global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>addons.getChannel().emit(SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=toId(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)}),valueOrCall=args=>value=>typeof value=="function"?value(...args):value,linkTo=(idOrTitle,nameInput)=>(...args)=>{let resolver=valueOrCall(args),title=resolver(idOrTitle),name=nameInput?resolver(nameInput):!1;title?.match(/--/)&&!name?navigate({storyId:title}):name&&title?navigate({kind:title,story:name}):title?navigate({kind:title}):name&&navigate({story:name})},linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=makeDecorator({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),addons.getChannel().once(STORY_CHANGED,off),getStory(context))});export{navigate,hrefTo,linkTo,withLinks};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as lib_preview_api_dist_storybook_channel_mock_a19cd233 from '
|
|
1
|
+
import * as lib_preview_api_dist_storybook_channel_mock_a19cd233 from '@storybook/preview-api/dist/storybook-channel-mock-a19cd233';
|
|
2
2
|
import { ComponentTitle, StoryName, StoryId } from '@storybook/types';
|
|
3
3
|
|
|
4
4
|
interface ParamsId {
|
|
@@ -13,6 +13,9 @@ declare const hrefTo: (title: ComponentTitle, name: StoryName) => Promise<string
|
|
|
13
13
|
declare const linkTo: (idOrTitle: string | ((...args: any[]) => string), nameInput?: string | ((...args: any[]) => string) | undefined) => (...args: any[]) => void;
|
|
14
14
|
declare const withLinks: lib_preview_api_dist_storybook_channel_mock_a19cd233.M;
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated please import this specific function from @storybook/addon-links/react
|
|
18
|
+
*/
|
|
16
19
|
declare function LinkTo(): null;
|
|
17
20
|
|
|
18
21
|
export { LinkTo, hrefTo, linkTo, navigate, withLinks };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __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 __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{LinkTo:()=>LinkTo,hrefTo:()=>hrefTo,linkTo:()=>linkTo,navigate:()=>navigate,withLinks:()=>withLinks});module.exports=__toCommonJS(src_exports);var import_ts_dedent=require("ts-dedent");var import_global=require("@storybook/global"),import_preview_api=require("@storybook/preview-api"),import_core_events=require("@storybook/core-events"),import_csf=require("@storybook/csf");var ADDON_ID="storybook/links",PARAM_KEY="links",constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};var{document,HTMLElement}=import_global.global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>import_preview_api.addons.getChannel().emit(import_core_events.SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=(0,import_csf.toId)(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)}),valueOrCall=args=>value=>typeof value=="function"?value(...args):value,linkTo=(idOrTitle,nameInput)=>(...args)=>{let resolver=valueOrCall(args),title=resolver(idOrTitle),name=nameInput?resolver(nameInput):!1;title!=null&&title.match(/--/)&&!name?navigate({storyId:title}):name&&title?navigate({kind:title,story:name}):title?navigate({kind:title}):name&&navigate({story:name})},linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=(0,import_preview_api.makeDecorator)({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),import_preview_api.addons.getChannel().once(import_core_events.STORY_CHANGED,off),getStory(context))});var hasWarned=!1;function LinkTo(){return hasWarned||(console.error(import_ts_dedent.dedent`
|
|
2
2
|
LinkTo has moved to addon-links/react:
|
|
3
3
|
import LinkTo from '@storybook/addon-links/react';
|
|
4
|
-
`),
|
|
4
|
+
`),hasWarned=!0),null}module&&module.hot&&module.hot.decline&&module.hot.decline();0&&(module.exports={LinkTo,hrefTo,linkTo,navigate,withLinks});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{LinkTo}from"./chunk-HG45ZTEM.mjs";import{hrefTo,linkTo,navigate,withLinks}from"./chunk-
|
|
1
|
+
import{LinkTo}from"./chunk-HG45ZTEM.mjs";import{hrefTo,linkTo,navigate,withLinks}from"./chunk-YFKH3BW3.mjs";import"./chunk-JT3VIYBO.mjs";export{LinkTo,hrefTo,linkTo,navigate,withLinks};
|
package/dist/manager.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var import_manager_api=require("@storybook/manager-api");var ADDON_ID="storybook/links";var constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};import_manager_api.addons.register(ADDON_ID,api=>{import_manager_api.addons.getChannel().on(constants_default.REQUEST,({kind,name})=>{let id=api.storyId(kind,name);api.emit(constants_default.RECEIVE,id)})});
|
package/dist/preview.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __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 __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preview_exports={};__export(preview_exports,{decorators:()=>decorators});module.exports=__toCommonJS(preview_exports);var import_ts_dedent=require("ts-dedent");var import_global=require("@storybook/global"),import_preview_api=require("@storybook/preview-api"),import_core_events=require("@storybook/core-events"),import_csf=require("@storybook/csf");var ADDON_ID="storybook/links",PARAM_KEY="links",constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};var{document,HTMLElement}=import_global.global;var navigate=params=>import_preview_api.addons.getChannel().emit(import_core_events.SELECT_STORY,params);var linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=(0,import_preview_api.makeDecorator)({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),import_preview_api.addons.getChannel().once(import_core_events.STORY_CHANGED,off),getStory(context))});module&&module.hot&&module.hot.decline&&module.hot.decline();var decorators=[withLinks];0&&(module.exports={decorators});
|
package/dist/preview.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-HG45ZTEM.mjs";import{withLinks}from"./chunk-
|
|
1
|
+
import"./chunk-HG45ZTEM.mjs";import{withLinks}from"./chunk-YFKH3BW3.mjs";import"./chunk-JT3VIYBO.mjs";var decorators=[withLinks];export{decorators};
|
package/dist/react/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"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 react_exports={};__export(react_exports,{default:()=>react_default});module.exports=__toCommonJS(react_exports);var import_react=__toESM(require("react"));var import_global=require("@storybook/global"),import_preview_api=require("@storybook/preview-api"),import_core_events=require("@storybook/core-events"),import_csf=require("@storybook/csf");var ADDON_ID="storybook/links",PARAM_KEY="links",constants_default={NAVIGATE:`${ADDON_ID}/navigate`,REQUEST:`${ADDON_ID}/request`,RECEIVE:`${ADDON_ID}/receive`};var{document,HTMLElement}=import_global.global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>import_preview_api.addons.getChannel().emit(import_core_events.SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=(0,import_csf.toId)(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)});var linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=(0,import_preview_api.makeDecorator)({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),import_preview_api.addons.getChannel().once(import_core_events.STORY_CHANGED,off),getStory(context))});var LEFT_BUTTON=0,isPlainLeftClick=e=>e.button===LEFT_BUTTON&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey,cancelled=(e,cb=_e=>{})=>{isPlainLeftClick(e)&&(e.preventDefault(),cb(e))},LinkTo=class extends import_react.PureComponent{constructor(){super(...arguments);this.state={href:"/"};this.updateHref=async()=>{let{kind,story}=this.props;if(kind&&story){let href=await hrefTo(kind,story);this.setState({href})}};this.handleClick=()=>{let{kind,story}=this.props;kind&&story&&navigate({kind,story})}}componentDidMount(){this.updateHref()}componentDidUpdate(prevProps){let{kind,story}=this.props;(prevProps.kind!==kind||prevProps.story!==story)&&this.updateHref()}render(){let{kind,story,children,...rest}=this.props,{href}=this.state;return import_react.default.createElement("a",{href,onClick:e=>cancelled(e,this.handleClick),...rest},children)}};LinkTo.defaultProps={kind:null,story:null,children:void 0};var react_default=LinkTo;0&&(module.exports={});
|
package/dist/react/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{hrefTo,navigate}from"../chunk-
|
|
1
|
+
import{hrefTo,navigate}from"../chunk-YFKH3BW3.mjs";import"../chunk-JT3VIYBO.mjs";import React,{PureComponent}from"react";var LEFT_BUTTON=0,isPlainLeftClick=e=>e.button===LEFT_BUTTON&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey,cancelled=(e,cb=_e=>{})=>{isPlainLeftClick(e)&&(e.preventDefault(),cb(e))},LinkTo=class extends PureComponent{constructor(){super(...arguments);this.state={href:"/"};this.updateHref=async()=>{let{kind,story}=this.props;if(kind&&story){let href=await hrefTo(kind,story);this.setState({href})}};this.handleClick=()=>{let{kind,story}=this.props;kind&&story&&navigate({kind,story})}}componentDidMount(){this.updateHref()}componentDidUpdate(prevProps){let{kind,story}=this.props;(prevProps.kind!==kind||prevProps.story!==story)&&this.updateHref()}render(){let{kind,story,children,...rest}=this.props,{href}=this.state;return React.createElement("a",{href,onClick:e=>cancelled(e,this.handleClick),...rest},children)}};LinkTo.defaultProps={kind:null,story:null,children:void 0};var react_default=LinkTo;export{react_default as default};
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/addon-links",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.41",
|
|
4
4
|
"description": "Link stories together to build demos and prototypes with your UI components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"addon",
|
|
7
7
|
"storybook",
|
|
8
8
|
"organize"
|
|
9
9
|
],
|
|
10
|
-
"homepage": "https://github.com/storybookjs/storybook/tree/
|
|
10
|
+
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/addons/links",
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/storybookjs/storybook/issues"
|
|
13
13
|
},
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"exports": {
|
|
25
25
|
".": {
|
|
26
|
+
"node": "./dist/index.js",
|
|
26
27
|
"require": "./dist/index.js",
|
|
27
28
|
"import": "./dist/index.mjs",
|
|
28
29
|
"types": "./dist/index.d.ts"
|
|
@@ -62,6 +63,9 @@
|
|
|
62
63
|
],
|
|
63
64
|
"preview": [
|
|
64
65
|
"dist/preview.d.ts"
|
|
66
|
+
],
|
|
67
|
+
"react": [
|
|
68
|
+
"dist/react/index.d.ts"
|
|
65
69
|
]
|
|
66
70
|
}
|
|
67
71
|
},
|
|
@@ -76,18 +80,19 @@
|
|
|
76
80
|
"prep": "../../../scripts/prepare/bundle.ts"
|
|
77
81
|
},
|
|
78
82
|
"dependencies": {
|
|
79
|
-
"@storybook/client-logger": "7.0.0-beta.
|
|
80
|
-
"@storybook/core-events": "7.0.0-beta.
|
|
83
|
+
"@storybook/client-logger": "7.0.0-beta.41",
|
|
84
|
+
"@storybook/core-events": "7.0.0-beta.41",
|
|
81
85
|
"@storybook/csf": "next",
|
|
82
|
-
"@storybook/
|
|
83
|
-
"@storybook/
|
|
84
|
-
"@storybook/
|
|
85
|
-
"@storybook/
|
|
86
|
-
"
|
|
86
|
+
"@storybook/global": "^5.0.0",
|
|
87
|
+
"@storybook/manager-api": "7.0.0-beta.41",
|
|
88
|
+
"@storybook/preview-api": "7.0.0-beta.41",
|
|
89
|
+
"@storybook/router": "7.0.0-beta.41",
|
|
90
|
+
"@storybook/types": "7.0.0-beta.41",
|
|
87
91
|
"prop-types": "^15.7.2",
|
|
88
92
|
"ts-dedent": "^2.0.0"
|
|
89
93
|
},
|
|
90
94
|
"devDependencies": {
|
|
95
|
+
"fs-extra": "^11.1.0",
|
|
91
96
|
"typescript": "~4.9.3"
|
|
92
97
|
},
|
|
93
98
|
"peerDependencies": {
|
|
@@ -111,9 +116,10 @@
|
|
|
111
116
|
"./src/manager.ts",
|
|
112
117
|
"./src/preview.ts",
|
|
113
118
|
"./src/react/index.ts"
|
|
114
|
-
]
|
|
119
|
+
],
|
|
120
|
+
"post": "./scripts/fix-preview-api-reference.ts"
|
|
115
121
|
},
|
|
116
|
-
"gitHead": "
|
|
122
|
+
"gitHead": "b73df3011fe6ccda407ebb6ed15b80e0d01d4230",
|
|
117
123
|
"storybook": {
|
|
118
124
|
"displayName": "Links",
|
|
119
125
|
"icon": "https://user-images.githubusercontent.com/263385/101991673-48355c80-3c7c-11eb-9b6e-b627c96a75f6.png",
|
package/react.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from './dist/react';
|
|
2
|
-
export { default } from './dist/react';
|
|
1
|
+
export * from './dist/react/index';
|
package/react.js
CHANGED
package/dist/chunk-UXWXBGPY.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{PARAM_KEY}from"./chunk-JT3VIYBO.mjs";import global from"global";import{addons,makeDecorator}from"@storybook/preview-api";import{STORY_CHANGED,SELECT_STORY}from"@storybook/core-events";import{toId}from"@storybook/csf";var{document,HTMLElement}=global;function parseQuery(queryString){let query={},pairs=(queryString[0]==="?"?queryString.substring(1):queryString).split("&").filter(Boolean);for(let i=0;i<pairs.length;i++){let pair=pairs[i].split("=");query[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1]||"")}return query}var navigate=params=>addons.getChannel().emit(SELECT_STORY,params),hrefTo=(title,name)=>new Promise(resolve=>{let{location}=document,query=parseQuery(location.search),existingId=[].concat(query.id)[0],titleToLink=title||existingId.split("--",2)[0],id=toId(titleToLink,name),url=`${location.origin+location.pathname}?${Object.entries({...query,id}).map(item=>`${item[0]}=${item[1]}`).join("&")}`;resolve(url)}),valueOrCall=args=>value=>typeof value=="function"?value(...args):value,linkTo=(idOrTitle,nameInput)=>(...args)=>{let resolver=valueOrCall(args),title=resolver(idOrTitle),name=nameInput?resolver(nameInput):!1;title?.match(/--/)&&!name?navigate({storyId:title}):name&&title?navigate({kind:title,story:name}):title?navigate({kind:title}):name&&navigate({story:name})},linksListener=e=>{let{target}=e;if(!(target instanceof HTMLElement))return;let element=target,{sbKind:kind,sbStory:story}=element.dataset;(kind||story)&&(e.preventDefault(),navigate({kind,story}))},hasListener=!1,on=()=>{hasListener||(hasListener=!0,document.addEventListener("click",linksListener))},off=()=>{hasListener&&(hasListener=!1,document.removeEventListener("click",linksListener))},withLinks=makeDecorator({name:"withLinks",parameterName:PARAM_KEY,wrapper:(getStory,context)=>(on(),addons.getChannel().once(STORY_CHANGED,off),getStory(context))});export{navigate,hrefTo,linkTo,withLinks};
|