@ynput/ayon-frontend-shared 0.7.5 → 0.7.6

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