codeforlife 2.10.7 → 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.
Files changed (141) hide show
  1. package/dist/App-3VkR-ZEZ.js +27 -0
  2. package/dist/App-3VkR-ZEZ.js.map +1 -0
  3. package/dist/App-UfeajXtp.cjs +2 -0
  4. package/dist/App-UfeajXtp.cjs.map +1 -0
  5. package/dist/Countdown-BtUbr1J_.cjs +2 -0
  6. package/dist/{Countdown-CyJ-01oU.cjs.map → Countdown-BtUbr1J_.cjs.map} +1 -1
  7. package/dist/{Countdown-BTyB1rrK.js → Countdown-DhjAmB0u.js} +9 -9
  8. package/dist/{Countdown-BTyB1rrK.js.map → Countdown-DhjAmB0u.js.map} +1 -1
  9. package/dist/{Image-CgYjq-tA.cjs → Image-CgRVUblT.cjs} +2 -2
  10. package/dist/{Image-CgYjq-tA.cjs.map → Image-CgRVUblT.cjs.map} +1 -1
  11. package/dist/{Image-C-f2ChBh.js → Image-DTOu0h-V.js} +2 -2
  12. package/dist/{Image-C-f2ChBh.js.map → Image-DTOu0h-V.js.map} +1 -1
  13. package/dist/{LinkButton-BOPjG7_2.cjs → LinkButton-Kw2brLTK.cjs} +2 -2
  14. package/dist/{LinkButton-BOPjG7_2.cjs.map → LinkButton-Kw2brLTK.cjs.map} +1 -1
  15. package/dist/{LinkButton-Bk50AHHg.js → LinkButton-sQ5jgHnX.js} +3 -3
  16. package/dist/{LinkButton-Bk50AHHg.js.map → LinkButton-sQ5jgHnX.js.map} +1 -1
  17. package/dist/{Navigate-SL_oMjPc.js → Navigate-ClPcw87e.js} +3 -3
  18. package/dist/{Navigate-SL_oMjPc.js.map → Navigate-ClPcw87e.js.map} +1 -1
  19. package/dist/Navigate-CrMwdIBB.cjs +2 -0
  20. package/dist/{Navigate-C_sgy8Xs.cjs.map → Navigate-CrMwdIBB.cjs.map} +1 -1
  21. package/dist/_commonjsHelpers-DKOUU3wS.cjs +2 -0
  22. package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +1 -0
  23. package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
  24. package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
  25. package/dist/api/endpoints/index.cjs.js +1 -1
  26. package/dist/api/endpoints/index.es.js +2 -2
  27. package/dist/api/index.cjs.js +3 -3
  28. package/dist/api/index.es.js +3 -3
  29. package/dist/api-9cnyvZj7.cjs +2 -0
  30. package/dist/{api-DIgp_6Vr.cjs.map → api-9cnyvZj7.cjs.map} +1 -1
  31. package/dist/{api-BvUiTeR7.js → api-BFYu8ZvQ.js} +2 -2
  32. package/dist/{api-BvUiTeR7.js.map → api-BFYu8ZvQ.js.map} +1 -1
  33. package/dist/{api-CaeeoZaI.cjs → api-CAH3GT1O.cjs} +2 -2
  34. package/dist/{api-CaeeoZaI.cjs.map → api-CAH3GT1O.cjs.map} +1 -1
  35. package/dist/{auth-CQ1InCxP.js → auth-Bb8WkZGN.js} +4 -4
  36. package/dist/{auth-CQ1InCxP.js.map → auth-Bb8WkZGN.js.map} +1 -1
  37. package/dist/auth-BwpsrTko.cjs +2 -0
  38. package/dist/{auth-B7Vdot4N.cjs.map → auth-BwpsrTko.cjs.map} +1 -1
  39. package/dist/client-BK9NlSVR.js +25208 -0
  40. package/dist/client-BK9NlSVR.js.map +1 -0
  41. package/dist/client-CmAMc2Wj.cjs +251 -0
  42. package/dist/client-CmAMc2Wj.cjs.map +1 -0
  43. package/dist/components/form/index.cjs.js +1 -1
  44. package/dist/components/form/index.es.js +1 -1
  45. package/dist/components/index.cjs.js +1 -1
  46. package/dist/components/index.cjs.js.map +1 -1
  47. package/dist/components/index.d.ts +0 -1
  48. package/dist/components/index.es.js +146 -182
  49. package/dist/components/index.es.js.map +1 -1
  50. package/dist/components/page/index.cjs.js +1 -1
  51. package/dist/components/page/index.es.js +1 -1
  52. package/dist/components/router/index.cjs.js +1 -1
  53. package/dist/components/router/index.es.js +2 -2
  54. package/dist/components/table/index.cjs.js +1 -1
  55. package/dist/components/table/index.es.js +1 -1
  56. package/dist/features/index.cjs.js +1 -1
  57. package/dist/features/index.cjs.js.map +1 -1
  58. package/dist/features/index.es.js +10 -11
  59. package/dist/features/index.es.js.map +1 -1
  60. package/dist/general-Bo6JGvKB.cjs +2 -0
  61. package/dist/{general-BPbbmkeX.cjs.map → general-Bo6JGvKB.cjs.map} +1 -1
  62. package/dist/{general-CtTJPCJn.js → general-D7Hqi3gj.js} +3 -3
  63. package/dist/{general-CtTJPCJn.js.map → general-D7Hqi3gj.js.map} +1 -1
  64. package/dist/hooks/index.cjs.js +1 -1
  65. package/dist/hooks/index.es.js +2 -2
  66. package/dist/{index-CBPn0wyX.cjs → index-5C9hpxRF.cjs} +2 -2
  67. package/dist/{index-CBPn0wyX.cjs.map → index-5C9hpxRF.cjs.map} +1 -1
  68. package/dist/{index-Dfo744Sb.js → index-B3e_XaVG.js} +2 -2
  69. package/dist/{index-Dfo744Sb.js.map → index-B3e_XaVG.js.map} +1 -1
  70. package/dist/{index-CXYppxE3.cjs → index-B89FjK7v.cjs} +2 -2
  71. package/dist/{index-CXYppxE3.cjs.map → index-B89FjK7v.cjs.map} +1 -1
  72. package/dist/{index-CI5O_yH6.js → index-BRHFlEjS.js} +37 -39
  73. package/dist/{index-CI5O_yH6.js.map → index-BRHFlEjS.js.map} +1 -1
  74. package/dist/{index-D8Gc0IWi.js → index-CHboZsxD.js} +2 -2
  75. package/dist/{index-D8Gc0IWi.js.map → index-CHboZsxD.js.map} +1 -1
  76. package/dist/index-CwC9mpb3.cjs +2 -0
  77. package/dist/{index-B6aNVvMr.cjs.map → index-CwC9mpb3.cjs.map} +1 -1
  78. package/dist/{index-DCI-3m7f.cjs → index-DuArGzQE.cjs} +3 -3
  79. package/dist/{index-DCI-3m7f.cjs.map → index-DuArGzQE.cjs.map} +1 -1
  80. package/dist/{index-DcmDxIXA.js → index-hdS8RgRc.js} +5 -5
  81. package/dist/{index-DcmDxIXA.js.map → index-hdS8RgRc.js.map} +1 -1
  82. package/dist/index.cjs.js +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.es.js +6 -6
  85. package/dist/{jsx-runtime-Dszzpdy0.cjs → jsx-runtime-B2pbW5Fp.cjs} +3 -3
  86. package/dist/{jsx-runtime-Dszzpdy0.cjs.map → jsx-runtime-B2pbW5Fp.cjs.map} +1 -1
  87. package/dist/{jsx-runtime-C7wFtzyj.js → jsx-runtime-lzYHhGH3.js} +15 -15
  88. package/dist/{jsx-runtime-C7wFtzyj.js.map → jsx-runtime-lzYHhGH3.js.map} +1 -1
  89. package/dist/{schemas-D3tO0rys.js → schemas-BMQZbhti.js} +2 -2
  90. package/dist/{schemas-D3tO0rys.js.map → schemas-BMQZbhti.js.map} +1 -1
  91. package/dist/{schemas-CpAWhNsP.cjs → schemas-DXX4rh8i.cjs} +2 -2
  92. package/dist/{schemas-CpAWhNsP.cjs.map → schemas-DXX4rh8i.cjs.map} +1 -1
  93. package/dist/server/App.d.ts +15 -0
  94. package/dist/server/entry.cjs.js +209 -0
  95. package/dist/server/entry.cjs.js.map +1 -0
  96. package/dist/server/entry.d.ts +14 -0
  97. package/dist/server/entry.es.js +21885 -0
  98. package/dist/server/entry.es.js.map +1 -0
  99. package/dist/server/index.cjs.js +6 -0
  100. package/dist/server/index.cjs.js.map +1 -0
  101. package/dist/server/index.d.ts +6 -0
  102. package/dist/{server.es.js → server/index.es.js} +19 -17
  103. package/dist/server/index.es.js.map +1 -0
  104. package/dist/settings/index.cjs.js +1 -1
  105. package/dist/settings/index.cjs.js.map +1 -1
  106. package/dist/settings/index.d.ts +1 -2
  107. package/dist/settings/index.es.js +5 -5
  108. package/dist/settings/index.es.js.map +1 -1
  109. package/dist/theme/components/index.cjs.js +1 -1
  110. package/dist/theme/components/index.es.js +1 -1
  111. package/dist/theme/index.cjs.js +1 -1
  112. package/dist/theme/index.cjs.js.map +1 -1
  113. package/dist/theme/index.d.ts +1 -2
  114. package/dist/theme/index.es.js +5 -5
  115. package/dist/theme/index.es.js.map +1 -1
  116. package/dist/{urls-RtSTEZfW.cjs → urls-CGZI0f1w.cjs} +2 -2
  117. package/dist/{urls-RtSTEZfW.cjs.map → urls-CGZI0f1w.cjs.map} +1 -1
  118. package/dist/{urls-5m9PgoEX.js → urls-DP4a8kxP.js} +2 -2
  119. package/dist/{urls-5m9PgoEX.js.map → urls-DP4a8kxP.js.map} +1 -1
  120. package/dist/utils/api.cjs.js +1 -1
  121. package/dist/utils/api.es.js +2 -2
  122. package/dist/utils/router.cjs.js +1 -1
  123. package/dist/utils/router.es.js +2 -2
  124. package/dist/utils/test.cjs.js +1 -250
  125. package/dist/utils/test.cjs.js.map +1 -1
  126. package/dist/utils/test.es.js +20 -25223
  127. package/dist/utils/test.es.js.map +1 -1
  128. package/dist/utils/theme.cjs.js +1 -1
  129. package/dist/utils/theme.es.js +2 -2
  130. package/package.json +15 -8
  131. package/dist/Countdown-CyJ-01oU.cjs +0 -2
  132. package/dist/Navigate-C_sgy8Xs.cjs +0 -2
  133. package/dist/api-DIgp_6Vr.cjs +0 -2
  134. package/dist/auth-B7Vdot4N.cjs +0 -2
  135. package/dist/components/App.d.ts +0 -18
  136. package/dist/general-BPbbmkeX.cjs +0 -2
  137. package/dist/index-B6aNVvMr.cjs +0 -2
  138. package/dist/server.cjs.js +0 -6
  139. package/dist/server.cjs.js.map +0 -1
  140. package/dist/server.es.js.map +0 -1
  141. /package/dist/{server.d.ts → server/server.d.ts} +0 -0
