@ynput/ayon-frontend-shared 0.3.55 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/_virtual/index.cjs4.js +1 -1
  2. package/dist/_virtual/index.cjs5.js +1 -1
  3. package/dist/_virtual/index.cjs6.js +1 -1
  4. package/dist/_virtual/index.cjs8.js +1 -1
  5. package/dist/_virtual/index.cjs9.js +1 -1
  6. package/dist/_virtual/index.es15.js +2 -2
  7. package/dist/_virtual/index.es4.js +5 -2
  8. package/dist/_virtual/index.es4.js.map +1 -1
  9. package/dist/_virtual/index.es5.js +2 -5
  10. package/dist/_virtual/index.es5.js.map +1 -1
  11. package/dist/_virtual/index.es6.js +2 -2
  12. package/dist/_virtual/index.es8.js +2 -5
  13. package/dist/_virtual/index.es8.js.map +1 -1
  14. package/dist/_virtual/index.es9.js +5 -2
  15. package/dist/_virtual/index.es9.js.map +1 -1
  16. package/dist/api.cjs.js +1 -1
  17. package/dist/api.es.js +193 -192
  18. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  19. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  20. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  21. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  22. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  23. package/dist/node_modules/remove-accents/index.cjs.js.map +1 -1
  24. package/dist/node_modules/remove-accents/index.es.js +1 -1
  25. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  26. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  27. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  28. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  29. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  30. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  31. package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
  32. package/dist/shared/node_modules/prop-types/index.cjs.js.map +1 -1
  33. package/dist/shared/node_modules/prop-types/index.es.js +1 -1
  34. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  35. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  36. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  37. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  38. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  39. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  40. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  41. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  42. package/dist/shared/src/api/generated/graphql.cjs.js +4 -0
  43. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  44. package/dist/shared/src/api/generated/graphql.es.js +4 -0
  45. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  46. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  47. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  48. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  49. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  50. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +17 -16
  51. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  52. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  53. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  54. package/dist/shared/src/api/queries/entityLists/getLists.es.js +47 -47
  55. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/folders/getFolders.es.js +20 -22
  59. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  61. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  62. package/dist/shared/src/api/queries/overview/getOverview.es.js +92 -89
  63. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/project/getProject.cjs.js +1 -1
  65. package/dist/shared/src/api/queries/project/getProject.cjs.js.map +1 -1
  66. package/dist/shared/src/api/queries/project/getProject.es.js +1 -1
  67. package/dist/shared/src/api/queries/project/getProject.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  69. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  70. package/dist/shared/src/api/queries/users/getUsers.es.js +1 -1
  71. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  73. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  74. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +23 -23
  75. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  76. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js +1 -1
  77. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  78. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js +13 -13
  79. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  80. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +3 -3
  81. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  82. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +51 -50
  83. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  84. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  85. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  86. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +26 -24
  87. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  88. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  89. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  90. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +31 -18
  91. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  92. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js +1 -1
  93. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  94. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js +62 -58
  95. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  96. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  97. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  98. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +21 -20
  99. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  100. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  101. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  102. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +25 -24
  103. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  104. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  105. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  106. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +20 -19
  107. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  108. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  109. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  110. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +152 -133
  111. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  112. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  113. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  114. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +75 -73
  115. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  116. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +1 -1
  117. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
  118. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +21 -19
  119. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
  120. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
  121. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
  122. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +58 -43
  123. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
  124. package/dist/types/api/generated/graphql.d.ts +5 -0
  125. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  126. package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
  127. package/dist/types/api/queries/overview/getOverview.d.ts +2 -1
  128. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +25 -1
  129. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -1
  130. package/dist/types/containers/ProjectTreeTable/widgets/CellWidget.d.ts +1 -0
  131. package/dist/types/containers/ProjectTreeTable/widgets/DateWidget.d.ts +1 -0
  132. package/dist/types/containers/ProjectTreeTable/widgets/DateWidgetInput.d.ts +1 -0
  133. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { parseAllAttribs as a } from "../overview/getOverview.es.js";
1
+ import { parseJSONField as a } from "../overview/getOverview.es.js";
2
2
  import "../overview/updateOverview.es.js";
3
3
  import "./getVersionsProducts.es.js";
4
4
  import "../links/getEntityLinks.es.js";
@@ -16,14 +16,14 @@ const v = "version", b = { type: v, id: "LIST" }, g = "product", l = { type: g,
16
16
  "product"
17
17
  );
18
18
  return [...o, ...s];
