@moneko/react 1.0.5 → 1.1.0

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/jest-preset.js ADDED
@@ -0,0 +1,53 @@
1
+ const name = process.env.npm_package_name;
2
+
3
+ export default {
4
+ coverageDirectory: 'coverage',
5
+ testEnvironment: 'jsdom',
6
+ roots: ['components'],
7
+ moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],
8
+ testMatch: ['<rootDir>/components/**/__tests__/**/*.{js,jsx,ts,tsx}'],
9
+ coveragePathIgnorePatterns: [
10
+ '<rootDir>/test/',
11
+ '<rootDir>/lib/',
12
+ '<rootDir>/es/',
13
+ '<rootDir>/docs/',
14
+ '<rootDir>/node_modules/',
15
+ ],
16
+ testPathIgnorePatterns: [
17
+ '<rootDir>/test/',
18
+ '<rootDir>/lib/',
19
+ '<rootDir>/es/',
20
+ '<rootDir>/docs/',
21
+ '<rootDir>/node_modules/',
22
+ ],
23
+ transformIgnorePatterns: ['<rootDir>/lib/', '<rootDir>/es/', '<rootDir>/docs/'],
24
+ moduleNameMapper: {
25
+ [name]: '<rootDir>/components/index.ts',
26
+ },
27
+ transform: {
28
+ '^.+\\.(t|j)sx?$': [
29
+ '@swc/jest',
30
+ {
31
+ module: {
32
+ type: 'es6',
33
+ },
34
+ jsc: {
35
+ parser: {
36
+ syntax: 'typescript',
37
+ decorators: true,
38
+ dynamicImport: true,
39
+ tsx: true,
40
+ },
41
+ target: 'es2022',
42
+ transform: {
43
+ legacyDecorator: true,
44
+ decoratorMetadata: true,
45
+ react: {
46
+ refresh: true
47
+ },
48
+ },
49
+ },
50
+ },
51
+ ],
52
+ },
53
+ };
package/lib/entry.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as r}from"react/jsx-runtime";import"react";import o from"@app";import t from"@app/fallback";import e from"@app/routes";import{createRoot as m}from"react-dom/client";import{RouterProvider as a,createBrowserRouter as n,createHashRouter as p}from"react-router-dom";let i="hash"===o.routerMode,c=i?p:n;export default function(n={}){let{container:p,basename:u=o.base,language:l,...d}=n,f=p?.querySelector("#root")||document.getElementById("root"),s=m(f);return"micro"===o.type&&(window.mainApp={...d,container:f}),s.render(r(()=>r(a,{router:c(e,{basename:i?"/":u,window:window}),fallbackElement:t&&r(t,{})}),{})),s.unmount};
1
+ import{jsx as r}from"react/jsx-runtime";import"react";import o from"@app";import t from"@app/fallback";import e from"@app/routes";import{createRoot as m}from"react-dom/client";import{RouterProvider as a,createBrowserRouter as n,createHashRouter as p}from"react-router-dom";let i="hash"===o.routerMode,c=i?p:n;export default function(n={}){let{container:p,basename:u=o.base,language:l,...d}=n,f=p?.querySelector("#root")||document.getElementById("root"),s=m(f);return"micro"===o.type&&(window.mainApp={...d,container:f}),s.render(r(()=>r(a,{router:c(e,{basename:i?"/":u,window:window}),fallbackElement:t&&r(t,{})}),{})),s.unmount}
2
2
  //# sourceMappingURL=entry.js.map
