quantum-component-library 1.4.47-dev.11 → 1.4.47-dev.2

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 (37) hide show
  1. package/dist/components/activity-list/index.d.ts +2 -28
  2. package/dist/components/parameter-edit-list/index.d.ts +1 -2
  3. package/dist/components/test-filter-panel/index.d.ts +3 -5
  4. package/dist/components/upsert-activity-form/index.d.ts +1 -3
  5. package/dist/components.cjs +1 -1
  6. package/dist/components.js +1273 -1330
  7. package/dist/generated/gql.d.ts +2 -2
  8. package/dist/generated/graphql.d.ts +1 -38
  9. package/dist/generated-B5QGMyhw.cjs +1 -0
  10. package/dist/generated-esGwfMXj.js +66 -0
  11. package/dist/{graphql-CvUc6Vdv.js → graphql-CZIf58Fd.js} +22 -30
  12. package/dist/{graphql-C6M9oyU0.cjs → graphql-KvyVlavd.cjs} +9 -16
  13. package/dist/{graphql-vendor-B0NjgbDB.js → graphql-vendor-BWnD0b-j.js} +3 -2
  14. package/dist/{graphql-vendor-B-QTAQSb.cjs → graphql-vendor-CL0XsjHb.cjs} +9 -9
  15. package/dist/hooks.cjs +1 -1
  16. package/dist/hooks.js +1 -1
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.js +115 -118
  19. package/dist/lib/services/index.d.ts +0 -1
  20. package/dist/providers.cjs +1 -1
  21. package/dist/providers.js +3 -3
  22. package/dist/quantum-component-library.css +1 -1
  23. package/dist/{react-select-vendor-D_Q2fL5j.cjs → react-select-vendor-BPaBUHFp.cjs} +1 -1
  24. package/dist/{react-select-vendor-BlY9Il4Q.js → react-select-vendor-C_DuqfB7.js} +5 -4
  25. package/dist/services.cjs +1 -1
  26. package/dist/services.js +212 -249
  27. package/dist/types.cjs +1 -1
  28. package/dist/types.js +1 -1
  29. package/dist/utils.cjs +1 -1
  30. package/dist/utils.js +1 -1
  31. package/package.json +1 -11
  32. package/dist/components/activity-list/index.stories.d.ts +0 -6
  33. package/dist/generated-graphql.cjs +0 -1
  34. package/dist/generated-graphql.js +0 -68
  35. package/dist/generated.cjs +0 -1
  36. package/dist/generated.js +0 -73
  37. package/dist/lib/services/action.d.ts +0 -4
@@ -1,246 +1,243 @@
1
1
  import { j as e } from "./react-jsx-runtime-vendor-OVHDjVDe.js";
