@ynput/ayon-frontend-shared 0.4.6 → 0.5.0

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 (62) hide show
  1. package/dist/DetailsPanel.es.js +686 -653
  2. package/dist/ListTable.es.js +11 -10
  3. package/dist/ProjectTreeTable.es.js +2225 -2186
  4. package/dist/Slicer.es.js +152 -120
  5. package/dist/api.es.js +202 -201
  6. package/dist/chunks/Actions.es.js +20 -20
  7. package/dist/chunks/ColumnDropIndicator.es.js +128 -242
  8. package/dist/chunks/DeleteEntitiesContext.es.js +37 -37
  9. package/dist/chunks/DetailsDialog.es.js +3 -3
  10. package/dist/chunks/EntityPath.es.js +23 -23
  11. package/dist/chunks/EntityPickerDialog.es.js +2 -2
  12. package/dist/chunks/EntityTooltip.es.js +12 -12
  13. package/dist/chunks/Feed.es.js +16 -16
  14. package/dist/chunks/FilterErrorActions.es.js +5 -5
  15. package/dist/chunks/GlobalContext.es.js +14 -14
  16. package/dist/chunks/InfoMessage.es.js +146 -0
  17. package/dist/chunks/JsonViewer.es.js +1 -1
  18. package/dist/chunks/Menu.es.js +5 -5
  19. package/dist/chunks/MenuContext.es.js +75 -73
  20. package/dist/chunks/MetaWidget.es.js +1970 -1962
  21. package/dist/chunks/NewEntityContext.es.js +538 -543
  22. package/dist/chunks/PlayableIcon.es.js +54 -54
  23. package/dist/chunks/ProjectContext.es.js +12 -12
  24. package/dist/chunks/ProjectFoldersContext.es.js +84 -76
  25. package/dist/chunks/RepresentationsList.es.js +1 -1
  26. package/dist/chunks/ReviewablesSelector.es.js +390 -387
  27. package/dist/chunks/SimpleTable.es.js +286 -283
  28. package/dist/chunks/Slicer.es.js +1122 -684
  29. package/dist/chunks/VersionUploadContext.es.js +26 -26
  30. package/dist/chunks/VideoPlayer.es.js +1 -1
  31. package/dist/chunks/ViewsContext.es.js +31 -31
  32. package/dist/chunks/Watchers.es.js +2 -2
  33. package/dist/chunks/entityDefinitions.es.js +275 -133
  34. package/dist/chunks/getUris.es.js +236 -231
  35. package/dist/chunks/searchTerms.es.js +10 -1
  36. package/dist/chunks/useAttributeEnums.es.js +69 -61
  37. package/dist/chunks/useColumnDragRestriction.es.js +1 -1
  38. package/dist/chunks/useLocalStorage.es.js +11 -11
  39. package/dist/chunks/viewUpdateHelper.es.js +23 -23
  40. package/dist/components.es.js +168 -168
  41. package/dist/hooks.es.js +47 -46
  42. package/dist/index.es.js +14 -13
  43. package/dist/types/Actions.d.ts +7 -7
  44. package/dist/types/ContextMenu.d.ts +7 -7
  45. package/dist/types/DetailsPanel.d.ts +13 -7
  46. package/dist/types/EntityPickerDialog.d.ts +7 -7
  47. package/dist/types/Feed.d.ts +7 -7
  48. package/dist/types/ListTable.d.ts +7 -7
  49. package/dist/types/NewEntity.d.ts +7 -7
  50. package/dist/types/ProjectTreeTable.d.ts +35 -13
  51. package/dist/types/RepresentationsList.d.ts +10 -7
  52. package/dist/types/SimpleTable.d.ts +8 -7
  53. package/dist/types/Slicer.d.ts +110 -25
  54. package/dist/types/Views.d.ts +7 -7
  55. package/dist/types/api.d.ts +20 -7
  56. package/dist/types/components.d.ts +14 -12
  57. package/dist/types/context.d.ts +7 -7
  58. package/dist/types/hooks.d.ts +7 -7
  59. package/dist/types/index.d.ts +7 -7
  60. package/dist/types/util.d.ts +7 -7
  61. package/package.json +11 -1
  62. package/dist/chunks/useSlicerSplitter.es.js +0 -18