package/lib/entry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entry.tsx"],"sourcesContent":["import React from 'react';\nimport app from '@app';\nimport Fallback from '@app/fallback';\nimport routes from '@app/routes';\nimport { createRoot } from 'react-dom/client';\nimport { RouterProvider, createBrowserRouter, createHashRouter } from 'react-router-dom';\n\ntype RenderAppProps = {\n container?: HTMLElement;\n basename?: string;\n fallback?: React.ReactElement;\n language?: string;\n};\n\nconst isHashRouter = app.routerMode === 'hash';\nconst createRouter = isHashRouter ? createHashRouter : createBrowserRouter;\nfunction renderApp(props: RenderAppProps = {}) {\n const { container, basename = app.base, language, ...args } = props;\n const _container = container?.querySelector('#root') || document.getElementById('root');\n const instance = createRoot(_container as HTMLElement);\n\n if (app.type === 'micro') {\n window.mainApp = {\n ...args,\n container: _container as HTMLElement,\n };\n }\n const App = () => {\n return (\n <RouterProvider\n router={createRouter(routes, {\n basename: isHashRouter ? '/' : basename,\n window: window,\n })}\n fallbackElement={Fallback && <Fallback />}\n />\n );\n };\n\n instance.render(<App />);\n return instance.unmount;\n}\n\nexport default renderApp;\n"],"names":["app","Fallback","routes","createRoot","RouterProvider","createBrowserRouter","createHashRouter","isHashRouter","routerMode","createRouter","props","container","basename","base","language","args","_container","querySelector","document","getElementById","instance","type","window","mainApp","render","router","fallbackElement","unmount"],"mappings":"uCAAA,OAAkB,OAAQ,AAC1B,QAAOA,MAAS,MAAO,AACvB,QAAOC,MAAc,eAAgB,AACrC,QAAOC,MAAY,aAAc,AACjC,QAASC,cAAAA,CAAU,KAAQ,kBAAmB,AAC9C,QAASC,kBAAAA,CAAc,CAAEC,uBAAAA,CAAmB,CAAEC,oBAAAA,CAAgB,KAAQ,kBAAmB,CASzF,IAAMC,EAAeP,AAAmB,SAAnBA,EAAIQ,WACnBC,EAAeF,EAAeD,EAAmBD,CA4BvD,gBA3BA,SAAmBK,EAAwB,CAAC,CAAC,EAC3C,GAAM,CAAEC,UAAAA,CAAS,CAAEC,SAAAA,EAAWZ,EAAIa,IAAI,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAAM,CAAGL,EACxDM,EAAaL,GAAWM,cAAc,UAAYC,SAASC,eAAe,QAC1EC,EAAWjB,EAAWa,SAEX,UAAbhB,EAAIqB,MACNC,CAAAA,OAAOC,QAAU,CACf,GAAGR,CAAI,CACPJ,UAAWK,CACb,CAAA,EAcFI,EAASI,OAAO,EAZJ,IAER,EAACpB,GACCqB,OAAQhB,EAAaP,EAAQ,CAC3BU,SAAUL,EAAe,IAAMK,EAC/BU,OAAQA,MACV,GACAI,gBAAiBzB,GAAY,EAACA,aAM7BmB,EAASO,OAClB,CAEyB"}
1
+ {"version":3,"sources":["../src/entry.tsx"],"sourcesContent":["import React from 'react';\nimport app from '@app';\nimport Fallback from '@app/fallback';\nimport routes from '@app/routes';\nimport { createRoot } from 'react-dom/client';\nimport { RouterProvider, createBrowserRouter, createHashRouter } from 'react-router-dom';\n\ntype RenderAppProps = {\n container?: HTMLElement;\n basename?: string;\n fallback?: React.ReactElement;\n language?: string;\n};\n\nconst isHashRouter = app.routerMode === 'hash';\nconst createRouter = isHashRouter ? createHashRouter : createBrowserRouter;\nfunction renderApp(props: RenderAppProps = {}) {\n const { container, basename = app.base, language, ...args } = props;\n const _container = container?.querySelector('#root') || document.getElementById('root');\n const instance = createRoot(_container as HTMLElement);\n\n if (app.type === 'micro') {\n window.mainApp = {\n ...args,\n container: _container as HTMLElement,\n };\n }\n const App = () => {\n return (\n <RouterProvider\n router={createRouter(routes, {\n basename: isHashRouter ? '/' : basename,\n window: window,\n })}\n fallbackElement={Fallback && <Fallback />}\n />\n );\n };\n\n instance.render(<App />);\n return instance.unmount;\n}\n\nexport default renderApp;\n"],"names":["app","Fallback","routes","createRoot","RouterProvider","createBrowserRouter","createHashRouter","isHashRouter","routerMode","createRouter","props","container","basename","base","language","args","_container","querySelector","document","getElementById","instance","type","window","mainApp","render","router","fallbackElement","unmount"],"mappings":"uCAAA,OAAkB,OAAQ,AAC1B,QAAOA,MAAS,MAAO,AACvB,QAAOC,MAAc,eAAgB,AACrC,QAAOC,MAAY,aAAc,AACjC,QAASC,cAAAA,CAAU,KAAQ,kBAAmB,AAC9C,QAASC,kBAAAA,CAAc,CAAEC,uBAAAA,CAAmB,CAAEC,oBAAAA,CAAgB,KAAQ,kBAAmB,CASzF,IAAMC,EAAeP,AAAmB,SAAnBA,EAAIQ,UAAU,CAC7BC,EAAeF,EAAeD,EAAmBD,CA4BvD,gBA3BA,SAAmBK,EAAwB,CAAC,CAAC,EAC3C,GAAM,CAAEC,UAAAA,CAAS,CAAEC,SAAAA,EAAWZ,EAAIa,IAAI,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAAM,CAAGL,EACxDM,EAAaL,GAAWM,cAAc,UAAYC,SAASC,cAAc,CAAC,QAC1EC,EAAWjB,EAAWa,SAEX,UAAbhB,EAAIqB,IAAI,EACVC,CAAAA,OAAOC,OAAO,CAAG,CACf,GAAGR,CAAI,CACPJ,UAAWK,CACb,CAAA,EAcFI,EAASI,MAAM,CAAC,EAZJ,IAER,EAACpB,GACCqB,OAAQhB,EAAaP,EAAQ,CAC3BU,SAAUL,EAAe,IAAMK,EAC/BU,OAAQA,MACV,GACAI,gBAAiBzB,GAAY,EAACA,aAM7BmB,EAASO,OAAO,AACzB"}
package/lib/link.js CHANGED
@@ -1,2 +1,2 @@
1
- import{jsx as r}from"react/jsx-runtime";import{useMemo as e}from"react";import{Link as t,useSearchParams as i}from"react-router-dom";export default(({reserved:a,to:n,children:o,...l})=>{let m=e(()=>["menuId","dynamicTitle",...Array.isArray(a)?a:[a]].filter(Boolean),[a]),[c]=i(),s=e(()=>{if(-1===n)return -1;let r={};c.forEach((e,t)=>{m.includes(t)&&(r[t]=e)});let e=n,t=e.indexOf("?");if(-1!==t){let i=new URLSearchParams(e.slice(t));i.forEach((e,t)=>{r[t]=e}),e=e.substring(0,t)}let i=new URLSearchParams(r).toString();return i?.trim().length?[e,i].join("?"):e},[m,c,n]);return r(t,{...l,to:s,children:o})});
1
+ import{jsx as r}from"react/jsx-runtime";import{useMemo as e}from"react";import{Link as t,useSearchParams as a}from"react-router-dom";export default(({reserved:i,to:n,children:o,...m})=>{let l=e(()=>["menuId","dynamicTitle",...Array.isArray(i)?i:[i]].filter(Boolean),[i]),[c]=a(),s=e(()=>{if(-1===n)return -1;let r={};c.forEach((e,t)=>{l.includes(t)&&(r[t]=e)});let e=n,t=e.indexOf("?");-1!==t&&(new URLSearchParams(e.slice(t)).forEach((e,t)=>{r[t]=e}),e=e.substring(0,t));let a=new URLSearchParams(r).toString();return a?.trim().length?[e,a].join("?"):e},[l,c,n]);return r(t,{...m,to:s,children:o})});
2
2
  //# sourceMappingURL=link.js.map