@@ -1,179 +1,144 @@
1
- import { i as Rt } from "../index-CI5O_yH6.js";
2
- import { i as kt } from "../index-DcmDxIXA.js";
3
- import { L as bt, a as Ct, b as St, c as wt, N as zt } from "../Navigate-SL_oMjPc.js";
4
- import { L as Et } from "../LinkButton-Bk50AHHg.js";
5
- import { i as Mt } from "../index-Dfo744Sb.js";
6
- import { j as o } from "../jsx-runtime-C7wFtzyj.js";
7
- import { StaticRouter as S, BrowserRouter as w, Routes as z } from "react-router";
8
- import { ThemeProvider as O, CssBaseline as E, Tooltip as $, IconButton as M, Button as k, useScrollTrigger as F, AppBar as U, Container as A, Toolbar as D, List as N, Grid as R, Link as _, Stack as G, TablePagination as V, Box as Y } from "@mui/material";
9
- import T, { useEffect as B, cloneElement as H } from "react";
10
- import { Provider as P } from "react-redux";
11
- import { C as Ut } from "../Countdown-BTyB1rrK.js";
12
- import { f as q } from "../auth-CQ1InCxP.js";
13
- import { wrap as J } from "../utils/general.es.js";
14
- import { ContentCopy as K, Download as Q } from "@mui/icons-material";
15
- import { I as Dt } from "../Image-C-f2ChBh.js";
16
- import { h as W } from "../api-BvUiTeR7.js";
17
- import { S as _t } from "../api-BvUiTeR7.js";
18
- import { u as X } from "../api-Cs4Y-WeI.js";
19
- const b = ({
20
- path: e,
21
- routes: s,
22
- header: t = /* @__PURE__ */ o.jsx(o.Fragment, {}),
23
- // TODO: "header = <Header />"
24
- footer: n = /* @__PURE__ */ o.jsx(o.Fragment, {}),
25
- // TODO: "footer = <Footer />"
26
- headerExcludePaths: r = [],
27
- footerExcludePaths: i = []
28
- }) => /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
29
- !r.includes(e) && t,
30
- /* @__PURE__ */ o.jsx(z, { children: s }),
31
- !i.includes(e) && n
32
- ] }), Z = (e) => {
33
- const { pathname: s } = q();
34
- return /* @__PURE__ */ o.jsx(b, { path: s, ...e });
35
- }, lt = ({
36
- path: e,
37
- theme: s,
38
- store: t,
39
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
- maxIdleSeconds: n = 3600,
41
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
- maxTotalSeconds: r = 3600,
43
- ...i
44
- }) => /* @__PURE__ */ o.jsxs(O, { theme: s, children: [
45
- /* @__PURE__ */ o.jsx(E, {}),
46
- /* @__PURE__ */ o.jsx(P, {
47
- store: t,
48
- // https://github.com/remix-run/react-router/tree/main/examples/ssr
49
- children: e !== void 0 ? /* @__PURE__ */ o.jsx(S, { location: e, children: /* @__PURE__ */ o.jsx(b, { path: e, ...i }) }) : /* @__PURE__ */ o.jsx(w, { children: /* @__PURE__ */ o.jsx(Z, { ...i }) })
50
- })
51
- ] }), mt = ({
1
+ import { i as lt } from "../index-BRHFlEjS.js";
2
+ import { i as mt } from "../index-hdS8RgRc.js";
3
+ import { L as ft, a as dt, b as xt, c as gt, N as ht } from "../Navigate-ClPcw87e.js";
4
+ import { L as Lt } from "../LinkButton-sQ5jgHnX.js";
5
+ import { i as vt } from "../index-B3e_XaVG.js";
6
+ import { j as i } from "../jsx-runtime-lzYHhGH3.js";
7
+ import { Tooltip as C, IconButton as R, Button as b, useScrollTrigger as w, AppBar as O, Container as S, Toolbar as $, List as E, Grid as T, Link as M, Stack as U, TablePagination as D, Box as N } from "@mui/material";
8
+ import k, { useEffect as B, cloneElement as _ } from "react";
9
+ import { wrap as A } from "../utils/general.es.js";
10
+ import { ContentCopy as F, Download as G } from "@mui/icons-material";
11
+ import { C as kt } from "../Countdown-DhjAmB0u.js";
12
+ import { I as Bt } from "../Image-DTOu0h-V.js";
13
+ import { h as V } from "../api-BFYu8ZvQ.js";
14
+ import { S as Ct } from "../api-BFYu8ZvQ.js";
15
+ import { u as Y } from "../api-Cs4Y-WeI.js";
16
+ const X = ({
52
17
  open: e = !1,
53
- onClick: s,
18
+ onClick: o,
54
19
  ...t
55
20
  }) => {
56
- const [n, r] = T.useState(e);
57
- return T.useEffect(() => {
58
- r(e);
59
- }, [e]), /* @__PURE__ */ o.jsx(
60
- $,
21
+ const [r, s] = k.useState(e);
22
+ return k.useEffect(() => {
23
+ s(e);
24
+ }, [e]), /* @__PURE__ */ i.jsx(
25
+ C,
61
26
  {
62
- open: n,
27
+ open: r,
63
28
  onMouseOver: () => {
64
- n || r(!0);
29
+ r || s(!0);
65
30
  },
66
31
  onMouseLeave: () => {
67
- r(!1);
32
+ s(!1);
68
33
  },
69
- onClick: J(
34
+ onClick: A(
70
35
  {
71
36
  after: () => {
72
- r(!n);
37
+ s(!r);
73
38
  }
74
39
  },
75
- s
40
+ o
76
41
  ),
77
42
  ...t
78
43
  }
79
44
  );
80
- }, ut = ({
45
+ }, Z = ({
81
46
  content: e,
82
- children: s = /* @__PURE__ */ o.jsx(K, {}),
47
+ children: o = /* @__PURE__ */ i.jsx(F, {}),
83
48
  ...t
84
- }) => /* @__PURE__ */ o.jsx(
85
- M,
49
+ }) => /* @__PURE__ */ i.jsx(
50
+ R,
86
51
  {
87
52
  "data-testid": "copy-icon-button",
88
53
  onClick: () => {
89
54
  navigator.clipboard.writeText(e);
90
55
  },
91
56
  ...t,
92
- children: s
57
+ children: o
93
58
  }
94
- ), pt = ({
59
+ ), I = ({
95
60
  children: e = "Download",
96
- endIcon: s = /* @__PURE__ */ o.jsx(Q, {}),
61
+ endIcon: o = /* @__PURE__ */ i.jsx(G, {}),
97
62
  file: t,
98
- ...n
63
+ ...r
99
64
  }) => {
100
- let r, i;
65
+ let s, a;
101
66
  if ("mimeType" in t) {
102
- const { text: c, mimeType: m, name: a, charset: u = "utf-8" } = t;
103
- let { extension: d } = t;
104
- d || (d = "." + { plain: "txt", csv: "csv" }[m]), i = {
105
- download: a + d,
106
- href: `data:text/${m};charset=${u},${encodeURIComponent(c)}`
67
+ const { text: c, mimeType: u, name: n, charset: m = "utf-8" } = t;
68
+ let { extension: f } = t;
69
+ f || (f = "." + { plain: "txt", csv: "csv" }[u]), a = {
70
+ download: n + f,
71
+ href: `data:text/${u};charset=${m},${encodeURIComponent(c)}`
107
72
  };
108
73
  } else
109
- r = URL.createObjectURL(t), i = { href: r };
74
+ s = URL.createObjectURL(t), a = { href: s };
110
75
  return B(() => () => {
111
- r && URL.revokeObjectURL(r);
112
- }, [r]), /* @__PURE__ */ o.jsx(k, { endIcon: s, ...n, ...i, children: e });
113
- }, dt = ({
76
+ s && URL.revokeObjectURL(s);
77
+ }, [s]), /* @__PURE__ */ i.jsx(b, { endIcon: o, ...r, ...a, children: e });
78
+ }, tt = ({
114
79
  containerProps: e,
115
- toolbarProps: s,
80
+ toolbarProps: o,
116
81
  elevation: t = 4,
117
- children: n,
118
- ...r
82
+ children: r,
83
+ ...s
119
84
  }) => {
120
- const i = F({
85
+ const a = w({
121
86
  disableHysteresis: !0,
122
87
  threshold: 0
123
88
  });
124
- return H(
125
- /* @__PURE__ */ o.jsx(U, { elevation: t, ...r, children: /* @__PURE__ */ o.jsx(A, { ...e, children: /* @__PURE__ */ o.jsx(D, { ...s, children: n }) }) }),
89
+ return _(
90
+ /* @__PURE__ */ i.jsx(O, { elevation: t, ...s, children: /* @__PURE__ */ i.jsx(S, { ...e, children: /* @__PURE__ */ i.jsx($, { ...o, children: r }) }) }),
126
91
  {
127
- position: i ? "fixed" : "sticky"
92
+ position: a ? "fixed" : "sticky"
128
93
  }
129
94
  );
130
- }, xt = ({
95
+ }, et = ({
131
96
  children: e,
132
- inputProps: s,
97
+ inputProps: o,
133
98
  ...t
134
- }) => /* @__PURE__ */ o.jsxs(k, { component: "label", ...t, children: [
99
+ }) => /* @__PURE__ */ i.jsxs(b, { component: "label", ...t, children: [
135
100
  e,
136
- /* @__PURE__ */ o.jsx("input", { type: "file", hidden: !0, ...s })
137
- ] }), ft = ({
101
+ /* @__PURE__ */ i.jsx("input", { type: "file", hidden: !0, ...o })
102
+ ] }), ot = ({
138
103
  styleType: e,
139
- listProps: s = {},
104
+ listProps: o = {},
140
105
  pl: t = 4,
141
- children: n
106
+ children: r
142
107
  }) => {
143
- const { sx: r, ...i } = s, c = { display: "list-item" };
144
- return /* @__PURE__ */ o.jsx(
145
- N,
108
+ const { sx: s, ...a } = o, c = { display: "list-item" };
109
+ return /* @__PURE__ */ i.jsx(
110
+ E,
146
111
  {
147
112
  sx: {
148
113
  listStyleType: e,
149
114
  pl: t,
150
115
  ".MuiListItem-root": c,
151
116
  ".MuiListItemText-root": c,
152
- ...r
117
+ ...s
153
118
  },
154
- ...i,
155
- children: n
119
+ ...a,
120
+ children: r
156
121
  }
157
122
  );
158
- }, jt = ({
123
+ }, st = ({
159
124
  rows: e,
160
- containerProps: s = {},
125
+ containerProps: o = {},
161
126
  globalItemProps: t
162
127
  }) => {
163
- const n = Number(s.columns ?? 12), r = (m) => Math.floor(n / m), i = (m, a, u) => Math.floor(a / r(u)) * e.length + m, c = (m, a) => {
164
- const u = e[0].length % r(a);
165
- return u !== 0 && m === e[0].length - 1 ? (n - u * a) / 2 : 0;
128
+ const r = Number(o.columns ?? 12), s = (u) => Math.floor(r / u), a = (u, n, m) => Math.floor(n / s(m)) * e.length + u, c = (u, n) => {
129
+ const m = e[0].length % s(n);
130
+ return m !== 0 && u === e[0].length - 1 ? (r - m * n) / 2 : 0;
166
131
  };
167
- return /* @__PURE__ */ o.jsx(R, { container: !0, ...s, children: e.map(
168
- (m, a) => m.map(({ element: u, itemProps: d = {} }, l) => /* @__PURE__ */ o.jsx(
169
- R,
132
+ return /* @__PURE__ */ i.jsx(T, { container: !0, ...o, children: e.map(
133
+ (u, n) => u.map(({ element: m, itemProps: f = {} }, l) => /* @__PURE__ */ i.jsx(
134
+ T,
170
135
  {
171
136
  order: {
172
- xs: i(a, l, t.size.xs),
173
- sm: i(a, l, t.size.sm),
174
- md: i(a, l, t.size.md),
175
- lg: i(a, l, t.size.lg),
176
- xl: i(a, l, t.size.xl)
137
+ xs: a(n, l, t.size.xs),
138
+ sm: a(n, l, t.size.sm),
139
+ md: a(n, l, t.size.md),
140
+ lg: a(n, l, t.size.lg),
141
+ xl: a(n, l, t.size.xl)
177
142
  },
178
143
  offset: {
179
144
  xs: c(l, t.size.xs),
@@ -183,126 +148,125 @@ const b = ({
183
148
  xl: c(l, t.size.xl)
184
149
  },
185
150
  ...t,
186
- ...d,
187
- children: u
151
+ ...f,
152
+ children: m
188
153
  },
189
- `${a}-${l}`
154
+ `${n}-${l}`
190
155
  ))
191
156
  ) });
192
- }, ht = ({
157
+ }, it = ({
193
158
  elementId: e,
194
- options: s,
159
+ options: o,
195
160
  ...t
196
- }) => /* @__PURE__ */ o.jsx(
197
- _,
161
+ }) => /* @__PURE__ */ i.jsx(
162
+ M,
198
163
  {
199
164
  ...t,
200
165
  onClick: () => {
201
- document.getElementById(e)?.scrollIntoView(s);
166
+ document.getElementById(e)?.scrollIntoView(o);
202
167
  }
203
168
  }
204
- ), gt = ({
169
+ ), rt = ({
205
170
  children: e,
206
- useLazyListQuery: s,
171
+ useLazyListQuery: o,
207
172
  preferCacheValue: t,
208
- filters: n,
209
- page: r = 0,
210
- rowsPerPage: i = 50,
173
+ filters: r,
174
+ page: s = 0,
175
+ rowsPerPage: a = 50,
211
176
  rowsPerPageOptions: c = [50, 100, 150],
212
- stackProps: m,
213
- onRowsPerPageChange: a,
214
- onPageChange: u,
215
- ...d
177
+ stackProps: u,
178
+ onRowsPerPageChange: n,
179
+ onPageChange: m,
180
+ ...f
216
181
  }) => {
217
- const [l, g] = s(), [{ limit: x, page: L, offset: j }, v] = X({
218
- page: r,
219
- limit: i
182
+ const [l, j] = o(), [{ limit: d, page: L, offset: g }, y] = Y({
183
+ page: s,
184
+ limit: a
220
185
  });
221
186
  B(
222
187
  () => {
223
- l({ limit: x, offset: j, ...n }, t);
188
+ l({ limit: d, offset: g, ...r }, t);
224
189
  },
225
190
  // eslint-disable-next-line react-hooks/exhaustive-deps
226
191
  [
227
192
  l,
228
- x,
229
- j,
193
+ d,
194
+ g,
230
195
  // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-unsafe-assignment
231
- ...Object.values(n || {}),
196
+ ...Object.values(r || {}),
232
197
  t
233
198
  ]
234
199
  );
235
- const { count: y, max_limit: h } = g.data || {};
200
+ const { count: v, max_limit: h } = j.data || {};
236
201
  return h && (c = c.filter(
237
202
  (p) => p <= h
238
- )), /* @__PURE__ */ o.jsxs(G, { ...m, children: [
239
- W(
240
- g,
203
+ )), /* @__PURE__ */ i.jsxs(U, { ...u, children: [
204
+ V(
205
+ j,
241
206
  ({ data: p }) => e(p, {
242
- limit: x,
207
+ limit: d,
243
208
  page: L,
244
- offset: j,
245
- count: y,
209
+ offset: g,
210
+ count: v,
246
211
  maxLimit: h
247
212
  })
248
213
  ),
249
- /* @__PURE__ */ o.jsx(
250
- V,
214
+ /* @__PURE__ */ i.jsx(
215
+ D,
251
216
  {
252
217
  component: "div",
253
- count: y ?? 0,
254
- rowsPerPage: x,
218
+ count: v ?? 0,
219
+ rowsPerPage: d,
255
220
  onRowsPerPageChange: (p) => {
256
- v({ limit: parseInt(p.target.value), page: 0 }), a && a(p);
221
+ y({ limit: parseInt(p.target.value), page: 0 }), n && n(p);
257
222
  },
258
223
  page: L,
259
- onPageChange: (p, f) => {
260
- v(({ limit: C }) => ({ limit: C, page: f })), u && u(p, f);
224
+ onPageChange: (p, x) => {
225
+ y(({ limit: z }) => ({ limit: z, page: x })), m && m(p, x);
261
226
  },
262
- rowsPerPageOptions: c.sort((p, f) => p - f),
263
- ...d
227
+ rowsPerPageOptions: c.sort((p, x) => p - x),
228
+ ...f
264
229
  }
265
230
  )
266
231
  ] });
267
- }, Lt = ({
232
+ }, nt = ({
268
233
  src: e,
269
- style: s = {},
234
+ style: o = {},
270
235
  ...t
271
- }) => /* @__PURE__ */ o.jsx(
272
- Y,
236
+ }) => /* @__PURE__ */ i.jsx(
237
+ N,
273
238
  {
274
239
  component: "iframe",
275
240
  width: "100%",
276
241
  src: e,
277
242
  title: "YouTube video player",
278
243
  allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen",
279
- style: { border: "0px", aspectRatio: "16 / 9", ...s },
244
+ style: { border: "0px", aspectRatio: "16 / 9", ...o },
280
245
  ...t
281
246
  }
282
247
  );
283
248
  export {
284
- lt as App,
285
- mt as ClickableTooltip,
286
- ut as CopyIconButton,
287
- Ut as Countdown,
288
- pt as DownloadFileButton,
289
- dt as ElevatedAppBar,
290
- Dt as Image,
291
- xt as InputFileButton,
292
- ft as ItemizedList,
293
- bt as Link,
294
- Et as LinkButton,
295
- Ct as LinkIconButton,
296
- St as LinkListItem,
297
- wt as LinkTab,
298
- zt as Navigate,
299
- jt as OrderedGrid,
300
- ht as ScrollIntoViewLink,
301
- _t as SyncError,
302
- gt as TablePagination,
303
- Lt as YouTubeVideo,
304
- Rt as forms,
305
- kt as pages,
306
- Mt as tables
249
+ X as ClickableTooltip,
250
+ Z as CopyIconButton,
251
+ kt as Countdown,
252
+ I as DownloadFileButton,
253
+ tt as ElevatedAppBar,
254
+ Bt as Image,
255
+ et as InputFileButton,
256
+ ot as ItemizedList,
257
+ ft as Link,
258
+ Lt as LinkButton,
259
+ dt as LinkIconButton,
260
+ xt as LinkListItem,
261
+ gt as LinkTab,
262
+ ht as Navigate,
263
+ st as OrderedGrid,
264
+ it as ScrollIntoViewLink,
265
+ Ct as SyncError,
266
+ rt as TablePagination,
267
+ nt as YouTubeVideo,
268
+ lt as forms,
269
+ mt as pages,
270
+ vt as tables
307
271
  };
308
272
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.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.es.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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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../index-CBPn0wyX.cjs");exports.Banner=e.Banner;exports.Notification=e.Notification;exports.Page=e.Page;exports.Section=e.Section;exports.TabBar=e.TabBar;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../index-5C9hpxRF.cjs");exports.Banner=e.Banner;exports.Notification=e.Notification;exports.Page=e.Page;exports.Section=e.Section;exports.TabBar=e.TabBar;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { B as s, N as e, P as i, S as n, T as r } from "../../index-DcmDxIXA.js";
1
+ import { B as s, N as e, P as i, S as n, T as r } from "../../index-hdS8RgRc.js";
2
2
  export {
3
3
  s as Banner,
4
4
  e as Notification,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../Navigate-C_sgy8Xs.cjs"),n=require("../../LinkButton-BOPjG7_2.cjs");exports.Link=t.Link;exports.LinkIconButton=t.LinkIconButton;exports.LinkListItem=t.LinkListItem;exports.LinkTab=t.LinkTab;exports.Navigate=t.Navigate;exports.LinkButton=n.LinkButton;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../Navigate-CrMwdIBB.cjs"),n=require("../../LinkButton-Kw2brLTK.cjs");exports.Link=t.Link;exports.LinkIconButton=t.LinkIconButton;exports.LinkListItem=t.LinkListItem;exports.LinkTab=t.LinkTab;exports.Navigate=t.Navigate;exports.LinkButton=n.LinkButton;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,5 +1,5 @@
1
- import { L as n, a as L, b as i, c as o, N as s } from "../../Navigate-SL_oMjPc.js";
2
- import { L as e } from "../../LinkButton-Bk50AHHg.js";
1
+ import { L as n, a as L, b as i, c as o, N as s } from "../../Navigate-ClPcw87e.js";
2
+ import { L as e } from "../../LinkButton-sQ5jgHnX.js";
3
3
  export {
4
4
  n as Link,
5
5
  e as LinkButton,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../index-B6aNVvMr.cjs"),t=require("@mui/material");exports.CellStack=e.CellStack;exports.Table=e.Table;Object.defineProperty(exports,"BodyRow",{enumerable:!0,get:()=>t.TableRow});Object.defineProperty(exports,"Cell",{enumerable:!0,get:()=>t.TableCell});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../index-CwC9mpb3.cjs"),t=require("@mui/material");exports.CellStack=e.CellStack;exports.Table=e.Table;Object.defineProperty(exports,"BodyRow",{enumerable:!0,get:()=>t.TableRow});Object.defineProperty(exports,"Cell",{enumerable:!0,get:()=>t.TableCell});
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { C as e, T as o } from "../../index-Dfo744Sb.js";
1
+ import { C as e, T as o } from "../../index-B3e_XaVG.js";
2
2
  import { TableRow as s, TableCell as C } from "@mui/material";
3
3
  export {
4
4
  s as BodyRow,