@@ -1,10 +1,10 @@
1
- import { jsx as O } from "react/jsx-runtime";
2
- import { useMemo as k, useCallback as E, useContext as D } from "react";
3
- import { f as m } from "./MenuContext.es.js";
4
- import { S as T, b as g } from "./MetaWidget.es.js";
5
- import { u as A, a as $ } from "./useLocalStorage.es.js";
6
- const F = () => {
7
- const e = () => ({
1
+ import { u as W, a as ce } from "./useLocalStorage.es.js";
2
+ import { jsx as ue } from "react/jsx-runtime";
3
+ import { useState as Se, useEffect as M, useRef as I, useCallback as S, useMemo as G, useContext as ae } from "react";
4
+ import { r as U, w as ie, f as ye } from "./MenuContext.es.js";
5
+ import { S as fe, b as X } from "./MetaWidget.es.js";
6
+ const he = () => {
7
+ const r = () => ({
8
8
  formatStatuses: () => [],
9
9
  formatTaskTypes: () => [],
10
10
  formatTypes: () => [],
@@ -12,64 +12,88 @@ const F = () => {
12
12
  formatAttribute: () => [],
13
13
  formatProductTypes: () => [],
14
14
  formatAuthors: () => []
15
- }), { powerLicense: r } = A(), [a, { isLoading: t }] = $({
15
+ }), { powerLicense: n } = W(), [c, { isLoading: a }] = ce({
16
16
  addon: "powerpack",
17
17
  remote: "slicer",
18
18
  module: "useExtraSlices",
19
- fallback: e,
20
- skip: !r
19
+ fallback: r,
20
+ skip: !n
21
21
  // skip loading if powerpack license is not available
22
- }), [l] = $({
22
+ }), [f] = ce({
23
23
  addon: "powerpack",
24
24
  remote: "slicer",
25
25
  module: "SlicerDropdown",
26
- fallback: T,
27
- skip: !r
26
+ fallback: fe,
27
+ skip: !n
28
28
  // skip loading if powerpack license is not available
29
29
  });
30
- return { useExtraSlices: a, isLoadingExtraSlices: t, SlicerDropdown: l };
31
- }, G = ({
32
- sliceType: e,
33
- page: r,
34
- projectName: a,
35
- ...t
30
+ return { useExtraSlices: c, isLoadingExtraSlices: a, SlicerDropdown: f };
31
+ }, xe = ["slicer-selection-", "slicer-expanded-"], oe = (r, n, c) => c === "hierarchy" ? `slicer-selection-hierarchy-${r}` : `slicer-selection-${r}-${n}-${c}`, re = (r, n, c) => c === "hierarchy" ? `slicer-expanded-hierarchy-${r}` : `slicer-expanded-${r}-${n}-${c}`, ve = ({
32
+ sliceTypes: r,
33
+ page: n,
34
+ projectName: c,
35
+ ...a
36
36
  }) => {
37
- const [l, w] = m(
38
- `slicer-selection-hierarchy-${a}`,
39
- {}
40
- ), [y, v] = m(
41
- `slicer-selection-${a}-${r}`,
42
- {}
43
- ), [d, u] = m(
44
- `slicer-expanded-hierarchy-${a}`,
45
- {}
46
- ), [i, c] = m(
47
- `slicer-expanded-${a}-${r}`,
48
- {}
49
- ), f = k(
50
- () => t.rowSelection ?? (e === "hierarchy" ? l : y),
51
- [t.rowSelection, e, l, y]
52
- ), h = E(
53
- (o, x = e) => {
54
- t.setRowSelection ? t.setRowSelection(o) : x === "hierarchy" ? w(o) : v(o);
37
+ const [f, _] = Se(0);
38
+ M(() => {
39
+ const e = (i) => {
40
+ const o = i.detail?.key ?? ("key" in i ? i.key : void 0);
41
+ o && !xe.some((y) => o.startsWith(y)) || _((y) => y + 1);
42
+ };
43
+ return window.addEventListener("session-storage", e), window.addEventListener("storage", e), () => {
44
+ window.removeEventListener("session-storage", e), window.removeEventListener("storage", e);
45
+ };
46
+ }, []);
47
+ const L = I(/* @__PURE__ */ new Map()), h = S((e, i) => {
48
+ const o = typeof window > "u" ? null : sessionStorage.getItem(e), y = L.current.get(e);
49
+ if (y && y.raw === o) return y.value;
50
+ const T = U(e, i);
51
+ return L.current.set(e, { raw: o, value: T }), T;
52
+ }, []), s = r[0], u = S(
53
+ (e) => a.rowSelection !== void 0 && e === s ? a.rowSelection : h(oe(c, n, e), {}),
54
+ // storageVersion invalidates memoized reads when any bucket changes
55
+ [a.rowSelection, s, c, n, h, f]
56
+ ), x = S(
57
+ (e, i) => {
58
+ if (a.setRowSelection && e === s) {
59
+ a.setRowSelection(i);
60
+ return;
61
+ }
62
+ const o = oe(c, n, e), y = typeof i == "function" ? i(h(o, {})) : i;
63
+ ie(o, y);
55
64
  },
56
- [t.setRowSelection, e, w, v]
57
- ), n = k(
58
- () => e === "hierarchy" ? d : i,
59
- [e, d, i]
60
- ), S = E(
61
- (o, x = e) => {
62
- t.setExpanded ? t.setExpanded(o) : x === "hierarchy" ? u(o) : c(o);
65
+ [a.setRowSelection, s, c, n, h]
66
+ ), D = S(
67
+ (e) => a.expanded !== void 0 && e === s ? a.expanded : h(re(c, n, e), {}),
68
+ [a.expanded, s, c, n, h, f]
69
+ ), P = S(
70
+ (e, i) => {
71
+ if (a.setExpanded && e === s) {
72
+ a.setExpanded(i);
73
+ return;
74
+ }
75
+ const o = re(c, n, e), y = typeof i == "function" ? i(h(o, {})) : i;
76
+ ie(o, y);
63
77
  },
64
- [t.setExpanded, e, u, c]
78
+ [a.setExpanded, s, c, n, h]
79
+ ), w = u(s), b = S(
80
+ (e, i = s) => x(i, e),
81
+ [x, s]
82
+ ), k = D(s), g = S(
83
+ (e, i = s) => P(i, e),
84
+ [P, s]
65
85
  );
66
86
  return {
67
- rowSelection: f,
68
- setRowSelection: h,
69
- expanded: n,
70
- setExpanded: S
87
+ rowSelection: w,
88
+ setRowSelection: b,
89
+ expanded: k,
90
+ setExpanded: g,
91
+ getPanelSelection: u,
92
+ setPanelSelection: x,
93
+ getPanelExpanded: D,
94
+ setPanelExpanded: P
71
95
  };
72
- }, B = {
96
+ }, be = {
73
97
  progress: {
74
98
  fields: [
75
99
  { value: "hierarchy" },
@@ -100,105 +124,222 @@ const F = () => {
100
124
  { value: "entityList" }
101
125
  ]
102
126
  }
103
- }, J = ({
104
- children: e,
105
- page: r,
106
- projectName: a,
107
- viewSettings: t,
108
- isLoadingViews: l,
109
- updateViewSettings: w,
110
- onOpenViewer: y,
111
- onAddToList: v,
112
- ...d
127
+ }, le = ["overview", "products"], Te = ({
128
+ children: r,
129
+ page: n,
130
+ projectName: c,
131
+ viewSettings: a,
132
+ isLoadingViews: f,
133
+ updateViewSettings: _,
134
+ onOpenViewer: L,
135
+ onAddToList: h,
136
+ ...s
113
137
  }) => {
114
- const u = d.sliceType ?? t?.sliceType ?? "hierarchy", { rowSelection: i, setRowSelection: c, expanded: f, setExpanded: h } = G({
115
- sliceType: u,
116
- page: r,
117
- projectName: a,
118
- ...d
119
- }), [n, S] = m(
120
- `slicer-pinned-slice-${r}`,
138
+ const [u, x] = ye(
139
+ `slicer-pinned-slice-${n}`,
121
140
  null
122
- ), o = E(
123
- (s) => {
124
- c(s);
141
+ ), { powerLicense: D } = W(), P = a, w = P?.sliceTypes, b = P?.sliceType, k = w?.length ? b && b !== w[0] ? [b, ...w.slice(1)] : w : [b ?? "hierarchy"], g = le.includes(n) && !s.sliceType && !w?.length && k[0] !== "hierarchy" && u?.sliceType === "hierarchy" && Object.values(u.rowSelection || {}).some(Boolean), e = G(
142
+ () => [
143
+ ...new Set(
144
+ s.sliceType ? [s.sliceType] : g ? [...k, "hierarchy"] : k
145
+ )
146
+ ],
147
+ [s.sliceType, k.join("|"), g]
148
+ ), i = P?.collapsedSliceTypes, o = G(() => i ?? [], [i?.join("|")]), y = G(
149
+ () => e.map((t) => ({ id: t, sliceType: t })),
150
+ [e]
151
+ ), T = y[0].sliceType, {
152
+ rowSelection: A,
153
+ setRowSelection: K,
154
+ expanded: O,
155
+ setExpanded: B,
156
+ getPanelSelection: H,
157
+ setPanelSelection: R,
158
+ getPanelExpanded: q,
159
+ setPanelExpanded: C
160
+ } = ve({
161
+ sliceTypes: e,
162
+ page: n,
163
+ projectName: c,
164
+ ...s
165
+ }), z = S(
166
+ (t) => {
167
+ K(t);
168
+ },
169
+ [K]
170
+ ), v = S(
171
+ (t, d) => {
172
+ const l = () => {
173
+ };
174
+ _(
175
+ {
176
+ sliceTypes: t,
177
+ sliceType: t[0],
178
+ collapsedSliceTypes: (d ?? o).filter((m) => t.includes(m))
179
+ },
180
+ l,
181
+ l,
182
+ {}
183
+ );
125
184
  },
126
- [c]
127
- ), x = E(
128
- (s, P) => {
129
- if (d.onSliceTypeChange)
130
- d.onSliceTypeChange(s, P);
131
- else {
132
- const L = () => {
133
- };
134
- w({ sliceType: s }, L, L, {});
185
+ [_, o]
186
+ ), J = S(
187
+ (t) => {
188
+ const d = o.includes(t) ? o.filter((l) => l !== t) : [...o, t];
189
+ v(e, d);
190
+ },
191
+ [o, v, e]
192
+ ), $ = `${c}-${n}`, Q = I(/* @__PURE__ */ new Set());
193
+ M(() => {
194
+ !g || f || Q.current.has($) || (Q.current.add($), Object.keys(H("hierarchy")).length || (R("hierarchy", u.rowSelection), C("hierarchy", u.expanded)), v(e));
195
+ }, [g, f, $]);
196
+ const Y = I(/* @__PURE__ */ new Set());
197
+ M(() => {
198
+ if (Y.current.has($) || f || s.sliceType || s.rowSelection || s.setRowSelection || w?.length)
199
+ return;
200
+ Y.current.add($);
201
+ const t = `slicer-selection-${c}-${n}`, d = `slicer-expanded-${c}-${n}`, l = k[0];
202
+ if (l !== "hierarchy") {
203
+ const m = U(t, null);
204
+ if (m && Object.keys(m).length) {
205
+ R(
206
+ l,
207
+ (ne) => Object.keys(ne).length ? ne : m
208
+ );
209
+ const E = U(d, null);
210
+ E && C(l, E);
135
211
  }
136
- n && s === n.sliceType ? (c(n.rowSelection, s), h(n.expanded, s), S(null)) : (console.log("Clearing current pinned slice as switching to a different slice type"), c({}, s), h({}, s)), P && (console.log("Pinning current slice type and selection data", i), S({
137
- sliceType: u,
138
- rowSelection: i,
139
- expanded: f
140
- }));
212
+ }
213
+ sessionStorage.removeItem(t), sessionStorage.removeItem(d);
214
+ }, [f, w, $]), M(() => {
215
+ le.includes(n) && !s.sliceType && !f && u && !g && x(null);
216
+ }, [n, s.sliceType, f, u, g, x]);
217
+ const Z = S(
218
+ (t, d) => {
219
+ if (D && e.slice(1).includes(t)) return;
220
+ s.onSliceTypeChange ? s.onSliceTypeChange(t, d) : v([t, ...e.slice(1).filter((E) => E !== t)]);
221
+ const l = (E) => s.setRowSelection ? s.setRowSelection(E) : K(E, t), m = (E) => s.setExpanded ? s.setExpanded(E) : B(E, t);
222
+ u && t === u.sliceType ? (l(u.rowSelection), m(u.expanded), x(null)) : t !== "hierarchy" && (l({}), m({})), d && x({
223
+ sliceType: T,
224
+ rowSelection: A,
225
+ expanded: O
226
+ });
141
227
  },
142
228
  [
143
- w,
144
- i,
145
- c,
146
- n,
147
- S,
148
- f,
149
- h
229
+ v,
230
+ e,
231
+ A,
232
+ K,
233
+ u,
234
+ x,
235
+ O,
236
+ B,
237
+ s.setRowSelection,
238
+ s.setExpanded,
239
+ D
150
240
  ]
151
- ), b = E(
152
- (s) => {
153
- h(s);
241
+ ), F = S(
242
+ (t) => {
243
+ t !== "hierarchy" && (R(t, {}), C(t, {}));
244
+ },
245
+ [R, C]
246
+ ), V = S(
247
+ (t) => {
248
+ !t || e.includes(t) || (v([...e, t]), F(t));
249
+ },
250
+ [e, v, F]
251
+ ), j = S(
252
+ (t) => {
253
+ if (e.length <= 1 || !e.includes(t)) return;
254
+ const d = e.filter((l) => l !== t);
255
+ v(d, d.length > 1 ? void 0 : []);
154
256
  },
155
- [h]
156
- ), { useExtraSlices: p, isLoadingExtraSlices: C, SlicerDropdown: R } = F(), _ = k(
257
+ [e, v]
258
+ ), p = S(
259
+ (t, d) => {
260
+ !e.includes(t) || e.includes(d) || (v(
261
+ e.map((l) => l === t ? d : l),
262
+ o.map((l) => l === t ? d : l)
263
+ ), F(d));
264
+ },
265
+ [e, v, F, o]
266
+ ), N = S(
267
+ (t) => {
268
+ B(t);
269
+ },
270
+ [B]
271
+ ), { useExtraSlices: ee, isLoadingExtraSlices: te, SlicerDropdown: se } = he(), de = G(
157
272
  () => ({
158
- projectName: a,
159
- useExtraSlices: p,
160
- isLoadingExtraSlices: C,
161
- SlicerDropdown: R,
273
+ projectName: c,
274
+ page: n,
275
+ useExtraSlices: ee,
276
+ isLoadingExtraSlices: te,
277
+ SlicerDropdown: se,
162
278
  // SLICE TYPE
163
- sliceType: u,
164
- onSliceTypeChange: x,
279
+ sliceType: T,
280
+ onSliceTypeChange: Z,
281
+ // SLICE PANELS
282
+ slices: y,
283
+ addSlicePanel: V,
284
+ removeSlicePanel: j,
285
+ setPanelSliceType: p,
286
+ getPanelSelection: H,
287
+ setPanelSelection: R,
288
+ getPanelExpanded: q,
289
+ setPanelExpanded: C,
290
+ collapsedPanels: o,
291
+ togglePanelCollapsed: J,
165
292
  // ROW SELECTION
166
- rowSelection: i,
167
- onRowSelectionChange: o,
293
+ rowSelection: A,
294
+ onRowSelectionChange: z,
168
295
  // PINNED SLICE
169
- pinnedSlice: n,
170
- setPinnedSlice: S,
171
- expanded: f,
172
- onExpandedChange: b,
296
+ pinnedSlice: u,
297
+ setPinnedSlice: x,
298
+ expanded: O,
299
+ onExpandedChange: N,
173
300
  // loading state
174
- isViewSyncPending: l,
175
- onOpenViewer: y,
176
- onAddToList: v
301
+ isViewSyncPending: f,
302
+ onOpenViewer: L,
303
+ onAddToList: h
177
304
  }),
178
305
  [
306
+ n,
307
+ ee,
308
+ te,
309
+ se,
310
+ T,
311
+ Z,
312
+ y,
313
+ o,
314
+ J,
315
+ V,
316
+ j,
179
317
  p,
180
- C,
318
+ H,
181
319
  R,
320
+ q,
321
+ C,
322
+ A,
323
+ z,
182
324
  u,
183
325
  x,
184
- i,
185
- o,
186
- n,
187
- S,
326
+ O,
327
+ N,
188
328
  f,
189
- b,
190
- l,
191
- y,
192
- v
329
+ L,
330
+ h
193
331
  ]
194
332
  );
195
- return /* @__PURE__ */ O(g.Provider, { value: _, children: e });
196
- }, K = () => {
197
- const e = D(g);
198
- if (e === void 0)
333
+ return /* @__PURE__ */ ue(X.Provider, { value: de, children: r });
334
+ }, Re = () => {
335
+ const r = ae(X);
336
+ if (r === void 0)
199
337
  throw new Error("useSlicerContext must be used within a SlicerProvider");
200
- return e;
201
- }, Q = () => D(g), U = {
338
+ return r;
339
+ }, Ee = () => ae(X), Ce = () => {
340
+ const r = Ee(), { powerLicense: n } = W();
341
+ return r ? (n ? r.slices : r.slices?.slice(0, 1))?.some((a) => a.sliceType === "hierarchy") ? r.getPanelSelection("hierarchy") : r.pinnedSlice?.rowSelection ?? null : null;
342
+ }, $e = {
202
343
  folder: {
203
344
  label: "Folder",
204
345
  createLabel: "Create folder",
@@ -211,11 +352,12 @@ const F = () => {
211
352
  }
212
353
  };
213
354
  export {
214
- B as S,
215
- J as a,
216
- K as b,
217
- F as c,
218
- G as d,
219
- U as n,
220
- Q as u
355
+ be as S,
356
+ Te as a,
357
+ Ce as b,
358
+ Ee as c,
359
+ he as d,
360
+ ve as e,
361
+ $e as n,
362
+ Re as u
221
363
  };