2
- import { Flex as he, InputGroup as Fe, InputLeftElement as ct, Icon as Ue, Input as je, FormLabel as Be, Box as Y, TableContainer as qe, Table as He, Thead as Ye, Tr as Se, Th as ue, Tbody as Je, Td as ge, ButtonGroup as xe, Tooltip as Le, Button as J, RangeSlider as dt, RangeSliderMark as Ne, Text as x, RangeSliderTrack as ut, RangeSliderFilledTrack as ht, RangeSliderThumb as ke, Select as Re, NumberInput as Ee, NumberInputField as ze, HStack as te, Tag as fe, Checkbox as mt, Image as pt, useToast as Xe, VStack as ee, FormControl as q, RadioGroup as Ke, Radio as Ae, Alert as Te, AlertIcon as Me, Spinner as Ze, useDisclosure as gt, Modal as xt, ModalOverlay as jt, ModalContent as ft, ModalHeader as vt, ModalCloseButton as yt, ModalBody as bt, ModalFooter as Ct, IconButton as wt, Textarea as $e } from "@chakra-ui/react";
3
- import { useMemo as F, useState as P, useCallback as R, useRef as St, useEffect as ne, memo as Oe } from "react";
4
- import { u as At } from "./ufuzzy-vendor-Dl0ZI6Av.js";
5
- import { s as se } from "./react-select-vendor-BlY9Il4Q.js";
6
- import { F as Tt, a as Mt } from "./react-icons-vendor-TETORdU9.js";
7
- import { u as le, a as oe } from "./graphql-vendor-B0NjgbDB.js";
8
- import { getFragmentData as U } from "./generated.js";
9
- import { M as me, A as ae, G as Ve, a as Ot, C as De, b as et, c as tt, d as Ce, e as nt, f as It, U as st, g as ot, h as Nt, i as Lt, j as rt, k as Dt, l as Ft, m as kt } from "./graphql-CvUc6Vdv.js";
10
- import { D as Rt, H as Et, u as zt, a as $t } from "./react-dnd-vendor-D4nn9Mqx.js";
11
- import { ThresholdKind as we, SensorLocation as W, SessionType as Pt, ActionLaterality as _t, ActivityType as Gt } from "./generated-graphql.js";
12
- import { getSegmentNameWithPlane as it, getJointNameWithPlane as lt, getJointAngleDirectionName as Wt, getSegmentAngleDirectionName as Qt, getNormativeJointRange as Ut, mapSessionTypeEnumToLabel as Pe, getActivityKindFromActivityType as Bt, mapActivityTypeEnumToLabel as _e } from "./services.js";
13
- import { availablePlanes as Ge, getAnalysisPartIdNoSide as ve } from "./types.js";
14
- import { thresholdsToParameters as qt, parametersToThresholds as We, cn as Ht } from "./utils.js";
15
- import { usePartOptionsForSensorLocations as Yt } from "./hooks.js";
16
- const Jt = ({
17
- setSearch: s,
18
- actions: n,
19
- updateUseCases: i,
20
- hideUseCaseFilter: c = !1
2
+ import { Flex as he, InputGroup as Pe, InputLeftElement as dt, Icon as Qe, Input as Ie, FormLabel as qe, Box as q, TableContainer as He, Table as Ye, Thead as Je, Tr as Me, Th as ce, Tbody as Ke, Td as ue, ButtonGroup as me, Tooltip as Xe, Button as J, RangeSlider as ut, RangeSliderMark as Re, Text as v, RangeSliderTrack as ht, RangeSliderFilledTrack as mt, RangeSliderThumb as Ue, Select as $e, NumberInput as Ge, NumberInputField as We, HStack as X, Tag as ge, Checkbox as pt, useToast as Ze, VStack as Z, FormControl as W, RadioGroup as Ve, Radio as Ae, Alert as Oe, AlertIcon as Te, Spinner as et, useDisclosure as gt, Modal as xt, ModalOverlay as ft, ModalContent as jt, ModalHeader as vt, ModalCloseButton as bt, ModalBody as yt, ModalFooter as Ct, IconButton as wt, Textarea as Le } from "@chakra-ui/react";
3
+ import { useMemo as _, useState as E, useCallback as N, useRef as St, useEffect as V, memo as Ne } from "react";
4
+ import { u as Mt } from "./ufuzzy-vendor-Dl0ZI6Av.js";
5
+ import { s as ie, y as At } from "./react-select-vendor-C_DuqfB7.js";
6
+ import { F as Ot, a as Tt } from "./react-icons-vendor-TETORdU9.js";
7
+ import { u as oe, a as te, b as It } from "./graphql-vendor-BWnD0b-j.js";
8
+ import { g as B, T as we, S as z, A as ve, a as Fe } from "./generated-esGwfMXj.js";
9
+ import { A as re, G as tt, a as Nt, C as ze, b as st, c as nt, d as Se, M as ot, e as ke, f as Rt, U as rt, g as it, S as Lt, h as Ft, i as Et, j as Dt, k as kt, l as _t, m as zt, n as Pt } from "./graphql-CZIf58Fd.js";
10
+ import { D as Ut, H as $t, u as Gt, a as Wt } from "./react-dnd-vendor-D4nn9Mqx.js";
11
+ import { getSegmentNameWithPlane as lt, getJointNameWithPlane as at, getJointAngleDirectionName as Bt, getSegmentAngleDirectionName as Qt, getNormativeJointRange as qt } from "./services.js";
12
+ import { availablePlanes as Be, getAnalysisPartIdNoSide as be } from "./types.js";
13
+ import { thresholdsToParameters as Ht, parametersToThresholds as Ee, cn as Yt } from "./utils.js";
14
+ import { usePartOptionsForSensorLocations as Jt } from "./hooks.js";
15
+ const Kt = ({
16
+ setSearch: n,
17
+ actions: s,
18
+ updateUseCases: r
21
19
  }) => {
22
- const u = F(
23
- () => n?.flatMap((l) => l.useCases).filter((l, d, v) => v.findIndex((o) => o.id === l.id) === d).map((l) => ({
24
- label: l.name,
25
- value: l.id
20
+ const d = _(
21
+ () => s?.flatMap((i) => i.useCases).filter((i, l, u) => u.findIndex((g) => g.id === i.id) === l).map((i) => ({
22
+ label: i.name,
23
+ value: i.id
26
24
  })) || [],
27
- [n]
25
+ [s]
28
26
  );
29
27
  return /* @__PURE__ */ e.jsxs(he, { width: "100%", alignContent: "space-evenly", gap: 4, children: [
30
- /* @__PURE__ */ e.jsxs(Fe, { size: "md", flex: 1, children: [
31
- /* @__PURE__ */ e.jsx(ct, { children: /* @__PURE__ */ e.jsx(Ue, { as: Tt, color: "gray.300" }) }),
28
+ /* @__PURE__ */ e.jsxs(Pe, { size: "md", children: [
29
+ /* @__PURE__ */ e.jsx(dt, { children: /* @__PURE__ */ e.jsx(Qe, { as: Ot, color: "gray.300" }) }),
32
30
  /* @__PURE__ */ e.jsx(
33
- je,
31
+ Ie,
34
32
  {
35
33
  placeholder: "Search by name...",
36
- width: "100%",
37
- maxW: c ? void 0 : "30rem",
38
- onChange: (l) => s(l.target.value)
34
+ maxW: "30rem",
35
+ onChange: (i) => n(i.target.value)
39
36
  }
40
37
  )
41
38
  ] }),
42
- !c && /* @__PURE__ */ e.jsx(Fe, { size: "md", children: /* @__PURE__ */ e.jsx(
43
- se,
39
+ /* @__PURE__ */ e.jsx(Pe, { size: "md", children: /* @__PURE__ */ e.jsx(
40
+ ie,
44
41
  {
45
42
  size: "md",
46
43
  chakraStyles: {
47
- container: (l) => ({
48
- ...l,
44
+ container: (i) => ({
45
+ ...i,
49
46
  width: "100%"
50
47
  })
51
48
  },
52
49
  menuPortalTarget: document.body,
53
50
  placeholder: "Filter use case",
54
51
  isMulti: !0,
55
- options: u,
56
- onChange: (l) => i(l.map((d) => d.value))
52
+ options: d,
53
+ onChange: (i) => r(i.map((l) => l.value))
57
54
  }
58
55
  ) })
59
56
  ] });
60
- }, re = ({
61
- children: s
62
- }) => /* @__PURE__ */ e.jsx(Be, { fontWeight: "bold", fontFamily: "sans-serif", fontSize: "large", children: s }), Xt = ({ value: s, onChange: n }) => {
63
- const i = P(
57
+ }, se = ({
58
+ children: n
59
+ }) => /* @__PURE__ */ e.jsx(qe, { fontWeight: "bold", fontFamily: "sans-serif", fontSize: "large", children: n }), Xt = ({ value: n, onChange: s }) => {
60
+ const r = E(
64
61
  () => Math.random().toString(36).substring(2, 15)
65
- )[0], c = R(
66
- (u, l) => {
67
- n((d) => {
68
- const v = [...d], [o] = v.splice(u, 1);
69
- return v.splice(l, 0, o), v;
62
+ )[0], d = N(
63
+ (i, l) => {
64
+ s((u) => {
65
+ const g = [...u], [a] = g.splice(i, 1);
66
+ return g.splice(l, 0, a), g;
70
67
  });
71
68
  },
72
- [n]
69
+ [s]
73
70
  );
74
- return /* @__PURE__ */ e.jsx(Y, { children: /* @__PURE__ */ e.jsx(Rt, { backend: Et, children: /* @__PURE__ */ e.jsx(qe, { children: /* @__PURE__ */ e.jsxs(He, { variant: "simple", size: "md", children: [
75
- /* @__PURE__ */ e.jsx(Ye, { children: /* @__PURE__ */ e.jsxs(Se, { children: [
76
- /* @__PURE__ */ e.jsx(ue, { children: "Order" }),
77
- /* @__PURE__ */ e.jsx(ue, { children: "Name" })
71
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(Ut, { backend: $t, children: /* @__PURE__ */ e.jsx(He, { children: /* @__PURE__ */ e.jsxs(Ye, { variant: "simple", size: "md", children: [
72
+ /* @__PURE__ */ e.jsx(Je, { children: /* @__PURE__ */ e.jsxs(Me, { children: [
73
+ /* @__PURE__ */ e.jsx(ce, { children: "Order" }),
74
+ /* @__PURE__ */ e.jsx(ce, { children: "Name" })
78
75
  ] }) }),
79
- /* @__PURE__ */ e.jsx(Je, { children: s.map((u, l) => /* @__PURE__ */ e.jsx(
80
- Kt,
76
+ /* @__PURE__ */ e.jsx(Ke, { children: n.map((i, l) => /* @__PURE__ */ e.jsx(
77
+ Zt,
81
78
  {
82
- listKey: i,
79
+ listKey: r,
83
80
  index: l,
84
- id: u.id,
85
- name: u.name,
86
- move: c
81
+ id: i.id,
82
+ name: i.name,
83
+ move: d
87
84
  },
88
- u.id
85
+ i.id
89
86
  )) })
90
87
  ] }) }) }) });
91
- }, Kt = ({ listKey: s, index: n, id: i, name: c, move: u }) => {
92
- const l = St(null), [{ handlerId: d }, v] = zt({
93
- accept: s,
94
- collect: (h) => ({
95
- handlerId: h.getHandlerId()?.toString() ?? ""
88
+ }, Zt = ({ listKey: n, index: s, id: r, name: d, move: i }) => {
89
+ const l = St(null), [{ handlerId: u }, g] = Gt({
90
+ accept: n,
91
+ collect: (x) => ({
92
+ handlerId: x.getHandlerId()?.toString() ?? ""
96
93
  }),
97
- hover: (h, C) => {
94
+ hover: (x, A) => {
98
95
  if (!l.current)
99
96
  return;
100
- const r = h.index, a = n;
101
- if (r === a)
97
+ const o = x.index, c = s;
98
+ if (o === c)
102
99
  return;
103
- const p = l.current?.getBoundingClientRect(), g = (p.bottom - p.top) / 2, w = C.getClientOffset().y - p.top;
104
- r < a && w < g || r > a && w > g || (u(r, a), h.index = a);
100
+ const j = l.current?.getBoundingClientRect(), m = (j.bottom - j.top) / 2, w = A.getClientOffset().y - j.top;
101
+ o < c && w < m || o > c && w > m || (i(o, c), x.index = c);
105
102
  }
106
- }), [{ isDragging: o }, I] = $t({
107
- type: s,
108
- item: () => ({ id: i, index: n }),
109
- collect: (h) => ({
110
- isDragging: h.isDragging()
103
+ }), [{ isDragging: a }, M] = Wt({
104
+ type: n,
105
+ item: () => ({ id: r, index: s }),
106
+ collect: (x) => ({
107
+ isDragging: x.isDragging()
111
108
  })
112
- }), j = o ? 0.6 : 1, A = o ? "grabbing" : "grab";
113
- return I(v(l)), /* @__PURE__ */ e.jsxs(Se, { ref: l, style: { opacity: j, cursor: A }, "data-handler-id": d, children: [
114
- /* @__PURE__ */ e.jsx(ge, { children: n + 1 }),
115
- /* @__PURE__ */ e.jsx(ge, { children: c })
109
+ }), T = a ? 0.6 : 1, p = a ? "grabbing" : "grab";
110
+ return M(g(l)), /* @__PURE__ */ e.jsxs(Me, { ref: l, style: { opacity: T, cursor: p }, "data-handler-id": u, children: [
111
+ /* @__PURE__ */ e.jsx(ue, { children: s + 1 }),
112
+ /* @__PURE__ */ e.jsx(ue, { children: d })
116
113
  ] });
117
- }, Zt = ({
118
- items: s,
119
- onChange: n,
120
- selectedItem: i,
121
- isDisabled: c,
122
- selectedProps: u,
114
+ }, _e = ({
115
+ items: n,
116
+ onChange: s,
117
+ selectedItem: r,
118
+ isDisabled: d,
119
+ selectedProps: i,
123
120
  buttonProps: l
124
121
  }) => {
125
- const d = (o) => o === i || o.value === i, v = (o) => d(o) ? { ...l, ...u } : l;
126
- return /* @__PURE__ */ e.jsx(xe, { isAttached: !0, isDisabled: c, children: s.map((o, I) => /* @__PURE__ */ e.jsx(
127
- Le,
122
+ const u = (a) => a === r || a.value === r, g = (a) => u(a) ? { ...l, ...i } : l;
123
+ return /* @__PURE__ */ e.jsx(me, { isAttached: !0, isDisabled: d, children: n.map((a, M) => /* @__PURE__ */ e.jsx(
124
+ Xe,
128
125
  {
129
- label: o.tooltip,
126
+ label: a.tooltip,
130
127
  openDelay: 50,
131
128
  closeDelay: 200,
132
129
  placement: "top",
133
- visibility: o.tooltip ? "visible" : "hidden",
130
+ visibility: a.tooltip ? "visible" : "hidden",
134
131
  hasArrow: !0,
135
132
  children: /* @__PURE__ */ e.jsx(
136
133
  J,
137
134
  {
138
- onClick: () => d(o) ? null : n(o, I),
139
- isDisabled: o.disabled,
140
- ...v(o),
141
- children: o.label
135
+ onClick: () => u(a) ? null : s(a, M),
136
+ isDisabled: a.disabled,
137
+ ...g(a),
138
+ children: a.label
142
139
  }
143
140
  )
144
141
  },
145
- I
142
+ M
146
143
  )) });
147
- }, ye = (s, n) => n < 0 ? -1 * Math.abs(s) : Math.abs(s), Vt = ({
148
- isReversed: s,
149
- min: n,
150
- max: i,
151
- value: c,
152
- onChange: u,
144
+ }, ye = (n, s) => s < 0 ? -1 * Math.abs(n) : Math.abs(n), Vt = ({
145
+ isReversed: n,
146
+ min: s,
147
+ max: r,
148
+ value: d,
149
+ onChange: i,
153
150
  inputProps: l,
154
- size: d,
155
- zeroMarker: v,
156
- formatValue: o,
157
- valueLabel: I,
158
- positiveNegativeLabels: j,
159
- isDisabled: A,
160
- ...h
151
+ size: u,
152
+ zeroMarker: g,
153
+ formatValue: a,
154
+ valueLabel: M,
155
+ positiveNegativeLabels: T,
156
+ isDisabled: p,
157
+ ...x
161
158
  }) => {
162
- const [C, r] = P([void 0, void 0]), a = C[0], p = C[1], g = v && n < -5 && i > 5, y = Number(c?.[0] ?? p ?? n) > 0 ? 1 : -1, w = Number(c?.[1] ?? p ?? i) < 0 ? -1 : 1, G = j?.[0] === j?.[1], k = c?.[0], T = c?.[1];
163
- ne(() => {
164
- k !== void 0 && T !== void 0 && r([k.toFixed(0), T.toFixed(0)]);
165
- }, [k, T, r]);
166
- const N = R(
167
- ([b, z]) => {
168
- b < z && r([b.toFixed(0), z.toFixed(0)]);
159
+ const [A, o] = E([void 0, void 0]), c = A[0], j = A[1], m = g && s < -5 && r > 5, C = Number(d?.[0] ?? j ?? s) > 0 ? 1 : -1, w = Number(d?.[1] ?? j ?? r) < 0 ? -1 : 1, S = T?.[0] === T?.[1], b = d?.[0], O = d?.[1];
160
+ V(() => {
161
+ b !== void 0 && O !== void 0 && o([b.toFixed(0), O.toFixed(0)]);
162
+ }, [b, O, o]);
163
+ const I = N(
164
+ ([y, L]) => {
165
+ y < L && o([y.toFixed(0), L.toFixed(0)]);
169
166
  },
170
- [r]
171
- ), E = R(
172
- ([b, z]) => {
173
- b < z && u([b, z]);
167
+ [o]
168
+ ), D = N(
169
+ ([y, L]) => {
170
+ y < L && i([y, L]);
174
171
  },
175
- [u]
176
- ), _ = R(() => {
177
- r(([b, z]) => {
178
- const Z = isNaN(Number(b)) ? n : Number(b), t = isNaN(Number(z)) ? i : Number(z), m = ye(Number(Z), y), S = ye(Number(t), w), D = y < 0 ? Math.max(m, n) : Math.min(m, i), $ = w < 0 ? Math.max(S, n) : Math.min(S, i);
179
- return D > $ ? (u([$, D]), [$.toFixed(0), D.toFixed(0)]) : (u([D, $]), [D.toFixed(0), $.toFixed(0)]);
172
+ [i]
173
+ ), P = N(() => {
174
+ o(([y, L]) => {
175
+ const K = isNaN(Number(y)) ? s : Number(y), t = isNaN(Number(L)) ? r : Number(L), h = ye(Number(K), C), f = ye(Number(t), w), F = C < 0 ? Math.max(h, s) : Math.min(h, r), U = w < 0 ? Math.max(f, s) : Math.min(f, r);
176
+ return F > U ? (i([U, F]), [U.toFixed(0), F.toFixed(0)]) : (i([F, U]), [F.toFixed(0), U.toFixed(0)]);
180
177
  });
181
- }, [u, r, y, w, n, i]), f = R(
182
- (b) => {
183
- const z = b === "" || isNaN(Number(b)) ? b : ye(Number(b), y);
184
- r(([Z, t]) => [z.toString(), t]);
178
+ }, [i, o, C, w, s, r]), ee = N(
179
+ (y) => {
180
+ const L = y === "" || isNaN(Number(y)) ? y : ye(Number(y), C);
181
+ o(([K, t]) => [L.toString(), t]);
185
182
  },
186
- [r, y]
187
- ), M = R(
188
- (b) => {
189
- const z = b === "" || isNaN(Number(b)) ? b : ye(Number(b), w);
190
- r(([Z, t]) => [Z, z.toString()]);
183
+ [o, C]
184
+ ), $ = N(
185
+ (y) => {
186
+ const L = y === "" || isNaN(Number(y)) ? y : ye(Number(y), w);
187
+ o(([K, t]) => [K, L.toString()]);
191
188
  },
192
- [r, w]
193
- ), L = F(
194
- () => d === "xs" ? "0.75rem" : void 0,
195
- [d]
196
- ), X = R(
197
- (b, z) => {
198
- const Z = Number(z.target.value);
199
- if (!a || !p || ![-1, 1].includes(Z))
189
+ [o, w]
190
+ ), k = _(
191
+ () => u === "xs" ? "0.75rem" : void 0,
192
+ [u]
193
+ ), H = N(
194
+ (y, L) => {
195
+ const K = Number(L.target.value);
196
+ if (!c || !j || ![-1, 1].includes(K))
200
197
  return;
201
- const t = (D) => Z < 0 ? -1 * Math.abs(D) : Math.abs(D), m = b ? t(Number(a)) : Number(a), S = b ? Number(p) : t(Number(p));
202
- m > S ? u([S, m]) : u([m, S]);
198
+ const t = (F) => K < 0 ? -1 * Math.abs(F) : Math.abs(F), h = y ? t(Number(c)) : Number(c), f = y ? Number(j) : t(Number(j));
199
+ h > f ? i([f, h]) : i([h, f]);
203
200
  },
204
- [a, p, u]
201
+ [c, j, i]
205
202
  );
206
- return /* @__PURE__ */ e.jsxs(he, { direction: "column", ...h, children: [
207
- /* @__PURE__ */ e.jsx(Y, { pt: "1em", mb: "-0.5em", children: /* @__PURE__ */ e.jsxs(
208
- dt,
203
+ return /* @__PURE__ */ e.jsxs(he, { direction: "column", ...x, children: [
204
+ /* @__PURE__ */ e.jsx(q, { pt: "1em", mb: "-0.5em", children: /* @__PURE__ */ e.jsxs(
205
+ ut,
209
206
  {
210
207
  "aria-label": ["min", "max"],
211
- isReversed: s,
212
- value: [Number(a ?? n), Number(p ?? i)],
213
- max: i,
214
- min: n,
208
+ isReversed: n,
209
+ value: [Number(c ?? s), Number(j ?? r)],
210
+ max: r,
211
+ min: s,
215
212
  minStepsBetweenThumbs: 3,
216
213
  step: 1,
217
- onChange: N,
218
- onChangeEnd: E,
219
- isDisabled: A,
214
+ onChange: I,
215
+ onChangeEnd: D,
216
+ isDisabled: p,
220
217
  children: [
221
- /* @__PURE__ */ e.jsx(Ne, { value: n, top: "-1em", children: /* @__PURE__ */ e.jsx(
222
- x,
218
+ /* @__PURE__ */ e.jsx(Re, { value: s, top: "-1em", children: /* @__PURE__ */ e.jsx(
219
+ v,
223
220
  {
224
- fontSize: d ?? "sm",
221
+ fontSize: u ?? "sm",
225
222
  fontWeight: "semibold",
226
223
  whiteSpace: "nowrap",
227
- children: o ? o?.(n) : n
224
+ children: a ? a?.(s) : s
228
225
  }
229
226
  ) }),
230
- /* @__PURE__ */ e.jsx(Ne, { value: i, top: "-1em", children: /* @__PURE__ */ e.jsx(
231
- x,
227
+ /* @__PURE__ */ e.jsx(Re, { value: r, top: "-1em", children: /* @__PURE__ */ e.jsx(
228
+ v,
232
229
  {
233
- fontSize: d ?? "sm",
230
+ fontSize: u ?? "sm",
234
231
  fontWeight: "semibold",
235
232
  style: { transform: "translateX(-100%)" },
236
233
  whiteSpace: "nowrap",
237
- children: o ? o(i) : i
234
+ children: a ? a(r) : r
238
235
  }
239
236
  ) }),
240
- g && /* @__PURE__ */ e.jsxs(Ne, { value: 0, top: "-1em", pos: "relative", children: [
241
- /* @__PURE__ */ e.jsx(x, { fontSize: d, fontWeight: "semibold", children: o?.(0) ?? "0" }),
237
+ m && /* @__PURE__ */ e.jsxs(Re, { value: 0, top: "-1em", pos: "relative", children: [
238
+ /* @__PURE__ */ e.jsx(v, { fontSize: u, fontWeight: "semibold", children: a?.(0) ?? "0" }),
242
239
  /* @__PURE__ */ e.jsx(
243
- Y,
240
+ q,
244
241
  {
245
242
  position: "absolute",
246
243
  width: "2px",
@@ -251,34 +248,34 @@ const Jt = ({
251
248
  }
252
249
  )
253
250
  ] }),
254
- /* @__PURE__ */ e.jsx(ut, { children: /* @__PURE__ */ e.jsx(ht, {}) }),
255
- /* @__PURE__ */ e.jsx(ke, { index: 0, w: L, h: L }),
256
- /* @__PURE__ */ e.jsx(ke, { index: 1, w: L, h: L })
251
+ /* @__PURE__ */ e.jsx(ht, { children: /* @__PURE__ */ e.jsx(mt, {}) }),
252
+ /* @__PURE__ */ e.jsx(Ue, { index: 0, w: k, h: k }),
253
+ /* @__PURE__ */ e.jsx(Ue, { index: 1, w: k, h: k })
257
254
  ]
258
255
  }
259
256
  ) }),
260
- I && /* @__PURE__ */ e.jsxs(
257
+ M && /* @__PURE__ */ e.jsxs(
261
258
  he,
262
259
  {
263
- direction: s ? "row-reverse" : "row",
260
+ direction: n ? "row-reverse" : "row",
264
261
  justifyContent: "space-between",
265
262
  children: [
266
263
  /* @__PURE__ */ e.jsx(
267
- x,
264
+ v,
268
265
  {
269
- fontSize: d ?? "sm",
266
+ fontSize: u ?? "sm",
270
267
  fontWeight: "semibold",
271
268
  whiteSpace: "nowrap",
272
- children: I(n)
269
+ children: M(s)
273
270
  }
274
271
  ),
275
272
  /* @__PURE__ */ e.jsx(
276
- x,
273
+ v,
277
274
  {
278
- fontSize: d ?? "sm",
275
+ fontSize: u ?? "sm",
279
276
  fontWeight: "semibold",
280
277
  whiteSpace: "nowrap",
281
- children: I(i)
278
+ children: M(r)
282
279
  }
283
280
  )
284
281
  ]
@@ -287,43 +284,43 @@ const Jt = ({
287
284
  /* @__PURE__ */ e.jsxs(
288
285
  he,
289
286
  {
290
- direction: s ? "row-reverse" : "row",
287
+ direction: n ? "row-reverse" : "row",
291
288
  justifyContent: "center",
292
289
  alignItems: "center",
293
290
  gap: "0.125em",
294
291
  children: [
295
- j && /* @__PURE__ */ e.jsxs(
296
- Re,
292
+ T && /* @__PURE__ */ e.jsxs(
293
+ $e,
297
294
  {
298
295
  width: "auto",
299
- size: d,
296
+ size: u,
300
297
  fontWeight: "bold",
301
- value: y,
302
- onChange: (b) => X(!0, b),
303
- isDisabled: G || A,
298
+ value: C,
299
+ onChange: (y) => H(!0, y),
300
+ isDisabled: S || p,
304
301
  children: [
305
- /* @__PURE__ */ e.jsx("option", { value: -1, children: j[0] }),
306
- /* @__PURE__ */ e.jsx("option", { value: 1, children: j[1] })
302
+ /* @__PURE__ */ e.jsx("option", { value: -1, children: T[0] }),
303
+ /* @__PURE__ */ e.jsx("option", { value: 1, children: T[1] })
307
304
  ]
308
305
  }
309
306
  ),
310
307
  /* @__PURE__ */ e.jsx(
311
- Ee,
308
+ Ge,
312
309
  {
313
310
  precision: 0,
314
- size: d ?? "sm",
311
+ size: u ?? "sm",
315
312
  min: 0,
316
- max: y < 0 ? Math.abs(n) : T ?? i,
317
- value: a === "" ? "" : Math.abs(Number(a ?? n)),
318
- onChange: f,
319
- onBlur: _,
313
+ max: C < 0 ? Math.abs(s) : O ?? r,
314
+ value: c === "" ? "" : Math.abs(Number(c ?? s)),
315
+ onChange: ee,
316
+ onBlur: P,
320
317
  borderWidth: 1,
321
318
  borderRadius: 3,
322
319
  borderColor: "#ccc",
323
- isDisabled: A,
320
+ isDisabled: p,
324
321
  ...l,
325
322
  children: /* @__PURE__ */ e.jsx(
326
- ze,
323
+ We,
327
324
  {
328
325
  backgroundColor: "#fff",
329
326
  paddingRight: 0,
@@ -333,22 +330,22 @@ const Jt = ({
333
330
  }
334
331
  ),
335
332
  /* @__PURE__ */ e.jsx(
336
- Ee,
333
+ Ge,
337
334
  {
338
- size: d ?? "sm",
335
+ size: u ?? "sm",
339
336
  min: 0,
340
- max: w < 0 ? Math.abs(k ?? n) : i,
337
+ max: w < 0 ? Math.abs(b ?? s) : r,
341
338
  precision: 0,
342
- value: p === "" ? "" : Math.abs(Number(p ?? i)),
343
- onChange: M,
344
- onBlur: _,
339
+ value: j === "" ? "" : Math.abs(Number(j ?? r)),
340
+ onChange: $,
341
+ onBlur: P,
345
342
  borderWidth: 1,
346
343
  borderRadius: 3,
347
344
  borderColor: "#ccc",
348
- isDisabled: A,
345
+ isDisabled: p,
349
346
  ...l,
350
347
  children: /* @__PURE__ */ e.jsx(
351
- ze,
348
+ We,
352
349
  {
353
350
  backgroundColor: "#fff",
354
351
  paddingRight: 0,
@@ -357,18 +354,18 @@ const Jt = ({
357
354
  )
358
355
  }
359
356
  ),
360
- j && /* @__PURE__ */ e.jsxs(
361
- Re,
357
+ T && /* @__PURE__ */ e.jsxs(
358
+ $e,
362
359
  {
363
360
  width: "auto",
364
- size: d,
361
+ size: u,
365
362
  fontWeight: "bold",
366
363
  value: w,
367
- onChange: (b) => X(!1, b),
368
- isDisabled: G || A,
364
+ onChange: (y) => H(!1, y),
365
+ isDisabled: S || p,
369
366
  children: [
370
- /* @__PURE__ */ e.jsx("option", { value: -1, children: j[0] }),
371
- /* @__PURE__ */ e.jsx("option", { value: 1, children: j[1] })
367
+ /* @__PURE__ */ e.jsx("option", { value: -1, children: T[0] }),
368
+ /* @__PURE__ */ e.jsx("option", { value: 1, children: T[1] })
372
369
  ]
373
370
  }
374
371
  )
@@ -376,256 +373,186 @@ const Jt = ({
376
373
  }
377
374
  )
378
375
  ] });
379
- }, en = ({ tags: s, containerProps: n, ...i }) => /* @__PURE__ */ e.jsx(te, { ...n, children: s.map((c, u) => /* @__PURE__ */ e.jsx(fe, { ...i, children: c }, u)) }), tn = new At({}), nn = ({
380
- action: s,
381
- quantumIconSrc: n
382
- }) => s.quantumOwned ? /* @__PURE__ */ e.jsx(
383
- Le,
384
- {
385
- label: "This activity is owned by Quantum",
386
- "aria-label": "Quantum owned",
387
- children: /* @__PURE__ */ e.jsx(
388
- Y,
389
- {
390
- boxSize: "1.5em",
391
- borderRadius: "full",
392
- bg: "black",
393
- display: "flex",
394
- alignItems: "center",
395
- justifyContent: "center",
396
- children: /* @__PURE__ */ e.jsx(
397
- pt,
398
- {
399
- src: n,
400
- boxSize: "1em",
401
- alt: "Quantum-owned activity"
402
- }
403
- )
404
- }
405
- )
406
- }
407
- ) : null, sn = (s, n) => {
408
- if (!n || !n.trim().length)
409
- return s;
410
- const i = s.map((u) => u.name ?? "");
411
- return tn.filter(i, n)?.map((u) => s[u]) ?? [];
412
- }, on = (s) => !s || s.length === 0 ? "None" : s.map(
413
- (n) => (
414
- // Convert camelCase to separate words (e.g., 'LeftFoot' -> 'Left Foot')
415
- n.replace(/([A-Z])/g, " $1").trim()
416
- )
417
- ).join(", "), rn = (s, n) => !n || n.length == 0 ? s : s.filter(
418
- (i) => i.useCases?.some((c) => n.includes(c.id)) ?? !1
419
- ), ln = ({
420
- actions: s,
421
- totalActions: n,
422
- onCreate: i,
423
- onDelete: c,
424
- onEdit: u,
425
- onView: l,
426
- onSelected: d,
427
- onDuplicate: v,
428
- disableMultiSelect: o,
429
- disableDelete: I,
430
- disableEdit: j,
431
- disableCreate: A,
432
- hideUseCase: h = !0,
433
- tableProps: C,
434
- containerProps: r,
435
- quantumIconSrc: a = "/favicon.ico"
376
+ }, es = ({ tags: n, containerProps: s, ...r }) => /* @__PURE__ */ e.jsx(X, { ...s, children: n.map((d, i) => /* @__PURE__ */ e.jsx(ge, { ...r, children: d }, i)) }), ts = new Mt({}), ss = (n, s) => {
377
+ if (!s || !s.trim().length)
378
+ return n;
379
+ const r = n.map((i) => i.name ?? "");
380
+ return ts.filter(r, s)?.map((i) => n[i]) ?? [];
381
+ }, ns = (n, s) => !s || s.length == 0 ? n : n.filter(
382
+ (r) => r.useCases.some((d) => s.includes(d.id))
383
+ ), os = ({
384
+ actions: n,
385
+ totalActions: s,
386
+ onCreate: r,
387
+ onDelete: d,
388
+ onEdit: i,
389
+ onSelected: l,
390
+ onDuplicate: u,
391
+ disableMultiSelect: g,
392
+ disableDelete: a,
393
+ disableEdit: M,
394
+ disableCreate: T,
395
+ tableProps: p,
396
+ ...x
436
397
  }) => {
437
- const [p, g] = P(""), [y, w] = P(), G = F(() => {
438
- if (!s)
398
+ const [A, o] = E(""), [c, j] = E(), m = _(() => {
399
+ if (!n)
439
400
  return;
440
- const f = sn(s, p);
441
- return h ? f : rn(f, y);
442
- }, [s, p, y, h]), k = R(() => {
443
- if (!c)
401
+ const S = ss(n, A);
402
+ return ns(S, c).sort((O, I) => O.name.localeCompare(I.name));
403
+ }, [n, A, c]), C = N(() => {
404
+ if (!d)
444
405
  return;
445
- const M = s.filter(
446
- (L) => L.selected && !L.quantumOwned
447
- ).map((L) => L.id);
448
- c(M);
449
- }, [s, c]), T = R(() => {
450
- if (!v)
406
+ const S = n.filter((b) => b.selected).map((b) => b.id);
407
+ d(S);
408
+ }, [n, d]), w = N(() => {
409
+ if (!u)
451
410
  return;
452
- const f = s.filter((M) => M.selected);
453
- v(f.map((M) => M.id)), d && f.forEach((M) => d(M, !1));
454
- }, [s, v, d]), N = F(() => s.some((f) => f.selected && !f.quantumOwned), [s]), E = F(() => s.some((f) => f.selected), [s]), _ = F(() => s.some((f) => f.selected && f.quantumOwned), [s]);
455
- return /* @__PURE__ */ e.jsxs(Y, { ...r, children: [
411
+ const S = n.filter((b) => b.selected);
412
+ u(S.map((b) => b.id)), l && S.forEach((b) => l(b, !1));
413
+ }, [n, u, l]);
414
+ return /* @__PURE__ */ e.jsxs(q, { ...x, children: [
456
415
  /* @__PURE__ */ e.jsxs(he, { alignContent: "space-between", gap: 4, children: [
457
- (i || c || v) && /* @__PURE__ */ e.jsxs(xe, { mb: "1rem", gap: 4, children: [
458
- i && /* @__PURE__ */ e.jsx(
416
+ (r || d || u) && /* @__PURE__ */ e.jsxs(me, { mb: "1rem", gap: 4, children: [
417
+ r && /* @__PURE__ */ e.jsx(
459
418
  J,
460
419
  {
461
- isDisabled: !i || A,
420
+ isDisabled: !r || T,
462
421
  colorScheme: "blackAlpha",
463
422
  backgroundColor: "gray.700",
464
- onClick: i,
423
+ onClick: r,
465
424
  children: "Create New Activity"
466
425
  }
467
426
  ),
468
- c && !o && /* @__PURE__ */ e.jsx(
469
- Le,
427
+ d && !g && /* @__PURE__ */ e.jsx(
428
+ J,
470
429
  {
471
- label: _ ? N ? "Quantum-owned activities are selected and will be skipped" : "Selected activities are quantum-owned and cannot be deleted" : void 0,
472
- shouldWrapChildren: !0,
473
- children: /* @__PURE__ */ e.jsx(
474
- J,
475
- {
476
- colorScheme: "gray",
477
- isDisabled: !N || !c || I,
478
- onClick: k,
479
- children: "Delete Selected"
480
- }
481
- )
430
+ colorScheme: "gray",
431
+ isDisabled: n.length <= 0 || !d || a,
432
+ onClick: C,
433
+ children: "Delete Selected"
482
434
  }
483
435
  ),
484
- v && !o && /* @__PURE__ */ e.jsx(
436
+ u && !g && /* @__PURE__ */ e.jsx(
485
437
  J,
486
438
  {
487
439
  colorScheme: "gray",
488
- isDisabled: !E,
489
- onClick: T,
440
+ isDisabled: n.length <= 0,
441
+ onClick: w,
490
442
  children: "Duplicate Selected"
491
443
  }
492
444
  )
493
445
  ] }),
494
446
  /* @__PURE__ */ e.jsx(
495
- Jt,
447
+ Kt,
496
448
  {
497
- setSearch: g,
498
- actions: s,
499
- updateUseCases: w,
500
- hideUseCaseFilter: h
449
+ setSearch: o,
450
+ actions: n,
451
+ updateUseCases: j
501
452
  }
502
453
  )
503
454
  ] }),
504
- /* @__PURE__ */ e.jsx(qe, { mr: "2rem", overflowX: "hidden", ...C, children: /* @__PURE__ */ e.jsxs(He, { size: "md", variant: "simple", children: [
505
- /* @__PURE__ */ e.jsx(Ye, { position: "sticky", top: 0, bg: "white", zIndex: 1, children: /* @__PURE__ */ e.jsxs(Se, { children: [
506
- /* @__PURE__ */ e.jsxs(ue, { fontWeight: "normal", children: [
455
+ /* @__PURE__ */ e.jsx(He, { mr: "2rem", overflowX: "hidden", ...p, children: /* @__PURE__ */ e.jsxs(Ye, { size: "md", variant: "simple", children: [
456
+ /* @__PURE__ */ e.jsx(Je, { position: "sticky", top: 0, bg: "white", zIndex: 1, children: /* @__PURE__ */ e.jsxs(Me, { children: [
457
+ /* @__PURE__ */ e.jsxs(ce, { fontWeight: "normal", children: [
507
458
  "(showing ",
508
- G?.length ?? 0,
459
+ m?.length ?? 0,
509
460
  " of",
510
461
  " ",
511
- n ?? s.length,
462
+ s ?? n.length,
512
463
  ")"
513
464
  ] }),
514
- /* @__PURE__ */ e.jsx(ue, { children: "Name" }),
515
- /* @__PURE__ */ e.jsx(ue, { children: "Sensor Locations" }),
516
- !h && /* @__PURE__ */ e.jsx(ue, { children: "Use Case" }),
517
- /* @__PURE__ */ e.jsx(ue, {})
465
+ /* @__PURE__ */ e.jsx(ce, { children: "Name" }),
466
+ /* @__PURE__ */ e.jsx(ce, { children: "Sensor Count" }),
467
+ /* @__PURE__ */ e.jsx(ce, { children: "Use Case" }),
468
+ /* @__PURE__ */ e.jsx(ce, {})
518
469
  ] }) }),
519
- /* @__PURE__ */ e.jsx(Je, { children: G?.map((f) => /* @__PURE__ */ e.jsxs(
520
- Se,
470
+ /* @__PURE__ */ e.jsx(Ke, { children: m?.map((S) => /* @__PURE__ */ e.jsxs(
471
+ Me,
521
472
  {
522
- title: o && f.selected ? "This activity is selected. Click it again to deselect." : void 0,
523
- bg: o && f.selected ? "gray.200" : void 0,
473
+ title: g && S.selected ? "This activity is selected. Click it again to deselect." : void 0,
474
+ bg: g && S.selected ? "gray.200" : void 0,
524
475
  _hover: {
525
- bg: o && !f.selected ? "#f7f7f7" : void 0
476
+ bg: g && !S.selected ? "#f7f7f7" : void 0
526
477
  },
527
- cursor: o ? "pointer" : "default",
528
- onClick: () => o ? d?.(f, !f.selected) : void 0,
478
+ cursor: g ? "pointer" : "default",
479
+ onClick: () => g ? l?.(S, !S.selected) : void 0,
529
480
  children: [
530
- /* @__PURE__ */ e.jsx(ge, { children: /* @__PURE__ */ e.jsxs(he, { children: [
531
- d && !o && /* @__PURE__ */ e.jsx(
532
- mt,
481
+ /* @__PURE__ */ e.jsx(ue, { children: /* @__PURE__ */ e.jsxs(he, { children: [
482
+ l && !g && /* @__PURE__ */ e.jsx(
483
+ pt,
533
484
  {
534
- isChecked: f.selected,
535
- "aria-label": "Select activity",
536
- onChange: (M) => d(f, M.target.checked)
485
+ isChecked: S.selected,
486
+ onChange: (b) => l(S, b.target.checked)
537
487
  }
538
488
  ),
539
- (f.quantumOwned || !u) && l && /* @__PURE__ */ e.jsx(
489
+ i && /* @__PURE__ */ e.jsx(
540
490
  J,
541
491
  {
492
+ disabled: M,
542
493
  ml: "1em",
543
494
  size: "sm",
544
495
  variant: "link",
545
496
  colorScheme: "blue",
546
- onClick: () => l(f.id),
547
- children: "View"
548
- }
549
- ),
550
- !f.quantumOwned && u && /* @__PURE__ */ e.jsx(
551
- J,
552
- {
553
- isDisabled: j,
554
- ml: "1em",
555
- size: "sm",
556
- variant: "link",
557
- colorScheme: "blue",
558
- onClick: () => u(f.id),
559
- children: "Edit"
497
+ onClick: () => i(S.id),
498
+ children: "edit"
560
499
  }
561
500
  )
562
501
  ] }) }),
563
- /* @__PURE__ */ e.jsx(ge, { whiteSpace: "break-spaces", children: /* @__PURE__ */ e.jsxs(he, { align: "center", gap: 2, children: [
564
- /* @__PURE__ */ e.jsx(
565
- nn,
566
- {
567
- action: f,
568
- quantumIconSrc: a
569
- }
570
- ),
571
- f.name
572
- ] }) }),
573
- /* @__PURE__ */ e.jsx(ge, { maxW: "20rem", whiteSpace: "break-spaces", children: on(f.sensorLocations) }),
574
- !h && /* @__PURE__ */ e.jsx(ge, { maxW: "20rem", children: /* @__PURE__ */ e.jsx(
575
- en,
502
+ /* @__PURE__ */ e.jsx(ue, { whiteSpace: "break-spaces", children: S.name }),
503
+ /* @__PURE__ */ e.jsx(ue, { maxW: "20rem", children: S.sensorLocations.length }),
504
+ /* @__PURE__ */ e.jsx(ue, { maxW: "20rem", children: /* @__PURE__ */ e.jsx(
505
+ es,
576
506
  {
577
507
  containerProps: { flexWrap: "wrap" },
578
- tags: f.useCases?.map((M) => M.name) ?? []
508
+ tags: S.useCases?.map((b) => b.name) ?? []
579
509
  }
580
510
  ) })
581
511
  ]
582
512
  },
583
- f.id
513
+ S.id
584
514
  )) })
585
515
  ] }) })
586
516
  ] });
587
- }, kn = ({
588
- onSave: s,
589
- onCancel: n,
590
- onError: i,
591
- hideButtons: c = !1,
592
- setButtonDisabled: u,
517
+ }, Ns = ({
518
+ onSave: n,
519
+ onCancel: s,
520
+ onError: r,
521
+ hideButtons: d = !1,
522
+ setButtonDisabled: i,
593
523
  setButtonOnClick: l,
594
- quantumOwned: d
524
+ quantumOwned: u
595
525
  }) => {
596
- const v = Xe(), [o, I] = P("copy"), [j, A] = P(""), [h, C] = P([]), [r, a] = P(!1), [p] = le({
597
- query: Ve
598
- }), [g] = le({
599
- query: Ot,
600
- variables: { groupId: j },
601
- pause: !j
526
+ const g = Ze(), [a, M] = E("copy"), [T, p] = E(""), [x, A] = E([]), [o, c] = E(!1), [j] = oe({
527
+ query: tt
528
+ }), [m] = oe({
529
+ query: Nt,
530
+ variables: { groupId: T },
531
+ pause: !T
602
532
  // Only run when group is selected
603
- }), [, y] = oe(De), [, w] = oe(
604
- et
605
- ), G = F(() => p.data?.groups ? p.data.groups.map(
606
- (t) => U(tt, t)
607
- ) : [], [p.data]), k = F(() => g.data ? g.data.actions.map(
608
- (m) => U(ae, m)
609
- ) : [], [g.data]), T = F(() => k.filter(
610
- (t) => h.includes(t.id)
611
- ), [k, h]), N = R(
533
+ }), [, C] = te(ze), [, w] = te(
534
+ st
535
+ ), S = _(() => j.data?.groups ? j.data.groups.map(
536
+ (t) => B(nt, t)
537
+ ) : [], [j.data]), b = _(() => m.data ? m.data.actions.map(
538
+ (h) => B(re, h)
539
+ ) : [], [m.data]), O = _(() => b.filter(
540
+ (t) => x.includes(t.id)
541
+ ), [b, x]), I = N(
612
542
  (t) => {
613
- const m = t?.value || "";
614
- A(m), C([]);
543
+ const h = t?.value || "";
544
+ p(h), A([]);
615
545
  },
616
546
  []
617
- ), E = R(
547
+ ), D = N(
618
548
  (t) => {
619
- const m = t.map((S) => S.value);
620
- C(m);
549
+ const h = t.map((f) => f.value);
550
+ A(h);
621
551
  },
622
552
  []
623
- ), _ = R(
553
+ ), P = N(
624
554
  async (t) => {
625
- const m = U(
626
- me,
627
- t.categories
628
- ), S = {
555
+ const h = {
629
556
  ...t,
630
557
  name: `${t.name} (Copy)`,
631
558
  // Add "(Copy)" suffix to distinguish
@@ -635,202 +562,201 @@ const Jt = ({
635
562
  laterality: t.laterality,
636
563
  activityKind: t.activityKind,
637
564
  sensorLocations: t.sensorLocations,
638
- thresholds: t.thresholds.map(($) => ({
639
- ...$,
565
+ thresholds: t.thresholds.map((F) => ({
566
+ ...F,
640
567
  id: void 0
641
568
  })),
642
- categories: m?.map(($) => $.id),
643
- quantumOwned: d,
569
+ quantumOwned: u,
644
570
  id: void 0
645
- }, D = await y({ fields: S });
646
- if (D.error)
647
- throw new Error(D.error.message);
648
- if (D.data?.createAction)
649
- return U(ae, D.data.createAction);
571
+ }, f = await C({ fields: h });
572
+ if (f.error)
573
+ throw new Error(f.error.message);
574
+ if (f.data?.createAction)
575
+ return B(re, f.data.createAction);
650
576
  throw new Error("No action data returned");
651
577
  },
652
- [y, d]
653
- ), f = R(
578
+ [C, u]
579
+ ), ee = N(
654
580
  async (t) => {
655
- const m = await w({ id: t.id });
656
- if (m.error)
657
- throw new Error(m.error.message);
658
- if (m.data?.convertActionToQuantumOwned)
659
- return U(
660
- ae,
661
- m.data.convertActionToQuantumOwned
581
+ const h = await w({ id: t.id });
582
+ if (h.error)
583
+ throw new Error(h.error.message);
584
+ if (h.data?.convertActionToQuantumOwned)
585
+ return B(
586
+ re,
587
+ h.data.convertActionToQuantumOwned
662
588
  );
663
589
  throw new Error("No action data returned");
664
590
  },
665
591
  [w]
666
- ), M = R(async () => {
667
- if (a(!0), !T.length) {
592
+ ), $ = N(async () => {
593
+ if (c(!0), !O.length) {
668
594
  const t = new Error(
669
- `No activities selected for ${o === "copy" ? "copying" : "converting"}`
595
+ `No activities selected for ${a === "copy" ? "copying" : "converting"}`
670
596
  );
671
- i?.(t), a(!1);
597
+ r?.(t), c(!1);
672
598
  return;
673
599
  }
674
600
  try {
675
601
  const t = [];
676
- let m = 0;
677
- const S = o === "copy" ? _ : f, D = o === "copy" ? "copy" : "convert";
678
- for (const $ of T)
602
+ let h = 0;
603
+ const f = a === "copy" ? P : ee, F = a === "copy" ? "copy" : "convert";
604
+ for (const U of O)
679
605
  try {
680
- const Q = await S($);
681
- t.push(Q);
682
- } catch (Q) {
606
+ const G = await f(U);
607
+ t.push(G);
608
+ } catch (G) {
683
609
  console.error(
684
- `Failed to ${D} activity "${$.name}":`,
685
- Q
686
- ), m++;
610
+ `Failed to ${F} activity "${U.name}":`,
611
+ G
612
+ ), h++;
687
613
  }
688
614
  if (t.length > 0) {
689
- const $ = t.length, Q = T.length, K = o === "copy" ? "copied" : "converted", B = o === "copy" ? "copy" : "convert";
690
- v({
691
- title: m > 0 ? `Partial ${B} completed` : `Activities ${K} successfully`,
692
- description: m > 0 ? `${$} of ${Q} activities ${K} successfully` : `${$} activit${$ > 1 ? "ies" : "y"} ${K} successfully`,
693
- status: m > 0 ? "warning" : "success",
615
+ const U = t.length, G = O.length, Y = a === "copy" ? "copied" : "converted", Q = a === "copy" ? "copy" : "convert";
616
+ g({
617
+ title: h > 0 ? `Partial ${Q} completed` : `Activities ${Y} successfully`,
618
+ description: h > 0 ? `${U} of ${G} activities ${Y} successfully` : `${U} activit${U > 1 ? "ies" : "y"} ${Y} successfully`,
619
+ status: h > 0 ? "warning" : "success",
694
620
  duration: 3e3,
695
621
  isClosable: !0
696
- }), s?.(), A(""), C([]);
622
+ }), n?.(), p(""), A([]);
697
623
  } else
698
- throw new Error(`Failed to ${D} any activities`);
624
+ throw new Error(`Failed to ${F} any activities`);
699
625
  } catch (t) {
700
- const m = o === "copy" ? "copy" : "convert", S = t instanceof Error ? t.message : `Failed to ${m} activities`;
701
- v({
702
- title: `${o === "copy" ? "Copy" : "Convert"} failed`,
703
- description: S,
626
+ const h = a === "copy" ? "copy" : "convert", f = t instanceof Error ? t.message : `Failed to ${h} activities`;
627
+ g({
628
+ title: `${a === "copy" ? "Copy" : "Convert"} failed`,
629
+ description: f,
704
630
  status: "error",
705
631
  duration: 5e3,
706
632
  isClosable: !0
707
- }), i?.(t instanceof Error ? t : new Error(S));
633
+ }), r?.(t instanceof Error ? t : new Error(f));
708
634
  } finally {
709
- a(!1);
635
+ c(!1);
710
636
  }
711
637
  }, [
712
- T,
713
- o,
714
- _,
715
- f,
716
- v,
717
- s,
718
- i
719
- ]), L = R(() => {
720
- A(""), C([]), I("copy"), n?.();
721
- }, [n]);
722
- ne(() => {
723
- u && u({
638
+ O,
639
+ a,
640
+ P,
641
+ ee,
642
+ g,
643
+ n,
644
+ r
645
+ ]), k = N(() => {
646
+ p(""), A([]), M("copy"), s?.();
647
+ }, [s]);
648
+ V(() => {
649
+ i && i({
724
650
  cancelButton: !1,
725
- saveButton: T.length === 0 || r
651
+ saveButton: O.length === 0 || o
726
652
  });
727
- }, [T.length, r, u]), ne(() => {
653
+ }, [O.length, o, i]), V(() => {
728
654
  l && l({
729
- cancelButton: L,
730
- saveButton: M
655
+ cancelButton: k,
656
+ saveButton: $
731
657
  });
732
- }, [l, L, M]);
733
- const X = F(() => G.map((t) => ({
658
+ }, [l, k, $]);
659
+ const H = _(() => S.map((t) => ({
734
660
  value: t.id,
735
661
  label: t.name
736
- })), [G]), b = F(() => k.filter((t) => o === "copy" ? !0 : !t.quantumOwned).map((t) => ({
662
+ })), [S]), y = _(() => b.filter((t) => a === "copy" ? !0 : !t.quantumOwned).map((t) => ({
737
663
  value: t.id,
738
664
  label: t.name,
739
665
  // Add custom data to identify quantum-owned actions for UI display
740
666
  isQuantumOwned: t.quantumOwned
741
- })), [k, o]), z = p.fetching, Z = g.fetching;
742
- return /* @__PURE__ */ e.jsx(Y, { children: /* @__PURE__ */ e.jsxs(ee, { spacing: 6, align: "stretch", children: [
743
- d && /* @__PURE__ */ e.jsxs(q, { children: [
744
- /* @__PURE__ */ e.jsx(re, { children: "Operation Mode" }),
667
+ })), [b, a]), L = j.fetching, K = m.fetching;
668
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsxs(Z, { spacing: 6, align: "stretch", children: [
669
+ u && /* @__PURE__ */ e.jsxs(W, { children: [
670
+ /* @__PURE__ */ e.jsx(se, { children: "Operation Mode" }),
745
671
  /* @__PURE__ */ e.jsx(
746
- Ke,
672
+ Ve,
747
673
  {
748
- value: o,
674
+ value: a,
749
675
  onChange: (t) => {
750
- I(t), C([]);
676
+ M(t), A([]);
751
677
  },
752
- children: /* @__PURE__ */ e.jsxs(te, { spacing: 6, children: [
753
- /* @__PURE__ */ e.jsx(Ae, { value: "copy", colorScheme: "blue", children: /* @__PURE__ */ e.jsxs(ee, { align: "start", spacing: 1, children: [
754
- /* @__PURE__ */ e.jsx(x, { fontWeight: "medium", children: "Copy Activities" }),
755
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.600", children: "Create new activities based on selected ones" })
678
+ children: /* @__PURE__ */ e.jsxs(X, { spacing: 6, children: [
679
+ /* @__PURE__ */ e.jsx(Ae, { value: "copy", colorScheme: "blue", children: /* @__PURE__ */ e.jsxs(Z, { align: "start", spacing: 1, children: [
680
+ /* @__PURE__ */ e.jsx(v, { fontWeight: "medium", children: "Copy Activities" }),
681
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.600", children: "Create new activities based on selected ones" })
756
682
  ] }) }),
757
- /* @__PURE__ */ e.jsx(Ae, { value: "convert", colorScheme: "green", children: /* @__PURE__ */ e.jsxs(ee, { align: "start", spacing: 1, children: [
758
- /* @__PURE__ */ e.jsx(x, { fontWeight: "medium", children: "Convert to Quantum Owned" }),
759
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.600", children: "Convert existing activities to quantum-owned" })
683
+ /* @__PURE__ */ e.jsx(Ae, { value: "convert", colorScheme: "green", children: /* @__PURE__ */ e.jsxs(Z, { align: "start", spacing: 1, children: [
684
+ /* @__PURE__ */ e.jsx(v, { fontWeight: "medium", children: "Convert to Quantum Owned" }),
685
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.600", children: "Convert existing activities to quantum-owned" })
760
686
  ] }) })
761
687
  ] })
762
688
  }
763
689
  )
764
690
  ] }),
765
- /* @__PURE__ */ e.jsxs(q, { children: [
766
- /* @__PURE__ */ e.jsx(re, { children: "Select Source Group" }),
691
+ /* @__PURE__ */ e.jsxs(W, { children: [
692
+ /* @__PURE__ */ e.jsx(se, { children: "Select Source Group" }),
767
693
  /* @__PURE__ */ e.jsx(
768
- se,
694
+ ie,
769
695
  {
770
696
  placeholder: "Choose a group...",
771
- options: X,
772
- value: X.find((t) => t.value === j) || null,
773
- onChange: N,
774
- isLoading: z,
775
- isDisabled: z,
697
+ options: H,
698
+ value: H.find((t) => t.value === T) || null,
699
+ onChange: I,
700
+ isLoading: L,
701
+ isDisabled: L,
776
702
  isClearable: !0
777
703
  }
778
704
  ),
779
- p.error && /* @__PURE__ */ e.jsxs(Te, { status: "error", mt: 2, children: [
780
- /* @__PURE__ */ e.jsx(Me, {}),
781
- /* @__PURE__ */ e.jsxs(x, { fontSize: "sm", children: [
705
+ j.error && /* @__PURE__ */ e.jsxs(Oe, { status: "error", mt: 2, children: [
706
+ /* @__PURE__ */ e.jsx(Te, {}),
707
+ /* @__PURE__ */ e.jsxs(v, { fontSize: "sm", children: [
782
708
  "Failed to load groups: ",
783
- p.error.message
709
+ j.error.message
784
710
  ] })
785
711
  ] })
786
712
  ] }),
787
- j && /* @__PURE__ */ e.jsxs(q, { children: [
788
- /* @__PURE__ */ e.jsxs(re, { children: [
713
+ T && /* @__PURE__ */ e.jsxs(W, { children: [
714
+ /* @__PURE__ */ e.jsxs(se, { children: [
789
715
  "Select Activities to",
790
716
  " ",
791
- o === "copy" ? "Copy" : "Convert"
717
+ a === "copy" ? "Copy" : "Convert"
792
718
  ] }),
793
- Z ? /* @__PURE__ */ e.jsxs(te, { children: [
794
- /* @__PURE__ */ e.jsx(Ze, { size: "sm" }),
795
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.600", children: "Loading activities..." })
719
+ K ? /* @__PURE__ */ e.jsxs(X, { children: [
720
+ /* @__PURE__ */ e.jsx(et, { size: "sm" }),
721
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.600", children: "Loading activities..." })
796
722
  ] }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
797
723
  /* @__PURE__ */ e.jsx(
798
- se,
724
+ ie,
799
725
  {
800
- placeholder: `Choose activities to ${o}...`,
801
- options: b,
802
- value: b.filter(
803
- (t) => h.includes(t.value)
726
+ placeholder: `Choose activities to ${a}...`,
727
+ options: y,
728
+ value: y.filter(
729
+ (t) => x.includes(t.value)
804
730
  ),
805
- onChange: E,
806
- isDisabled: b.length === 0,
731
+ onChange: D,
732
+ isDisabled: y.length === 0,
807
733
  isClearable: !0,
808
734
  isMulti: !0,
809
735
  closeMenuOnSelect: !1,
810
- formatOptionLabel: (t, { context: m }) => /* @__PURE__ */ e.jsxs(te, { justify: "space-between", w: "100%", children: [
736
+ formatOptionLabel: (t, { context: h }) => /* @__PURE__ */ e.jsxs(X, { justify: "space-between", w: "100%", children: [
811
737
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
812
- /* @__PURE__ */ e.jsx(x, { children: t.label }),
813
- m === "value" && t.isQuantumOwned && /* @__PURE__ */ e.jsx(x, { color: "blue", fontSize: "xs", children: "(Quantum Owned)" })
738
+ /* @__PURE__ */ e.jsx(v, { children: t.label }),
739
+ h === "value" && t.isQuantumOwned && /* @__PURE__ */ e.jsx(v, { color: "blue", fontSize: "xs", children: "(Quantum Owned)" })
814
740
  ] }),
815
- t.isQuantumOwned && m === "menu" && /* @__PURE__ */ e.jsx(fe, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
741
+ t.isQuantumOwned && h === "menu" && /* @__PURE__ */ e.jsx(ge, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
816
742
  ] })
817
743
  }
818
744
  ),
819
- b.length === 0 && /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.500", mt: 2, children: "No activities found" })
745
+ y.length === 0 && /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.500", mt: 2, children: "No activities found" })
820
746
  ] }),
821
- g.error && /* @__PURE__ */ e.jsxs(Te, { status: "error", mt: 2, children: [
822
- /* @__PURE__ */ e.jsx(Me, {}),
823
- /* @__PURE__ */ e.jsxs(x, { fontSize: "sm", children: [
747
+ m.error && /* @__PURE__ */ e.jsxs(Oe, { status: "error", mt: 2, children: [
748
+ /* @__PURE__ */ e.jsx(Te, {}),
749
+ /* @__PURE__ */ e.jsxs(v, { fontSize: "sm", children: [
824
750
  "Failed to load activities: ",
825
- g.error.message
751
+ m.error.message
826
752
  ] })
827
753
  ] })
828
754
  ] }),
829
- T.length > 0 && /* @__PURE__ */ e.jsxs(Y, { p: 4, bg: "gray.50", borderRadius: "md", children: [
830
- /* @__PURE__ */ e.jsx(x, { fontWeight: "semibold", mb: 3, children: T.length === 1 ? `Activity to ${o === "copy" ? "Copy" : "Convert"}:` : `${T.length} Activities to ${o === "copy" ? "Copy" : "Convert"}:` }),
831
- /* @__PURE__ */ e.jsxs(ee, { align: "start", spacing: 3, children: [
832
- T.map((t, m) => /* @__PURE__ */ e.jsxs(
833
- Y,
755
+ O.length > 0 && /* @__PURE__ */ e.jsxs(q, { p: 4, bg: "gray.50", borderRadius: "md", children: [
756
+ /* @__PURE__ */ e.jsx(v, { fontWeight: "semibold", mb: 3, children: O.length === 1 ? `Activity to ${a === "copy" ? "Copy" : "Convert"}:` : `${O.length} Activities to ${a === "copy" ? "Copy" : "Convert"}:` }),
757
+ /* @__PURE__ */ e.jsxs(Z, { align: "start", spacing: 3, children: [
758
+ O.map((t, h) => /* @__PURE__ */ e.jsxs(
759
+ q,
834
760
  {
835
761
  w: "100%",
836
762
  p: 3,
@@ -839,51 +765,51 @@ const Jt = ({
839
765
  border: "1px solid",
840
766
  borderColor: "gray.200",
841
767
  children: [
842
- /* @__PURE__ */ e.jsxs(te, { justify: "space-between", align: "start", mb: 2, children: [
843
- /* @__PURE__ */ e.jsxs(x, { fontWeight: "medium", fontSize: "sm", children: [
844
- m + 1,
768
+ /* @__PURE__ */ e.jsxs(X, { justify: "space-between", align: "start", mb: 2, children: [
769
+ /* @__PURE__ */ e.jsxs(v, { fontWeight: "medium", fontSize: "sm", children: [
770
+ h + 1,
845
771
  ". ",
846
772
  t.name
847
773
  ] }),
848
- t.quantumOwned && /* @__PURE__ */ e.jsx(fe, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
774
+ t.quantumOwned && /* @__PURE__ */ e.jsx(ge, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
849
775
  ] }),
850
776
  /* @__PURE__ */ e.jsxs(
851
- ee,
777
+ Z,
852
778
  {
853
779
  align: "start",
854
780
  spacing: 1,
855
781
  fontSize: "sm",
856
782
  color: "gray.600",
857
783
  children: [
858
- t.description && /* @__PURE__ */ e.jsxs(x, { children: [
784
+ t.description && /* @__PURE__ */ e.jsxs(v, { children: [
859
785
  /* @__PURE__ */ e.jsx("strong", { children: "Description:" }),
860
786
  " ",
861
787
  t.description
862
788
  ] }),
863
- /* @__PURE__ */ e.jsxs(x, { children: [
789
+ /* @__PURE__ */ e.jsxs(v, { children: [
864
790
  /* @__PURE__ */ e.jsx("strong", { children: "Type:" }),
865
791
  " ",
866
792
  t.activityKind
867
793
  ] }),
868
- /* @__PURE__ */ e.jsxs(x, { children: [
794
+ /* @__PURE__ */ e.jsxs(v, { children: [
869
795
  /* @__PURE__ */ e.jsx("strong", { children: "Laterality:" }),
870
796
  " ",
871
797
  t.laterality
872
798
  ] }),
873
- /* @__PURE__ */ e.jsxs(x, { children: [
799
+ /* @__PURE__ */ e.jsxs(v, { children: [
874
800
  /* @__PURE__ */ e.jsx("strong", { children: "Sensor Locations:" }),
875
801
  " ",
876
802
  t.sensorLocations.length
877
803
  ] }),
878
- /* @__PURE__ */ e.jsxs(x, { children: [
804
+ /* @__PURE__ */ e.jsxs(v, { children: [
879
805
  /* @__PURE__ */ e.jsx("strong", { children: "Thresholds:" }),
880
806
  " ",
881
807
  t.thresholds.length
882
808
  ] }),
883
- /* @__PURE__ */ e.jsxs(x, { children: [
809
+ /* @__PURE__ */ e.jsxs(v, { children: [
884
810
  /* @__PURE__ */ e.jsx("strong", { children: "Use Cases:" }),
885
811
  " ",
886
- t.useCases.map((S) => S.name).join(", ") || "None"
812
+ t.useCases.map((f) => f.name).join(", ") || "None"
887
813
  ] })
888
814
  ]
889
815
  }
@@ -892,8 +818,8 @@ const Jt = ({
892
818
  },
893
819
  t.id
894
820
  )),
895
- T.length > 1 && /* @__PURE__ */ e.jsx(
896
- Y,
821
+ O.length > 1 && /* @__PURE__ */ e.jsx(
822
+ q,
897
823
  {
898
824
  w: "100%",
899
825
  p: 2,
@@ -901,336 +827,332 @@ const Jt = ({
901
827
  borderRadius: "md",
902
828
  border: "1px solid",
903
829
  borderColor: "blue.200",
904
- children: /* @__PURE__ */ e.jsxs(x, { fontSize: "sm", fontWeight: "medium", color: "blue.800", children: [
830
+ children: /* @__PURE__ */ e.jsxs(v, { fontSize: "sm", fontWeight: "medium", color: "blue.800", children: [
905
831
  "Total: ",
906
- T.length,
832
+ O.length,
907
833
  " activities will be",
908
834
  " ",
909
- o === "copy" ? "copied" : "converted"
835
+ a === "copy" ? "copied" : "converted"
910
836
  ] })
911
837
  }
912
838
  )
913
839
  ] })
914
840
  ] }),
915
- !c && /* @__PURE__ */ e.jsxs(xe, { spacing: 4, justifyContent: "flex-end", children: [
841
+ !d && /* @__PURE__ */ e.jsxs(me, { spacing: 4, justifyContent: "flex-end", children: [
916
842
  /* @__PURE__ */ e.jsx(
917
843
  J,
918
844
  {
919
845
  variant: "outline",
920
- onClick: L,
921
- isDisabled: r,
846
+ onClick: k,
847
+ isDisabled: o,
922
848
  children: "Cancel"
923
849
  }
924
850
  ),
925
851
  /* @__PURE__ */ e.jsxs(
926
852
  J,
927
853
  {
928
- colorScheme: o === "copy" ? "blue" : "green",
929
- onClick: M,
930
- isDisabled: T.length === 0 || r,
931
- isLoading: r,
932
- loadingText: `${o === "copy" ? "Copying" : "Converting"}...`,
854
+ colorScheme: a === "copy" ? "blue" : "green",
855
+ onClick: $,
856
+ isDisabled: O.length === 0 || o,
857
+ isLoading: o,
858
+ loadingText: `${a === "copy" ? "Copying" : "Converting"}...`,
933
859
  children: [
934
- o === "copy" ? "Copy" : "Convert",
860
+ a === "copy" ? "Copy" : "Convert",
935
861
  " ",
936
- T.length === 1 ? "Activity" : `${T.length} Activities`
862
+ O.length === 1 ? "Activity" : `${O.length} Activities`
937
863
  ]
938
864
  }
939
865
  )
940
866
  ] })
941
867
  ] }) });
942
- }, Rn = ({
943
- onSave: s,
944
- onCancel: n,
945
- onError: i,
946
- hideButtons: c = !1,
947
- setButtonDisabled: u,
868
+ }, Rs = ({
869
+ onSave: n,
870
+ onCancel: s,
871
+ onError: r,
872
+ hideButtons: d = !1,
873
+ setButtonDisabled: i,
948
874
  setButtonOnClick: l,
949
- quantumOwned: d
875
+ quantumOwned: u
950
876
  }) => {
951
- const v = Xe(), [o, I] = P(""), [j, A] = P([]), [h, C] = P(!1), [r, a] = P("copy"), [p] = le({
952
- query: Ve
953
- }), [g] = le({
954
- query: It,
955
- variables: { groupId: o },
956
- pause: !o
877
+ const g = Ze(), [a, M] = E(""), [T, p] = E([]), [x, A] = E(!1), [o, c] = E("copy"), [j] = oe({
878
+ query: tt
879
+ }), [m] = oe({
880
+ query: Rt,
881
+ variables: { groupId: a },
882
+ pause: !a
957
883
  // Only run when group is selected
958
- }), [, y] = oe(ot), [, w] = oe(st), [, G] = oe(De), [, k] = oe(
959
- et
960
- ), T = F(() => p.data?.groups ? p.data.groups.map(
961
- (t) => U(tt, t)
962
- ) : [], [p.data]), N = F(() => g.data?.modules ? U(
963
- Ce,
964
- g.data?.modules
965
- ).map((m) => {
966
- const S = U(
967
- nt,
968
- m.moduleActions
884
+ }), [, C] = te(it), [, w] = te(rt), [, S] = te(ze), [, b] = te(
885
+ st
886
+ ), O = _(() => j.data?.groups ? j.data.groups.map(
887
+ (t) => B(nt, t)
888
+ ) : [], [j.data]), I = _(() => m.data?.modules ? B(
889
+ Se,
890
+ m.data?.modules
891
+ ).map((h) => {
892
+ const f = B(
893
+ ot,
894
+ h.moduleActions
969
895
  );
970
896
  return {
971
- ...m,
972
- moduleActions: S.map((D) => ({
973
- ...D,
974
- action: U(ae, D.action)
897
+ ...h,
898
+ moduleActions: f.map((F) => ({
899
+ ...F,
900
+ action: B(re, F.action)
975
901
  })),
976
- categories: U(
977
- me,
978
- m.categories
902
+ categories: B(
903
+ ke,
904
+ h.categories
979
905
  )
980
906
  };
981
- }) : [], [g.data]), E = F(() => N.filter(
982
- (t) => j.includes(t.id)
983
- ), [N, j]), _ = R(
907
+ }) : [], [m.data]), D = _(() => I.filter(
908
+ (t) => T.includes(t.id)
909
+ ), [I, T]), P = N(
984
910
  (t) => {
985
- const m = t?.value || "";
986
- I(m), A([]);
911
+ const h = t?.value || "";
912
+ M(h), p([]);
987
913
  },
988
914
  []
989
- ), f = R(
915
+ ), ee = N(
990
916
  (t) => {
991
- const m = t.map((S) => S.value);
992
- A(m);
917
+ const h = t.map((f) => f.value);
918
+ p(h);
993
919
  },
994
920
  []
995
- ), M = R(async () => {
996
- if (C(!0), !E.length) {
997
- C(!1);
921
+ ), $ = N(async () => {
922
+ if (A(!0), !D.length) {
923
+ A(!1);
998
924
  const t = new Error(
999
- `No modules selected for ${r === "convert" ? "converting" : "copying"}`
925
+ `No modules selected for ${o === "convert" ? "converting" : "copying"}`
1000
926
  );
1001
- i?.(t);
927
+ r?.(t);
1002
928
  return;
1003
929
  }
1004
930
  try {
1005
931
  const t = [];
1006
- let m = 0;
1007
- for (const S of E)
932
+ let h = 0;
933
+ for (const f of D)
1008
934
  try {
1009
- let D = S.moduleActions.map(($) => $.actionId);
1010
- if (d) {
1011
- const $ = S.moduleActions.map((B) => B.action), Q = async (B) => {
1012
- if (r === "copy") {
1013
- if (B.quantumOwned) return B;
1014
- const Ie = U(
1015
- me,
1016
- B.categories
1017
- ), pe = {
1018
- ...B,
935
+ let F = f.moduleActions.map((U) => U.actionId);
936
+ if (u) {
937
+ const U = f.moduleActions.map((Q) => Q.action), G = async (Q) => {
938
+ if (o === "copy") {
939
+ if (Q.quantumOwned) return Q;
940
+ const xe = {
941
+ ...Q,
1019
942
  quantumOwned: !0,
1020
- thresholds: B.thresholds.map((O) => ({
1021
- ...O,
943
+ thresholds: Q.thresholds.map((pe) => ({
944
+ ...pe,
1022
945
  id: void 0
1023
946
  })),
1024
- categories: Ie?.map((O) => O.id),
1025
947
  id: void 0
1026
- }, de = await G({ fields: pe });
1027
- return de.error || !de.data?.createAction ? null : U(
1028
- ae,
1029
- de.data.createAction
948
+ }, le = await S({ fields: xe });
949
+ return le.error || !le.data?.createAction ? null : B(
950
+ re,
951
+ le.data.createAction
1030
952
  );
1031
953
  }
1032
- if (B.quantumOwned) return B;
1033
- const ce = await k({
1034
- id: B.id
954
+ if (Q.quantumOwned) return Q;
955
+ const de = await b({
956
+ id: Q.id
1035
957
  });
1036
- return ce.error || !ce.data?.convertActionToQuantumOwned ? null : U(
1037
- ae,
1038
- ce.data.convertActionToQuantumOwned
958
+ return de.error || !de.data?.convertActionToQuantumOwned ? null : B(
959
+ re,
960
+ de.data.convertActionToQuantumOwned
1039
961
  );
1040
962
  };
1041
- D = (await Promise.all(
1042
- $.map(Q)
1043
- )).filter((B) => !!B).map((B) => B.id);
963
+ F = (await Promise.all(
964
+ U.map(G)
965
+ )).filter((Q) => !!Q).map((Q) => Q.id);
1044
966
  }
1045
- if (r === "convert") {
1046
- const $ = {
1047
- name: S.name,
1048
- description: S.description || void 0,
1049
- actions: D,
1050
- categories: S.categories.map((K) => K.id),
967
+ if (o === "convert") {
968
+ const U = {
969
+ name: f.name,
970
+ description: f.description || void 0,
971
+ actions: F,
972
+ categories: f.categories.map((Y) => Y.id),
1051
973
  quantumOwned: !0
1052
- }, Q = await w({
1053
- id: S.id,
1054
- input: $
974
+ }, G = await w({
975
+ id: f.id,
976
+ input: U
1055
977
  });
1056
- if (Q.error) throw new Error(Q.error.message);
1057
- if (Q.data?.updateModule) {
1058
- const K = U(
1059
- Ce,
1060
- Q.data.updateModule
978
+ if (G.error) throw new Error(G.error.message);
979
+ if (G.data?.updateModule) {
980
+ const Y = B(
981
+ Se,
982
+ G.data.updateModule
1061
983
  );
1062
- t.push(K);
984
+ t.push(Y);
1063
985
  }
1064
986
  } else {
1065
- const $ = {
1066
- name: `${S.name} (Copy)`,
1067
- description: S.description || void 0,
1068
- actions: D,
1069
- categories: S.categories.map((K) => K.id),
1070
- quantumOwned: d
1071
- }, Q = await y({ input: $ });
1072
- if (Q.error) throw new Error(Q.error.message);
1073
- if (Q.data?.createModule) {
1074
- const K = U(
1075
- Ce,
1076
- Q.data.createModule
987
+ const U = {
988
+ name: `${f.name} (Copy)`,
989
+ description: f.description || void 0,
990
+ actions: F,
991
+ categories: f.categories.map((Y) => Y.id),
992
+ quantumOwned: u
993
+ }, G = await C({ input: U });
994
+ if (G.error) throw new Error(G.error.message);
995
+ if (G.data?.createModule) {
996
+ const Y = B(
997
+ Se,
998
+ G.data.createModule
1077
999
  );
1078
- t.push(K);
1000
+ t.push(Y);
1079
1001
  }
1080
1002
  }
1081
- } catch (D) {
1003
+ } catch (F) {
1082
1004
  console.error(
1083
- `Failed to ${r === "convert" ? "convert" : "copy"} module "${S.name}":`,
1084
- D
1085
- ), m++;
1005
+ `Failed to ${o === "convert" ? "convert" : "copy"} module "${f.name}":`,
1006
+ F
1007
+ ), h++;
1086
1008
  }
1087
1009
  if (t.length > 0) {
1088
- const S = t.length, D = E.length;
1089
- v({
1090
- title: m > 0 ? `Partial ${r === "convert" ? "convert" : "copy"} completed` : `Modules ${r === "convert" ? "converted" : "copied"} successfully`,
1091
- description: m > 0 ? `${S} of ${D} modules ${r === "convert" ? "converted" : "copied"} successfully` : `${S} module${S > 1 ? "s" : ""} ${r === "convert" ? "converted" : "copied"} successfully`,
1092
- status: m > 0 ? "warning" : "success",
1010
+ const f = t.length, F = D.length;
1011
+ g({
1012
+ title: h > 0 ? `Partial ${o === "convert" ? "convert" : "copy"} completed` : `Modules ${o === "convert" ? "converted" : "copied"} successfully`,
1013
+ description: h > 0 ? `${f} of ${F} modules ${o === "convert" ? "converted" : "copied"} successfully` : `${f} module${f > 1 ? "s" : ""} ${o === "convert" ? "converted" : "copied"} successfully`,
1014
+ status: h > 0 ? "warning" : "success",
1093
1015
  duration: 3e3,
1094
1016
  isClosable: !0
1095
- }), t.length > 0 && s?.(), I(""), A([]);
1017
+ }), t.length > 0 && n?.(), M(""), p([]);
1096
1018
  } else
1097
1019
  throw new Error(
1098
- `Failed to ${r === "convert" ? "convert" : "copy"} any modules`
1020
+ `Failed to ${o === "convert" ? "convert" : "copy"} any modules`
1099
1021
  );
1100
1022
  } catch (t) {
1101
- const m = t instanceof Error ? t.message : `Failed to ${r === "convert" ? "convert" : "copy"} modules`;
1102
- v({
1103
- title: r === "convert" ? "Convert failed" : "Copy failed",
1104
- description: m,
1023
+ const h = t instanceof Error ? t.message : `Failed to ${o === "convert" ? "convert" : "copy"} modules`;
1024
+ g({
1025
+ title: o === "convert" ? "Convert failed" : "Copy failed",
1026
+ description: h,
1105
1027
  status: "error",
1106
1028
  duration: 5e3,
1107
1029
  isClosable: !0
1108
- }), i?.(t instanceof Error ? t : new Error(m));
1030
+ }), r?.(t instanceof Error ? t : new Error(h));
1109
1031
  } finally {
1110
- C(!1);
1032
+ A(!1);
1111
1033
  }
1112
1034
  }, [
1113
- E,
1114
- y,
1035
+ D,
1036
+ C,
1115
1037
  w,
1116
- v,
1117
- s,
1118
- i,
1119
- d,
1120
- G,
1121
- k,
1122
- r
1123
- ]), L = R(() => {
1124
- I(""), A([]), a("copy"), n?.();
1125
- }, [n]);
1126
- ne(() => {
1127
- u && u({
1038
+ g,
1039
+ n,
1040
+ r,
1041
+ u,
1042
+ S,
1043
+ b,
1044
+ o
1045
+ ]), k = N(() => {
1046
+ M(""), p([]), c("copy"), s?.();
1047
+ }, [s]);
1048
+ V(() => {
1049
+ i && i({
1128
1050
  cancelButton: !1,
1129
- saveButton: E.length === 0 || h
1051
+ saveButton: D.length === 0 || x
1130
1052
  });
1131
- }, [E.length, h, u]), ne(() => {
1053
+ }, [D.length, x, i]), V(() => {
1132
1054
  l && l({
1133
- cancelButton: L,
1134
- saveButton: M
1055
+ cancelButton: k,
1056
+ saveButton: $
1135
1057
  });
1136
- }, [l, L, M]);
1137
- const X = F(() => T.map((t) => ({
1058
+ }, [l, k, $]);
1059
+ const H = _(() => O.map((t) => ({
1138
1060
  value: t.id,
1139
1061
  label: t.name
1140
- })), [T]), b = F(() => N.filter((t) => r === "copy" ? !0 : !t.quantumOwned).map((t) => ({
1062
+ })), [O]), y = _(() => I.filter((t) => o === "copy" ? !0 : !t.quantumOwned).map((t) => ({
1141
1063
  value: t.id,
1142
1064
  label: t.name,
1143
1065
  // Add custom data to identify quantum-owned modules
1144
1066
  isQuantumOwned: t.quantumOwned
1145
- })), [N, r]), z = p.fetching, Z = g.fetching;
1146
- return /* @__PURE__ */ e.jsx(Y, { children: /* @__PURE__ */ e.jsxs(ee, { spacing: 6, align: "stretch", children: [
1147
- d && /* @__PURE__ */ e.jsxs(q, { children: [
1148
- /* @__PURE__ */ e.jsx(re, { children: "Operation Mode" }),
1067
+ })), [I, o]), L = j.fetching, K = m.fetching;
1068
+ return /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsxs(Z, { spacing: 6, align: "stretch", children: [
1069
+ u && /* @__PURE__ */ e.jsxs(W, { children: [
1070
+ /* @__PURE__ */ e.jsx(se, { children: "Operation Mode" }),
1149
1071
  /* @__PURE__ */ e.jsx(
1150
- Ke,
1072
+ Ve,
1151
1073
  {
1152
- value: r,
1074
+ value: o,
1153
1075
  onChange: (t) => {
1154
- a(t), A([]);
1076
+ c(t), p([]);
1155
1077
  },
1156
- children: /* @__PURE__ */ e.jsxs(te, { spacing: 6, children: [
1157
- /* @__PURE__ */ e.jsx(Ae, { value: "copy", colorScheme: "blue", children: /* @__PURE__ */ e.jsxs(ee, { align: "start", spacing: 1, children: [
1158
- /* @__PURE__ */ e.jsx(x, { fontWeight: "medium", children: "Copy Modules" }),
1159
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.600", children: "Create new modules based on selected ones" })
1078
+ children: /* @__PURE__ */ e.jsxs(X, { spacing: 6, children: [
1079
+ /* @__PURE__ */ e.jsx(Ae, { value: "copy", colorScheme: "blue", children: /* @__PURE__ */ e.jsxs(Z, { align: "start", spacing: 1, children: [
1080
+ /* @__PURE__ */ e.jsx(v, { fontWeight: "medium", children: "Copy Modules" }),
1081
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.600", children: "Create new modules based on selected ones" })
1160
1082
  ] }) }),
1161
- /* @__PURE__ */ e.jsx(Ae, { value: "convert", colorScheme: "green", children: /* @__PURE__ */ e.jsxs(ee, { align: "start", spacing: 1, children: [
1162
- /* @__PURE__ */ e.jsx(x, { fontWeight: "medium", children: "Convert to Quantum Owned" }),
1163
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.600", children: "Convert existing modules to quantum-owned" })
1083
+ /* @__PURE__ */ e.jsx(Ae, { value: "convert", colorScheme: "green", children: /* @__PURE__ */ e.jsxs(Z, { align: "start", spacing: 1, children: [
1084
+ /* @__PURE__ */ e.jsx(v, { fontWeight: "medium", children: "Convert to Quantum Owned" }),
1085
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.600", children: "Convert existing modules to quantum-owned" })
1164
1086
  ] }) })
1165
1087
  ] })
1166
1088
  }
1167
1089
  )
1168
1090
  ] }),
1169
- /* @__PURE__ */ e.jsxs(q, { children: [
1170
- /* @__PURE__ */ e.jsx(re, { children: "Select Source Group" }),
1091
+ /* @__PURE__ */ e.jsxs(W, { children: [
1092
+ /* @__PURE__ */ e.jsx(se, { children: "Select Source Group" }),
1171
1093
  /* @__PURE__ */ e.jsx(
1172
- se,
1094
+ ie,
1173
1095
  {
1174
1096
  placeholder: "Choose a group...",
1175
- options: X,
1176
- value: X.find((t) => t.value === o) || null,
1177
- onChange: _,
1178
- isLoading: z,
1179
- isDisabled: z,
1097
+ options: H,
1098
+ value: H.find((t) => t.value === a) || null,
1099
+ onChange: P,
1100
+ isLoading: L,
1101
+ isDisabled: L,
1180
1102
  isClearable: !0
1181
1103
  }
1182
1104
  ),
1183
- p.error && /* @__PURE__ */ e.jsxs(Te, { status: "error", mt: 2, children: [
1184
- /* @__PURE__ */ e.jsx(Me, {}),
1185
- /* @__PURE__ */ e.jsxs(x, { fontSize: "sm", children: [
1105
+ j.error && /* @__PURE__ */ e.jsxs(Oe, { status: "error", mt: 2, children: [
1106
+ /* @__PURE__ */ e.jsx(Te, {}),
1107
+ /* @__PURE__ */ e.jsxs(v, { fontSize: "sm", children: [
1186
1108
  "Failed to load groups: ",
1187
- p.error.message
1109
+ j.error.message
1188
1110
  ] })
1189
1111
  ] })
1190
1112
  ] }),
1191
- o && /* @__PURE__ */ e.jsxs(q, { children: [
1192
- /* @__PURE__ */ e.jsx(re, { children: r === "convert" ? "Select Module to Convert" : "Select Module to Copy" }),
1193
- Z ? /* @__PURE__ */ e.jsxs(te, { children: [
1194
- /* @__PURE__ */ e.jsx(Ze, { size: "sm" }),
1195
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.600", children: "Loading modules..." })
1113
+ a && /* @__PURE__ */ e.jsxs(W, { children: [
1114
+ /* @__PURE__ */ e.jsx(se, { children: o === "convert" ? "Select Module to Convert" : "Select Module to Copy" }),
1115
+ K ? /* @__PURE__ */ e.jsxs(X, { children: [
1116
+ /* @__PURE__ */ e.jsx(et, { size: "sm" }),
1117
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.600", children: "Loading modules..." })
1196
1118
  ] }) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1197
1119
  /* @__PURE__ */ e.jsx(
1198
- se,
1120
+ ie,
1199
1121
  {
1200
- placeholder: r === "convert" ? "Choose modules to convert..." : "Choose modules to copy...",
1201
- options: b,
1202
- value: b.filter(
1203
- (t) => j.includes(t.value)
1122
+ placeholder: o === "convert" ? "Choose modules to convert..." : "Choose modules to copy...",
1123
+ options: y,
1124
+ value: y.filter(
1125
+ (t) => T.includes(t.value)
1204
1126
  ),
1205
- onChange: f,
1206
- isDisabled: b.length === 0,
1127
+ onChange: ee,
1128
+ isDisabled: y.length === 0,
1207
1129
  isClearable: !0,
1208
1130
  isMulti: !0,
1209
1131
  closeMenuOnSelect: !1,
1210
- formatOptionLabel: (t, { context: m }) => /* @__PURE__ */ e.jsxs(te, { justify: "space-between", w: "100%", children: [
1132
+ formatOptionLabel: (t, { context: h }) => /* @__PURE__ */ e.jsxs(X, { justify: "space-between", w: "100%", children: [
1211
1133
  /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
1212
- /* @__PURE__ */ e.jsx(x, { children: t.label }),
1213
- m === "value" && t.isQuantumOwned && /* @__PURE__ */ e.jsx(x, { color: "blue", fontSize: "xs", children: "(Quantum Owned)" })
1134
+ /* @__PURE__ */ e.jsx(v, { children: t.label }),
1135
+ h === "value" && t.isQuantumOwned && /* @__PURE__ */ e.jsx(v, { color: "blue", fontSize: "xs", children: "(Quantum Owned)" })
1214
1136
  ] }),
1215
- t.isQuantumOwned && m === "menu" && /* @__PURE__ */ e.jsx(fe, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
1137
+ t.isQuantumOwned && h === "menu" && /* @__PURE__ */ e.jsx(ge, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
1216
1138
  ] })
1217
1139
  }
1218
1140
  ),
1219
- b.length === 0 && /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.500", mt: 2, children: "No modules found in this group" })
1141
+ y.length === 0 && /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.500", mt: 2, children: "No modules found in this group" })
1220
1142
  ] }),
1221
- g.error && /* @__PURE__ */ e.jsxs(Te, { status: "error", mt: 2, children: [
1222
- /* @__PURE__ */ e.jsx(Me, {}),
1223
- /* @__PURE__ */ e.jsxs(x, { fontSize: "sm", children: [
1143
+ m.error && /* @__PURE__ */ e.jsxs(Oe, { status: "error", mt: 2, children: [
1144
+ /* @__PURE__ */ e.jsx(Te, {}),
1145
+ /* @__PURE__ */ e.jsxs(v, { fontSize: "sm", children: [
1224
1146
  "Failed to load modules: ",
1225
- g.error.message
1147
+ m.error.message
1226
1148
  ] })
1227
1149
  ] })
1228
1150
  ] }),
1229
- E.length > 0 && /* @__PURE__ */ e.jsxs(Y, { p: 4, bg: "gray.50", borderRadius: "md", children: [
1230
- /* @__PURE__ */ e.jsx(x, { fontWeight: "semibold", mb: 3, children: E.length === 1 ? `Module to ${r === "copy" ? "Copy" : "Convert"}` : `${E.length} Modules to ${r === "copy" ? "Copy" : "Convert"}` }),
1231
- /* @__PURE__ */ e.jsxs(ee, { align: "start", spacing: 3, children: [
1232
- E.map((t, m) => /* @__PURE__ */ e.jsxs(
1233
- Y,
1151
+ D.length > 0 && /* @__PURE__ */ e.jsxs(q, { p: 4, bg: "gray.50", borderRadius: "md", children: [
1152
+ /* @__PURE__ */ e.jsx(v, { fontWeight: "semibold", mb: 3, children: D.length === 1 ? `Module to ${o === "copy" ? "Copy" : "Convert"}` : `${D.length} Modules to ${o === "copy" ? "Copy" : "Convert"}` }),
1153
+ /* @__PURE__ */ e.jsxs(Z, { align: "start", spacing: 3, children: [
1154
+ D.map((t, h) => /* @__PURE__ */ e.jsxs(
1155
+ q,
1234
1156
  {
1235
1157
  w: "100%",
1236
1158
  p: 3,
@@ -1239,36 +1161,36 @@ const Jt = ({
1239
1161
  border: "1px solid",
1240
1162
  borderColor: "gray.200",
1241
1163
  children: [
1242
- /* @__PURE__ */ e.jsxs(te, { justify: "space-between", align: "start", mb: 2, children: [
1243
- /* @__PURE__ */ e.jsxs(x, { fontWeight: "medium", fontSize: "sm", children: [
1244
- m + 1,
1164
+ /* @__PURE__ */ e.jsxs(X, { justify: "space-between", align: "start", mb: 2, children: [
1165
+ /* @__PURE__ */ e.jsxs(v, { fontWeight: "medium", fontSize: "sm", children: [
1166
+ h + 1,
1245
1167
  ". ",
1246
1168
  t.name
1247
1169
  ] }),
1248
- t.quantumOwned && /* @__PURE__ */ e.jsx(fe, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
1170
+ t.quantumOwned && /* @__PURE__ */ e.jsx(ge, { size: "sm", colorScheme: "blue", variant: "solid", children: "Quantum Owned" })
1249
1171
  ] }),
1250
1172
  /* @__PURE__ */ e.jsxs(
1251
- ee,
1173
+ Z,
1252
1174
  {
1253
1175
  align: "start",
1254
1176
  spacing: 1,
1255
1177
  fontSize: "sm",
1256
1178
  color: "gray.600",
1257
1179
  children: [
1258
- t.description && /* @__PURE__ */ e.jsxs(x, { children: [
1180
+ t.description && /* @__PURE__ */ e.jsxs(v, { children: [
1259
1181
  /* @__PURE__ */ e.jsx("strong", { children: "Description:" }),
1260
1182
  " ",
1261
1183
  t.description
1262
1184
  ] }),
1263
- /* @__PURE__ */ e.jsxs(x, { children: [
1185
+ /* @__PURE__ */ e.jsxs(v, { children: [
1264
1186
  /* @__PURE__ */ e.jsx("strong", { children: "Actions:" }),
1265
1187
  " ",
1266
1188
  t.moduleActions.length
1267
1189
  ] }),
1268
- /* @__PURE__ */ e.jsxs(x, { children: [
1190
+ /* @__PURE__ */ e.jsxs(v, { children: [
1269
1191
  /* @__PURE__ */ e.jsx("strong", { children: "Categories:" }),
1270
1192
  " ",
1271
- t.categories.map((S) => S.name).join(", ") || "None"
1193
+ t.categories.map((f) => f.name).join(", ") || "None"
1272
1194
  ] })
1273
1195
  ]
1274
1196
  }
@@ -1277,8 +1199,8 @@ const Jt = ({
1277
1199
  },
1278
1200
  t.id
1279
1201
  )),
1280
- E.length > 1 && /* @__PURE__ */ e.jsx(
1281
- Y,
1202
+ D.length > 1 && /* @__PURE__ */ e.jsx(
1203
+ q,
1282
1204
  {
1283
1205
  w: "100%",
1284
1206
  p: 2,
@@ -1286,133 +1208,133 @@ const Jt = ({
1286
1208
  borderRadius: "md",
1287
1209
  border: "1px solid",
1288
1210
  borderColor: "blue.200",
1289
- children: /* @__PURE__ */ e.jsxs(x, { fontSize: "sm", fontWeight: "medium", color: "blue.800", children: [
1211
+ children: /* @__PURE__ */ e.jsxs(v, { fontSize: "sm", fontWeight: "medium", color: "blue.800", children: [
1290
1212
  "Total: ",
1291
- E.length,
1213
+ D.length,
1292
1214
  " modules will be",
1293
1215
  " ",
1294
- r === "copy" ? "copied" : "converted"
1216
+ o === "copy" ? "copied" : "converted"
1295
1217
  ] })
1296
1218
  }
1297
1219
  ),
1298
- d && E.filter((t) => t.moduleActions.some((m) => !m.action.quantumOwned)).length > 0 && /* @__PURE__ */ e.jsx(
1299
- Y,
1220
+ u && D.filter((t) => t.moduleActions.some((h) => !h.action.quantumOwned)).length > 0 && /* @__PURE__ */ e.jsx(
1221
+ q,
1300
1222
  {
1301
1223
  p: 2,
1302
1224
  bg: "yellow.50",
1303
1225
  borderRadius: "md",
1304
1226
  border: "1px solid",
1305
1227
  borderColor: "yellow.200",
1306
- children: /* @__PURE__ */ e.jsx(x, { fontSize: "sm", fontWeight: "medium", color: "yellow.800", children: r === "convert" ? "Converting Modules will convert non QM-Owned Actions to QM-Owned" : "Copying Modules with Non QM-Owned Actions will create corresponding QM-Owned Actions" })
1228
+ children: /* @__PURE__ */ e.jsx(v, { fontSize: "sm", fontWeight: "medium", color: "yellow.800", children: o === "convert" ? "Converting Modules will convert non QM-Owned Actions to QM-Owned" : "Copying Modules with Non QM-Owned Actions will create corresponding QM-Owned Actions" })
1307
1229
  }
1308
1230
  )
1309
1231
  ] })
1310
1232
  ] }),
1311
- !c && /* @__PURE__ */ e.jsxs(xe, { spacing: 4, justifyContent: "flex-end", children: [
1233
+ !d && /* @__PURE__ */ e.jsxs(me, { spacing: 4, justifyContent: "flex-end", children: [
1312
1234
  /* @__PURE__ */ e.jsx(
1313
1235
  J,
1314
1236
  {
1315
1237
  variant: "outline",
1316
- onClick: L,
1317
- isDisabled: h,
1238
+ onClick: k,
1239
+ isDisabled: x,
1318
1240
  children: "Cancel"
1319
1241
  }
1320
1242
  ),
1321
1243
  /* @__PURE__ */ e.jsxs(
1322
1244
  J,
1323
1245
  {
1324
- colorScheme: r === "copy" ? "blue" : "green",
1325
- onClick: M,
1326
- isDisabled: E.length === 0 || h,
1327
- isLoading: h,
1328
- loadingText: `${r === "copy" ? "Copying" : "Converting"}...`,
1246
+ colorScheme: o === "copy" ? "blue" : "green",
1247
+ onClick: $,
1248
+ isDisabled: D.length === 0 || x,
1249
+ isLoading: x,
1250
+ loadingText: `${o === "copy" ? "Copying" : "Converting"}...`,
1329
1251
  children: [
1330
- r === "copy" ? "Copy" : "Convert",
1252
+ o === "copy" ? "Copy" : "Convert",
1331
1253
  " ",
1332
- E.length === 1 ? "Module" : `${E.length} Modules`
1254
+ D.length === 1 ? "Module" : `${D.length} Modules`
1333
1255
  ]
1334
1256
  }
1335
1257
  )
1336
1258
  ] })
1337
1259
  ] }) });
1338
- }, an = ({
1339
- name: s,
1340
- setName: n,
1341
- actions: i,
1342
- selectedActionIds: c,
1343
- setSelectedActionIds: u,
1260
+ }, rs = ({
1261
+ name: n,
1262
+ setName: s,
1263
+ actions: r,
1264
+ selectedActionIds: d,
1265
+ setSelectedActionIds: i,
1344
1266
  availableCategories: l,
1345
- selectedCategoryIds: d,
1346
- setSelectedCategoryIds: v,
1347
- description: o,
1348
- setDescription: I,
1349
- ...j
1267
+ selectedCategoryIds: u,
1268
+ setSelectedCategoryIds: g,
1269
+ description: a,
1270
+ setDescription: M,
1271
+ ...T
1350
1272
  }) => {
1351
- const A = gt(), h = F(() => i.map((y) => ({
1352
- ...y,
1353
- selected: c.includes(y.id)
1354
- })), [i, c]), C = F(() => i.reduce((y, w) => (y[w.id] = w, y), {}), [i]), r = F(
1355
- () => c.map((y) => C[y]),
1356
- [c, C]
1357
- ), a = R(
1358
- (y, w) => {
1359
- u(w ? [...c, y.id] : c.filter((G) => G !== y.id));
1273
+ const p = gt(), x = _(() => r.map((C) => ({
1274
+ ...C,
1275
+ selected: d.includes(C.id)
1276
+ })), [r, d]), A = _(() => r.reduce((C, w) => (C[w.id] = w, C), {}), [r]), o = _(
1277
+ () => d.map((C) => A[C]),
1278
+ [x, d]
1279
+ ), c = N(
1280
+ (C, w) => {
1281
+ i(w ? [...d, C.id] : d.filter((S) => S !== C.id));
1360
1282
  },
1361
- [c, u]
1362
- ), p = R(
1363
- (y) => {
1364
- n(y.target.value);
1283
+ [d, i]
1284
+ ), j = N(
1285
+ (C) => {
1286
+ s(C.target.value);
1365
1287
  },
1366
- [n]
1367
- ), g = R(
1368
- (y) => {
1369
- I?.(y.target.value);
1288
+ [s]
1289
+ ), m = N(
1290
+ (C) => {
1291
+ M?.(C.target.value);
1370
1292
  },
1371
- [I]
1293
+ [M]
1372
1294
  );
1373
- return /* @__PURE__ */ e.jsxs(Y, { ...j, children: [
1374
- /* @__PURE__ */ e.jsxs(te, { gap: "2rem", children: [
1375
- /* @__PURE__ */ e.jsx(cn, { name: s ?? "", onInputChange: p }),
1295
+ return /* @__PURE__ */ e.jsxs(q, { ...T, children: [
1296
+ /* @__PURE__ */ e.jsxs(X, { gap: "2rem", children: [
1297
+ /* @__PURE__ */ e.jsx(is, { name: n ?? "", onInputChange: j }),
1376
1298
  /* @__PURE__ */ e.jsx(
1377
- dn,
1299
+ ls,
1378
1300
  {
1379
1301
  availableCategories: l,
1380
- value: d,
1381
- onChange: v
1302
+ value: u,
1303
+ onChange: g
1382
1304
  }
1383
1305
  )
1384
1306
  ] }),
1385
1307
  /* @__PURE__ */ e.jsx(
1386
- un,
1308
+ as,
1387
1309
  {
1388
- description: o ?? "",
1389
- onInputChange: g
1310
+ description: a ?? "",
1311
+ onInputChange: m
1390
1312
  }
1391
1313
  ),
1392
1314
  /* @__PURE__ */ e.jsx(
1393
- hn,
1315
+ cs,
1394
1316
  {
1395
- value: r,
1396
- onChange: u,
1397
- onAdjustActivities: () => A.onOpen()
1317
+ value: o,
1318
+ onChange: i,
1319
+ onAdjustActivities: () => p.onOpen()
1398
1320
  }
1399
1321
  ),
1400
1322
  /* @__PURE__ */ e.jsxs(
1401
1323
  xt,
1402
1324
  {
1403
- isOpen: A.isOpen,
1404
- onClose: A.onClose,
1325
+ isOpen: p.isOpen,
1326
+ onClose: p.onClose,
1405
1327
  size: "6xl",
1406
1328
  children: [
1407
- /* @__PURE__ */ e.jsx(jt, {}),
1408
- /* @__PURE__ */ e.jsxs(ft, { children: [
1329
+ /* @__PURE__ */ e.jsx(ft, {}),
1330
+ /* @__PURE__ */ e.jsxs(jt, { children: [
1409
1331
  /* @__PURE__ */ e.jsx(vt, { children: "Select Activities" }),
1410
- /* @__PURE__ */ e.jsx(yt, {}),
1411
- /* @__PURE__ */ e.jsx(bt, { children: /* @__PURE__ */ e.jsx(
1412
- ln,
1332
+ /* @__PURE__ */ e.jsx(bt, {}),
1333
+ /* @__PURE__ */ e.jsx(yt, { children: /* @__PURE__ */ e.jsx(
1334
+ os,
1413
1335
  {
1414
- actions: h,
1415
- onSelected: a,
1336
+ actions: x,
1337
+ onSelected: c,
1416
1338
  disableCreate: !0,
1417
1339
  disableDelete: !0,
1418
1340
  tableProps: {
@@ -1425,8 +1347,8 @@ const Jt = ({
1425
1347
  J,
1426
1348
  {
1427
1349
  colorScheme: "blue",
1428
- onClick: A.onClose,
1429
- isDisabled: c.length === 0,
1350
+ onClick: p.onClose,
1351
+ isDisabled: d.length === 0,
1430
1352
  children: "Done"
1431
1353
  }
1432
1354
  ) })
@@ -1435,91 +1357,92 @@ const Jt = ({
1435
1357
  }
1436
1358
  )
1437
1359
  ] });
1438
- }, cn = Oe(
1360
+ }, is = Ne(
1439
1361
  ({
1440
- name: s,
1441
- onInputChange: n
1442
- }) => /* @__PURE__ */ e.jsxs(q, { mb: 4, children: [
1443
- /* @__PURE__ */ e.jsx(re, { children: "Module Name" }),
1362
+ name: n,
1363
+ onInputChange: s
1364
+ }) => /* @__PURE__ */ e.jsxs(W, { mb: 4, children: [
1365
+ /* @__PURE__ */ e.jsx(se, { children: "Module Name" }),
1444
1366
  /* @__PURE__ */ e.jsx(
1445
- je,
1367
+ Ie,
1446
1368
  {
1447
1369
  placeholder: "i.e. ACL RTP Test Battery",
1448
- value: s,
1449
- onChange: n,
1370
+ value: n,
1371
+ onChange: s,
1450
1372
  isRequired: !0
1451
1373
  }
1452
1374
  )
1453
1375
  ] })
1454
- ), dn = Oe(
1376
+ ), ls = Ne(
1455
1377
  ({
1456
- availableCategories: s,
1457
- value: n,
1458
- onChange: i
1378
+ availableCategories: n,
1379
+ value: s,
1380
+ onChange: r
1459
1381
  }) => {
1460
- const c = F(() => [
1461
- ...s,
1382
+ const d = _(() => [
1383
+ ...n,
1462
1384
  {
1463
1385
  id: "other",
1464
1386
  name: "Other"
1465
1387
  }
1466
- ], [s]), u = F(() => c.map((l) => ({
1388
+ ], [n]), i = _(() => d.map((l) => ({
1467
1389
  value: l.id,
1468
1390
  label: l.name
1469
- })), [c]);
1470
- return /* @__PURE__ */ e.jsxs(q, { mb: 4, children: [
1471
- /* @__PURE__ */ e.jsx(re, { children: "Module Category" }),
1391
+ })), [d]);
1392
+ return /* @__PURE__ */ e.jsxs(W, { mb: 4, children: [
1393
+ /* @__PURE__ */ e.jsx(se, { children: "Module Category" }),
1472
1394
  /* @__PURE__ */ e.jsx(
1473
- se,
1395
+ ie,
1474
1396
  {
1475
- isDisabled: s.length === 0,
1476
- options: u,
1477
- value: n.length === 0 ? { value: "other", label: "Other" } : c.filter((l) => n.includes(l.id)).map((l) => ({
1397
+ isDisabled: n.length === 0,
1398
+ isClearable: !0,
1399
+ options: i,
1400
+ value: d.filter((l) => s.includes(l.id)).map((l) => ({
1478
1401
  value: l.id,
1479
1402
  label: l.name
1480
- }))[0],
1481
- onChange: (l) => i(l ? [l.value] : []),
1403
+ })),
1404
+ onChange: (l) => r(l ? [l.value] : []),
1482
1405
  placeholder: "Select category"
1483
1406
  }
1484
1407
  )
1485
1408
  ] });
1486
1409
  }
1487
- ), un = Oe(
1410
+ ), as = Ne(
1488
1411
  ({
1489
- description: s,
1490
- onInputChange: n
1491
- }) => /* @__PURE__ */ e.jsxs(q, { mb: 4, children: [
1492
- /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs("span", { children: [
1412
+ description: n,
1413
+ onInputChange: s
1414
+ }) => /* @__PURE__ */ e.jsxs(W, { mb: 4, children: [
1415
+ /* @__PURE__ */ e.jsx(se, { children: /* @__PURE__ */ e.jsxs("span", { children: [
1493
1416
  "Description",
1494
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.500", children: "Briefly describe the objective of this module. Max 40 words." })
1417
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.500", children: "Briefly describe the objective of this module. Max 40 words." })
1495
1418
  ] }) }),
1496
1419
  /* @__PURE__ */ e.jsx(
1497
- je,
1420
+ Ie,
1498
1421
  {
1499
1422
  placeholder: "i.e. Assess readiness to return to play post-ACL reconstruction",
1500
- value: s,
1501
- onChange: n
1423
+ value: n,
1424
+ onChange: s
1502
1425
  }
1503
1426
  )
1504
1427
  ] })
1505
- ), hn = Oe(
1428
+ ), cs = Ne(
1506
1429
  ({
1507
- value: s,
1508
- onChange: n,
1509
- onAdjustActivities: i
1430
+ value: n,
1431
+ onChange: s,
1432
+ onAdjustActivities: r
1510
1433
  }) => {
1511
- const c = F(
1512
- () => s.map((u) => ({
1513
- id: u.id,
1514
- name: u.name
1434
+ const d = _(
1435
+ () => n.map((i) => ({
1436
+ id: i.id,
1437
+ name: i.name
1515
1438
  })),
1516
- [s]
1439
+ [n]
1517
1440
  );
1518
- return /* @__PURE__ */ e.jsxs(q, { mb: 4, children: [
1519
- /* @__PURE__ */ e.jsxs(te, { justifyContent: "space-between", children: [
1520
- /* @__PURE__ */ e.jsx(re, { children: /* @__PURE__ */ e.jsxs("span", { children: [
1441
+ return /* @__PURE__ */ e.jsxs(W, { mb: 4, children: [
1442
+ /* @__PURE__ */ e.jsxs(X, { justifyContent: "space-between", children: [
1443
+ /* @__PURE__ */ e.jsx(se, { children: /* @__PURE__ */ e.jsxs("span", { children: [
1521
1444
  "Activities",
1522
- /* @__PURE__ */ e.jsx(x, { fontSize: "sm", color: "gray.500", children: "Drag and drop to reorder the activities in this module." })
1445
+ /* @__PURE__ */ e.jsx(v, { fontSize: "sm", color: "gray.500", children: "Drag and drop to reorder the activities in this module." })
1523
1446
  ] }) }),
1524
1447
  /* @__PURE__ */ e.jsx(
1525
1448
  J,
@@ -1527,12 +1450,12 @@ const Jt = ({
1527
1450
  size: "sm",
1528
1451
  variant: "solid",
1529
1452
  colorScheme: "blue",
1530
- onClick: i,
1453
+ onClick: r,
1531
1454
  children: "Add / Remove Activities"
1532
1455
  }
1533
1456
  )
1534
1457
  ] }),
1535
- c.length === 0 ? /* @__PURE__ */ e.jsx(ee, { children: /* @__PURE__ */ e.jsxs(x, { color: "gray.500", fontSize: "lg", mb: "4rem", mt: "4rem", children: [
1458
+ d.length === 0 ? /* @__PURE__ */ e.jsx(Z, { children: /* @__PURE__ */ e.jsxs(v, { color: "gray.500", fontSize: "lg", mb: "4rem", mt: "4rem", children: [
1536
1459
  "No activities selected for this module.",
1537
1460
  /* @__PURE__ */ e.jsx(
1538
1461
  J,
@@ -1541,93 +1464,90 @@ const Jt = ({
1541
1464
  size: "sm",
1542
1465
  variant: "link",
1543
1466
  colorScheme: "blue",
1544
- onClick: i,
1467
+ onClick: r,
1545
1468
  children: "Add activities."
1546
1469
  }
1547
1470
  )
1548
1471
  ] }) }) : /* @__PURE__ */ e.jsx(
1549
1472
  Xt,
1550
1473
  {
1551
- value: c,
1552
- onChange: (u) => {
1553
- const l = u(c);
1554
- n(l.map((d) => d.id));
1474
+ value: d,
1475
+ onChange: (i) => {
1476
+ const l = i(d);
1477
+ s(l.map((u) => u.id));
1555
1478
  }
1556
1479
  }
1557
1480
  )
1558
1481
  ] });
1559
1482
  }
1560
- ), mn = ({
1561
- value: s,
1562
- onChange: n,
1563
- forceKind: i,
1564
- disableRemove: c,
1565
- disableKind: u,
1566
- isDisabled: l,
1567
- lockRanges: d,
1568
- ...v
1483
+ ), ds = ({
1484
+ value: n,
1485
+ onChange: s,
1486
+ forceKind: r,
1487
+ disableRemove: d,
1488
+ disableKind: i,
1489
+ lockRanges: l,
1490
+ ...u
1569
1491
  }) => {
1570
- const o = F(() => [...s].sort((h, C) => {
1571
- const r = Ge.indexOf(h.plane), a = Ge.indexOf(C.plane);
1572
- return r - a;
1573
- }), [s]), I = R((h) => "segment" in h.id ? it(h.id.segment, h.plane, !0) ?? "Unknown" : lt(h.id.joint, h.plane, !0) ?? "Unknown", []), j = R(
1574
- (h, C) => {
1575
- const r = o.findIndex(
1576
- (p) => p.id === C.id && p.plane === C.plane
1492
+ const g = _(() => [...n].sort((p, x) => {
1493
+ const A = Be.indexOf(p.plane), o = Be.indexOf(x.plane);
1494
+ return A - o;
1495
+ }), [n]), a = N((p) => "segment" in p.id ? lt(p.id.segment, p.plane, !0) ?? "Unknown" : at(p.id.joint, p.plane, !0) ?? "Unknown", []), M = N(
1496
+ (p, x) => {
1497
+ const A = g.findIndex(
1498
+ (c) => c.id === x.id && c.plane === x.plane
1577
1499
  );
1578
- let a = [...o];
1579
- i && (C = { ...C, kind: i }), a[r] = C, d && (a = a.map((p) => ({
1580
- ...p,
1581
- min: C.min,
1582
- max: C.max
1583
- }))), n(a);
1500
+ let o = [...g];
1501
+ r && (x = { ...x, kind: r }), o[A] = x, l && (o = o.map((c) => ({
1502
+ ...c,
1503
+ min: x.min,
1504
+ max: x.max
1505
+ }))), s(o);
1584
1506
  },
1585
- [n, o, i, d]
1586
- ), A = R(
1587
- (h) => {
1588
- const C = o.filter(
1589
- (r) => r.id !== h.id || r.plane !== h.plane
1507
+ [s, g, r, l]
1508
+ ), T = N(
1509
+ (p) => {
1510
+ const x = g.filter(
1511
+ (A) => A.id !== p.id || A.plane !== p.plane
1590
1512
  );
1591
- n(C);
1513
+ s(x);
1592
1514
  },
1593
- [n, o]
1515
+ [s, g]
1594
1516
  );
1595
- return /* @__PURE__ */ e.jsx(ee, { alignItems: "flex-start", overflowY: "auto", ...v, children: o.map((h, C) => /* @__PURE__ */ e.jsx(
1596
- pn,
1517
+ return /* @__PURE__ */ e.jsx(Z, { alignItems: "flex-start", overflowY: "auto", ...u, children: g.map((p, x) => /* @__PURE__ */ e.jsx(
1518
+ us,
1597
1519
  {
1598
- label: I(h),
1599
- parameter: h,
1600
- onChange: (r) => j(C, r),
1601
- onRemove: c || l ? void 0 : () => A(h),
1602
- forceKind: i,
1603
- disableKind: u || l,
1604
- isDisabled: l
1520
+ label: a(p),
1521
+ parameter: p,
1522
+ onChange: (A) => M(x, A),
1523
+ onRemove: d ? void 0 : () => T(p),
1524
+ forceKind: r,
1525
+ disableKind: i
1605
1526
  },
1606
- `${JSON.stringify(h.id)}-${h.plane}`
1527
+ `${JSON.stringify(p.id)}-${p.plane}`
1607
1528
  )) });
1608
- }, pn = ({
1609
- label: s,
1610
- parameter: n,
1611
- onChange: i,
1612
- onRemove: c,
1613
- forceKind: u,
1614
- disableKind: l,
1615
- isDisabled: d
1529
+ }, us = ({
1530
+ label: n,
1531
+ parameter: s,
1532
+ onChange: r,
1533
+ onRemove: d,
1534
+ forceKind: i,
1535
+ disableKind: l
1616
1536
  }) => {
1617
- const v = R(
1618
- (j) => "joint" in n.id ? Wt(
1619
- n.id.joint,
1620
- n.plane,
1621
- j < 0 ? -1 : 1
1537
+ const u = N(
1538
+ (M) => "joint" in s.id ? Bt(
1539
+ s.id.joint,
1540
+ s.plane,
1541
+ M < 0 ? -1 : 1
1622
1542
  ) : Qt(
1623
- n.id.segment,
1624
- n.plane,
1625
- j < 0 ? -1 : 1
1543
+ s.id.segment,
1544
+ s.plane,
1545
+ M < 0 ? -1 : 1
1626
1546
  ),
1627
- [n]
1628
- ), { min: o, max: I } = "joint" in n.id ? Ut(n.id.joint, n.plane) : { min: -180, max: 180 };
1547
+ [s]
1548
+ ), { min: g, max: a } = "joint" in s.id ? qt(s.id.joint, s.plane) : { min: -180, max: 180 };
1629
1549
  return /* @__PURE__ */ e.jsxs(
1630
- ee,
1550
+ Z,
1631
1551
  {
1632
1552
  borderRadius: "md",
1633
1553
  p: 2,
@@ -1637,33 +1557,33 @@ const Jt = ({
1637
1557
  overflow: "hidden",
1638
1558
  flexShrink: "0",
1639
1559
  children: [
1640
- /* @__PURE__ */ e.jsxs(te, { w: "100%", children: [
1560
+ /* @__PURE__ */ e.jsxs(X, { w: "100%", children: [
1641
1561
  /* @__PURE__ */ e.jsx(
1642
- x,
1562
+ v,
1643
1563
  {
1644
1564
  fontSize: "sm",
1645
1565
  flex: 1,
1646
1566
  textTransform: "capitalize",
1647
1567
  fontWeight: "semibold",
1648
- children: s
1568
+ children: n
1649
1569
  }
1650
1570
  ),
1651
- c && !d && /* @__PURE__ */ e.jsx(
1571
+ d && /* @__PURE__ */ e.jsx(
1652
1572
  wt,
1653
1573
  {
1654
1574
  size: "xs",
1655
1575
  variant: "ghost",
1656
1576
  "aria-label": "delete",
1657
- icon: /* @__PURE__ */ e.jsx(Ue, { as: Mt }),
1658
- onClick: c
1577
+ icon: /* @__PURE__ */ e.jsx(Qe, { as: Tt }),
1578
+ onClick: d
1659
1579
  }
1660
1580
  ),
1661
- !u && /* @__PURE__ */ e.jsx(
1662
- Zt,
1581
+ !i && /* @__PURE__ */ e.jsx(
1582
+ _e,
1663
1583
  {
1664
- selectedItem: n?.kind ?? we.Limit,
1665
- onChange: ({ value: j }) => i({ ...n, kind: j }),
1666
- isDisabled: l || d,
1584
+ selectedItem: s?.kind ?? we.Limit,
1585
+ onChange: ({ value: M }) => r({ ...s, kind: M }),
1586
+ isDisabled: l,
1667
1587
  buttonProps: {
1668
1588
  size: "sm",
1669
1589
  variant: "outline",
@@ -1685,423 +1605,450 @@ const Jt = ({
1685
1605
  {
1686
1606
  w: "100%",
1687
1607
  size: "xs",
1688
- min: o,
1689
- max: I,
1608
+ min: g,
1609
+ max: a,
1690
1610
  zeroMarker: !0,
1691
- value: [n.min, n.max],
1692
- onChange: (j) => i({ ...n, min: j[0], max: j[1] }),
1693
- formatValue: (j) => `${Math.abs(j)}°`,
1694
- valueLabel: (j) => v(j) ?? "",
1695
- positiveNegativeLabels: v(0) ? [v(-1) ?? "", v(1) ?? ""] : void 0,
1696
- isDisabled: d
1611
+ value: [s.min, s.max],
1612
+ onChange: (M) => r({ ...s, min: M[0], max: M[1] }),
1613
+ formatValue: (M) => `${Math.abs(M)}°`,
1614
+ valueLabel: (M) => u(M) ?? "",
1615
+ positiveNegativeLabels: u(0) ? [u(-1) ?? "", u(1) ?? ""] : void 0
1697
1616
  }
1698
1617
  )
1699
1618
  ]
1700
1619
  }
1701
1620
  );
1702
- }, be = (s, n) => "segment" in s && "segment" in n && s.segment === n.segment || "joint" in s && "joint" in n && s.joint === n.joint, gn = ({
1703
- options: s,
1704
- value: n,
1705
- onChange: i,
1706
- forceKind: c,
1707
- singleValue: u,
1621
+ }, Ce = (n, s) => "segment" in n && "segment" in s && n.segment === s.segment || "joint" in n && "joint" in s && n.joint === s.joint, hs = ({
1622
+ options: n,
1623
+ value: s,
1624
+ onChange: r,
1625
+ forceKind: d,
1626
+ singleValue: i,
1708
1627
  singleValueSideless: l,
1709
- editOnly: d,
1710
- disableKind: v,
1711
- maxParameters: o,
1712
- ...I
1628
+ editOnly: u,
1629
+ disableKind: g,
1630
+ maxParameters: a,
1631
+ ...M
1713
1632
  }) => {
1714
- const j = l ? 2 : o, A = F(
1715
- () => s.map((a) => ({
1716
- label: "segment" in a.id ? it(a.id.segment, a.plane, !0) ?? "Unknown" : lt(a.id.joint, a.plane, !0) ?? "Unknown",
1717
- value: a.id,
1718
- plane: a.plane
1633
+ const T = l ? 2 : a, p = _(
1634
+ () => n.map((c) => ({
1635
+ label: "segment" in c.id ? lt(c.id.segment, c.plane, !0) ?? "Unknown" : at(c.id.joint, c.plane, !0) ?? "Unknown",
1636
+ value: c.id,
1637
+ plane: c.plane
1719
1638
  })),
1720
- [s]
1721
- ), h = F(() => {
1722
- if (!l || n.length === 0)
1723
- return A;
1724
- const a = n[0];
1725
- return A.filter(
1726
- (p) => ve(p.value) === ve(a.id) && p.plane === a.plane
1639
+ [n]
1640
+ ), x = _(() => {
1641
+ if (!l || s.length === 0)
1642
+ return p;
1643
+ const c = s[0];
1644
+ return p.filter(
1645
+ (j) => be(j.value) === be(c.id) && j.plane === c.plane
1727
1646
  );
1728
- }, [A, n, l]), C = F(
1729
- () => A.filter(
1730
- (a) => n.some((p) => be(p.id, a.value) && p.plane === a.plane)
1647
+ }, [p, s, l]), A = _(
1648
+ () => p.filter(
1649
+ (c) => s.some((j) => Ce(j.id, c.value) && j.plane === c.plane)
1731
1650
  ),
1732
- [A, n]
1733
- ), r = R(
1734
- (a) => {
1735
- const p = a.map((g) => {
1736
- const y = n.find(
1737
- (N) => be(N.id, g.value) && N.plane === g.plane
1738
- ), w = s.find(
1739
- (N) => be(N.id, g.value) && N.plane === g.plane
1740
- ), G = l ? n.find(
1741
- (N) => ve(N.id) === ve(g.value) && N.plane === g.plane
1742
- ) : void 0, k = G && !y ? G.min : w && w.min ? w.min : 0, T = G && !y ? G.max : w && w.max ? w.max : 0;
1743
- return y ?? {
1744
- id: g.value,
1745
- plane: g.plane,
1746
- min: k,
1747
- max: T,
1748
- kind: c ?? we.Limit
1651
+ [p, s]
1652
+ ), o = N(
1653
+ (c) => {
1654
+ const j = c.map((m) => {
1655
+ const C = s.find(
1656
+ (I) => Ce(I.id, m.value) && I.plane === m.plane
1657
+ ), w = n.find(
1658
+ (I) => Ce(I.id, m.value) && I.plane === m.plane
1659
+ ), S = l ? s.find(
1660
+ (I) => be(I.id) === be(m.value) && I.plane === m.plane
1661
+ ) : void 0, b = S && !C ? S.min : w && w.min ? w.min : 0, O = S && !C ? S.max : w && w.max ? w.max : 0;
1662
+ return C ?? {
1663
+ id: m.value,
1664
+ plane: m.plane,
1665
+ min: b,
1666
+ max: O,
1667
+ kind: d ?? we.Limit
1749
1668
  };
1750
1669
  });
1751
- i(p);
1670
+ r(j);
1752
1671
  },
1753
- [i, n, s, c, l]
1672
+ [r, s, n, d, l]
1754
1673
  );
1755
- return ne(() => {
1756
- const a = n.filter(
1757
- (p) => s.some((g) => be(g.id, p.id) && g.plane === p.plane)
1674
+ return V(() => {
1675
+ const c = s.filter(
1676
+ (j) => n.some((m) => Ce(m.id, j.id) && m.plane === j.plane)
1758
1677
  );
1759
- a.length !== n.length && i(a);
1760
- }, [s, i]), /* @__PURE__ */ e.jsxs(Y, { ...I, children: [
1678
+ c.length !== s.length && r(c);
1679
+ }, [n, r]), /* @__PURE__ */ e.jsxs(q, { ...M, children: [
1761
1680
  /* @__PURE__ */ e.jsx(
1762
- se,
1681
+ ie,
1763
1682
  {
1764
- isMulti: !u,
1765
- placeholder: n.length ? `${n.length} selected` : "Search...",
1766
- value: C,
1767
- isDisabled: d || C.length >= (j ?? 1 / 0),
1768
- onChange: (a) => Array.isArray(a) ? r([...a]) : r(a !== null ? [a] : []),
1769
- options: h,
1683
+ isMulti: !i,
1684
+ placeholder: s.length ? `${s.length} selected` : "Search...",
1685
+ value: A,
1686
+ isDisabled: u || A.length >= (T ?? 1 / 0),
1687
+ onChange: (c) => Array.isArray(c) ? o([...c]) : o(c !== null ? [c] : []),
1688
+ options: x,
1770
1689
  controlShouldRenderValue: !1
1771
1690
  }
1772
1691
  ),
1773
1692
  /* @__PURE__ */ e.jsx(
1774
- mn,
1693
+ ds,
1775
1694
  {
1776
1695
  marginTop: 2,
1777
1696
  maxH: "28rem",
1778
- value: n,
1779
- onChange: i,
1780
- forceKind: c,
1781
- disableKind: v,
1782
- isDisabled: d,
1697
+ value: s,
1698
+ onChange: r,
1699
+ forceKind: d,
1700
+ disableKind: g,
1783
1701
  lockRanges: l
1784
1702
  }
1785
1703
  )
1786
1704
  ] });
1787
- }, at = (s) => {
1788
- switch (s) {
1789
- case W.Thorax:
1705
+ }, ct = (n) => {
1706
+ switch (n) {
1707
+ case z.Thorax:
1790
1708
  return "Thorax";
1791
- case W.CenterBack:
1709
+ case z.CenterBack:
1792
1710
  return "Center Back";
1793
- case W.Pelvis:
1711
+ case z.Pelvis:
1794
1712
  return "Pelvis";
1795
- case W.LeftThigh:
1713
+ case z.LeftThigh:
1796
1714
  return "Left Thigh";
1797
- case W.RightThigh:
1715
+ case z.RightThigh:
1798
1716
  return "Right Thigh";
1799
- case W.LeftShank:
1717
+ case z.LeftShank:
1800
1718
  return "Left Shank";
1801
- case W.RightShank:
1719
+ case z.RightShank:
1802
1720
  return "Right Shank";
1803
- case W.LeftFoot:
1721
+ case z.LeftFoot:
1804
1722
  return "Left Foot";
1805
- case W.RightFoot:
1723
+ case z.RightFoot:
1806
1724
  return "Right Foot";
1807
- case W.LeftUpperArm:
1725
+ case z.LeftUpperArm:
1808
1726
  return "Left Upper Arm";
1809
- case W.RightUpperArm:
1727
+ case z.RightUpperArm:
1810
1728
  return "Right Upper Arm";
1811
- case W.LeftForearm:
1729
+ case z.LeftForearm:
1812
1730
  return "Left Forearm";
1813
- case W.RightForearm:
1731
+ case z.RightForearm:
1814
1732
  return "Right Forearm";
1815
- case W.Head:
1733
+ case z.Head:
1816
1734
  return "Head";
1817
1735
  }
1818
- return console.warn(`Unknown sensor location: ${s}`), "Unknown";
1819
- }, xn = 6, jn = [
1820
- W.LeftFoot,
1821
- W.LeftShank,
1822
- W.LeftThigh,
1823
- W.Pelvis,
1824
- W.RightFoot,
1825
- W.RightShank,
1826
- W.RightThigh,
1827
- W.Thorax,
1828
- W.CenterBack,
1829
- W.Head
1830
- ], fn = jn.map((s) => ({
1831
- label: at(s),
1832
- value: s
1833
- })), Qe = (s, n) => s.map((i) => ({ label: n ? n(i) : i, value: i })), En = ({
1834
- id: s,
1835
- onError: n,
1836
- onCancel: i,
1837
- onSave: c,
1838
- hideButtons: u,
1736
+ return console.warn(`Unknown sensor location: ${n}`), "Unknown";
1737
+ }, ms = 6, ps = [
1738
+ z.LeftFoot,
1739
+ z.LeftShank,
1740
+ z.LeftThigh,
1741
+ z.Pelvis,
1742
+ z.RightFoot,
1743
+ z.RightShank,
1744
+ z.RightThigh,
1745
+ z.Thorax,
1746
+ z.CenterBack,
1747
+ z.Head
1748
+ ], gs = ps.map((n) => ({
1749
+ label: ct(n),
1750
+ value: n
1751
+ })), De = (n) => n.map(
1752
+ (s) => s.__isNew__ ? { name: s.label } : { id: s.value, name: s.label }
1753
+ ), Ls = ({
1754
+ id: n,
1755
+ onError: s,
1756
+ onCancel: r,
1757
+ onSave: d,
1758
+ hideButtons: i,
1839
1759
  setButtonOnClick: l,
1840
- setButtonDisabled: d,
1841
- quantumOwned: v,
1842
- isView: o
1760
+ setButtonDisabled: u,
1761
+ quantumOwned: g
1843
1762
  }) => {
1844
- const [{ fetching: I }, j] = oe(De), [{ fetching: A }, h] = oe(Nt), [{ data: C }] = le({
1845
- query: Lt,
1846
- variables: { id: s ?? "" },
1847
- pause: !s
1848
- }), r = U(
1849
- ae,
1850
- C?.getActionById
1851
- ), a = I || A, p = !!r && !!s, [g, y] = P(""), [w, G] = P(""), [k, T] = P(""), [N, E] = P(""), [_, f] = P(), [M, L] = P([]), [X, b] = P([]), [z, Z] = P([]), t = F(
1852
- () => X.map((O) => O.value),
1853
- [X]
1854
- ), m = Yt(t), [{ data: S }] = le({
1855
- query: rt
1856
- }), D = F(() => U(
1857
- me,
1858
- S?.moduleCategories
1859
- )?.map((H) => ({
1860
- label: H.name,
1861
- value: H.id
1862
- })), [S?.moduleCategories]), $ = F(
1863
- () => Qe(Object.values(Pt), Pe),
1864
- []
1865
- ), [Q, K] = P([]), B = g.length > 0, [ce, Ie] = P({});
1866
- ne(() => {
1867
- if (r) {
1868
- const O = U(
1869
- me,
1870
- r.categories
1871
- ), H = {
1872
- name: r.name,
1873
- activityType: r.activityType ?? void 0,
1874
- description: r.description || "",
1875
- cameraPlacement: r.cameraPlacement || "",
1876
- videoLink: r.videoLink || "",
1877
- sessionType: r.sessionType.map((V) => ({
1878
- label: Pe(V),
1879
- value: V
1880
- })),
1881
- categories: O?.map((V) => V.id) || [],
1882
- sensorLocations: r.sensorLocations.map((V) => ({
1883
- label: at(V),
1884
- value: V
1885
- })),
1886
- thresholds: qt(r.thresholds)
1887
- };
1888
- y(H.name), f(H.activityType ?? void 0), G(H.description), T(H.cameraPlacement), E(H.videoLink), L(H.sessionType), Z(O?.map((V) => V.id) || []), b(H.sensorLocations), K(H.thresholds), Ie(H);
1889
- }
1890
- }, [r]);
1891
- const pe = F(
1892
- () => JSON.stringify(ce) !== JSON.stringify({
1893
- name: g,
1763
+ const a = It(), [{ fetching: M }, T] = te(ze), [{ fetching: p }, x] = te(Et), [{ data: A }] = oe({
1764
+ query: Dt,
1765
+ variables: { id: n ?? "" },
1766
+ pause: !n
1767
+ }), o = B(
1768
+ re,
1769
+ A?.getActionById
1770
+ ), c = M || p, j = !!o && !!n, [m, C] = E(""), [w, S] = E(""), [b, O] = E(""), [I, D] = E(""), [P, ee] = E(
1771
+ ve.Either
1772
+ ), [$, k] = E(
1773
+ Fe.Action
1774
+ ), [H, y] = E([]), [L, K] = E([]), t = _(
1775
+ () => H.map((R) => R.value),
1776
+ [H]
1777
+ ), h = Jt(t), [f, F] = E([]), [U, G] = E(!1), Y = m.length && P;
1778
+ V(() => {
1779
+ o && (C(o.name), k(o.activityKind), S(o.description || ""), ee(o.laterality), K(
1780
+ o.useCases.map((R) => ({
1781
+ id: R.id,
1782
+ value: R.id,
1783
+ label: R.name,
1784
+ __isNew__: !1
1785
+ }))
1786
+ ), O(o.instructionsPointOfInterest || ""), D(o.instructionsMovementReport || ""), y(
1787
+ o.sensorLocations.map((R) => ({
1788
+ label: ct(R),
1789
+ value: R
1790
+ }))
1791
+ ), F(Ht(o.thresholds)));
1792
+ }, [o]);
1793
+ const Q = N(
1794
+ async (R) => (await a.query(
1795
+ g ? Lt : Ft,
1796
+ {
1797
+ query: R,
1798
+ limit: 10
1799
+ }
1800
+ ).then((ae) => {
1801
+ const je = ae.data;
1802
+ return je ? je?.quantumOwnedUseCases ? je.quantumOwnedUseCases : je.useCases : [];
1803
+ }) ?? []).map((ae) => ({
1804
+ label: ae.name,
1805
+ value: ae.id
1806
+ })),
1807
+ [a, g]
1808
+ ), [de, xe] = E({});
1809
+ V(() => {
1810
+ xe({
1811
+ name: m,
1812
+ laterality: P,
1894
1813
  description: w,
1895
- cameraPlacement: k,
1896
- videoLink: N,
1897
- activityType: _,
1898
- sessionType: M.map((O) => O.value),
1899
- categories: z,
1814
+ instructionsPointOfInterest: b,
1815
+ instructionsMovementReport: I,
1900
1816
  sensorLocations: t,
1901
- thresholds: We(Q)
1817
+ thresholds: Ee(f),
1818
+ useCases: De(L),
1819
+ activityKind: $
1820
+ });
1821
+ }, [xe, o]);
1822
+ const le = _(
1823
+ () => JSON.stringify(de) !== JSON.stringify({
1824
+ name: m,
1825
+ laterality: P,
1826
+ description: w,
1827
+ instructionsPointOfInterest: b,
1828
+ instructionsMovementReport: I,
1829
+ sensorLocations: t,
1830
+ thresholds: Ee(f),
1831
+ useCases: De(L),
1832
+ activityKind: $
1902
1833
  }),
1903
1834
  [
1904
- ce,
1905
- g,
1835
+ de,
1836
+ m,
1837
+ P,
1906
1838
  t,
1907
1839
  w,
1908
- k,
1909
- N,
1910
- _,
1911
- M,
1912
- z,
1913
- Q
1840
+ I,
1841
+ b,
1842
+ f,
1843
+ L,
1844
+ $
1914
1845
  ]
1915
- ), de = R(() => {
1916
- const O = {
1917
- name: g,
1846
+ ), pe = N(() => {
1847
+ const R = {
1848
+ name: m,
1849
+ laterality: P,
1918
1850
  description: w,
1919
- cameraPlacement: k,
1920
- videoLink: N,
1921
- activityType: _,
1922
- activityKind: Bt(_),
1923
- sessionType: M.map((V) => V.value),
1924
- categories: z,
1851
+ instructionsPointOfInterest: b,
1852
+ instructionsMovementReport: I,
1925
1853
  sensorLocations: t,
1926
- thresholds: We(Q),
1927
- // Backend requires laterality; keep existing default since UI no longer edits it
1928
- laterality: _t.Either,
1929
- quantumOwned: v
1854
+ thresholds: Ee(f),
1855
+ useCases: De(L),
1856
+ activityKind: $,
1857
+ quantumOwned: g
1930
1858
  };
1931
- let H;
1932
- p && s ? H = h({
1933
- id: s,
1934
- fields: O
1935
- }) : H = j({
1936
- fields: O
1937
- }), H.then(({ error: V }) => {
1938
- V ? n(V) : c();
1859
+ let fe;
1860
+ j && n ? fe = x({
1861
+ id: n,
1862
+ fields: R
1863
+ }) : fe = T({
1864
+ fields: R
1865
+ }), fe.then(({ error: ae }) => {
1866
+ ae ? s(ae) : d();
1939
1867
  });
1940
1868
  }, [
1941
- v,
1942
- j,
1943
- h,
1944
- s,
1945
1869
  g,
1870
+ T,
1871
+ x,
1872
+ n,
1873
+ m,
1874
+ P,
1946
1875
  t,
1876
+ d,
1947
1877
  w,
1948
- k,
1949
- N,
1950
- _,
1951
- M,
1952
- z,
1953
- p,
1954
- Q,
1955
- c,
1956
- n
1878
+ I,
1879
+ b,
1880
+ j,
1881
+ f,
1882
+ L,
1883
+ $,
1884
+ s
1957
1885
  ]);
1958
- return ne(() => {
1959
- d && d({
1960
- cancelButton: a,
1961
- saveButton: o ? !0 : a || !B || !pe
1886
+ return V(() => {
1887
+ u && u({
1888
+ cancelButton: c,
1889
+ saveButton: c || !Y || !le
1962
1890
  });
1963
- }, [a, d, B, pe, o]), ne(() => {
1891
+ }, [c, u, Y, le]), V(() => {
1964
1892
  l && l({
1965
- cancelButton: i,
1966
- saveButton: o ? () => {
1967
- } : de
1893
+ cancelButton: r,
1894
+ saveButton: pe
1968
1895
  });
1969
- }, [l, i, de, o]), console.log(B, pe, a, ce), /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-2 gap-4 w-full", children: [
1970
- /* @__PURE__ */ e.jsxs("div", { className: "col-span-2 lg:col-span-1 flex flex-col gap-4", children: [
1971
- /* @__PURE__ */ e.jsxs(q, { children: [
1972
- /* @__PURE__ */ e.jsx(ie, { children: "Name" }),
1896
+ }, [l, r, pe]), /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-2 gap-4 w-full", children: [
1897
+ /* @__PURE__ */ e.jsxs("div", { className: "col-span-2 lg:col-span-1 flex flex-col gap-8", children: [
1898
+ /* @__PURE__ */ e.jsxs(W, { children: [
1899
+ /* @__PURE__ */ e.jsx(ne, { children: "Name" }),
1973
1900
  /* @__PURE__ */ e.jsx(
1974
- je,
1901
+ Ie,
1975
1902
  {
1976
- value: g,
1977
- onChange: (O) => y(O.target.value),
1903
+ value: m,
1904
+ onChange: (R) => C(R.target.value),
1978
1905
  type: "text",
1979
- placeholder: "i.e. Lunge & Return",
1980
- isDisabled: o
1981
- }
1982
- )
1983
- ] }),
1984
- /* @__PURE__ */ e.jsxs(q, { children: [
1985
- /* @__PURE__ */ e.jsx(ie, { children: "Activity Type" }),
1986
- /* @__PURE__ */ e.jsx(
1987
- se,
1988
- {
1989
- isClearable: !0,
1990
- isMulti: !1,
1991
- value: _ ? {
1992
- label: _e(_),
1993
- value: _
1994
- } : null,
1995
- onChange: (O) => f(O?.value),
1996
- options: Qe(
1997
- Object.values(Gt),
1998
- _e
1999
- ),
2000
- placeholder: "(optional) Select activity type",
2001
- isDisabled: o
1906
+ placeholder: "i.e. Lunge & Return"
2002
1907
  }
2003
1908
  )
2004
1909
  ] }),
2005
- /* @__PURE__ */ e.jsxs(q, { children: [
2006
- /* @__PURE__ */ e.jsx(ie, { children: "Camera Placement" }),
2007
- /* @__PURE__ */ e.jsx(
2008
- $e,
2009
- {
2010
- value: k,
2011
- onChange: (O) => T(O.target.value),
2012
- rows: 2,
2013
- placeholder: "(optional) Describe camera setup, placement, angles",
2014
- isDisabled: o
2015
- }
2016
- )
1910
+ /* @__PURE__ */ e.jsxs(X, { m: "0", p: "0", w: "100%", justifyItems: "space-between", children: [
1911
+ /* @__PURE__ */ e.jsxs(W, { children: [
1912
+ /* @__PURE__ */ e.jsx(ne, { children: "Activity Type" }),
1913
+ /* @__PURE__ */ e.jsx(
1914
+ _e,
1915
+ {
1916
+ selectedItem: $,
1917
+ onChange: (R) => k(R.value),
1918
+ buttonProps: {
1919
+ size: "sm",
1920
+ variant: "outline",
1921
+ colorScheme: "gray"
1922
+ },
1923
+ selectedProps: {
1924
+ variant: "solid",
1925
+ colorScheme: "teal"
1926
+ },
1927
+ items: [
1928
+ { value: Fe.Action, label: "Action" },
1929
+ { value: Fe.Movement, label: "Movement" }
1930
+ ]
1931
+ }
1932
+ )
1933
+ ] }),
1934
+ /* @__PURE__ */ e.jsxs(W, { children: [
1935
+ /* @__PURE__ */ e.jsx(ne, { children: "Laterality" }),
1936
+ /* @__PURE__ */ e.jsx(
1937
+ _e,
1938
+ {
1939
+ selectedItem: P,
1940
+ onChange: (R) => ee(R.value),
1941
+ buttonProps: {
1942
+ size: "sm",
1943
+ variant: "outline",
1944
+ colorScheme: "gray"
1945
+ },
1946
+ selectedProps: {
1947
+ variant: "solid",
1948
+ colorScheme: "teal"
1949
+ },
1950
+ items: [
1951
+ {
1952
+ value: ve.Unilateral,
1953
+ label: "unilateral"
1954
+ },
1955
+ {
1956
+ value: ve.Bilateral,
1957
+ label: "bilateral"
1958
+ },
1959
+ {
1960
+ value: ve.Either,
1961
+ label: "either / or"
1962
+ }
1963
+ ]
1964
+ }
1965
+ )
1966
+ ] })
2017
1967
  ] }),
2018
- /* @__PURE__ */ e.jsxs(q, { children: [
2019
- /* @__PURE__ */ e.jsx(ie, { children: "Video Link" }),
1968
+ /* @__PURE__ */ e.jsxs(W, { children: [
1969
+ /* @__PURE__ */ e.jsx(ne, { children: "Use Cases" }),
2020
1970
  /* @__PURE__ */ e.jsx(
2021
- je,
1971
+ Xe,
2022
1972
  {
2023
- value: N,
2024
- onChange: (O) => E(O.target.value),
2025
- type: "url",
2026
- placeholder: "(optional) https://...",
2027
- isDisabled: o
1973
+ isOpen: U,
1974
+ label: "Type to search for existing use cases",
1975
+ placement: "top-end",
1976
+ children: /* @__PURE__ */ e.jsx(q, { children: /* @__PURE__ */ e.jsx(
1977
+ At,
1978
+ {
1979
+ value: L,
1980
+ onChange: (R) => K([...R]),
1981
+ isMulti: !0,
1982
+ cacheOptions: !0,
1983
+ defaultOptions: !0,
1984
+ onFocus: () => G(!0),
1985
+ onBlur: () => G(!1),
1986
+ loadOptions: Q,
1987
+ placeholder: "(optional) Search for & select use cases…"
1988
+ }
1989
+ ) })
2028
1990
  }
2029
1991
  )
2030
1992
  ] }),
2031
- /* @__PURE__ */ e.jsxs(q, { children: [
2032
- /* @__PURE__ */ e.jsx(ie, { children: "Description" }),
1993
+ /* @__PURE__ */ e.jsxs(W, { children: [
1994
+ /* @__PURE__ */ e.jsx(ne, { children: "Description" }),
2033
1995
  /* @__PURE__ */ e.jsx(
2034
- $e,
1996
+ Le,
2035
1997
  {
2036
1998
  value: w,
2037
- onChange: (O) => G(O.target.value),
1999
+ onChange: (R) => S(R.target.value),
2038
2000
  rows: 2,
2039
- placeholder: "(optional) Describe how to perform the test or exercise",
2040
- isDisabled: o
2001
+ placeholder: "(optional) Describe how to perform the test or exercise"
2041
2002
  }
2042
2003
  )
2043
2004
  ] }),
2044
- /* @__PURE__ */ e.jsxs(q, { children: [
2045
- /* @__PURE__ */ e.jsx(ie, { children: "Link to Category" }),
2005
+ /* @__PURE__ */ e.jsxs(W, { children: [
2006
+ /* @__PURE__ */ e.jsx(ne, { children: "Instructions for General Movement Report" }),
2046
2007
  /* @__PURE__ */ e.jsx(
2047
- se,
2008
+ Le,
2048
2009
  {
2049
- isMulti: !0,
2050
- value: D?.filter(
2051
- (O) => z.includes(O.value)
2052
- ),
2053
- onChange: (O) => Z(
2054
- (O ?? []).map(
2055
- (H) => H.value
2056
- )
2057
- ),
2058
- options: D,
2059
- placeholder: "Select one or more categories",
2060
- isDisabled: o
2010
+ value: I,
2011
+ onChange: (R) => D(R.target.value),
2012
+ rows: 2,
2013
+ placeholder: "(optional) Describe how to setup or generate the movement report"
2061
2014
  }
2062
2015
  )
2063
2016
  ] }),
2064
- /* @__PURE__ */ e.jsxs(q, { children: [
2065
- /* @__PURE__ */ e.jsx(ie, { children: "Session Types" }),
2017
+ /* @__PURE__ */ e.jsxs(W, { children: [
2018
+ /* @__PURE__ */ e.jsx(ne, { children: "Instructions for Point of Interest Report" }),
2066
2019
  /* @__PURE__ */ e.jsx(
2067
- se,
2020
+ Le,
2068
2021
  {
2069
- isMulti: !0,
2070
- value: M,
2071
- onChange: (O) => L(
2072
- O ?? []
2073
- ),
2074
- options: $,
2075
- placeholder: "Select one or more session types",
2076
- isDisabled: o
2022
+ value: b,
2023
+ onChange: (R) => O(R.target.value),
2024
+ rows: 2,
2025
+ placeholder: "(optional) Describe how to setup or generate the point of interest report"
2077
2026
  }
2078
2027
  )
2079
2028
  ] })
2080
2029
  ] }),
2081
- /* @__PURE__ */ e.jsxs("div", { className: "col-span-2 lg:col-span-1 flex flex-col gap-4", children: [
2082
- /* @__PURE__ */ e.jsxs(q, { children: [
2083
- /* @__PURE__ */ e.jsx(ie, { children: "Sensor Locations" }),
2030
+ /* @__PURE__ */ e.jsxs("div", { className: "col-span-2 lg:col-span-1 flex flex-col gap-8", children: [
2031
+ /* @__PURE__ */ e.jsxs(W, { children: [
2032
+ /* @__PURE__ */ e.jsx(ne, { children: "Sensor Locations" }),
2084
2033
  /* @__PURE__ */ e.jsx(
2085
- se,
2034
+ ie,
2086
2035
  {
2087
2036
  isMulti: !0,
2088
- value: X,
2089
- onChange: (O) => b([...O]),
2090
- options: fn,
2091
- isOptionDisabled: () => X.length >= xn,
2092
- isDisabled: o
2037
+ value: H,
2038
+ onChange: (R) => y([...R]),
2039
+ options: gs,
2040
+ isOptionDisabled: () => H.length >= ms
2093
2041
  }
2094
2042
  )
2095
2043
  ] }),
2096
- /* @__PURE__ */ e.jsxs(q, { children: [
2097
- /* @__PURE__ */ e.jsx(ie, { children: "Default Parameters" }),
2044
+ /* @__PURE__ */ e.jsxs(W, { children: [
2045
+ /* @__PURE__ */ e.jsx(ne, { children: "Default Parameters" }),
2098
2046
  /* @__PURE__ */ e.jsx(
2099
- gn,
2047
+ hs,
2100
2048
  {
2101
- options: m,
2102
- value: Q,
2103
- onChange: K,
2104
- editOnly: o
2049
+ options: h,
2050
+ value: f,
2051
+ onChange: F
2105
2052
  }
2106
2053
  )
2107
2054
  ] })
@@ -2109,19 +2056,16 @@ const Jt = ({
2109
2056
  /* @__PURE__ */ e.jsx(
2110
2057
  "div",
2111
2058
  {
2112
- className: Ht(
2113
- "col-span-2 flex justify-end",
2114
- (u || o) && "hidden"
2115
- ),
2116
- children: /* @__PURE__ */ e.jsxs(xe, { mt: 16, gap: 4, children: [
2117
- /* @__PURE__ */ e.jsx(J, { colorScheme: "gray", isDisabled: a, onClick: i, children: "Cancel" }),
2059
+ className: Yt("col-span-2 flex justify-end", i && "hidden"),
2060
+ children: /* @__PURE__ */ e.jsxs(me, { mt: 16, gap: 4, children: [
2061
+ /* @__PURE__ */ e.jsx(J, { colorScheme: "gray", isDisabled: c, onClick: r, children: "Cancel" }),
2118
2062
  /* @__PURE__ */ e.jsx(
2119
2063
  J,
2120
2064
  {
2121
2065
  colorScheme: "blue",
2122
- isDisabled: a || !B || !pe,
2123
- isLoading: a,
2124
- onClick: de,
2066
+ isDisabled: c || !Y || !le,
2067
+ isLoading: c,
2068
+ onClick: pe,
2125
2069
  children: "Save changes"
2126
2070
  }
2127
2071
  )
@@ -2129,102 +2073,101 @@ const Jt = ({
2129
2073
  }
2130
2074
  )
2131
2075
  ] });
2132
- }, ie = ({ children: s }) => /* @__PURE__ */ e.jsx(Be, { fontWeight: "bold", fontFamily: "sans-serif", fontSize: "large", children: s }), zn = ({
2133
- id: s,
2134
- onCancel: n,
2135
- onSave: i,
2136
- onError: c,
2137
- hideButtons: u,
2076
+ }, ne = ({ children: n }) => /* @__PURE__ */ e.jsx(qe, { fontWeight: "bold", fontFamily: "sans-serif", fontSize: "large", children: n }), Fs = ({
2077
+ id: n,
2078
+ onCancel: s,
2079
+ onSave: r,
2080
+ onError: d,
2081
+ hideButtons: i,
2138
2082
  quantumOwned: l,
2139
- setButtonOnClick: d,
2140
- setButtonDisabled: v
2083
+ setButtonOnClick: u,
2084
+ setButtonDisabled: g
2141
2085
  }) => {
2142
- const [{ data: o }] = le({
2143
- query: l ? Dt : Ft
2144
- }), [{ data: I }] = le({
2145
- query: kt,
2146
- variables: { id: s },
2147
- pause: !s
2148
- }), [{ data: j }] = le({
2149
- query: rt
2150
- }), A = U(
2151
- me,
2152
- j?.moduleCategories
2153
- ), [{ fetching: h }, C] = oe(st), [{ fetching: r }, a] = oe(ot), p = U(
2154
- ae,
2155
- l ? o?.quantumOwnedActions : o?.actions
2156
- ) ?? [], g = U(Ce, I?.module), y = U(nt, g?.moduleActions) ?? [], [w, G] = P([
2157
- ...y.map((L) => L.actionId) ?? []
2158
- ]), [k, T] = P(g?.name ?? ""), [N, E] = P([]), [_, f] = P(g?.description ?? "");
2159
- ne(() => {
2160
- g && (G(y.map((L) => L.actionId)), T(g.name), f(g.description ?? ""), E(
2161
- g.categories.map(
2162
- (L) => U(me, L).id
2086
+ const [{ data: a }] = oe({
2087
+ query: l ? kt : _t
2088
+ }), [{ data: M }] = oe({
2089
+ query: zt,
2090
+ variables: { id: n },
2091
+ pause: !n
2092
+ }), [{ data: T }] = oe({
2093
+ query: Pt
2094
+ }), p = B(
2095
+ ke,
2096
+ T?.moduleCategories
2097
+ ), [{ fetching: x }, A] = te(rt), [{ fetching: o }, c] = te(it), j = B(
2098
+ re,
2099
+ l ? a?.quantumOwnedActions : a?.actions
2100
+ ) ?? [], m = B(Se, M?.module), C = B(ot, m?.moduleActions) ?? [], [w, S] = E([
2101
+ ...C.map((k) => k.actionId) ?? []
2102
+ ]), [b, O] = E(m?.name ?? ""), [I, D] = E([]), [P, ee] = E(m?.description ?? "");
2103
+ V(() => {
2104
+ m && (S(C.map((k) => k.actionId)), O(m.name), ee(m.description ?? ""), D(
2105
+ m.categories.map(
2106
+ (k) => B(ke, k).id
2163
2107
  ) ?? []
2164
2108
  ));
2165
- }, [g, y]);
2166
- const M = R(() => {
2167
- let L;
2168
- const X = {
2109
+ }, [m, C]);
2110
+ const $ = N(() => {
2111
+ let k;
2112
+ const H = {
2169
2113
  actions: w,
2170
- name: k,
2171
- categories: N.filter((b) => b !== "other"),
2172
- description: _,
2114
+ name: b,
2115
+ categories: I.filter((y) => y !== "other"),
2116
+ description: P,
2173
2117
  quantumOwned: l
2174
2118
  };
2175
- g ? L = C({
2176
- id: g.id,
2177
- input: X
2178
- }) : L = a({
2179
- input: X
2180
- }), L.then(({ error: b }) => {
2181
- b ? c(b) : i();
2119
+ m ? k = A({
2120
+ id: m.id,
2121
+ input: H
2122
+ }) : k = c({
2123
+ input: H
2124
+ }), k.then(({ error: y }) => {
2125
+ y ? d(y) : r();
2182
2126
  });
2183
2127
  }, [
2184
- a,
2185
- C,
2186
- w,
2187
- k,
2188
- _,
2189
- N,
2190
- g,
2191
- i,
2192
2128
  c,
2193
- l
2129
+ A,
2130
+ w,
2131
+ b,
2132
+ P,
2133
+ I,
2134
+ m,
2135
+ r,
2136
+ d
2194
2137
  ]);
2195
- return ne(() => {
2196
- v && v({
2197
- cancelButton: h || r,
2198
- saveButton: h || r || !k || _.trim().split(/\s+/).filter(Boolean).length > 40
2138
+ return V(() => {
2139
+ g && g({
2140
+ cancelButton: x || o,
2141
+ saveButton: x || o || !b || P.trim().split(/\s+/).filter(Boolean).length > 40
2199
2142
  });
2200
- }, [v, h, r, w, k, _]), ne(() => {
2201
- d && d({
2202
- cancelButton: n,
2203
- saveButton: M
2143
+ }, [g, x, o, w, b, P]), V(() => {
2144
+ u && u({
2145
+ cancelButton: s,
2146
+ saveButton: $
2204
2147
  });
2205
- }, [d, n, M]), /* @__PURE__ */ e.jsxs(Y, { width: "100%", children: [
2148
+ }, [u, s, $]), /* @__PURE__ */ e.jsxs(q, { width: "100%", children: [
2206
2149
  /* @__PURE__ */ e.jsx(
2207
- an,
2150
+ rs,
2208
2151
  {
2209
- name: k,
2210
- setName: T,
2211
- actions: p,
2152
+ name: b,
2153
+ setName: O,
2154
+ actions: j,
2212
2155
  selectedActionIds: w,
2213
- setSelectedActionIds: G,
2214
- availableCategories: A ?? [],
2215
- selectedCategoryIds: N,
2216
- setSelectedCategoryIds: E,
2217
- description: _,
2218
- setDescription: f
2156
+ setSelectedActionIds: S,
2157
+ availableCategories: p ?? [],
2158
+ selectedCategoryIds: I,
2159
+ setSelectedCategoryIds: D,
2160
+ description: P,
2161
+ setDescription: ee
2219
2162
  }
2220
2163
  ),
2221
- !u && /* @__PURE__ */ e.jsx(te, { justifyContent: "flex-start", children: /* @__PURE__ */ e.jsxs(xe, { mt: 16, gap: 4, children: [
2164
+ !i && /* @__PURE__ */ e.jsx(X, { justifyContent: "flex-start", children: /* @__PURE__ */ e.jsxs(me, { mt: 16, gap: 4, children: [
2222
2165
  /* @__PURE__ */ e.jsx(
2223
2166
  J,
2224
2167
  {
2225
2168
  colorScheme: "gray",
2226
- isDisabled: h || r,
2227
- onClick: n,
2169
+ isDisabled: x || o,
2170
+ onClick: s,
2228
2171
  children: "Cancel"
2229
2172
  }
2230
2173
  ),
@@ -2232,9 +2175,9 @@ const Jt = ({
2232
2175
  J,
2233
2176
  {
2234
2177
  colorScheme: "blue",
2235
- isDisabled: h || r || !k || _.trim().split(/\s+/).filter(Boolean).length > 40,
2236
- isLoading: h || r,
2237
- onClick: M,
2178
+ isDisabled: x || o || !b || P.trim().split(/\s+/).filter(Boolean).length > 40,
2179
+ isLoading: x || o,
2180
+ onClick: $,
2238
2181
  children: "Save"
2239
2182
  }
2240
2183
  )
@@ -2242,12 +2185,12 @@ const Jt = ({
2242
2185
  ] });
2243
2186
  };
2244
2187
  export {
2245
- ln as ActivityList,
2246
- kn as CopyActivityForm,
2247
- Rn as CopyModuleForm,
2248
- an as ModuleForm,
2249
- mn as ParameterEditList,
2250
- gn as ParameterEditSelect,
2251
- En as UpsertActivityForm,
2252
- zn as UpsertModuleForm
2188
+ os as ActivityList,
2189
+ Ns as CopyActivityForm,
2190
+ Rs as CopyModuleForm,
2191
+ rs as ModuleForm,
2192
+ ds as ParameterEditList,
2193
+ hs as ParameterEditSelect,
2194
+ Ls as UpsertActivityForm,
2195
+ Fs as UpsertModuleForm
2253
2196
  };