package/lib/link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/link.tsx"],"sourcesContent":["import React, { type FC, useMemo } from 'react';\nimport {\n Link as ReactRouterLink,\n type LinkProps as ReactRouterLinkProps,\n type To,\n useSearchParams,\n} from 'react-router-dom';\n\nexport interface LinkProps extends Omit<ReactRouterLinkProps, 'to'> {\n /** 保留字 */\n reserved?: string | string[];\n to: To | -1;\n}\n\n/** 跳转时继承部分query参数\n * @default {string[]} ['menuId', 'dynamicTitle'] \n */\nconst Link: FC<LinkProps> = ({ reserved, to, children, ...props }) => {\n const reservedWord = useMemo(() => {\n return ['menuId', 'dynamicTitle', ...(Array.isArray(reserved) ? reserved : [reserved])].filter(\n Boolean,\n );\n }, [reserved]);\n const [search] = useSearchParams();\n const toUrl = useMemo(() => {\n if (to === -1) {\n return -1;\n }\n /** 提取保留字属性 */\n const nextSearch: Record<string, string> = {};\n\n search.forEach((val, key) => {\n if (reservedWord.includes(key)) {\n nextSearch[key] = val;\n }\n });\n\n let entryUrl = to as string;\n const entrySearchIdx = entryUrl.indexOf('?');\n\n if (entrySearchIdx !== -1) {\n const searchByToUrl = new URLSearchParams(entryUrl.slice(entrySearchIdx));\n\n searchByToUrl.forEach((val, key) => {\n nextSearch[key] = val;\n });\n entryUrl = entryUrl.substring(0, entrySearchIdx);\n }\n const searchString = new URLSearchParams(nextSearch).toString();\n\n return searchString?.trim().length ? [entryUrl, searchString].join('?') : entryUrl;\n }, [reservedWord, search, to]);\n\n return (\n <ReactRouterLink {...props} to={toUrl as To}>\n {children}\n </ReactRouterLink>\n );\n};\n\nexport default Link;\n"],"names":["useMemo","Link","ReactRouterLink","useSearchParams","reserved","to","children","props","reservedWord","Array","isArray","filter","Boolean","search","toUrl","nextSearch","forEach","val","key","includes","entryUrl","entrySearchIdx","indexOf","searchByToUrl","URLSearchParams","slice","substring","searchString","toString","trim","length","join"],"mappings":"uCAAA,QAAyBA,WAAAA,CAAO,KAAQ,OAAQ,AAChD,QACEC,QAAQC,CAAe,CAGvBC,mBAAAA,CAAe,KACV,kBAAmB,AAsD1B,eA3C4B,CAAA,CAAC,CAAEC,SAAAA,CAAQ,CAAEC,GAAAA,CAAE,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAAO,IAC/D,IAAMC,EAAeR,EAAQ,IACpB,CAAC,SAAU,kBAAoBS,MAAMC,QAAQN,GAAYA,EAAW,CAACA,EAAS,CAAE,CAACO,OACtFC,SAED,CAACR,EAAS,EACP,CAACS,EAAO,CAAGV,IACXW,EAAQd,EAAQ,KACpB,GAAIK,AAAO,KAAPA,EACF,OAAO,GAGT,IAAMU,EAAqC,CAAC,EAE5CF,EAAOG,QAAQ,CAACC,EAAKC,KACfV,EAAaW,SAASD,IACxBH,CAAAA,CAAU,CAACG,EAAI,CAAGD,CAAE,CAExB,GAEA,IAAIG,EAAWf,EACTgB,EAAiBD,EAASE,QAAQ,KAExC,GAAID,AAAmB,KAAnBA,EAAuB,CACzB,IAAME,EAAgB,IAAIC,gBAAgBJ,EAASK,MAAMJ,IAEzDE,EAAcP,QAAQ,CAACC,EAAKC,KAC1BH,CAAU,CAACG,EAAI,CAAGD,CACpB,GACAG,EAAWA,EAASM,UAAU,EAAGL,EACnC,CACA,IAAMM,EAAe,IAAIH,gBAAgBT,GAAYa,WAErD,OAAOD,GAAcE,OAAOC,OAAS,CAACV,EAAUO,EAAa,CAACI,KAAK,KAAOX,CAC5E,EAAG,CAACZ,EAAcK,EAAQR,EAAG,EAE7B,OACE,EAACH,GAAiB,GAAGK,CAAK,CAAEF,GAAIS,WAC7BR,GAGP,CAAA,CAEoB"}
1
+ {"version":3,"sources":["../src/link.tsx"],"sourcesContent":["import React, { type FC, useMemo } from 'react';\nimport {\n Link as ReactRouterLink,\n type LinkProps as ReactRouterLinkProps,\n type To,\n useSearchParams,\n} from 'react-router-dom';\n\nexport interface LinkProps extends Omit<ReactRouterLinkProps, 'to'> {\n /** 保留字 */\n reserved?: string | string[];\n to: To | -1;\n}\n\n/** 跳转时继承部分query参数\n * @default {string[]} ['menuId', 'dynamicTitle'] \n */\nconst Link: FC<LinkProps> = ({ reserved, to, children, ...props }) => {\n const reservedWord = useMemo(() => {\n return ['menuId', 'dynamicTitle', ...(Array.isArray(reserved) ? reserved : [reserved])].filter(\n Boolean,\n );\n }, [reserved]);\n const [search] = useSearchParams();\n const toUrl = useMemo(() => {\n if (to === -1) {\n return -1;\n }\n /** 提取保留字属性 */\n const nextSearch: Record<string, string> = {};\n\n search.forEach((val, key) => {\n if (reservedWord.includes(key)) {\n nextSearch[key] = val;\n }\n });\n\n let entryUrl = to as string;\n const entrySearchIdx = entryUrl.indexOf('?');\n\n if (entrySearchIdx !== -1) {\n const searchByToUrl = new URLSearchParams(entryUrl.slice(entrySearchIdx));\n\n searchByToUrl.forEach((val, key) => {\n nextSearch[key] = val;\n });\n entryUrl = entryUrl.substring(0, entrySearchIdx);\n }\n const searchString = new URLSearchParams(nextSearch).toString();\n\n return searchString?.trim().length ? [entryUrl, searchString].join('?') : entryUrl;\n }, [reservedWord, search, to]);\n\n return (\n <ReactRouterLink {...props} to={toUrl as To}>\n {children}\n </ReactRouterLink>\n );\n};\n\nexport default Link;\n"],"names":["useMemo","Link","ReactRouterLink","useSearchParams","reserved","to","children","props","reservedWord","Array","isArray","filter","Boolean","search","toUrl","nextSearch","forEach","val","key","includes","entryUrl","entrySearchIdx","indexOf","searchByToUrl","URLSearchParams","slice","substring","searchString","toString","trim","length","join"],"mappings":"uCAAA,QAAyBA,WAAAA,CAAO,KAAQ,OAAQ,AAChD,QACEC,QAAQC,CAAe,CAGvBC,mBAAAA,CAAe,KACV,kBAAmB,AAsD1B,eA3C4B,CAAA,CAAC,CAAEC,SAAAA,CAAQ,CAAEC,GAAAA,CAAE,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAAO,IAC/D,IAAMC,EAAeR,EAAQ,IACpB,CAAC,SAAU,kBAAoBS,MAAMC,OAAO,CAACN,GAAYA,EAAW,CAACA,EAAS,CAAE,CAACO,MAAM,CAC5FC,SAED,CAACR,EAAS,EACP,CAACS,EAAO,CAAGV,IACXW,EAAQd,EAAQ,KACpB,GAAIK,AAAO,KAAPA,EACF,OAAO,GAGT,IAAMU,EAAqC,CAAC,EAE5CF,EAAOG,OAAO,CAAC,CAACC,EAAKC,KACfV,EAAaW,QAAQ,CAACD,IACxBH,CAAAA,CAAU,CAACG,EAAI,CAAGD,CAAE,CAExB,GAEA,IAAIG,EAAWf,EACTgB,EAAiBD,EAASE,OAAO,CAAC,IAEjB,CAAA,KAAnBD,IAGFE,AAFsB,IAAIC,gBAAgBJ,EAASK,KAAK,CAACJ,IAE3CL,OAAO,CAAC,CAACC,EAAKC,KAC1BH,CAAU,CAACG,EAAI,CAAGD,CACpB,GACAG,EAAWA,EAASM,SAAS,CAAC,EAAGL,IAEnC,IAAMM,EAAe,IAAIH,gBAAgBT,GAAYa,QAAQ,GAE7D,OAAOD,GAAcE,OAAOC,OAAS,CAACV,EAAUO,EAAa,CAACI,IAAI,CAAC,KAAOX,CAC5E,EAAG,CAACZ,EAAcK,EAAQR,EAAG,EAE7B,OACE,EAACH,GAAiB,GAAGK,CAAK,CAAEF,GAAIS,WAC7BR,GAGP,CAAA,CAEoB"}
@@ -1,2 +1,2 @@
1
- import e from"react-dom";import r from"react-refresh/cjs/react-refresh-runtime.development.js";let{injectIntoGlobalHook:t}=r;export const injectRemoteReactRefresh=()=>{t(window),window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject(e)};
1
+ import e from"react-dom";import{injectIntoGlobalHook as r}from"react-refresh/cjs/react-refresh-runtime.development.js";export const injectRemoteReactRefresh=()=>{r(window),window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject(e)};
2
2
  //# sourceMappingURL=prefix-remote-react-refresh.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/prefix-remote-react-refresh.ts"],"sourcesContent":["import ReactDOM from 'react-dom';\nimport refresh from 'react-refresh/cjs/react-refresh-runtime.development.js';\n\nconst { injectIntoGlobalHook } = refresh;\n\nexport const injectRemoteReactRefresh = () => {\n injectIntoGlobalHook(window);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject(ReactDOM);\n};\n"],"names":["ReactDOM","refresh","injectIntoGlobalHook","injectRemoteReactRefresh","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","inject"],"mappings":"AAAA,OAAOA,MAAc,WAAY,AACjC,QAAOC,MAAa,wDAAyD,CAE7E,GAAM,CAAEC,qBAAAA,CAAoB,CAAE,CAAGD,CAEjC,QAAO,MAAME,yBAA2B,KACtCD,EAAqBE,QAGrBA,OAAOC,+BAA+BC,OAAON,EAC/C,CAAE"}
