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

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