@ynput/ayon-frontend-shared 0.8.0 → 0.8.1

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.
@@ -1,46 +1,46 @@
1
- import { C as dt, S as pt, A as Ie, a as ft, T as mt, D as ht, b as gt, c as bt, d as Pe, e as Ae, f as wt, g as vt, h as yt, M as Et, F as St, i as kt, j as Ct, k as Ot, l as Tt, m as It, B as Pt, L as At, n as Dt, o as Rt, p as Vt, q as xt, r as Ft, s as _t } from "./chunks/ReviewablesSelector.es.js";
2
- import { t as ko, u as Co, v as Oo, w as To, x as Io, y as Po, z as Ao, E as Do, G as Ro, H as Vo, I as xo, J as Fo, K as _o, N as Lo, O as Mo, Q as No, P as Bo, U as Uo, R as $o, V as zo, W as Go, X as Ho, Y as Wo, Z as Yo, _ as jo, $ as Ko, a0 as qo, a1 as Qo, a2 as Xo, a3 as Jo, a4 as Zo, a5 as en, a6 as tn } from "./chunks/ReviewablesSelector.es.js";
3
- import { jsxs as N, jsx as p, Fragment as ae } from "react/jsx-runtime";
4
- import { useState as x, useRef as le, useCallback as K, useEffect as H, useMemo as U, createElement as Lt, useId as Mt, useContext as Nt } from "react";
5
- import { matchSorter as De } from "match-sorter";
6
- import { InputText as We, Icon as pe, Panel as Re, InputPassword as Bt, Button as Se, Section as Ut, SEARCH_FILTER_ID as $t } from "@ynput/ayon-react-components";
1
+ import { C as mt, S as ht, A as De, a as gt, T as bt, D as wt, b as vt, c as yt, d as Re, e as Ve, f as Et, g as St, h as kt, M as Ct, F as Ot, i as Tt, j as It, k as Pt, l as At, m as Dt, B as Rt, L as Vt, n as xt, o as Ft, p as _t, q as Lt, r as Mt, s as Nt } from "./chunks/ReviewablesSelector.es.js";
2
+ import { t as Ao, u as Do, v as Ro, w as Vo, x as xo, y as Fo, z as _o, E as Lo, G as Mo, H as No, I as Uo, J as Bo, K as $o, N as Go, O as zo, Q as Ho, P as Wo, U as Yo, R as jo, V as Ko, W as qo, X as Qo, Y as Xo, Z as Jo, _ as Zo, $ as en, a0 as tn, a1 as sn, a2 as an, a3 as on, a4 as nn, a5 as rn, a6 as ln } from "./chunks/ReviewablesSelector.es.js";
3
+ import { jsxs as L, jsx as p, Fragment as te } from "react/jsx-runtime";
4
+ import { useState as x, useRef as ie, useCallback as j, useEffect as H, useMemo as B, createElement as Ut, useId as Bt, useContext as $t } from "react";
5
+ import { matchSorter as xe } from "match-sorter";
6
+ import { InputText as je, Icon as pe, Panel as Ce, InputPassword as Gt, Button as Oe, Section as zt, SEARCH_FILTER_ID as Ht } from "@ynput/ayon-react-components";
7
7
  import ue from "clsx";
8
- import { B as an, a as on, S as nn } from "./chunks/SimpleForm.es.js";
9
- import { d as Ye, P as zt } from "./chunks/MetaWidget.es.js";
10
- import { A as ln, k as cn, l as un, m as dn, n as pn, L as fn, o as mn, q as hn, r as gn, s as bn } from "./chunks/MetaWidget.es.js";
11
- import { createPortal as Gt } from "react-dom";
12
- import { format as de, parseISO as je, isValid as Ke } from "date-fns";
13
- import { B as Ve, e as qe, g as ve, h as ye } from "./chunks/FilmstripEntityCard.es.js";
14
- import { $ as vn, j as yn, k as En, l as Sn, m as kn, n as Cn, o as On, q as Tn, A as In, C as Pn, a as An, r as Dn, D as Rn, s as Vn, t as xn, u as Fn, v as _n, w as Ln, x as Mn, F as Nn, y as Bn, I as Un, z as $n, E as zn, G as Gn, H as Hn, J as Wn, M as Yn, K as jn, L as Kn, N as qn, U as Qn, Y as Xn, O as Jn, P as Zn, Q as er, R as tr, d as sr, f as ar, S as or, T as nr, V as rr, W as lr, X as ir, Z as cr, _ as ur, a0 as dr, a1 as pr, a2 as fr, a3 as mr, a4 as hr, p as gr, a5 as br, a6 as wr, a7 as vr } from "./chunks/FilmstripEntityCard.es.js";
15
- import { c as Qe, q as Xe, b as Ht, ao as Je, ap as Ze, aq as Wt, s as Yt, u as et } from "./chunks/TableExportContextInstance.es.js";
16
- import { d as Er, D as Sr, z as kr } from "./chunks/TableExportContextInstance.es.js";
17
- import { p as jt, d as xe } from "./chunks/DeleteEntitiesConfirmDialog.es.js";
18
- import { e as Or, D as Tr, b as Ir, a as Pr, c as Ar, s as Dr } from "./chunks/DeleteEntitiesConfirmDialog.es.js";
19
- import { D as Vr } from "./chunks/DetailsDialog.es.js";
20
- import { q as Kt, r as qt, n as Qt } from "./chunks/Watchers.es.js";
21
- import { s as Fr, t as _r, v as Lr, R as Mr, c as Nr, b as Br, w as Ur, x as $r, W as zr, u as Gr } from "./chunks/Watchers.es.js";
22
- import { E as Wr, P as Yr } from "./chunks/EmptyPlaceholder.es.js";
23
- import { E as Kr, a as qr } from "./chunks/EmptyPlaceholderFlex.styled.es.js";
24
- import { I as Xr } from "./chunks/InfoMessage.es.js";
25
- import { J as Zr } from "./chunks/JsonViewer.es.js";
26
- import { E as tl, a as sl, R as al, g as ol } from "./chunks/EntityPath.es.js";
27
- import { a as rl, E as ll } from "./chunks/EntityTooltip.es.js";
28
- import { a as Fe, bB as _e, bA as Xt, bD as Jt } from "./chunks/searchTerms.es.js";
29
- import { bQ as Zt, bV as es, cC as ts, aO as ss, aT as as, bL as os, bs as ns, dv as rs, cp as ls, cb as is, cf as cs, bT as us } from "./chunks/getUris.es.js";
8
+ import { B as un, a as dn, S as pn } from "./chunks/SimpleForm.es.js";
9
+ import { d as Ke, P as Wt } from "./chunks/MetaWidget.es.js";
10
+ import { A as mn, k as hn, l as gn, m as bn, n as wn, L as vn, o as yn, q as En, r as Sn, s as kn } from "./chunks/MetaWidget.es.js";
11
+ import { createPortal as Yt } from "react-dom";
12
+ import { format as de, parseISO as qe, isValid as Qe } from "date-fns";
13
+ import { B as Fe, e as Xe, g as Ee, h as Se } from "./chunks/FilmstripEntityCard.es.js";
14
+ import { $ as On, j as Tn, k as In, l as Pn, m as An, n as Dn, o as Rn, q as Vn, A as xn, C as Fn, a as _n, r as Ln, D as Mn, s as Nn, t as Un, u as Bn, v as $n, w as Gn, x as zn, F as Hn, y as Wn, I as Yn, z as jn, E as Kn, G as qn, H as Qn, J as Xn, M as Jn, K as Zn, L as er, N as tr, U as sr, Y as ar, O as or, P as nr, Q as rr, R as ir, d as lr, f as cr, S as ur, T as dr, V as pr, W as fr, X as mr, Z as hr, _ as gr, a0 as br, a1 as wr, a2 as vr, a3 as yr, a4 as Er, p as Sr, a5 as kr, a6 as Cr, a7 as Or } from "./chunks/FilmstripEntityCard.es.js";
15
+ import { c as Je, q as Ze, b as jt, ar as et, av as tt, ax as Kt, s as qt, u as st } from "./chunks/TableExportContextInstance.es.js";
16
+ import { d as Ir, D as Pr, z as Ar } from "./chunks/TableExportContextInstance.es.js";
17
+ import { p as Qt, d as _e } from "./chunks/DeleteEntitiesConfirmDialog.es.js";
18
+ import { e as Rr, D as Vr, b as xr, a as Fr, c as _r, s as Lr } from "./chunks/DeleteEntitiesConfirmDialog.es.js";
19
+ import { D as Nr } from "./chunks/DetailsDialog.es.js";
20
+ import { q as Xt, r as Jt, n as Zt } from "./chunks/Watchers.es.js";
21
+ import { s as Br, t as $r, v as Gr, R as zr, c as Hr, b as Wr, w as Yr, x as jr, W as Kr, u as qr } from "./chunks/Watchers.es.js";
22
+ import { E as Xr, P as Jr } from "./chunks/EmptyPlaceholder.es.js";
23
+ import { E as ei, a as ti } from "./chunks/EmptyPlaceholderFlex.styled.es.js";
24
+ import { I as ai } from "./chunks/InfoMessage.es.js";
25
+ import { J as ni } from "./chunks/JsonViewer.es.js";
26
+ import { E as ii, a as li, R as ci, g as ui } from "./chunks/EntityPath.es.js";
27
+ import { a as pi, E as fi } from "./chunks/EntityTooltip.es.js";
28
+ import { a as Le, bB as Me, bA as es, bD as ts } from "./chunks/searchTerms.es.js";
29
+ import { bQ as ss, bV as as, cC as os, aO as ns, aT as rs, bL as is, bs as ls, dv as cs, cp as us, cb as ds, cf as ps, bT as fs } from "./chunks/getUris.es.js";
30
30
  export * from "primereact/confirmdialog";
31
31
  import "@module-federation/enhanced/runtime";
32
- import { loadPiece as ds, pieceContext as ps, reportContributionError as Le } from "@ynput/ayon-addon/host";
32
+ import { loadPiece as ms, pieceContext as hs, reportContributionError as Ne, menuItemsAt as Ue } from "@ynput/ayon-addon/host";
33
33
  import { toast as Q } from "react-toastify";
34
- import { isEmpty as fs, upperFirst as me } from "lodash";
34
+ import { isEmpty as gs, upperFirst as me } from "lodash";
35
35
  import "uuid";
36
- import { a as ms } from "./chunks/afterStartup.es.js";
37
- import Me from "axios";
36
+ import { a as bs } from "./chunks/afterStartup.es.js";
37
+ import Be from "axios";
38
38
  import "semver";
39
39
  import "./chunks/ContextMenuContextInstance.es.js";
40
- import { useSearchParams as hs, useLocation as gs, useNavigate as tt, useParams as bs } from "react-router-dom";
41
- import { F as ws } from "./chunks/addonColumnTags.es.js";
42
- import { C as ul, S as dl, b as pl, u as fl } from "./chunks/addonColumnTags.es.js";
43
- import { F as hl } from "./chunks/FilterErrorActions.es.js";
40
+ import { useSearchParams as ws, useLocation as vs, useNavigate as at, useParams as ys } from "react-router-dom";
41
+ import { F as Es } from "./chunks/addonColumnTags.es.js";
42
+ import { C as gi, S as bi, b as wi, u as vi } from "./chunks/addonColumnTags.es.js";
43
+ import { F as Ei } from "./chunks/FilterErrorActions.es.js";
44
44
  import "lexical";
45
45
  import "@lexical/markdown";
46
46
  import "@lexical/code";
@@ -50,57 +50,57 @@ import "@lexical/selection";
50
50
  import "@lexical/utils";
51
51
  import "@lexical/react/LexicalBlockWithAlignableContents";
52
52
  import "@lexical/react/LexicalDecoratorBlockNode";
53
- import { m as bl, r as wl, a as vl, u as yl } from "./chunks/useDateRangeFilter.es.js";
54
- import { T as Sl } from "./chunks/TableSettingsFallback.es.js";
55
- import { useContributions as st, ContributionView as ke, ProjectPageLayout as vs, Slicer as ys, prefetchPiece as Ne, runContribution as Es } from "@ynput/ayon-addon";
56
- import { useDispatch as Ss } from "react-redux";
57
- import ks from "remark-gfm";
58
- import Cs from "react-markdown";
59
- import { Splitter as Os, SplitterPanel as Be } from "primereact/splitter";
60
- import { o as Ts, h as Is, e as Ps } from "./chunks/Slicer.es.js";
61
- import { p as Cl, q as Ol } from "./chunks/Slicer.es.js";
53
+ import { m as ki, r as Ci, a as Oi, u as Ti } from "./chunks/useDateRangeFilter.es.js";
54
+ import { T as Pi } from "./chunks/TableSettingsFallback.es.js";
55
+ import { useContributions as we, ContributionView as ve, ProjectPageLayout as Ss, Slicer as ks, prefetchPiece as Te, runContribution as ot } from "@ynput/ayon-addon";
56
+ import { useDispatch as Cs } from "react-redux";
57
+ import Os from "remark-gfm";
58
+ import Ts from "react-markdown";
59
+ import { Splitter as Is, SplitterPanel as $e } from "primereact/splitter";
60
+ import { o as Ps, h as As, e as Ds } from "./chunks/Slicer.es.js";
61
+ import { p as Di, q as Ri } from "./chunks/Slicer.es.js";
62
62
  import "./chunks/NewEntityContextInstance.es.js";
63
- import { V as As } from "./chunks/VersionUploadContextInstance.es.js";
64
- import { u as Il, a as Pl } from "./chunks/VersionUploadContextInstance.es.js";
63
+ import { V as Rs } from "./chunks/VersionUploadContextInstance.es.js";
64
+ import { u as xi, a as Fi } from "./chunks/VersionUploadContextInstance.es.js";
65
65
  import "@tanstack/react-table";
66
- import { M as at, a as ot } from "./chunks/Menu.es.js";
67
- import { b as Dl, c as Rl, d as Vl } from "./chunks/Menu.es.js";
68
- import { A as Ds, f as Rs } from "./chunks/SimpleTable.es.js";
69
- import { s as Fl, g as _l } from "./chunks/SimpleTable.es.js";
70
- import { e as Vs, E as xs } from "./chunks/EntityPickerDialog.es.js";
71
- import { T as Ml } from "./chunks/EntityPickerDialog.es.js";
66
+ import { M as nt, a as rt } from "./chunks/Menu.es.js";
67
+ import { b as Li, c as Mi, d as Ni } from "./chunks/Menu.es.js";
68
+ import { A as Vs, f as xs } from "./chunks/SimpleTable.es.js";
69
+ import { s as Bi, g as $i } from "./chunks/SimpleTable.es.js";
70
+ import { e as Fs, E as _s } from "./chunks/EntityPickerDialog.es.js";
71
+ import { T as zi } from "./chunks/EntityPickerDialog.es.js";
72
72
  import { g as re } from "./chunks/getEntityTypeIcon.es.js";
73
73
  import { g as q } from "./chunks/iconUtils.es.js";