1
+ {"version":3,"sources":["../src/prefix-remote-react-refresh.ts"],"sourcesContent":["import ReactDOM from 'react-dom';\nimport { injectIntoGlobalHook } from 'react-refresh/cjs/react-refresh-runtime.development.js';\n\nexport const injectRemoteReactRefresh = () => {\n injectIntoGlobalHook(window);\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.inject(ReactDOM);\n};\n"],"names":["ReactDOM","injectIntoGlobalHook","injectRemoteReactRefresh","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","inject"],"mappings":"AAAA,OAAOA,MAAc,WAAY,AACjC,QAASC,wBAAAA,CAAoB,KAAQ,wDAAyD,AAE9F,QAAO,MAAMC,yBAA2B,KACtCD,EAAqBE,QACrBA,OAAOC,8BAA8B,CAACC,MAAM,CAACL,EAC/C,CAAE"}
@@ -1,2 +1,2 @@
1
- import{useNavigate as e,useSearchParams as r}from"react-router-dom";export default(t=>{let a=Array.from(new Set(["menuId","dynamicTitle",...t||[]])).filter(Boolean),o=e(),[l]=r();return(e,r)=>{if(-1===e){o(-1);return}let t={},n=e.split("?"),i=new URLSearchParams(n[1]||"");for(let[e,r]of l)a.includes(e)&&(t[e]=r);for(let[e,r]of i)a.includes(e)&&(t[e]=r);let f=new URLSearchParams(t),m=f.toString(),u=m?`${n[0]}?${m}`:n[0];o(u,r)}});
1
+ import{useNavigate as e,useSearchParams as r}from"react-router-dom";export default(t=>{let a=Array.from(new Set(["menuId","dynamicTitle",...t||[]])).filter(Boolean),o=e(),[l]=r();return(e,r)=>{if(-1===e){o(-1);return}let t={},n=e.split("?"),i=new URLSearchParams(n[1]||"");for(let[e,r]of l)a.includes(e)&&(t[e]=r);for(let[e,r]of i)a.includes(e)&&(t[e]=r);let f=new URLSearchParams(t).toString();o(f?`${n[0]}?${f}`:n[0],r)}});
2
2
  //# sourceMappingURL=use-navgate.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/use-navgate.ts"],"sourcesContent":["import {\n type NavigateOptions,\n type To,\n useNavigate as useNavigateReactRouter,\n useSearchParams,\n} from 'react-router-dom';\n\n/** 跳转时继承部分query参数\n * @default {string[]} ['menuId', 'dynamicTitle'] \n */\nconst useNavigate = (\n /** search保留字 */\n reserved?: string | string[],\n) => {\n const reservedWord = Array.from(new Set(['menuId', 'dynamicTitle', ...(reserved || [])])).filter(\n Boolean,\n );\n const navigate = useNavigateReactRouter();\n const [search] = useSearchParams();\n\n const navigateTo = (to: To | -1, options?: NavigateOptions) => {\n if (to === -1) {\n navigate(-1);\n return;\n }\n /** 提取保留字属性 */\n const nextSearch: Record<string, string> = {};\n const urlParts = (to as string).split('?');\n const searchByToUrl = new URLSearchParams(urlParts[1] || '');\n\n for (const [key, val] of search) {\n if (reservedWord.includes(key)) {\n nextSearch[key] = val;\n }\n }\n for (const [key, val] of searchByToUrl) {\n if (reservedWord.includes(key)) {\n nextSearch[key] = val;\n }\n }\n\n const searchObj = new URLSearchParams(nextSearch);\n const searchString = searchObj.toString();\n const toUrl = searchString ? `${urlParts[0]}?${searchString}` : urlParts[0];\n\n navigate(toUrl, options);\n };\n\n return navigateTo;\n};\n\nexport default useNavigate;\n"],"names":["useNavigate","useNavigateReactRouter","useSearchParams","reserved","reservedWord","Array","from","Set","filter","Boolean","navigate","search","to","options","nextSearch","urlParts","split","searchByToUrl","URLSearchParams","key","val","includes","searchObj","searchString","toString","toUrl"],"mappings":"AAAA,OAGEA,eAAeC,CAAsB,CACrCC,mBAAAA,CAAe,KACV,kBAAmB,AA8C1B,eAzCoB,CAAA,AAElBC,IAEA,IAAMC,EAAeC,MAAMC,KAAK,IAAIC,IAAI,CAAC,SAAU,kBAAoBJ,GAAY,EAAE,CAAE,GAAGK,OACxFC,SAEIC,EAAWT,IACX,CAACU,EAAO,CAAGT,IA8BjB,MA5BmB,CAACU,EAAaC,KAC/B,GAAID,AAAO,KAAPA,EAAW,CACbF,EAAS,IACT,MACF,CAEA,IAAMI,EAAqC,CAAC,EACtCC,EAAW,AAACH,EAAcI,MAAM,KAChCC,EAAgB,IAAIC,gBAAgBH,CAAQ,CAAC,EAAE,EAAI,IAEzD,IAAK,GAAM,CAACI,EAAKC,EAAI,GAAIT,EACnBP,EAAaiB,SAASF,IACxBL,CAAAA,CAAU,CAACK,EAAI,CAAGC,CAAE,EAGxB,IAAK,GAAM,CAACD,EAAKC,EAAI,GAAIH,EACnBb,EAAaiB,SAASF,IACxBL,CAAAA,CAAU,CAACK,EAAI,CAAGC,CAAE,EAIxB,IAAME,EAAY,IAAIJ,gBAAgBJ,GAChCS,EAAeD,EAAUE,WACzBC,EAAQF,EAAe,CAAC,EAAER,CAAQ,CAAC,EAAE,CAAC,CAAC,EAAEQ,EAAa,CAAC,CAAGR,CAAQ,CAAC,EAAE,CAE3EL,EAASe,EAAOZ,EAClB,CAGF,CAAA,CAE2B"}