19
- }, E = (t) => t ? m(t.versions) : e(void 0, "version"), L = (t) => t ? m(h(t)) : e(void 0, "version"), N = (t) => {
19
+ }, R = (t) => t ? m(t.versions) : e(void 0, "version"), E = (t) => t ? m(h(t)) : e(void 0, "version"), F = (t) => {
20
20
  if (!t) return [l, ...e(void 0, "product")];
21
21
  const o = I(t), s = e(o, "product"), n = e(
22
22
  o.map((r) => r.featuredVersion).filter((r) => !!r),
23
23
  "version"
24
24
  );
25
25
  return [...s, ...n];
26
- }, y = (t) => {
26
+ }, L = (t) => {
27
27
  if (!t) return [l, ...e(void 0, "product")];
28
28
  const o = e(t.products, "product"), s = e(
29
29
  t.products.map((n) => n.featuredVersion).filter((n) => !!n),
@@ -49,7 +49,7 @@ const v = "version", b = { type: v, id: "LIST" }, g = "product", l = { type: g,
49
49
  attrib: o,
50
50
  product: s
51
51
  };
52
- }, F = (t) => {
52
+ }, S = (t) => {
53
53
  const o = t.project.versions.pageInfo, n = V(t.project.versions.edges).map((r) => T(r));
54
54
  return { pageInfo: o, versions: n };
55
55
  }, A = (t) => t.featuredVersion ? T({
@@ -63,7 +63,7 @@ const v = "version", b = { type: v, id: "LIST" }, g = "product", l = { type: g,
63
63
  allAttrib: t.folder.allAttrib
64
64
  }
65
65
  }
66
- }) : null, S = (t) => {
66
+ }) : null, y = (t) => {
67
67
  const o = t.project.products.pageInfo, s = t.project.products.edges.map((n) => {
68
68
  const r = n.node, d = a(r.allAttrib), p = {
69
69
  ...r.folder,
@@ -81,7 +81,7 @@ const v = "version", b = { type: v, id: "LIST" }, g = "product", l = { type: g,
81
81
  };
82
82
  });
83
83
  return { pageInfo: o, products: s };
84
- }, $ = (t) => {
84
+ }, O = (t) => {
85
85
  try {
86
86
  const o = t.match(/:\s*({.*})$/);
87
87
  if (!o)
@@ -100,14 +100,14 @@ export {
100
100
  V as extractVersions,
101
101
  I as flattenInfiniteProductsData,
102
102
  h as flattenInfiniteVersionsData,
103
- $ as parseGQLErrorMessage,
103
+ O as parseGQLErrorMessage,
104
104
  e as provideTagsForEntity,
105
- N as provideTagsForProductsInfinite,
106
- y as provideTagsForProductsResult,
107
- L as provideTagsForVersionsInfinite,
108
- E as provideTagsForVersionsResult,
109
- S as transformProductsResponse,
105
+ F as provideTagsForProductsInfinite,
106
+ L as provideTagsForProductsResult,
107
+ E as provideTagsForVersionsInfinite,
108
+ R as provideTagsForVersionsResult,
109
+ y as transformProductsResponse,
110
110
  T as transformVersionNode,
111
- F as transformVersionsResponse
111
+ S as transformVersionsResponse
112
112
  };
113
113
  //# sourceMappingURL=getVersionsProductsUtils.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getVersionsProductsUtils.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProductsUtils.ts"],"sourcesContent":["import { GetProductsQuery, GetVersionsQuery } from '@shared/api/generated'\nimport {\n GetProductsResult,\n GetVersionsResult,\n ProductInfiniteResult,\n ProductNode,\n ProductNodeRAW,\n VersionInfiniteResult,\n VersionNode,\n VersionNodeRAW,\n} from './getVersionsProducts'\nimport { parseAllAttribs } from '../overview'\n\n// TAGS\nconst VERSION_TYPE = 'version' as const\nconst versionsListTag = { type: VERSION_TYPE, id: 'LIST' }\nconst PRODUCT_TYPE = 'product' as const\nconst productsListTag = { type: PRODUCT_TYPE, id: 'LIST' }\n\nconst ENTITY_TAGS = {\n version: { type: VERSION_TYPE, list: versionsListTag },\n product: { type: PRODUCT_TYPE, list: productsListTag },\n} as const\n\nexport const provideTagsForEntity = (\n result: VersionNode[] | ProductNode[] | undefined,\n entityType: 'version' | 'product',\n) => {\n return result\n ? [\n ...result.map(\n (version) => ({ type: ENTITY_TAGS[entityType].type, id: version.id } as const),\n ),\n ENTITY_TAGS[entityType].list,\n ]\n : [ENTITY_TAGS[entityType].list]\n}\n\nconst getVersionsTagsFromResult = (versions: VersionNode[]) => {\n const versionTags = provideTagsForEntity(versions, 'version')\n const productTags = provideTagsForEntity(\n versions.map((v) => v.product).filter((p): p is ProductNode => !!p),\n 'product',\n )\n return [...versionTags, ...productTags]\n}\n\nexport const provideTagsForVersionsResult = (result: GetVersionsResult | undefined) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(result.versions)\n}\n\nexport const provideTagsForVersionsInfinite = (result: VersionInfiniteResult) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(flattenInfiniteVersionsData(result))\n}\n\nexport const provideTagsForProductsInfinite = (result: ProductInfiniteResult) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const products = flattenInfiniteProductsData(result)\n const productTags = provideTagsForEntity(products, 'product')\n const versionTags = provideTagsForEntity(\n products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// create all the tags for the products and the version tags for the latest version\nexport const provideTagsForProductsResult = (result: GetProductsResult | undefined) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const productTags = provideTagsForEntity(result.products, 'product')\n const versionTags = provideTagsForEntity(\n result.products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// TRANSFORMERS\nexport const extractVersions = (edges: Array<{ node: VersionNodeRAW }>): VersionNodeRAW[] => {\n const versionNodes: VersionNodeRAW[] = []\n\n for (const { node } of edges) {\n if (Math.sign(node.version) === -1) {\n // skip hero versions\n continue\n } else {\n versionNodes.push(node)\n }\n }\n\n return versionNodes\n}\n\nexport const flattenInfiniteVersionsData = (data: VersionInfiniteResult): VersionNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.versions)\n}\n\nexport const flattenInfiniteProductsData = (data: ProductInfiniteResult): ProductNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.products)\n}\n\nexport const transformVersionNode = (node: VersionNodeRAW): VersionNode => {\n const attrib = parseAllAttribs(node.allAttrib)\n\n // Parse product attributes if product exists\n const product = node.product\n ? {\n ...node.product,\n attrib: parseAllAttribs(node.product.allAttrib),\n folder: {\n ...node.product.folder,\n attrib: parseAllAttribs(node.product.folder.allAttrib),\n },\n }\n : node.product\n\n const version = {\n ...node,\n attrib,\n product,\n } as VersionNode\n\n return version\n}\n\nexport const transformVersionsResponse = (response: GetVersionsQuery): GetVersionsResult => {\n const pageInfo = response.project.versions.pageInfo\n const versionNodes = extractVersions(response.project.versions.edges)\n const versions = versionNodes.map((node) => transformVersionNode(node))\n return { pageInfo, versions }\n}\n\nconst transformProductVersionToExtendedVersion = (product: ProductNodeRAW): VersionNode | null => {\n if (!product.featuredVersion) return null\n return transformVersionNode({\n ...product.featuredVersion,\n product: {\n id: product.id,\n name: product.name,\n productType: product.productType,\n allAttrib: product.allAttrib,\n folder: {\n allAttrib: product.folder.allAttrib,\n },\n },\n } as VersionNodeRAW)\n}\n\nexport const transformProductsResponse = (response: GetProductsQuery): GetProductsResult => {\n const pageInfo = response.project.products.pageInfo\n const products = response.project.products.edges.map((edge) => {\n const product = edge.node\n const attrib = parseAllAttribs(product.allAttrib)\n const folder = {\n ...product.folder,\n attrib: parseAllAttribs(product.folder.allAttrib),\n }\n // detect hero version (negative version indicates hero) and mark it when transforming\n const heroRaw = product.versions.find((v) => Math.sign(v.version) === -1)\n\n const versions = product.versions\n .filter((v) => Math.sign(v.version) !== -1)\n .map((v) => ({\n ...v,\n heroVersionId: heroRaw && v.version === Math.abs(heroRaw?.version) ? heroRaw.id : undefined,\n }))\n\n return {\n ...product,\n attrib,\n folder,\n versions: versions,\n featuredVersion: transformProductVersionToExtendedVersion(product),\n }\n })\n\n return { pageInfo, products }\n}\n\nexport const parseGQLErrorMessage = (error: string): string => {\n try {\n // First, try to extract the JSON part after the initial error message\n const jsonMatch = error.match(/:\\s*({.*})$/)\n if (!jsonMatch) {\n // If no JSON found, return the string before any colon\n return error.split(':')[0] || error\n }\n\n const jsonString = jsonMatch[1]\n const parsed = JSON.parse(jsonString)\n\n // Extract detailed error information from nested structure\n if (parsed.response?.errors?.[0]) {\n const errorObj = parsed.response.errors[0]\n const message = errorObj.message || 'Unknown error'\n const path = errorObj.path?.join('.') || ''\n const location = errorObj.locations?.[0]\n ? `Line ${errorObj.locations[0].line}, Column ${errorObj.locations[0].column}`\n : ''\n\n // Build a detailed error string\n const details = [message, path && `Path: ${path}`, location && `Location: ${location}`]\n .filter(Boolean)\n .join(' | ')\n\n return details\n }\n\n return error\n } catch {\n // If parsing fails, return the part before the colon\n return error.split(':')[0] || error\n }\n}\n"],"names":["VERSION_TYPE","versionsListTag","PRODUCT_TYPE","productsListTag","ENTITY_TAGS","provideTagsForEntity","result","entityType","version","getVersionsTagsFromResult","versions","versionTags","productTags","v","p","provideTagsForVersionsResult","provideTagsForVersionsInfinite","flattenInfiniteVersionsData","provideTagsForProductsInfinite","products","flattenInfiniteProductsData","provideTagsForProductsResult","extractVersions","edges","versionNodes","node","data","page","transformVersionNode","attrib","parseAllAttribs","product","transformVersionsResponse","response","pageInfo","transformProductVersionToExtendedVersion","transformProductsResponse","edge","folder","heroRaw","parseGQLErrorMessage","error","jsonMatch","jsonString","parsed","errorObj","message","path","location"],"mappings":"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"}
1
+ {"version":3,"file":"getVersionsProductsUtils.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProductsUtils.ts"],"sourcesContent":["import { GetProductsQuery, GetVersionsQuery } from '@shared/api/generated'\nimport {\n GetProductsResult,\n GetVersionsResult,\n ProductInfiniteResult,\n ProductNode,\n ProductNodeRAW,\n VersionInfiniteResult,\n VersionNode,\n VersionNodeRAW,\n} from './getVersionsProducts'\nimport { parseJSONField } from '../overview'\n\n// TAGS\nconst VERSION_TYPE = 'version' as const\nconst versionsListTag = { type: VERSION_TYPE, id: 'LIST' }\nconst PRODUCT_TYPE = 'product' as const\nconst productsListTag = { type: PRODUCT_TYPE, id: 'LIST' }\n\nconst ENTITY_TAGS = {\n version: { type: VERSION_TYPE, list: versionsListTag },\n product: { type: PRODUCT_TYPE, list: productsListTag },\n} as const\n\nexport const provideTagsForEntity = (\n result: VersionNode[] | ProductNode[] | undefined,\n entityType: 'version' | 'product',\n) => {\n return result\n ? [\n ...result.map(\n (version) => ({ type: ENTITY_TAGS[entityType].type, id: version.id } as const),\n ),\n ENTITY_TAGS[entityType].list,\n ]\n : [ENTITY_TAGS[entityType].list]\n}\n\nconst getVersionsTagsFromResult = (versions: VersionNode[]) => {\n const versionTags = provideTagsForEntity(versions, 'version')\n const productTags = provideTagsForEntity(\n versions.map((v) => v.product).filter((p): p is ProductNode => !!p),\n 'product',\n )\n return [...versionTags, ...productTags]\n}\n\nexport const provideTagsForVersionsResult = (result: GetVersionsResult | undefined) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(result.versions)\n}\n\nexport const provideTagsForVersionsInfinite = (result: VersionInfiniteResult) => {\n if (!result) return provideTagsForEntity(undefined, 'version')\n return getVersionsTagsFromResult(flattenInfiniteVersionsData(result))\n}\n\nexport const provideTagsForProductsInfinite = (result: ProductInfiniteResult) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const products = flattenInfiniteProductsData(result)\n const productTags = provideTagsForEntity(products, 'product')\n const versionTags = provideTagsForEntity(\n products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// create all the tags for the products and the version tags for the latest version\nexport const provideTagsForProductsResult = (result: GetProductsResult | undefined) => {\n if (!result) return [productsListTag, ...provideTagsForEntity(undefined, 'product')]\n const productTags = provideTagsForEntity(result.products, 'product')\n const versionTags = provideTagsForEntity(\n result.products.map((p) => p.featuredVersion).filter((v): v is VersionNode => !!v),\n 'version',\n )\n return [...productTags, ...versionTags]\n}\n\n// TRANSFORMERS\nexport const extractVersions = (edges: Array<{ node: VersionNodeRAW }>): VersionNodeRAW[] => {\n const versionNodes: VersionNodeRAW[] = []\n\n for (const { node } of edges) {\n if (Math.sign(node.version) === -1) {\n // skip hero versions\n continue\n } else {\n versionNodes.push(node)\n }\n }\n\n return versionNodes\n}\n\nexport const flattenInfiniteVersionsData = (data: VersionInfiniteResult): VersionNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.versions)\n}\n\nexport const flattenInfiniteProductsData = (data: ProductInfiniteResult): ProductNode[] => {\n if (!data) return []\n return data.pages.flatMap((page) => page.products)\n}\n\nexport const transformVersionNode = (node: VersionNodeRAW): VersionNode => {\n const attrib = parseJSONField(node.allAttrib)\n\n // Parse product attributes if product exists\n const product = node.product\n ? {\n ...node.product,\n attrib: parseJSONField(node.product.allAttrib),\n folder: {\n ...node.product.folder,\n attrib: parseJSONField(node.product.folder.allAttrib),\n },\n }\n : node.product\n\n const version = {\n ...node,\n attrib,\n product,\n } as VersionNode\n\n return version\n}\n\nexport const transformVersionsResponse = (response: GetVersionsQuery): GetVersionsResult => {\n const pageInfo = response.project.versions.pageInfo\n const versionNodes = extractVersions(response.project.versions.edges)\n const versions = versionNodes.map((node) => transformVersionNode(node))\n return { pageInfo, versions }\n}\n\nconst transformProductVersionToExtendedVersion = (product: ProductNodeRAW): VersionNode | null => {\n if (!product.featuredVersion) return null\n return transformVersionNode({\n ...product.featuredVersion,\n product: {\n id: product.id,\n name: product.name,\n productType: product.productType,\n allAttrib: product.allAttrib,\n folder: {\n allAttrib: product.folder.allAttrib,\n },\n },\n } as VersionNodeRAW)\n}\n\nexport const transformProductsResponse = (response: GetProductsQuery): GetProductsResult => {\n const pageInfo = response.project.products.pageInfo\n const products = response.project.products.edges.map((edge) => {\n const product = edge.node\n const attrib = parseJSONField(product.allAttrib)\n const folder = {\n ...product.folder,\n attrib: parseJSONField(product.folder.allAttrib),\n }\n // detect hero version (negative version indicates hero) and mark it when transforming\n const heroRaw = product.versions.find((v) => Math.sign(v.version) === -1)\n\n const versions = product.versions\n .filter((v) => Math.sign(v.version) !== -1)\n .map((v) => ({\n ...v,\n heroVersionId: heroRaw && v.version === Math.abs(heroRaw?.version) ? heroRaw.id : undefined,\n }))\n\n return {\n ...product,\n attrib,\n folder,\n versions: versions,\n featuredVersion: transformProductVersionToExtendedVersion(product),\n }\n })\n\n return { pageInfo, products }\n}\n\nexport const parseGQLErrorMessage = (error: string): string => {\n try {\n // First, try to extract the JSON part after the initial error message\n const jsonMatch = error.match(/:\\s*({.*})$/)\n if (!jsonMatch) {\n // If no JSON found, return the string before any colon\n return error.split(':')[0] || error\n }\n\n const jsonString = jsonMatch[1]\n const parsed = JSON.parse(jsonString)\n\n // Extract detailed error information from nested structure\n if (parsed.response?.errors?.[0]) {\n const errorObj = parsed.response.errors[0]\n const message = errorObj.message || 'Unknown error'\n const path = errorObj.path?.join('.') || ''\n const location = errorObj.locations?.[0]\n ? `Line ${errorObj.locations[0].line}, Column ${errorObj.locations[0].column}`\n : ''\n\n // Build a detailed error string\n const details = [message, path && `Path: ${path}`, location && `Location: ${location}`]\n .filter(Boolean)\n .join(' | ')\n\n return details\n }\n\n return error\n } catch {\n // If parsing fails, return the part before the colon\n return error.split(':')[0] || error\n }\n}\n"],"names":["VERSION_TYPE","versionsListTag","PRODUCT_TYPE","productsListTag","ENTITY_TAGS","provideTagsForEntity","result","entityType","version","getVersionsTagsFromResult","versions","versionTags","productTags","v","p","provideTagsForVersionsResult","provideTagsForVersionsInfinite","flattenInfiniteVersionsData","provideTagsForProductsInfinite","products","flattenInfiniteProductsData","provideTagsForProductsResult","extractVersions","edges","versionNodes","node","data","page","transformVersionNode","attrib","parseJSONField","product","transformVersionsResponse","response","pageInfo","transformProductVersionToExtendedVersion","transformProductsResponse","edge","folder","heroRaw","parseGQLErrorMessage","error","jsonMatch","jsonString","parsed","errorObj","message","path","location"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";const o=require("../../../../../_virtual/jsx-runtime.cjs.js"),w=require("styled-components");require("../../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");const W=require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js"),E=require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js");const k=require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js"),R=require("../../../containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js"),T=require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../AccessUser/AccessUser.cjs.js");require("clsx");require("../../AttributeEditor/AttributeEditor.cjs.js");require("../../AttributeEditor/attributeTypeMap.cjs.js");require("../../Badge/Badge.cjs.js");require("../../Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../DateRangePicker/DateRangePicker.styled.cjs.js");require("../../LinksManager/CellEditingDialog.cjs.js");require("../../DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js");require("../../DeleteEntitiesConfirm/DeleteEntitiesConfirmDialog.styled.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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.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/listItemsColumnStats.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/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("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../DetailsPanelAttributesEditor.cjs.js");require("../../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../DetailsPanelDetails/BorderedSection.cjs.js");require("../../QuillListStyles/QuillListStyles.cjs.js");require("../../DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../../containers/Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");const V=require("../../../hooks/useScopedStatuses.cjs.js"),f=require("../../../hooks/useScopedTypes.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.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/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("../../../context/EntityUpdatesContextInstance.cjs.js");require("../../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../../containers/Feed/context/FeedContext.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../../containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../../containers/Feed/components/ActivityFieldChange/ActivityFieldChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityFieldChange/FieldValue.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../containers/Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContextInstance.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContextInstance.cjs.js");require("../../../containers/NewEntity/components/NewEntity.cjs.js");require("../../../containers/Slicer/components/Slicer.cjs.js");require("../../../containers/Slicer/context/SlicerContextInstance.cjs.js");require("../../../containers/Slicer/components/SlicerDropdownFallback.cjs.js");require("../../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../../containers/NewEntity/context/NewEntityContextInstance.cjs.js");require("../../../containers/NewEntity/components/NewEntityForm.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../containers/ProjectTreeTable/components/TableFooterRow.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../containers/Views/context/ViewsContextInstance.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../containers/ListTable/ListTableRow.cjs.js");require("../../../containers/ListTable/ListTable.styled.cjs.js");require("../../../context/DeleteEntitiesContext.cjs.js");require("custom-protocol-check");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../DetailsPanelDetails/DetailsSection.cjs.js");require("../../DetailsPanelDetails/FieldLabel.cjs.js");require("../../DoneCheckbox/DoneCheckbox.cjs.js");require("../../EarlyPreview/EarlyPreview.cjs.js");require("../../InfoMessage/InfoMessage.cjs.js");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../Feedback/FeedbackContextInstance.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../LegacyBadge/LegacyBadge.cjs.js");require("../../LinksManager/LinksManager.styled.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/FreeTrialLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../Powerpack/RequiredAddonVersion.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../SizeSlider/SizeSlider.cjs.js");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../SearchFilter/CustomDateRangeDialog.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../StyledLink/StyledLink.cjs.js");require("../../SyncButton/SyncButton.cjs.js");require("../../TableGridSwitch/TableGridSwitch.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContextInstance.cjs.js");require("../../Watchers/Watchers.cjs.js");require("../../Menu/Menu.styled.cjs.js");require("../../Menu/MenuItem.cjs.js");require("../../ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../ColumnHeaderMenuUI.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");const N=w.div`
1
+ "use strict";const a=require("../../../../../_virtual/jsx-runtime.cjs.js"),j=require("styled-components");require("../../../containers/ProjectTreeTable/widgets/CollapsedWidget.cjs.js");const E=require("../../../containers/ProjectTreeTable/widgets/DateWidget.cjs.js"),k=require("../../../containers/ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js");const R=require("../../../containers/ProjectTreeTable/widgets/TextWidget.cjs.js"),T=require("../../../containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js"),V=require("../../../containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LinksWidget.cjs.js");require("../../AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../AccessUser/AccessUser.cjs.js");require("clsx");require("../../AttributeEditor/AttributeEditor.cjs.js");require("../../AttributeEditor/attributeTypeMap.cjs.js");require("../../Badge/Badge.cjs.js");require("../../Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../DateRangePicker/DateRangePicker.styled.cjs.js");require("../../LinksManager/CellEditingDialog.cjs.js");require("../../DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js");require("../../DeleteEntitiesConfirm/DeleteEntitiesConfirmDialog.styled.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/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/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.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/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.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/listItemsColumnStats.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/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("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../DetailsPanelAttributesEditor.cjs.js");require("../../DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../DetailsPanelDetails/BorderedSection.cjs.js");require("../../QuillListStyles/QuillListStyles.cjs.js");require("../../DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../../containers/Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../../containers/Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");const D=require("../../../hooks/useScopedStatuses.cjs.js"),N=require("../../../hooks/useScopedTypes.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.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/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("../../../context/EntityUpdatesContextInstance.cjs.js");require("../../../containers/ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../../containers/Feed/context/FeedContext.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../../containers/Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../../containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../../containers/Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../../containers/Feed/components/CommentInput/CommentInput.cjs.js");require("../../../containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../../containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../../containers/Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../../containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../../containers/Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../../containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../../containers/Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../../containers/Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../../containers/Feed/components/ActivityDate.cjs.js");require("../../../containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../../containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../../containers/Feed/components/ActivityFieldChange/ActivityFieldChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityFieldChange/FieldValue.cjs.js");require("../../../containers/Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../../containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../../containers/Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../../containers/Feed/Feed.styled.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../../containers/Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../../containers/ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../../containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectTableContextInstance.cjs.js");require("../../../containers/ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../containers/ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../containers/ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../containers/ProjectTreeTable/context/ProjectDataContextInstance.cjs.js");require("../../../containers/NewEntity/components/NewEntity.cjs.js");require("../../../containers/Slicer/components/Slicer.cjs.js");require("../../../containers/Slicer/context/SlicerContextInstance.cjs.js");require("../../../containers/Slicer/components/SlicerDropdownFallback.cjs.js");require("../../../containers/Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../../containers/NewEntity/context/NewEntityContextInstance.cjs.js");require("../../../containers/NewEntity/components/NewEntityForm.cjs.js");require("../../../containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../containers/ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../containers/ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../containers/ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../containers/ProjectTreeTable/components/HeaderActionButton.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../containers/ProjectTreeTable/components/TableFooterRow.cjs.js");require("../../../containers/DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../PlayableIcon/PlayableIcon.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../../containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../../containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../containers/Actions/Actions.styled.cjs.js");require("../../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../containers/Actions/ActionIcon.cjs.js");require("../../../containers/Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../containers/Views/context/ViewsContextInstance.cjs.js");require("../../../containers/Views/Views.styled.cjs.js");require("../../../containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../containers/EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../containers/ListTable/ListTableRow.cjs.js");require("../../../containers/ListTable/ListTable.styled.cjs.js");require("../../../context/DeleteEntitiesContext.cjs.js");require("custom-protocol-check");require("../../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../DetailsPanelDetails/DetailsSection.cjs.js");require("../../DetailsPanelDetails/FieldLabel.cjs.js");require("../../DoneCheckbox/DoneCheckbox.cjs.js");require("../../EarlyPreview/EarlyPreview.cjs.js");require("../../InfoMessage/InfoMessage.cjs.js");require("../../EnumEditor/EnumEditor.styled.cjs.js");require("../../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../EntityPath/EntityPath.styled.cjs.js");require("../../EntityPath/SegmentProvider.cjs.js");require("../../FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../Feedback/FeedbackContextInstance.cjs.js");require("../../Feedback/SupportBubble.cjs.js");require("../../FileThumbnail/FileThumbnail.cjs.js");require("../../LegacyBadge/LegacyBadge.cjs.js");require("../../LinksManager/LinksManager.styled.cjs.js");require("../../Powerpack/PowerpackButton.cjs.js");require("../../Powerpack/FreeTrialLink.cjs.js");require("../../Powerpack/PowerpackDialog.styled.cjs.js");require("../../Powerpack/CTAButton.cjs.js");require("../../Powerpack/RequiredAddonVersion.cjs.js");require("../../ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../SizeSlider/SizeSlider.cjs.js");require("../../ReviewableCard/ReviewableCard.cjs.js");require("../../ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../SearchFilter/CustomDateRangeDialog.cjs.js");require("../../SettingsPanel/SettingsPanel.cjs.js");require("../../SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../StyledLink/StyledLink.cjs.js");require("../../SyncButton/SyncButton.cjs.js");require("../../TableGridSwitch/TableGridSwitch.cjs.js");require("../../Thumbnail/Thumbnail.styled.cjs.js");require("../../Thumbnail/StackedThumbnails.cjs.js");require("../../ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../VersionUploader/components/UploadVersionDialog.cjs.js");require("../../VersionUploader/context/VersionUploadContextInstance.cjs.js");require("../../Watchers/Watchers.cjs.js");require("../../Menu/Menu.styled.cjs.js");require("../../Menu/MenuItem.cjs.js");require("../../ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../ColumnHeaderMenuUI.cjs.js");require("../../../containers/ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../containers/ProjectTreeTable/widgets/ErrorWidget.cjs.js");const f=j.div`
2
2
  width: 100%;
3
3
  overflow: hidden;
4
4
  text-overflow: ellipsis;
@@ -8,7 +8,7 @@
8
8
  input {
9
9
  text-align: left;
10
10
  }
11
- `,B=w(E.EnumWidget)`
11
+ `,B=j(k.EnumWidget)`
12
12
  .enum,
13
13
  .edit-trigger {
14
14
  &:hover {
@@ -18,5 +18,5 @@
18
18
  &:hover {
19
19
  background-color: unset;
20
20
  }
21
- `,A=({field:r,value:l,isEditing:y,isReadOnly:p,isMixed:m,onChange:S,onCancelEdit:a,onExpand:h,entities:c=[],entityType:x="task"})=>{const{type:u,widget:b}=r.data,s={isEditing:y&&!p,isReadOnly:p,isInherited:!1,onChange:t=>S(r.name,t)},v=c.map(t=>t.projectName),g=V.useScopedStatuses(v,[x]),d=f.useScopedTypes(v,x);let i=l??"";const j=r.data.title||r.name;switch(!0){case u==="boolean":return o.jsxRuntimeExports.jsx(T.BooleanWidget,{value:!!i,...s,style:{margin:0}});case u==="datetime":return o.jsxRuntimeExports.jsx(W.DateWidget,{value:i,...s,isEditing:!0,onCancelEdit:a,style:{width:"fit-content"},autoFocus:!1});case!!r.data.enum:{const t=u?.includes("list");let n=[];t?n=Array.isArray(i)?i:[]:m?n=[]:n=[i];let q=(r.data.enum||[]).map(e=>({value:e.value,label:e.label,icon:typeof e.icon=="string"?e.icon:void 0,color:e.color}));return r.name==="status"&&c.length>0&&g&&g.length>0&&(q=g.map(e=>({value:e.name,label:e.name,icon:e.icon,color:e.color}))),r.name==="taskType"&&c.length>0&&d&&d.length>0&&(q=d.map(e=>({value:e.name,label:e.name,icon:e.icon,color:e.color}))),r.allowNone&&n.length&&!t&&i&&i!==""&&(q=[{value:"",label:`No ${r.data.title||r.name}`},...q]),o.jsxRuntimeExports.jsx(B,{value:n,options:q,type:u,pt:{template:{style:{height:32},className:"enum"}},placeholder:m?`Mixed ${j}`:`Select ${j}...`,onCancelEdit:a,align:"right",enableCustomValues:r.enableCustomValues??!1,search:r.enableSearch??q.length>=5,sortBySelected:!q,...s})}case(u==="string"||u==="integer"||u==="float"):default:return b==="markdown"?o.jsxRuntimeExports.jsx(R.MarkdownWidget,{value:i.toString(),onCancelEdit:a,onExpand:h,showExpand:!!h,...s}):o.jsxRuntimeExports.jsx(N,{children:o.jsxRuntimeExports.jsx(k.TextWidget,{value:i.toString(),onCancelEdit:a,type:u,...s})})}};module.exports=A;
21
+ `,A=({field:r,value:c,isEditing:w,isReadOnly:m,isMixed:p,onChange:S,onCancelEdit:l,onExpand:h,entities:s=[],entityType:x="task"})=>{const{type:i,widget:b}=r.data,o={isEditing:w&&!m,isReadOnly:m,isInherited:!1,onChange:q=>S(r.name,q)},v=s.map(q=>q.projectName),g=D.useScopedStatuses(v,[x]),d=N.useScopedTypes(v,x),W=r.name==="attrib.endDate"&&s.length>0&&s.every(q=>q.data?.schedulerSyncData?.allDay===!0);let u=c??"";const y=r.data.title||r.name;switch(!0){case i==="boolean":return a.jsxRuntimeExports.jsx(V.BooleanWidget,{value:!!u,...o,style:{margin:0}});case i==="datetime":return a.jsxRuntimeExports.jsx(E.DateWidget,{value:u,...o,isEditing:!0,onCancelEdit:l,style:{width:"fit-content"},autoFocus:!1,isMidnightExclusive:W});case!!r.data.enum:{const q=i?.includes("list");let n=[];q?n=Array.isArray(u)?u:[]:p?n=[]:n=[u];let t=(r.data.enum||[]).map(e=>({value:e.value,label:e.label,icon:typeof e.icon=="string"?e.icon:void 0,color:e.color}));return r.name==="status"&&s.length>0&&g&&g.length>0&&(t=g.map(e=>({value:e.name,label:e.name,icon:e.icon,color:e.color}))),r.name==="taskType"&&s.length>0&&d&&d.length>0&&(t=d.map(e=>({value:e.name,label:e.name,icon:e.icon,color:e.color}))),r.allowNone&&n.length&&!q&&u&&u!==""&&(t=[{value:"",label:`No ${r.data.title||r.name}`},...t]),a.jsxRuntimeExports.jsx(B,{value:n,options:t,type:i,pt:{template:{style:{height:32},className:"enum"}},placeholder:p?`Mixed ${y}`:`Select ${y}...`,onCancelEdit:l,align:"right",enableCustomValues:r.enableCustomValues??!1,search:r.enableSearch??t.length>=5,sortBySelected:!t,...o})}case(i==="string"||i==="integer"||i==="float"):default:return b==="markdown"?a.jsxRuntimeExports.jsx(T.MarkdownWidget,{value:u.toString(),onCancelEdit:l,onExpand:h,showExpand:!!h,...o}):a.jsxRuntimeExports.jsx(f,{children:a.jsxRuntimeExports.jsx(R.TextWidget,{value:u.toString(),onCancelEdit:l,type:i,...o})})}};module.exports=A;
22
22
  //# sourceMappingURL=RenderFieldWidget.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFieldWidget.cjs.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport type { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport {\n TextWidget,\n MarkdownWidget,\n BooleanWidget,\n DateWidget,\n EnumWidget,\n} from '@shared/containers/ProjectTreeTable/widgets'\nimport { useScopedStatuses, useScopedTypes } from '@shared/hooks'\n// Import AttributeField as a type to avoid runtime circular dependency with DetailsPanelAttributesEditor\nimport type { AttributeField } from '../DetailsPanelAttributesEditor'\nimport type { DetailsPanelEntityData, EnumItem } from '@shared/api'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: left;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum,\n .edit-trigger {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n onExpand?: () => void\n entities?: DetailsPanelEntityData[]\n entityType?: string\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n onExpand,\n entities = [],\n entityType = 'task',\n}) => {\n const { type, widget } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isReadOnly: isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Hooks must be called at top level - not inside conditions\n const projectNames = entities.map((entity) => entity.projectName)\n const scopedStatuses = useScopedStatuses(projectNames, [entityType])\n const scopedTypes = useScopedTypes(projectNames, entityType)\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget value={Boolean(displayValue)} {...widgetCommonProps} style={{ margin: 0 }} />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n />\n )\n\n case !!field.data.enum: {\n const isListType = type?.includes('list')\n let valueArray = []\n\n if (isListType) {\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n valueArray = []\n } else {\n valueArray = [displayValue]\n }\n\n // Use scoped statuses/types based on field name\n let enumOptions: EnumItem[] = (field.data.enum || []).map((item) => ({\n value: item.value,\n label: item.label,\n icon: typeof item.icon === 'string' ? item.icon : undefined,\n color: item.color,\n }))\n if (\n field.name === 'status' &&\n entities.length > 0 &&\n scopedStatuses &&\n scopedStatuses.length > 0\n ) {\n enumOptions = scopedStatuses.map((status) => ({\n value: status.name,\n label: status.name,\n icon: status.icon,\n color: status.color,\n }))\n }\n if (\n field.name === 'taskType' &&\n entities.length > 0 &&\n scopedTypes &&\n scopedTypes.length > 0\n ) {\n enumOptions = scopedTypes.map((t) => ({\n value: t.name,\n label: t.name,\n icon: t.icon,\n color: t.color,\n }))\n }\n\n if (field.allowNone && !!valueArray.length && !isListType) {\n // Check if current field has a value (for single value fields)\n const hasCurrentValue = displayValue && displayValue !== ''\n if (hasCurrentValue) {\n enumOptions = [\n { value: '', label: `No ${field.data.title || field.name}` },\n ...enumOptions,\n ]\n }\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={enumOptions}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onCancelEdit={onCancelEdit}\n align=\"right\"\n enableCustomValues={field.enableCustomValues ?? false}\n search={field.enableSearch ?? enumOptions.length >= 5}\n sortBySelected={!enumOptions}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n if (widget === 'markdown') {\n return (\n <MarkdownWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n onExpand={onExpand}\n showExpand={!!onExpand}\n {...widgetCommonProps}\n />\n )\n } else {\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n type={type as 'string' | 'integer' | 'float'}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","onExpand","entities","entityType","type","widget","widgetCommonProps","newValue","projectNames","entity","scopedStatuses","useScopedStatuses","scopedTypes","useScopedTypes","displayValue","labelValue","jsx","BooleanWidget","DateWidget","isListType","valueArray","enumOptions","item","status","t","MarkdownWidget","TextWidget"],"mappings":"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"}
1
+ {"version":3,"file":"RenderFieldWidget.cjs.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport type { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport {\n TextWidget,\n MarkdownWidget,\n BooleanWidget,\n DateWidget,\n EnumWidget,\n} from '@shared/containers/ProjectTreeTable/widgets'\nimport { useScopedStatuses, useScopedTypes } from '@shared/hooks'\n// Import AttributeField as a type to avoid runtime circular dependency with DetailsPanelAttributesEditor\nimport type { AttributeField } from '../DetailsPanelAttributesEditor'\nimport type { DetailsPanelEntityData, EnumItem } from '@shared/api'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: left;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum,\n .edit-trigger {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n onExpand?: () => void\n entities?: DetailsPanelEntityData[]\n entityType?: string\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n onExpand,\n entities = [],\n entityType = 'task',\n}) => {\n const { type, widget } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isReadOnly: isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Hooks must be called at top level - not inside conditions\n const projectNames = entities.map((entity) => entity.projectName)\n const scopedStatuses = useScopedStatuses(projectNames, [entityType])\n const scopedTypes = useScopedTypes(projectNames, entityType)\n const isMidnightExclusive =\n field.name === 'attrib.endDate' &&\n entities.length > 0 &&\n entities.every((entity) => entity.data?.schedulerSyncData?.allDay === true)\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget value={Boolean(displayValue)} {...widgetCommonProps} style={{ margin: 0 }} />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n isMidnightExclusive={isMidnightExclusive}\n />\n )\n\n case !!field.data.enum: {\n const isListType = type?.includes('list')\n let valueArray = []\n\n if (isListType) {\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n valueArray = []\n } else {\n valueArray = [displayValue]\n }\n\n // Use scoped statuses/types based on field name\n let enumOptions: EnumItem[] = (field.data.enum || []).map((item) => ({\n value: item.value,\n label: item.label,\n icon: typeof item.icon === 'string' ? item.icon : undefined,\n color: item.color,\n }))\n if (\n field.name === 'status' &&\n entities.length > 0 &&\n scopedStatuses &&\n scopedStatuses.length > 0\n ) {\n enumOptions = scopedStatuses.map((status) => ({\n value: status.name,\n label: status.name,\n icon: status.icon,\n color: status.color,\n }))\n }\n if (\n field.name === 'taskType' &&\n entities.length > 0 &&\n scopedTypes &&\n scopedTypes.length > 0\n ) {\n enumOptions = scopedTypes.map((t) => ({\n value: t.name,\n label: t.name,\n icon: t.icon,\n color: t.color,\n }))\n }\n\n if (field.allowNone && !!valueArray.length && !isListType) {\n // Check if current field has a value (for single value fields)\n const hasCurrentValue = displayValue && displayValue !== ''\n if (hasCurrentValue) {\n enumOptions = [\n { value: '', label: `No ${field.data.title || field.name}` },\n ...enumOptions,\n ]\n }\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={enumOptions}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onCancelEdit={onCancelEdit}\n align=\"right\"\n enableCustomValues={field.enableCustomValues ?? false}\n search={field.enableSearch ?? enumOptions.length >= 5}\n sortBySelected={!enumOptions}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n if (widget === 'markdown') {\n return (\n <MarkdownWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n onExpand={onExpand}\n showExpand={!!onExpand}\n {...widgetCommonProps}\n />\n )\n } else {\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n type={type as 'string' | 'integer' | 'float'}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","onExpand","entities","entityType","type","widget","widgetCommonProps","newValue","projectNames","entity","scopedStatuses","useScopedStatuses","scopedTypes","useScopedTypes","isMidnightExclusive","displayValue","labelValue","jsx","BooleanWidget","DateWidget","isListType","valueArray","enumOptions","item","status","t","MarkdownWidget","TextWidget"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { j as e } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import y from "styled-components";
2
+ import b from "styled-components";
3
3
  import "../../../containers/ProjectTreeTable/widgets/CollapsedWidget.es.js";
4
- import { DateWidget as V } from "../../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
5
- import { EnumWidget as W } from "../../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
4
+ import { DateWidget as W } from "../../../containers/ProjectTreeTable/widgets/DateWidget.es.js";
5
+ import { EnumWidget as k } from "../../../containers/ProjectTreeTable/widgets/EnumWidget.es.js";
6
6
  import "../../../containers/ProjectTreeTable/widgets/EnumCellValue.es.js";
7
- import { TextWidget as k } from "../../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
8
- import { MarkdownWidget as N } from "../../../containers/ProjectTreeTable/widgets/MarkdownWidget.es.js";
9
- import { BooleanWidget as T } from "../../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
7
+ import { TextWidget as N } from "../../../containers/ProjectTreeTable/widgets/TextWidget.es.js";
8
+ import { MarkdownWidget as T } from "../../../containers/ProjectTreeTable/widgets/MarkdownWidget.es.js";
9
+ import { BooleanWidget as D } from "../../../containers/ProjectTreeTable/widgets/BooleanWidget.es.js";
10
10
  import "../../../containers/ProjectTreeTable/widgets/CellWidget.es.js";
11
11
  import "../../../containers/ProjectTreeTable/widgets/EntityNameWidget.es.js";
12
12
  import "../../../containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js";
@@ -303,7 +303,7 @@ import "../../ReviewablesSelector/ReviewablesSelector.es.js";
303
303
  import "../../ColumnHeaderMenuUI.es.js";
304
304
  import "../../../containers/ProjectTreeTable/widgets/EmptyWidget.es.js";
305
305
  import "../../../containers/ProjectTreeTable/widgets/ErrorWidget.es.js";
306
- const C = y.div`
306
+ const C = b.div`
307
307
  width: 100%;
308
308
  overflow: hidden;
309
309
  text-overflow: ellipsis;
@@ -313,7 +313,7 @@ const C = y.div`
313
313
  input {
314
314
  text-align: left;
315
315
  }
316
- `, F = y(W)`
316
+ `, E = b(k)`
317
317
  .enum,
318
318
  .edit-trigger {
319
319
  &:hover {
@@ -323,69 +323,70 @@ const C = y.div`
323
323
  &:hover {
324
324
  background-color: unset;
325
325
  }
326
- `, hp = ({
326
+ `, vp = ({
327
327
  field: o,
328
- value: s,
329
- isEditing: b,
328
+ value: c,
329
+ isEditing: w,
330
330
  isReadOnly: d,
331
331
  isMixed: h,
332
- onChange: j,
333
- onCancelEdit: l,
332
+ onChange: S,
333
+ onCancelEdit: s,
334
334
  onExpand: v,
335
- entities: u = [],
336
- entityType: f = "task"
335
+ entities: a = [],
336
+ entityType: y = "task"
337
337
  }) => {
338
- const { type: i, widget: S } = o.data, a = {
339
- isEditing: b && !d,
338
+ const { type: i, widget: j } = o.data, n = {
339
+ isEditing: w && !d,
340
340
  isReadOnly: d,
341
341
  isInherited: !1,
342
- onChange: (p) => j(o.name, p)
343
- }, x = u.map((p) => p.projectName), c = A(x, [f]), g = B(x, f);
344
- let r = s ?? "";
345
- const w = o.data.title || o.name;
342
+ onChange: (m) => S(o.name, m)
343
+ }, x = a.map((m) => m.projectName), u = A(x, [y]), g = B(x, y), V = o.name === "attrib.endDate" && a.length > 0 && a.every((m) => m.data?.schedulerSyncData?.allDay === !0);
344
+ let r = c ?? "";
345
+ const f = o.data.title || o.name;
346
346
  switch (!0) {
347
347
  case i === "boolean":
348
- return /* @__PURE__ */ e.jsx(T, { value: !!r, ...a, style: { margin: 0 } });
348
+ return /* @__PURE__ */ e.jsx(D, { value: !!r, ...n, style: { margin: 0 } });
349
349
  case i === "datetime":
350
350
  return /* @__PURE__ */ e.jsx(
351
- V,
351
+ W,
352
352
  {
353
353
  value: r,
354
- ...a,
354
+ ...n,
355
355
  isEditing: !0,
356
- onCancelEdit: l,
356
+ onCancelEdit: s,
357
357
  style: { width: "fit-content" },
358
- autoFocus: !1
358
+ autoFocus: !1,
359
+ isMidnightExclusive: V
359
360
  }
360
361
  );
361
362
  case !!o.data.enum: {
362
- const p = i?.includes("list");
363
- let n = [];
364
- p ? n = Array.isArray(r) ? r : [] : h ? n = [] : n = [r];
365
- let m = (o.data.enum || []).map((t) => ({
363
+ const m = i?.includes("list");
364
+ let l = [];
365
+ m ? l = Array.isArray(r) ? r : [] : h ? l = [] : l = [r];
366
+ let p = (o.data.enum || []).map((t) => ({
366
367
  value: t.value,
367
368
  label: t.label,
368
369
  icon: typeof t.icon == "string" ? t.icon : void 0,
369
370
  color: t.color
370
371
  }));
371
- return o.name === "status" && u.length > 0 && c && c.length > 0 && (m = c.map((t) => ({
372
+ return o.name === "status" && a.length > 0 && u && u.length > 0 && (p = u.map((t) => ({
372
373
  value: t.name,
373
374
  label: t.name,
374
375
  icon: t.icon,
375
376
  color: t.color
376
- }))), o.name === "taskType" && u.length > 0 && g && g.length > 0 && (m = g.map((t) => ({
377
+ }))), o.name === "taskType" && a.length > 0 && g && g.length > 0 && (p = g.map((t) => ({
377
378
  value: t.name,
378
379
  label: t.name,
379
380
  icon: t.icon,
380
381
  color: t.color
381
- }))), o.allowNone && n.length && !p && r && r !== "" && (m = [
382
+ }))), o.allowNone && l.length && !m && r && r !== "" && (p = [
382
383
  { value: "", label: `No ${o.data.title || o.name}` },
383
- ...m
384
+ ...p
384
385
  ]), /* @__PURE__ */ e.jsx(
385
- F,
386
+ E,
386
387
  {
387
- value: n,
388
- options: m,
388
+ value: l,
389
+ options: p,
389
390
  type: i,
390
391
  pt: {
391
392
  template: {
@@ -393,39 +394,39 @@ const C = y.div`
393
394
  className: "enum"
394
395
  }
395
396
  },
396
- placeholder: h ? `Mixed ${w}` : `Select ${w}...`,
397
- onCancelEdit: l,
397
+ placeholder: h ? `Mixed ${f}` : `Select ${f}...`,
398
+ onCancelEdit: s,
398
399
  align: "right",
399
400
  enableCustomValues: o.enableCustomValues ?? !1,
400
- search: o.enableSearch ?? m.length >= 5,
401
- sortBySelected: !m,
402
- ...a
401
+ search: o.enableSearch ?? p.length >= 5,
402
+ sortBySelected: !p,
403
+ ...n
403
404
  }
404
405
  );
405
406
  }
406
407
  case (i === "string" || i === "integer" || i === "float"):
407
408
  default:
408
- return S === "markdown" ? /* @__PURE__ */ e.jsx(
409
- N,
409
+ return j === "markdown" ? /* @__PURE__ */ e.jsx(
410
+ T,
410
411
  {
411
412
  value: r.toString(),
412
- onCancelEdit: l,
413
+ onCancelEdit: s,
413
414
  onExpand: v,
414
415
  showExpand: !!v,
415
- ...a
416
+ ...n
416
417
  }
417
418
  ) : /* @__PURE__ */ e.jsx(C, { children: /* @__PURE__ */ e.jsx(
418
- k,
419
+ N,
419
420
  {
420
421
  value: r.toString(),
421
- onCancelEdit: l,
422
+ onCancelEdit: s,
422
423
  type: i,
423
- ...a
424
+ ...n
424
425
  }
425
426
  ) });
426
427
  }
427
428
  };
428
429
  export {
429
- hp as default
430
+ vp as default
430
431
  };
431
432
  //# sourceMappingURL=RenderFieldWidget.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFieldWidget.es.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport type { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport {\n TextWidget,\n MarkdownWidget,\n BooleanWidget,\n DateWidget,\n EnumWidget,\n} from '@shared/containers/ProjectTreeTable/widgets'\nimport { useScopedStatuses, useScopedTypes } from '@shared/hooks'\n// Import AttributeField as a type to avoid runtime circular dependency with DetailsPanelAttributesEditor\nimport type { AttributeField } from '../DetailsPanelAttributesEditor'\nimport type { DetailsPanelEntityData, EnumItem } from '@shared/api'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: left;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum,\n .edit-trigger {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n onExpand?: () => void\n entities?: DetailsPanelEntityData[]\n entityType?: string\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n onExpand,\n entities = [],\n entityType = 'task',\n}) => {\n const { type, widget } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isReadOnly: isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Hooks must be called at top level - not inside conditions\n const projectNames = entities.map((entity) => entity.projectName)\n const scopedStatuses = useScopedStatuses(projectNames, [entityType])\n const scopedTypes = useScopedTypes(projectNames, entityType)\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget value={Boolean(displayValue)} {...widgetCommonProps} style={{ margin: 0 }} />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n />\n )\n\n case !!field.data.enum: {\n const isListType = type?.includes('list')\n let valueArray = []\n\n if (isListType) {\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n valueArray = []\n } else {\n valueArray = [displayValue]\n }\n\n // Use scoped statuses/types based on field name\n let enumOptions: EnumItem[] = (field.data.enum || []).map((item) => ({\n value: item.value,\n label: item.label,\n icon: typeof item.icon === 'string' ? item.icon : undefined,\n color: item.color,\n }))\n if (\n field.name === 'status' &&\n entities.length > 0 &&\n scopedStatuses &&\n scopedStatuses.length > 0\n ) {\n enumOptions = scopedStatuses.map((status) => ({\n value: status.name,\n label: status.name,\n icon: status.icon,\n color: status.color,\n }))\n }\n if (\n field.name === 'taskType' &&\n entities.length > 0 &&\n scopedTypes &&\n scopedTypes.length > 0\n ) {\n enumOptions = scopedTypes.map((t) => ({\n value: t.name,\n label: t.name,\n icon: t.icon,\n color: t.color,\n }))\n }\n\n if (field.allowNone && !!valueArray.length && !isListType) {\n // Check if current field has a value (for single value fields)\n const hasCurrentValue = displayValue && displayValue !== ''\n if (hasCurrentValue) {\n enumOptions = [\n { value: '', label: `No ${field.data.title || field.name}` },\n ...enumOptions,\n ]\n }\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={enumOptions}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onCancelEdit={onCancelEdit}\n align=\"right\"\n enableCustomValues={field.enableCustomValues ?? false}\n search={field.enableSearch ?? enumOptions.length >= 5}\n sortBySelected={!enumOptions}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n if (widget === 'markdown') {\n return (\n <MarkdownWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n onExpand={onExpand}\n showExpand={!!onExpand}\n {...widgetCommonProps}\n />\n )\n } else {\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n type={type as 'string' | 'integer' | 'float'}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","onExpand","entities","entityType","type","widget","widgetCommonProps","newValue","projectNames","entity","scopedStatuses","useScopedStatuses","scopedTypes","useScopedTypes","displayValue","labelValue","jsx","BooleanWidget","DateWidget","isListType","valueArray","enumOptions","item","status","MarkdownWidget","TextWidget"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAMA,IAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYxBC,IAAmBD,EAAOE,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAyBpCC,KAAgD,CAAC;AAAA,EACrD,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW,CAAA;AAAA,EACX,YAAAC,IAAa;AACf,MAAM;AACJ,QAAM,EAAE,MAAAC,GAAM,QAAAC,EAAA,IAAWX,EAAM,MACzBY,IAAoB;AAAA,IACxB,WAAWV,KAAa,CAACC;AAAA,IACzB,YAAAA;AAAA,IACA,aAAa;AAAA,IACb,UAAU,CAACU,MAAsCR,EAASL,EAAM,MAAMa,CAAQ;AAAA,EAAA,GAI1EC,IAAeN,EAAS,IAAI,CAACO,MAAWA,EAAO,WAAW,GAC1DC,IAAiBC,EAAkBH,GAAc,CAACL,CAAU,CAAC,GAC7DS,IAAcC,EAAeL,GAAcL,CAAU;AAG3D,MAAIW,IAAenB,KAAwC;AAC3D,QAAMoB,IAAarB,EAAM,KAAK,SAASA,EAAM;AAG7C,UAAQ,IAAA;AAAA,IACN,KAAKU,MAAS;AACZ,aACEY,gBAAAA,EAAAA,IAACC,GAAA,EAAc,OAAO,EAAQH,GAAgB,GAAGR,GAAmB,OAAO,EAAE,QAAQ,EAAA,EAAE,CAAG;AAAA,IAG9F,KAAKF,MAAS;AACZ,aACEY,gBAAAA,EAAAA;AAAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOJ;AAAA,UACN,GAAGR;AAAA,UACJ,WAAS;AAAA,UACT,cAAAN;AAAA,UACA,OAAO,EAAE,OAAO,cAAA;AAAA,UAChB,WAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IAIjB,KAAK,CAAC,CAACN,EAAM,KAAK,MAAM;AACtB,YAAMyB,IAAaf,GAAM,SAAS,MAAM;AACxC,UAAIgB,IAAa,CAAA;AAEjB,MAAID,IACFC,IAAa,MAAM,QAAQN,CAAY,IAAIA,IAAe,CAAA,IACjDhB,IACTsB,IAAa,CAAA,IAEbA,IAAa,CAACN,CAAY;AAI5B,UAAIO,KAA2B3B,EAAM,KAAK,QAAQ,IAAI,IAAI,CAAC4B,OAAU;AAAA,QACnE,OAAOA,EAAK;AAAA,QACZ,OAAOA,EAAK;AAAA,QACZ,MAAM,OAAOA,EAAK,QAAS,WAAWA,EAAK,OAAO;AAAA,QAClD,OAAOA,EAAK;AAAA,MAAA,EACZ;AACF,aACE5B,EAAM,SAAS,YACfQ,EAAS,SAAS,KAClBQ,KACAA,EAAe,SAAS,MAExBW,IAAcX,EAAe,IAAI,CAACa,OAAY;AAAA,QAC5C,OAAOA,EAAO;AAAA,QACd,OAAOA,EAAO;AAAA,QACd,MAAMA,EAAO;AAAA,QACb,OAAOA,EAAO;AAAA,MAAA,EACd,IAGF7B,EAAM,SAAS,cACfQ,EAAS,SAAS,KAClBU,KACAA,EAAY,SAAS,MAErBS,IAAcT,EAAY,IAAI,CAAC,OAAO;AAAA,QACpC,OAAO,EAAE;AAAA,QACT,OAAO,EAAE;AAAA,QACT,MAAM,EAAE;AAAA,QACR,OAAO,EAAE;AAAA,MAAA,EACT,IAGAlB,EAAM,aAAe0B,EAAW,UAAU,CAACD,KAErBL,KAAgBA,MAAiB,OAEvDO,IAAc;AAAA,QACZ,EAAE,OAAO,IAAI,OAAO,MAAM3B,EAAM,KAAK,SAASA,EAAM,IAAI,GAAA;AAAA,QACxD,GAAG2B;AAAA,MAAA,IAMPL,gBAAAA,EAAAA;AAAAA,QAACzB;AAAA,QAAA;AAAA,UACC,OAAO6B;AAAA,UACP,SAASC;AAAA,UACT,MAAAjB;AAAA,UACA,IAAI;AAAA,YACF,UAAU;AAAA,cACR,OAAO,EAAE,QAAQ,GAAA;AAAA,cACjB,WAAW;AAAA,YAAA;AAAA,UACb;AAAA,UAEF,aAAaN,IAAU,SAASiB,CAAU,KAAK,UAAUA,CAAU;AAAA,UACnE,cAAAf;AAAA,UACA,OAAM;AAAA,UACN,oBAAoBN,EAAM,sBAAsB;AAAA,UAChD,QAAQA,EAAM,gBAAgB2B,EAAY,UAAU;AAAA,UACpD,gBAAgB,CAACA;AAAA,UAChB,GAAGf;AAAA,QAAA;AAAA,MAAA;AAAA,IAGV;AAAA,IAEA,MAAKF,MAAS,YAAYA,MAAS,aAAaA,MAAS;AAAA,IACzD;AACE,aAAIC,MAAW,aAEXW,gBAAAA,EAAAA;AAAAA,QAACQ;AAAA,QAAA;AAAA,UACC,OAAOV,EAAa,SAAA;AAAA,UACpB,cAAAd;AAAA,UACA,UAAAC;AAAA,UACA,YAAY,CAAC,CAACA;AAAA,UACb,GAAGK;AAAA,QAAA;AAAA,MAAA,0BAKLjB,GAAA,EACC,UAAA2B,gBAAAA,EAAAA;AAAAA,QAACS;AAAA,QAAA;AAAA,UACC,OAAOX,EAAa,SAAA;AAAA,UACpB,cAAAd;AAAA,UACA,MAAAI;AAAA,UACC,GAAGE;AAAA,QAAA;AAAA,MAAA,GAER;AAAA,EAEJ;AAEN;"}
1
+ {"version":3,"file":"RenderFieldWidget.es.js","sources":["../../../../../../src/components/DetailsPanelAttributes/components/RenderFieldWidget.tsx"],"sourcesContent":["import { FC } from 'react'\nimport styled from 'styled-components'\nimport type { CellValue } from '@shared/containers/ProjectTreeTable/widgets/CellWidget'\nimport {\n TextWidget,\n MarkdownWidget,\n BooleanWidget,\n DateWidget,\n EnumWidget,\n} from '@shared/containers/ProjectTreeTable/widgets'\nimport { useScopedStatuses, useScopedTypes } from '@shared/hooks'\n// Import AttributeField as a type to avoid runtime circular dependency with DetailsPanelAttributesEditor\nimport type { AttributeField } from '../DetailsPanelAttributesEditor'\nimport type { DetailsPanelEntityData, EnumItem } from '@shared/api'\n\nconst FieldValueText = styled.div`\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: right;\n\n input {\n text-align: left;\n }\n`\n\nconst StyledEnumWidget = styled(EnumWidget)`\n .enum,\n .edit-trigger {\n &:hover {\n background-color: unset;\n }\n }\n &:hover {\n background-color: unset;\n }\n`\n\ninterface RenderFieldWidgetProps {\n field: AttributeField\n value: any\n isEditing: boolean\n isReadOnly: boolean\n isMixed: boolean\n onChange: (fieldName: string, value: CellValue | CellValue[]) => void\n onCancelEdit: () => void\n onExpand?: () => void\n entities?: DetailsPanelEntityData[]\n entityType?: string\n}\n\nconst RenderFieldWidget: FC<RenderFieldWidgetProps> = ({\n field,\n value,\n isEditing,\n isReadOnly,\n isMixed,\n onChange,\n onCancelEdit,\n onExpand,\n entities = [],\n entityType = 'task',\n}) => {\n const { type, widget } = field.data\n const widgetCommonProps = {\n isEditing: isEditing && !isReadOnly,\n isReadOnly: isReadOnly,\n isInherited: false,\n onChange: (newValue: CellValue | CellValue[]) => onChange(field.name, newValue),\n }\n\n // Hooks must be called at top level - not inside conditions\n const projectNames = entities.map((entity) => entity.projectName)\n const scopedStatuses = useScopedStatuses(projectNames, [entityType])\n const scopedTypes = useScopedTypes(projectNames, entityType)\n const isMidnightExclusive =\n field.name === 'attrib.endDate' &&\n entities.length > 0 &&\n entities.every((entity) => entity.data?.schedulerSyncData?.allDay === true)\n\n // Format the value for display\n let displayValue = value === null || value === undefined ? '' : value\n const labelValue = field.data.title || field.name\n\n // Handle different field types\n switch (true) {\n case type === 'boolean':\n return (\n <BooleanWidget value={Boolean(displayValue)} {...widgetCommonProps} style={{ margin: 0 }} />\n )\n\n case type === 'datetime':\n return (\n <DateWidget\n value={displayValue}\n {...widgetCommonProps}\n isEditing\n onCancelEdit={onCancelEdit}\n style={{ width: 'fit-content' }}\n autoFocus={false}\n isMidnightExclusive={isMidnightExclusive}\n />\n )\n\n case !!field.data.enum: {\n const isListType = type?.includes('list')\n let valueArray = []\n\n if (isListType) {\n valueArray = Array.isArray(displayValue) ? displayValue : []\n } else if (isMixed) {\n valueArray = []\n } else {\n valueArray = [displayValue]\n }\n\n // Use scoped statuses/types based on field name\n let enumOptions: EnumItem[] = (field.data.enum || []).map((item) => ({\n value: item.value,\n label: item.label,\n icon: typeof item.icon === 'string' ? item.icon : undefined,\n color: item.color,\n }))\n if (\n field.name === 'status' &&\n entities.length > 0 &&\n scopedStatuses &&\n scopedStatuses.length > 0\n ) {\n enumOptions = scopedStatuses.map((status) => ({\n value: status.name,\n label: status.name,\n icon: status.icon,\n color: status.color,\n }))\n }\n if (\n field.name === 'taskType' &&\n entities.length > 0 &&\n scopedTypes &&\n scopedTypes.length > 0\n ) {\n enumOptions = scopedTypes.map((t) => ({\n value: t.name,\n label: t.name,\n icon: t.icon,\n color: t.color,\n }))\n }\n\n if (field.allowNone && !!valueArray.length && !isListType) {\n // Check if current field has a value (for single value fields)\n const hasCurrentValue = displayValue && displayValue !== ''\n if (hasCurrentValue) {\n enumOptions = [\n { value: '', label: `No ${field.data.title || field.name}` },\n ...enumOptions,\n ]\n }\n }\n\n return (\n <StyledEnumWidget\n value={valueArray}\n options={enumOptions}\n type={type}\n pt={{\n template: {\n style: { height: 32 },\n className: 'enum',\n },\n }}\n placeholder={isMixed ? `Mixed ${labelValue}` : `Select ${labelValue}...`}\n onCancelEdit={onCancelEdit}\n align=\"right\"\n enableCustomValues={field.enableCustomValues ?? false}\n search={field.enableSearch ?? enumOptions.length >= 5}\n sortBySelected={!enumOptions}\n {...widgetCommonProps}\n />\n )\n }\n\n case type === 'string' || type === 'integer' || type === 'float':\n default:\n if (widget === 'markdown') {\n return (\n <MarkdownWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n onExpand={onExpand}\n showExpand={!!onExpand}\n {...widgetCommonProps}\n />\n )\n } else {\n return (\n <FieldValueText>\n <TextWidget\n value={displayValue.toString()}\n onCancelEdit={onCancelEdit}\n type={type as 'string' | 'integer' | 'float'}\n {...widgetCommonProps}\n />\n </FieldValueText>\n )\n }\n }\n}\n\nexport default RenderFieldWidget\n"],"names":["FieldValueText","styled","StyledEnumWidget","EnumWidget","RenderFieldWidget","field","value","isEditing","isReadOnly","isMixed","onChange","onCancelEdit","onExpand","entities","entityType","type","widget","widgetCommonProps","newValue","projectNames","entity","scopedStatuses","useScopedStatuses","scopedTypes","useScopedTypes","isMidnightExclusive","displayValue","labelValue","jsx","BooleanWidget","DateWidget","isListType","valueArray","enumOptions","item","status","MarkdownWidget","TextWidget"],"mappings":"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"}