@ynput/ayon-frontend-shared 0.3.28 → 0.3.29

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 (99) hide show
  1. package/dist/_virtual/index.cjs14.js +1 -1
  2. package/dist/_virtual/index.cjs15.js +1 -1
  3. package/dist/_virtual/index.cjs19.js +1 -1
  4. package/dist/_virtual/index.cjs4.js +1 -1
  5. package/dist/_virtual/index.cjs5.js +1 -1
  6. package/dist/_virtual/index.cjs6.js +1 -1
  7. package/dist/_virtual/index.cjs8.js +1 -1
  8. package/dist/_virtual/index.cjs9.js +1 -1
  9. package/dist/_virtual/index.es10.js +2 -2
  10. package/dist/_virtual/index.es11.js +2 -2
  11. package/dist/_virtual/index.es13.js +2 -2
  12. package/dist/_virtual/index.es14.js +2 -5
  13. package/dist/_virtual/index.es14.js.map +1 -1
  14. package/dist/_virtual/index.es15.js +2 -2
  15. package/dist/_virtual/index.es16.js +2 -2
  16. package/dist/_virtual/index.es17.js +2 -2
  17. package/dist/_virtual/index.es18.js +2 -2
  18. package/dist/_virtual/index.es19.js +2 -2
  19. package/dist/_virtual/index.es4.js +5 -2
  20. package/dist/_virtual/index.es4.js.map +1 -1
  21. package/dist/_virtual/index.es5.js +2 -5
  22. package/dist/_virtual/index.es5.js.map +1 -1
  23. package/dist/_virtual/index.es6.js +2 -2
  24. package/dist/_virtual/index.es8.js +2 -2
  25. package/dist/_virtual/index.es9.js +5 -2
  26. package/dist/_virtual/index.es9.js.map +1 -1
  27. package/dist/components.cjs.js +1 -1
  28. package/dist/components.es.js +34 -33
  29. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  30. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  31. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  32. package/dist/node_modules/remove-accents/index.es.js +1 -1
  33. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  34. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  35. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  37. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  39. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
  40. package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
  41. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
  42. package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
  43. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
  44. package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
  45. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
  52. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
  53. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
  54. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
  55. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
  56. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.cjs.js +1 -1
  57. package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/utils.es.js +1 -1
  58. package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
  59. package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
  60. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.cjs.js +1 -1
  61. package/dist/shared/node_modules/@module-federation/sdk/dist/utils.es.js +1 -1
  62. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  63. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  64. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  65. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
  66. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  67. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  68. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
  69. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  70. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  71. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
  72. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  73. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  74. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  75. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +155 -133
  76. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  77. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js +1 -1
  78. package/dist/shared/src/components/Powerpack/PricingLink.cjs.js.map +1 -1
  79. package/dist/shared/src/components/Powerpack/PricingLink.es.js +5 -5
  80. package/dist/shared/src/components/Powerpack/PricingLink.es.js.map +1 -1
  81. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
  82. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
  83. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +29 -29
  84. package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
  85. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  86. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  87. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +100 -99
  88. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  89. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  90. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  91. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +23 -23
  92. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  93. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  94. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  95. package/dist/shared/src/containers/Feed/Feed.es.js +1 -1
  96. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  97. package/dist/types/components/Powerpack/PricingLink.d.ts +1 -1
  98. package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +1 -0
  99. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { j as ut } from "../../../../../_virtual/jsx-runtime.es.js";
1
+ import { j as ct } from "../../../../../_virtual/jsx-runtime.es.js";
2
2
  import "../../../api/base/client.es.js";
3
3
  import "../../../api/generated/graphql.es.js";
4
4
  import "../../../api/generated/graphqlLinks.es.js";
@@ -71,8 +71,8 @@ import "../../../api/queries/overview/getOverview.es.js";
71
71
  import "../../../api/queries/overview/updateOverview.es.js";
72
72
  import "../../../api/queries/versions/getVersionsProducts.es.js";
73
73
  import "../../../api/queries/permissions/getPermissions.es.js";
74
- import { useCreateProductMutation as ct } from "../../../api/queries/products/createProduct.es.js";
75
- import { useGetFolderProductsQuery as ft } from "../../../api/queries/products/getFolderProducts.es.js";
74
+ import { useCreateProductMutation as ft } from "../../../api/queries/products/createProduct.es.js";
75
+ import { useGetFolderProductsQuery as vt } from "../../../api/queries/products/getFolderProducts.es.js";
76
76
  import "../../../api/queries/project/getProject.es.js";
77
77
  import "../../../api/queries/project/updateProject.es.js";
78
78
  import "../../../api/queries/projectFolders/projectFolders.es.js";
@@ -87,17 +87,17 @@ import "../../../api/queries/userDashboard/getUserDashboard.es.js";
87
87
  import "../../../api/queries/users/getUsers.es.js";
88
88
  import "../../../api/queries/users/updateUsers.es.js";
89
89
  import "../../../api/queries/users/guests.es.js";
90
- import { useGetLatestProductVersionQuery as vt, useGetVersionQuery as It, useCreateVersionMutation as Vt } from "../../../api/queries/versions/updateVersions.es.js";
90
+ import { useGetLatestProductVersionQuery as It, useGetVersionQuery as Vt, useCreateVersionMutation as kt } from "../../../api/queries/versions/updateVersions.es.js";
91
91
  import "../../../api/queries/views/getViews.es.js";
92
92
  import "../../../api/queries/views/updateViews.es.js";
93
93
  import "../../../api/queries/watchers/getWatchers.es.js";
94
94
  import "../../../api/queries/uris/getUris.es.js";
95
- import { createContext as kt, useState as i, useRef as mt, useMemo as pt, useCallback as I, useEffect as A, useContext as Tt } from "react";
95
+ import { createContext as Tt, useState as i, useRef as mt, useMemo as et, useCallback as I, useEffect as A, useContext as nt } from "react";
96
96
  import "lodash";
97
- import { toast as et } from "react-toastify";
97
+ import { toast as st } from "react-toastify";
98
98
  import "uuid";
99
99
  import { extractVersionFromFilename as Pt } from "../../../util/extractVersionFromFilename.es.js";
100
- import { createVersionHelper as ht, createProductAndVersion as wt, validateFormData as yt } from "../../../util/versionUploadHelpers.es.js";
100
+ import { createVersionHelper as ht, createProductAndVersion as wt, validateFormData as xt } from "../../../util/versionUploadHelpers.es.js";
101
101
  import "../../../util/pubsub.es.js";
102
102
  import "@dnd-kit/core";
103
103
  import "@dnd-kit/sortable";
@@ -271,61 +271,61 @@ import "../../Menu/MenuItem.es.js";
271
271
  import "../../ReviewablesSelector/ReviewablesSelector.es.js";
272
272
  import "../../ReviewablesList/ReviewablesList.styled.es.js";
273
273
  import "../../ReviewablesList/ReviewablesUpload.styled.es.js";