1
+ {"version":3,"sources":["../src/use-navgate.ts"],"sourcesContent":["import {\n type NavigateOptions,\n type To,\n useNavigate as useNavigateReactRouter,\n useSearchParams,\n} from 'react-router-dom';\n\n/** 跳转时继承部分query参数\n * @default {string[]} ['menuId', 'dynamicTitle'] \n */\nconst useNavigate = (\n /** search保留字 */\n reserved?: string | string[],\n) => {\n const reservedWord = Array.from(new Set(['menuId', 'dynamicTitle', ...(reserved || [])])).filter(\n Boolean,\n );\n const navigate = useNavigateReactRouter();\n const [search] = useSearchParams();\n\n const navigateTo = (to: To | -1, options?: NavigateOptions) => {\n if (to === -1) {\n navigate(-1);\n return;\n }\n /** 提取保留字属性 */\n const nextSearch: Record<string, string> = {};\n const urlParts = (to as string).split('?');\n const searchByToUrl = new URLSearchParams(urlParts[1] || '');\n\n for (const [key, val] of search) {\n if (reservedWord.includes(key)) {\n nextSearch[key] = val;\n }\n }\n for (const [key, val] of searchByToUrl) {\n if (reservedWord.includes(key)) {\n nextSearch[key] = val;\n }\n }\n\n const searchObj = new URLSearchParams(nextSearch);\n const searchString = searchObj.toString();\n const toUrl = searchString ? `${urlParts[0]}?${searchString}` : urlParts[0];\n\n navigate(toUrl, options);\n };\n\n return navigateTo;\n};\n\nexport default useNavigate;\n"],"names":["useNavigate","useNavigateReactRouter","useSearchParams","reserved","reservedWord","Array","from","Set","filter","Boolean","navigate","search","to","options","nextSearch","urlParts","split","searchByToUrl","URLSearchParams","key","val","includes","searchString","searchObj","toString"],"mappings":"AAAA,OAGEA,eAAeC,CAAsB,CACrCC,mBAAAA,CAAe,KACV,kBAAmB,AA8C1B,eAzCoB,CAAA,AAElBC,IAEA,IAAMC,EAAeC,MAAMC,IAAI,CAAC,IAAIC,IAAI,CAAC,SAAU,kBAAoBJ,GAAY,EAAE,CAAE,GAAGK,MAAM,CAC9FC,SAEIC,EAAWT,IACX,CAACU,EAAO,CAAGT,IA8BjB,MA5BmB,CAACU,EAAaC,KAC/B,GAAID,AAAO,KAAPA,EAAW,CACbF,EAAS,IACT,MACF,CAEA,IAAMI,EAAqC,CAAC,EACtCC,EAAW,AAACH,EAAcI,KAAK,CAAC,KAChCC,EAAgB,IAAIC,gBAAgBH,CAAQ,CAAC,EAAE,EAAI,IAEzD,IAAK,GAAM,CAACI,EAAKC,EAAI,GAAIT,EACnBP,EAAaiB,QAAQ,CAACF,IACxBL,CAAAA,CAAU,CAACK,EAAI,CAAGC,CAAE,EAGxB,IAAK,GAAM,CAACD,EAAKC,EAAI,GAAIH,EACnBb,EAAaiB,QAAQ,CAACF,IACxBL,CAAAA,CAAU,CAACK,EAAI,CAAGC,CAAE,EAKxB,IAAME,EAAeC,AADH,IAAIL,gBAAgBJ,GACPU,QAAQ,GAGvCd,EAFcY,EAAe,CAAC,EAAEP,CAAQ,CAAC,EAAE,CAAC,CAAC,EAAEO,EAAa,CAAC,CAAGP,CAAQ,CAAC,EAAE,CAE3DF,EAClB,CAGF,CAAA,CAE2B"}
package/lib.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "../../../lib"
5
+ },
6
+ "include": ["../../../components", "../../../typings"],
7
+ "exclude": ["../../../*/**/__tests__/*"]
8
+ }
package/mdx.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface MDXComponents {
3
+ [k: string]: (props: Record<string, any>) => JSX.Element;
4
+ }
5
+ interface MDXProviderProps extends React.Component {
6
+ children: JSX.Element;
7
+ components: MDXComponents | ((props: Record<string, any>) => MDXComponents);
8
+ disableParentContext?: boolean;
9
+ }
10
+ export declare function useMDXComponents(components: MDXComponents | ((props: Record<string, any>) => MDXComponents)): MDXComponents;
11
+ export declare function MDXProvider(props: MDXProviderProps): JSX.Element;
12
+ export {};
package/mdx.js ADDED
@@ -0,0 +1,3 @@
1
+ import e from"react";let t={},n=e.createContext(t);export function useMDXComponents(t){let o=e.useContext(n);return e.useMemo(function(){return"function"==typeof t?t(o):{...o,...t}},[o,t])}export function MDXProvider(o){let r;return r=o.disableParentContext?"function"==typeof o.components?o.components(t):o.components||t:useMDXComponents(o.components),e.createElement(n.Provider,{value:r},o.children)}
2
+
3
+ //# sourceMappingURL=mdx.js.map
package/mdx.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["mdx.ts"],"names":[],"mappings":"AAAA,OAAO,MAAW,OAAQ,CAU1B,IAAM,EAA2C,CAAC,EAC5C,EAAa,EAAM,aAAa,CAAC,EAEvC,QAAO,SAAS,iBACd,CAA2E,EAE3E,IAAM,EAAoB,EAAM,UAAU,CAAC,GAE3C,OAAO,EAAM,OAAO,CAClB,iBACE,AAAI,AAAsB,YAAtB,OAAO,EACF,EAAW,GAGb,CAAE,GAAG,CAAiB,CAAE,GAAG,CAAU,AAAC,CAC/C,EACA,CAAC,EAAmB,EAAW,CAEnC,CAEA,OAAO,SAAS,YAAY,CAAuB,EAEjD,IAAI,EAWJ,OARE,EADE,EAAM,oBAAoB,CAE1B,AAA4B,YAA5B,OAAO,EAAM,UAAU,CACnB,EAAM,UAAU,CAAC,GACjB,EAAM,UAAU,EAAI,EAEV,iBAAiB,EAAM,UAAU,EAG5C,EAAM,aAAa,CAAC,EAAW,QAAQ,CAAE,CAAE,MAAO,CAAc,EAAG,EAAM,QAAQ,CAC1F","file":"mdx.js","sourcesContent":["import React from 'react';\n\ninterface MDXComponents {\n [k: string]: (props: Record<string, any>) => JSX.Element;\n}\ninterface MDXProviderProps extends React.Component {\n children: JSX.Element;\n components: MDXComponents | ((props: Record<string, any>) => MDXComponents);\n disableParentContext?: boolean;\n}\nconst emptyComponents: Readonly<MDXComponents> = {};\nconst MDXContext = React.createContext(emptyComponents);\n\nexport function useMDXComponents(\n components: MDXComponents | ((props: Record<string, any>) => MDXComponents),\n): MDXComponents {\n const contextComponents = React.useContext(MDXContext);\n\n return React.useMemo(\n function () {\n if (typeof components === 'function') {\n return components(contextComponents);\n }\n\n return { ...contextComponents, ...components };\n },\n [contextComponents, components],\n );\n}\n\nexport function MDXProvider(props: MDXProviderProps): JSX.Element {\n /** @type {Readonly<MDXComponents>} */\n let allComponents: Readonly<MDXComponents>;\n\n if (props.disableParentContext) {\n allComponents =\n typeof props.components === 'function'\n ? props.components(emptyComponents)\n : props.components || emptyComponents;\n } else {\n allComponents = useMDXComponents(props.components);\n }\n\n return React.createElement(MDXContext.Provider, { value: allComponents }, props.children);\n}\n"]}
package/package.json CHANGED
@@ -1,45 +1,48 @@
1
1
  {
2
2
  "name": "@moneko/react",
3
- "version": "1.0.5",
3
+ "version": "1.1.0",
4
4
  "description": "react",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
7
7
  "prebuild": "rm -rf ./lib",
8
- "build": "swc src -d lib -D && tsc"
8
+ "postbuild": "tsc && tsc mdx.ts --declaration --emitDeclarationOnly --esModuleInterop",
9
+ "build": "swc src -d lib -D && swc mdx.ts -o mdx.js"
9
10
  },
