storybook-addon-remix-react-router
Version:
Use Remix React Router in your stories. (Formerly storybook-addon-react-router-v6)
1 lines • 5.04 kB
Source Map (JSON)
{"version":3,"sources":["../src/constants.ts","../src/features/decorator/utils/injectStory.ts","../src/utils/misc.ts","../src/features/decorator/utils/isValidReactNode.ts"],"names":["ADDON_ID","PANEL_ID","EVENTS","injectStory","routes","StoryElement","route","hasOwnProperty","obj","prop","isValidReactNode","React"],"mappings":"oJAAO,IAAMA,EAAW,2BACXC,KAGAC,CAAS,CAAA,CACpB,KAAO,CAAA,CAAA,EAAGF,CAAQ,CAClB,MAAA,CAAA,CAAA,UAAA,CAAY,GAAGA,CAAQ,CAAA,WAAA,CAAA,CACvB,aAAc,CAAGA,EAAAA,CAAQ,CACzB,aAAA,CAAA,CAAA,aAAA,CAAe,GAAGA,CAAQ,CAAA,cAAA,CAAA,CAC1B,eAAgB,CAAGA,EAAAA,CAAQ,kBAC3B,cAAgB,CAAA,CAAA,EAAGA,CAAQ,CAC3B,eAAA,CAAA,CAAA,cAAA,CAAgB,GAAGA,CAAQ,CAAA,eAAA,CAAA,CAC3B,eAAgB,CAAGA,EAAAA,CAAQ,iBAC7B,ECVO,SAASG,CAAYC,CAAAA,CAAAA,CAAuBC,EAAiD,CAElG,OAAID,EAAO,MAAW,GAAA,CAAA,GAAMA,EAAO,CAAC,CAAA,CAAE,QAAa,GAAA,KAAA,CAAA,EAAaA,EAAO,CAAC,CAAA,CAAE,SAAS,MAAW,GAAA,CAAA,CAAA,CACrF,CAAC,CAAE,GAAGA,CAAO,CAAA,CAAC,EAAG,OAASC,CAAAA,CAAa,CAAC,CAGzBD,CAAAA,CAAAA,CAAO,UAAWE,CAAUA,EAAAA,CAAAA,CAAM,eAAe,CAEjD,GAAA,CAAA,CAAA,CACfF,EAAO,GAAKE,CAAAA,CAAAA,EACZA,EAAM,eAEJ,CAAA,CACL,GAAGA,CACH,CAAA,OAAA,CAASD,CACX,CAAA,CALmCC,CAMpC,CAGIF,CAAAA,CAAAA,CAAO,IAAKE,CACZA,EAAAA,CAAAA,CAAM,SAEJ,CACL,GAAGA,CACH,CAAA,QAAA,CAAUH,EAAYG,CAAM,CAAA,QAAA,CAAUD,CAAY,CACpD,CAAA,CAL4BC,CAM7B,CACH,CCXO,SAASC,CAAAA,CAAwDC,EAAQC,CAAiC,CAAA,CAC/G,OAAO,MAAO,CAAA,SAAA,CAAU,eAAe,IAAKD,CAAAA,CAAAA,CAAKC,CAAI,CACvD,CClBO,SAASC,CAAiB,CAAA,CAAA,CAAkC,CACjE,GAAIC,kBAAAA,CAAM,cAAe,CAAA,CAAC,EAAG,OAAO,CAAA,CAAA,CAEpC,OAAQ,CAAM,CAAA,EACZ,KAAKA,kBAAM,CAAA,cAAA,CAAe,CAAC,CAAA,CAC3B,KAAK,OAAO,CAAA,EAAM,SAClB,KAAK,OAAO,GAAM,QAClB,CAAA,KAAK,OAAO,CAAA,EAAM,UAClB,KAAK,CAAA,GAAM,KACX,KAAK,CAAA,GAAM,OACX,KAAK,CAAA,YAAa,QAAUJ,CAAe,CAAA,CAAA,CAAG,OAAO,QAAQ,CAAA,EAC3D,OAAO,CACX,CAAA,CAEA,OAAO,CACT,CAAA","file":"internals.cjs","sourcesContent":["export const ADDON_ID = 'storybook/react-router-v6';\nexport const PANEL_ID = `${ADDON_ID}/panel`;\nexport const PARAM_KEY = `reactRouter`;\n\nexport const EVENTS = {\n CLEAR: `${ADDON_ID}/clear`,\n NAVIGATION: `${ADDON_ID}/navigation`,\n STORY_LOADED: `${ADDON_ID}/story-loaded`,\n ROUTE_MATCHES: `${ADDON_ID}/route-matches`,\n ACTION_INVOKED: `${ADDON_ID}/action_invoked`,\n ACTION_SETTLED: `${ADDON_ID}/action_settled`,\n LOADER_INVOKED: `${ADDON_ID}/loader_invoked`,\n LOADER_SETTLED: `${ADDON_ID}/loader_settled`,\n} as const;\n","import React from 'react';\nimport { RouterRoute } from '../types';\n\nexport function injectStory(routes: RouterRoute[], StoryElement: React.ReactElement): RouterRoute[] {\n // Single route, no children\n if (routes.length === 1 && (routes[0].children === undefined || routes[0].children.length === 0)) {\n return [{ ...routes[0], element: StoryElement }];\n }\n\n const storyRouteIndex = routes.findIndex((route) => route.useStoryElement);\n\n if (storyRouteIndex !== -1) {\n return routes.map((route) => {\n if (!route.useStoryElement) return route;\n\n return {\n ...route,\n element: StoryElement,\n };\n });\n }\n\n return routes.map((route) => {\n if (!route.children) return route;\n\n return {\n ...route,\n children: injectStory(route.children, StoryElement),\n };\n });\n}\n","import { AssertKey, ToArray } from './type-utils';\n\nexport type Deferred<T> = {\n promise: Promise<T>;\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: unknown) => void;\n};\n\nexport function defer<T = void>(): Deferred<T> {\n const deferred: Partial<Deferred<T>> = {};\n\n deferred.promise = new Promise<T>((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n\n return deferred as Deferred<T>;\n}\n\nexport function hasOwnProperty<T extends object, K extends PropertyKey>(obj: T, prop: K): obj is AssertKey<T, K> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(value: T | null | undefined, message?: string): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === 'undefined') {\n console.warn('Test invariant failed:', message);\n throw new Error(message);\n }\n}\n\nexport function castArray(): [];\nexport function castArray<T>(value: T): ToArray<T>;\nexport function castArray<T>(value?: T) {\n if (arguments.length === 0) {\n return [];\n }\n\n return (Array.isArray(value) ? value : [value]) as ToArray<T>;\n}\n","import React from 'react';\nimport { hasOwnProperty } from '../../../utils/misc';\n\nexport function isValidReactNode(e: unknown): e is React.ReactNode {\n if (React.isValidElement(e)) return true;\n\n switch (true) {\n case React.isValidElement(e):\n case typeof e === 'string':\n case typeof e === 'number':\n case typeof e === 'boolean':\n case e === null:\n case e === undefined:\n case e instanceof Object && hasOwnProperty(e, Symbol.iterator):\n return true;\n }\n\n return false;\n}\n"]}