74
- import { C as Bl, T as Ul } from "./chunks/ThumbnailSimple.es.js";
75
- import { S as zl } from "./chunks/SimpleFormDialog.es.js";
76
- import { e as Fs } from "./chunks/extractVersionFromFilename.es.js";
77
- import { b as _s, c as Ls, v as Ms } from "./chunks/versionUploadHelpers.es.js";
78
- import { p as Ns } from "./chunks/parseFilename.es.js";
79
- import { C as Hl } from "./chunks/ColumnHeaderMenuUI.es.js";
80
- const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
74
+ import { C as Wi, T as Yi } from "./chunks/ThumbnailSimple.es.js";
75
+ import { S as Ki } from "./chunks/SimpleFormDialog.es.js";
76
+ import { e as Ls } from "./chunks/extractVersionFromFilename.es.js";
77
+ import { b as Ms, c as Ns, v as Us } from "./chunks/versionUploadHelpers.es.js";
78
+ import { p as Bs } from "./chunks/parseFilename.es.js";
79
+ import { C as Qi } from "./chunks/ColumnHeaderMenuUI.es.js";
80
+ const Ge = 500, $s = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, eo = ({
81
81
  shareOptions: e,
82
82
  existingAccess: t,
83
83
  owner: n,
84
- placeholder: l = "Add people or access groups",
85
- disabled: o = !1,
86
- mode: s = "internal",
87
- onSelectOption: a,
88
- pt: h,
89
- ...i
84
+ placeholder: r = "Add people or access groups",
85
+ disabled: s = !1,
86
+ mode: a = "internal",
87
+ onSelectOption: o,
88
+ pt: u,
89
+ ...l
90
90
  }) => {
91
- const [d, c] = x(""), [S, y] = x(!1), [T, g] = x(-1), V = le(null), O = e.filter((C) => !t.includes(C.value)).toSorted((C, b) => {
92
- const v = (f) => f.value === "__everyone__" ? 0 : f.value.startsWith("__") ? 1 : f.value.startsWith("team:") ? 2 : f.value.startsWith("group:") ? 3 : f.value.startsWith("user:") ? 4 : 5, k = v(C), r = v(b);
93
- return k !== r ? k - r : C.label.localeCompare(b.label);
94
- }), w = (d ? De(O, d, {
91
+ const [f, c] = x(""), [S, y] = x(!1), [T, g] = x(-1), V = ie(null), O = e.filter((C) => !t.includes(C.value)).toSorted((C, b) => {
92
+ const v = (m) => m.value === "__everyone__" ? 0 : m.value.startsWith("__") ? 1 : m.value.startsWith("team:") ? 2 : m.value.startsWith("group:") ? 3 : m.value.startsWith("user:") ? 4 : 5, k = v(C), i = v(b);
93
+ return k !== i ? k - i : C.label.localeCompare(b.label);
94
+ }), w = (f ? xe(O, f, {
95
95
  keys: ["name", "label", "value"],
96
- threshold: De.rankings.CONTAINS
97
- }) : O).slice(0, Ue), D = Bs.test(d) && !e.some((C) => C.name === d) && s === "external", R = () => {
96
+ threshold: xe.rankings.CONTAINS
97
+ }) : O).slice(0, Ge), D = $s.test(f) && !e.some((C) => C.name === f) && a === "external", R = () => {
98
98
  y(!0), g(-1);
99
- }, L = () => {
99
+ }, M = () => {
100
100
  setTimeout(() => {
101
101
  y(!1), g(-1);
102
102
  }, 200);
103
- }, B = (C) => {
103
+ }, U = (C) => {
104
104
  c(C.target.value), g(-1), y(!0);
105
105
  }, F = (C) => {
106
106
  if (!S || w.length === 0) {
@@ -122,42 +122,42 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
122
122
  break;
123
123
  }
124
124
  }, $ = (C) => {
125
- a(C, 10), c(""), y(!1), g(-1), V.current?.focus();
125
+ o(C, 10), c(""), y(!1), g(-1), V.current?.focus();
126
126
  }, W = () => {
127
- a(
127
+ o(
128
128
  {
129
- name: d,
130
- label: d,
131
- value: d,
129
+ name: f,
130
+ label: f,
131
+ value: f,
132
132
  shareType: "guest"
133
133
  },
134
134
  10
135
135
  ), c(""), y(!1), g(-1), V.current?.focus();
136
136
  };
137
- return /* @__PURE__ */ N(dt, { ...i, children: [
137
+ return /* @__PURE__ */ L(mt, { ...l, children: [
138
138
  /* @__PURE__ */ p(
139
- We,
139
+ je,
140
140
  {
141
141
  ref: V,
142
- value: d,
143
- placeholder: l,
144
- disabled: o,
142
+ value: f,
143
+ placeholder: r,
144
+ disabled: s,
145
145
  onFocus: R,
146
146
  onClick: R,
147
- onBlur: L,
148
- onChange: B,
147
+ onBlur: M,
148
+ onChange: U,
149
149
  onKeyDown: F,
150
150
  style: { width: "100%" }
151
151
  }
152
152
  ),
153
- S && (w.length > 0 || D) && /* @__PURE__ */ N(
154
- pt,
153
+ S && (w.length > 0 || D) && /* @__PURE__ */ L(
154
+ ht,
155
155
  {
156
- ...h?.list,
157
- className: ue(h?.list?.className, { "no-owner": !n }),
156
+ ...u?.list,
157
+ className: ue(u?.list?.className, { "no-owner": !n }),
158
158
  children: [
159
159
  w.map((C, b) => /* @__PURE__ */ p(
160
- Ie,
160
+ De,
161
161
  {
162
162
  name: C.name,
163
163
  label: C.label,
@@ -175,10 +175,10 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
175
175
  C.value
176
176
  )),
177
177
  D && /* @__PURE__ */ p(
178
- Ie,
178
+ De,
179
179
  {
180
- name: d,
181
- label: d,
180
+ name: f,
181
+ label: f,
182
182
  shareType: "guest",
183
183
  isOwner: !1,
184
184
  isMe: !1,
@@ -191,32 +191,32 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
191
191
  isSearchResult: !0
192
192
  }
193
193
  ),
194
- w.length === Ue && /* @__PURE__ */ p("li", { className: "tip", children: "More than 500 results, please refine your search..." })
194
+ w.length === Ge && /* @__PURE__ */ p("li", { className: "tip", children: "More than 500 results, please refine your search..." })
195
195
  ]
196
196
  }
197
197
  )
198
198
  ] });
199
- }, Ja = {
199
+ }, to = {
200
200
  0: "No access",
201
201
  10: "Viewer",
202
202
  20: "Editor",
203
203
  30: "Admin"
204
- }, $e = (e) => {
204
+ }, ze = (e) => {
205
205
  if (!e) return "";
206
206
  try {
207
- const t = je(e);
208
- if (Ke(t))
209
- return qe(t, "yyyy-MM-dd");
207
+ const t = qe(e);
208
+ if (Qe(t))
209
+ return Xe(t, "yyyy-MM-dd");
210
210
  } catch {
211
211
  return "";
212
212
  }
213
213
  return "";
214
- }, ze = (e, t) => {
214
+ }, He = (e, t) => {
215
215
  if (!e) return null;
216
216
  try {
217
- const n = je(e);
218
- if (Ke(n))
219
- return qe(n, t);
217
+ const n = qe(e);
218
+ if (Qe(n))
219
+ return Xe(n, t);
220
220
  } catch {
221
221
  return null;
222
222
  }
@@ -224,32 +224,32 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
224
224
  }, ne = (e) => {
225
225
  if (!e) return null;
226
226
  try {
227
- const [t, n, l] = e.split("-").map(Number);
228
- if (t && n && l)
229
- return new Date(Date.UTC(t, n - 1, l)).toISOString();
227
+ const [t, n, r] = e.split("-").map(Number);
228
+ if (t && n && r)
229
+ return new Date(Date.UTC(t, n - 1, r)).toISOString();
230
230
  } catch {
231
231
  return null;
232
232
  }
233
233
  return null;
234
- }, Za = ({
234
+ }, so = ({
235
235
  value: e,
236
236
  onChange: t,
237
237
  emptyTrigger: n,
238
- valueTrigger: l,
239
- align: o = "left",
240
- disabled: s = !1,
241
- className: a,
242
- displayFormat: h = "MMM d",
243
- minDate: i,
244
- maxDate: d,
238
+ valueTrigger: r,
239
+ align: s = "left",
240
+ disabled: a = !1,
241
+ className: o,
242
+ displayFormat: u = "MMM d",
243
+ minDate: l,
244
+ maxDate: f,
245
245
  pt: c
246
246
  }) => {
247
- const [S, y] = x(!1), [T, g] = x(""), [V, O] = x(""), w = le(null), D = le(null), R = le(null), L = le(null), B = e.startDate || e.endDate, F = K(() => {
247
+ const [S, y] = x(!1), [T, g] = x(""), [V, O] = x(""), w = ie(null), D = ie(null), R = ie(null), M = ie(null), U = e.startDate || e.endDate, F = j(() => {
248
248
  const E = ne(T), _ = ne(V);
249
249
  (E !== e.startDate || _ !== e.endDate) && t({ startDate: E, endDate: _ }), y(!1);
250
250
  }, [T, V, e.startDate, e.endDate, t]);
251
251
  H(() => {
252
- S && (g($e(e.startDate)), O($e(e.endDate)), !e.startDate && !e.endDate && setTimeout(() => {
252
+ S && (g(ze(e.startDate)), O(ze(e.endDate)), !e.startDate && !e.endDate && setTimeout(() => {
253
253
  try {
254
254
  R.current?.showPicker();
255
255
  } catch {
@@ -258,8 +258,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
258
258
  }, [S, e.startDate, e.endDate]), H(() => {
259
259
  if (!S) return;
260
260
  const E = (_) => {
261
- const z = _.target;
262
- w.current && !w.current.contains(z) && D.current && !D.current.contains(z) && F();
261
+ const G = _.target;
262
+ w.current && !w.current.contains(G) && D.current && !D.current.contains(G) && F();
263
263
  };
264
264
  return document.addEventListener("mousedown", E), () => document.removeEventListener("mousedown", E);
265
265
  }, [S, F]), H(() => {
@@ -272,74 +272,74 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
272
272
  const $ = (E) => {
273
273
  const _ = E.target.value;
274
274
  g(_);
275
- const z = ne(_), j = ne(V);
276
- if (z && j) {
277
- const X = new Date(z), oe = new Date(j);
275
+ const G = ne(_), K = ne(V);
276
+ if (G && K) {
277
+ const X = new Date(G), oe = new Date(K);
278
278
  X > oe && O(_);
279
279
  }
280
- z && setTimeout(() => {
280
+ G && setTimeout(() => {
281
281
  try {
282
- L.current?.showPicker();
282
+ M.current?.showPicker();
283
283
  } catch {
284
284
  }
285
285
  }, 100);
286
286
  }, W = (E) => {
287
287
  const _ = E.target.value;
288
288
  O(_);
289
- const z = ne(_), j = ne(T);
290
- let X = j, oe = z;
291
- if (z && j) {
292
- const te = new Date(j);
293
- new Date(z) < te && (g(_), X = z);
289
+ const G = ne(_), K = ne(T);
290
+ let X = K, oe = G;
291
+ if (G && K) {
292
+ const se = new Date(K);
293
+ new Date(G) < se && (g(_), X = G);
294
294
  }
295
295
  t({ startDate: X, endDate: oe });
296
296
  }, C = () => {
297
297
  g(""), O(""), t({ startDate: null, endDate: null }), y(!1);
298
298
  }, b = (E) => {
299
- E.stopPropagation(), s || (S ? F() : y(!0));
300
- }, v = S ? ne(T) : e.startDate, k = S ? ne(V) : e.endDate, r = ze(v, h), f = ze(k, h), u = r && f ? `${r} - ${f}` : r || f || "", m = () => {
299
+ E.stopPropagation(), a || (S ? F() : y(!0));
300
+ }, v = S ? ne(T) : e.startDate, k = S ? ne(V) : e.endDate, i = He(v, u), m = He(k, u), d = i && m ? `${i} - ${m}` : i || m || "", h = () => {
301
301
  if (!w.current) return { top: 0, left: 0 };
302
302
  const E = w.current.getBoundingClientRect();
303
303
  return {
304
304
  top: E.bottom + 4,
305
- left: o === "left" ? E.left : E.right
305
+ left: s === "left" ? E.left : E.right
306
306
  };
307
- }, I = () => B ? l ? l(e, u) : /* @__PURE__ */ p("span", { className: ue("date-value", c?.valueDisplay?.className), ...c?.valueDisplay, children: u }) : n || /* @__PURE__ */ p(vt, { icon: "calendar_add_on" }), P = m();
308
- return /* @__PURE__ */ N(
309
- ft,
307
+ }, I = () => U ? r ? r(e, d) : /* @__PURE__ */ p("span", { className: ue("date-value", c?.valueDisplay?.className), ...c?.valueDisplay, children: d }) : n || /* @__PURE__ */ p(St, { icon: "calendar_add_on" }), P = h();
308
+ return /* @__PURE__ */ L(
309
+ gt,
310
310
  {
311
311
  ...c?.root,
312
- className: ue(Ve, a, c?.root?.className),
312
+ className: ue(Fe, o, c?.root?.className),
313
313
  children: [
314
314
  /* @__PURE__ */ p(
315
- mt,
315
+ bt,
316
316
  {
317
317
  ref: w,
318
318
  onClick: b,
319
- disabled: s,
319
+ disabled: a,
320
320
  type: "button",
321
321
  ...c?.trigger,
322
- className: ue(B ? "has-value" : "empty", c?.trigger?.className),
322
+ className: ue(U ? "has-value" : "empty", c?.trigger?.className),
323
323
  children: I()
324
324
  }
325
325
  ),
326
- S && Gt(
326
+ S && Yt(
327
327
  /* @__PURE__ */ p(
328
- ht,
328
+ wt,
329
329
  {
330
330
  ref: D,
331
331
  style: {
332
332
  top: P.top,
333
- left: o === "left" ? P.left : "auto",
334
- right: o === "right" ? window.innerWidth - P.left : "auto",
333
+ left: s === "left" ? P.left : "auto",
334
+ right: s === "right" ? window.innerWidth - P.left : "auto",
335
335
  ...c?.dropdown?.style
336
336
  },
337
337
  onMouseDown: (E) => E.stopPropagation(),
338
338
  ...c?.dropdown,
339
- className: ue(Ve, o, c?.dropdown?.className),
340
- children: /* @__PURE__ */ N(gt, { className: c?.content?.className, ...c?.content, children: [
339
+ className: ue(Fe, s, c?.dropdown?.className),
340
+ children: /* @__PURE__ */ L(vt, { className: c?.content?.className, ...c?.content, children: [
341
341
  /* @__PURE__ */ p(
342
- bt,
342
+ yt,
343
343
  {
344
344
  icon: "close",
345
345
  variant: "text",
@@ -347,22 +347,22 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
347
347
  ...c?.closeButton
348
348
  }
349
349
  ),
350
- /* @__PURE__ */ N(
351
- Pe,
350
+ /* @__PURE__ */ L(
351
+ Re,
352
352
  {
353
353
  className: c?.startDate?.field?.className,
354
354
  ...c?.startDate?.field,
355
355
  children: [
356
356
  /* @__PURE__ */ p("label", { ...c?.startDate?.label, children: "Start date" }),
357
357
  /* @__PURE__ */ p(
358
- Ae,
358
+ Ve,
359
359
  {
360
360
  ref: R,
361
361
  type: "date",
362
362
  value: T,
363
363
  onChange: $,
364
- max: d ? de(d, "yyyy-MM-dd") : void 0,
365
- min: i ? de(i, "yyyy-MM-dd") : void 0,
364
+ max: f ? de(f, "yyyy-MM-dd") : void 0,
365
+ min: l ? de(l, "yyyy-MM-dd") : void 0,
366
366
  onClick: (E) => {
367
367
  try {
368
368
  E.currentTarget.showPicker();
@@ -375,17 +375,17 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
375
375
  ]
376
376
  }
377
377
  ),
378
- /* @__PURE__ */ N(Pe, { className: c?.endDate?.field?.className, ...c?.endDate?.field, children: [
378
+ /* @__PURE__ */ L(Re, { className: c?.endDate?.field?.className, ...c?.endDate?.field, children: [
379
379
  /* @__PURE__ */ p("label", { ...c?.endDate?.label, children: "End date" }),
380
380
  /* @__PURE__ */ p(
381
- Ae,
381
+ Ve,
382
382
  {
383
- ref: L,
383
+ ref: M,
384
384
  type: "date",
385
385
  value: V,
386
386
  onChange: W,
387
- max: d ? de(d, "yyyy-MM-dd") : void 0,
388
- min: T || (i ? de(i, "yyyy-MM-dd") : void 0),
387
+ max: f ? de(f, "yyyy-MM-dd") : void 0,
388
+ min: T || (l ? de(l, "yyyy-MM-dd") : void 0),
389
389
  onClick: (E) => {
390
390
  try {
391
391
  E.currentTarget.showPicker();
@@ -396,7 +396,7 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
396
396
  }
397
397
  )
398
398
  ] }),
399
- B && /* @__PURE__ */ p(wt, { onClick: C, variant: "text", ...c?.clearButton, children: "Clear dates" })
399
+ U && /* @__PURE__ */ p(Et, { onClick: C, variant: "text", ...c?.clearButton, children: "Clear dates" })
400
400
  ] })
401
401
  }
402
402
  ),
@@ -405,343 +405,343 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
405
405
  ]
406
406
  }
407
407
  );
408
- }, ie = {
408
+ }, le = {
409
409
  version: 1,
410
410
  name: "review",
411
411
  productType: "review"
412
- }, eo = ({
412
+ }, ao = ({
413
413
  children: e,
414
414
  projectName: t,
415
415
  onVersionCreated: n,
416
- dispatch: l
416
+ dispatch: r
417
417
  }) => {
418
- const [o, s] = x(""), [a, h] = x(""), [i, d] = x(null), [c, S] = x(null), [y, T] = x(!1), [g, V] = x([]), [O, w] = x(ie), [D, R] = x(!1), [L, B] = x(""), [F, $] = x(null), [W, C] = x(null), [b, v] = x(void 0), [k, r] = x(void 0), f = le(!1), u = le(null), { data: m = [], isLoading: I } = Zt(
419
- { projectName: t, folderId: o },
420
- { skip: !o || !y || !!a }
421
- ), P = U(() => {
422
- if (!(a || !O.name || m.length === 0))
423
- return m.find((A) => A.name === O.name);
424
- }, [a, O.name, m]), E = a || P?.id || "", { currentData: _ } = es(
418
+ const [s, a] = x(""), [o, u] = x(""), [l, f] = x(null), [c, S] = x(null), [y, T] = x(!1), [g, V] = x([]), [O, w] = x(le), [D, R] = x(!1), [M, U] = x(""), [F, $] = x(null), [W, C] = x(null), [b, v] = x(void 0), [k, i] = x(void 0), m = ie(!1), d = ie(null), { data: h = [], isLoading: I } = ss(
419
+ { projectName: t, folderId: s },
420
+ { skip: !s || !y || !!o }
421
+ ), P = B(() => {
422
+ if (!(o || !O.name || h.length === 0))
423
+ return h.find((A) => A.name === O.name);
424
+ }, [o, O.name, h]), E = o || P?.id || "", { currentData: _ } = as(
425
425
  {
426
426
  projectName: t,
427
- productId: a
427
+ productId: o
428
428
  },
429
- { skip: !a || !y || b != null }
430
- ), { data: z } = ts(
429
+ { skip: !o || !y || b != null }
430
+ ), { data: G } = os(
431
431
  { projectName: t, versionId: k },
432
- { skip: !k || !y || i !== null }
433
- ), j = i ?? z?.taskId ?? "", X = !!(k && i === null && !z), oe = K(
434
- ({ productId: A, folderId: M, taskId: G, linkedTask: se, latestVersionNumber: fe, latestVersionId: ct }) => {
435
- h(A || ""), s(M || ""), d(G || null), S(se || null), v(fe), r(ct), w((ut) => ({
436
- ...ut,
432
+ { skip: !k || !y || l !== null }
433
+ ), K = l ?? G?.taskId ?? "", X = !!(k && l === null && !G), oe = j(
434
+ ({ productId: A, folderId: N, taskId: z, linkedTask: ae, latestVersionNumber: fe, latestVersionId: pt }) => {
435
+ u(A || ""), a(N || ""), f(z || null), S(ae || null), v(fe), i(pt), w((ft) => ({
436
+ ...ft,
437
437
  ...fe != null ? { version: fe + 1 } : {}
438
438
  })), T(!0);
439
439
  },
440
440
  []
441
- ), te = K(() => {
441
+ ), se = j(() => {
442
442
  g.forEach((A) => {
443
443
  A.preview && URL.revokeObjectURL(A.preview);
444
- }), V([]), w(ie), $(null), C(null), B(""), R(!1), T(!1), h(""), s(""), d(null), S(null), f.current = !1, v(void 0), r(void 0);
445
- }, [g]), [we] = ss(), [he] = as(), J = K(
444
+ }), V([]), w(le), $(null), C(null), U(""), R(!1), T(!1), u(""), a(""), f(null), S(null), m.current = !1, v(void 0), i(void 0);
445
+ }, [g]), [ye] = ns(), [he] = rs(), J = j(
446
446
  async (A) => {
447
447
  try {
448
448
  if (E) {
449
- const M = await _s(he, t, {
449
+ const N = await Ms(he, t, {
450
450
  productId: E,
451
451
  version: A.version,
452
- taskId: j || void 0
452
+ taskId: K || void 0
453
453
  });
454
- return n(E, M.id), Q.success("Created new version"), {
454
+ return n(E, N.id), Q.success("Created new version"), {
455
455
  productId: E,
456
- versionId: M.id
456
+ versionId: N.id
457
457
  };
458
458
  } else {
459
- const { product: M, version: G } = await Ls(
460
- we,
459
+ const { product: N, version: z } = await Ns(
460
+ ye,
461
461
  he,
462
462
  t,
463
463
  {
464
- folderId: o,
464
+ folderId: s,
465
465
  name: A.name,
466
466
  productType: A.productType || "review",
467
467
  productBaseType: A.productType || "review"
468
468
  },
469
469
  {
470
470
  version: A.version,
471
- taskId: j || void 0
471
+ taskId: K || void 0
472
472
  }
473
473
  );
474
- return n(M.id, G.id), Q.success("Created new version"), {
475
- productId: M.id,
476
- versionId: G.id
474
+ return n(N.id, z.id), Q.success("Created new version"), {
475
+ productId: N.id,
476
+ versionId: z.id
477
477
  };
478
478
  }
479
- } catch (M) {
480
- throw console.error("Error uploading version:", M), M.message || M;
479
+ } catch (N) {
480
+ throw console.error("Error uploading version:", N), N.message || N;
481
481
  }
482
482
  },
483
- [te, E, o, j, t]
484
- ), ge = K(
483
+ [se, E, s, K, t]
484
+ ), ge = j(
485
485
  (A) => {
486
486
  if (E) return;
487
- const M = A[0];
488
- if (M) {
489
- const G = Ns(M.name), se = Fs(G);
490
- se && se !== O.version && w((fe) => ({
487
+ const N = A[0];
488
+ if (N) {
489
+ const z = Bs(N.name), ae = Ls(z);
490
+ ae && ae !== O.version && w((fe) => ({
491
491
  ...fe,
492
- version: se
492
+ version: ae
493
493
  }));
494
494
  }
495
495
  },
496
496
  [E, O.version]
497
- ), Z = _?.version ?? b ?? P?.latestVersion?.version, ee = K((A, M) => {
498
- w((G) => ({
499
- ...G,
500
- [A]: M
501
- })), B("");
502
- }, []), Oe = K(
497
+ ), Z = _?.version ?? b ?? P?.latestVersion?.version, ee = j((A, N) => {
498
+ w((z) => ({
499
+ ...z,
500
+ [A]: N
501
+ })), U("");
502
+ }, []), Pe = j(
503
503
  async (A) => {
504
504
  try {
505
- R(!0), B("");
506
- const M = Ms(A, Z, !E);
507
- if (!M.isValid)
508
- throw M.error;
509
- const G = await J(A);
510
- o && (u.current = { folderId: o, productName: A.name }), G?.productId && $(G.productId), G?.versionId && C(G.versionId), g.length < 1 && (R(!1), te());
511
- } catch (M) {
512
- B(M), R(!1);
505
+ R(!0), U("");
506
+ const N = Us(A, Z, !E);
507
+ if (!N.isValid)
508
+ throw N.error;
509
+ const z = await J(A);
510
+ s && (d.current = { folderId: s, productName: A.name }), z?.productId && $(z.productId), z?.versionId && C(z.versionId), g.length < 1 && (R(!1), se());
511
+ } catch (N) {
512
+ U(N), R(!1);
513
513
  }
514
514
  },
515
- [J, g.length, te, Z, E]
515
+ [J, g.length, se, Z, E]
516
516
  );
517
517
  H(() => {
518
518
  if (!(!y || b != null))
519
- return w(_ ? (A) => ({ ...A, version: _.version + 1 }) : ie), () => {
520
- w(ie);
519
+ return w(_ ? (A) => ({ ...A, version: _.version + 1 }) : le), () => {
520
+ w(le);
521
521
  };
522
522
  }, [y, _, b]), H(() => {
523
- if (!y || a || m.length === 0 || O.name !== ie.name) return;
524
- const A = u.current;
525
- if (A && A.folderId === o && m.some((se) => se.name === A.productName)) {
526
- w((se) => ({ ...se, name: A.productName }));
523
+ if (!y || o || h.length === 0 || O.name !== le.name) return;
524
+ const A = d.current;
525
+ if (A && A.folderId === s && h.some((ae) => ae.name === A.productName)) {
526
+ w((ae) => ({ ...ae, name: A.productName }));
527
527
  return;
528
528
  }
529
- const M = m[m.length - 1];
530
- M && w((G) => ({ ...G, name: M.name }));
531
- }, [y, a, m]), H(() => {
532
- if (!(!y || a))
529
+ const N = h[h.length - 1];
530
+ N && w((z) => ({ ...z, name: N.name }));
531
+ }, [y, o, h]), H(() => {
532
+ if (!(!y || o))
533
533
  if (P) {
534
- w((M) => ({
535
- ...M,
534
+ w((N) => ({
535
+ ...N,
536
536
  productType: P.productType,
537
537
  ...P.latestVersion && {
538
538
  version: P.latestVersion.version + 1
539
539
  }
540
540
  }));
541
541
  const A = P.latestVersion?.task;
542
- A && (i === null || f.current) ? (d(A.id), S({
542
+ A && (l === null || m.current) ? (f(A.id), S({
543
543
  id: A.id,
544
544
  name: A.name,
545
545
  label: A.label,
546
546
  taskType: A.taskType
547
- }), f.current = !0) : !A && f.current && (d(null), S(null), f.current = !1);
547
+ }), m.current = !0) : !A && m.current && (f(null), S(null), m.current = !1);
548
548
  } else
549
- w((A) => ({ ...A, version: ie.version })), (i === null || f.current) && (d(null), S(null), f.current = !1);
550
- }, [y, a, P]);
551
- const Te = K((A) => {
552
- d(A), f.current = !1;
553
- }, []), it = U(
549
+ w((A) => ({ ...A, version: le.version })), (l === null || m.current) && (f(null), S(null), m.current = !1);
550
+ }, [y, o, P]);
551
+ const Ae = j((A) => {
552
+ f(A), m.current = !1;
553
+ }, []), dt = B(
554
554
  () => ({
555
- productId: a,
556
- setProductId: h,
557
- folderId: o,
558
- taskId: j,
555
+ productId: o,
556
+ setProductId: u,
557
+ folderId: s,
558
+ taskId: K,
559
559
  linkedTask: c,
560
560
  isLoadingTask: X,
561
- setTaskId: Te,
561
+ setTaskId: Ae,
562
562
  setLinkedTask: S,
563
- setFolderId: s,
563
+ setFolderId: a,
564
564
  isOpen: y,
565
565
  projectName: t,
566
566
  latestVersion: Z,
567
567
  pendingFiles: g,
568
568
  setPendingFiles: V,
569
569
  onOpenVersionUpload: oe,
570
- onCloseVersionUpload: te,
570
+ onCloseVersionUpload: se,
571
571
  onUploadVersion: J,
572
572
  extractAndSetVersionFromFiles: ge,
573
573
  form: O,
574
574
  setForm: w,
575
575
  isSubmitting: D,
576
- error: L,
576
+ error: M,
577
577
  createdProductId: F,
578
578
  createdVersionId: W,
579
579
  handleFormChange: ee,
580
- handleFormSubmit: Oe,
581
- folderProducts: m,
580
+ handleFormSubmit: Pe,
581
+ folderProducts: h,
582
582
  isFolderProductsLoading: I,
583
583
  matchedProduct: P,
584
- dispatch: l
584
+ dispatch: r
585
585
  }),
586
586
  [
587
- o,
588
587
  s,
589
588
  a,
590
- j,
589
+ o,
590
+ K,
591
591
  c,
592
592
  X,
593
- Te,
593
+ Ae,
594
594
  S,
595
- h,
595
+ u,
596
596
  y,
597
597
  t,
598
598
  Z,
599
599
  g,
600
600
  V,
601
601
  oe,
602
- te,
602
+ se,
603
603
  J,
604
604
  ge,
605
605
  O,
606
606
  D,
607
- L,
607
+ M,
608
608
  F,
609
609
  W,
610
610
  ee,
611
- Oe,
612
- m,
611
+ Pe,
612
+ h,
613
613
  I,
614
614
  P,
615
- l
615
+ r
616
616
  ]
617
617
  );
618
- return /* @__PURE__ */ p(As.Provider, { value: it, children: e });
619
- }, to = ({ children: e }) => {
620
- const [t, n] = x(!1), { siteInfo: l, user: o, cloudInfo: s } = Qe(), { data: a, isLoading: h } = os(
618
+ return /* @__PURE__ */ p(Rs.Provider, { value: dt, children: e });
619
+ }, oo = ({ children: e }) => {
620
+ const [t, n] = x(!1), { siteInfo: r, user: s, cloudInfo: a } = Je(), { data: o, isLoading: u } = is(
621
621
  {},
622
622
  {
623
- skip: !o?.name || !s?.connected
623
+ skip: !s?.name || !a?.connected
624
624
  }
625
- ), i = () => {
626
- t || (ms(() => {
625
+ ), l = () => {
626
+ t || (bs(() => {
627
627
  if (document.getElementById("featurebase-sdk")) return;
628
- const u = document.createElement("script");
629
- u.src = "https://do.featurebase.app/js/sdk.js", u.id = "featurebase-sdk", u.async = !0, document.body.appendChild(u);
628
+ const d = document.createElement("script");
629
+ d.src = "https://do.featurebase.app/js/sdk.js", d.id = "featurebase-sdk", d.async = !0, document.body.appendChild(d);
630
630
  }), n(!0));
631
- }, d = () => {
632
- const u = window;
633
- typeof u.Featurebase != "function" && (u.Featurebase = function() {
634
- (u.Featurebase.q = u.Featurebase.q || []).push(arguments);
631
+ }, f = () => {
632
+ const d = window;
633
+ typeof d.Featurebase != "function" && (d.Featurebase = function() {
634
+ (d.Featurebase.q = d.Featurebase.q || []).push(arguments);
635
635
  });
636
- }, c = l?.version?.split("+")[0] || "unknown", S = l?.version?.split("+")[1] || "unknown", y = () => {
637
- if (!o?.name || !a?.available) return;
638
- const u = {
639
- ...a.data,
636
+ }, c = r?.version?.split("+")[0] || "unknown", S = r?.version?.split("+")[1] || "unknown", y = () => {
637
+ if (!s?.name || !o?.available) return;
638
+ const d = {
639
+ ...o.data,
640
640
  customFields: {
641
641
  origin: window.location.origin,
642
642
  serverVersion: c,
643
643
  frontendVersion: S,
644
- instanceId: s?.instanceId
644
+ instanceId: a?.instanceId
645
645
  }
646
646
  };
647
- console.log(u), window.Featurebase("identify", u, (I) => {
647
+ console.log(d), window.Featurebase("identify", d, (I) => {
648
648
  I ? console.error(I) : console.log("Featurebase identify completed");
649
649
  });
650
650
  }, [T, g] = x(!1), [V, O] = x(0), w = () => {
651
- const u = window;
652
- if (typeof u.Featurebase == "function") {
653
- if (console.log("Initializing Featurebase messenger widget"), !a?.available)
651
+ const d = window;
652
+ if (typeof d.Featurebase == "function") {
653
+ if (console.log("Initializing Featurebase messenger widget"), !o?.available)
654
654
  return console.warn("messenger verification not available, skipping messenger init");
655
- u.Featurebase(
655
+ d.Featurebase(
656
656
  "boot",
657
657
  {
658
658
  theme: "dark",
659
- ...a?.data
659
+ ...o?.data
660
660
  },
661
- (m) => {
662
- m ? console.error(m) : (console.log("Featurebase messenger completed"), g(!0), u.Featurebase("onUnreadCountChange", function(I) {
661
+ (h) => {
662
+ h ? console.error(h) : (console.log("Featurebase messenger completed"), g(!0), d.Featurebase("onUnreadCountChange", function(I) {
663
663
  O(I);
664
664
  }));
665
665
  }
666
666
  );
667
667
  }
668
668
  }, D = () => {
669
- const u = [];
670
- if (o?.data?.isAdmin) {
669
+ const d = [];
670
+ if (s?.data?.isAdmin) {
671
671
  const I = ["Server", "Addon", "Pipeline"];
672
- u.push(...I);
673
- } else l?.disableChangelog || u.push("Highlights");
674
- const m = window;
675
- return typeof m.Featurebase == "function" && m.Featurebase("init_changelog_widget", {
672
+ d.push(...I);
673
+ } else r?.disableChangelog || d.push("Highlights");
674
+ const h = window;
675
+ return typeof h.Featurebase == "function" && h.Featurebase("init_changelog_widget", {
676
676
  organization: "ayon",
677
677
  dropdown: {
678
678
  enabled: !0
679
679
  },
680
680
  popup: {
681
681
  enabled: !0,
682
- usersName: o?.attrib?.fullName,
682
+ usersName: s?.attrib?.fullName,
683
683
  autoOpenForNewUpdates: !0
684
684
  },
685
- category: u,
685
+ category: d,
686
686
  theme: "dark"
687
687
  }), !1;
688
688
  }, R = () => {
689
- const u = window;
690
- return typeof u.Featurebase == "function" && u.Featurebase(
689
+ const d = window;
690
+ return typeof d.Featurebase == "function" && d.Featurebase(
691
691
  "initialize_feedback_widget",
692
692
  {
693
693
  organization: "ayon",
694
694
  theme: "dark",
695
695
  metadata: {}
696
696
  },
697
- (m) => {
698
- m && console.error("Error initializing feedback widget:", m);
697
+ (h) => {
698
+ h && console.error("Error initializing feedback widget:", h);
699
699
  }
700
700
  ), !1;
701
- }, L = () => {
702
- const u = window;
703
- return typeof u.Featurebase == "function" && u.Featurebase(
701
+ }, M = () => {
702
+ const d = window;
703
+ return typeof d.Featurebase == "function" && d.Featurebase(
704
704
  "initialize_portal_widget",
705
705
  {
706
706
  organization: "ayon",
707
707
  fullScreen: !0,
708
708
  initialPage: "MainView"
709
709
  },
710
- (m) => m ? (console.error("Error initializing portal widget:", m), !1) : !0
710
+ (h) => h ? (console.error("Error initializing portal widget:", h), !1) : !0
711
711
  ), !1;
712
- }, B = () => {
713
- const u = window;
714
- return typeof u.Featurebase == "function" && u.Featurebase(
712
+ }, U = () => {
713
+ const d = window;
714
+ return typeof d.Featurebase == "function" && d.Featurebase(
715
715
  "initialize_survey_widget",
716
716
  {
717
717
  organization: "ayon",
718
718
  placement: "bottom-right",
719
719
  theme: "dark",
720
- email: o?.attrib?.email,
721
- featurebaseJwt: a?.data?.featurebaseJwt,
720
+ email: s?.attrib?.email,
721
+ featurebaseJwt: o?.data?.featurebaseJwt,
722
722
  locale: "en"
723
723
  },
724
- (m) => {
725
- m ? console.error("Error initializing survey widget:", m) : console.log("Survey widget initialized successfully");
724
+ (h) => {
725
+ h ? console.error("Error initializing survey widget:", h) : console.log("Survey widget initialized successfully");
726
726
  }
727
727
  ), !1;
728
728
  };
729
729
  H(() => {
730
- o?.name && l && (l.disableFeedback || t || (i(), d(), D(), R(), L()));
731
- }, [o?.name, t, l]);
730
+ s?.name && r && (r.disableFeedback || t || (l(), f(), D(), R(), M()));
731
+ }, [s?.name, t, r]);
732
732
  const [F, $] = x(!1);
733
733
  H(() => {
734
- !o?.name || !s || !a || !t || F || (y(), B(), $(!0));
734
+ !s?.name || !a || !o || !t || F || (y(), U(), $(!0));
735
735
  }, [
736
- o?.name,
737
- s?.instanceId,
738
- a?.available,
736
+ s?.name,
737
+ a?.instanceId,
738
+ o?.available,
739
739
  t,
740
740
  window.location.pathname,
741
741
  F
742
742
  ]), H(() => {
743
- h || !t || w();
744
- }, [a, h, t]);
743
+ u || !t || w();
744
+ }, [o, u, t]);
745
745
  const W = () => {
746
746
  window.postMessage({
747
747
  target: "FeaturebaseWidget",
@@ -749,27 +749,27 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
749
749
  action: "openFeedbackWidget"
750
750
  }
751
751
  });
752
- }, C = (u = "MainView", m) => {
752
+ }, C = (d = "MainView", h) => {
753
753
  window.postMessage({
754
754
  target: "FeaturebaseWidget",
755
755
  data: {
756
756
  action: "changePage",
757
- payload: u,
757
+ payload: d,
758
758
  openWidget: !0,
759
- ...m && { articleId: m }
759
+ ...h && { articleId: h }
760
760
  }
761
761
  });
762
- }, [b, v] = x(!1), k = document.getElementById("fb-messenger-root"), r = (u) => k instanceof HTMLElement && (k.style.display = u ? "block" : "none");
762
+ }, [b, v] = x(!1), k = document.getElementById("fb-messenger-root"), i = (d) => k instanceof HTMLElement && (k.style.display = d ? "block" : "none");
763
763
  H(() => {
764
- !t || !T || r(b);
764
+ !t || !T || i(b);
765
765
  }, [t, T, b]), H(() => {
766
766
  if (!t || !T) return;
767
- const u = window;
768
- typeof u.Featurebase == "function" && u.Featurebase("onHide", function() {
767
+ const d = window;
768
+ typeof d.Featurebase == "function" && d.Featurebase("onHide", function() {
769
769
  v(!1);
770
770
  });
771
771
  }, [t, T]);
772
- const f = (u = "Home", m) => {
772
+ const m = (d = "Home", h) => {
773
773
  const I = window;
774
774
  if (typeof I.Featurebase != "function") {
775
775
  window.alert("Featurebase SDK is not loaded yet. Please try again later."), console.warn("Featurebase SDK is not loaded yet.");
@@ -779,7 +779,7 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
779
779
  I.Featurebase("hide"), v(!1);
780
780
  return;
781
781
  }
782
- switch (v(!0), u) {
782
+ switch (v(!0), d) {
783
783
  case "Home":
784
784
  I.Featurebase("show");
785
785
  break;
@@ -793,10 +793,10 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
793
793
  I.Featurebase("show", "help");
794
794
  break;
795
795
  case "ShowArticle":
796
- m ? I.Featurebase("showArticle", m) : I.Featurebase("show", "help");
796
+ h ? I.Featurebase("showArticle", h) : I.Featurebase("show", "help");
797
797
  break;
798
798
  case "NewMessage":
799
- I.Featurebase("showNewMessage", m);
799
+ I.Featurebase("showNewMessage", h);
800
800
  break;
801
801
  default:
802
802
  I.Featurebase("show");
@@ -804,10 +804,10 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
804
804
  }
805
805
  };
806
806
  return /* @__PURE__ */ p(
807
- ws.Provider,
807
+ Es.Provider,
808
808
  {
809
809
  value: {
810
- openSupport: f,
810
+ openSupport: m,
811
811
  openFeedback: W,
812
812
  openPortal: C,
813
813
  messengerLoaded: T,
@@ -819,23 +819,23 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
819
819
  children: e
820
820
  }
821
821
  );
822
- }, so = ({
822
+ }, no = ({
823
823
  projectName: e,
824
824
  list: t,
825
825
  isLoading: n,
826
- attributes: l = []
826
+ attributes: r = []
827
827
  }) => {
828
- const [o, s] = x({
828
+ const [s, a] = x({
829
829
  label: "",
830
830
  tags: [],
831
831
  active: !1
832
- }), a = (t?.accessLevel || 0) >= 30, { tags: h } = Xe(), { data: i = [] } = ns(), d = U(
833
- () => i.filter((g) => g.scope?.includes("list")).map((g) => ({
832
+ }), o = (t?.accessLevel || 0) >= 30, { tags: u } = Ze(), { data: l = [] } = ls(), f = B(
833
+ () => l.filter((g) => g.scope?.includes("list")).map((g) => ({
834
834
  name: g.name,
835
835
  data: g.data
836
836
  })),
837
- [i]
838
- ), c = U(
837
+ [l]
838
+ ), c = B(
839
839
  () => [
840
840
  { name: "label", data: { type: "string", title: "Label" } },
841
841
  {
@@ -843,32 +843,32 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
843
843
  data: {
844
844
  type: "list_of_strings",
845
845
  title: "Tags",
846
- enum: h?.map((g) => ({ value: g.name, label: g.name, color: g.color })),
846
+ enum: u?.map((g) => ({ value: g.name, label: g.name, color: g.color })),
847
847
  enableCustomValues: !0,
848
848
  enableSearch: !0
849
849
  }
850
850
  },
851
- ...d,
851
+ ...f,
852
852
  { name: "active", data: { type: "boolean", title: "Active" } },
853
- ...l
853
+ ...r
854
854
  ],
855
- [h, d, l]
855
+ [u, f, r]
856
856
  );
857
857
  H(() => {
858
858
  if (t) {
859
- const g = t.attrib || {}, O = [...d, ...l].reduce((w, { name: D }) => {
859
+ const g = t.attrib || {}, O = [...f, ...r].reduce((w, { name: D }) => {
860
860
  const R = g[D];
861
861
  return w[D] = R || "", w;
862
862
  }, {});
863
- s({
863
+ a({
864
864
  label: t?.label || "",
865
865
  tags: t?.tags || [],
866
866
  active: t?.active ?? !1,
867
867
  ...O
868
868
  });
869
869
  }
870
- }, [t, JSON.stringify(l), JSON.stringify(d)]);
871
- const [S] = rs(), y = (g) => l.some((V) => V.name === g) || d.some((V) => V.name === g), T = K(
870
+ }, [t, JSON.stringify(r), JSON.stringify(f)]);
871
+ const [S] = cs(), y = (g) => r.some((V) => V.name === g) || f.some((V) => V.name === g), T = j(
872
872
  async (g, V) => {
873
873
  if (!t?.id) return console.warn("No list ID provided");
874
874
  let O;
@@ -884,10 +884,10 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
884
884
  ...w,
885
885
  [g]: V
886
886
  }
887
- }, s((D) => ({ ...D, [g]: V }));
887
+ }, a((D) => ({ ...D, [g]: V }));
888
888
  } else {
889
889
  const w = { [g]: V };
890
- O = w, s((D) => ({ ...D, ...w }));
890
+ O = w, a((D) => ({ ...D, ...w }));
891
891
  }
892
892
  try {
893
893
  await S({
@@ -899,26 +899,26 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
899
899
  console.error(w), Q.error("Failed to update list attribute: ", w.attrib.detail);
900
900
  }
901
901
  },
902
- [t?.id, t?.attrib, e, S, d, l]
902
+ [t?.id, t?.attrib, e, S, f, r]
903
903
  );
904
904
  return /* @__PURE__ */ p(
905
- Kt,
905
+ Xt,
906
906
  {
907
- enableEditing: a,
907
+ enableEditing: o,
908
908
  projectName: e,
909
909
  fields: c,
910
- form: o,
910
+ form: s,
911
911
  isLoading: n,
912
912
  onChange: T,
913
913
  title: "Attributes"
914
914
  }
915
915
  );
916
- }, ao = ({ list: e, isLoading: t }) => {
916
+ }, ro = ({ list: e, isLoading: t }) => {
917
917
  const n = Object.fromEntries(
918
918
  Object.entries(e?.data || {}).filter(
919
- ([s, a]) => !["category", "count"].includes(s) && a !== null && typeof a != "object"
919
+ ([a, o]) => !["category", "count"].includes(a) && o !== null && typeof o != "object"
920
920
  )
921
- ), l = {
921
+ ), r = {
922
922
  Id: e?.id,
923
923
  "Entity type": e?.entityType,
924
924
  "List type": e?.entityListType,
@@ -929,21 +929,21 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
929
929
  "Updated at": e?.updatedAt && de(new Date(e?.updatedAt), "PPpp"),
930
930
  "Last updated by": e?.updatedBy,
931
931
  ...n
932
- }, o = Object.keys(l).map((s) => ({
933
- name: s,
932
+ }, s = Object.keys(r).map((a) => ({
933
+ name: a,
934
934
  data: { type: "string" },
935
935
  hidden: !1
936
936
  }));
937
- return /* @__PURE__ */ p(qt, { form: l, fields: o, isLoading: !!t });
938
- }, oo = ({
937
+ return /* @__PURE__ */ p(Jt, { form: r, fields: s, isLoading: !!t });
938
+ }, io = ({
939
939
  label: e,
940
940
  description: t,
941
941
  features: n,
942
- isCloseable: l = !0,
943
- addon: o
942
+ isCloseable: r = !0,
943
+ addon: s
944
944
  }) => {
945
- const [s, a] = x(!1), { setPowerpackDialog: h, selectedPowerPack: i, powerpackDialog: d, addonDialog: c } = Ht(), S = !!o || !!c, y = e ?? d?.label ?? c?.label, T = t ?? d?.description ?? (c ? c.features[c.selectedFeature ?? ""]?.description ?? Object.values(c.features)[0]?.description : void 0), g = o?.icon ?? (c ? c.icon : "bolt");
946
- if (!d && !c && (!e || !t)) return null;
945
+ const [a, o] = x(!1), { setPowerpackDialog: u, selectedPowerPack: l, powerpackDialog: f, addonDialog: c } = jt(), S = !!s || !!c, y = e ?? f?.label ?? c?.label, T = t ?? f?.description ?? (c ? c.features[c.selectedFeature ?? ""]?.description ?? Object.values(c.features)[0]?.description : void 0), g = s?.icon ?? (c ? c.icon : "bolt");
946
+ if (!f && !c && (!e || !t)) return null;
947
947
  const O = (() => {
948
948
  if (n)
949
949
  return Object.entries(n);
@@ -952,140 +952,140 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
952
952
  (R) => [R, c.features[R]]
953
953
  );
954
954
  if (c.selectedFeature) {
955
- const R = D.findIndex(([L]) => L === c.selectedFeature);
955
+ const R = D.findIndex(([M]) => M === c.selectedFeature);
956
956
  if (R > 0) {
957
- const [L] = D.splice(R, 1);
958
- D.unshift(L);
957
+ const [M] = D.splice(R, 1);
958
+ D.unshift(M);
959
959
  }
960
960
  }
961
961
  return D;
962
962
  }
963
- return Object.entries(jt).sort(([D], [R]) => {
964
- if (D === i) return -1;
965
- if (R === i) return 1;
966
- const L = xe.indexOf(D), B = xe.indexOf(R);
967
- return L > -1 && B > -1 ? L - B : L > -1 ? -1 : B > -1 ? 1 : 0;
963
+ return Object.entries(Qt).sort(([D], [R]) => {
964
+ if (D === l) return -1;
965
+ if (R === l) return 1;
966
+ const M = _e.indexOf(D), U = _e.indexOf(R);
967
+ return M > -1 && U > -1 ? M - U : M > -1 ? -1 : U > -1 ? 1 : 0;
968
968
  });
969
969
  })();
970
- return /* @__PURE__ */ N(
971
- yt,
970
+ return /* @__PURE__ */ L(
971
+ kt,
972
972
  {
973
973
  isOpen: !0,
974
974
  onClose: () => {
975
- l && (h(null), a(!1));
975
+ r && (u(null), o(!1));
976
976
  },
977
977
  size: "lg",
978
- hideCancelButton: !l,
979
- hideBackdrop: !l,
978
+ hideCancelButton: !r,
979
+ hideBackdrop: !r,
980
980
  children: [
981
- /* @__PURE__ */ N(Et, { children: [
982
- /* @__PURE__ */ N("h1", { children: [
981
+ /* @__PURE__ */ L(Ct, { children: [
982
+ /* @__PURE__ */ L("h1", { children: [
983
983
  /* @__PURE__ */ p(pe, { icon: g }),
984
984
  y
985
985
  ] }),
986
986
  /* @__PURE__ */ p("h2", { children: T })
987
987
  ] }),
988
- /* @__PURE__ */ N(St, { children: [
989
- S ? /* @__PURE__ */ N("h3", { children: [
988
+ /* @__PURE__ */ L(Ot, { children: [
989
+ S ? /* @__PURE__ */ L("h3", { children: [
990
990
  "Unlock all ",
991
991
  /* @__PURE__ */ p("span", { className: "green", children: "Premium Addons" }),
992
992
  " with an AYON Studio subscription."
993
- ] }) : /* @__PURE__ */ N("h3", { children: [
993
+ ] }) : /* @__PURE__ */ L("h3", { children: [
994
994
  "Unlock all ",
995
995
  /* @__PURE__ */ p(pe, { icon: "bolt" }),
996
996
  " ",
997
997
  /* @__PURE__ */ p("span", { className: "green", children: "Power Features" }),
998
998
  " with an AYON subscription."
999
999
  ] }),
1000
- /* @__PURE__ */ p("ul", { children: O.slice(0, s ? void 0 : 5).map(([D, R]) => /* @__PURE__ */ N("li", { children: [
1000
+ /* @__PURE__ */ p("ul", { children: O.slice(0, a ? void 0 : 5).map(([D, R]) => /* @__PURE__ */ L("li", { children: [
1001
1001
  /* @__PURE__ */ p(pe, { icon: R.icon ?? "check" }),
1002
1002
  /* @__PURE__ */ p("span", { children: R.bullet })
1003
1003
  ] }, D)) }),
1004
- !s && O.length > 5 && /* @__PURE__ */ p(kt, { onClick: () => a(!0), children: "Show all" })
1004
+ !a && O.length > 5 && /* @__PURE__ */ p(Tt, { onClick: () => o(!0), children: "Show all" })
1005
1005
  ] }),
1006
- /* @__PURE__ */ p(Ct, { addon: o?.name, children: /* @__PURE__ */ p(Ot, {}) })
1006
+ /* @__PURE__ */ p(It, { addon: s?.name, children: /* @__PURE__ */ p(Pt, {}) })
1007
1007
  ]
1008
1008
  }
1009
1009
  );
1010
- }, no = (e) => {
1011
- const { projectName: t } = Xe(), { contributions: n } = st("projectTable.customizeSection");
1012
- return U(() => {
1013
- const l = { projectName: t, page: e };
1014
- return n.filter((o) => !o.pages?.length || o.pages.includes(e)).map((o) => ({
1010
+ }, lo = (e) => {
1011
+ const { projectName: t } = Ze(), { contributions: n } = we("projectTable.customizeSection");
1012
+ return B(() => {
1013
+ const r = { projectName: t, page: e };
1014
+ return n.filter((s) => !s.pages?.length || s.pages.includes(e)).map((s) => ({
1015
1015
  // namespaced, so it can't replace a built-in section (settings are merged by id)
1016
- id: `addon:${o.key}`,
1017
- title: o.title,
1018
- icon: o.icon,
1019
- component: Lt(ke, {
1020
- contribution: o,
1021
- context: l
1016
+ id: `addon:${s.key}`,
1017
+ title: s.title,
1018
+ icon: s.icon,
1019
+ component: Ut(ve, {
1020
+ contribution: s,
1021
+ context: r
1022
1022
  })
1023
1023
  }));
1024
1024
  }, [n, t, e]);
1025
- }, Ge = ({
1025
+ }, We = ({
1026
1026
  Component: e,
1027
1027
  projectName: t,
1028
1028
  state: n,
1029
- dispatch: l,
1030
- useSelector: o,
1031
- onOpenImage: s,
1032
- onGoToFrame: a,
1033
- onOpenViewer: h,
1034
- onUpdateEntity: i,
1035
- ...d
1029
+ dispatch: r,
1030
+ useSelector: s,
1031
+ onOpenImage: a,
1032
+ onGoToFrame: o,
1033
+ onOpenViewer: u,
1034
+ onUpdateEntity: l,
1035
+ ...f
1036
1036
  }) => {
1037
- const c = Je(), { onCreateView: S, getLatestSettings: y, markCacheDirty: T } = Ze();
1037
+ const c = et(), { onCreateView: S, getLatestSettings: y, markCacheDirty: T } = tt();
1038
1038
  return /* @__PURE__ */ p(
1039
1039
  e,
1040
1040
  {
1041
- router: { useParams: bs, useNavigate: tt, useLocation: gs, useSearchParams: hs },
1041
+ router: { useParams: ys, useNavigate: at, useLocation: vs, useSearchParams: ws },
1042
1042
  projectName: t,
1043
1043
  views: {
1044
1044
  ...c,
1045
1045
  settings: c.viewSettings,
1046
- updateViewSettings: (...g) => Wt(...g, c, S, y, T)
1046
+ updateViewSettings: (...g) => Kt(...g, c, S, y, T)
1047
1047
  },
1048
1048
  context: {},
1049
1049
  state: n,
1050
- dispatch: l,
1051
- useSelector: o,
1052
- onOpenImage: s,
1053
- onGoToFrame: a,
1054
- onOpenViewer: h,
1055
- onUpdateEntity: i,
1050
+ dispatch: r,
1051
+ useSelector: s,
1052
+ onOpenImage: a,
1053
+ onGoToFrame: o,
1054
+ onOpenViewer: u,
1055
+ onUpdateEntity: l,
1056
1056
  toast: Q,
1057
- ...d
1057
+ ...f
1058
1058
  }
1059
1059
  );
1060
- }, Us = ({ children: e, fields: t }) => /* @__PURE__ */ p("main", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ p(vs, { sidebar: /* @__PURE__ */ p(ys, { fields: t }), children: e }) }), ro = ({
1060
+ }, Gs = ({ children: e, fields: t }) => /* @__PURE__ */ p("main", { style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ p(Ss, { sidebar: /* @__PURE__ */ p(ks, { fields: t }), children: e }) }), co = ({
1061
1061
  Component: e,
1062
1062
  projectName: t,
1063
1063
  slicer: n,
1064
- state: l = {},
1065
- addonProps: o,
1066
- ...s
1064
+ state: r = {},
1065
+ addonProps: s,
1066
+ ...a
1067
1067
  }) => {
1068
- let a = /* @__PURE__ */ p(Ge, { Component: e, projectName: t, ...s });
1068
+ let o = /* @__PURE__ */ p(We, { Component: e, projectName: t, ...a });
1069
1069
  if (n && t) {
1070
- let h = null;
1070
+ let u = null;
1071
1071
  try {
1072
- h = Ye();
1072
+ u = Ke();
1073
1073
  } catch {
1074
1074
  console.log("Slicer context not available for this addon page");
1075
1075
  }
1076
- a = /* @__PURE__ */ p(Us, { fields: n.fields, children: /* @__PURE__ */ p(
1077
- Ge,
1076
+ o = /* @__PURE__ */ p(Gs, { fields: n.fields, children: /* @__PURE__ */ p(
1077
+ We,
1078
1078
  {
1079
1079
  Component: e,
1080
1080
  projectName: t,
1081
- ...s,
1082
- state: { slicer: h, ...l },
1083
- ...o
1081
+ ...a,
1082
+ state: { slicer: u, ...r },
1083
+ ...s
1084
1084
  }
1085
1085
  ) });
1086
1086
  }
1087
- return a;
1088
- }, $s = () => /* @__PURE__ */ N(Tt, { children: [
1087
+ return o;
1088
+ }, zs = () => /* @__PURE__ */ L(At, { children: [
1089
1089
  "By logging in you agree to our",
1090
1090
  " ",
1091
1091
  /* @__PURE__ */ p("a", { href: "https://ynput.io/terms/", target: "_blank", children: "Terms of Service" }),
@@ -1093,21 +1093,21 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1093
1093
  "and",
1094
1094
  " ",
1095
1095
  /* @__PURE__ */ p("a", { href: "https://ynput.io/privacy-policy", target: "_blank", children: "Privacy Policy" })
1096
- ] }), lo = ({ onLogin: e, loading: t = null, isFirstTime: n = !1 }) => {
1097
- const l = Ss(), o = new URLSearchParams(window.location.search), [s, a] = x(""), [h, i] = x(""), d = o.getAll("provider"), [c, S] = x(!1), [y, T] = x(!1), { data: g, isLoading: V } = ls({ full: !0 }), O = g || {}, { motd: w, loginPageBrand: D = "", loginPageBackground: R = "" } = O;
1096
+ ] }), uo = ({ onLogin: e, loading: t = null, isFirstTime: n = !1 }) => {
1097
+ const r = Cs(), s = new URLSearchParams(window.location.search), [a, o] = x(""), [u, l] = x(""), f = s.getAll("provider"), [c, S] = x(!1), [y, T] = x(!1), { data: g, isLoading: V } = us({ full: !0 }), O = g || {}, { motd: w, loginPageBrand: D = "", loginPageBackground: R = "" } = O;
1098
1098
  H(() => {
1099
1099
  document.title = "Login • AYON";
1100
1100
  }, []), H(() => {
1101
1101
  window.location.pathname.startsWith("/login") || (console.debug("Storing preferred URL in local storage:", window.location.href), localStorage.setItem("auth-preferred-url", window.location.href));
1102
1102
  }, []);
1103
- const L = async (C) => {
1104
- if (C.preventDefault(), !(s && h)) {
1103
+ const M = async (C) => {
1104
+ if (C.preventDefault(), !(a && u)) {
1105
1105
  Q.error("Please enter username and password to login");
1106
1106
  return;
1107
1107
  }
1108
1108
  let b = null;
1109
1109
  try {
1110
- b = await Me.post("/api/auth/login", { name: s, password: h });
1110
+ b = await Be.post("/api/auth/login", { name: a, password: u });
1111
1111
  } catch (v) {
1112
1112
  const k = v;
1113
1113
  console.error("Login error", k.response?.data || k), Q.error(k.response?.data?.detail || `Unable to login: Error ${k.response?.status}`);
@@ -1117,8 +1117,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1117
1117
  console.error("Login error", b), Q.error("Unable to login, check the console for details");
1118
1118
  return;
1119
1119
  }
1120
- localStorage.removeItem("auth-preferred-url"), Q.info(b.data.detail), e({ user: b.data.user, accessToken: b.data.token }), l(Fe.util.resetApiState());
1121
- }, B = async (C) => {
1120
+ localStorage.removeItem("auth-preferred-url"), Q.info(b.data.detail), e({ user: b.data.user, accessToken: b.data.token }), r(Le.util.resetApiState());
1121
+ }, U = async (C) => {
1122
1122
  const b = window.location.pathname.split("/")[2];
1123
1123
  if (!b || (console.debug("handleSSOCallback", b), !C?.length && b !== "_token")) return;
1124
1124
  const v = new URLSearchParams(window.location.search);
@@ -1130,14 +1130,14 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1130
1130
  callback: "/api/auth/tokenauth"
1131
1131
  }), !k) return;
1132
1132
  v.append("ayonProvider", b), T(!0);
1133
- let r = !1, f = null, u = null;
1133
+ let i = !1, m = null, d = null;
1134
1134
  try {
1135
- console.debug("SSO Callback", k.callback), f = await Me.get(k.callback, { params: v }), r = !0;
1135
+ console.debug("SSO Callback", k.callback), m = await Be.get(k.callback, { params: v }), i = !0;
1136
1136
  } catch (P) {
1137
1137
  const E = P;
1138
1138
  console.error("SSO Callback error", E.response?.data), Q.error(
1139
- /* @__PURE__ */ N(ae, { children: [
1140
- /* @__PURE__ */ N("p", { children: [
1139
+ /* @__PURE__ */ L(te, { children: [
1140
+ /* @__PURE__ */ L("p", { children: [
1141
1141
  "Unable to login using ",
1142
1142
  k.name,
1143
1143
  ":"
@@ -1146,76 +1146,76 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1146
1146
  ] })
1147
1147
  );
1148
1148
  }
1149
- let m = null, I = null;
1150
- if (r && f?.data?.user) {
1151
- console.debug("SSO Callback response", f.data);
1152
- const P = f.data;
1153
- Q.info(P.detail || `Logged in as ${P.user.name}`), m = P.user, I = P.token, P.redirectUrl && (u = P.redirectUrl);
1154
- } else r && (Q.error("Unable to login using SSO"), r = !1);
1155
- r ? (!u && localStorage.getItem("auth-preferred-url") && (u = localStorage.getItem("auth-preferred-url")), u || (u = window.location.origin), T(!1), localStorage.removeItem("auth-preferred-url"), e({ user: m, accessToken: I, redirectUrl: u }), l(Fe.util.resetApiState())) : (console.log("SSO Callback failed, clearing auth state"), T(!1), localStorage.removeItem("auth-preferred-url"));
1149
+ let h = null, I = null;
1150
+ if (i && m?.data?.user) {
1151
+ console.debug("SSO Callback response", m.data);
1152
+ const P = m.data;
1153
+ Q.info(P.detail || `Logged in as ${P.user.name}`), h = P.user, I = P.token, P.redirectUrl && (d = P.redirectUrl);
1154
+ } else i && (Q.error("Unable to login using SSO"), i = !1);
1155
+ i ? (!d && localStorage.getItem("auth-preferred-url") && (d = localStorage.getItem("auth-preferred-url")), d || (d = window.location.origin), T(!1), localStorage.removeItem("auth-preferred-url"), e({ user: h, accessToken: I, redirectUrl: d }), r(Le.util.resetApiState())) : (console.log("SSO Callback failed, clearing auth state"), T(!1), localStorage.removeItem("auth-preferred-url"));
1156
1156
  };
1157
1157
  H(() => {
1158
- B(O.ssoOptions);
1158
+ U(O.ssoOptions);
1159
1159
  }, [O.ssoOptions]);
1160
- const F = c || !O?.hidePasswordAuth || d?.length && d.includes("password") || null, $ = !c && (d || !F), W = U(() => O.ssoOptions?.length ? O.ssoOptions.filter(
1161
- ({ name: C, hidden: b }) => !b && (!d?.length || d.includes(C) || c)
1162
- ).map(({ name: C, title: b, url: v, args: k, redirectKey: r, icon: f, color: u, textColor: m }) => {
1160
+ const F = c || !O?.hidePasswordAuth || f?.length && f.includes("password") || null, $ = !c && (f || !F), W = B(() => O.ssoOptions?.length ? O.ssoOptions.filter(
1161
+ ({ name: C, hidden: b }) => !b && (!f?.length || f.includes(C) || c)
1162
+ ).map(({ name: C, title: b, url: v, args: k, redirectKey: i, icon: m, color: d, textColor: h }) => {
1163
1163
  const I = { ...k }, P = `${window.location.origin}/login/${C}`;
1164
- I[r] = P;
1164
+ I[i] = P;
1165
1165
  const E = new URLSearchParams(I), _ = `${v}?${E}`;
1166
1166
  return /* @__PURE__ */ p(
1167
- It,
1167
+ Dt,
1168
1168
  {
1169
1169
  name: b || C,
1170
1170
  url: _,
1171
- icon: f,
1172
- color: u,
1173
- textColor: m
1171
+ icon: m,
1172
+ color: d,
1173
+ textColor: h
1174
1174
  },
1175
1175
  C
1176
1176
  );
1177
- }) : null, [O.ssoOptions, d, c]);
1178
- return y || V ? n ? null : /* @__PURE__ */ p(ae, { children: t }) : /* @__PURE__ */ p(ae, { children: /* @__PURE__ */ N("main", { className: "center", children: [
1179
- R && /* @__PURE__ */ p(Pt, { src: R }),
1180
- /* @__PURE__ */ N(At, { children: [
1181
- (w || D) && /* @__PURE__ */ N(Re, { children: [
1182
- D && /* @__PURE__ */ p(Dt, { src: D }),
1183
- /* @__PURE__ */ p(Rt, { children: /* @__PURE__ */ p(Cs, { remarkPlugins: [ks], children: w }) })
1177
+ }) : null, [O.ssoOptions, f, c]);
1178
+ return y || V ? n ? null : /* @__PURE__ */ p(te, { children: t }) : /* @__PURE__ */ p(te, { children: /* @__PURE__ */ L("main", { className: "center", children: [
1179
+ R && /* @__PURE__ */ p(Rt, { src: R }),
1180
+ /* @__PURE__ */ L(Vt, { children: [
1181
+ (w || D) && /* @__PURE__ */ L(Ce, { children: [
1182
+ D && /* @__PURE__ */ p(xt, { src: D }),
1183
+ /* @__PURE__ */ p(Ft, { children: /* @__PURE__ */ p(Ts, { remarkPlugins: [Os], children: w }) })
1184
1184
  ] }),
1185
- /* @__PURE__ */ N(Re, { children: [
1186
- /* @__PURE__ */ p(Vt, { src: "/AYON.svg" }),
1187
- /* @__PURE__ */ N(xt, { children: [
1188
- F ? /* @__PURE__ */ N("form", { onSubmit: L, children: [
1185
+ /* @__PURE__ */ L(Ce, { children: [
1186
+ /* @__PURE__ */ p(_t, { src: "/AYON.svg" }),
1187
+ /* @__PURE__ */ L(Lt, { children: [
1188
+ F ? /* @__PURE__ */ L("form", { onSubmit: M, children: [
1189
1189
  /* @__PURE__ */ p("label", { id: "username", children: "Username" }),
1190
1190
  /* @__PURE__ */ p(
1191
- We,
1191
+ je,
1192
1192
  {
1193
1193
  autoFocus: !0,
1194
1194
  placeholder: "Enter your username",
1195
1195
  name: "username",
1196
1196
  "aria-label": "Username",
1197
- value: s,
1198
- onChange: (C) => a(C.target.value)
1197
+ value: a,
1198
+ onChange: (C) => o(C.target.value)
1199
1199
  }
1200
1200
  ),
1201
1201
  /* @__PURE__ */ p("label", { id: "password", children: "Password" }),
1202
1202
  /* @__PURE__ */ p(
1203
- Bt,
1203
+ Gt,
1204
1204
  {
1205
1205
  placeholder: "Enter password",
1206
1206
  name: "password",
1207
1207
  "aria-label": "Password",
1208
- value: h,
1209
- onChange: (C) => i(C.target.value)
1208
+ value: u,
1209
+ onChange: (C) => l(C.target.value)
1210
1210
  }
1211
1211
  ),
1212
- /* @__PURE__ */ p(Se, { type: "submit", children: /* @__PURE__ */ p("span", { className: "label", children: "Login with password" }) })
1213
- ] }) : /* @__PURE__ */ p(ae, { children: /* @__PURE__ */ p("div", { style: { marginBottom: "8px" } }) }),
1212
+ /* @__PURE__ */ p(Oe, { type: "submit", children: /* @__PURE__ */ p("span", { className: "label", children: "Login with password" }) })
1213
+ ] }) : /* @__PURE__ */ p(te, { children: /* @__PURE__ */ p("div", { style: { marginBottom: "8px" } }) }),
1214
1214
  W
1215
1215
  ] }),
1216
1216
  O?.passwordRecoveryAvailable && F && /* @__PURE__ */ p("a", { href: "/passwordReset", style: { margin: "8px 0" }, children: "Reset password" }),
1217
1217
  $ && /* @__PURE__ */ p(
1218
- Se,
1218
+ Oe,
1219
1219
  {
1220
1220
  style: { width: "100%" },
1221
1221
  variant: "text",
@@ -1223,274 +1223,316 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1223
1223
  children: "Show all login options"
1224
1224
  }
1225
1225
  ),
1226
- /* @__PURE__ */ p($s, {})
1226
+ /* @__PURE__ */ p(zs, {})
1227
1227
  ] })
1228
1228
  ] })
1229
1229
  ] }) });
1230
- }, io = ({ sidebar: e, children: t }) => {
1231
- const [n, l] = Ts();
1232
- return e ? /* @__PURE__ */ N(
1233
- Os,
1230
+ }, po = ({ sidebar: e, children: t }) => {
1231
+ const [n, r] = Ps();
1232
+ return e ? /* @__PURE__ */ L(
1233
+ Is,
1234
1234
  {
1235
1235
  layout: "horizontal",
1236
1236
  style: { width: "100%", height: "100%" },
1237
- onResizeEnd: l,
1237
+ onResizeEnd: r,
1238
1238
  children: [
1239
- /* @__PURE__ */ p(Be, { size: n[0], style: { overflow: "hidden" }, children: e }),
1240
- /* @__PURE__ */ p(Be, { size: n[1], style: { overflow: "hidden" }, children: t })
1239
+ /* @__PURE__ */ p($e, { size: n[0], style: { overflow: "hidden" }, children: e }),
1240
+ /* @__PURE__ */ p($e, { size: n[1], style: { overflow: "hidden" }, children: t })
1241
1241
  ]
1242
1242
  }
1243
- ) : /* @__PURE__ */ p(ae, { children: t });
1244
- }, co = ({ fields: e }) => {
1245
- const t = e.join(","), n = U(
1246
- () => Is.filter((l) => e.includes(l.value)),
1243
+ ) : /* @__PURE__ */ p(te, { children: t });
1244
+ }, fo = ({ fields: e }) => {
1245
+ const t = e.join(","), n = B(
1246
+ () => As.filter((r) => e.includes(r.value)),
1247
1247
  // fields is compared by content: addons pass a new array literal every render
1248
1248
  // eslint-disable-next-line react-hooks/exhaustive-deps
1249
1249
  [t]
1250
1250
  );
1251
- return /* @__PURE__ */ p(Ut, { wrap: !0, style: { height: "100%" }, children: /* @__PURE__ */ p(Ps, { sliceFields: n, pinnedSliceType: "hierarchy" }) });
1252
- }, zs = () => {
1253
- }, nt = () => {
1254
- const e = Je(), { updateViewSettings: t } = Ze(), { viewType: n, viewSettings: l, isLoadingViews: o } = e, s = K(
1255
- (a) => t(a, zs, void 0, {}),
1251
+ return /* @__PURE__ */ p(zt, { wrap: !0, style: { height: "100%" }, children: /* @__PURE__ */ p(Ds, { sliceFields: n, pinnedSliceType: "hierarchy" }) });
1252
+ }, Hs = () => {
1253
+ }, it = () => {
1254
+ const e = et(), { updateViewSettings: t } = tt(), { viewType: n, viewSettings: r, isLoadingViews: s } = e, a = j(
1255
+ (o) => t(o, Hs, void 0, {}),
1256
1256
  [t]
1257
1257
  );
1258
- return U(
1258
+ return B(
1259
1259
  () => n ? {
1260
1260
  viewType: n,
1261
- settings: l,
1262
- isLoading: o,
1263
- updateSettings: s
1261
+ settings: r,
1262
+ isLoading: s,
1263
+ updateSettings: a
1264
1264
  } : void 0,
1265
- [n, l, o, s]
1265
+ [n, r, s, a]
1266
1266
  );
1267
- }, Gs = () => {
1267
+ }, Ws = () => {
1268
1268
  const {
1269
1269
  folders: e,
1270
1270
  isLoading: t,
1271
1271
  getFolderById: n,
1272
- getParentFolderIds: l,
1273
- getChildFolderIds: o,
1274
- getFolderIdsWithoutChildren: s
1275
- } = Yt();
1276
- return U(
1272
+ getParentFolderIds: r,
1273
+ getChildFolderIds: s,
1274
+ getFolderIdsWithoutChildren: a
1275
+ } = qt();
1276
+ return B(
1277
1277
  () => ({
1278
1278
  // attrib is typed `object` in the api model
1279
1279
  folders: e,
1280
1280
  isLoading: t,
1281
1281
  getFolderById: n,
1282
- getParentFolderIds: l,
1283
- getChildFolderIds: o,
1284
- getFolderIdsWithoutChildren: s
1282
+ getParentFolderIds: r,
1283
+ getChildFolderIds: s,
1284
+ getFolderIdsWithoutChildren: a
1285
1285
  }),
1286
1286
  [
1287
1287
  e,
1288
1288
  t,
1289
1289
  n,
1290
- l,
1291
- o,
1292
- s
1290
+ r,
1291
+ s,
1292
+ a
1293
1293
  ]
1294
1294
  );
1295
- }, uo = (e) => {
1296
- const { data: t } = is({ projectName: e }), { rowSelection: n, sliceType: l } = Ye(), o = U(
1295
+ }, mo = (e) => {
1296
+ const { data: t } = ds({ projectName: e }), { rowSelection: n, sliceType: r } = Ke(), s = B(
1297
1297
  () => ({
1298
- sliceType: l,
1299
- selection: Object.keys(n).filter((h) => n[h])
1298
+ sliceType: r,
1299
+ selection: Object.keys(n).filter((u) => n[u])
1300
1300
  }),
1301
- [l, n]
1302
- ), s = Gs(), a = nt();
1303
- return U(
1304
- () => ({ projectName: e, project: t, slicer: o, projectFolders: s, views: a }),
1305
- [e, t, o, s, a]
1301
+ [r, n]
1302
+ ), a = Ws(), o = it();
1303
+ return B(
1304
+ () => ({ projectName: e, project: t, slicer: s, projectFolders: a, views: o }),
1305
+ [e, t, s, a, o]
1306
1306
  );
1307
- }, po = (e) => {
1308
- const t = nt();
1309
- return U(() => ({ selectedProjects: e, views: t }), [e, t]);
1310
- }, Hs = (e) => ["to", "run", "dialog", "menu", "popover", "component"].find(
1307
+ }, ho = (e) => {
1308
+ const t = it();
1309
+ return B(() => ({ selectedProjects: e, views: t }), [e, t]);
1310
+ }, Ys = (e) => ["to", "run", "dialog", "menu", "popover", "component"].find(
1311
1311
  (t) => e[t] !== void 0
1312
- ), Ce = (e, t) => e.map((n, l) => {
1312
+ ), Ie = (e, t) => e.map((n, r) => {
1313
1313
  if ("divider" in n) return { id: "divider" };
1314
- const { id: o, label: s, icon: a, to: h, href: i, onClick: d, items: c, disabled: S, selected: y, danger: T } = n;
1314
+ const { id: s, label: a, icon: o, to: u, href: l, onClick: f, items: c, disabled: S, selected: y, danger: T } = n;
1315
1315
  return {
1316
- id: `${o}-${l}`,
1317
- label: s,
1318
- icon: a,
1316
+ id: `${s}-${r}`,
1317
+ label: a,
1318
+ icon: o,
1319
1319
  disabled: S,
1320
1320
  selected: y,
1321
1321
  danger: T,
1322
- ...h ? { link: h } : i ? { link: i, target: "_blank" } : {},
1323
- ...d ? {
1322
+ ...u ? { link: u } : l ? { link: l, target: "_blank" } : {},
1323
+ ...f ? {
1324
1324
  onClick: () => {
1325
- Promise.resolve().then(d).catch(t);
1325
+ Promise.resolve().then(f).catch(t);
1326
1326
  }
1327
1327
  } : {},
1328
- ...c?.length ? { items: Ce(c, t) } : {}
1328
+ ...c?.length ? { items: Ie(c, t) } : {}
1329
1329
  };
1330
- }), fo = ({
1330
+ }), go = ({
1331
1331
  contribution: e,
1332
1332
  context: t,
1333
1333
  renderButton: n,
1334
- autoOpen: l,
1335
- onContext: o
1334
+ autoOpen: r,
1335
+ onContext: s
1336
1336
  }) => {
1337
- const s = e, a = Hs(s), h = tt(), i = U(
1338
- () => ({ ...t, navigate: (r) => h(r) }),
1339
- [t, h]
1340
- ), [d, c] = x(!!l && a === "dialog"), S = K(() => c(!1), []), y = U(() => ({ ...i, close: S }), [i, S]), { menuOpen: T, setMenuOpen: g, toggleMenuOpen: V } = et(), [O, w] = x(!!l && a === "popover"), D = K(() => w(!1), []), R = K(() => {
1341
- O || g(!1), w((r) => !r);
1342
- }, [O, g]), L = U(
1343
- () => ({ ...i, close: D }),
1344
- [i, D]
1345
- ), B = U(
1346
- () => s.popover ? { ...i, popoverOpen: O, togglePopover: R } : i,
1347
- [s.popover, i, O, R]
1348
- ), F = `addon:${s.slot}:${s.key}`, [$, W] = x([]), [C, b] = x(null);
1337
+ const a = e, o = Ys(a), u = at(), l = B(
1338
+ () => ({ ...t, navigate: (i) => u(i) }),
1339
+ [t, u]
1340
+ ), [f, c] = x(!!r && o === "dialog"), S = j(() => c(!1), []), y = B(() => ({ ...l, close: S }), [l, S]), { menuOpen: T, setMenuOpen: g, toggleMenuOpen: V } = st(), [O, w] = x(!!r && o === "popover"), D = j(() => w(!1), []), R = j(() => {
1341
+ O || g(!1), w((i) => !i);
1342
+ }, [O, g]), M = B(
1343
+ () => ({ ...l, close: D }),
1344
+ [l, D]
1345
+ ), U = B(
1346
+ () => a.popover ? { ...l, popoverOpen: O, togglePopover: R } : l,
1347
+ [a.popover, l, O, R]
1348
+ ), F = `addon:${a.slot}:${a.key}`, [$, W] = x([]), [C, b] = x(null);
1349
1349
  H(
1350
- () => o?.(
1351
- a === "dialog" ? y : a === "popover" ? L : i
1350
+ () => s?.(
1351
+ o === "dialog" ? y : o === "popover" ? M : l
1352
1352
  ),
1353
- [o, a, y, L, i]
1353
+ [s, o, y, M, l]
1354
1354
  );
1355
- const v = a === "popover" && /* @__PURE__ */ p(
1356
- Ft,
1355
+ const v = o === "popover" && /* @__PURE__ */ p(
1356
+ Mt,
1357
1357
  {
1358
1358
  contribution: e,
1359
- context: L,
1359
+ context: M,
1360
1360
  open: O,
1361
1361
  anchor: C
1362
1362
  }
1363
1363
  );
1364
- if (s.component) {
1365
- const r = /* @__PURE__ */ p(ke, { contribution: e, context: B });
1366
- return v ? /* @__PURE__ */ N(ae, { children: [
1364
+ if (a.component) {
1365
+ const i = /* @__PURE__ */ p(ve, { contribution: e, context: U });
1366
+ return v ? /* @__PURE__ */ L(te, { children: [
1367
1367
  /* @__PURE__ */ p(
1368
1368
  "span",
1369
1369
  {
1370
1370
  ref: b,
1371
1371
  className: "addon-popover-anchor",
1372
1372
  style: { display: "inline-flex" },
1373
- onMouseEnter: () => Ne(s.popover),
1374
- children: r
1373
+ onMouseEnter: () => Te(a.popover),
1374
+ children: i
1375
1375
  }
1376
1376
  ),
1377
1377
  v
1378
- ] }) : r;
1378
+ ] }) : i;
1379
1379
  }
1380
- return /* @__PURE__ */ N(ae, { children: [
1380
+ return /* @__PURE__ */ L(te, { children: [
1381
1381
  n({
1382
1382
  ref: b,
1383
- active: d || O || T === F,
1383
+ active: f || O || T === F,
1384
1384
  onClick: () => {
1385
- if (a === "to") h(s.to);
1386
- else if (a === "run") Es(e, i);
1387
- else if (a === "dialog") c((r) => !r);
1388
- else if (a === "popover") R();
1389
- else if (a === "menu") {
1385
+ if (o === "to") u(a.to);
1386
+ else if (o === "run") ot(e, l);
1387
+ else if (o === "dialog") c((i) => !i);
1388
+ else if (o === "popover") R();
1389
+ else if (o === "menu") {
1390
1390
  if (T === F) return g(!1);
1391
- ds(s.menu).then((r) => {
1392
- if (typeof r != "function") throw new Error('"menu" has no default export function');
1393
- return r(
1394
- ps(s, i)
1391
+ ms(a.menu).then((i) => {
1392
+ if (typeof i != "function") throw new Error('"menu" has no default export function');
1393
+ return i(
1394
+ hs(a, l)
1395
1395
  );
1396
- }).then((r) => {
1397
- W(Ce(r, (f) => Le(s, f))), V(F);
1398
- }).catch((r) => Le(s, r));
1396
+ }).then((i) => {
1397
+ W(Ie(i, (m) => Ne(a, m))), V(F);
1398
+ }).catch((i) => Ne(a, i));
1399
1399
  }
1400
1400
  },
1401
- onMouseEnter: () => a && a !== "to" && Ne(s[a])
1401
+ onMouseEnter: () => o && o !== "to" && Te(a[o])
1402
1402
  }),
1403
- a === "dialog" && d && /* @__PURE__ */ p(Ds, { contribution: e, context: y }),
1404
- a === "menu" && /* @__PURE__ */ p(at, { id: F, target: C, children: /* @__PURE__ */ p(ot, { menu: $ }) }),
1403
+ o === "dialog" && f && /* @__PURE__ */ p(Vs, { contribution: e, context: y }),
1404
+ o === "menu" && /* @__PURE__ */ p(nt, { id: F, target: C, children: /* @__PURE__ */ p(rt, { menu: $ }) }),
1405
1405
  v
1406
1406
  ] });
1407
- }, Ws = (e = []) => {
1407
+ }, js = (e = []) => {
1408
1408
  const t = {};
1409
- for (const { id: n, entityType: l } of e) {
1410
- if (!(l in Vs)) continue;
1411
- const o = l;
1412
- t[o] = { ...t[o], [n]: !0 };
1409
+ for (const { id: n, entityType: r } of e) {
1410
+ if (!(r in Fs)) continue;
1411
+ const s = r;
1412
+ t[s] = { ...t[s], [n]: !0 };
1413
1413
  }
1414
1414
  return t;
1415
- }, Ys = (e, t, n, l) => e.map((o, s) => {
1416
- const a = t[s];
1415
+ }, Ks = (e, t, n, r) => e.map((s, a) => {
1416
+ const o = t[a];
1417
1417
  return {
1418
- id: o,
1418
+ id: s,
1419
1419
  entityType: n,
1420
- projectName: l,
1421
- ...a?.name && { name: a.name },
1422
- ...a?.label && { label: a.label }
1420
+ projectName: r,
1421
+ ...o?.name && { name: o.name },
1422
+ ...o?.label && { label: o.label }
1423
1423
  };
1424
- }), mo = ({
1424
+ }), bo = ({
1425
1425
  projectName: e,
1426
1426
  entityType: t,
1427
1427
  multiSelect: n,
1428
- initialSelection: l,
1429
- onSubmit: o,
1430
- onClose: s
1428
+ initialSelection: r,
1429
+ onSubmit: s,
1430
+ onClose: a
1431
1431
  }) => /* @__PURE__ */ p(
1432
- xs,
1432
+ _s,
1433
1433
  {
1434
1434
  projectName: e,
1435
1435
  entityType: t,
1436
1436
  isMultiSelect: n,
1437
- initialSelection: Ws(l),
1438
- onClose: s,
1439
- onSubmit: (a, h) => o(Ys(a, h, t, e))
1437
+ initialSelection: js(r),
1438
+ onClose: a,
1439
+ onSubmit: (o, u) => s(Ks(o, u, t, e))
1440
1440
  }
1441
- ), js = () => {
1442
- }, ho = ({ projectName: e }) => {
1443
- const { contributions: t } = st("app.service"), n = U(() => ({ projectName: e }), [e]);
1444
- return /* @__PURE__ */ p(ae, { children: t.map((l) => /* @__PURE__ */ p(
1445
- ke,
1441
+ ), qs = () => {
1442
+ }, wo = ({ projectName: e }) => {
1443
+ const { contributions: t } = we("app.service"), n = B(() => ({ projectName: e }), [e]);
1444
+ return /* @__PURE__ */ p(te, { children: t.map((r) => /* @__PURE__ */ p(
1445
+ ve,
1446
1446
  {
1447
- contribution: l,
1447
+ contribution: r,
1448
1448
  context: n,
1449
- error: (o) => /* @__PURE__ */ p(
1450
- Rs,
1449
+ error: (s) => /* @__PURE__ */ p(
1450
+ xs,
1451
1451
  {
1452
- contribution: l,
1453
- error: o,
1454
- onReported: js
1452
+ contribution: r,
1453
+ error: s,
1454
+ onReported: qs
1455
1455
  }
1456
1456
  )
1457
1457
  },
1458
- l.key
1458
+ r.key
1459
1459
  )) });
1460
- }, go = ({
1460
+ }, Qs = (e) => ({
1461
+ name: e.name,
1462
+ fullName: e.attrib?.fullName || void 0,
1463
+ email: e.attrib?.email || void 0,
1464
+ active: e.active !== !1,
1465
+ isAdmin: !!e.isAdmin,
1466
+ isManager: !!(e.isManager || e.isAdmin),
1467
+ isGuest: !!e.isGuest,
1468
+ isService: !!e.isService
1469
+ }), lt = (e, t) => t > 0 && (e !== "single" || t === 1), vo = (e, t) => B(() => ({ users: e.map(Qs), readOnly: t }), [e, t]), yo = (e) => {
1470
+ const { contributions: t } = we("userDetails.menuItem"), n = B(
1471
+ () => t.filter((u) => lt(u.selection, e.users.length)),
1472
+ [t, e.users.length]
1473
+ ), r = j(
1474
+ (u) => ({
1475
+ id: u.key,
1476
+ label: u.label,
1477
+ icon: u.icon,
1478
+ "data-addon-item": u.key,
1479
+ onClick: () => ot(u, e)
1480
+ }),
1481
+ [e]
1482
+ ), s = B(
1483
+ () => Ue(n, "top").map(r),
1484
+ [n, r]
1485
+ ), a = B(
1486
+ () => Ue(n, "bottom").map(r),
1487
+ [n, r]
1488
+ ), o = j(
1489
+ () => n.forEach((u) => Te(u.run)),
1490
+ [n]
1491
+ );
1492
+ return { topItems: s, items: a, prefetch: o };
1493
+ }, Eo = ({ context: e }) => {
1494
+ const { contributions: t } = we("userDetails.section"), n = e.users.some((s) => s.isService), r = B(
1495
+ () => t.filter((s) => lt(s.selection, e.users.length)).filter((s) => !n || s.serviceUsers).sort((s, a) => (s.order ?? 0) - (a.order ?? 0)),
1496
+ [t, e.users.length, n]
1497
+ );
1498
+ return /* @__PURE__ */ p(te, { children: r.map((s) => /* @__PURE__ */ L(Ce, { "data-addon-section": s.key, children: [
1499
+ /* @__PURE__ */ p("b", { children: s.title }),
1500
+ /* @__PURE__ */ p(ve, { contribution: s, context: e })
1501
+ ] }, s.key)) });
1502
+ }, So = ({
1461
1503
  items: e,
1462
1504
  icon: t = "more_horiz",
1463
1505
  label: n,
1464
- tooltip: l,
1465
- variant: o = "text",
1466
- align: s = "right",
1467
- disabled: a,
1468
- className: h,
1469
- onError: i,
1470
- "data-testid": d
1506
+ tooltip: r,
1507
+ variant: s = "text",
1508
+ align: a = "right",
1509
+ disabled: o,
1510
+ className: u,
1511
+ onError: l,
1512
+ "data-testid": f
1471
1513
  }) => {
1472
- const { menuOpen: c, toggleMenuOpen: S } = et(), y = `addon-more-menu:${Mt()}`, T = c === y, [g, V] = x(null), O = U(() => Ce(e, i), [e, i]), w = l || n || "More";
1473
- return /* @__PURE__ */ N(ae, { children: [
1514
+ const { menuOpen: c, toggleMenuOpen: S } = st(), y = `addon-more-menu:${Bt()}`, T = c === y, [g, V] = x(null), O = B(() => Ie(e, l), [e, l]), w = r || n || "More";
1515
+ return /* @__PURE__ */ L(te, { children: [
1474
1516
  /* @__PURE__ */ p(
1475
- Se,
1517
+ Oe,
1476
1518
  {
1477
1519
  ref: V,
1478
1520
  icon: t,
1479
1521
  label: n,
1480
- variant: o,
1481
- disabled: a,
1482
- "data-tooltip": n && !l ? void 0 : w,
1522
+ variant: s,
1523
+ disabled: o,
1524
+ "data-tooltip": n && !r ? void 0 : w,
1483
1525
  "aria-label": w,
1484
1526
  "aria-haspopup": "true",
1485
1527
  "aria-expanded": T,
1486
- className: ue(h, { active: T }),
1487
- "data-testid": d,
1528
+ className: ue(u, { active: T }),
1529
+ "data-testid": f,
1488
1530
  onClick: () => S(y)
1489
1531
  }
1490
1532
  ),
1491
- /* @__PURE__ */ p(at, { id: y, target: g, align: s, children: /* @__PURE__ */ p(ot, { menu: O }) })
1533
+ /* @__PURE__ */ p(nt, { id: y, target: g, align: a, children: /* @__PURE__ */ p(rt, { menu: O }) })
1492
1534
  ] });
1493
- }, Ks = /* @__PURE__ */ new Set([
1535
+ }, Xs = /* @__PURE__ */ new Set([
1494
1536
  "name",
1495
1537
  "extension",
1496
1538
  "status",
@@ -1506,18 +1548,18 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1506
1548
  "hasReviewables",
1507
1549
  "createdAt",
1508
1550
  "updatedAt"
1509
- ]), bo = ({
1551
+ ]), ko = ({
1510
1552
  filterTypes: e = [],
1511
1553
  projectNames: t,
1512
1554
  scope: n,
1513
- scopes: l,
1514
- data: o,
1515
- config: s,
1516
- power: a
1555
+ scopes: r,
1556
+ data: s,
1557
+ config: a,
1558
+ power: o
1517
1559
  }) => {
1518
- const h = Qt(), i = o.productTypes || [], d = o.productBaseTypes || [];
1560
+ const u = Zt(), l = s.productTypes || [], f = s.productBaseTypes || [];
1519
1561
  let c = [];
1520
- const S = /* @__PURE__ */ new Map(), y = l || (n ? Array.isArray(n) ? n : [n] : []).map((v) => ({
1562
+ const S = /* @__PURE__ */ new Map(), y = r || (n ? Array.isArray(n) ? n : [n] : []).map((v) => ({
1521
1563
  scope: v,
1522
1564
  filterTypes: e
1523
1565
  })), T = y.length > 1, g = new Set(
@@ -1530,21 +1572,21 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1530
1572
  (b) => ["assignees", "users", "author"].some(
1531
1573
  (v) => b.filterTypes.includes(v)
1532
1574
  )
1533
- ), { data: w = {} } = cs(
1575
+ ), { data: w = {} } = ps(
1534
1576
  {
1535
1577
  projects: t
1536
1578
  },
1537
1579
  {
1538
1580
  skip: !t?.length || !V
1539
1581
  }
1540
- ), { data: D = [] } = us(
1582
+ ), { data: D = [] } = fs(
1541
1583
  { projects: t },
1542
1584
  {
1543
1585
  skip: !t?.length || !O
1544
1586
  }
1545
- ), { attributes: R } = Qe(), L = Nt(zt), B = L?.attribFields?.length ? L.attribFields : R, F = /* @__PURE__ */ new Map();
1587
+ ), { attributes: R } = Je(), M = $t(Wt), U = M?.attribFields?.length ? M.attribFields : R, F = /* @__PURE__ */ new Map();
1546
1588
  y.forEach(({ scope: b, filterTypes: v }) => {
1547
- v.includes("attributes") && B.filter((k) => k.scope?.includes(b)).forEach((k) => {
1589
+ v.includes("attributes") && U.filter((k) => k.scope?.includes(b)).forEach((k) => {
1548
1590
  F.set(
1549
1591
  k.name,
1550
1592
  (F.get(k.name) || 0) + 1
@@ -1553,159 +1595,159 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1553
1595
  }), y.forEach(({ scope: b, filterTypes: v }) => {
1554
1596
  const k = T ? b : void 0;
1555
1597
  if (v.includes("taskType") && b !== "user") {
1556
- const r = Y(
1598
+ const i = Y(
1557
1599
  "taskType",
1558
1600
  {
1559
- ...s,
1601
+ ...a,
1560
1602
  enableOperatorChange: !1
1561
1603
  },
1562
1604
  k,
1563
1605
  g.has("taskType")
1564
1606
  );
1565
- if (r) {
1566
- let f = Ee({ projectsInfo: w, productTypes: i }, "task");
1567
- r.values?.push(...f), c.push(r);
1607
+ if (i) {
1608
+ let m = ke({ projectsInfo: w, productTypes: l }, "task");
1609
+ i.values?.push(...m), c.push(i);
1568
1610
  }
1569
1611
  }
1570
1612
  if (v.includes("folderType") && b !== "user") {
1571
- const r = Y(
1613
+ const i = Y(
1572
1614
  "folderType",
1573
1615
  {
1574
- ...s,
1616
+ ...a,
1575
1617
  enableOperatorChange: !1
1576
1618
  },
1577
1619
  k,
1578
1620
  g.has("folderType")
1579
1621
  );
1580
- if (r) {
1581
- let f = Ee({ projectsInfo: w, productTypes: i }, "folder");
1582
- r.values?.push(...f), c.push(r);
1622
+ if (i) {
1623
+ let m = ke({ projectsInfo: w, productTypes: l }, "folder");
1624
+ i.values?.push(...m), c.push(i);
1583
1625
  }
1584
1626
  }
1585
1627
  if (v.includes("productType") && b !== "user") {
1586
- const r = Y(
1628
+ const i = Y(
1587
1629
  "productType",
1588
1630
  {
1589
- ...s,
1631
+ ...a,
1590
1632
  enableOperatorChange: !1
1591
1633
  },
1592
1634
  k,
1593
1635
  g.has("productType")
1594
1636
  );
1595
- if (r) {
1596
- let f = Ee({ projectsInfo: w, productTypes: i }, "product");
1597
- r.values?.push(...f), c.push(r);
1637
+ if (i) {
1638
+ let m = ke({ projectsInfo: w, productTypes: l }, "product");
1639
+ i.values?.push(...m), c.push(i);
1598
1640
  }
1599
1641
  }
1600
1642
  if (v.includes("productBaseType") && b !== "user") {
1601
- const r = Y(
1643
+ const i = Y(
1602
1644
  "productBaseType",
1603
1645
  {
1604
- ...s,
1646
+ ...a,
1605
1647
  enableOperatorChange: !1
1606
1648
  },
1607
1649
  k,
1608
1650
  g.has("productBaseType")
1609
1651
  );
1610
- r && (d.forEach(({ icon: f, name: u }) => {
1611
- r.values?.some((m) => m.id === u) || r.values?.push({
1612
- id: u,
1613
- label: u,
1614
- icon: f || re("product")
1652
+ i && (f.forEach(({ icon: m, name: d }) => {
1653
+ i.values?.some((h) => h.id === d) || i.values?.push({
1654
+ id: d,
1655
+ label: d,
1656
+ icon: m || re("product")
1615
1657
  });
1616
- }), o.productBaseTypes?.forEach(({ icon: f, name: u }) => {
1617
- r.values?.some((m) => m.id === u) || r.values?.push({
1618
- id: u,
1619
- label: u,
1620
- icon: f || re("product")
1658
+ }), s.productBaseTypes?.forEach(({ icon: m, name: d }) => {
1659
+ i.values?.some((h) => h.id === d) || i.values?.push({
1660
+ id: d,
1661
+ label: d,
1662
+ icon: m || re("product")
1621
1663
  });
1622
- }), c.push(r));
1664
+ }), c.push(i));
1623
1665
  }
1624
1666
  if (v.includes("productName") && b === "product") {
1625
- const r = Y(
1667
+ const i = Y(
1626
1668
  "productName",
1627
- s,
1669
+ a,
1628
1670
  k,
1629
1671
  g.has("productName")
1630
1672
  );
1631
- r && (o.productNames?.forEach((f) => {
1632
- r.values?.some((u) => u.id === f) || r.values?.push({
1633
- id: f,
1634
- label: f
1673
+ i && (s.productNames?.forEach((m) => {
1674
+ i.values?.some((d) => d.id === m) || i.values?.push({
1675
+ id: m,
1676
+ label: m
1635
1677
  });
1636
- }), c.push(r));
1678
+ }), c.push(i));
1637
1679
  }
1638
1680
  if (v.includes("status")) {
1639
- const r = Y(
1681
+ const i = Y(
1640
1682
  "status",
1641
- { ...s, enableOperatorChange: !1 },
1683
+ { ...a, enableOperatorChange: !1 },
1642
1684
  k,
1643
1685
  g.has("status")
1644
1686
  );
1645
- r && (Object.values(w).forEach((f) => {
1646
- (f?.statuses || []).filter((m) => m.scope?.includes(b)).forEach((m) => {
1647
- r.values?.some((I) => I.id === m.name) || r.values?.push({
1648
- id: m.name,
1649
- label: m.name,
1650
- icon: m.icon,
1651
- color: m.color
1687
+ i && (Object.values(w).forEach((m) => {
1688
+ (m?.statuses || []).filter((h) => h.scope?.includes(b)).forEach((h) => {
1689
+ i.values?.some((I) => I.id === h.name) || i.values?.push({
1690
+ id: h.name,
1691
+ label: h.name,
1692
+ icon: h.icon,
1693
+ color: h.color
1652
1694
  });
1653
1695
  });
1654
- }), c.push(r));
1696
+ }), c.push(i));
1655
1697
  }
1656
1698
  if (v.includes("assignees")) {
1657
- const r = Y(
1699
+ const i = Y(
1658
1700
  "assignees",
1659
- s,
1701
+ a,
1660
1702
  k,
1661
1703
  g.has("assignees")
1662
1704
  );
1663
- r && (D.forEach((f) => {
1664
- r.values?.some((u) => u.id === f.name) || r.values?.push({
1665
- id: f.name,
1666
- label: f.attrib.fullName || f.name,
1667
- img: `/api/users/${f.name}/avatar`,
1705
+ i && (D.forEach((m) => {
1706
+ i.values?.some((d) => d.id === m.name) || i.values?.push({
1707
+ id: m.name,
1708
+ label: m.attrib.fullName || m.name,
1709
+ img: `/api/users/${m.name}/avatar`,
1668
1710
  icon: null
1669
1711
  });
1670
- }), r.values?.sort((f, u) => {
1671
- const m = o.assignees?.filter((P) => P === f.id).length || 0;
1672
- return (o.assignees?.filter((P) => P === u.id).length || 0) - m;
1673
- }), c.push(r));
1712
+ }), i.values?.sort((m, d) => {
1713
+ const h = s.assignees?.filter((P) => P === m.id).length || 0;
1714
+ return (s.assignees?.filter((P) => P === d.id).length || 0) - h;
1715
+ }), c.push(i));
1674
1716
  }
1675
1717
  if (v.includes("author")) {
1676
- const r = Y(
1718
+ const i = Y(
1677
1719
  "author",
1678
- s,
1720
+ a,
1679
1721
  k,
1680
1722
  g.has("author")
1681
1723
  );
1682
- r && (D.forEach((f) => {
1683
- r.values?.some((u) => u.id === f.name) || r.values?.push({
1684
- id: f.name,
1685
- label: f.attrib.fullName || f.name,
1686
- img: `/api/users/${f.name}/avatar`,
1724
+ i && (D.forEach((m) => {
1725
+ i.values?.some((d) => d.id === m.name) || i.values?.push({
1726
+ id: m.name,
1727
+ label: m.attrib.fullName || m.name,
1728
+ img: `/api/users/${m.name}/avatar`,
1687
1729
  icon: null
1688
1730
  });
1689
- }), c.push(r));
1731
+ }), c.push(i));
1690
1732
  }
1691
1733
  if (v.includes("tags")) {
1692
- const r = Y("tags", s, k, g.has("tags"));
1693
- if (r) {
1694
- const f = /* @__PURE__ */ new Map();
1734
+ const i = Y("tags", a, k, g.has("tags"));
1735
+ if (i) {
1736
+ const m = /* @__PURE__ */ new Map();
1695
1737
  Object.values(w).forEach((I) => {
1696
1738
  I?.tags && I.tags.forEach((P) => {
1697
- f.has(P.name) || f.set(P.name, P);
1739
+ m.has(P.name) || m.set(P.name, P);
1698
1740
  });
1699
1741
  });
1700
- const u = /* @__PURE__ */ new Map();
1701
- o.tags?.forEach((I) => {
1702
- const P = u.get(I);
1742
+ const d = /* @__PURE__ */ new Map();
1743
+ s.tags?.forEach((I) => {
1744
+ const P = d.get(I);
1703
1745
  if (P) {
1704
1746
  P.count++;
1705
1747
  return;
1706
1748
  } else {
1707
- const E = f.get(I);
1708
- u.set(I, {
1749
+ const E = m.get(I);
1750
+ d.set(I, {
1709
1751
  id: I,
1710
1752
  type: "string",
1711
1753
  label: I,
@@ -1715,44 +1757,44 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1715
1757
  });
1716
1758
  }
1717
1759
  });
1718
- const m = Array.from(u.values()).sort(
1760
+ const h = Array.from(d.values()).sort(
1719
1761
  (I, P) => P.count - I.count
1720
1762
  );
1721
- r.values?.push(...m), c.push(r);
1763
+ i.values?.push(...h), c.push(i);
1722
1764
  }
1723
1765
  }
1724
1766
  if (v.includes("version")) {
1725
- const r = Y("version", s, k);
1726
- r && (_t.forEach((u) => {
1727
- r.values?.push({
1728
- id: u.value,
1729
- label: u.label,
1730
- icon: u.icon
1767
+ const i = Y("version", a, k);
1768
+ i && (Nt.forEach((d) => {
1769
+ i.values?.push({
1770
+ id: d.value,
1771
+ label: d.label,
1772
+ icon: d.icon
1731
1773
  });
1732
- }), c.push(r));
1774
+ }), c.push(i));
1733
1775
  }
1734
1776
  if (v.includes("name")) {
1735
- const r = Y("name", s, k, g.has("name"));
1736
- r && c.push(r);
1777
+ const i = Y("name", a, k, g.has("name"));
1778
+ i && c.push(i);
1737
1779
  }
1738
1780
  if (v.includes("extension") && b === "representation") {
1739
- const r = Y(
1781
+ const i = Y(
1740
1782
  "extension",
1741
- s,
1783
+ a,
1742
1784
  k,
1743
1785
  g.has("extension")
1744
1786
  );
1745
- r && c.push(r);
1787
+ i && c.push(i);
1746
1788
  }
1747
1789
  if (v.includes("hasReviewables")) {
1748
- const r = Y(
1790
+ const i = Y(
1749
1791
  "hasReviewables",
1750
- s,
1792
+ a,
1751
1793
  k,
1752
1794
  g.has("hasReviewables")
1753
1795
  );
1754
- if (r) {
1755
- const f = [
1796
+ if (i) {
1797
+ const m = [
1756
1798
  {
1757
1799
  id: "true",
1758
1800
  label: "Yes",
@@ -1764,67 +1806,67 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1764
1806
  values: []
1765
1807
  }
1766
1808
  ];
1767
- r.values?.push(...f), c.push(r);
1809
+ i.values?.push(...m), c.push(i);
1768
1810
  }
1769
1811
  }
1770
1812
  if (v.includes("createdAt")) {
1771
- const r = Y(
1813
+ const i = Y(
1772
1814
  "createdAt",
1773
- s,
1815
+ a,
1774
1816
  k,
1775
1817
  g.has("createdAt")
1776
1818
  );
1777
- r && (r.values?.push(ve), r.values?.push(
1778
- ...ye().map((f) => ({
1779
- ...f,
1780
- contentAfter: a ? void 0 : /* @__PURE__ */ p(pe, { icon: "bolt" })
1819
+ i && (i.values?.push(Ee), i.values?.push(
1820
+ ...Se().map((m) => ({
1821
+ ...m,
1822
+ contentAfter: o ? void 0 : /* @__PURE__ */ p(pe, { icon: "bolt" })
1781
1823
  }))
1782
- ), c.push(r));
1824
+ ), c.push(i));
1783
1825
  }
1784
1826
  if (v.includes("updatedAt")) {
1785
- const r = Y(
1827
+ const i = Y(
1786
1828
  "updatedAt",
1787
- s,
1829
+ a,
1788
1830
  k,
1789
1831
  g.has("updatedAt")
1790
1832
  );
1791
- r && (r.values?.push(ve), r.values?.push(
1792
- ...ye().map((f) => ({
1793
- ...f,
1794
- contentAfter: a ? void 0 : /* @__PURE__ */ p(pe, { icon: "bolt" })
1833
+ i && (i.values?.push(Ee), i.values?.push(
1834
+ ...Se().map((m) => ({
1835
+ ...m,
1836
+ contentAfter: o ? void 0 : /* @__PURE__ */ p(pe, { icon: "bolt" })
1795
1837
  }))
1796
- ), c.push(r));
1838
+ ), c.push(i));
1797
1839
  }
1798
1840
  if (v.includes("attributes")) {
1799
- const r = B.filter(
1800
- (m) => m.scope?.includes(b) && // replaced by the dedicated extension option: publishing never sets this
1841
+ const i = U.filter(
1842
+ (h) => h.scope?.includes(b) && // replaced by the dedicated extension option: publishing never sets this
1801
1843
  // attribute on representations, so filtering on it matches nothing
1802
- !(v.includes("extension") && m.name === "extension")
1803
- ), f = fs(o.attributes) ? r : r.filter(
1804
- (m) => o.attributes && o.attributes[m.name]
1844
+ !(v.includes("extension") && h.name === "extension")
1845
+ ), m = gs(s.attributes) ? i : i.filter(
1846
+ (h) => s.attributes && s.attributes[h.name]
1805
1847
  );
1806
- (s?.enableRelativeValues ? f : f.filter((m) => m.data.type !== "datetime")).forEach((m) => {
1807
- const I = o.attributes && o.attributes[m.name], P = m.data.enum, E = m.data.type, _ = [
1848
+ (a?.enableRelativeValues ? m : m.filter((h) => h.data.type !== "datetime")).forEach((h) => {
1849
+ const I = s.attributes && s.attributes[h.name], P = h.data.enum, E = h.data.type, _ = [
1808
1850
  "list_of_strings",
1809
1851
  "list_of_integers",
1810
1852
  "list_of_any",
1811
1853
  "list_of_submodels"
1812
- ].includes(E || ""), z = E === "datetime", j = E === "string", X = E === "integer" || E === "float", oe = _ ? s?.enableOperatorChange : !1, te = m.data.default !== void 0 && m.data.default !== null && m.data.inherit !== !1, he = (_ || z || j || X) && !te ? s?.enableRelativeValues : !1, J = qs(
1813
- m,
1854
+ ].includes(E || ""), G = E === "datetime", K = E === "string", X = E === "integer" || E === "float", oe = _ ? a?.enableOperatorChange : !1, se = h.data.default !== void 0 && h.data.default !== null && h.data.inherit !== !1, he = (_ || G || K || X) && !se ? a?.enableRelativeValues : !1, J = Js(
1855
+ h,
1814
1856
  {
1815
- ...s,
1857
+ ...a,
1816
1858
  allowsCustomValues: !0,
1817
1859
  enableOperatorChange: oe,
1818
1860
  enableRelativeValues: he
1819
1861
  },
1820
1862
  k,
1821
- (F.get(m.name) || 0) > 1
1863
+ (F.get(h.name) || 0) > 1
1822
1864
  );
1823
- if (m.data.enumResolver) {
1824
- const ee = m.data;
1825
- J.loadValuesKey = t?.[0], J.loadValues = async () => He(
1865
+ if (h.data.enumResolver) {
1866
+ const ee = h.data;
1867
+ J.loadValuesKey = t?.[0], J.loadValues = async () => Ye(
1826
1868
  I,
1827
- await h(ee, t?.[0]),
1869
+ await u(ee, t?.[0]),
1828
1870
  E
1829
1871
  );
1830
1872
  }
@@ -1836,7 +1878,7 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1836
1878
  "list_of_integers"
1837
1879
  ], Z = [];
1838
1880
  if (ge.includes(E)) {
1839
- const ee = He(I, P, E);
1881
+ const ee = Ye(I, P, E);
1840
1882
  Z.push(...ee);
1841
1883
  }
1842
1884
  if (E === "boolean") {
@@ -1854,54 +1896,54 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1854
1896
  ];
1855
1897
  Z.push(...ee);
1856
1898
  }
1857
- z && (Z.push(ve), Z.push(
1858
- ...ye().map((ee) => ({
1899
+ G && (Z.push(Ee), Z.push(
1900
+ ...Se().map((ee) => ({
1859
1901
  ...ee,
1860
- contentAfter: a ? void 0 : /* @__PURE__ */ p(pe, { icon: "bolt" })
1902
+ contentAfter: o ? void 0 : /* @__PURE__ */ p(pe, { icon: "bolt" })
1861
1903
  }))
1862
- )), J.values?.push(...Z), S.set(J.id, m.name), c.push(J);
1904
+ )), J.values?.push(...Z), S.set(J.id, h.name), c.push(J);
1863
1905
  });
1864
1906
  }
1865
1907
  });
1866
1908
  const $ = c.reduce((b, v) => {
1867
1909
  if (!v.group) return b;
1868
- const k = typeof v.group == "string" ? void 0 : v.group, r = k?.name || v.group, f = y.some(({ scope: u }) => u === r);
1869
- return b.some((u) => u.name === r) || b.push({
1870
- name: r,
1871
- label: f ? me(r) : k?.label || v.label,
1872
- icon: f ? re(r) : k?.icon || v.icon,
1910
+ const k = typeof v.group == "string" ? void 0 : v.group, i = k?.name || v.group, m = y.some(({ scope: d }) => d === i);
1911
+ return b.some((d) => d.name === i) || b.push({
1912
+ name: i,
1913
+ label: m ? me(i) : k?.label || v.label,
1914
+ icon: m ? re(i) : k?.icon || v.icon,
1873
1915
  color: k?.color || v.color
1874
1916
  }), b;
1875
- }, []), W = Qs(c, S, B), C = Xs(
1917
+ }, []), W = Zs(c, S, U), C = ea(
1876
1918
  $,
1877
1919
  W,
1878
1920
  S,
1879
- B
1921
+ U
1880
1922
  );
1881
1923
  return { options: W, groupOptions: C };
1882
- }, Ee = ({
1924
+ }, ke = ({
1883
1925
  projectsInfo: e,
1884
1926
  productTypes: t
1885
1927
  }, n) => {
1886
- const l = [];
1887
- return n === "product" ? t.forEach(({ icon: o, name: s }) => {
1888
- l.push({
1889
- id: s,
1928
+ const r = [];
1929
+ return n === "product" ? t.forEach(({ icon: s, name: a }) => {
1930
+ r.push({
1931
+ id: a,
1890
1932
  type: "string",
1891
- label: s,
1892
- icon: o || re("product"),
1933
+ label: a,
1934
+ icon: s || re("product"),
1893
1935
  inverted: !1,
1894
1936
  values: [],
1895
1937
  allowsCustomValues: !1
1896
1938
  });
1897
- }) : n === "task" ? Object.values(e).forEach((o) => {
1898
- (o?.taskTypes || []).forEach((a) => {
1899
- l.some((h) => h.id === a.name) || l.push({
1900
- id: a.name,
1939
+ }) : n === "task" ? Object.values(e).forEach((s) => {
1940
+ (s?.taskTypes || []).forEach((o) => {
1941
+ r.some((u) => u.id === o.name) || r.push({
1942
+ id: o.name,
1901
1943
  type: "string",
1902
- label: a.name,
1903
- icon: a.icon,
1904
- color: a.color,
1944
+ label: o.name,
1945
+ icon: o.icon,
1946
+ color: o.color,
1905
1947
  inverted: !1,
1906
1948
  values: [],
1907
1949
  allowsCustomValues: !1,
@@ -1912,14 +1954,14 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1912
1954
  }
1913
1955
  });
1914
1956
  });
1915
- }) : n === "folder" && Object.values(e).forEach((o) => {
1916
- (o?.folderTypes || []).forEach((a) => {
1917
- l.some((h) => h.id === a.name) || l.push({
1918
- id: a.name,
1957
+ }) : n === "folder" && Object.values(e).forEach((s) => {
1958
+ (s?.folderTypes || []).forEach((o) => {
1959
+ r.some((u) => u.id === o.name) || r.push({
1960
+ id: o.name,
1919
1961
  type: "string",
1920
- label: a.name,
1921
- icon: a.icon,
1922
- color: a.color,
1962
+ label: o.name,
1963
+ icon: o.icon,
1964
+ color: o.color,
1923
1965
  inverted: !1,
1924
1966
  values: [],
1925
1967
  allowsCustomValues: !1,
@@ -1930,18 +1972,18 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1930
1972
  }
1931
1973
  });
1932
1974
  });
1933
- }), l;
1934
- }, rt = (e, t, n, l) => {
1935
- const { prefixes: o, keys: s } = n || {};
1936
- let a = e;
1937
- return s && t in s ? a = `${s[t]}` : o && t in o && (a = `${o[t]}${e}`), l && (a = `${l}_${a}`), a;
1938
- }, Y = (e, t, n, l = !1) => {
1939
- const o = (i) => rt(i, e, t, n);
1940
- let s = null;
1975
+ }), r;
1976
+ }, ct = (e, t, n, r) => {
1977
+ const { prefixes: s, keys: a } = n || {};
1978
+ let o = e;
1979
+ return a && t in a ? o = `${a[t]}` : s && t in s && (o = `${s[t]}${e}`), r && (o = `${r}_${o}`), o;
1980
+ }, Y = (e, t, n, r = !1) => {
1981
+ const s = (l) => ct(l, e, t, n);
1982
+ let a = null;
1941
1983
  switch (e) {
1942
1984
  case "taskType":
1943
- s = {
1944
- id: o("taskType"),
1985
+ a = {
1986
+ id: s("taskType"),
1945
1987
  type: "string",
1946
1988
  label: "Task Type",
1947
1989
  icon: q("task"),
@@ -1956,8 +1998,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1956
1998
  };
1957
1999
  break;
1958
2000
  case "folderType":
1959
- s = {
1960
- id: o("folderType"),
2001
+ a = {
2002
+ id: s("folderType"),
1961
2003
  type: "string",
1962
2004
  label: "Folder Type",
1963
2005
  icon: q("folder"),
@@ -1972,8 +2014,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1972
2014
  };
1973
2015
  break;
1974
2016
  case "productType":
1975
- s = {
1976
- id: o("productType"),
2017
+ a = {
2018
+ id: s("productType"),
1977
2019
  type: "string",
1978
2020
  label: "Product Type",
1979
2021
  icon: q("product"),
@@ -1988,8 +2030,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
1988
2030
  };
1989
2031
  break;
1990
2032
  case "productBaseType":
1991
- s = {
1992
- id: o("productBaseType"),
2033
+ a = {
2034
+ id: s("productBaseType"),
1993
2035
  type: "string",
1994
2036
  label: "Product Base Type",
1995
2037
  icon: q("product"),
@@ -2004,8 +2046,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2004
2046
  };
2005
2047
  break;
2006
2048
  case "productName":
2007
- s = {
2008
- id: o("productNames"),
2049
+ a = {
2050
+ id: s("productNames"),
2009
2051
  type: "string",
2010
2052
  label: "Product Name",
2011
2053
  icon: q("productName", "string"),
@@ -2020,8 +2062,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2020
2062
  };
2021
2063
  break;
2022
2064
  case "status":
2023
- s = {
2024
- id: o("status"),
2065
+ a = {
2066
+ id: s("status"),
2025
2067
  type: "string",
2026
2068
  label: "Status",
2027
2069
  icon: q("status"),
@@ -2036,8 +2078,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2036
2078
  };
2037
2079
  break;
2038
2080
  case "assignees":
2039
- s = {
2040
- id: o("assignees"),
2081
+ a = {
2082
+ id: s("assignees"),
2041
2083
  type: "list_of_strings",
2042
2084
  label: "Assignee",
2043
2085
  icon: q("assignees"),
@@ -2052,8 +2094,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2052
2094
  };
2053
2095
  break;
2054
2096
  case "author":
2055
- s = {
2056
- id: o("author"),
2097
+ a = {
2098
+ id: s("author"),
2057
2099
  type: "string",
2058
2100
  label: "Author",
2059
2101
  icon: q("author"),
@@ -2068,8 +2110,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2068
2110
  };
2069
2111
  break;
2070
2112
  case "tags":
2071
- s = {
2072
- id: o("tags"),
2113
+ a = {
2114
+ id: s("tags"),
2073
2115
  type: "list_of_strings",
2074
2116
  label: "Tags",
2075
2117
  icon: q("tags"),
@@ -2084,8 +2126,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2084
2126
  };
2085
2127
  break;
2086
2128
  case "version":
2087
- s = {
2088
- id: o("version"),
2129
+ a = {
2130
+ id: s("version"),
2089
2131
  type: "string",
2090
2132
  label: "Version",
2091
2133
  icon: re("version"),
@@ -2101,8 +2143,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2101
2143
  };
2102
2144
  break;
2103
2145
  case "name":
2104
- s = {
2105
- id: o("name"),
2146
+ a = {
2147
+ id: s("name"),
2106
2148
  type: "string",
2107
2149
  label: "Name",
2108
2150
  icon: "text_fields",
@@ -2117,8 +2159,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2117
2159
  };
2118
2160
  break;
2119
2161
  case "extension":
2120
- s = {
2121
- id: o("extension"),
2162
+ a = {
2163
+ id: s("extension"),
2122
2164
  type: "string",
2123
2165
  label: "File Extension",
2124
2166
  icon: q("extension", "string"),
@@ -2133,8 +2175,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2133
2175
  };
2134
2176
  break;
2135
2177
  case "hasReviewables":
2136
- s = {
2137
- id: o("hasReviewables"),
2178
+ a = {
2179
+ id: s("hasReviewables"),
2138
2180
  type: "boolean",
2139
2181
  label: "Has Reviewables",
2140
2182
  icon: "play_circle",
@@ -2150,8 +2192,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2150
2192
  };
2151
2193
  break;
2152
2194
  case "createdAt":
2153
- s = {
2154
- id: o("createdAt"),
2195
+ a = {
2196
+ id: s("createdAt"),
2155
2197
  type: "datetime",
2156
2198
  label: "Created",
2157
2199
  icon: "calendar_add_on",
@@ -2167,8 +2209,8 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2167
2209
  };
2168
2210
  break;
2169
2211
  case "updatedAt":
2170
- s = {
2171
- id: o("updatedAt"),
2212
+ a = {
2213
+ id: s("updatedAt"),
2172
2214
  type: "datetime",
2173
2215
  label: "Updated",
2174
2216
  icon: "edit_calendar",
@@ -2184,26 +2226,26 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2184
2226
  };
2185
2227
  break;
2186
2228
  }
2187
- const a = me(n || ""), h = (i) => n ? `${a} ${i}` : i;
2188
- if ((l || n) && s) {
2189
- const i = n || e;
2190
- s.group = {
2191
- name: i,
2192
- label: n ? me(n) : s.label,
2193
- icon: n ? re(n) : s.icon
2229
+ const o = me(n || ""), u = (l) => n ? `${o} ${l}` : l;
2230
+ if ((r || n) && a) {
2231
+ const l = n || e;
2232
+ a.group = {
2233
+ name: l,
2234
+ label: n ? me(n) : a.label,
2235
+ icon: n ? re(n) : a.icon
2194
2236
  };
2195
2237
  }
2196
- return s && n && (s.tooltip = h(s.label), s.value = { label: h(s.label) }), s && e === "version" && n === "version" && (s.value = { label: "Product Version" }, s.tooltip = "Product Version"), s;
2197
- }, qs = (e, t, n, l = !1) => {
2198
- const o = e.data.title || e.name, s = l || n ? {
2238
+ return a && n && (a.tooltip = u(a.label), a.value = { label: u(a.label) }), a && e === "version" && n === "version" && (a.value = { label: "Product Version" }, a.tooltip = "Product Version"), a;
2239
+ }, Js = (e, t, n, r = !1) => {
2240
+ const s = e.data.title || e.name, a = r || n ? {
2199
2241
  name: n || e.name,
2200
- label: n ? me(n) : o,
2201
- icon: n ? re(n) : q(e.name, e.data.type, _e(e.data))
2242
+ label: n ? me(n) : s,
2243
+ icon: n ? re(n) : q(e.name, e.data.type, Me(e.data))
2202
2244
  } : void 0;
2203
2245
  return {
2204
- id: rt(e.name, "attributes", t, n),
2246
+ id: ct(e.name, "attributes", t, n),
2205
2247
  type: e.data.type,
2206
- label: o,
2248
+ label: s,
2207
2249
  operator: "OR",
2208
2250
  inverted: !1,
2209
2251
  values: [],
@@ -2212,27 +2254,27 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2212
2254
  allowNoValue: t.enableRelativeValues,
2213
2255
  allowExcludes: t?.enableExcludes,
2214
2256
  operatorChangeable: t?.enableOperatorChange,
2215
- icon: q(e.name, e.data.type, _e(e.data)),
2216
- group: s,
2217
- tooltip: n ? `${me(n)} ${o}` : void 0,
2257
+ icon: q(e.name, e.data.type, Me(e.data)),
2258
+ group: a,
2259
+ tooltip: n ? `${me(n)} ${s}` : void 0,
2218
2260
  value: n ? { icon: re(n) } : void 0,
2219
2261
  singleSelect: ["boolean", "datetime"].includes(e.data.type || "")
2220
2262
  };
2221
- }, He = (e, t, n) => {
2222
- const l = [], o = [];
2263
+ }, Ye = (e, t, n) => {
2264
+ const r = [], s = [];
2223
2265
  if (t) {
2224
- const s = (e || []).flatMap((a) => Array.isArray(a) ? a : [a]);
2225
- Xt(t, s).forEach(
2226
- (a) => {
2227
- const h = a.icon, i = Jt(h);
2228
- l.push({
2229
- id: a.value.toString(),
2266
+ const a = (e || []).flatMap((o) => Array.isArray(o) ? o : [o]);
2267
+ es(t, a).forEach(
2268
+ (o) => {
2269
+ const u = o.icon, l = ts(u);
2270
+ r.push({
2271
+ id: o.value.toString(),
2230
2272
  type: n,
2231
- label: a.label,
2273
+ label: o.label,
2232
2274
  values: [],
2233
- icon: i ? null : h,
2234
- img: i ? h : void 0,
2235
- color: a.color,
2275
+ icon: l ? null : u,
2276
+ img: l ? u : void 0,
2277
+ color: o.color,
2236
2278
  pt: {
2237
2279
  style: { color: "inherit" }
2238
2280
  }
@@ -2240,61 +2282,61 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2240
2282
  }
2241
2283
  );
2242
2284
  }
2243
- return e?.forEach((s) => {
2244
- if (!s) return;
2245
- let a = "";
2246
- switch (typeof s) {
2285
+ return e?.forEach((a) => {
2286
+ if (!a) return;
2287
+ let o = "";
2288
+ switch (typeof a) {
2247
2289
  case "string":
2248
2290
  case "number":
2249
2291
  case "boolean":
2250
- a = s.toString();
2292
+ o = a.toString();
2251
2293
  break;
2252
2294
  case "object":
2253
- Array.isArray(s) ? a = s.join(", ") : a = JSON.stringify(s);
2295
+ Array.isArray(a) ? o = a.join(", ") : o = JSON.stringify(a);
2254
2296
  break;
2255
2297
  }
2256
- const h = a.trim().toLowerCase().replace(/[^a-z0-9\s]/g, "").replace(/\s+/g, "-");
2257
- if (l?.find((c) => c.id === h)) return;
2258
- const d = o.find((c) => c.id === h);
2259
- if (d) {
2260
- d.count++;
2298
+ const u = o.trim().toLowerCase().replace(/[^a-z0-9\s]/g, "").replace(/\s+/g, "-");
2299
+ if (r?.find((c) => c.id === u)) return;
2300
+ const f = s.find((c) => c.id === u);
2301
+ if (f) {
2302
+ f.count++;
2261
2303
  return;
2262
2304
  } else
2263
- o.push({
2264
- id: h,
2305
+ s.push({
2306
+ id: u,
2265
2307
  type: n,
2266
- label: a,
2308
+ label: o,
2267
2309
  values: [],
2268
2310
  count: 1
2269
2311
  });
2270
- }), o.sort((s, a) => a.count - s.count), [...l, ...o];
2271
- }, Qs = (e, t, n) => [...e].sort((l, o) => lt(
2272
- be(l),
2273
- t.get(l.id),
2274
- be(o),
2275
- t.get(o.id),
2312
+ }), s.sort((a, o) => o.count - a.count), [...r, ...s];
2313
+ }, Zs = (e, t, n) => [...e].sort((r, s) => ut(
2314
+ be(r),
2315
+ t.get(r.id),
2316
+ be(s),
2317
+ t.get(s.id),
2276
2318
  n
2277
- )), be = (e) => e.group ? typeof e.group == "string" ? e.group : e.group.name : e.id, Xs = (e, t, n, l) => [...e].sort((o, s) => {
2278
- const a = t.find((i) => (typeof i.group == "string" ? i.group : i.group?.name) === o.name), h = t.find((i) => (typeof i.group == "string" ? i.group : i.group?.name) === s.name);
2279
- return lt(
2280
- a ? be(a) : o.name,
2281
- a ? n.get(a.id) : o.name,
2282
- h ? be(h) : s.name,
2283
- h ? n.get(h.id) : s.name,
2284
- l
2319
+ )), be = (e) => e.group ? typeof e.group == "string" ? e.group : e.group.name : e.id, ea = (e, t, n, r) => [...e].sort((s, a) => {
2320
+ const o = t.find((l) => (typeof l.group == "string" ? l.group : l.group?.name) === s.name), u = t.find((l) => (typeof l.group == "string" ? l.group : l.group?.name) === a.name);
2321
+ return ut(
2322
+ o ? be(o) : s.name,
2323
+ o ? n.get(o.id) : s.name,
2324
+ u ? be(u) : a.name,
2325
+ u ? n.get(u.id) : a.name,
2326
+ r
2285
2327
  );
2286
- }), lt = (e, t, n, l, o) => {
2287
- const s = new Map(o.map((d, c) => [d.name, c])), a = (d) => {
2328
+ }), ut = (e, t, n, r, s) => {
2329
+ const a = new Map(s.map((f, c) => [f.name, c])), o = (f) => {
2288
2330
  let c = 0;
2289
- for (const S of Ks) {
2290
- if (d === S || d.endsWith(`_${S}`)) return c;
2331
+ for (const S of Xs) {
2332
+ if (f === S || f.endsWith(`_${S}`)) return c;
2291
2333
  c++;
2292
2334
  }
2293
2335
  return Number.MAX_SAFE_INTEGER;
2294
- }, h = t ? [1, s.get(t) ?? Number.MAX_SAFE_INTEGER] : [0, a(e)], i = l ? [1, s.get(l) ?? Number.MAX_SAFE_INTEGER] : [0, a(n)];
2295
- return h[0] - i[0] || h[1] - i[1];
2296
- }, wo = (e, t, n, l) => {
2297
- const o = {
2336
+ }, u = t ? [1, a.get(t) ?? Number.MAX_SAFE_INTEGER] : [0, o(e)], l = r ? [1, a.get(r) ?? Number.MAX_SAFE_INTEGER] : [0, o(n)];
2337
+ return u[0] - l[0] || u[1] - l[1];
2338
+ }, Co = (e, t, n, r) => {
2339
+ const s = {
2298
2340
  folder: { conditions: [], operator: e?.operator || "and" },
2299
2341
  product: { conditions: [], operator: e?.operator || "and" },
2300
2342
  task: { conditions: [], operator: e?.operator || "and" },
@@ -2304,17 +2346,17 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2304
2346
  unscoped: { conditions: [], operator: e?.operator || "and" }
2305
2347
  };
2306
2348
  if (!e?.conditions || e?.conditions.length === 0)
2307
- return o;
2308
- const s = (i) => {
2309
- const d = t.find((c) => i.startsWith(`${c}_`));
2310
- if (d) {
2311
- const c = i.substring(`${d}_`.length);
2312
- return { scope: d, cleanId: c };
2349
+ return s;
2350
+ const a = (l) => {
2351
+ const f = t.find((c) => l.startsWith(`${c}_`));
2352
+ if (f) {
2353
+ const c = l.substring(`${f}_`.length);
2354
+ return { scope: f, cleanId: c };
2313
2355
  } else if (n?.fallbackScope)
2314
- return { scope: n.fallbackScope, cleanId: i };
2315
- return { scope: null, cleanId: i };
2316
- }, a = (i) => {
2317
- const d = {
2356
+ return { scope: n.fallbackScope, cleanId: l };
2357
+ return { scope: null, cleanId: l };
2358
+ }, o = (l) => {
2359
+ const f = {
2318
2360
  folder: [],
2319
2361
  product: [],
2320
2362
  task: [],
@@ -2323,34 +2365,34 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2323
2365
  representation: [],
2324
2366
  unscoped: []
2325
2367
  };
2326
- if ("conditions" in i && !("key" in i)) {
2327
- const c = (i.conditions || []).map((S) => a(S));
2328
- Object.keys(d).forEach((S) => {
2368
+ if ("conditions" in l && !("key" in l)) {
2369
+ const c = (l.conditions || []).map((S) => o(S));
2370
+ Object.keys(f).forEach((S) => {
2329
2371
  const y = S, T = c.flatMap((g) => g[y]);
2330
- T.length > 0 && (T.length === 1 && !i.operator ? d[y].push(T[0]) : d[y].push({
2372
+ T.length > 0 && (T.length === 1 && !l.operator ? f[y].push(T[0]) : f[y].push({
2331
2373
  conditions: T,
2332
- operator: i.operator
2374
+ operator: l.operator
2333
2375
  }));
2334
2376
  });
2335
- } else if ("key" in i) {
2336
- const { scope: c, cleanId: S } = s(i.key);
2377
+ } else if ("key" in l) {
2378
+ const { scope: c, cleanId: S } = a(l.key);
2337
2379
  if (c)
2338
- d[c].push({ ...i, key: S });
2380
+ f[c].push({ ...l, key: S });
2339
2381
  else {
2340
- const y = l?.[i.key];
2341
- y ? d[y].push(i) : i.key === $t || i.key === "name" || i.key?.endsWith("_name") ? t.forEach((T) => {
2342
- d[T].push(i);
2343
- }) : d.unscoped.push(i);
2382
+ const y = r?.[l.key];
2383
+ y ? f[y].push(l) : l.key === Ht || l.key === "name" || l.key?.endsWith("_name") ? t.forEach((T) => {
2384
+ f[T].push(l);
2385
+ }) : f.unscoped.push(l);
2344
2386
  }
2345
2387
  }
2346
- return d;
2347
- }, h = (e.conditions || []).map((i) => a(i));
2348
- return Object.keys(o).forEach((i) => {
2349
- const d = i;
2350
- o[d].conditions = h.flatMap((c) => c[d]);
2351
- }), o;
2352
- }, vo = (e, t, n) => {
2353
- const l = {
2388
+ return f;
2389
+ }, u = (e.conditions || []).map((l) => o(l));
2390
+ return Object.keys(s).forEach((l) => {
2391
+ const f = l;
2392
+ s[f].conditions = u.flatMap((c) => c[f]);
2393
+ }), s;
2394
+ }, Oo = (e, t, n) => {
2395
+ const r = {
2354
2396
  folder: [],
2355
2397
  product: [],
2356
2398
  task: [],
@@ -2360,26 +2402,26 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2360
2402
  unscoped: []
2361
2403
  };
2362
2404
  if (!e || e.length === 0)
2363
- return l;
2364
- const o = (a) => t.find((i) => a.startsWith(`${i}_`)) || null, s = (a, h) => {
2365
- const i = `${h}_`;
2366
- return a.startsWith(i) ? a.substring(i.length) : a;
2405
+ return r;
2406
+ const s = (o) => t.find((l) => o.startsWith(`${l}_`)) || null, a = (o, u) => {
2407
+ const l = `${u}_`;
2408
+ return o.startsWith(l) ? o.substring(l.length) : o;
2367
2409
  };
2368
- return e.forEach((a) => {
2369
- if (!a.id) return;
2370
- const h = o(a.id);
2371
- if (h) {
2372
- const i = {
2373
- ...a,
2374
- id: s(a.id, h)
2410
+ return e.forEach((o) => {
2411
+ if (!o.id) return;
2412
+ const u = s(o.id);
2413
+ if (u) {
2414
+ const l = {
2415
+ ...o,
2416
+ id: a(o.id, u)
2375
2417
  };
2376
- l[h].push(i);
2418
+ r[u].push(l);
2377
2419
  } else {
2378
- const i = n?.[a.id];
2379
- i ? l[i].push(a) : l.unscoped.push(a);
2420
+ const l = n?.[o.id];
2421
+ l ? r[l].push(o) : r.unscoped.push(o);
2380
2422
  }
2381
- }), l;
2382
- }, ce = ["status", "tags", "attributes", "createdAt", "updatedAt"], Js = {
2423
+ }), r;
2424
+ }, ce = ["status", "tags", "attributes", "createdAt", "updatedAt"], ta = {
2383
2425
  folder: [...ce, "name", "folderType"],
2384
2426
  task: [...ce, "name", "taskType", "folderType", "assignees"],
2385
2427
  version: [
@@ -2396,208 +2438,213 @@ const Ue = 500, Bs = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, Xa = ({
2396
2438
  product: [...ce, "productName", "productBaseType"],
2397
2439
  representation: [...ce, "name", "extension"],
2398
2440
  user: [...ce]
2399
- }, yo = (e, t) => e.map((n) => ({
2441
+ }, To = (e, t) => e.map((n) => ({
2400
2442
  scope: n,
2401
- filterTypes: Js[n].filter((l) => !t?.[n]?.includes(l))
2443
+ filterTypes: ta[n].filter((r) => !t?.[n]?.includes(r))
2402
2444
  }));
2403
2445
  export {
2404
- vn as $createMediaNode,
2405
- yn as $createMentionNode,
2406
- En as $createYouTubeNode,
2407
- Sn as $getMarkdown,
2408
- kn as $isMediaNode,
2409
- Cn as $isMentionNode,
2410
- On as $isYouTubeNode,
2411
- Tn as $setMarkdown,
2412
- Ja as ACCESS_LEVEL_LABELS,
2413
- In as ACTIVITY_LINK_LABEL,
2414
- Xa as AccessSearchInput,
2415
- Ie as AccessUser,
2416
- ko as AddColumnButton,
2417
- ln as AddNewLinks,
2418
- fo as AddonButton,
2419
- Ds as AddonDialog,
2420
- mo as AddonEntityPicker,
2421
- Co as AddonLoadingScreen,
2422
- go as AddonMoreMenu,
2423
- ho as AddonServices,
2424
- Oo as AttributeEditor,
2425
- Ve as BLOCK_DIALOG_CLOSE_CLASS,
2426
- an as Badge,
2427
- on as BadgeWrapper,
2428
- Pn as CUSTOM_RANGE_ICON,
2429
- An as CUSTOM_RANGE_ID,
2430
- Dn as CellEditingDialog,
2431
- cn as Chips,
2432
- Hl as ColumnHeaderMenuUI,
2433
- ul as ColumnMenuButton,
2434
- To as ColumnsSettings,
2435
- Io as ColumnsSettingsWithContext,
2436
- Bl as CustomDateRangeDialog,
2437
- Po as CustomizeButton,
2438
- Ao as DEFAULT_FEATURED_ORDER,
2439
- Rn as DEFAULT_TOOLBAR,
2440
- Er as DELETE_CONFIRM_THRESHOLD,
2441
- Or as DELETE_TYPE_ORDER,
2442
- Vn as DESCRIPTION_TOOLBAR,
2443
- Za as DateRangePicker,
2444
- Sr as DeleteConfirmContent,
2445
- Tr as DeleteEntitiesConfirmDialog,
2446
- un as DescriptionSection,
2447
- Vr as DetailsDialog,
2448
- Kt as DetailsPanelAttributesEditor,
2449
- Fr as DetailsPanelDetails,
2450
- qt as DetailsSection,
2451
- xn as DoneCheckbox,
2452
- rl as ENTITY_TOOLTIP_TYPES,
2453
- Do as EVERYONE_GROUP_KEY,
2454
- Ro as EVERY_GUESTS_KEY,
2455
- Vo as EarlyPreview,
2456
- Wr as EmptyPlaceholder,
2457
- Kr as EmptyPlaceholderFlex,
2458
- qr as EmptyPlaceholderFlexWrapper,
2459
- dn as EntityIcon,
2460
- tl as EntityPanelUploader,
2461
- sl as EntityPath,
2462
- ll as EntityTooltip,
2463
- xo as EnumEditor,
2464
- Fo as EnumEditorItem,
2465
- pn as EnumItemDialog,
2466
- _t as FEATURED_VERSION_TYPES,
2467
- Fn as FILMSTRIP_ACTIVE_ATTRIBUTE,
2468
- _n as FILMSTRIP_FILE_ATTRIBUTE,
2469
- Ln as FILMSTRIP_POSITION_ATTRIBUTE,
2470
- Js as FILTER_TYPES_BY_SCOPE,
2471
- Mn as FLOATING_TOOLBAR,
2472
- _o as FeaturedVersionOrder,
2473
- ws as FeedbackContext,
2474
- to as FeedbackProvider,
2475
- _r as FieldLabel,
2476
- Lr as FileThumbnail,
2477
- Nn as Filmstrip,
2478
- Bn as FilmstripEntityCard,
2479
- hl as FilterErrorActions,
2480
- Ct as FreeTrialLink,
2481
- Lo as GROUP_KEY_PREFIX,
2482
- Mo as GUEST_KEY_PREFIX,
2483
- Un as INSERT_MENTION_TRIGGER_COMMAND,
2484
- Xr as InfoMessage,
2485
- Zr as JsonViewer,
2486
- No as LegacyBadge,
2487
- fn as LinkManagerItem,
2488
- mn as LinksManager,
2489
- so as ListAttributeForm,
2490
- ao as ListMetaData,
2491
- lo as LoginPage,
2492
- $n as MARKDOWN_TRANSFORMERS,
2493
- zn as MENTION,
2494
- Gn as MENTION_REF_TYPES,
2495
- Hn as MENTION_TRIGGER_BY_TYPE,
2496
- Dl as MENU_PORTAL_CONTENT_ID,
2497
- Rl as MENU_PORTAL_DIALOG_ID,
2498
- Wn as MarkdownEditor,
2499
- Yn as MediaBlock,
2500
- jn as MediaNode,
2501
- Kn as MentionNode,
2502
- ot as Menu,
2503
- at as MenuContainer,
2504
- Vl as MenuList,
2505
- qn as NO_DATE,
2506
- Yr as Placeholder,
2507
- Bo as PowerpackButton,
2508
- oo as PowerpackDialog,
2509
- io as ProjectPageLayoutHost,
2510
- ro as ProjectPageRemote,
2511
- Uo as ProjectTableSettings,
2512
- kr as RefreshToast,
2513
- Ge as RemotePageWrapper,
2514
- Rs as ReportCrash,
2515
- $o as RequiredAddonVersion,
2516
- Mr as ReviewableCard,
2517
- Nr as ReviewableProgressCard,
2518
- Br as ReviewableUpload,
2519
- al as ReviewablesList,
2520
- zo as ReviewablesSelector,
2521
- Go as SettingOption,
2522
- Ho as SettingSwitch,
2523
- Wo as SettingsPanel,
2524
- Yo as SettingsPanelItemTemplate,
2525
- jo as ShareOptionIcon,
2526
- nn as SimpleForm,
2527
- zl as SimpleFormDialog,
2528
- Ko as SizeSlider,
2529
- co as SlicerHost,
2530
- qo as SplitterStyles,
2531
- Ur as StackedThumbnails,
2532
- Qo as StyledLink,
2533
- hn as SubtasksManagerWrapper,
2534
- dl as SupportBubble,
2535
- Cl as SyncButton,
2536
- Xo as TEAM_KEY_PREFIX,
2537
- Jo as TableGridSwitch,
2538
- Ml as TableSearch,
2539
- Sl as TableSettingsFallback,
2540
- $r as Thumbnail,
2541
- Ul as ThumbnailSimple,
2542
- Zo as USER_KEY_PREFIX,
2543
- en as UploadVersionDialog,
2544
- Qn as UserImage,
2545
- As as VersionUploadContext,
2546
- eo as VersionUploadProvider,
2547
- zr as Watchers,
2548
- Xn as YouTubeEmbed,
2549
- Jn as YouTubeNode,
2550
- Ir as buildChildrenDetails,
2551
- Pr as buildEntityLabel,
2552
- Ar as buildExpectedCounts,
2553
- yo as buildScopes,
2554
- Ol as buildSortMenuItem,
2555
- Zn as createFeedMentionSource,
2556
- ve as customRangeOption,
2557
- er as dateOptions,
2558
- tr as datePresetOptions,
2559
- sr as detectRelativeDatePattern,
2560
- ar as filterDateFunctions,
2561
- or as generateDateOptions,
2562
- ye as generateDatePresetOptions,
2563
- Hs as getButtonAction,
2564
- nr as getFilmstripTarget,
2565
- ol as getGroupedReviewables,
2566
- rr as getInlineMediaFileIds,
2567
- lr as getLinkLabel,
2568
- ir as getMediaKind,
2569
- cr as getMentionTrigger,
2570
- ur as getProjectFileId,
2571
- dr as getSourceLink,
2572
- tn as getUiTypeLabel,
2573
- gn as groupLinksByEntity,
2574
- pr as isMediaFile,
2575
- fr as loadFilmstrip,
2576
- bl as markdownToPlainText,
2577
- mr as normalizeLegacyMarkdown,
2578
- hr as parseActivityLink,
2579
- Ns as parseFilename,
2580
- gr as parseYouTubeUrl,
2581
- br as peekFilmstrip,
2582
- wl as renderMediaParagraph,
2583
- vl as renderYouTubeParagraph,
2584
- Fl as shortcutEntities,
2585
- vo as splitClientFiltersByScope,
2586
- wo as splitFiltersByScope,
2587
- Dr as sumExpectedCounts,
2588
- Ce as toMenuItems,
2589
- wr as toggleBlockFormat,
2590
- no as useAddonCustomizeSections,
2591
- _l as useAddonTableShortcuts,
2592
- bo as useBuildFilterOptions,
2593
- yl as useDateRangeFilter,
2594
- vr as useEntityCardFilmstrip,
2595
- pl as useFeedback,
2596
- fl as useFeedbackSafe,
2597
- Il as useOptionalVersionUploadContext,
2598
- uo as useProjectPageSlotContext,
2599
- Gr as useReviewablesUpload,
2600
- po as useStudioPageSlotContext,
2601
- bn as useUpdateLinks,
2602
- Pl as useVersionUploadContext
2446
+ On as $createMediaNode,
2447
+ Tn as $createMentionNode,
2448
+ In as $createYouTubeNode,
2449
+ Pn as $getMarkdown,
2450
+ An as $isMediaNode,
2451
+ Dn as $isMentionNode,
2452
+ Rn as $isYouTubeNode,
2453
+ Vn as $setMarkdown,
2454
+ to as ACCESS_LEVEL_LABELS,
2455
+ xn as ACTIVITY_LINK_LABEL,
2456
+ eo as AccessSearchInput,
2457
+ De as AccessUser,
2458
+ Ao as AddColumnButton,
2459
+ mn as AddNewLinks,
2460
+ go as AddonButton,
2461
+ Vs as AddonDialog,
2462
+ bo as AddonEntityPicker,
2463
+ Do as AddonLoadingScreen,
2464
+ So as AddonMoreMenu,
2465
+ wo as AddonServices,
2466
+ Eo as AddonUserDetailsSections,
2467
+ Ro as AttributeEditor,
2468
+ Fe as BLOCK_DIALOG_CLOSE_CLASS,
2469
+ un as Badge,
2470
+ dn as BadgeWrapper,
2471
+ Fn as CUSTOM_RANGE_ICON,
2472
+ _n as CUSTOM_RANGE_ID,
2473
+ Ln as CellEditingDialog,
2474
+ hn as Chips,
2475
+ Qi as ColumnHeaderMenuUI,
2476
+ gi as ColumnMenuButton,
2477
+ Vo as ColumnsSettings,
2478
+ xo as ColumnsSettingsWithContext,
2479
+ Wi as CustomDateRangeDialog,
2480
+ Fo as CustomizeButton,
2481
+ _o as DEFAULT_FEATURED_ORDER,
2482
+ Mn as DEFAULT_TOOLBAR,
2483
+ Ir as DELETE_CONFIRM_THRESHOLD,
2484
+ Rr as DELETE_TYPE_ORDER,
2485
+ Nn as DESCRIPTION_TOOLBAR,
2486
+ so as DateRangePicker,
2487
+ Pr as DeleteConfirmContent,
2488
+ Vr as DeleteEntitiesConfirmDialog,
2489
+ gn as DescriptionSection,
2490
+ Nr as DetailsDialog,
2491
+ Xt as DetailsPanelAttributesEditor,
2492
+ Br as DetailsPanelDetails,
2493
+ Jt as DetailsSection,
2494
+ Un as DoneCheckbox,
2495
+ pi as ENTITY_TOOLTIP_TYPES,
2496
+ Lo as EVERYONE_GROUP_KEY,
2497
+ Mo as EVERY_GUESTS_KEY,
2498
+ No as EarlyPreview,
2499
+ Xr as EmptyPlaceholder,
2500
+ ei as EmptyPlaceholderFlex,
2501
+ ti as EmptyPlaceholderFlexWrapper,
2502
+ bn as EntityIcon,
2503
+ ii as EntityPanelUploader,
2504
+ li as EntityPath,
2505
+ fi as EntityTooltip,
2506
+ Uo as EnumEditor,
2507
+ Bo as EnumEditorItem,
2508
+ wn as EnumItemDialog,
2509
+ Nt as FEATURED_VERSION_TYPES,
2510
+ Bn as FILMSTRIP_ACTIVE_ATTRIBUTE,
2511
+ $n as FILMSTRIP_FILE_ATTRIBUTE,
2512
+ Gn as FILMSTRIP_POSITION_ATTRIBUTE,
2513
+ ta as FILTER_TYPES_BY_SCOPE,
2514
+ zn as FLOATING_TOOLBAR,
2515
+ $o as FeaturedVersionOrder,
2516
+ Es as FeedbackContext,
2517
+ oo as FeedbackProvider,
2518
+ $r as FieldLabel,
2519
+ Gr as FileThumbnail,
2520
+ Hn as Filmstrip,
2521
+ Wn as FilmstripEntityCard,
2522
+ Ei as FilterErrorActions,
2523
+ It as FreeTrialLink,
2524
+ Go as GROUP_KEY_PREFIX,
2525
+ zo as GUEST_KEY_PREFIX,
2526
+ Yn as INSERT_MENTION_TRIGGER_COMMAND,
2527
+ ai as InfoMessage,
2528
+ ni as JsonViewer,
2529
+ Ho as LegacyBadge,
2530
+ vn as LinkManagerItem,
2531
+ yn as LinksManager,
2532
+ no as ListAttributeForm,
2533
+ ro as ListMetaData,
2534
+ uo as LoginPage,
2535
+ jn as MARKDOWN_TRANSFORMERS,
2536
+ Kn as MENTION,
2537
+ qn as MENTION_REF_TYPES,
2538
+ Qn as MENTION_TRIGGER_BY_TYPE,
2539
+ Li as MENU_PORTAL_CONTENT_ID,
2540
+ Mi as MENU_PORTAL_DIALOG_ID,
2541
+ Xn as MarkdownEditor,
2542
+ Jn as MediaBlock,
2543
+ Zn as MediaNode,
2544
+ er as MentionNode,
2545
+ rt as Menu,
2546
+ nt as MenuContainer,
2547
+ Ni as MenuList,
2548
+ tr as NO_DATE,
2549
+ Jr as Placeholder,
2550
+ Wo as PowerpackButton,
2551
+ io as PowerpackDialog,
2552
+ po as ProjectPageLayoutHost,
2553
+ co as ProjectPageRemote,
2554
+ Yo as ProjectTableSettings,
2555
+ Ar as RefreshToast,
2556
+ We as RemotePageWrapper,
2557
+ xs as ReportCrash,
2558
+ jo as RequiredAddonVersion,
2559
+ zr as ReviewableCard,
2560
+ Hr as ReviewableProgressCard,
2561
+ Wr as ReviewableUpload,
2562
+ ci as ReviewablesList,
2563
+ Ko as ReviewablesSelector,
2564
+ qo as SettingOption,
2565
+ Qo as SettingSwitch,
2566
+ Xo as SettingsPanel,
2567
+ Jo as SettingsPanelItemTemplate,
2568
+ Zo as ShareOptionIcon,
2569
+ pn as SimpleForm,
2570
+ Ki as SimpleFormDialog,
2571
+ en as SizeSlider,
2572
+ fo as SlicerHost,
2573
+ tn as SplitterStyles,
2574
+ Yr as StackedThumbnails,
2575
+ sn as StyledLink,
2576
+ En as SubtasksManagerWrapper,
2577
+ bi as SupportBubble,
2578
+ Di as SyncButton,
2579
+ an as TEAM_KEY_PREFIX,
2580
+ on as TableGridSwitch,
2581
+ zi as TableSearch,
2582
+ Pi as TableSettingsFallback,
2583
+ jr as Thumbnail,
2584
+ Yi as ThumbnailSimple,
2585
+ nn as USER_KEY_PREFIX,
2586
+ rn as UploadVersionDialog,
2587
+ sr as UserImage,
2588
+ Rs as VersionUploadContext,
2589
+ ao as VersionUploadProvider,
2590
+ Kr as Watchers,
2591
+ ar as YouTubeEmbed,
2592
+ or as YouTubeNode,
2593
+ xr as buildChildrenDetails,
2594
+ Fr as buildEntityLabel,
2595
+ _r as buildExpectedCounts,
2596
+ To as buildScopes,
2597
+ Ri as buildSortMenuItem,
2598
+ nr as createFeedMentionSource,
2599
+ Ee as customRangeOption,
2600
+ rr as dateOptions,
2601
+ ir as datePresetOptions,
2602
+ lr as detectRelativeDatePattern,
2603
+ cr as filterDateFunctions,
2604
+ ur as generateDateOptions,
2605
+ Se as generateDatePresetOptions,
2606
+ Ys as getButtonAction,
2607
+ dr as getFilmstripTarget,
2608
+ ui as getGroupedReviewables,
2609
+ pr as getInlineMediaFileIds,
2610
+ fr as getLinkLabel,
2611
+ mr as getMediaKind,
2612
+ hr as getMentionTrigger,
2613
+ gr as getProjectFileId,
2614
+ br as getSourceLink,
2615
+ ln as getUiTypeLabel,
2616
+ Sn as groupLinksByEntity,
2617
+ wr as isMediaFile,
2618
+ vr as loadFilmstrip,
2619
+ ki as markdownToPlainText,
2620
+ yr as normalizeLegacyMarkdown,
2621
+ Er as parseActivityLink,
2622
+ Bs as parseFilename,
2623
+ Sr as parseYouTubeUrl,
2624
+ kr as peekFilmstrip,
2625
+ Ci as renderMediaParagraph,
2626
+ Oi as renderYouTubeParagraph,
2627
+ Bi as shortcutEntities,
2628
+ lt as showsForSelection,
2629
+ Oo as splitClientFiltersByScope,
2630
+ Co as splitFiltersByScope,
2631
+ Lr as sumExpectedCounts,
2632
+ Ie as toMenuItems,
2633
+ Qs as toUserRef,
2634
+ Cr as toggleBlockFormat,
2635
+ lo as useAddonCustomizeSections,
2636
+ $i as useAddonTableShortcuts,
2637
+ yo as useAddonUserMenuItems,
2638
+ ko as useBuildFilterOptions,
2639
+ Ti as useDateRangeFilter,
2640
+ Or as useEntityCardFilmstrip,
2641
+ wi as useFeedback,
2642
+ vi as useFeedbackSafe,
2643
+ xi as useOptionalVersionUploadContext,
2644
+ mo as useProjectPageSlotContext,
2645
+ qr as useReviewablesUpload,
2646
+ ho as useStudioPageSlotContext,
2647
+ kn as useUpdateLinks,
2648
+ vo as useUserDetailsSlotContext,
2649
+ Fi as useVersionUploadContext
2603
2650
  };