10
11
  "author": "moneko",
11
12
  "type": "module",
12
13
  "license": "MIT",
13
14
  "dependencies": {
14
15
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
15
- "@types/react-router-dom": "5.3.3",
16
16
  "react-refresh": "0.14.0",
17
17
  "react-refresh-typescript": "2.0.9",
18
- "react-router": "6.15.0",
19
- "react-router-dom": "6.15.0",
20
- "shared-store-object": "1.0.8"
18
+ "react-router": "6.20.1",
19
+ "react-router-dom": "6.20.1",
20
+ "shared-store-object": "1.0.9"
21
21
  },
22
22
  "devDependencies": {
23
- "@swc/cli": "0.1.62",
24
- "@swc/core": "1.3.62",
25
- "@types/shelljs": "^0.8.12",
26
- "@types/webpack-env": "1.18.1",
27
- "@types/react": "^18.2.16",
28
- "@types/react-dom": "^18.2.7",
29
- "antd": "5.7.3",
30
- "eslint-config-neko": "^2.0.0",
23
+ "@swc/cli": "0.1.63",
24
+ "@swc/core": "1.3.100",
25
+ "@types/shelljs": "^0.8.15",
26
+ "@types/webpack-env": "1.18.4",
27
+ "@types/react": "^18.2.41",
28
+ "@types/react-dom": "^18.2.17",
29
+ "antd": "5.11.5",
30
+ "eslint-config-neko": "^2.2.0",
31
31
  "react": "^18.2.0",
32
32
  "react-dom": "^18.2.0",
33
33
  "shelljs": "^0.8.5",
34
- "stylelint-config-moneko": "^1.0.17",
35
- "swc-plugin-another-transform-imports": "0.2.4",
36
- "typescript": "5.0.4"
34
+ "stylelint-config-moneko": "^1.2.1",
35
+ "swc-plugin-another-transform-imports": "0.2.7",
36
+ "typescript": "5.3.2"
37
37
  },
38
38
  "files": [
39
39
  "lib",
40
40
  "jest-preset.js",
41
41
  "base.json",
42
42
  "lib.json",
43
- "env.d.ts"
43
+ "env.d.ts",
44
+ "mdx.js",
45
+ "mdx.js.map",
46
+ "mdx.d.ts"
44
47
  ]
45
48
  }