274
- import { parseFilename as Ft } from "../../ReviewablesList/useReviewablesUpload.es.js";
275
- const st = kt(void 0), T = {
274
+ import { parseFilename as yt } from "../../ReviewablesList/useReviewablesUpload.es.js";
275
+ const G = Tt(void 0), T = {
276
276
  version: 1,
277
277
  name: "review",
278
278
  productType: "review"
279
- }, Lp = ({
280
- children: F,
279
+ }, Lm = ({
280
+ children: y,
281
281
  projectName: u,
282
- onVersionCreated: G,
283
- dispatch: M
282
+ onVersionCreated: M,
283
+ dispatch: Q
284
284
  }) => {
285
- const [d, g] = i(""), [m, x] = i(""), [P, V] = i(null), [Q, v] = i(null), [e, D] = i(!1), [k, E] = i([]), [c, p] = i(T), [B, C] = i(!1), [H, b] = i(""), [q, z] = i(null), [J, K] = i(null), [U, W] = i(void 0), [O, X] = i(void 0), f = mt(!1), Y = mt(null), { data: s = [], isLoading: Z } = ft(
285
+ const [d, F] = i(""), [p, g] = i(""), [P, V] = i(null), [D, v] = i(null), [e, B] = i(!1), [k, E] = i([]), [c, m] = i(T), [H, C] = i(!1), [q, U] = i(""), [z, J] = i(null), [K, W] = i(null), [b, X] = i(void 0), [O, Y] = i(void 0), f = mt(!1), Z = mt(null), { data: s = [], isLoading: _ } = vt(
286
286
  { projectName: u, folderId: d },
287
- { skip: !d || !e || !!m }
288
- ), n = pt(() => {
289
- if (!(m || !c.name || s.length === 0))
287
+ { skip: !d || !e || !!p }
288
+ ), n = et(() => {
289
+ if (!(p || !c.name || s.length === 0))
290
290
  return s.find((t) => t.name === c.name);
291
- }, [m, c.name, s]), a = m || n?.id || "", { currentData: L } = vt(
291
+ }, [p, c.name, s]), a = p || n?.id || "", { currentData: L } = It(
292
292
  {
293
293
  projectName: u,
294
- productId: m
294
+ productId: p
295
295
  },
296
- { skip: !m || !e || U != null }
297
- ), { data: _ } = It(
296
+ { skip: !p || !e || b != null }
297
+ ), { data: $ } = Vt(
298
298
  { projectName: u, versionId: O },
299
299
  { skip: !O || !e || P !== null }
300
- ), h = P ?? _?.taskId ?? "", $ = !!(O && P === null && !_), N = I(
301
- ({ productId: t, folderId: r, taskId: o, linkedTask: l, latestVersionNumber: y, latestVersionId: at }) => {
302
- x(t || ""), g(r || ""), V(o || null), v(l || null), W(y), X(at), p((lt) => ({
303
- ...lt,
304
- ...y != null ? { version: y + 1 } : {}
305
- })), D(!0);
300
+ ), h = P ?? $?.taskId ?? "", N = !!(O && P === null && !$), j = I(
301
+ ({ productId: t, folderId: r, taskId: o, linkedTask: l, latestVersionNumber: x, latestVersionId: lt }) => {
302
+ g(t || ""), F(r || ""), V(o || null), v(l || null), X(x), Y(lt), m((ut) => ({
303
+ ...ut,
304
+ ...x != null ? { version: x + 1 } : {}
305
+ })), B(!0);
306
306
  },
307
307
  []
308
308
  ), w = I(() => {
309
309
  k.forEach((t) => {
310
310
  t.preview && URL.revokeObjectURL(t.preview);
311
- }), E([]), p(T), z(null), K(null), b(""), C(!1), D(!1), x(""), g(""), V(null), v(null), f.current = !1, W(void 0), X(void 0);
312
- }, [k]), [nt] = ct(), [j] = Vt(), R = I(
311
+ }), E([]), m(T), J(null), W(null), U(""), C(!1), B(!1), g(""), F(""), V(null), v(null), f.current = !1, X(void 0), Y(void 0);
312
+ }, [k]), [dt] = ft(), [tt] = kt(), R = I(
313
313
  async (t) => {
314
314
  try {
315
315
  if (a) {
316
- const r = await ht(j, u, {
316
+ const r = await ht(tt, u, {
317
317
  productId: a,
318
318
  version: t.version,
319
319
  taskId: h || void 0
320
320
  });
321
- return G(a, r.id), et.success("Created new version"), {
321
+ return M(a, r.id), st.success("Created new version"), {
322
322
  productId: a,
323
323
  versionId: r.id
324
324
  };
325
325
  } else {
326
326
  const { product: r, version: o } = await wt(
327
- nt,
328
- j,
327
+ dt,
328
+ tt,
329
329
  u,
330
330
  {
331
331
  folderId: d,
@@ -338,7 +338,7 @@ const st = kt(void 0), T = {
338
338
  taskId: h || void 0
339
339
  }
340
340
  );
341
- return G(r.id, o.id), et.success("Created new version"), {
341
+ return M(r.id, o.id), st.success("Created new version"), {
342
342
  productId: r.id,
343
343
  versionId: o.id
344
344
  };
@@ -348,57 +348,57 @@ const st = kt(void 0), T = {
348
348
  }
349
349
  },
350
350
  [w, a, d, h, u]
351
- ), tt = I(
351
+ ), rt = I(
352
352
  (t) => {
353
353
  if (a) return;
354
354
  const r = t[0];
355
355
  if (r) {
356
- const o = Ft(r.name), l = Pt(o);
357
- l && l !== c.version && p((y) => ({
358
- ...y,
356
+ const o = yt(r.name), l = Pt(o);
357
+ l && l !== c.version && m((x) => ({
358
+ ...x,
359
359
  version: l
360
360
  }));
361
361
  }
362
362
  },
363
363
  [a, c.version]
364
- ), S = L?.version ?? U ?? n?.latestVersion?.version, rt = I((t, r) => {
365
- p((o) => ({
364
+ ), S = L?.version ?? b ?? n?.latestVersion?.version, ot = I((t, r) => {
365
+ m((o) => ({
366
366
  ...o,
367
367
  [t]: r
368
- })), b("");
369
- }, []), ot = I(
368
+ })), U("");
369
+ }, []), it = I(
370
370
  async (t) => {
371
371
  try {
372
- C(!0), b("");
373
- const r = yt(t, S, !a);
372
+ C(!0), U("");
373
+ const r = xt(t, S, !a);
374
374
  if (!r.isValid)
375
375
  throw r.error;
376
376
  const o = await R(t);
377
- d && (Y.current = { folderId: d, productName: t.name }), o?.productId && z(o.productId), o?.versionId && K(o.versionId), k.length < 1 && (C(!1), w());
377
+ d && (Z.current = { folderId: d, productName: t.name }), o?.productId && J(o.productId), o?.versionId && W(o.versionId), k.length < 1 && (C(!1), w());
378
378
  } catch (r) {
379
- b(r), C(!1);
379
+ U(r), C(!1);
380
380
  }
381
381
  },
382
382
  [R, k.length, w, S, a]
383
383
  );
384
384
  A(() => {
385
- if (!(!e || U != null))
386
- return p(L ? (t) => ({ ...t, version: L.version + 1 }) : T), () => {
387
- p(T);
385
+ if (!(!e || b != null))
386
+ return m(L ? (t) => ({ ...t, version: L.version + 1 }) : T), () => {
387
+ m(T);
388
388
  };
389
- }, [e, L, U]), A(() => {
390
- if (!e || m || s.length === 0 || c.name !== T.name) return;
391
- const t = Y.current;
389
+ }, [e, L, b]), A(() => {
390
+ if (!e || p || s.length === 0 || c.name !== T.name) return;
391
+ const t = Z.current;
392
392
  if (t && t.folderId === d && s.some((l) => l.name === t.productName)) {
393
- p((l) => ({ ...l, name: t.productName }));
393
+ m((l) => ({ ...l, name: t.productName }));
394
394
  return;
395
395
  }
396
396
  const r = s[s.length - 1];
397
- r && p((o) => ({ ...o, name: r.name }));
398
- }, [e, m, s]), A(() => {
399
- if (!(!e || m))
397
+ r && m((o) => ({ ...o, name: r.name }));
398
+ }, [e, p, s]), A(() => {
399
+ if (!(!e || p))
400
400
  if (n) {
401
- p((r) => ({
401
+ m((r) => ({
402
402
  ...r,
403
403
  productType: n.productType,
404
404
  ...n.latestVersion && {
@@ -413,84 +413,85 @@ const st = kt(void 0), T = {
413
413
  taskType: t.taskType
414
414
  }), f.current = !0) : !t && f.current && (V(null), v(null), f.current = !1);
415
415
  } else
416
- p((t) => ({ ...t, version: T.version })), (P === null || f.current) && (V(null), v(null), f.current = !1);
417
- }, [e, m, n]);
418
- const it = I((t) => {
416
+ m((t) => ({ ...t, version: T.version })), (P === null || f.current) && (V(null), v(null), f.current = !1);
417
+ }, [e, p, n]);
418
+ const pt = I((t) => {
419
419
  V(t), f.current = !1;
420
- }, []), dt = pt(
420
+ }, []), at = et(
421
421
  () => ({
422
- productId: m,
423
- setProductId: x,
422
+ productId: p,
423
+ setProductId: g,
424
424
  folderId: d,
425
425
  taskId: h,
426
- linkedTask: Q,
427
- isLoadingTask: $,
428
- setTaskId: it,
426
+ linkedTask: D,
427
+ isLoadingTask: N,
428
+ setTaskId: pt,
429
429
  setLinkedTask: v,
430
- setFolderId: g,
430
+ setFolderId: F,
431
431
  isOpen: e,
432
432
  projectName: u,
433
433
  latestVersion: S,
434
434
  pendingFiles: k,
435
435
  setPendingFiles: E,
436
- onOpenVersionUpload: N,
436
+ onOpenVersionUpload: j,
437
437
  onCloseVersionUpload: w,
438
438
  onUploadVersion: R,
439
- extractAndSetVersionFromFiles: tt,
439
+ extractAndSetVersionFromFiles: rt,
440
440
  form: c,
441
- setForm: p,
442
- isSubmitting: B,
443
- error: H,
444
- createdProductId: q,
445
- createdVersionId: J,
446
- handleFormChange: rt,
447
- handleFormSubmit: ot,
441
+ setForm: m,
442
+ isSubmitting: H,
443
+ error: q,
444
+ createdProductId: z,
445
+ createdVersionId: K,
446
+ handleFormChange: ot,
447
+ handleFormSubmit: it,
448
448
  folderProducts: s,
449
- isFolderProductsLoading: Z,
449
+ isFolderProductsLoading: _,
450
450
  matchedProduct: n,
451
- dispatch: M
451
+ dispatch: Q
452
452
  }),
453
453
  [
454
454
  d,
455
- g,
456
- m,
455
+ F,
456
+ p,
457
457
  h,
458
- Q,
459
- $,
460
- it,
458
+ D,
459
+ N,
460
+ pt,
461
461
  v,
462
- x,
462
+ g,
463
463
  e,
464
464
  u,
465
465
  S,
466
466
  k,
467
467
  E,
468
- N,
468
+ j,
469
469
  w,
470
470
  R,
471
- tt,
471
+ rt,
472
472
  c,
473
- B,
474
473
  H,
475
474
  q,
476
- J,
477
- rt,
475
+ z,
476
+ K,
478
477
  ot,
478
+ it,
479
479
  s,
480
- Z,
480
+ _,
481
481
  n,
482
- M
482
+ Q
483
483
  ]
484
484
  );
485
- return /* @__PURE__ */ ut.jsx(st.Provider, { value: dt, children: F });
486
- }, Rp = () => {
487
- const F = Tt(st);
488
- if (F === void 0)
485
+ return /* @__PURE__ */ ct.jsx(G.Provider, { value: at, children: y });
486
+ }, Rm = () => {
487
+ const y = nt(G);
488
+ if (y === void 0)
489
489
  throw new Error("useVersionUploadContext must be used within a VersionUploadProvider");
490
- return F;
491
- };
490
+ return y;
491
+ }, Sm = () => nt(G) ?? null;
492
492
  export {
493
- Lp as VersionUploadProvider,
494
- Rp as useVersionUploadContext
493
+ Lm as VersionUploadProvider,
494
+ Sm as useOptionalVersionUploadContext,
495
+ Rm as useVersionUploadContext
495
496
  };
496
497
  //# sourceMappingURL=VersionUploadContext.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionUploadContext.es.js","sources":["../../../../../../src/components/VersionUploader/context/VersionUploadContext.tsx"],"sourcesContent":["import {\n useCreateVersionMutation,\n useCreateProductMutation,\n useGetLatestProductVersionQuery,\n useGetVersionQuery,\n useGetFolderProductsQuery,\n} from '@shared/api'\nimport type { FolderProduct } from '@shared/api'\nimport React, {\n createContext,\n useContext,\n useState,\n useRef,\n ReactNode,\n useMemo,\n useCallback,\n useEffect,\n} from 'react'\nimport { extractVersionFromFilename } from '@shared/util'\nimport { toast } from 'react-toastify'\nimport {\n validateFormData as validateFormDataHelper,\n createProductAndVersion,\n createVersionHelper,\n} from '@shared/util/versionUploadHelpers'\nimport { parseFilename } from '@shared/components/ReviewablesList'\n\nexport interface FormData {\n version: number\n name: string\n productType: string\n}\nexport interface LinkedTask {\n id: string\n name: string\n label?: string | null\n taskType: string\n}\n\ninterface VersionUploadContextType {\n productId: string\n folderId: string\n taskId: string\n linkedTask: LinkedTask | null\n isLoadingTask: boolean\n setTaskId: (taskId: string) => void\n setLinkedTask: (task: LinkedTask | null) => void\n setProductId: (productId: string) => void\n setFolderId: (folderId: string) => void\n isOpen: boolean\n projectName: string\n latestVersion: number | undefined\n pendingFiles: Array<{ file: File; preview?: string }>\n setPendingFiles: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n extractAndSetVersionFromFiles: (files: File[]) => void\n form: FormData\n setForm: React.Dispatch<React.SetStateAction<FormData>>\n isSubmitting: boolean\n error: string\n createdProductId: string | null\n createdVersionId: string | null\n onOpenVersionUpload: (params: {\n productId?: string\n folderId?: string\n taskId?: string\n linkedTask?: LinkedTask\n latestVersionNumber?: number\n latestVersionId?: string\n }) => void\n onCloseVersionUpload: () => void\n onUploadVersion: (data: FormData) => Promise<{ productId: string; versionId: string }>\n handleFormChange: (key: keyof FormData, value: string | number) => void\n handleFormSubmit: (formData: FormData) => Promise<void>\n folderProducts: FolderProduct[]\n isFolderProductsLoading: boolean\n matchedProduct: FolderProduct | undefined\n // pass through\n dispatch: any\n}\n\nconst VersionUploadContext = createContext<VersionUploadContextType | undefined>(undefined)\n\ninterface VersionUploadProviderProps {\n children: ReactNode\n projectName: string\n onVersionCreated: (productId: string, versionId: string) => void\n dispatch: any\n}\n\nconst defaultFormData: FormData = {\n version: 1,\n name: 'review',\n productType: 'review',\n}\n\nexport const VersionUploadProvider: React.FC<VersionUploadProviderProps> = ({\n children,\n projectName,\n onVersionCreated,\n dispatch,\n}) => {\n const [folderId, setFolderId] = useState<string>('')\n const [productId, setProductId] = useState<string>('')\n // optional task to link the version to\n // null = not set by user (auto-resolve from version), '' = explicitly cleared, 'id' = explicitly set\n const [userTaskId, setUserTaskId] = useState<string | null>(null)\n const [linkedTask, setLinkedTask] = useState<LinkedTask | null>(null)\n const [isOpen, setIsOpen] = useState<boolean>(false)\n const [pendingFiles, setPendingFiles] = useState<Array<{ file: File; preview?: string }>>([])\n const [form, setForm] = useState<FormData>(defaultFormData)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [error, setError] = useState<string>('')\n const [createdProductId, setCreatedProductId] = useState<string | null>(null)\n const [createdVersionId, setCreatedVersionId] = useState<string | null>(null)\n // Stores the latest version number passed from the caller (e.g. VP page)\n // so we can skip the GetLatestProductVersion query when we already know it\n const [latestVersionNumber, setLatestVersionNumber] = useState<number | undefined>(undefined)\n // Stores the latest version ID so we can fetch its task when not already known\n const [latestVersionId, setLatestVersionId] = useState<string | undefined>(undefined)\n // Tracks whether the current task was auto-linked from a matched product (not explicitly user-chosen)\n const isTaskAutoLinkedRef = useRef(false)\n // Remember the last submitted product name per folder so we can prefill on reopen\n const lastSubmittedRef = useRef<{ folderId: string; productName: string } | null>(null)\n\n // Fetch products for the folder (only when no productId — Overview/Browser flow)\n const { data: folderProducts = [], isLoading: isFolderProductsLoading } =\n useGetFolderProductsQuery(\n { projectName, folderId },\n { skip: !folderId || !isOpen || !!productId },\n )\n\n // Match typed product name against existing folder products\n const matchedProduct = useMemo(() => {\n if (productId || !form.name || folderProducts.length === 0) return undefined\n return folderProducts.find((p) => p.name === form.name)\n }, [productId, form.name, folderProducts])\n\n const effectiveProductId = productId || matchedProduct?.id || ''\n\n const { currentData: version } = useGetLatestProductVersionQuery(\n {\n projectName,\n productId,\n },\n { skip: !productId || !isOpen || latestVersionNumber != null },\n )\n\n // Fetch the latest version to discover its taskId (e.g. when versions are collapsed)\n const { data: latestVersionData } = useGetVersionQuery(\n { projectName, versionId: latestVersionId! },\n { skip: !latestVersionId || !isOpen || userTaskId !== null },\n )\n\n // Derive effective taskId: user's explicit choice takes priority, then auto-resolved from version\n const taskId = userTaskId ?? latestVersionData?.taskId ?? ''\n const isLoadingTask = !!(latestVersionId && userTaskId === null && !latestVersionData)\n\n const onOpenVersionUpload = useCallback<VersionUploadContextType['onOpenVersionUpload']>(\n ({ productId, folderId, taskId, linkedTask, latestVersionNumber, latestVersionId }) => {\n setProductId(productId || '')\n setFolderId(folderId || '')\n setUserTaskId(taskId || null)\n setLinkedTask(linkedTask || null)\n setLatestVersionNumber(latestVersionNumber)\n setLatestVersionId(latestVersionId)\n\n // Set initial form state in a single update\n setForm((prev) => ({\n ...prev,\n ...(latestVersionNumber != null ? { version: latestVersionNumber + 1 } : {}),\n }))\n setIsOpen(true)\n },\n [],\n )\n\n const onCloseVersionUpload = useCallback<VersionUploadContextType['onCloseVersionUpload']>(() => {\n // Clean up pending files\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n setForm(defaultFormData)\n setCreatedProductId(null)\n setCreatedVersionId(null)\n setError('')\n setIsSubmitting(false)\n setIsOpen(false)\n setProductId('')\n setFolderId('')\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n setLatestVersionNumber(undefined)\n setLatestVersionId(undefined)\n }, [pendingFiles])\n\n const [createProduct] = useCreateProductMutation()\n const [createVersion] = useCreateVersionMutation()\n\n const onUploadVersion = useCallback<VersionUploadContextType['onUploadVersion']>(\n async (data: FormData) => {\n try {\n if (effectiveProductId) {\n // product already exists (either passed directly or matched by name)\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId: effectiveProductId,\n version: data.version,\n taskId: taskId || undefined,\n })\n\n // select the new version\n onVersionCreated(effectiveProductId, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: effectiveProductId,\n versionId: versionRes.id,\n }\n } else {\n // product does not exist, create new product with version\n const { product: productRes, version: versionRes } = await createProductAndVersion(\n createProduct,\n createVersion,\n projectName,\n {\n folderId,\n name: data.name,\n productType: data.productType || 'review',\n productBaseType: data.productType || 'review',\n },\n {\n version: data.version,\n taskId: taskId || undefined,\n },\n )\n\n // select the new product and version\n onVersionCreated(productRes.id, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: productRes.id,\n versionId: versionRes.id,\n }\n }\n } catch (error: any) {\n console.error('Error uploading version:', error)\n throw error.message || error\n }\n },\n [onCloseVersionUpload, effectiveProductId, folderId, taskId, projectName],\n )\n\n const extractAndSetVersionFromFiles = useCallback(\n (files: File[]) => {\n // Only extract version if we don't already have a product (new product workflow)\n if (effectiveProductId) return\n\n // Try to extract version from the first file\n const firstFile = files[0]\n if (firstFile) {\n const fileName = parseFilename(firstFile.name)\n const extractedVersion = extractVersionFromFilename(fileName)\n if (extractedVersion && extractedVersion !== form.version) {\n setForm((prev) => ({\n ...prev,\n version: extractedVersion,\n }))\n }\n }\n },\n [effectiveProductId, form.version],\n )\n\n // Fallback order: (1) queried from productId, (2) passed by caller, (3) from matched product name\n const latestVersion =\n version?.version ?? latestVersionNumber ?? matchedProduct?.latestVersion?.version\n\n // Handle form changes\n const handleFormChange = useCallback((key: keyof FormData, value: string | number) => {\n setForm((prev) => ({\n ...prev,\n [key]: value,\n }))\n // Clear any previous validation error when user edits the form\n setError('')\n }, [])\n\n // Handle form submission\n const handleFormSubmit = useCallback(\n async (formData: FormData) => {\n try {\n setIsSubmitting(true)\n setError('')\n\n // validate the form data\n const validation = validateFormDataHelper(formData, latestVersion, !effectiveProductId)\n if (!validation.isValid) {\n throw validation.error\n }\n\n const response = await onUploadVersion(formData)\n\n // Remember last submitted product name for this folder so we can prefill on reopen\n if (folderId) {\n lastSubmittedRef.current = { folderId, productName: formData.name }\n }\n\n // Extract productId and versionId from response\n if (response?.productId) {\n setCreatedProductId(response.productId)\n }\n if (response?.versionId) {\n setCreatedVersionId(response.versionId)\n }\n\n if (pendingFiles.length < 1) {\n setIsSubmitting(false)\n onCloseVersionUpload()\n }\n } catch (error: any) {\n setError(error)\n setIsSubmitting(false)\n }\n },\n [onUploadVersion, pendingFiles.length, onCloseVersionUpload, latestVersion, effectiveProductId],\n )\n\n // Update form when version data changes (only when query is used as fallback)\n useEffect(() => {\n if (!isOpen || latestVersionNumber != null) return\n\n if (version) {\n setForm((prev) => ({ ...prev, version: version.version + 1 }))\n } else {\n setForm(defaultFormData)\n }\n\n return () => {\n setForm(defaultFormData)\n }\n }, [isOpen, version, latestVersionNumber])\n\n // Default product name: prefer last submitted name for same folder, else last folder product\n useEffect(() => {\n if (!isOpen || productId || folderProducts.length === 0) return\n // Only auto-fill if user hasn't changed the name from default\n if (form.name !== defaultFormData.name) return\n\n // Prefer the product name from the last successful submit on this folder\n const lastSubmitted = lastSubmittedRef.current\n if (lastSubmitted && lastSubmitted.folderId === folderId) {\n const exists = folderProducts.some((p) => p.name === lastSubmitted.productName)\n if (exists) {\n setForm((prev) => ({ ...prev, name: lastSubmitted.productName }))\n return\n }\n }\n\n // Fallback: use the last product in the folder list\n const lastProduct = folderProducts[folderProducts.length - 1]\n if (lastProduct) {\n setForm((prev) => ({ ...prev, name: lastProduct.name }))\n }\n }, [isOpen, productId, folderProducts])\n\n // Auto-set version, productType, and task when a matched product is found, reset when match is lost\n useEffect(() => {\n if (!isOpen || productId) return\n\n if (matchedProduct) {\n setForm((prev) => ({\n ...prev,\n productType: matchedProduct.productType,\n ...(matchedProduct.latestVersion && {\n version: matchedProduct.latestVersion.version + 1,\n }),\n }))\n\n const matchedTask = matchedProduct.latestVersion?.task\n if (matchedTask && (userTaskId === null || isTaskAutoLinkedRef.current)) {\n // Auto-link task from matched product's latest version\n setUserTaskId(matchedTask.id)\n setLinkedTask({\n id: matchedTask.id,\n name: matchedTask.name,\n label: matchedTask.label,\n taskType: matchedTask.taskType,\n })\n isTaskAutoLinkedRef.current = true\n } else if (!matchedTask && isTaskAutoLinkedRef.current) {\n // Matched product has no task — clear the auto-linked one\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n } else {\n // Match lost — reset version back to default for new product\n setForm((prev) => ({ ...prev, version: defaultFormData.version }))\n // Clear auto-linked task (only if it was auto-set, not user-chosen)\n if (userTaskId === null || isTaskAutoLinkedRef.current) {\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n }\n }, [isOpen, productId, matchedProduct])\n\n // Wrap setUserTaskId so consumers use a simple string setter\n // Any explicit user action (pick or clear) marks the task as not auto-linked\n const setTaskId = useCallback((id: string) => {\n setUserTaskId(id)\n isTaskAutoLinkedRef.current = false\n }, [])\n\n const value = useMemo(\n () => ({\n productId,\n setProductId,\n folderId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setFolderId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n setForm,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n }),\n [\n folderId,\n setFolderId,\n productId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setProductId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n ],\n )\n\n return <VersionUploadContext.Provider value={value}>{children}</VersionUploadContext.Provider>\n}\n\nexport const useVersionUploadContext = (): VersionUploadContextType => {\n const context = useContext(VersionUploadContext)\n if (context === undefined) {\n throw new Error('useVersionUploadContext must be used within a VersionUploadProvider')\n }\n return context\n}\n"],"names":["VersionUploadContext","createContext","defaultFormData","VersionUploadProvider","children","projectName","onVersionCreated","dispatch","folderId","setFolderId","useState","productId","setProductId","userTaskId","setUserTaskId","linkedTask","setLinkedTask","isOpen","setIsOpen","pendingFiles","setPendingFiles","form","setForm","isSubmitting","setIsSubmitting","error","setError","createdProductId","setCreatedProductId","createdVersionId","setCreatedVersionId","latestVersionNumber","setLatestVersionNumber","latestVersionId","setLatestVersionId","isTaskAutoLinkedRef","useRef","lastSubmittedRef","folderProducts","isFolderProductsLoading","useGetFolderProductsQuery","matchedProduct","useMemo","p","effectiveProductId","version","useGetLatestProductVersionQuery","latestVersionData","useGetVersionQuery","taskId","isLoadingTask","onOpenVersionUpload","useCallback","prev","onCloseVersionUpload","item","createProduct","useCreateProductMutation","createVersion","useCreateVersionMutation","onUploadVersion","data","versionRes","createVersionHelper","toast","productRes","createProductAndVersion","extractAndSetVersionFromFiles","files","firstFile","fileName","parseFilename","extractedVersion","extractVersionFromFilename","latestVersion","handleFormChange","key","value","handleFormSubmit","formData","validation","validateFormDataHelper","response","useEffect","lastSubmitted","lastProduct","matchedTask","setTaskId","id","jsx","useVersionUploadContext","context","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"VersionUploadContext.es.js","sources":["../../../../../../src/components/VersionUploader/context/VersionUploadContext.tsx"],"sourcesContent":["import {\n useCreateVersionMutation,\n useCreateProductMutation,\n useGetLatestProductVersionQuery,\n useGetVersionQuery,\n useGetFolderProductsQuery,\n} from '@shared/api'\nimport type { FolderProduct } from '@shared/api'\nimport React, {\n createContext,\n useContext,\n useState,\n useRef,\n ReactNode,\n useMemo,\n useCallback,\n useEffect,\n} from 'react'\nimport { extractVersionFromFilename } from '@shared/util'\nimport { toast } from 'react-toastify'\nimport {\n validateFormData as validateFormDataHelper,\n createProductAndVersion,\n createVersionHelper,\n} from '@shared/util/versionUploadHelpers'\nimport { parseFilename } from '@shared/components/ReviewablesList'\n\nexport interface FormData {\n version: number\n name: string\n productType: string\n}\nexport interface LinkedTask {\n id: string\n name: string\n label?: string | null\n taskType: string\n}\n\ninterface VersionUploadContextType {\n productId: string\n folderId: string\n taskId: string\n linkedTask: LinkedTask | null\n isLoadingTask: boolean\n setTaskId: (taskId: string) => void\n setLinkedTask: (task: LinkedTask | null) => void\n setProductId: (productId: string) => void\n setFolderId: (folderId: string) => void\n isOpen: boolean\n projectName: string\n latestVersion: number | undefined\n pendingFiles: Array<{ file: File; preview?: string }>\n setPendingFiles: React.Dispatch<React.SetStateAction<Array<{ file: File; preview?: string }>>>\n extractAndSetVersionFromFiles: (files: File[]) => void\n form: FormData\n setForm: React.Dispatch<React.SetStateAction<FormData>>\n isSubmitting: boolean\n error: string\n createdProductId: string | null\n createdVersionId: string | null\n onOpenVersionUpload: (params: {\n productId?: string\n folderId?: string\n taskId?: string\n linkedTask?: LinkedTask\n latestVersionNumber?: number\n latestVersionId?: string\n }) => void\n onCloseVersionUpload: () => void\n onUploadVersion: (data: FormData) => Promise<{ productId: string; versionId: string }>\n handleFormChange: (key: keyof FormData, value: string | number) => void\n handleFormSubmit: (formData: FormData) => Promise<void>\n folderProducts: FolderProduct[]\n isFolderProductsLoading: boolean\n matchedProduct: FolderProduct | undefined\n // pass through\n dispatch: any\n}\n\nconst VersionUploadContext = createContext<VersionUploadContextType | undefined>(undefined)\n\ninterface VersionUploadProviderProps {\n children: ReactNode\n projectName: string\n onVersionCreated: (productId: string, versionId: string) => void\n dispatch: any\n}\n\nconst defaultFormData: FormData = {\n version: 1,\n name: 'review',\n productType: 'review',\n}\n\nexport const VersionUploadProvider: React.FC<VersionUploadProviderProps> = ({\n children,\n projectName,\n onVersionCreated,\n dispatch,\n}) => {\n const [folderId, setFolderId] = useState<string>('')\n const [productId, setProductId] = useState<string>('')\n // optional task to link the version to\n // null = not set by user (auto-resolve from version), '' = explicitly cleared, 'id' = explicitly set\n const [userTaskId, setUserTaskId] = useState<string | null>(null)\n const [linkedTask, setLinkedTask] = useState<LinkedTask | null>(null)\n const [isOpen, setIsOpen] = useState<boolean>(false)\n const [pendingFiles, setPendingFiles] = useState<Array<{ file: File; preview?: string }>>([])\n const [form, setForm] = useState<FormData>(defaultFormData)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [error, setError] = useState<string>('')\n const [createdProductId, setCreatedProductId] = useState<string | null>(null)\n const [createdVersionId, setCreatedVersionId] = useState<string | null>(null)\n // Stores the latest version number passed from the caller (e.g. VP page)\n // so we can skip the GetLatestProductVersion query when we already know it\n const [latestVersionNumber, setLatestVersionNumber] = useState<number | undefined>(undefined)\n // Stores the latest version ID so we can fetch its task when not already known\n const [latestVersionId, setLatestVersionId] = useState<string | undefined>(undefined)\n // Tracks whether the current task was auto-linked from a matched product (not explicitly user-chosen)\n const isTaskAutoLinkedRef = useRef(false)\n // Remember the last submitted product name per folder so we can prefill on reopen\n const lastSubmittedRef = useRef<{ folderId: string; productName: string } | null>(null)\n\n // Fetch products for the folder (only when no productId — Overview/Browser flow)\n const { data: folderProducts = [], isLoading: isFolderProductsLoading } =\n useGetFolderProductsQuery(\n { projectName, folderId },\n { skip: !folderId || !isOpen || !!productId },\n )\n\n // Match typed product name against existing folder products\n const matchedProduct = useMemo(() => {\n if (productId || !form.name || folderProducts.length === 0) return undefined\n return folderProducts.find((p) => p.name === form.name)\n }, [productId, form.name, folderProducts])\n\n const effectiveProductId = productId || matchedProduct?.id || ''\n\n const { currentData: version } = useGetLatestProductVersionQuery(\n {\n projectName,\n productId,\n },\n { skip: !productId || !isOpen || latestVersionNumber != null },\n )\n\n // Fetch the latest version to discover its taskId (e.g. when versions are collapsed)\n const { data: latestVersionData } = useGetVersionQuery(\n { projectName, versionId: latestVersionId! },\n { skip: !latestVersionId || !isOpen || userTaskId !== null },\n )\n\n // Derive effective taskId: user's explicit choice takes priority, then auto-resolved from version\n const taskId = userTaskId ?? latestVersionData?.taskId ?? ''\n const isLoadingTask = !!(latestVersionId && userTaskId === null && !latestVersionData)\n\n const onOpenVersionUpload = useCallback<VersionUploadContextType['onOpenVersionUpload']>(\n ({ productId, folderId, taskId, linkedTask, latestVersionNumber, latestVersionId }) => {\n setProductId(productId || '')\n setFolderId(folderId || '')\n setUserTaskId(taskId || null)\n setLinkedTask(linkedTask || null)\n setLatestVersionNumber(latestVersionNumber)\n setLatestVersionId(latestVersionId)\n\n // Set initial form state in a single update\n setForm((prev) => ({\n ...prev,\n ...(latestVersionNumber != null ? { version: latestVersionNumber + 1 } : {}),\n }))\n setIsOpen(true)\n },\n [],\n )\n\n const onCloseVersionUpload = useCallback<VersionUploadContextType['onCloseVersionUpload']>(() => {\n // Clean up pending files\n pendingFiles.forEach((item) => {\n if (item.preview) {\n URL.revokeObjectURL(item.preview)\n }\n })\n setPendingFiles([])\n setForm(defaultFormData)\n setCreatedProductId(null)\n setCreatedVersionId(null)\n setError('')\n setIsSubmitting(false)\n setIsOpen(false)\n setProductId('')\n setFolderId('')\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n setLatestVersionNumber(undefined)\n setLatestVersionId(undefined)\n }, [pendingFiles])\n\n const [createProduct] = useCreateProductMutation()\n const [createVersion] = useCreateVersionMutation()\n\n const onUploadVersion = useCallback<VersionUploadContextType['onUploadVersion']>(\n async (data: FormData) => {\n try {\n if (effectiveProductId) {\n // product already exists (either passed directly or matched by name)\n const versionRes = await createVersionHelper(createVersion, projectName, {\n productId: effectiveProductId,\n version: data.version,\n taskId: taskId || undefined,\n })\n\n // select the new version\n onVersionCreated(effectiveProductId, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: effectiveProductId,\n versionId: versionRes.id,\n }\n } else {\n // product does not exist, create new product with version\n const { product: productRes, version: versionRes } = await createProductAndVersion(\n createProduct,\n createVersion,\n projectName,\n {\n folderId,\n name: data.name,\n productType: data.productType || 'review',\n productBaseType: data.productType || 'review',\n },\n {\n version: data.version,\n taskId: taskId || undefined,\n },\n )\n\n // select the new product and version\n onVersionCreated(productRes.id, versionRes.id)\n\n toast.success('Created new version')\n\n return {\n productId: productRes.id,\n versionId: versionRes.id,\n }\n }\n } catch (error: any) {\n console.error('Error uploading version:', error)\n throw error.message || error\n }\n },\n [onCloseVersionUpload, effectiveProductId, folderId, taskId, projectName],\n )\n\n const extractAndSetVersionFromFiles = useCallback(\n (files: File[]) => {\n // Only extract version if we don't already have a product (new product workflow)\n if (effectiveProductId) return\n\n // Try to extract version from the first file\n const firstFile = files[0]\n if (firstFile) {\n const fileName = parseFilename(firstFile.name)\n const extractedVersion = extractVersionFromFilename(fileName)\n if (extractedVersion && extractedVersion !== form.version) {\n setForm((prev) => ({\n ...prev,\n version: extractedVersion,\n }))\n }\n }\n },\n [effectiveProductId, form.version],\n )\n\n // Fallback order: (1) queried from productId, (2) passed by caller, (3) from matched product name\n const latestVersion =\n version?.version ?? latestVersionNumber ?? matchedProduct?.latestVersion?.version\n\n // Handle form changes\n const handleFormChange = useCallback((key: keyof FormData, value: string | number) => {\n setForm((prev) => ({\n ...prev,\n [key]: value,\n }))\n // Clear any previous validation error when user edits the form\n setError('')\n }, [])\n\n // Handle form submission\n const handleFormSubmit = useCallback(\n async (formData: FormData) => {\n try {\n setIsSubmitting(true)\n setError('')\n\n // validate the form data\n const validation = validateFormDataHelper(formData, latestVersion, !effectiveProductId)\n if (!validation.isValid) {\n throw validation.error\n }\n\n const response = await onUploadVersion(formData)\n\n // Remember last submitted product name for this folder so we can prefill on reopen\n if (folderId) {\n lastSubmittedRef.current = { folderId, productName: formData.name }\n }\n\n // Extract productId and versionId from response\n if (response?.productId) {\n setCreatedProductId(response.productId)\n }\n if (response?.versionId) {\n setCreatedVersionId(response.versionId)\n }\n\n if (pendingFiles.length < 1) {\n setIsSubmitting(false)\n onCloseVersionUpload()\n }\n } catch (error: any) {\n setError(error)\n setIsSubmitting(false)\n }\n },\n [onUploadVersion, pendingFiles.length, onCloseVersionUpload, latestVersion, effectiveProductId],\n )\n\n // Update form when version data changes (only when query is used as fallback)\n useEffect(() => {\n if (!isOpen || latestVersionNumber != null) return\n\n if (version) {\n setForm((prev) => ({ ...prev, version: version.version + 1 }))\n } else {\n setForm(defaultFormData)\n }\n\n return () => {\n setForm(defaultFormData)\n }\n }, [isOpen, version, latestVersionNumber])\n\n // Default product name: prefer last submitted name for same folder, else last folder product\n useEffect(() => {\n if (!isOpen || productId || folderProducts.length === 0) return\n // Only auto-fill if user hasn't changed the name from default\n if (form.name !== defaultFormData.name) return\n\n // Prefer the product name from the last successful submit on this folder\n const lastSubmitted = lastSubmittedRef.current\n if (lastSubmitted && lastSubmitted.folderId === folderId) {\n const exists = folderProducts.some((p) => p.name === lastSubmitted.productName)\n if (exists) {\n setForm((prev) => ({ ...prev, name: lastSubmitted.productName }))\n return\n }\n }\n\n // Fallback: use the last product in the folder list\n const lastProduct = folderProducts[folderProducts.length - 1]\n if (lastProduct) {\n setForm((prev) => ({ ...prev, name: lastProduct.name }))\n }\n }, [isOpen, productId, folderProducts])\n\n // Auto-set version, productType, and task when a matched product is found, reset when match is lost\n useEffect(() => {\n if (!isOpen || productId) return\n\n if (matchedProduct) {\n setForm((prev) => ({\n ...prev,\n productType: matchedProduct.productType,\n ...(matchedProduct.latestVersion && {\n version: matchedProduct.latestVersion.version + 1,\n }),\n }))\n\n const matchedTask = matchedProduct.latestVersion?.task\n if (matchedTask && (userTaskId === null || isTaskAutoLinkedRef.current)) {\n // Auto-link task from matched product's latest version\n setUserTaskId(matchedTask.id)\n setLinkedTask({\n id: matchedTask.id,\n name: matchedTask.name,\n label: matchedTask.label,\n taskType: matchedTask.taskType,\n })\n isTaskAutoLinkedRef.current = true\n } else if (!matchedTask && isTaskAutoLinkedRef.current) {\n // Matched product has no task — clear the auto-linked one\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n } else {\n // Match lost — reset version back to default for new product\n setForm((prev) => ({ ...prev, version: defaultFormData.version }))\n // Clear auto-linked task (only if it was auto-set, not user-chosen)\n if (userTaskId === null || isTaskAutoLinkedRef.current) {\n setUserTaskId(null)\n setLinkedTask(null)\n isTaskAutoLinkedRef.current = false\n }\n }\n }, [isOpen, productId, matchedProduct])\n\n // Wrap setUserTaskId so consumers use a simple string setter\n // Any explicit user action (pick or clear) marks the task as not auto-linked\n const setTaskId = useCallback((id: string) => {\n setUserTaskId(id)\n isTaskAutoLinkedRef.current = false\n }, [])\n\n const value = useMemo(\n () => ({\n productId,\n setProductId,\n folderId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setFolderId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n setForm,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n }),\n [\n folderId,\n setFolderId,\n productId,\n taskId,\n linkedTask,\n isLoadingTask,\n setTaskId,\n setLinkedTask,\n setProductId,\n isOpen,\n projectName,\n latestVersion,\n pendingFiles,\n setPendingFiles,\n onOpenVersionUpload,\n onCloseVersionUpload,\n onUploadVersion,\n extractAndSetVersionFromFiles,\n form,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n handleFormChange,\n handleFormSubmit,\n folderProducts,\n isFolderProductsLoading,\n matchedProduct,\n dispatch,\n ],\n )\n\n return <VersionUploadContext.Provider value={value}>{children}</VersionUploadContext.Provider>\n}\n\nexport const useVersionUploadContext = (): VersionUploadContextType => {\n const context = useContext(VersionUploadContext)\n if (context === undefined) {\n throw new Error('useVersionUploadContext must be used within a VersionUploadProvider')\n }\n return context\n}\n\n// Same as useVersionUploadContext but returns null instead of throwing when no provider is mounted.\n// Use in shared components that may render under pages without a VersionUploadProvider.\nexport const useOptionalVersionUploadContext = (): VersionUploadContextType | null => {\n return useContext(VersionUploadContext) ?? null\n}\n"],"names":["VersionUploadContext","createContext","defaultFormData","VersionUploadProvider","children","projectName","onVersionCreated","dispatch","folderId","setFolderId","useState","productId","setProductId","userTaskId","setUserTaskId","linkedTask","setLinkedTask","isOpen","setIsOpen","pendingFiles","setPendingFiles","form","setForm","isSubmitting","setIsSubmitting","error","setError","createdProductId","setCreatedProductId","createdVersionId","setCreatedVersionId","latestVersionNumber","setLatestVersionNumber","latestVersionId","setLatestVersionId","isTaskAutoLinkedRef","useRef","lastSubmittedRef","folderProducts","isFolderProductsLoading","useGetFolderProductsQuery","matchedProduct","useMemo","p","effectiveProductId","version","useGetLatestProductVersionQuery","latestVersionData","useGetVersionQuery","taskId","isLoadingTask","onOpenVersionUpload","useCallback","prev","onCloseVersionUpload","item","createProduct","useCreateProductMutation","createVersion","useCreateVersionMutation","onUploadVersion","data","versionRes","createVersionHelper","toast","productRes","createProductAndVersion","extractAndSetVersionFromFiles","files","firstFile","fileName","parseFilename","extractedVersion","extractVersionFromFilename","latestVersion","handleFormChange","key","value","handleFormSubmit","formData","validation","validateFormDataHelper","response","useEffect","lastSubmitted","lastProduct","matchedTask","setTaskId","id","jsx","useVersionUploadContext","context","useContext","useOptionalVersionUploadContext"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("../../../../../_virtual/jsx-runtime.cjs.js"),d=require("../../SimpleTable/SimpleTable.cjs.js");require("../../SimpleTable/context/SimpleTableContext.cjs.js");const m=require("../../SimpleTable/SimpleTable.styled.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");const j=require("./EntityTypeTableHeader.cjs.js"),E=require("lodash");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");const h=require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("rehype-raw");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../ProjectTreeTable/components/SelectionCell.cjs.js");require("../../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");const b=({entityType:r,tableData:i,isLoading:u=!1,error:s,search:n,onSearch:o,isFolderHierarchy:l,isMultiSelect:c,onRowSubmit:p,onScrollBottom:x})=>{const a=q=>{q.preventDefault();const t=q.currentTarget.id;t&&p?.(t)};return e.jsxRuntimeExports.jsxs(m.Container,{children:[e.jsxRuntimeExports.jsx(j,{search:n,onSearch:o,title:E.upperFirst(r)+"s"}),!u&&!i?.length&&e.jsxRuntimeExports.jsx(h.EmptyPlaceholder,{message:`No ${r}s found.`,error:s}),e.jsxRuntimeExports.jsx(d,{data:i,isLoading:u,isExpandable:l,rowHeight:34,isMultiSelect:c,onScrollBottom:x,pt:{row:{onDoubleClick:a}}})]})};module.exports=b;
1
+ "use strict";const e=require("../../../../../_virtual/jsx-runtime.cjs.js"),j=require("../../SimpleTable/SimpleTable.cjs.js");require("../../SimpleTable/context/SimpleTableContext.cjs.js");const E=require("../../SimpleTable/SimpleTable.styled.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");const h=require("./EntityTypeTableHeader.cjs.js"),b=require("lodash");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");const T=require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/SubtasksModulesContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("rehype-raw");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../ProjectTreeTable/components/SelectionCell.cjs.js");require("../../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../EntityPickerDialog.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");const f=({entityType:u,tableData:r,isLoading:q=!1,error:t,search:n,onSearch:o,isFolderHierarchy:l,isMultiSelect:c,onRowSubmit:p,onScrollBottom:x})=>{const d=s=>{s.preventDefault();const i=s.currentTarget.id,a=r.find(m=>m.id===i);i&&!a?.isDisabled&&p?.(i)};return e.jsxRuntimeExports.jsxs(E.Container,{children:[e.jsxRuntimeExports.jsx(h,{search:n,onSearch:o,title:b.upperFirst(u)+"s"}),!q&&!r?.length&&e.jsxRuntimeExports.jsx(T.EmptyPlaceholder,{message:`No ${u}s found.`,error:t}),e.jsxRuntimeExports.jsx(j,{data:r,isLoading:q,isExpandable:l,rowHeight:34,isMultiSelect:c,onScrollBottom:x,pt:{row:{onDoubleClick:d}}})]})};module.exports=f;
2
2
  //# sourceMappingURL=EntityTypeTable.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTypeTable.cjs.js","sources":["../../../../../../src/containers/EntityPickerDialog/components/EntityTypeTable.tsx"],"sourcesContent":["// Show's all data for a specific entity type with parent ids and optional search\n// When entity type is folder, the data defaults to a tree table when not searching and a flat table when searching\n\nimport { FC, useMemo } from 'react'\nimport { PickerEntityType } from '../EntityPickerDialog'\nimport SimpleTable, { Container, SimpleTableRow } from '@shared/containers/SimpleTable'\nimport EntityTypeTableHeader from './EntityTypeTableHeader'\nimport { upperFirst } from 'lodash'\nimport { useGetSearchedEntitiesLinksInfiniteQuery } from '@shared/api'\nimport { buildEntityPickerTableData } from '../util'\nimport { EmptyPlaceholder } from '@shared/components'\n\ninterface EntityTypeTableProps {\n entityType: PickerEntityType\n tableData: SimpleTableRow[] // Folder data if this is a folder table\n isLoading?: boolean // Whether folders are loading\n error?: string // Error message if any\n search?: string // The search term to filter the entities\n onSearch: (search: string | undefined) => void // Callback to handle search changes\n isFolderHierarchy?: boolean // Whether this is a folder hierarchy table\n isMultiSelect?: boolean // Whether to allow multiple selection\n onRowSubmit?: (id: string) => void // Callback when a row is submitted (e.g., double-clicked)\n onScrollBottom?: () => void // Callback when scrolled to the bottom of the table\n}\n\nconst EntityTypeTable: FC<EntityTypeTableProps> = ({\n entityType,\n tableData,\n isLoading = false,\n error,\n search,\n onSearch,\n isFolderHierarchy,\n isMultiSelect,\n onRowSubmit,\n onScrollBottom,\n}) => {\n const handleDoubleClick = (e: React.MouseEvent<HTMLTableRowElement>) => {\n e.preventDefault()\n const id = e.currentTarget.id\n if (id) {\n onRowSubmit?.(id)\n }\n }\n\n return (\n <Container>\n <EntityTypeTableHeader\n search={search}\n onSearch={onSearch}\n title={upperFirst(entityType) + 's'}\n />\n {!isLoading && !tableData?.length && (\n <EmptyPlaceholder message={`No ${entityType}s found.`} error={error} />\n )}\n <SimpleTable\n data={tableData}\n isLoading={isLoading}\n isExpandable={isFolderHierarchy}\n rowHeight={34}\n isMultiSelect={isMultiSelect}\n onScrollBottom={onScrollBottom}\n pt={{\n row: {\n onDoubleClick: handleDoubleClick,\n },\n }}\n />\n </Container>\n )\n}\n\nexport default EntityTypeTable\n"],"names":["EntityTypeTable","entityType","tableData","isLoading","error","search","onSearch","isFolderHierarchy","isMultiSelect","onRowSubmit","onScrollBottom","handleDoubleClick","e","id","Container","jsx","EntityTypeTableHeader","upperFirst","EmptyPlaceholder","SimpleTable"],"mappings":"ipgBAyBA,MAAMA,EAA4C,CAAC,CACjD,WAAAC,EACA,UAAAC,EACA,UAAAC,EAAY,GACZ,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,YAAAC,EACA,eAAAC,CACF,IAAM,CACJ,MAAMC,EAAqBC,GAA6C,CACtEA,EAAE,eAAA,EACF,MAAMC,EAAKD,EAAE,cAAc,GACvBC,GACFJ,IAAcI,CAAE,CAEpB,EAEA,gCACGC,YAAA,CACC,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAA,CACC,OAAAX,EACA,SAAAC,EACA,MAAOW,EAAAA,WAAWhB,CAAU,EAAI,GAAA,CAAA,EAEjC,CAACE,GAAa,CAACD,GAAW,QACzBa,EAAAA,kBAAAA,IAACG,EAAAA,iBAAA,CAAiB,QAAS,MAAMjB,CAAU,WAAY,MAAAG,CAAA,CAAc,EAEvEW,EAAAA,kBAAAA,IAACI,EAAA,CACC,KAAMjB,EACN,UAAAC,EACA,aAAcI,EACd,UAAW,GACX,cAAAC,EACA,eAAAE,EACA,GAAI,CACF,IAAK,CACH,cAAeC,CAAA,CACjB,CACF,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"EntityTypeTable.cjs.js","sources":["../../../../../../src/containers/EntityPickerDialog/components/EntityTypeTable.tsx"],"sourcesContent":["// Show's all data for a specific entity type with parent ids and optional search\n// When entity type is folder, the data defaults to a tree table when not searching and a flat table when searching\n\nimport { FC, useMemo } from 'react'\nimport { PickerEntityType } from '../EntityPickerDialog'\nimport SimpleTable, { Container, SimpleTableRow } from '@shared/containers/SimpleTable'\nimport EntityTypeTableHeader from './EntityTypeTableHeader'\nimport { upperFirst } from 'lodash'\nimport { useGetSearchedEntitiesLinksInfiniteQuery } from '@shared/api'\nimport { buildEntityPickerTableData } from '../util'\nimport { EmptyPlaceholder } from '@shared/components'\n\ninterface EntityTypeTableProps {\n entityType: PickerEntityType\n tableData: SimpleTableRow[] // Folder data if this is a folder table\n isLoading?: boolean // Whether folders are loading\n error?: string // Error message if any\n search?: string // The search term to filter the entities\n onSearch: (search: string | undefined) => void // Callback to handle search changes\n isFolderHierarchy?: boolean // Whether this is a folder hierarchy table\n isMultiSelect?: boolean // Whether to allow multiple selection\n onRowSubmit?: (id: string) => void // Callback when a row is submitted (e.g., double-clicked)\n onScrollBottom?: () => void // Callback when scrolled to the bottom of the table\n}\n\nconst EntityTypeTable: FC<EntityTypeTableProps> = ({\n entityType,\n tableData,\n isLoading = false,\n error,\n search,\n onSearch,\n isFolderHierarchy,\n isMultiSelect,\n onRowSubmit,\n onScrollBottom,\n}) => {\n const handleDoubleClick = (e: React.MouseEvent<HTMLTableRowElement>) => {\n e.preventDefault()\n const id = e.currentTarget.id\n const row = tableData.find((r) => r.id === id)\n if (id && !row?.isDisabled) {\n onRowSubmit?.(id)\n }\n }\n\n return (\n <Container>\n <EntityTypeTableHeader\n search={search}\n onSearch={onSearch}\n title={upperFirst(entityType) + 's'}\n />\n {!isLoading && !tableData?.length && (\n <EmptyPlaceholder message={`No ${entityType}s found.`} error={error} />\n )}\n <SimpleTable\n data={tableData}\n isLoading={isLoading}\n isExpandable={isFolderHierarchy}\n rowHeight={34}\n isMultiSelect={isMultiSelect}\n onScrollBottom={onScrollBottom}\n pt={{\n row: {\n onDoubleClick: handleDoubleClick,\n },\n }}\n />\n </Container>\n )\n}\n\nexport default EntityTypeTable\n"],"names":["EntityTypeTable","entityType","tableData","isLoading","error","search","onSearch","isFolderHierarchy","isMultiSelect","onRowSubmit","onScrollBottom","handleDoubleClick","e","id","row","r","Container","jsx","EntityTypeTableHeader","upperFirst","EmptyPlaceholder","SimpleTable"],"mappings":"ipgBAyBA,MAAMA,EAA4C,CAAC,CACjD,WAAAC,EACA,UAAAC,EACA,UAAAC,EAAY,GACZ,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,YAAAC,EACA,eAAAC,CACF,IAAM,CACJ,MAAMC,EAAqBC,GAA6C,CACtEA,EAAE,eAAA,EACF,MAAMC,EAAKD,EAAE,cAAc,GACrBE,EAAMZ,EAAU,KAAMa,GAAMA,EAAE,KAAOF,CAAE,EACzCA,GAAM,CAACC,GAAK,YACdL,IAAcI,CAAE,CAEpB,EAEA,gCACGG,YAAA,CACC,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAA,CACC,OAAAb,EACA,SAAAC,EACA,MAAOa,EAAAA,WAAWlB,CAAU,EAAI,GAAA,CAAA,EAEjC,CAACE,GAAa,CAACD,GAAW,QACzBe,EAAAA,kBAAAA,IAACG,EAAAA,iBAAA,CAAiB,QAAS,MAAMnB,CAAU,WAAY,MAAAG,CAAA,CAAc,EAEvEa,EAAAA,kBAAAA,IAACI,EAAA,CACC,KAAMnB,EACN,UAAAC,EACA,aAAcI,EACd,UAAW,GACX,cAAAC,EACA,eAAAE,EACA,GAAI,CACF,IAAK,CACH,cAAeC,CAAA,CACjB,CACF,CAAA,CACF,EACF,CAEJ"}