codeforlife 2.10.6 → 2.11.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/README.md +10 -6
- package/dist/App-3VkR-ZEZ.js +27 -0
- package/dist/App-3VkR-ZEZ.js.map +1 -0
- package/dist/App-UfeajXtp.cjs +2 -0
- package/dist/App-UfeajXtp.cjs.map +1 -0
- package/dist/Countdown-BtUbr1J_.cjs +2 -0
- package/dist/{Countdown-CyJ-01oU.cjs.map → Countdown-BtUbr1J_.cjs.map} +1 -1
- package/dist/{Countdown-BTyB1rrK.js → Countdown-DhjAmB0u.js} +9 -9
- package/dist/{Countdown-BTyB1rrK.js.map → Countdown-DhjAmB0u.js.map} +1 -1
- package/dist/{Image-CgYjq-tA.cjs → Image-CgRVUblT.cjs} +2 -2
- package/dist/{Image-CgYjq-tA.cjs.map → Image-CgRVUblT.cjs.map} +1 -1
- package/dist/{Image-C-f2ChBh.js → Image-DTOu0h-V.js} +2 -2
- package/dist/{Image-C-f2ChBh.js.map → Image-DTOu0h-V.js.map} +1 -1
- package/dist/{LinkButton-BOPjG7_2.cjs → LinkButton-Kw2brLTK.cjs} +2 -2
- package/dist/{LinkButton-BOPjG7_2.cjs.map → LinkButton-Kw2brLTK.cjs.map} +1 -1
- package/dist/{LinkButton-Bk50AHHg.js → LinkButton-sQ5jgHnX.js} +3 -3
- package/dist/{LinkButton-Bk50AHHg.js.map → LinkButton-sQ5jgHnX.js.map} +1 -1
- package/dist/{Navigate-SL_oMjPc.js → Navigate-ClPcw87e.js} +3 -3
- package/dist/{Navigate-SL_oMjPc.js.map → Navigate-ClPcw87e.js.map} +1 -1
- package/dist/Navigate-CrMwdIBB.cjs +2 -0
- package/dist/{Navigate-C_sgy8Xs.cjs.map → Navigate-CrMwdIBB.cjs.map} +1 -1
- package/dist/_commonjsHelpers-DKOUU3wS.cjs +2 -0
- package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +1 -0
- package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
- package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
- package/dist/api/endpoints/index.cjs.js +1 -1
- package/dist/api/endpoints/index.es.js +2 -2
- package/dist/api/index.cjs.js +3 -3
- package/dist/api/index.es.js +3 -3
- package/dist/api-9cnyvZj7.cjs +2 -0
- package/dist/{api-DIgp_6Vr.cjs.map → api-9cnyvZj7.cjs.map} +1 -1
- package/dist/{api-BvUiTeR7.js → api-BFYu8ZvQ.js} +2 -2
- package/dist/{api-BvUiTeR7.js.map → api-BFYu8ZvQ.js.map} +1 -1
- package/dist/{api-CaeeoZaI.cjs → api-CAH3GT1O.cjs} +2 -2
- package/dist/{api-CaeeoZaI.cjs.map → api-CAH3GT1O.cjs.map} +1 -1
- package/dist/{auth-CQ1InCxP.js → auth-Bb8WkZGN.js} +4 -4
- package/dist/{auth-CQ1InCxP.js.map → auth-Bb8WkZGN.js.map} +1 -1
- package/dist/auth-BwpsrTko.cjs +2 -0
- package/dist/{auth-B7Vdot4N.cjs.map → auth-BwpsrTko.cjs.map} +1 -1
- package/dist/client-BK9NlSVR.js +25208 -0
- package/dist/client-BK9NlSVR.js.map +1 -0
- package/dist/client-CmAMc2Wj.cjs +251 -0
- package/dist/client-CmAMc2Wj.cjs.map +1 -0
- package/dist/components/form/index.cjs.js +1 -1
- package/dist/components/form/index.es.js +1 -1
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.cjs.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.es.js +146 -182
- package/dist/components/index.es.js.map +1 -1
- package/dist/components/page/index.cjs.js +1 -1
- package/dist/components/page/index.es.js +1 -1
- package/dist/components/router/index.cjs.js +1 -1
- package/dist/components/router/index.es.js +2 -2
- package/dist/components/table/index.cjs.js +1 -1
- package/dist/components/table/index.es.js +1 -1
- package/dist/features/index.cjs.js +1 -1
- package/dist/features/index.cjs.js.map +1 -1
- package/dist/features/index.es.js +10 -11
- package/dist/features/index.es.js.map +1 -1
- package/dist/general-Bo6JGvKB.cjs +2 -0
- package/dist/{general-BPbbmkeX.cjs.map → general-Bo6JGvKB.cjs.map} +1 -1
- package/dist/{general-CtTJPCJn.js → general-D7Hqi3gj.js} +3 -3
- package/dist/{general-CtTJPCJn.js.map → general-D7Hqi3gj.js.map} +1 -1
- package/dist/hooks/index.cjs.js +1 -1
- package/dist/hooks/index.es.js +2 -2
- package/dist/{index-CBPn0wyX.cjs → index-5C9hpxRF.cjs} +2 -2
- package/dist/{index-CBPn0wyX.cjs.map → index-5C9hpxRF.cjs.map} +1 -1
- package/dist/{index-Dfo744Sb.js → index-B3e_XaVG.js} +2 -2
- package/dist/{index-Dfo744Sb.js.map → index-B3e_XaVG.js.map} +1 -1
- package/dist/{index-CXYppxE3.cjs → index-B89FjK7v.cjs} +2 -2
- package/dist/{index-CXYppxE3.cjs.map → index-B89FjK7v.cjs.map} +1 -1
- package/dist/{index-CI5O_yH6.js → index-BRHFlEjS.js} +37 -39
- package/dist/{index-CI5O_yH6.js.map → index-BRHFlEjS.js.map} +1 -1
- package/dist/{index-D8Gc0IWi.js → index-CHboZsxD.js} +2 -2
- package/dist/{index-D8Gc0IWi.js.map → index-CHboZsxD.js.map} +1 -1
- package/dist/index-CwC9mpb3.cjs +2 -0
- package/dist/{index-B6aNVvMr.cjs.map → index-CwC9mpb3.cjs.map} +1 -1
- package/dist/{index-DCI-3m7f.cjs → index-DuArGzQE.cjs} +3 -3
- package/dist/{index-DCI-3m7f.cjs.map → index-DuArGzQE.cjs.map} +1 -1
- package/dist/{index-DcmDxIXA.js → index-hdS8RgRc.js} +5 -5
- package/dist/{index-DcmDxIXA.js.map → index-hdS8RgRc.js.map} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.es.js +6 -6
- package/dist/{jsx-runtime-Dszzpdy0.cjs → jsx-runtime-B2pbW5Fp.cjs} +3 -3
- package/dist/{jsx-runtime-Dszzpdy0.cjs.map → jsx-runtime-B2pbW5Fp.cjs.map} +1 -1
- package/dist/{jsx-runtime-C7wFtzyj.js → jsx-runtime-lzYHhGH3.js} +15 -15
- package/dist/{jsx-runtime-C7wFtzyj.js.map → jsx-runtime-lzYHhGH3.js.map} +1 -1
- package/dist/{schemas-D3tO0rys.js → schemas-BMQZbhti.js} +2 -2
- package/dist/{schemas-D3tO0rys.js.map → schemas-BMQZbhti.js.map} +1 -1
- package/dist/{schemas-CpAWhNsP.cjs → schemas-DXX4rh8i.cjs} +2 -2
- package/dist/{schemas-CpAWhNsP.cjs.map → schemas-DXX4rh8i.cjs.map} +1 -1
- package/dist/server/App.d.ts +15 -0
- package/dist/server/entry.cjs.js +209 -0
- package/dist/server/entry.cjs.js.map +1 -0
- package/dist/server/entry.d.ts +14 -0
- package/dist/server/entry.es.js +21885 -0
- package/dist/server/entry.es.js.map +1 -0
- package/dist/server/index.cjs.js +6 -0
- package/dist/server/index.cjs.js.map +1 -0
- package/dist/server/index.d.ts +6 -0
- package/dist/{server.es.js → server/index.es.js} +19 -17
- package/dist/server/index.es.js.map +1 -0
- package/dist/settings/index.cjs.js +1 -1
- package/dist/settings/index.cjs.js.map +1 -1
- package/dist/settings/index.d.ts +1 -2
- package/dist/settings/index.es.js +5 -5
- package/dist/settings/index.es.js.map +1 -1
- package/dist/theme/components/index.cjs.js +1 -1
- package/dist/theme/components/index.es.js +1 -1
- package/dist/theme/index.cjs.js +1 -1
- package/dist/theme/index.cjs.js.map +1 -1
- package/dist/theme/index.d.ts +1 -2
- package/dist/theme/index.es.js +5 -5
- package/dist/theme/index.es.js.map +1 -1
- package/dist/{urls-RtSTEZfW.cjs → urls-CGZI0f1w.cjs} +2 -2
- package/dist/{urls-RtSTEZfW.cjs.map → urls-CGZI0f1w.cjs.map} +1 -1
- package/dist/{urls-5m9PgoEX.js → urls-DP4a8kxP.js} +2 -2
- package/dist/{urls-5m9PgoEX.js.map → urls-DP4a8kxP.js.map} +1 -1
- package/dist/utils/api.cjs.js +1 -1
- package/dist/utils/api.es.js +2 -2
- package/dist/utils/router.cjs.js +1 -1
- package/dist/utils/router.es.js +2 -2
- package/dist/utils/test.cjs.js +1 -250
- package/dist/utils/test.cjs.js.map +1 -1
- package/dist/utils/test.es.js +20 -25223
- package/dist/utils/test.es.js.map +1 -1
- package/dist/utils/theme.cjs.js +1 -1
- package/dist/utils/theme.es.js +2 -2
- package/package.json +16 -9
- package/dist/Countdown-CyJ-01oU.cjs +0 -2
- package/dist/Navigate-C_sgy8Xs.cjs +0 -2
- package/dist/api-DIgp_6Vr.cjs +0 -2
- package/dist/auth-B7Vdot4N.cjs +0 -2
- package/dist/components/App.d.ts +0 -18
- package/dist/general-BPbbmkeX.cjs +0 -2
- package/dist/index-B6aNVvMr.cjs +0 -2
- package/dist/server.cjs.js +0 -6
- package/dist/server.cjs.js.map +0 -1
- package/dist/server.es.js.map +0 -1
- /package/dist/{server.d.ts → server/server.d.ts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../index-DuArGzQE.cjs");exports.ApiAutocompleteField=e.ApiAutocompleteField;exports.AutocompleteField=e.AutocompleteField;exports.CheckboxField=e.CheckboxField;exports.CountryField=e.CountryField;exports.DatePickerField=e.DatePickerField;exports.EmailField=e.EmailField;exports.FirstNameField=e.FirstNameField;exports.Form=e.Form;exports.OtpField=e.OtpField;exports.PasswordField=e.PasswordField;exports.RepeatField=e.RepeatField;exports.SubmitButton=e.SubmitButton;exports.TextField=e.TextField;exports.UkCountyField=e.UkCountyField;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as i, a as s, C as l, b as t, D as F, E as d, F as o, c as m, O as r, P as p, R as u, S as c, T as A, U as C } from "../../index-
|
|
1
|
+
import { A as i, a as s, C as l, b as t, D as F, E as d, F as o, c as m, O as r, P as p, R as u, S as c, T as A, U as C } from "../../index-BRHFlEjS.js";
|
|
2
2
|
export {
|
|
3
3
|
i as ApiAutocompleteField,
|
|
4
4
|
s as AutocompleteField,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("../index-DuArGzQE.cjs"),C=require("../index-5C9hpxRF.cjs"),g=require("../Navigate-CrMwdIBB.cjs"),w=require("../LinkButton-Kw2brLTK.cjs"),z=require("../index-CwC9mpb3.cjs"),o=require("../jsx-runtime-B2pbW5Fp.cjs"),c=require("@mui/material"),j=require("react"),S=require("../utils/general.cjs.js"),B=require("@mui/icons-material"),_=require("../Countdown-BtUbr1J_.cjs"),O=require("../Image-CgRVUblT.cjs"),T=require("../api-CAH3GT1O.cjs"),M=require("../api-9cnyvZj7.cjs"),$=({open:e=!1,onClick:n,...t})=>{const[s,i]=j.useState(e);return j.useEffect(()=>{i(e)},[e]),o.jsxRuntimeExports.jsx(c.Tooltip,{open:s,onMouseOver:()=>{s||i(!0)},onMouseLeave:()=>{i(!1)},onClick:S.wrap({after:()=>{i(!s)}},n),...t})},U=({content:e,children:n=o.jsxRuntimeExports.jsx(B.ContentCopy,{}),...t})=>o.jsxRuntimeExports.jsx(c.IconButton,{"data-testid":"copy-icon-button",onClick:()=>{navigator.clipboard.writeText(e)},...t,children:n}),D=({children:e="Download",endIcon:n=o.jsxRuntimeExports.jsx(B.Download,{}),file:t,...s})=>{let i,u;if("mimeType"in t){const{text:a,mimeType:x,name:r,charset:p="utf-8"}=t;let{extension:d}=t;d||(d="."+{plain:"txt",csv:"csv"}[x]),u={download:r+d,href:`data:text/${x};charset=${p},${encodeURIComponent(a)}`}}else i=URL.createObjectURL(t),u={href:i};return j.useEffect(()=>()=>{i&&URL.revokeObjectURL(i)},[i]),o.jsxRuntimeExports.jsx(c.Button,{endIcon:n,...s,...u,children:e})},F=({containerProps:e,toolbarProps:n,elevation:t=4,children:s,...i})=>{const u=c.useScrollTrigger({disableHysteresis:!0,threshold:0});return j.cloneElement(o.jsxRuntimeExports.jsx(c.AppBar,{elevation:t,...i,children:o.jsxRuntimeExports.jsx(c.Container,{...e,children:o.jsxRuntimeExports.jsx(c.Toolbar,{...n,children:s})})}),{position:u?"fixed":"sticky"})},G=({children:e,inputProps:n,...t})=>o.jsxRuntimeExports.jsxs(c.Button,{component:"label",...t,children:[e,o.jsxRuntimeExports.jsx("input",{type:"file",hidden:!0,...n})]}),N=({styleType:e,listProps:n={},pl:t=4,children:s})=>{const{sx:i,...u}=n,a={display:"list-item"};return o.jsxRuntimeExports.jsx(c.List,{sx:{listStyleType:e,pl:t,".MuiListItem-root":a,".MuiListItemText-root":a,...i},...u,children:s})},V=({rows:e,containerProps:n={},globalItemProps:t})=>{const s=Number(n.columns??12),i=x=>Math.floor(s/x),u=(x,r,p)=>Math.floor(r/i(p))*e.length+x,a=(x,r)=>{const p=e[0].length%i(r);return p!==0&&x===e[0].length-1?(s-p*r)/2:0};return o.jsxRuntimeExports.jsx(c.Grid,{container:!0,...n,children:e.map((x,r)=>x.map(({element:p,itemProps:d={}},l)=>o.jsxRuntimeExports.jsx(c.Grid,{order:{xs:u(r,l,t.size.xs),sm:u(r,l,t.size.sm),md:u(r,l,t.size.md),lg:u(r,l,t.size.lg),xl:u(r,l,t.size.xl)},offset:{xs:a(l,t.size.xs),sm:a(l,t.size.sm),md:a(l,t.size.md),lg:a(l,t.size.lg),xl:a(l,t.size.xl)},...t,...d,children:p},`${r}-${l}`)))})},A=({elementId:e,options:n,...t})=>o.jsxRuntimeExports.jsx(c.Link,{...t,onClick:()=>{document.getElementById(e)?.scrollIntoView(n)}}),Y=({children:e,useLazyListQuery:n,preferCacheValue:t,filters:s,page:i=0,rowsPerPage:u=50,rowsPerPageOptions:a=[50,100,150],stackProps:x,onRowsPerPageChange:r,onPageChange:p,...d})=>{const[l,h]=n(),[{limit:f,page:k,offset:R},y]=M.usePagination({page:i,limit:u});j.useEffect(()=>{l({limit:f,offset:R,...s},t)},[l,f,R,...Object.values(s||{}),t]);const{count:v,max_limit:E}=h.data||{};return E&&(a=a.filter(m=>m<=E)),o.jsxRuntimeExports.jsxs(c.Stack,{...x,children:[T.handleResultState(h,({data:m})=>e(m,{limit:f,page:k,offset:R,count:v,maxLimit:E})),o.jsxRuntimeExports.jsx(c.TablePagination,{component:"div",count:v??0,rowsPerPage:f,onRowsPerPageChange:m=>{y({limit:parseInt(m.target.value),page:0}),r&&r(m)},page:k,onPageChange:(m,L)=>{y(({limit:b})=>({limit:b,page:L})),p&&p(m,L)},rowsPerPageOptions:a.sort((m,L)=>m-L),...d})]})},H=({src:e,style:n={},...t})=>o.jsxRuntimeExports.jsx(c.Box,{component:"iframe",width:"100%",src:e,title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen",style:{border:"0px",aspectRatio:"16 / 9",...n},...t});exports.forms=q.index;exports.pages=C.index;exports.Link=g.Link;exports.LinkIconButton=g.LinkIconButton;exports.LinkListItem=g.LinkListItem;exports.LinkTab=g.LinkTab;exports.Navigate=g.Navigate;exports.LinkButton=w.LinkButton;exports.tables=z.index;exports.Countdown=_.Countdown;exports.Image=O.Image;exports.SyncError=T.SyncError;exports.ClickableTooltip=$;exports.CopyIconButton=U;exports.DownloadFileButton=D;exports.ElevatedAppBar=F;exports.InputFileButton=G;exports.ItemizedList=N;exports.OrderedGrid=V;exports.ScrollIntoViewLink=A;exports.TablePagination=Y;exports.YouTubeVideo=H;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../src/components/App.tsx","../../src/components/ClickableTooltip.tsx","../../src/components/CopyIconButton.tsx","../../src/components/DownloadFileButton.tsx","../../src/components/ElevatedAppBar.tsx","../../src/components/InputFileButton.tsx","../../src/components/ItemizedList.tsx","../../src/components/OrderedGrid.tsx","../../src/components/ScrollIntoViewLink.tsx","../../src/components/TablePagination.tsx","../../src/components/YouTubeVideo.tsx"],"sourcesContent":["import { BrowserRouter, Routes as RouterRoutes } from \"react-router\"\nimport { CssBaseline, ThemeProvider } from \"@mui/material\"\nimport { type FC, type JSX, type ReactNode } from \"react\"\nimport { Provider, type ProviderProps } from \"react-redux\"\nimport { type Action } from \"redux\"\nimport { StaticRouter } from \"react-router\"\nimport { type ThemeProviderProps } from \"@mui/material\"\n\nimport \"./App.css\"\nimport { useLocation } from \"../hooks\"\n// import { InactiveDialog, ScreenTimeDialog } from \"../features\"\n// import { useCountdown, useEventListener } from \"../hooks\"\n// import \"../scripts\"\n// import {\n// configureFreshworksWidget,\n// toggleOneTrustInfoDisplay,\n// } from \"../utils/window\"\n\nexport interface AppProps<A extends Action = Action, S = unknown> {\n path?: string\n theme: ThemeProviderProps[\"theme\"]\n store: ProviderProps<A, S>[\"store\"]\n routes: ReactNode\n header?: ReactNode\n footer?: ReactNode\n headerExcludePaths?: string[]\n footerExcludePaths?: string[]\n maxIdleSeconds?: number\n maxTotalSeconds?: number\n}\n\ntype BaseRoutesProps = Pick<\n AppProps,\n \"routes\" | \"header\" | \"footer\" | \"headerExcludePaths\" | \"footerExcludePaths\"\n>\n\nconst Routes: FC<BaseRoutesProps & { path: string }> = ({\n path,\n routes,\n header = <></>, // TODO: \"header = <Header />\"\n footer = <></>, // TODO: \"footer = <Footer />\"\n headerExcludePaths = [],\n footerExcludePaths = [],\n}) => (\n <>\n {!headerExcludePaths.includes(path) && header}\n <RouterRoutes>{routes}</RouterRoutes>\n {!footerExcludePaths.includes(path) && footer}\n </>\n)\n\nconst BrowserRoutes: FC<BaseRoutesProps> = props => {\n const { pathname } = useLocation()\n\n return <Routes path={pathname} {...props} />\n}\n\nconst App = <A extends Action = Action, S = unknown>({\n path,\n theme,\n store,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxIdleSeconds = 60 * 60,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n maxTotalSeconds = 60 * 60,\n ...routesProps\n}: AppProps<A, S>): JSX.Element => {\n // TODO: cannot use document during SSR\n // const root = document.getElementById(\"root\") as HTMLElement\n\n // const [idleSeconds, setIdleSeconds] = useCountdown(maxIdleSeconds)\n // const [totalSeconds, setTotalSeconds] = useCountdown(maxTotalSeconds)\n // const resetIdleSeconds = useCallback(() => {\n // setIdleSeconds(maxIdleSeconds)\n // }, [setIdleSeconds, maxIdleSeconds])\n\n // const isIdle = idleSeconds === 0\n // const tooMuchScreenTime = totalSeconds === 0\n\n // useEventListener(root, \"mousemove\", resetIdleSeconds)\n // useEventListener(root, \"keypress\", resetIdleSeconds)\n\n // React.useEffect(() => {\n // configureFreshworksWidget(\"hide\")\n // }, [])\n\n // if (import.meta.env.PROD) {\n // toggleOneTrustInfoDisplay()\n // }\n\n return (\n <ThemeProvider theme={theme}>\n <CssBaseline />\n <Provider store={store}>\n {/* <InactiveDialog open={isIdle} onClose={resetIdleSeconds} />\n <ScreenTimeDialog\n open={!isIdle && tooMuchScreenTime}\n onClose={() => {\n setTotalSeconds(maxTotalSeconds)\n }}\n /> */}\n {\n // https://github.com/remix-run/react-router/tree/main/examples/ssr\n path !== undefined ? (\n <StaticRouter location={path}>\n <Routes path={path} {...routesProps} />\n </StaticRouter>\n ) : (\n <BrowserRouter>\n <BrowserRoutes {...routesProps} />\n </BrowserRouter>\n )\n }\n </Provider>\n </ThemeProvider>\n )\n}\n\nexport default App\n\n// TODO: figure out what to do with this\n// function useOneTrustScripts(): void {\n// const oneTrustEventTypes = [\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/consent/5da42396-cb12-4493-8d04-5179033cfbad/OtAutoBlock.js\",\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js\",\n// type: \"text/javascript\",\n// charset: \"UTF-8\",\n// },\n// attrs: {\n// \"data-domain-script\": \"5da42396-cb12-4493-8d04-5179033cfbad\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// useExternalScript({\n// props: {\n// src: \"https://cdn-ukwest.onetrust.com/scripttemplates/202302.1.0/otBannerSdk.js\",\n// async: true,\n// type: \"text/javascript\",\n// },\n// eventTypes: [\"load\", \"error\"],\n// }),\n// ]\n// if (oneTrustEventTypes.some(t => t === \"error\")) {\n// alert(\"OneTrust failed to load!\")\n// }\n// }\n","import { Tooltip, type TooltipProps } from \"@mui/material\"\nimport React from \"react\"\n\nimport { wrap } from \"../utils/general\"\n\nexport interface ClickableTooltipProps extends TooltipProps {}\n\nconst ClickableTooltip: React.FC<ClickableTooltipProps> = ({\n open = false,\n onClick,\n ...otherTooltipProps\n}) => {\n const [_open, _setOpen] = React.useState(open)\n\n React.useEffect(() => {\n _setOpen(open)\n }, [open])\n\n return (\n <Tooltip\n open={_open}\n onMouseOver={() => {\n if (!_open) {\n _setOpen(true)\n }\n }}\n onMouseLeave={() => {\n _setOpen(false)\n }}\n onClick={wrap(\n {\n after: () => {\n _setOpen(!_open)\n },\n },\n onClick,\n )}\n {...otherTooltipProps}\n />\n )\n}\n\nexport default ClickableTooltip\n","import { IconButton, type IconButtonProps } from \"@mui/material\"\nimport { ContentCopy as ContentCopyIcon } from \"@mui/icons-material\"\nimport type { FC } from \"react\"\n\nexport interface CopyIconButtonProps extends Omit<IconButtonProps, \"onClick\"> {\n content: string\n}\n\nconst CopyIconButton: FC<CopyIconButtonProps> = ({\n content,\n children = <ContentCopyIcon />,\n ...otherIconButtonProps\n}) => {\n return (\n <IconButton\n data-testid=\"copy-icon-button\"\n onClick={() => {\n void navigator.clipboard.writeText(content)\n }}\n {...otherIconButtonProps}\n >\n {children}\n </IconButton>\n )\n}\n\nexport default CopyIconButton\n","import { Button, type ButtonProps } from \"@mui/material\"\nimport { type FC, useEffect } from \"react\"\nimport { Download as DownloadIcon } from \"@mui/icons-material\"\n\nexport type DownloadFileButtonProps = ButtonProps & {\n file:\n | Blob\n | MediaSource\n | {\n text: string\n mimeType: \"plain\" | \"csv\"\n name: string\n charset?: string\n extension?: string\n }\n}\n\nconst DownloadFileButton: FC<DownloadFileButtonProps> = ({\n children = \"Download\",\n endIcon = <DownloadIcon />,\n file,\n ...otherButtonProps\n}) => {\n let url: undefined | string = undefined\n let anchorProps: undefined | { download?: string; href: string } = undefined\n if (\"mimeType\" in file) {\n const { text, mimeType, name, charset = \"utf-8\" } = file\n let { extension } = file\n\n if (!extension) extension = \".\" + { plain: \"txt\", csv: \"csv\" }[mimeType]\n\n anchorProps = {\n download: name + extension,\n href: `data:text/${mimeType};charset=${charset},${encodeURIComponent(text)}`,\n }\n } else {\n url = URL.createObjectURL(file)\n\n anchorProps = { href: url }\n }\n\n useEffect(() => {\n return () => {\n if (url) URL.revokeObjectURL(url)\n }\n }, [url])\n\n return (\n <Button endIcon={endIcon} {...otherButtonProps} {...anchorProps}>\n {children}\n </Button>\n )\n}\n\nexport default DownloadFileButton\n","import {\n AppBar,\n type AppBarProps,\n Container,\n type ContainerProps,\n Toolbar,\n type ToolbarProps,\n useScrollTrigger,\n} from \"@mui/material\"\nimport { type FC, cloneElement } from \"react\"\n\nexport interface ElevatedAppBarProps extends Omit<AppBarProps, \"position\"> {\n containerProps: ContainerProps\n toolbarProps?: ToolbarProps\n}\n\nconst ElevatedAppBar: FC<ElevatedAppBarProps> = ({\n containerProps,\n toolbarProps,\n elevation = 4,\n children,\n ...otherProps\n}) => {\n const trigger = useScrollTrigger({\n disableHysteresis: true,\n threshold: 0,\n })\n\n return cloneElement(\n <AppBar elevation={elevation} {...otherProps}>\n <Container {...containerProps}>\n <Toolbar {...toolbarProps}>{children}</Toolbar>\n </Container>\n </AppBar>,\n {\n position: trigger ? \"fixed\" : \"sticky\",\n },\n )\n}\n\nexport default ElevatedAppBar\n","import { Button, type ButtonProps } from \"@mui/material\"\nimport {\n type DetailedHTMLProps,\n type FC,\n type InputHTMLAttributes,\n} from \"react\"\n\nexport interface InputFileButtonProps\n extends Omit<ButtonProps<\"label\">, \"component\"> {\n inputProps?: Omit<\n DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,\n \"type\" | \"hidden\"\n >\n}\n\nconst InputFileButton: FC<InputFileButtonProps> = ({\n children,\n inputProps,\n ...otherButtonProps\n}) => (\n <Button component=\"label\" {...otherButtonProps}>\n {children}\n <input type=\"file\" hidden {...inputProps} />\n </Button>\n)\n\nexport default InputFileButton\n","import { type FC, type ReactElement } from \"react\"\nimport {\n List,\n type ListItem,\n type ListItemText,\n type ListProps,\n} from \"@mui/material\"\n\ntype ListItemElement =\n | ReactElement<typeof ListItem | typeof ListItemText>\n | string\n\nexport interface ItemizedListProps {\n styleType:\n | \"unset\"\n | \"initial\"\n | \"inherit\"\n | \"upper-roman\"\n | \"upper-latin\"\n | \"upper-alpha\"\n | \"square\"\n | \"none\"\n | \"lower-roman\"\n | \"lower-latin\"\n | \"lower-greek\"\n | \"lower-alpha\"\n | \"georgian\"\n | \"disc\"\n | \"decimal-leading-zero\"\n | \"decimal\"\n | \"armenian\"\n | \"circle\"\n listProps?: ListProps\n pl?: number\n children: ListItemElement | ListItemElement[]\n}\n\nconst ItemizedList: FC<ItemizedListProps> = ({\n styleType,\n listProps = {},\n pl = 4,\n children,\n}) => {\n const { sx, ...otherProps } = listProps\n const listItemProps = { display: \"list-item\" }\n\n return (\n <List\n sx={{\n listStyleType: styleType,\n pl,\n \".MuiListItem-root\": listItemProps,\n \".MuiListItemText-root\": listItemProps,\n ...sx,\n }}\n {...otherProps}\n >\n {children}\n </List>\n )\n}\n\nexport default ItemizedList\n","import { type FC, type ReactElement } from \"react\"\nimport { Grid, type GridProps } from \"@mui/material\"\n\ninterface ItemProps\n extends Omit<GridProps, \"key\" | \"order\" | \"size\" | \"offset\"> {}\n\ninterface GlobalItemProps extends ItemProps {\n size: {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n }\n}\n\nexport interface OrderedGridProps {\n rows: Array<\n Array<{\n element: ReactElement\n itemProps?: ItemProps\n }>\n >\n containerProps?: Omit<GridProps, \"container\">\n globalItemProps: GlobalItemProps\n}\n\nconst OrderedGrid: FC<OrderedGridProps> = ({\n rows,\n containerProps = {},\n globalItemProps,\n}) => {\n const columns = Number(containerProps.columns ?? 12)\n\n const getItemsPerRow = (size: number): number => Math.floor(columns / size)\n\n const getOrder = (\n rowIndex: number,\n itemIndex: number,\n size: number,\n ): number =>\n Math.floor(itemIndex / getItemsPerRow(size)) * rows.length + rowIndex\n\n const getOffset = (itemIndex: number, size: number): number => {\n const itemsOnLastRow = rows[0].length % getItemsPerRow(size)\n return itemsOnLastRow !== 0 && itemIndex === rows[0].length - 1\n ? (columns - itemsOnLastRow * size) / 2\n : 0\n }\n\n return (\n <Grid container {...containerProps}>\n {rows.map((row, rowIndex) =>\n row.map(({ element, itemProps = {} }, itemIndex) => (\n <Grid\n key={`${rowIndex}-${itemIndex}`}\n order={{\n xs: getOrder(rowIndex, itemIndex, globalItemProps.size.xs),\n sm: getOrder(rowIndex, itemIndex, globalItemProps.size.sm),\n md: getOrder(rowIndex, itemIndex, globalItemProps.size.md),\n lg: getOrder(rowIndex, itemIndex, globalItemProps.size.lg),\n xl: getOrder(rowIndex, itemIndex, globalItemProps.size.xl),\n }}\n offset={{\n xs: getOffset(itemIndex, globalItemProps.size.xs),\n sm: getOffset(itemIndex, globalItemProps.size.sm),\n md: getOffset(itemIndex, globalItemProps.size.md),\n lg: getOffset(itemIndex, globalItemProps.size.lg),\n xl: getOffset(itemIndex, globalItemProps.size.xl),\n }}\n {...globalItemProps}\n {...itemProps}\n >\n {element}\n </Grid>\n )),\n )}\n </Grid>\n )\n}\n\nexport default OrderedGrid\n","import { Link, type LinkProps } from \"@mui/material\"\nimport { type FC } from \"react\"\nexport interface ScrollIntoViewLinkProps extends Omit<LinkProps, \"onClick\"> {\n elementId: string\n options?: ScrollIntoViewOptions\n}\n\nconst ScrollIntoViewLink: FC<ScrollIntoViewLinkProps> = ({\n elementId,\n options,\n ...linkProps\n}) => (\n <Link\n {...linkProps}\n onClick={() => {\n const element = document.getElementById(elementId)\n element?.scrollIntoView(options)\n }}\n />\n)\n\nexport default ScrollIntoViewLink\n","import {\n type ElementType,\n type JSX,\n type JSXElementConstructor,\n type ReactNode,\n useEffect,\n} from \"react\"\nimport {\n TablePagination as MuiTablePagination,\n type TablePaginationProps as MuiTablePaginationProps,\n Stack,\n type StackProps,\n type TablePaginationBaseProps,\n} from \"@mui/material\"\nimport type { TypedUseLazyQuery } from \"@reduxjs/toolkit/query/react\"\n\nimport { type ListArg, type ListResult, handleResultState } from \"../utils/api\"\nimport { type Pagination, usePagination } from \"../hooks/api\"\n\nexport type TablePaginationProps<\n QueryArg extends ListArg,\n ResultType extends ListResult<any>,\n RootComponent extends\n ElementType = JSXElementConstructor<TablePaginationBaseProps>,\n AdditionalProps = {},\n> = Omit<\n MuiTablePaginationProps<RootComponent, AdditionalProps>,\n | \"component\"\n | \"count\"\n | \"rowsPerPage\"\n | \"onRowsPerPageChange\"\n | \"rowsPerPageOptions\"\n | \"page\"\n | \"onPageChange\"\n> &\n Partial<\n Pick<\n MuiTablePaginationProps<RootComponent, AdditionalProps>,\n \"onRowsPerPageChange\" | \"onPageChange\"\n >\n > & {\n children: (\n data: ResultType[\"data\"],\n pagination: Pagination & { count?: number; maxLimit?: number },\n ) => ReactNode\n useLazyListQuery: TypedUseLazyQuery<ResultType, QueryArg, any>\n preferCacheValue?: boolean\n filters?: Omit<QueryArg, \"limit\" | \"offset\">\n rowsPerPageOptions?: number[]\n stackProps?: StackProps\n page?: number\n rowsPerPage?: number\n }\n\nconst TablePagination = <\n QueryArg extends ListArg,\n ResultType extends ListResult<any>,\n RootComponent extends\n ElementType = JSXElementConstructor<TablePaginationBaseProps>,\n AdditionalProps = {},\n>({\n children,\n useLazyListQuery,\n preferCacheValue,\n filters,\n page: initialPage = 0,\n rowsPerPage: initialLimit = 50,\n rowsPerPageOptions = [50, 100, 150],\n stackProps,\n onRowsPerPageChange,\n onPageChange,\n ...tablePaginationProps\n}: TablePaginationProps<\n QueryArg,\n ResultType,\n RootComponent,\n AdditionalProps\n>): JSX.Element => {\n const [trigger, result] = useLazyListQuery()\n const [{ limit, page, offset }, setPagination] = usePagination({\n page: initialPage,\n limit: initialLimit,\n })\n\n useEffect(\n () => {\n void trigger({ limit, offset, ...filters } as QueryArg, preferCacheValue)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n trigger,\n limit,\n offset,\n // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-unsafe-assignment\n ...Object.values(filters || {}),\n preferCacheValue,\n ],\n )\n\n const { count, max_limit } = result.data || {}\n\n if (max_limit) {\n rowsPerPageOptions = rowsPerPageOptions.filter(\n option => option <= max_limit,\n )\n }\n\n return (\n <Stack {...stackProps}>\n {handleResultState(result, ({ data }) =>\n children(data, {\n limit,\n page,\n offset,\n count,\n maxLimit: max_limit,\n }),\n )}\n <MuiTablePagination\n component=\"div\"\n count={count ?? 0}\n rowsPerPage={limit}\n onRowsPerPageChange={event => {\n setPagination({ limit: parseInt(event.target.value), page: 0 })\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (onRowsPerPageChange) onRowsPerPageChange(event)\n }}\n page={page}\n onPageChange={(event, page) => {\n setPagination(({ limit }) => ({ limit, page }))\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (onPageChange) onPageChange(event, page)\n }}\n // ascending order\n rowsPerPageOptions={rowsPerPageOptions.sort((a, b) => a - b)}\n {...tablePaginationProps}\n />\n </Stack>\n )\n}\n\nexport default TablePagination\n","import { Box, type BoxProps } from \"@mui/material\"\nimport { type FC } from \"react\"\n\nexport interface YouTubeVideoProps extends Omit<BoxProps, \"component\"> {\n src: string\n}\n\nconst YouTubeVideo: FC<YouTubeVideoProps> = ({\n src,\n style = {},\n ...otherProps\n}) => {\n return (\n <Box\n component=\"iframe\"\n width=\"100%\"\n src={src}\n title=\"YouTube video player\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\"\n style={{ border: \"0px\", aspectRatio: \"16 / 9\", ...style }}\n {...otherProps}\n />\n )\n}\n\nexport default YouTubeVideo\n"],"names":["Routes","path","routes","header","jsx","Fragment","footer","headerExcludePaths","footerExcludePaths","jsxs","RouterRoutes","BrowserRoutes","props","pathname","useLocation","App","theme","store","maxIdleSeconds","maxTotalSeconds","routesProps","ThemeProvider","CssBaseline","Provider","StaticRouter","BrowserRouter","ClickableTooltip","open","onClick","otherTooltipProps","_open","_setOpen","React","Tooltip","wrap","CopyIconButton","content","children","ContentCopyIcon","otherIconButtonProps","IconButton","DownloadFileButton","endIcon","DownloadIcon","file","otherButtonProps","url","anchorProps","text","mimeType","name","charset","extension","useEffect","Button","ElevatedAppBar","containerProps","toolbarProps","elevation","otherProps","trigger","useScrollTrigger","cloneElement","AppBar","Container","Toolbar","InputFileButton","inputProps","ItemizedList","styleType","listProps","pl","sx","listItemProps","List","OrderedGrid","rows","globalItemProps","columns","getItemsPerRow","size","getOrder","rowIndex","itemIndex","getOffset","itemsOnLastRow","Grid","row","element","itemProps","ScrollIntoViewLink","elementId","options","linkProps","Link","TablePagination","useLazyListQuery","preferCacheValue","filters","initialPage","initialLimit","rowsPerPageOptions","stackProps","onRowsPerPageChange","onPageChange","tablePaginationProps","result","limit","page","offset","setPagination","usePagination","count","max_limit","option","Stack","handleResultState","data","MuiTablePagination","event","a","b","YouTubeVideo","src","style","Box"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/components/ClickableTooltip.tsx","../../src/components/CopyIconButton.tsx","../../src/components/DownloadFileButton.tsx","../../src/components/ElevatedAppBar.tsx","../../src/components/InputFileButton.tsx","../../src/components/ItemizedList.tsx","../../src/components/OrderedGrid.tsx","../../src/components/ScrollIntoViewLink.tsx","../../src/components/TablePagination.tsx","../../src/components/YouTubeVideo.tsx"],"sourcesContent":["import { Tooltip, type TooltipProps } from \"@mui/material\"\nimport React from \"react\"\n\nimport { wrap } from \"../utils/general\"\n\nexport interface ClickableTooltipProps extends TooltipProps {}\n\nconst ClickableTooltip: React.FC<ClickableTooltipProps> = ({\n open = false,\n onClick,\n ...otherTooltipProps\n}) => {\n const [_open, _setOpen] = React.useState(open)\n\n React.useEffect(() => {\n _setOpen(open)\n }, [open])\n\n return (\n <Tooltip\n open={_open}\n onMouseOver={() => {\n if (!_open) {\n _setOpen(true)\n }\n }}\n onMouseLeave={() => {\n _setOpen(false)\n }}\n onClick={wrap(\n {\n after: () => {\n _setOpen(!_open)\n },\n },\n onClick,\n )}\n {...otherTooltipProps}\n />\n )\n}\n\nexport default ClickableTooltip\n","import { IconButton, type IconButtonProps } from \"@mui/material\"\nimport { ContentCopy as ContentCopyIcon } from \"@mui/icons-material\"\nimport type { FC } from \"react\"\n\nexport interface CopyIconButtonProps extends Omit<IconButtonProps, \"onClick\"> {\n content: string\n}\n\nconst CopyIconButton: FC<CopyIconButtonProps> = ({\n content,\n children = <ContentCopyIcon />,\n ...otherIconButtonProps\n}) => {\n return (\n <IconButton\n data-testid=\"copy-icon-button\"\n onClick={() => {\n void navigator.clipboard.writeText(content)\n }}\n {...otherIconButtonProps}\n >\n {children}\n </IconButton>\n )\n}\n\nexport default CopyIconButton\n","import { Button, type ButtonProps } from \"@mui/material\"\nimport { type FC, useEffect } from \"react\"\nimport { Download as DownloadIcon } from \"@mui/icons-material\"\n\nexport type DownloadFileButtonProps = ButtonProps & {\n file:\n | Blob\n | MediaSource\n | {\n text: string\n mimeType: \"plain\" | \"csv\"\n name: string\n charset?: string\n extension?: string\n }\n}\n\nconst DownloadFileButton: FC<DownloadFileButtonProps> = ({\n children = \"Download\",\n endIcon = <DownloadIcon />,\n file,\n ...otherButtonProps\n}) => {\n let url: undefined | string = undefined\n let anchorProps: undefined | { download?: string; href: string } = undefined\n if (\"mimeType\" in file) {\n const { text, mimeType, name, charset = \"utf-8\" } = file\n let { extension } = file\n\n if (!extension) extension = \".\" + { plain: \"txt\", csv: \"csv\" }[mimeType]\n\n anchorProps = {\n download: name + extension,\n href: `data:text/${mimeType};charset=${charset},${encodeURIComponent(text)}`,\n }\n } else {\n url = URL.createObjectURL(file)\n\n anchorProps = { href: url }\n }\n\n useEffect(() => {\n return () => {\n if (url) URL.revokeObjectURL(url)\n }\n }, [url])\n\n return (\n <Button endIcon={endIcon} {...otherButtonProps} {...anchorProps}>\n {children}\n </Button>\n )\n}\n\nexport default DownloadFileButton\n","import {\n AppBar,\n type AppBarProps,\n Container,\n type ContainerProps,\n Toolbar,\n type ToolbarProps,\n useScrollTrigger,\n} from \"@mui/material\"\nimport { type FC, cloneElement } from \"react\"\n\nexport interface ElevatedAppBarProps extends Omit<AppBarProps, \"position\"> {\n containerProps: ContainerProps\n toolbarProps?: ToolbarProps\n}\n\nconst ElevatedAppBar: FC<ElevatedAppBarProps> = ({\n containerProps,\n toolbarProps,\n elevation = 4,\n children,\n ...otherProps\n}) => {\n const trigger = useScrollTrigger({\n disableHysteresis: true,\n threshold: 0,\n })\n\n return cloneElement(\n <AppBar elevation={elevation} {...otherProps}>\n <Container {...containerProps}>\n <Toolbar {...toolbarProps}>{children}</Toolbar>\n </Container>\n </AppBar>,\n {\n position: trigger ? \"fixed\" : \"sticky\",\n },\n )\n}\n\nexport default ElevatedAppBar\n","import { Button, type ButtonProps } from \"@mui/material\"\nimport {\n type DetailedHTMLProps,\n type FC,\n type InputHTMLAttributes,\n} from \"react\"\n\nexport interface InputFileButtonProps\n extends Omit<ButtonProps<\"label\">, \"component\"> {\n inputProps?: Omit<\n DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,\n \"type\" | \"hidden\"\n >\n}\n\nconst InputFileButton: FC<InputFileButtonProps> = ({\n children,\n inputProps,\n ...otherButtonProps\n}) => (\n <Button component=\"label\" {...otherButtonProps}>\n {children}\n <input type=\"file\" hidden {...inputProps} />\n </Button>\n)\n\nexport default InputFileButton\n","import { type FC, type ReactElement } from \"react\"\nimport {\n List,\n type ListItem,\n type ListItemText,\n type ListProps,\n} from \"@mui/material\"\n\ntype ListItemElement =\n | ReactElement<typeof ListItem | typeof ListItemText>\n | string\n\nexport interface ItemizedListProps {\n styleType:\n | \"unset\"\n | \"initial\"\n | \"inherit\"\n | \"upper-roman\"\n | \"upper-latin\"\n | \"upper-alpha\"\n | \"square\"\n | \"none\"\n | \"lower-roman\"\n | \"lower-latin\"\n | \"lower-greek\"\n | \"lower-alpha\"\n | \"georgian\"\n | \"disc\"\n | \"decimal-leading-zero\"\n | \"decimal\"\n | \"armenian\"\n | \"circle\"\n listProps?: ListProps\n pl?: number\n children: ListItemElement | ListItemElement[]\n}\n\nconst ItemizedList: FC<ItemizedListProps> = ({\n styleType,\n listProps = {},\n pl = 4,\n children,\n}) => {\n const { sx, ...otherProps } = listProps\n const listItemProps = { display: \"list-item\" }\n\n return (\n <List\n sx={{\n listStyleType: styleType,\n pl,\n \".MuiListItem-root\": listItemProps,\n \".MuiListItemText-root\": listItemProps,\n ...sx,\n }}\n {...otherProps}\n >\n {children}\n </List>\n )\n}\n\nexport default ItemizedList\n","import { type FC, type ReactElement } from \"react\"\nimport { Grid, type GridProps } from \"@mui/material\"\n\ninterface ItemProps\n extends Omit<GridProps, \"key\" | \"order\" | \"size\" | \"offset\"> {}\n\ninterface GlobalItemProps extends ItemProps {\n size: {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n }\n}\n\nexport interface OrderedGridProps {\n rows: Array<\n Array<{\n element: ReactElement\n itemProps?: ItemProps\n }>\n >\n containerProps?: Omit<GridProps, \"container\">\n globalItemProps: GlobalItemProps\n}\n\nconst OrderedGrid: FC<OrderedGridProps> = ({\n rows,\n containerProps = {},\n globalItemProps,\n}) => {\n const columns = Number(containerProps.columns ?? 12)\n\n const getItemsPerRow = (size: number): number => Math.floor(columns / size)\n\n const getOrder = (\n rowIndex: number,\n itemIndex: number,\n size: number,\n ): number =>\n Math.floor(itemIndex / getItemsPerRow(size)) * rows.length + rowIndex\n\n const getOffset = (itemIndex: number, size: number): number => {\n const itemsOnLastRow = rows[0].length % getItemsPerRow(size)\n return itemsOnLastRow !== 0 && itemIndex === rows[0].length - 1\n ? (columns - itemsOnLastRow * size) / 2\n : 0\n }\n\n return (\n <Grid container {...containerProps}>\n {rows.map((row, rowIndex) =>\n row.map(({ element, itemProps = {} }, itemIndex) => (\n <Grid\n key={`${rowIndex}-${itemIndex}`}\n order={{\n xs: getOrder(rowIndex, itemIndex, globalItemProps.size.xs),\n sm: getOrder(rowIndex, itemIndex, globalItemProps.size.sm),\n md: getOrder(rowIndex, itemIndex, globalItemProps.size.md),\n lg: getOrder(rowIndex, itemIndex, globalItemProps.size.lg),\n xl: getOrder(rowIndex, itemIndex, globalItemProps.size.xl),\n }}\n offset={{\n xs: getOffset(itemIndex, globalItemProps.size.xs),\n sm: getOffset(itemIndex, globalItemProps.size.sm),\n md: getOffset(itemIndex, globalItemProps.size.md),\n lg: getOffset(itemIndex, globalItemProps.size.lg),\n xl: getOffset(itemIndex, globalItemProps.size.xl),\n }}\n {...globalItemProps}\n {...itemProps}\n >\n {element}\n </Grid>\n )),\n )}\n </Grid>\n )\n}\n\nexport default OrderedGrid\n","import { Link, type LinkProps } from \"@mui/material\"\nimport { type FC } from \"react\"\nexport interface ScrollIntoViewLinkProps extends Omit<LinkProps, \"onClick\"> {\n elementId: string\n options?: ScrollIntoViewOptions\n}\n\nconst ScrollIntoViewLink: FC<ScrollIntoViewLinkProps> = ({\n elementId,\n options,\n ...linkProps\n}) => (\n <Link\n {...linkProps}\n onClick={() => {\n const element = document.getElementById(elementId)\n element?.scrollIntoView(options)\n }}\n />\n)\n\nexport default ScrollIntoViewLink\n","import {\n type ElementType,\n type JSX,\n type JSXElementConstructor,\n type ReactNode,\n useEffect,\n} from \"react\"\nimport {\n TablePagination as MuiTablePagination,\n type TablePaginationProps as MuiTablePaginationProps,\n Stack,\n type StackProps,\n type TablePaginationBaseProps,\n} from \"@mui/material\"\nimport type { TypedUseLazyQuery } from \"@reduxjs/toolkit/query/react\"\n\nimport { type ListArg, type ListResult, handleResultState } from \"../utils/api\"\nimport { type Pagination, usePagination } from \"../hooks/api\"\n\nexport type TablePaginationProps<\n QueryArg extends ListArg,\n ResultType extends ListResult<any>,\n RootComponent extends\n ElementType = JSXElementConstructor<TablePaginationBaseProps>,\n AdditionalProps = {},\n> = Omit<\n MuiTablePaginationProps<RootComponent, AdditionalProps>,\n | \"component\"\n | \"count\"\n | \"rowsPerPage\"\n | \"onRowsPerPageChange\"\n | \"rowsPerPageOptions\"\n | \"page\"\n | \"onPageChange\"\n> &\n Partial<\n Pick<\n MuiTablePaginationProps<RootComponent, AdditionalProps>,\n \"onRowsPerPageChange\" | \"onPageChange\"\n >\n > & {\n children: (\n data: ResultType[\"data\"],\n pagination: Pagination & { count?: number; maxLimit?: number },\n ) => ReactNode\n useLazyListQuery: TypedUseLazyQuery<ResultType, QueryArg, any>\n preferCacheValue?: boolean\n filters?: Omit<QueryArg, \"limit\" | \"offset\">\n rowsPerPageOptions?: number[]\n stackProps?: StackProps\n page?: number\n rowsPerPage?: number\n }\n\nconst TablePagination = <\n QueryArg extends ListArg,\n ResultType extends ListResult<any>,\n RootComponent extends\n ElementType = JSXElementConstructor<TablePaginationBaseProps>,\n AdditionalProps = {},\n>({\n children,\n useLazyListQuery,\n preferCacheValue,\n filters,\n page: initialPage = 0,\n rowsPerPage: initialLimit = 50,\n rowsPerPageOptions = [50, 100, 150],\n stackProps,\n onRowsPerPageChange,\n onPageChange,\n ...tablePaginationProps\n}: TablePaginationProps<\n QueryArg,\n ResultType,\n RootComponent,\n AdditionalProps\n>): JSX.Element => {\n const [trigger, result] = useLazyListQuery()\n const [{ limit, page, offset }, setPagination] = usePagination({\n page: initialPage,\n limit: initialLimit,\n })\n\n useEffect(\n () => {\n void trigger({ limit, offset, ...filters } as QueryArg, preferCacheValue)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n trigger,\n limit,\n offset,\n // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-unsafe-assignment\n ...Object.values(filters || {}),\n preferCacheValue,\n ],\n )\n\n const { count, max_limit } = result.data || {}\n\n if (max_limit) {\n rowsPerPageOptions = rowsPerPageOptions.filter(\n option => option <= max_limit,\n )\n }\n\n return (\n <Stack {...stackProps}>\n {handleResultState(result, ({ data }) =>\n children(data, {\n limit,\n page,\n offset,\n count,\n maxLimit: max_limit,\n }),\n )}\n <MuiTablePagination\n component=\"div\"\n count={count ?? 0}\n rowsPerPage={limit}\n onRowsPerPageChange={event => {\n setPagination({ limit: parseInt(event.target.value), page: 0 })\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (onRowsPerPageChange) onRowsPerPageChange(event)\n }}\n page={page}\n onPageChange={(event, page) => {\n setPagination(({ limit }) => ({ limit, page }))\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (onPageChange) onPageChange(event, page)\n }}\n // ascending order\n rowsPerPageOptions={rowsPerPageOptions.sort((a, b) => a - b)}\n {...tablePaginationProps}\n />\n </Stack>\n )\n}\n\nexport default TablePagination\n","import { Box, type BoxProps } from \"@mui/material\"\nimport { type FC } from \"react\"\n\nexport interface YouTubeVideoProps extends Omit<BoxProps, \"component\"> {\n src: string\n}\n\nconst YouTubeVideo: FC<YouTubeVideoProps> = ({\n src,\n style = {},\n ...otherProps\n}) => {\n return (\n <Box\n component=\"iframe\"\n width=\"100%\"\n src={src}\n title=\"YouTube video player\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\"\n style={{ border: \"0px\", aspectRatio: \"16 / 9\", ...style }}\n {...otherProps}\n />\n )\n}\n\nexport default YouTubeVideo\n"],"names":["ClickableTooltip","open","onClick","otherTooltipProps","_open","_setOpen","React","jsx","Tooltip","wrap","CopyIconButton","content","children","ContentCopyIcon","otherIconButtonProps","IconButton","DownloadFileButton","endIcon","DownloadIcon","file","otherButtonProps","url","anchorProps","text","mimeType","name","charset","extension","useEffect","Button","ElevatedAppBar","containerProps","toolbarProps","elevation","otherProps","trigger","useScrollTrigger","cloneElement","AppBar","Container","Toolbar","InputFileButton","inputProps","jsxs","ItemizedList","styleType","listProps","pl","sx","listItemProps","List","OrderedGrid","rows","globalItemProps","columns","getItemsPerRow","size","getOrder","rowIndex","itemIndex","getOffset","itemsOnLastRow","Grid","row","element","itemProps","ScrollIntoViewLink","elementId","options","linkProps","Link","TablePagination","useLazyListQuery","preferCacheValue","filters","initialPage","initialLimit","rowsPerPageOptions","stackProps","onRowsPerPageChange","onPageChange","tablePaginationProps","result","limit","page","offset","setPagination","usePagination","count","max_limit","option","Stack","handleResultState","data","MuiTablePagination","event","a","b","YouTubeVideo","src","style","Box"],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ export * as forms from './form';
|
|
|
2
2
|
export * as pages from './page';
|
|
3
3
|
export * from './router';
|
|
4
4
|
export * as tables from './table';
|
|
5
|
-
export { default as App, type AppProps } from './App';
|
|
6
5
|
export { default as ClickableTooltip, type ClickableTooltipProps, } from './ClickableTooltip';
|
|
7
6
|
export { default as CopyIconButton, type CopyIconButtonProps, } from './CopyIconButton';
|
|
8
7
|
export { default as Countdown, type CountdownProps } from './Countdown';
|