quantum-component-library 1.4.47-dev.10 → 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 +1281 -1338
  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, S) => {
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, C = S.getClientOffset().y - p.top;
104
- r < a && C < g || r > a && C > 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 [S, r] = P([void 0, void 0]), a = S[0], p = S[1], g = v && n < -5 && i > 5, y = Number(c?.[0] ?? p ?? n) > 0 ? 1 : -1, C = 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), w = ye(Number(t), C), D = y < 0 ? Math.max(m, n) : Math.min(m, i), $ = C < 0 ? Math.max(w, n) : Math.min(w, 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, C, 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), C);
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, C]
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), w = b ? Number(p) : t(Number(p));
202
- m > w ? u([w, m]) : u([m, w]);
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: C < 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
- value: C,
367
- onChange: (b) => X(!1, b),
368
- isDisabled: G || A,
363
+ value: w,
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: S,
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, C] = 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: C,
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", ...S, 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, S] = 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), [, C] = 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), S([]);
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((w) => w.value);
620
- S(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
- ), w = {
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: w });
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 C({ 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
- [C]
666
- ), M = R(async () => {
667
- if (a(!0), !T.length) {
591
+ [w]
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 w = 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 w($);
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(""), S([]);
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", w = t instanceof Error ? t.message : `Failed to ${m} activities`;
701
- v({
702
- title: `${o === "copy" ? "Copy" : "Convert"} failed`,
703
- description: w,
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(w));
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(""), S([]), 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), S([]);
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((w) => w.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, S] = 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), [, C] = 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 w = 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: w.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((w) => w.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 (S(!0), !E.length) {
997
- S(!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 w of E)
932
+ let h = 0;
933
+ for (const f of D)
1008
934
  try {
1009
- let D = w.moduleActions.map(($) => $.actionId);
1010
- if (d) {
1011
- const $ = w.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: w.name,
1048
- description: w.description || void 0,
1049
- actions: D,
1050
- categories: w.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 C({
1053
- id: w.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: `${w.name} (Copy)`,
1067
- description: w.description || void 0,
1068
- actions: D,
1069
- categories: w.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 "${w.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 w = 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 ? `${w} of ${D} modules ${r === "convert" ? "converted" : "copied"} successfully` : `${w} module${w > 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
- S(!1);
1032
+ A(!1);
1111
1033
  }
1112
1034
  }, [
1113
- E,
1114
- y,
1035
+ D,
1115
1036
  C,
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({
1037
+ w,
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((w) => w.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]), S = F(() => i.reduce((y, C) => (y[C.id] = C, y), {}), [i]), r = F(
1355
- () => c.map((y) => S[y]),
1356
- [h, c]
1357
- ), a = R(
1358
- (y, C) => {
1359
- u(C ? [...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,92 +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,
1397
+ isDisabled: n.length === 0,
1476
1398
  isClearable: !0,
1477
- options: u,
1478
- value: c.filter((l) => n.includes(l.id)).map((l) => ({
1399
+ options: i,
1400
+ value: d.filter((l) => s.includes(l.id)).map((l) => ({
1479
1401
  value: l.id,
1480
1402
  label: l.name
1481
1403
  })),
1482
- onChange: (l) => i(l ? [l.value] : []),
1404
+ onChange: (l) => r(l ? [l.value] : []),
1483
1405
  placeholder: "Select category"
1484
1406
  }
1485
1407
  )
1486
1408
  ] });
1487
1409
  }
1488
- ), un = Oe(
1410
+ ), as = Ne(
1489
1411
  ({
1490
- description: s,
1491
- onInputChange: n
1492
- }) => /* @__PURE__ */ e.jsxs(q, { mb: 4, children: [
1493
- /* @__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: [
1494
1416
  "Description",
1495
- /* @__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." })
1496
1418
  ] }) }),
1497
1419
  /* @__PURE__ */ e.jsx(
1498
- je,
1420
+ Ie,
1499
1421
  {
1500
1422
  placeholder: "i.e. Assess readiness to return to play post-ACL reconstruction",
1501
- value: s,
1502
- onChange: n
1423
+ value: n,
1424
+ onChange: s
1503
1425
  }
1504
1426
  )
1505
1427
  ] })
1506
- ), hn = Oe(
1428
+ ), cs = Ne(
1507
1429
  ({
1508
- value: s,
1509
- onChange: n,
1510
- onAdjustActivities: i
1430
+ value: n,
1431
+ onChange: s,
1432
+ onAdjustActivities: r
1511
1433
  }) => {
1512
- const c = F(
1513
- () => s.map((u) => ({
1514
- id: u.id,
1515
- name: u.name
1434
+ const d = _(
1435
+ () => n.map((i) => ({
1436
+ id: i.id,
1437
+ name: i.name
1516
1438
  })),
1517
- [s]
1439
+ [n]
1518
1440
  );
1519
- return /* @__PURE__ */ e.jsxs(q, { mb: 4, children: [
1520
- /* @__PURE__ */ e.jsxs(te, { justifyContent: "space-between", children: [
1521
- /* @__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: [
1522
1444
  "Activities",
1523
- /* @__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." })
1524
1446
  ] }) }),
1525
1447
  /* @__PURE__ */ e.jsx(
1526
1448
  J,
@@ -1528,12 +1450,12 @@ const Jt = ({
1528
1450
  size: "sm",
1529
1451
  variant: "solid",
1530
1452
  colorScheme: "blue",
1531
- onClick: i,
1453
+ onClick: r,
1532
1454
  children: "Add / Remove Activities"
1533
1455
  }
1534
1456
  )
1535
1457
  ] }),
1536
- 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: [
1537
1459
  "No activities selected for this module.",
1538
1460
  /* @__PURE__ */ e.jsx(
1539
1461
  J,
@@ -1542,93 +1464,90 @@ const Jt = ({
1542
1464
  size: "sm",
1543
1465
  variant: "link",
1544
1466
  colorScheme: "blue",
1545
- onClick: i,
1467
+ onClick: r,
1546
1468
  children: "Add activities."
1547
1469
  }
1548
1470
  )
1549
1471
  ] }) }) : /* @__PURE__ */ e.jsx(
1550
1472
  Xt,
1551
1473
  {
1552
- value: c,
1553
- onChange: (u) => {
1554
- const l = u(c);
1555
- n(l.map((d) => d.id));
1474
+ value: d,
1475
+ onChange: (i) => {
1476
+ const l = i(d);
1477
+ s(l.map((u) => u.id));
1556
1478
  }
1557
1479
  }
1558
1480
  )
1559
1481
  ] });
1560
1482
  }
1561
- ), mn = ({
1562
- value: s,
1563
- onChange: n,
1564
- forceKind: i,
1565
- disableRemove: c,
1566
- disableKind: u,
1567
- isDisabled: l,
1568
- lockRanges: d,
1569
- ...v
1483
+ ), ds = ({
1484
+ value: n,
1485
+ onChange: s,
1486
+ forceKind: r,
1487
+ disableRemove: d,
1488
+ disableKind: i,
1489
+ lockRanges: l,
1490
+ ...u
1570
1491
  }) => {
1571
- const o = F(() => [...s].sort((h, S) => {
1572
- const r = Ge.indexOf(h.plane), a = Ge.indexOf(S.plane);
1573
- return r - a;
1574
- }), [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(
1575
- (h, S) => {
1576
- const r = o.findIndex(
1577
- (p) => p.id === S.id && p.plane === S.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
1578
1499
  );
1579
- let a = [...o];
1580
- i && (S = { ...S, kind: i }), a[r] = S, d && (a = a.map((p) => ({
1581
- ...p,
1582
- min: S.min,
1583
- max: S.max
1584
- }))), 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);
1585
1506
  },
1586
- [n, o, i, d]
1587
- ), A = R(
1588
- (h) => {
1589
- const S = o.filter(
1590
- (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
1591
1512
  );
1592
- n(S);
1513
+ s(x);
1593
1514
  },
1594
- [n, o]
1515
+ [s, g]
1595
1516
  );
1596
- return /* @__PURE__ */ e.jsx(ee, { alignItems: "flex-start", overflowY: "auto", ...v, children: o.map((h, S) => /* @__PURE__ */ e.jsx(
1597
- pn,
1517
+ return /* @__PURE__ */ e.jsx(Z, { alignItems: "flex-start", overflowY: "auto", ...u, children: g.map((p, x) => /* @__PURE__ */ e.jsx(
1518
+ us,
1598
1519
  {
1599
- label: I(h),
1600
- parameter: h,
1601
- onChange: (r) => j(S, r),
1602
- onRemove: c || l ? void 0 : () => A(h),
1603
- forceKind: i,
1604
- disableKind: u || l,
1605
- 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
1606
1526
  },
1607
- `${JSON.stringify(h.id)}-${h.plane}`
1527
+ `${JSON.stringify(p.id)}-${p.plane}`
1608
1528
  )) });
1609
- }, pn = ({
1610
- label: s,
1611
- parameter: n,
1612
- onChange: i,
1613
- onRemove: c,
1614
- forceKind: u,
1615
- disableKind: l,
1616
- isDisabled: d
1529
+ }, us = ({
1530
+ label: n,
1531
+ parameter: s,
1532
+ onChange: r,
1533
+ onRemove: d,
1534
+ forceKind: i,
1535
+ disableKind: l
1617
1536
  }) => {
1618
- const v = R(
1619
- (j) => "joint" in n.id ? Wt(
1620
- n.id.joint,
1621
- n.plane,
1622
- 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
1623
1542
  ) : Qt(
1624
- n.id.segment,
1625
- n.plane,
1626
- j < 0 ? -1 : 1
1543
+ s.id.segment,
1544
+ s.plane,
1545
+ M < 0 ? -1 : 1
1627
1546
  ),
1628
- [n]
1629
- ), { 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 };
1630
1549
  return /* @__PURE__ */ e.jsxs(
1631
- ee,
1550
+ Z,
1632
1551
  {
1633
1552
  borderRadius: "md",
1634
1553
  p: 2,
@@ -1638,33 +1557,33 @@ const Jt = ({
1638
1557
  overflow: "hidden",
1639
1558
  flexShrink: "0",
1640
1559
  children: [
1641
- /* @__PURE__ */ e.jsxs(te, { w: "100%", children: [
1560
+ /* @__PURE__ */ e.jsxs(X, { w: "100%", children: [
1642
1561
  /* @__PURE__ */ e.jsx(
1643
- x,
1562
+ v,
1644
1563
  {
1645
1564
  fontSize: "sm",
1646
1565
  flex: 1,
1647
1566
  textTransform: "capitalize",
1648
1567
  fontWeight: "semibold",
1649
- children: s
1568
+ children: n
1650
1569
  }
1651
1570
  ),
1652
- c && !d && /* @__PURE__ */ e.jsx(
1571
+ d && /* @__PURE__ */ e.jsx(
1653
1572
  wt,
1654
1573
  {
1655
1574
  size: "xs",
1656
1575
  variant: "ghost",
1657
1576
  "aria-label": "delete",
1658
- icon: /* @__PURE__ */ e.jsx(Ue, { as: Mt }),
1659
- onClick: c
1577
+ icon: /* @__PURE__ */ e.jsx(Qe, { as: Tt }),
1578
+ onClick: d
1660
1579
  }
1661
1580
  ),
1662
- !u && /* @__PURE__ */ e.jsx(
1663
- Zt,
1581
+ !i && /* @__PURE__ */ e.jsx(
1582
+ _e,
1664
1583
  {
1665
- selectedItem: n?.kind ?? we.Limit,
1666
- onChange: ({ value: j }) => i({ ...n, kind: j }),
1667
- isDisabled: l || d,
1584
+ selectedItem: s?.kind ?? we.Limit,
1585
+ onChange: ({ value: M }) => r({ ...s, kind: M }),
1586
+ isDisabled: l,
1668
1587
  buttonProps: {
1669
1588
  size: "sm",
1670
1589
  variant: "outline",
@@ -1686,423 +1605,450 @@ const Jt = ({
1686
1605
  {
1687
1606
  w: "100%",
1688
1607
  size: "xs",
1689
- min: o,
1690
- max: I,
1608
+ min: g,
1609
+ max: a,
1691
1610
  zeroMarker: !0,
1692
- value: [n.min, n.max],
1693
- onChange: (j) => i({ ...n, min: j[0], max: j[1] }),
1694
- formatValue: (j) => `${Math.abs(j)}°`,
1695
- valueLabel: (j) => v(j) ?? "",
1696
- positiveNegativeLabels: v(0) ? [v(-1) ?? "", v(1) ?? ""] : void 0,
1697
- 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
1698
1616
  }
1699
1617
  )
1700
1618
  ]
1701
1619
  }
1702
1620
  );
1703
- }, be = (s, n) => "segment" in s && "segment" in n && s.segment === n.segment || "joint" in s && "joint" in n && s.joint === n.joint, gn = ({
1704
- options: s,
1705
- value: n,
1706
- onChange: i,
1707
- forceKind: c,
1708
- 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,
1709
1627
  singleValueSideless: l,
1710
- editOnly: d,
1711
- disableKind: v,
1712
- maxParameters: o,
1713
- ...I
1628
+ editOnly: u,
1629
+ disableKind: g,
1630
+ maxParameters: a,
1631
+ ...M
1714
1632
  }) => {
1715
- const j = l ? 2 : o, A = F(
1716
- () => s.map((a) => ({
1717
- label: "segment" in a.id ? it(a.id.segment, a.plane, !0) ?? "Unknown" : lt(a.id.joint, a.plane, !0) ?? "Unknown",
1718
- value: a.id,
1719
- 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
1720
1638
  })),
1721
- [s]
1722
- ), h = F(() => {
1723
- if (!l || n.length === 0)
1724
- return A;
1725
- const a = n[0];
1726
- return A.filter(
1727
- (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
1728
1646
  );
1729
- }, [A, n, l]), S = F(
1730
- () => A.filter(
1731
- (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)
1732
1650
  ),
1733
- [A, n]
1734
- ), r = R(
1735
- (a) => {
1736
- const p = a.map((g) => {
1737
- const y = n.find(
1738
- (N) => be(N.id, g.value) && N.plane === g.plane
1739
- ), C = s.find(
1740
- (N) => be(N.id, g.value) && N.plane === g.plane
1741
- ), G = l ? n.find(
1742
- (N) => ve(N.id) === ve(g.value) && N.plane === g.plane
1743
- ) : void 0, k = G && !y ? G.min : C && C.min ? C.min : 0, T = G && !y ? G.max : C && C.max ? C.max : 0;
1744
- return y ?? {
1745
- id: g.value,
1746
- plane: g.plane,
1747
- min: k,
1748
- max: T,
1749
- 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
1750
1668
  };
1751
1669
  });
1752
- i(p);
1670
+ r(j);
1753
1671
  },
1754
- [i, n, s, c, l]
1672
+ [r, s, n, d, l]
1755
1673
  );
1756
- return ne(() => {
1757
- const a = n.filter(
1758
- (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)
1759
1677
  );
1760
- a.length !== n.length && i(a);
1761
- }, [s, i]), /* @__PURE__ */ e.jsxs(Y, { ...I, children: [
1678
+ c.length !== s.length && r(c);
1679
+ }, [n, r]), /* @__PURE__ */ e.jsxs(q, { ...M, children: [
1762
1680
  /* @__PURE__ */ e.jsx(
1763
- se,
1681
+ ie,
1764
1682
  {
1765
- isMulti: !u,
1766
- placeholder: n.length ? `${n.length} selected` : "Search...",
1767
- value: S,
1768
- isDisabled: d || S.length >= (j ?? 1 / 0),
1769
- onChange: (a) => Array.isArray(a) ? r([...a]) : r(a !== null ? [a] : []),
1770
- 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,
1771
1689
  controlShouldRenderValue: !1
1772
1690
  }
1773
1691
  ),
1774
1692
  /* @__PURE__ */ e.jsx(
1775
- mn,
1693
+ ds,
1776
1694
  {
1777
1695
  marginTop: 2,
1778
1696
  maxH: "28rem",
1779
- value: n,
1780
- onChange: i,
1781
- forceKind: c,
1782
- disableKind: v,
1783
- isDisabled: d,
1697
+ value: s,
1698
+ onChange: r,
1699
+ forceKind: d,
1700
+ disableKind: g,
1784
1701
  lockRanges: l
1785
1702
  }
1786
1703
  )
1787
1704
  ] });
1788
- }, at = (s) => {
1789
- switch (s) {
1790
- case W.Thorax:
1705
+ }, ct = (n) => {
1706
+ switch (n) {
1707
+ case z.Thorax:
1791
1708
  return "Thorax";
1792
- case W.CenterBack:
1709
+ case z.CenterBack:
1793
1710
  return "Center Back";
1794
- case W.Pelvis:
1711
+ case z.Pelvis:
1795
1712
  return "Pelvis";
1796
- case W.LeftThigh:
1713
+ case z.LeftThigh:
1797
1714
  return "Left Thigh";
1798
- case W.RightThigh:
1715
+ case z.RightThigh:
1799
1716
  return "Right Thigh";
1800
- case W.LeftShank:
1717
+ case z.LeftShank:
1801
1718
  return "Left Shank";
1802
- case W.RightShank:
1719
+ case z.RightShank:
1803
1720
  return "Right Shank";
1804
- case W.LeftFoot:
1721
+ case z.LeftFoot:
1805
1722
  return "Left Foot";
1806
- case W.RightFoot:
1723
+ case z.RightFoot:
1807
1724
  return "Right Foot";
1808
- case W.LeftUpperArm:
1725
+ case z.LeftUpperArm:
1809
1726
  return "Left Upper Arm";
1810
- case W.RightUpperArm:
1727
+ case z.RightUpperArm:
1811
1728
  return "Right Upper Arm";
1812
- case W.LeftForearm:
1729
+ case z.LeftForearm:
1813
1730
  return "Left Forearm";
1814
- case W.RightForearm:
1731
+ case z.RightForearm:
1815
1732
  return "Right Forearm";
1816
- case W.Head:
1733
+ case z.Head:
1817
1734
  return "Head";
1818
1735
  }
1819
- return console.warn(`Unknown sensor location: ${s}`), "Unknown";
1820
- }, xn = 6, jn = [
1821
- W.LeftFoot,
1822
- W.LeftShank,
1823
- W.LeftThigh,
1824
- W.Pelvis,
1825
- W.RightFoot,
1826
- W.RightShank,
1827
- W.RightThigh,
1828
- W.Thorax,
1829
- W.CenterBack,
1830
- W.Head
1831
- ], fn = jn.map((s) => ({
1832
- label: at(s),
1833
- value: s
1834
- })), Qe = (s, n) => s.map((i) => ({ label: n ? n(i) : i, value: i })), En = ({
1835
- id: s,
1836
- onError: n,
1837
- onCancel: i,
1838
- onSave: c,
1839
- 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,
1840
1759
  setButtonOnClick: l,
1841
- setButtonDisabled: d,
1842
- quantumOwned: v,
1843
- isView: o
1760
+ setButtonDisabled: u,
1761
+ quantumOwned: g
1844
1762
  }) => {
1845
- const [{ fetching: I }, j] = oe(De), [{ fetching: A }, h] = oe(Nt), [{ data: S }] = le({
1846
- query: Lt,
1847
- variables: { id: s ?? "" },
1848
- pause: !s
1849
- }), r = U(
1850
- ae,
1851
- S?.getActionById
1852
- ), a = I || A, p = !!r && !!s, [g, y] = P(""), [C, G] = P(""), [k, T] = P(""), [N, E] = P(""), [_, f] = P(), [M, L] = P([]), [X, b] = P([]), [z, Z] = P([]), t = F(
1853
- () => X.map((O) => O.value),
1854
- [X]
1855
- ), m = Yt(t), [{ data: w }] = le({
1856
- query: rt
1857
- }), D = F(() => U(
1858
- me,
1859
- w?.moduleCategories
1860
- )?.map((H) => ({
1861
- label: H.name,
1862
- value: H.id
1863
- })), [w?.moduleCategories]), $ = F(
1864
- () => Qe(Object.values(Pt), Pe),
1865
- []
1866
- ), [Q, K] = P([]), B = g.length > 0, [ce, Ie] = P({});
1867
- ne(() => {
1868
- if (r) {
1869
- const O = U(
1870
- me,
1871
- r.categories
1872
- ), H = {
1873
- name: r.name,
1874
- activityType: r.activityType ?? void 0,
1875
- description: r.description || "",
1876
- cameraPlacement: r.cameraPlacement || "",
1877
- videoLink: r.videoLink || "",
1878
- sessionType: r.sessionType.map((V) => ({
1879
- label: Pe(V),
1880
- value: V
1881
- })),
1882
- categories: O?.map((V) => V.id) || [],
1883
- sensorLocations: r.sensorLocations.map((V) => ({
1884
- label: at(V),
1885
- value: V
1886
- })),
1887
- thresholds: qt(r.thresholds)
1888
- };
1889
- 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);
1890
- }
1891
- }, [r]);
1892
- const pe = F(
1893
- () => JSON.stringify(ce) !== JSON.stringify({
1894
- name: g,
1895
- description: C,
1896
- cameraPlacement: k,
1897
- videoLink: N,
1898
- activityType: _,
1899
- sessionType: M.map((O) => O.value),
1900
- categories: z,
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,
1813
+ description: w,
1814
+ instructionsPointOfInterest: b,
1815
+ instructionsMovementReport: I,
1816
+ sensorLocations: t,
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,
1901
1829
  sensorLocations: t,
1902
- thresholds: We(Q)
1830
+ thresholds: Ee(f),
1831
+ useCases: De(L),
1832
+ activityKind: $
1903
1833
  }),
1904
1834
  [
1905
- ce,
1906
- g,
1835
+ de,
1836
+ m,
1837
+ P,
1907
1838
  t,
1908
- C,
1909
- k,
1910
- N,
1911
- _,
1912
- M,
1913
- z,
1914
- Q
1839
+ w,
1840
+ I,
1841
+ b,
1842
+ f,
1843
+ L,
1844
+ $
1915
1845
  ]
1916
- ), de = R(() => {
1917
- const O = {
1918
- name: g,
1919
- description: C,
1920
- cameraPlacement: k,
1921
- videoLink: N,
1922
- activityType: _,
1923
- activityKind: Bt(_),
1924
- sessionType: M.map((V) => V.value),
1925
- categories: z,
1846
+ ), pe = N(() => {
1847
+ const R = {
1848
+ name: m,
1849
+ laterality: P,
1850
+ description: w,
1851
+ instructionsPointOfInterest: b,
1852
+ instructionsMovementReport: I,
1926
1853
  sensorLocations: t,
1927
- thresholds: We(Q),
1928
- // Backend requires laterality; keep existing default since UI no longer edits it
1929
- laterality: _t.Either,
1930
- quantumOwned: v
1854
+ thresholds: Ee(f),
1855
+ useCases: De(L),
1856
+ activityKind: $,
1857
+ quantumOwned: g
1931
1858
  };
1932
- let H;
1933
- p && s ? H = h({
1934
- id: s,
1935
- fields: O
1936
- }) : H = j({
1937
- fields: O
1938
- }), H.then(({ error: V }) => {
1939
- 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();
1940
1867
  });
1941
1868
  }, [
1942
- v,
1943
- j,
1944
- h,
1945
- s,
1946
1869
  g,
1870
+ T,
1871
+ x,
1872
+ n,
1873
+ m,
1874
+ P,
1947
1875
  t,
1948
- C,
1949
- k,
1950
- N,
1951
- _,
1952
- M,
1953
- z,
1954
- p,
1955
- Q,
1956
- c,
1957
- n
1876
+ d,
1877
+ w,
1878
+ I,
1879
+ b,
1880
+ j,
1881
+ f,
1882
+ L,
1883
+ $,
1884
+ s
1958
1885
  ]);
1959
- return ne(() => {
1960
- d && d({
1961
- cancelButton: a,
1962
- saveButton: o ? !0 : a || !B || !pe
1886
+ return V(() => {
1887
+ u && u({
1888
+ cancelButton: c,
1889
+ saveButton: c || !Y || !le
1963
1890
  });
1964
- }, [a, d, B, pe, o]), ne(() => {
1891
+ }, [c, u, Y, le]), V(() => {
1965
1892
  l && l({
1966
- cancelButton: i,
1967
- saveButton: o ? () => {
1968
- } : de
1893
+ cancelButton: r,
1894
+ saveButton: pe
1969
1895
  });
1970
- }, [l, i, de, o]), console.log(B, pe, a, ce), /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-2 gap-4 w-full", children: [
1971
- /* @__PURE__ */ e.jsxs("div", { className: "col-span-2 lg:col-span-1 flex flex-col gap-4", children: [
1972
- /* @__PURE__ */ e.jsxs(q, { children: [
1973
- /* @__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" }),
1974
1900
  /* @__PURE__ */ e.jsx(
1975
- je,
1901
+ Ie,
1976
1902
  {
1977
- value: g,
1978
- onChange: (O) => y(O.target.value),
1903
+ value: m,
1904
+ onChange: (R) => C(R.target.value),
1979
1905
  type: "text",
1980
- placeholder: "i.e. Lunge & Return",
1981
- isDisabled: o
1906
+ placeholder: "i.e. Lunge & Return"
1982
1907
  }
1983
1908
  )
1984
1909
  ] }),
1985
- /* @__PURE__ */ e.jsxs(q, { children: [
1986
- /* @__PURE__ */ e.jsx(ie, { children: "Activity Type" }),
1987
- /* @__PURE__ */ e.jsx(
1988
- se,
1989
- {
1990
- isClearable: !0,
1991
- isMulti: !1,
1992
- value: _ ? {
1993
- label: _e(_),
1994
- value: _
1995
- } : null,
1996
- onChange: (O) => f(O?.value),
1997
- options: Qe(
1998
- Object.values(Gt),
1999
- _e
2000
- ),
2001
- placeholder: "(optional) Select activity type",
2002
- isDisabled: o
2003
- }
2004
- )
2005
- ] }),
2006
- /* @__PURE__ */ e.jsxs(q, { children: [
2007
- /* @__PURE__ */ e.jsx(ie, { children: "Camera Placement" }),
2008
- /* @__PURE__ */ e.jsx(
2009
- $e,
2010
- {
2011
- value: k,
2012
- onChange: (O) => T(O.target.value),
2013
- rows: 2,
2014
- placeholder: "(optional) Describe camera setup, placement, angles",
2015
- isDisabled: o
2016
- }
2017
- )
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
+ ] })
2018
1967
  ] }),
2019
- /* @__PURE__ */ e.jsxs(q, { children: [
2020
- /* @__PURE__ */ e.jsx(ie, { children: "Video Link" }),
1968
+ /* @__PURE__ */ e.jsxs(W, { children: [
1969
+ /* @__PURE__ */ e.jsx(ne, { children: "Use Cases" }),
2021
1970
  /* @__PURE__ */ e.jsx(
2022
- je,
1971
+ Xe,
2023
1972
  {
2024
- value: N,
2025
- onChange: (O) => E(O.target.value),
2026
- type: "url",
2027
- placeholder: "(optional) https://...",
2028
- 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
+ ) })
2029
1990
  }
2030
1991
  )
2031
1992
  ] }),
2032
- /* @__PURE__ */ e.jsxs(q, { children: [
2033
- /* @__PURE__ */ e.jsx(ie, { children: "Description" }),
1993
+ /* @__PURE__ */ e.jsxs(W, { children: [
1994
+ /* @__PURE__ */ e.jsx(ne, { children: "Description" }),
2034
1995
  /* @__PURE__ */ e.jsx(
2035
- $e,
1996
+ Le,
2036
1997
  {
2037
- value: C,
2038
- onChange: (O) => G(O.target.value),
1998
+ value: w,
1999
+ onChange: (R) => S(R.target.value),
2039
2000
  rows: 2,
2040
- placeholder: "(optional) Describe how to perform the test or exercise",
2041
- isDisabled: o
2001
+ placeholder: "(optional) Describe how to perform the test or exercise"
2042
2002
  }
2043
2003
  )
2044
2004
  ] }),
2045
- /* @__PURE__ */ e.jsxs(q, { children: [
2046
- /* @__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" }),
2047
2007
  /* @__PURE__ */ e.jsx(
2048
- se,
2008
+ Le,
2049
2009
  {
2050
- isMulti: !0,
2051
- value: D?.filter(
2052
- (O) => z.includes(O.value)
2053
- ),
2054
- onChange: (O) => Z(
2055
- (O ?? []).map(
2056
- (H) => H.value
2057
- )
2058
- ),
2059
- options: D,
2060
- placeholder: "Select one or more categories",
2061
- 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"
2062
2014
  }
2063
2015
  )
2064
2016
  ] }),
2065
- /* @__PURE__ */ e.jsxs(q, { children: [
2066
- /* @__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" }),
2067
2019
  /* @__PURE__ */ e.jsx(
2068
- se,
2020
+ Le,
2069
2021
  {
2070
- isMulti: !0,
2071
- value: M,
2072
- onChange: (O) => L(
2073
- O ?? []
2074
- ),
2075
- options: $,
2076
- placeholder: "Select one or more session types",
2077
- 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"
2078
2026
  }
2079
2027
  )
2080
2028
  ] })
2081
2029
  ] }),
2082
- /* @__PURE__ */ e.jsxs("div", { className: "col-span-2 lg:col-span-1 flex flex-col gap-4", children: [
2083
- /* @__PURE__ */ e.jsxs(q, { children: [
2084
- /* @__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" }),
2085
2033
  /* @__PURE__ */ e.jsx(
2086
- se,
2034
+ ie,
2087
2035
  {
2088
2036
  isMulti: !0,
2089
- value: X,
2090
- onChange: (O) => b([...O]),
2091
- options: fn,
2092
- isOptionDisabled: () => X.length >= xn,
2093
- isDisabled: o
2037
+ value: H,
2038
+ onChange: (R) => y([...R]),
2039
+ options: gs,
2040
+ isOptionDisabled: () => H.length >= ms
2094
2041
  }
2095
2042
  )
2096
2043
  ] }),
2097
- /* @__PURE__ */ e.jsxs(q, { children: [
2098
- /* @__PURE__ */ e.jsx(ie, { children: "Default Parameters" }),
2044
+ /* @__PURE__ */ e.jsxs(W, { children: [
2045
+ /* @__PURE__ */ e.jsx(ne, { children: "Default Parameters" }),
2099
2046
  /* @__PURE__ */ e.jsx(
2100
- gn,
2047
+ hs,
2101
2048
  {
2102
- options: m,
2103
- value: Q,
2104
- onChange: K,
2105
- editOnly: o
2049
+ options: h,
2050
+ value: f,
2051
+ onChange: F
2106
2052
  }
2107
2053
  )
2108
2054
  ] })
@@ -2110,19 +2056,16 @@ const Jt = ({
2110
2056
  /* @__PURE__ */ e.jsx(
2111
2057
  "div",
2112
2058
  {
2113
- className: Ht(
2114
- "col-span-2 flex justify-end",
2115
- (u || o) && "hidden"
2116
- ),
2117
- children: /* @__PURE__ */ e.jsxs(xe, { mt: 16, gap: 4, children: [
2118
- /* @__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" }),
2119
2062
  /* @__PURE__ */ e.jsx(
2120
2063
  J,
2121
2064
  {
2122
2065
  colorScheme: "blue",
2123
- isDisabled: a || !B || !pe,
2124
- isLoading: a,
2125
- onClick: de,
2066
+ isDisabled: c || !Y || !le,
2067
+ isLoading: c,
2068
+ onClick: pe,
2126
2069
  children: "Save changes"
2127
2070
  }
2128
2071
  )
@@ -2130,101 +2073,101 @@ const Jt = ({
2130
2073
  }
2131
2074
  )
2132
2075
  ] });
2133
- }, ie = ({ children: s }) => /* @__PURE__ */ e.jsx(Be, { fontWeight: "bold", fontFamily: "sans-serif", fontSize: "large", children: s }), zn = ({
2134
- id: s,
2135
- onCancel: n,
2136
- onSave: i,
2137
- onError: c,
2138
- 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,
2139
2082
  quantumOwned: l,
2140
- setButtonOnClick: d,
2141
- setButtonDisabled: v
2083
+ setButtonOnClick: u,
2084
+ setButtonDisabled: g
2142
2085
  }) => {
2143
- const [{ data: o }] = le({
2144
- query: l ? Dt : Ft
2145
- }), [{ data: I }] = le({
2146
- query: kt,
2147
- variables: { id: s },
2148
- pause: !s
2149
- }), [{ data: j }] = le({
2150
- query: rt
2151
- }), A = U(
2152
- me,
2153
- j?.moduleCategories
2154
- ), [{ fetching: h }, S] = oe(st), [{ fetching: r }, a] = oe(ot), p = U(
2155
- ae,
2156
- l ? o?.quantumOwnedActions : o?.actions
2157
- ) ?? [], g = U(Ce, I?.module), y = U(nt, g?.moduleActions) ?? [], [C, G] = P([
2158
- ...y.map((L) => L.actionId) ?? []
2159
- ]), [k, T] = P(g?.name ?? ""), [N, E] = P([]), [_, f] = P(g?.description ?? "");
2160
- ne(() => {
2161
- g && (G(y.map((L) => L.actionId)), T(g.name), f(g.description ?? ""), E(
2162
- g.categories.map(
2163
- (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
2164
2107
  ) ?? []
2165
2108
  ));
2166
- }, [g, y]);
2167
- const M = R(() => {
2168
- let L;
2169
- const X = {
2170
- actions: C,
2171
- name: k,
2172
- categories: N.filter((b) => b !== "other"),
2173
- description: _,
2109
+ }, [m, C]);
2110
+ const $ = N(() => {
2111
+ let k;
2112
+ const H = {
2113
+ actions: w,
2114
+ name: b,
2115
+ categories: I.filter((y) => y !== "other"),
2116
+ description: P,
2174
2117
  quantumOwned: l
2175
2118
  };
2176
- g ? L = S({
2177
- id: g.id,
2178
- input: X
2179
- }) : L = a({
2180
- input: X
2181
- }), L.then(({ error: b }) => {
2182
- 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();
2183
2126
  });
2184
2127
  }, [
2185
- a,
2186
- S,
2187
- C,
2188
- k,
2189
- _,
2190
- N,
2191
- g,
2192
- i,
2193
- c
2128
+ c,
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, C, 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,
2212
- selectedActionIds: C,
2213
- setSelectedActionIds: G,
2214
- availableCategories: A ?? [],
2215
- selectedCategoryIds: N,
2216
- setSelectedCategoryIds: E,
2217
- description: _,
2218
- setDescription: f
2152
+ name: b,
2153
+ setName: O,
2154
+ actions: j,
2155
+ selectedActionIds: w,
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
  };