@ynput/ayon-frontend-shared 0.3.0 → 0.3.2

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 (377) 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.es4.js +2 -5
  4. package/dist/_virtual/index.es4.js.map +1 -1
  5. package/dist/_virtual/index.es5.js +5 -2
  6. package/dist/_virtual/index.es5.js.map +1 -1
  7. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  8. package/dist/node_modules/remove-accents/index.es.js +1 -1
  9. package/dist/node_modules/web-namespaces/index.cjs.js +1 -1
  10. package/dist/node_modules/web-namespaces/index.cjs.js.map +1 -1
  11. package/dist/node_modules/web-namespaces/index.es.js +3 -8
  12. package/dist/node_modules/web-namespaces/index.es.js.map +1 -1
  13. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  14. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  15. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  16. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  17. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  18. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  19. package/dist/shared/src/api/generated/graphql.cjs.js +12 -8
  20. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  21. package/dist/shared/src/api/generated/graphql.es.js +11 -7
  22. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  23. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  24. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  25. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  26. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  27. package/dist/shared/src/api/queries/overview/getOverview.es.js +95 -95
  28. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  29. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  30. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  31. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +66 -61
  32. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  33. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  34. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  35. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +14 -11
  36. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  37. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  38. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  39. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +42 -41
  40. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  41. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  42. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  43. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -23
  44. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  45. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js +1 -1
  46. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.cjs.js.map +1 -1
  47. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js +6 -6
  48. package/dist/shared/src/containers/Feed/hooks/useTransformActivities.es.js.map +1 -1
  49. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  50. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  51. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +65 -64
  52. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  53. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  54. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  55. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +16 -16
  56. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  57. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +3 -3
  58. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  59. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +142 -146
  60. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  61. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  62. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  63. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +24 -24
  64. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  65. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  66. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  67. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +141 -132
  68. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  69. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  70. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  71. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +35 -28
  72. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  73. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +2 -2
  74. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  75. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +10 -10
  76. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  77. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  78. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  79. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  80. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  81. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  82. package/dist/shared/src/context/ProjectFoldersContext.es.js +62 -49
  83. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  84. package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
  85. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  86. package/dist/shared/src/hooks/useLoadModules.es.js +86 -80
  87. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  88. package/dist/types/api/generated/graphql.d.ts +2 -1
  89. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  90. package/dist/types/api/queries/overview/getOverview.d.ts +1 -0
  91. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +1 -0
  92. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -0
  93. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
  94. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +4 -1
  95. package/dist/types/context/AddonContext.d.ts +1 -0
  96. package/dist/types/context/ProjectFoldersContext.d.ts +1 -0
  97. package/package.json +2 -1
  98. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js +0 -2
  99. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.cjs.js.map +0 -1
  100. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js +0 -63
  101. package/dist/node_modules/@ungap/structured-clone/esm/deserialize.es.js.map +0 -1
  102. package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js +0 -2
  103. package/dist/node_modules/@ungap/structured-clone/esm/index.cjs.js.map +0 -1
  104. package/dist/node_modules/@ungap/structured-clone/esm/index.es.js +0 -12
  105. package/dist/node_modules/@ungap/structured-clone/esm/index.es.js.map +0 -1
  106. package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js +0 -2
  107. package/dist/node_modules/@ungap/structured-clone/esm/serialize.cjs.js.map +0 -1
  108. package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js +0 -107
  109. package/dist/node_modules/@ungap/structured-clone/esm/serialize.es.js.map +0 -1
  110. package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js +0 -2
  111. package/dist/node_modules/@ungap/structured-clone/esm/types.cjs.js.map +0 -1
  112. package/dist/node_modules/@ungap/structured-clone/esm/types.es.js +0 -14
  113. package/dist/node_modules/@ungap/structured-clone/esm/types.es.js.map +0 -1
  114. package/dist/node_modules/devlop/lib/default.cjs.js +0 -2
  115. package/dist/node_modules/devlop/lib/default.cjs.js.map +0 -1
  116. package/dist/node_modules/devlop/lib/default.es.js +0 -6
  117. package/dist/node_modules/devlop/lib/default.es.js.map +0 -1
  118. package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js +0 -2
  119. package/dist/node_modules/entities/dist/esm/decode-codepoint.cjs.js.map +0 -1
  120. package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js +0 -39
  121. package/dist/node_modules/entities/dist/esm/decode-codepoint.es.js.map +0 -1
  122. package/dist/node_modules/entities/dist/esm/decode.cjs.js +0 -2
  123. package/dist/node_modules/entities/dist/esm/decode.cjs.js.map +0 -1
  124. package/dist/node_modules/entities/dist/esm/decode.es.js +0 -246
  125. package/dist/node_modules/entities/dist/esm/decode.es.js.map +0 -1
  126. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js +0 -2
  127. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.cjs.js.map +0 -1
  128. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js +0 -8
  129. package/dist/node_modules/entities/dist/esm/generated/decode-data-html.es.js.map +0 -1
  130. package/dist/node_modules/hast-util-raw/lib/index.cjs.js +0 -2
  131. package/dist/node_modules/hast-util-raw/lib/index.cjs.js.map +0 -1
  132. package/dist/node_modules/hast-util-raw/lib/index.es.js +0 -218
  133. package/dist/node_modules/hast-util-raw/lib/index.es.js.map +0 -1
  134. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js +0 -2
  135. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.cjs.js.map +0 -1
  136. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js +0 -146
  137. package/dist/node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.es.js.map +0 -1
  138. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js +0 -2
  139. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.cjs.js.map +0 -1
  140. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js +0 -21
  141. package/dist/node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.es.js.map +0 -1
  142. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js +0 -2
  143. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.cjs.js.map +0 -1
  144. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js +0 -113
  145. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.es.js.map +0 -1
  146. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js +0 -2
  147. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.cjs.js.map +0 -1
  148. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js +0 -9
  149. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/index.es.js.map +0 -1
  150. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js +0 -2
  151. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.cjs.js.map +0 -1
  152. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js +0 -45
  153. package/dist/node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.es.js.map +0 -1
  154. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js +0 -2
  155. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.cjs.js.map +0 -1
  156. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js +0 -26
  157. package/dist/node_modules/hast-util-raw/node_modules/html-void-elements/index.es.js.map +0 -1
  158. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js +0 -2
  159. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.cjs.js.map +0 -1
  160. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js +0 -99
  161. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/doctype.es.js.map +0 -1
  162. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js +0 -2
  163. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.cjs.js.map +0 -1
  164. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js +0 -8
  165. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/error-codes.es.js.map +0 -1
  166. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js +0 -2
  167. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.cjs.js.map +0 -1
  168. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js +0 -211
  169. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/foreign-content.es.js.map +0 -1
  170. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js +0 -2
  171. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.cjs.js.map +0 -1
  172. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js +0 -251
  173. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/html.es.js.map +0 -1
  174. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js +0 -2
  175. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.cjs.js.map +0 -1
  176. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js +0 -15
  177. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/token.es.js.map +0 -1
  178. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js +0 -2
  179. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.cjs.js.map +0 -1
  180. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js +0 -74
  181. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/common/unicode.es.js.map +0 -1
  182. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js +0 -2
  183. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.cjs.js.map +0 -1
  184. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js +0 -85
  185. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/formatting-element-list.es.js.map +0 -1
  186. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js +0 -2
  187. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.cjs.js.map +0 -1
  188. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js +0 -2272
  189. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/index.es.js.map +0 -1
  190. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js +0 -2
  191. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.cjs.js.map +0 -1
  192. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js +0 -241
  193. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/parser/open-element-stack.es.js.map +0 -1
  194. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js +0 -2
  195. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.cjs.js.map +0 -1
  196. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js +0 -3
  197. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/serializer/index.es.js.map +0 -1
  198. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js +0 -2
  199. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.cjs.js.map +0 -1
  200. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js +0 -1941
  201. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/index.es.js.map +0 -1
  202. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js +0 -2
  203. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.cjs.js.map +0 -1
  204. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js +0 -89
  205. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tokenizer/preprocessor.es.js.map +0 -1
  206. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js +0 -2
  207. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.cjs.js.map +0 -1
  208. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js +0 -163
  209. package/dist/node_modules/hast-util-raw/node_modules/parse5/dist/tree-adapters/default.es.js.map +0 -1
  210. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js +0 -2
  211. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.cjs.js.map +0 -1
  212. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js +0 -13
  213. package/dist/node_modules/hast-util-raw/node_modules/property-information/index.es.js.map +0 -1
  214. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js +0 -2
  215. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.cjs.js.map +0 -1
  216. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js +0 -62
  217. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/aria.es.js.map +0 -1
  218. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js +0 -2
  219. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.cjs.js.map +0 -1
  220. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js +0 -34
  221. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/find.es.js.map +0 -1
  222. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js +0 -2
  223. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.cjs.js.map +0 -1
  224. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js +0 -369
  225. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/html.es.js.map +0 -1
  226. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js +0 -2
  227. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
  228. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js +0 -7
  229. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/normalize.es.js.map +0 -1
  230. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js +0 -2
  231. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.cjs.js.map +0 -1
  232. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js +0 -567
  233. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/svg.es.js.map +0 -1
  234. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
  235. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
  236. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
  237. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
  238. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
  239. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
  240. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
  241. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
  242. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js +0 -2
  243. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
  244. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js +0 -20
  245. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/create.es.js.map +0 -1
  246. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
  247. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
  248. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js +0 -37
  249. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
  250. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js +0 -2
  251. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
  252. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js +0 -29
  253. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/info.es.js.map +0 -1
  254. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js +0 -2
  255. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
  256. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js +0 -11
  257. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.es.js.map +0 -1
  258. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js +0 -2
  259. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
  260. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js +0 -22
  261. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.es.js.map +0 -1
  262. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js +0 -2
  263. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
  264. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js +0 -15
  265. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/util/types.es.js.map +0 -1
  266. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js +0 -2
  267. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
  268. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js +0 -20
  269. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xlink.es.js.map +0 -1
  270. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js +0 -2
  271. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.cjs.js.map +0 -1
  272. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js +0 -12
  273. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xml.es.js.map +0 -1
  274. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js +0 -2
  275. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
  276. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js +0 -12
  277. package/dist/node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.es.js.map +0 -1
  278. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js +0 -3
  279. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.cjs.js.map +0 -1
  280. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js +0 -43
  281. package/dist/node_modules/hast-util-raw/node_modules/vfile-location/lib/index.es.js.map +0 -1
  282. package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js +0 -2
  283. package/dist/node_modules/hast-util-to-parse5/lib/index.cjs.js.map +0 -1
  284. package/dist/node_modules/hast-util-to-parse5/lib/index.es.js +0 -119
  285. package/dist/node_modules/hast-util-to-parse5/lib/index.es.js.map +0 -1
  286. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js +0 -2
  287. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.cjs.js.map +0 -1
  288. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js +0 -13
  289. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/index.es.js.map +0 -1
  290. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js +0 -2
  291. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.cjs.js.map +0 -1
  292. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js +0 -62
  293. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.es.js.map +0 -1
  294. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js +0 -2
  295. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.cjs.js.map +0 -1
  296. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js +0 -34
  297. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.es.js.map +0 -1
  298. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js +0 -2
  299. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.cjs.js.map +0 -1
  300. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js +0 -369
  301. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.es.js.map +0 -1
  302. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js +0 -2
  303. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.cjs.js.map +0 -1
  304. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js +0 -7
  305. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.es.js.map +0 -1
  306. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js +0 -2
  307. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.cjs.js.map +0 -1
  308. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js +0 -567
  309. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.es.js.map +0 -1
  310. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js +0 -2
  311. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.cjs.js.map +0 -1
  312. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js +0 -8
  313. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.es.js.map +0 -1
  314. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js +0 -2
  315. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.cjs.js.map +0 -1
  316. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js +0 -7
  317. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.es.js.map +0 -1
  318. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js +0 -2
  319. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.cjs.js.map +0 -1
  320. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js +0 -20
  321. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.es.js.map +0 -1
  322. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js +0 -2
  323. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.cjs.js.map +0 -1
  324. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js +0 -37
  325. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.es.js.map +0 -1
  326. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js +0 -2
  327. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.cjs.js.map +0 -1
  328. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js +0 -29
  329. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.es.js.map +0 -1
  330. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js +0 -2
  331. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.cjs.js.map +0 -1
  332. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js +0 -11
  333. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.es.js.map +0 -1
  334. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js +0 -2
  335. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.cjs.js.map +0 -1
  336. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js +0 -22
  337. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.es.js.map +0 -1
  338. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js +0 -2
  339. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.cjs.js.map +0 -1
  340. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js +0 -15
  341. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.es.js.map +0 -1
  342. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js +0 -2
  343. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.cjs.js.map +0 -1
  344. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js +0 -20
  345. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.es.js.map +0 -1
  346. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js +0 -2
  347. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.cjs.js.map +0 -1
  348. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js +0 -12
  349. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.es.js.map +0 -1
  350. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js +0 -2
  351. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.cjs.js.map +0 -1
  352. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js +0 -12
  353. package/dist/node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.es.js.map +0 -1
  354. package/dist/node_modules/rehype-raw/lib/index.cjs.js +0 -2
  355. package/dist/node_modules/rehype-raw/lib/index.cjs.js.map +0 -1
  356. package/dist/node_modules/rehype-raw/lib/index.es.js +0 -13
  357. package/dist/node_modules/rehype-raw/lib/index.es.js.map +0 -1
  358. package/dist/node_modules/unist-util-is/lib/index.cjs.js +0 -2
  359. package/dist/node_modules/unist-util-is/lib/index.cjs.js.map +0 -1
  360. package/dist/node_modules/unist-util-is/lib/index.es.js +0 -92
  361. package/dist/node_modules/unist-util-is/lib/index.es.js.map +0 -1
  362. package/dist/node_modules/unist-util-position/lib/index.cjs.js +0 -2
  363. package/dist/node_modules/unist-util-position/lib/index.cjs.js.map +0 -1
  364. package/dist/node_modules/unist-util-position/lib/index.es.js +0 -18
  365. package/dist/node_modules/unist-util-position/lib/index.es.js.map +0 -1
  366. package/dist/node_modules/unist-util-visit/lib/index.cjs.js +0 -2
  367. package/dist/node_modules/unist-util-visit/lib/index.cjs.js.map +0 -1
  368. package/dist/node_modules/unist-util-visit/lib/index.es.js +0 -17
  369. package/dist/node_modules/unist-util-visit/lib/index.es.js.map +0 -1
  370. package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js +0 -2
  371. package/dist/node_modules/unist-util-visit-parents/lib/color.cjs.js.map +0 -1
  372. package/dist/node_modules/unist-util-visit-parents/lib/color.es.js +0 -7
  373. package/dist/node_modules/unist-util-visit-parents/lib/color.es.js.map +0 -1
  374. package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js +0 -2
  375. package/dist/node_modules/unist-util-visit-parents/lib/index.cjs.js.map +0 -1
  376. package/dist/node_modules/unist-util-visit-parents/lib/index.es.js +0 -57
  377. package/dist/node_modules/unist-util-visit-parents/lib/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"buildTreeTableColumns.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted, READ_ONLY } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.subRows.length === 0 && !row.original.metaType}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', READ_ONLY, type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","a","b","c","s","isEntityRestricted","READ_ONLY","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"07bA4BaA,EAAsBC,GAAuB,CAAC,SAAU,SAAS,EAAE,SAASA,CAAU,EAE7FC,EAAW,GAGXC,EAAwBC,GACrB,CAACC,EAAMC,KAASC,IAEjBF,EAAK,SAAS,YAAcC,EAAK,SAAS,UACrCD,EAAK,SAAS,UAAY,EAAI,GAGhCD,EAAOC,EAAMC,EAAM,GAAGC,CAAI,EAI/BC,EAA2B,CAACH,EAAMC,IAAS,CAC/C,MAAMG,EAASJ,EAAK,SAAS,MAAQA,EAAK,SAAS,MAAQ,GACrDK,EAASJ,EAAK,SAAS,MAAQA,EAAK,SAAS,MAAQ,GAE3D,OAAOG,EAAO,cAAcC,CAAM,CACpC,EAEMC,EAAkC,CAACN,EAAMC,EAAMM,IAAa,CAChE,MAAMC,EAASC,EAAAA,aAAaT,EAAK,SAAUO,CAAQ,EAC7CG,EAASD,EAAAA,aAAaR,EAAK,SAAUM,CAAQ,EAC7CI,EAAU,MAAM,QAAQH,CAAM,EAAIA,EAAO,OAASA,EAAS,OAAOA,CAAM,EAAE,OAAS,EACnFI,EAAU,MAAM,QAAQF,CAAM,EAAIA,EAAO,OAASA,EAAS,OAAOA,CAAM,EAAE,OAAS,EACzF,OAAOC,EAAUC,CACnB,EAIMC,EAA8B,CAACb,EAAMC,EAAMM,EAAUO,IAAW,CACpE,MAAMN,EAASC,EAAAA,aAAaT,EAAK,SAAUO,CAAQ,EAC7CG,EAASD,EAAAA,aAAaR,EAAK,SAAUM,CAAQ,EAEnD,GAAIO,GAAUA,EAAO,KAAM,CACzB,MAAMC,EAASD,EAAO,KAAK,UAAWE,GAAMA,EAAE,QAAUR,CAAM,EAE9D,OADeM,EAAO,KAAK,UAAWE,GAAMA,EAAE,QAAUN,CAAM,EAC9CK,EAAS,EAAI,EAAI,EACnC,KAAA,QAAWD,GAAQ,OAAS,WACnBG,EAAAA,WAAW,SAASjB,EAAMC,EAAMM,CAAQ,EACtCO,GAAQ,OAAS,WACZN,IAAW,GAAO,EAAI,IACtBE,IAAW,GAAO,EAAI,GAG7BO,EAAAA,WAAW,aAAajB,EAAMC,EAAMM,CAAQ,CAEvD,EAEaW,EAAe,CAC1BC,EACAC,IACG,GAAGD,EAAK,SAAS,OAAO,CAAC,EAAE,YAAA,EAAgBA,EAAK,SAAS,MAAM,CAAC,CAAC,KAAKC,CAAS,IAEvEC,EAAa,CAACF,EAAmCC,IAC5D,GAAGD,EAAK,KAAK,WAAW,IAAK,EAAE,EAAE,WAAW,IAAK,EAAE,EAAE,WAAW,IAAK,GAAG,CAAC,IAAIC,CAAS,GAE3EE,EAAkB,CAC7BH,EACAC,IACG,QAAQC,EAAWF,EAAMC,CAAS,CAAC,GA+BlCG,GAAwB,CAAC,CAC7B,OAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,CAAA,EACR,aAAAC,EAAe,GACf,cAAAC,EACA,QAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,EAAY,QACd,IAAkC,CAChC,MAAMC,EAAuC,CAAA,EAGvCC,EAAcC,GAAgC,CAACP,GAAU,SAASO,CAAE,EACpEC,EAAWD,GAAgC,CAACN,GAAiB,SAASM,CAAE,EAG1ED,EAAWG,EAAAA,uBAAuB,GACpCJ,EAAc,KAAK,CACjB,GAAII,EAAAA,wBACJ,eAAgB,GAChB,cAAe,GACf,cAAe,GACf,aAAc,GAEd,OAAQ,IAAMC,EAAAA,kBAAAA,IAACC,GAAA,EAAmB,EAClC,KAAM,CAAC,CAAE,IAAAC,KACHA,EAAI,SAAS,aAAe,SAAWA,EAAI,SAAS,SAAiB,6BACjEC,GAAAA,cAAA,EAAc,EAExB,KAAM,EAAA,CACP,EAGCP,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,OAAQ,YACR,KAAM,GACN,QAAS,GACT,eAAgB,GAChB,cAAe,GACf,KAAM,CAAC,CAAE,IAAAO,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,GAAIH,EAAI,SAAS,aAAe,SAAWA,EAAI,SAAS,SAAU,OAAO,KACzE,MAAMI,EAAOD,EAAM,QAAQ,KAC3B,GAAI,CAACC,EAAM,OAAO,KAClB,MAAMC,EAASC,EAAAA,UAAUN,EAAI,GAAIE,EAAO,EAAE,EAC1C,IAAIK,EAAY,CACd,SAAUP,EAAI,SAAS,UAAYA,EAAI,GACvC,WAAYA,EAAI,SAAS,WACzB,UAAWA,EAAI,SAAS,SAAA,EAG1B,OAAIA,EAAI,SAAS,YACfO,EAAYP,EAAI,SAAS,WAGzBF,EAAAA,kBAAAA,IAACU,EAAAA,gBAAA,CACC,GAAIH,EACJ,SAAUE,EAAU,SACpB,WAAYA,EAAU,WACtB,UAAWA,EAAU,UACrB,KAAMP,EAAI,SAAS,KACnB,YAAaI,GAAM,YACnB,UAAWK,EAAK,YAAa,CAC3B,QAAST,EAAI,SAAS,SAAA,CACvB,EACD,WAAYA,EAAI,SAAS,cAAA,CAAA,CAG/B,CAAA,CACD,EAGCN,EAAW,MAAM,GACnBD,EAAc,KAAK,CACjB,GAAI,OACJ,YAAa,OACb,OAAQD,EACR,QAASrC,EACT,UAAWC,EAAqBK,CAAQ,EACxC,cAAe8B,EAAU,GAAQK,EAAQ,MAAM,EAC/C,eAAgB,GAChB,cAAe,GACf,aAAc,CAAAL,EACd,KAAM,CAAC,CAAE,IAAAS,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,KAAM,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACnDE,EAAOD,EAAM,QAAQ,KACrB,CAAE,UAAAU,CAAA,EAAcC,kBAAA,EAChB,CAAE,UAAAC,EAAY,EAAA,EAAOC,4BAAA,EACrBX,EAASC,EAAAA,UAAUN,EAAI,GAAIE,EAAO,EAAE,EAE1C,GAAIF,EAAI,SAAS,SACf,OACEF,EAAAA,kBAAAA,IAACmB,EAAAA,iBAAA,CACC,GAAIZ,EACJ,UAAWI,EAAK,QAAS,WAAYT,EAAI,SAAS,UAAU,EAC5D,MAAO,CACL,YAAa,QAAQA,EAAI,MAAQ,CAAC,aAClC,cAAe,MAAA,EAEjB,SAAU,EAEV,SAAAF,EAAAA,kBAAAA,IAACoB,eAAW,SAAUlB,EAAI,SAAS,SAAU,MAAOA,EAAI,SAAS,KAAA,CAAO,CAAA,CAAA,EAK9E,GAAIA,EAAI,SAAS,aAAemB,EAAAA,cAAgBnB,EAAI,SAAS,MAC3D,OACEF,EAAAA,kBAAAA,IAACsB,GAAA,CACC,GAAIpB,EAAI,SAAS,MAAM,MACvB,WAAaL,GAAOS,GAAM,eAAeT,CAAE,CAAA,CAAA,EAKjD,MAAM0B,EACJrB,EAAI,aAAA,GACJ,CAAC,CAACA,EAAI,kBACL/C,EAAmB+C,EAAI,SAAS,UAAU,GAAK,CAAC,CAACA,EAAI,SAAS,OAEjE,OACEsB,EAAAA,kBAAAA,KAACL,EAAAA,iBAAA,CACC,GAAIZ,EACJ,UAAWI,EAAK,QAAST,EAAI,SAAS,WAAY,CAChD,QAASA,EAAI,SAAS,UACtB,UAAWd,CAAA,CACZ,EACD,MAAO,CACL,YAAa,QAAQc,EAAI,MAAQ,CAAC,SAChCqB,GAAgB,CAACrB,EAAI,aAAA,EAAiB,EAAI,EAC5C,WAAA,EAEF,SAAU,EAET,SAAA,CAAAA,EAAI,SAAS,MACZF,EAAAA,kBAAAA,IAACyB,EAAAA,kBAAA,CACC,GAAIvB,EAAI,GACR,MAAOA,EAAI,SAAS,MAAM,MAC1B,KAAMA,EAAI,SAAS,KACnB,KAAMA,EAAI,SAAS,MAAM,KACzB,IAAKA,EAAI,SAAS,MAAM,IACxB,MAAOA,EAAI,SAAS,MAAM,MAC1B,MAAOA,EAAI,SAAS,MAAM,MAC1B,WAAYA,EAAI,cAAA,EAChB,QAASA,EAAI,QAAQ,SAAW,GAAK,CAACA,EAAI,SAAS,SACnD,eAAgBA,EAAI,yBAAA,CAAyB,CAAA,EAG/CF,EAAAA,kBAAAA,IAAC0B,EAAAA,iBAAA,CACC,GAAIxB,EAAI,GACR,MAAOA,EAAI,SAAS,MACpB,KAAMA,EAAI,SAAS,KACnB,KAAOd,EAAwD,OAAxC,IAAMc,EAAI,SAAS,SAAS,KAAK,GAAG,EAC3D,KAAMA,EAAI,SAAS,KACnB,KAAMA,EAAI,SAAS,WACnB,aAAAqB,EACA,WAAYrB,EAAI,cAAA,EAChB,gBAAiB,IAAMI,GAAM,kBAAkB,CAACJ,EAAI,EAAE,CAAC,EACvD,eAAgBA,EAAI,yBAAA,EACpB,UAAAe,EACA,oBAAqBU,GAAAA,uBAAuBrB,GAAM,cAAe,MAAM,CAAA,CAAA,EAG1ES,EAAUR,CAAM,GACfP,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,OAAQ,CAAE,QAAST,EAAI,SAAS,UAAW,EAC3D,SAAUE,EAAO,GACjB,MAAAQ,EACA,UACE,CACE,KAAMV,EAAI,SAAS,KACnB,MAAOA,EAAI,SAAS,MACpB,KAAAI,EACA,YAAaT,EACb,SAAUO,EAAO,GACjB,YAAa,CAAC,CAACF,EAAI,SAAS,WAAA,EAGhC,WAAYW,EACZ,cAAe,CAAE,KAAM,MAAA,EACvB,YAAa,CAAC,CAACX,EAAI,SAAS,eAC5B,WAAYI,GAAM,UAAU,SAASF,EAAO,EAAE,CAAA,CAAA,CAChD,CAAA,CAAA,CAIR,CAAA,CACD,EAGCR,EAAW,QAAQ,GACrBD,EAAc,KAAK,CACjB,GAAI,SACJ,YAAa,SACb,QAAStC,EACT,OAAQ,SACR,UAAWC,EAAqB,CAACuE,EAAGC,EAAGC,IACrC1D,EAAWwD,EAAGC,EAAGC,EAAG,CAAE,KAAM1C,EAAQ,OAAQ,KAAM,SAAU,CAAA,EAE9D,cAAe,GACf,cAAeS,EAAQ,QAAQ,EAC/B,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAAI,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,KAAM,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACnDE,EAAOD,EAAM,QAAQ,KAC3B,MAAI,CAAC,QAASgB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAA,EACvB,QAASN,GAAM,SAAS,OAAO,OAAQ0B,GAAMA,EAAE,OAAO,SAASnB,CAAI,CAAC,EACpE,YAAa,CAAC,CAACX,EAAI,SAAS,eAC5B,SAAWU,GACTN,GAAM,iBACJ,CAAE,MAAOF,EAAO,GAAI,MAAAQ,EAAO,KAAAC,EAAM,MAAOhB,CAAA,EACxC,CAAE,UAAWS,GAAM,SAAA,CAAU,EAGjC,WAAYA,GAAM,UAAU,SAASF,EAAO,EAAE,GAAK6B,EAAAA,mBAAmBpB,CAAI,EAC1E,GAAI,CACF,KAAM,CACJ,GAAI,CACF,SAAU,CACR,GAAI,CACF,KAAM,CACJ,MAAO,CACL,sBAAuB,6CAAA,CACzB,CACF,CACF,CACF,CACF,CACF,CACF,CAAA,CAGN,CAAA,CACD,EAGCjB,EAAW,YAAY,GACzBD,EAAc,KAAK,CACjB,GAAI,aACJ,YAAa,aACb,OAAQ,cACR,QAAS,GACT,cAAe,GACf,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWrC,EAAqBmB,EAAAA,WAAW,YAAY,EACvD,KAAM,CAAC,CAAE,IAAAyB,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,KAAM,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,GAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAU,OAAO,KAC5E,MAAMK,EAASC,EAAAA,UAAUN,EAAI,GAAIE,EAAO,EAAE,EAE1C,OACEoB,EAAAA,kBAAAA,KAACL,EAAAA,iBAAA,CACC,GAAIZ,EACJ,UAAWI,EAAK,aAAcuB,YAAWrB,EAAM,CAAE,QAASX,EAAI,SAAS,UAAW,EAClF,SAAU,EAEV,SAAA,CAAAF,EAAAA,kBAAAA,IAACmC,EAAAA,KAAA,CAAK,KAAMC,EAAAA,kBAAkBvB,CAAI,CAAA,CAAG,EAAE,IAAEwB,GAAAA,WAAWzB,CAAK,CAAA,CAAA,CAAA,CAG/D,CAAA,CACD,EAGChB,EAAW,SAAS,GACtBD,EAAc,KAAK,CACjB,GAAI,UACJ,YAAa,UACb,OAAQX,EAAO,SAAS,SAAS,GAAKA,EAAO,SAAS,SAAS,EAAI,eAAiB,OACpF,QAAS3B,EACT,cAAeyC,EAAQ,SAAS,EAChC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqB,CAACuE,EAAGC,EAAGC,IACrC1D,EAAWwD,EAAGC,EAAGC,EAAG,CAAE,KAAM,CAAC,GAAG1C,EAAQ,WAAY,GAAGA,EAAQ,QAAQ,EAAG,KAAM,SAAU,CAAA,EAE5F,KAAM,CAAC,CAAE,IAAAa,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,KAAM,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,GAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAU,OAAO,KAC5E,MAAMoC,EAAUzB,IAAS,SAAW,aAAe,WAC7CP,EAAOD,EAAM,QAAQ,KACrBkC,EAAoB1B,IAAS,UAAYX,EAAI,SAAS,YAC5D,OACEF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,UAAW,CAAE,QAAST,EAAI,SAAS,UAAW,EAC9D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAA,EACvB,QACEC,IAAS,SACLP,GAAM,SAAS,WACfO,IAAS,OACTP,GAAM,SAAS,SACf,CAAA,EAEN,YAAa,CAAC,CAACJ,EAAI,SAAS,eAC5B,SAAWU,GACTN,GAAM,iBACJ,CAAE,MAAOgC,EAAS,MAAA1B,EAAO,KAAAC,EAAM,MAAOX,EAAI,EAAA,EAC1C,CAAE,UAAWI,GAAM,SAAA,CAAU,EAGjC,WACEA,GAAM,UAAU,SAASF,EAAO,EAAE,GAClCE,GAAM,UAAU,SAASgC,CAAO,GAChCC,EAEF,QACEA,EACI,qEACA,MAAA,CAAA,CAIZ,CAAA,CACD,EAGC3C,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,YAAa,YACb,OAAQ,YACR,QAAStC,EACT,cAAeyC,EAAQ,WAAW,EAClC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBQ,CAAe,EAC/C,KAAM,CAAC,CAAE,IAAAoC,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,MAAMC,EAAOD,EAAM,QAAQ,KACrB,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAExEW,IAAS,SAETb,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAM,GACN,cAAa,EAAA,CAAA,EAIjBJ,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,iBAAA,EACvB,QAASN,GAAM,SAAS,SACxB,YAAa,CAAC,CAACJ,EAAI,SAAS,eAC5B,SAAWU,GACTN,GAAM,iBACJ,CAAE,MAAOF,EAAO,GAAI,MAAAQ,EAAO,KAAAC,EAAM,MAAOX,EAAI,EAAA,EAC5C,CAAE,UAAWI,GAAM,SAAA,CAAU,EAGjC,WAAYA,GAAM,UAAU,SAASF,EAAO,EAAE,GAAK6B,EAAAA,mBAAmBpB,CAAI,EAC1E,GAAI,CACF,KAAM,CACJ,iBAAkBD,GAAO,SAAW,EACpC,OAAQ,GACR,iBAAkB,EAAA,CACpB,CACF,CAAA,CAGN,CAAA,CACD,EAGChB,EAAW,QAAQ,GACrBD,EAAc,KAAK,CACjB,GAAI,SACJ,YAAa,SACb,OAAQ,cACR,QAAStC,EACT,cAAeyC,EAAQ,YAAY,EACnC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAAI,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,KAAM,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAA,EACvB,WAAY,EAAA,CAAA,CAGlB,CAAA,CACD,EAIChB,EAAW,QAAQ,GAAK,CAAC,UAAW,SAAS,EAAE,KAAMoC,GAAMhD,EAAO,SAASgD,CAAC,CAAC,GAC/ErC,EAAc,KAAK,CACjB,GAAI,SACJ,YAAa,SACb,OAAQ,SACR,QAAStC,EACT,cAAeyC,EAAQ,QAAQ,EAC/B,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBK,CAAQ,EACxC,KAAM,CAAC,CAAE,IAAAuC,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,MAAMC,EAAOD,EAAM,QAAQ,KACrB,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAO,CAACQ,CAAK,EACb,cAAe,CAAE,KAAM,iBAAA,EACvB,QAASN,GAAM,SAAS,SACxB,WAAY,GACZ,YAAaO,IAAS,SAAA,CAAA,CAG5B,CAAA,CACD,EAICjB,EAAW,SAAS,GAAK,CAAC,UAAW,SAAS,EAAE,KAAMoC,GAAMhD,EAAO,SAASgD,CAAC,CAAC,GAChFrC,EAAc,KAAK,CACjB,GAAI,UACJ,YAAa,UACb,OAAQ,UACR,QAAStC,EACT,cAAeyC,EAAQ,SAAS,EAChC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBK,CAAQ,EACxC,KAAM,CAAC,CAAE,IAAAuC,EAAK,OAAAE,KAAa,CACzB,KAAM,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,GAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAU,OAAO,KAE5E,IAAIsC,EAAetC,EAAI,SAAS,aAAeU,EAC/C,OAAIV,EAAI,SAAS,aAAe,YAE9BsC,EAAe,GAAGtC,EAAI,SAAS,WAAW,KAAKA,EAAI,SAAS,eAAiB,CAAC,cAI9EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,UAAW,CAAE,QAAST,EAAI,SAAS,UAAW,EAC9D,SAAUE,EAAO,GACjB,MAAOoC,EACP,cAAe,CAAE,KAAM,QAAA,EACvB,WAAY,EAAA,CAAA,CAGlB,CAAA,CACD,EAIC5C,EAAW,SAAS,GAAK,CAAC,UAAW,SAAS,EAAE,KAAMoC,GAAMhD,EAAO,SAASgD,CAAC,CAAC,GAChFrC,EAAc,KAAK,CACjB,GAAI,UACJ,YAAa,UACb,OAAQ,eACR,QAAStC,EACT,cAAeyC,EAAQ,SAAS,EAChC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBK,CAAQ,EACxC,KAAM,CAAC,CAAE,IAAAuC,EAAK,OAAAE,KAAa,CACzB,KAAM,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAG1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,UAAW,CAAE,QAAST,EAAI,SAAS,UAAW,EAC9D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,QAAA,EACvB,WAAY,EAAA,CAAA,CAGlB,CAAA,CACD,EAGChB,EAAW,MAAM,GACnBD,EAAc,KAAK,CACjB,GAAI,OACJ,YAAa,OACb,OAAQ,OACR,QAAStC,EACT,cAAeyC,EAAQ,MAAM,EAC7B,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBQ,CAAe,EAC/C,KAAM,CAAC,CAAE,IAAAoC,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,MAAMC,EAAOD,EAAM,QAAQ,KACrB,CAAE,MAAAO,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAE1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,OAAQ,CAAE,QAAST,EAAI,SAAS,UAAW,EAC3D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,iBAAA,EACvB,QAASN,GAAM,SAAS,IACxB,YAAa,CAAC,CAACJ,EAAI,SAAS,eAC5B,SAAWU,GACTN,GAAM,iBACJ,CAAE,MAAOF,EAAO,GAAI,MAAAQ,EAAO,KAAAC,EAAM,MAAOX,EAAI,EAAA,EAC5C,CAAE,UAAWI,GAAM,SAAA,CAAU,EAGjC,WAAYA,GAAM,UAAU,SAASF,EAAO,EAAE,GAAK6B,EAAAA,mBAAmBpB,CAAI,EAC1E,mBAAkB,EAAA,CAAA,CAGxB,CAAA,CACD,EAGCjB,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,YAAa,YACb,OAAQ,aACR,QAAStC,EACT,cAAeyC,EAAQ,WAAW,EAClC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBmB,EAAAA,WAAW,QAAQ,EACnD,KAAM,CAAC,CAAE,IAAAyB,EAAK,OAAAE,KAAa,CACzB,KAAM,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAE1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,UAAA,EACvB,YAAa,CAAC,CAACV,EAAI,SAAS,eAC5B,WAAY,GACZ,GAAI,CAAE,KAAM,CAAE,SAAU,GAAK,CAAE,CAAA,CAGrC,CAAA,CACD,EAGCN,EAAW,WAAW,GACxBD,EAAc,KAAK,CACjB,GAAI,YACJ,YAAa,YACb,OAAQ,aACR,QAAStC,EACT,cAAeyC,EAAQ,WAAW,EAClC,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,UAAWxC,EAAqBmB,EAAAA,WAAW,QAAQ,EACnD,KAAM,CAAC,CAAE,IAAAyB,EAAK,OAAAE,KAAa,CACzB,KAAM,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKE,EAAO,EAAE,EACzD,MAAI,CAAC,QAASiB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,SAAiB,KAE1EF,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,YAAa,CAAE,QAAST,EAAI,SAAS,UAAW,EAChE,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAM,UAAA,EACvB,YAAa,CAAC,CAACV,EAAI,SAAS,eAC5B,WAAY,GACZ,GAAI,CAAE,KAAM,CAAE,SAAU,GAAK,CAAE,CAAA,CAGrC,CAAA,CACD,EAGH,MAAMuC,EAA0CxD,EAC7C,OAAQX,GAAW,CAElB,GAAIA,EAAO,OAAS,CAACA,EAAO,MAAM,KAAM0D,GAAMhD,EAAO,SAASgD,CAAC,CAAC,EAAG,MAAO,GAE1E,MAAMjE,EAAW,UAAYO,EAAO,KAIpC,MADI,GAACsB,EAAW7B,CAAQ,GACpBO,EAAO,SAAW,CAACsB,EAAW,QAAQ,EAE5C,CAAC,EACA,IAAKtB,IACsC,CACxC,GAAI,UAAYA,EAAO,KACvB,YAAa,UAAYA,EAAO,KAChC,OAAQA,EAAO,KAAK,OAASA,EAAO,KACpC,QAASjB,EACT,SAAU,QACV,UAAWC,EAAqB,CAACuE,EAAGC,EAAGC,IAAM1D,EAAWwD,EAAGC,EAAGC,EAAGzD,EAAO,IAAI,CAAC,EAC7E,cAAewB,EAAQxB,EAAO,IAAI,GAAKwB,EAAQ,QAAQ,EACvD,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAAI,EAAK,OAAAE,EAAQ,MAAAC,KAAY,CAChC,MAAMC,EAAOD,EAAM,QAAQ,KACrBqC,EAAiBtC,EAAO,GAAG,QAAQ,UAAW,EAAE,EAChD,CAAE,MAAAQ,EAAO,GAAAf,EAAI,KAAAgB,CAAA,EAASC,EAAeZ,EAAKwC,EAAgB,QAAQ,EAClEC,EAAc,CAACzC,EAAI,SAAS,WAAW,SAASwC,CAAc,EAOpE,MANI,CAAC,QAASrB,EAAAA,YAAY,EAAE,SAASR,CAAI,GAAKX,EAAI,SAAS,UAEzD,CAAC5B,EAAO,OAAO,SAASuC,CAAqC,GAC5DD,GAAU,KAGoB,KAG/BZ,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,SAAU,CAAE,QAAST,EAAI,SAAS,UAAW,EAC7D,SAAUE,EAAO,GACjB,MAAAQ,EACA,cAAe,CAAE,KAAMtC,EAAO,KAAK,MAAQ,QAAA,EAC3C,QAASA,EAAO,KAAK,MAAQ,CAAA,EAC7B,YAAa,CAAC,CAAC4B,EAAI,SAAS,eAC5B,YAAAyC,EACA,WAEErE,EAAO,UAEPgC,GAAM,UAAU,KACbT,GAAOA,IAAO6C,GAAmB7C,IAAO,UAAYvB,EAAO,OAAA,EAGhE,SAAWsC,GACTN,GAAM,iBACJ,CAAE,MAAOoC,EAAgB,MAAA9B,EAAO,KAAAC,EAAM,SAAU,GAAM,MAAOX,EAAI,EAAA,EACjE,CAAE,UAAa5B,EAAO,KAAK,MAAM,OAASgC,GAAM,UAAY,MAAA,CAAU,CACxE,CAAA,CAIR,CAAA,EAGH,EAEGsC,EAAsCzD,EAExCD,EACG,OAAQP,GAEH,GAACiB,EAAWjB,EAAK,QAAQ,GAAK,CAACiB,EAAW,MAAM,GAEhD,CAACZ,EAAO,SAASL,EAAK,SAAS,GAAK,CAACK,EAAO,SAASL,EAAK,UAAU,EAEzE,EACA,QAASA,GAAS,CACjB,MAAMkE,EAAoBjE,IACjB,CACL,GAAIE,EAAgBH,EAAMC,CAAS,EACnC,YAAa,SAASC,EAAWF,EAAMC,CAAS,CAAC,GACjD,OAAQ,IACN4C,EAAAA,kBAAAA,KAACsB,EAAAA,iBAAA,CACE,SAAA,CAAApE,EAAaC,EAAMC,CAAS,EAAG,IAChCoB,EAAAA,kBAAAA,IAACmC,EAAAA,KAAA,CACC,KAAMC,EAAAA,kBAAkBxD,IAAc,KAAOD,EAAK,UAAYA,EAAK,UAAU,CAAA,CAAA,CAC/E,EACF,EAEF,QAAStB,EACT,cAAe,GACf,eAAgB,GAChB,cAAe,GACf,aAAc,GACd,KAAM,CAAC,CAAE,IAAA6C,EAAK,OAAAE,KAAa,CACzB,MAAMsC,EAAiBtC,EAAO,GAAG,QAAQ,QAAS,EAAE,EAE9C,CAAE,GAAAP,EAAI,MAAAe,CAAA,EAAUE,EAAeZ,EAAKwC,EAAgB,OAAO,EAC3DK,EAAYnC,GAAO,IAAKoC,GAAWA,EAAE,KAAK,EAC1CC,EAA4B,CAChC,MAAOrC,EACP,UAAAhC,EACA,SAAUsB,EAAI,SAAS,UAAYA,EAAI,SAAS,GAChD,WAAYA,EAAI,SAAS,WACzB,KAAM,CACJ,MAAOvB,EAAK,SACZ,SAAUA,EAAK,KACf,iBAAkBC,IAAc,KAAOD,EAAK,UAAYA,EAAK,UAAA,CAC/D,EAGF,OACEqB,EAAAA,kBAAAA,IAAC4B,EAAAA,WAAA,CACC,MAAO/B,EACP,UAAWc,EAAK,QAAS,CAAE,QAAST,EAAI,SAAS,UAAW,EAC5D,SAAUE,EAAO,GACjB,MAAO2C,EACP,UAAAE,EACA,SAAU/C,EAAI,SAAS,SACvB,cAAe,CAAE,KAAM,OAAA,CAAQ,CAAA,CAGrC,CAAA,GAIJ,MAAO,CAAC2C,EAAiB,IAAI,EAAGA,EAAiB,KAAK,CAAC,CACzD,CAAC,EA5DH,CAAA,EA8DEK,EAAa,CAAC,GAAGvD,EAAe,GAAG8C,EAAkB,GAAGG,CAAW,EAGzE,OAAIpD,GACFA,EAAa,QAAQ,CAAC,CAAE,OAAAY,EAAQ,SAAA+C,EAAW,MAAS,CAC9CA,GAAY,GAAKA,EAAWD,EAAW,OACzCA,EAAW,OAAOC,EAAU,EAAG/C,CAAM,EAErC8C,EAAW,KAAK9C,CAAM,CAE1B,CAAC,EAGI8C,CACT,EAIapC,EAAiB,CAC5BZ,EACAkD,EACAC,KAKI,CACJ,MAAOA,EACFnD,EAAI,SAASmD,CAA6B,IAAYD,CAAK,EAC3DlD,EAAI,SAASkD,CAAuB,EACzC,GAAIlD,EAAI,GACR,KAAMA,EAAI,SAAS,UACrB"}
1
+ {"version":3,"file":"buildTreeTableColumns.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/buildTreeTableColumns.tsx"],"sourcesContent":["import { ColumnDef, FilterFnOption, Row, SortingFn, sortingFns } from '@tanstack/react-table'\nimport { TableRow } from './types/table'\nimport { AttributeData, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport {\n CellWidget,\n MetaWidget,\n EntityNameWidget,\n GroupHeaderWidget,\n ThumbnailWidget,\n} from './widgets'\nimport { getCellId, getCellValue } from './utils/cellUtils'\nimport { LinkColumnHeader, TableCellContent } from './ProjectTreeTable.styled'\nimport clsx from 'clsx'\nimport { SelectionCell } from './components/SelectionCell'\nimport RowSelectionHeader from './components/RowSelectionHeader'\nimport { ROW_SELECTION_COLUMN_ID } from './context/SelectionCellsContext'\nimport { TableGroupBy, useCellEditing, useColumnSettingsContext } from './context'\nimport { NEXT_PAGE_ID } from './hooks/useBuildGroupByTableData'\nimport LoadMoreWidget from './widgets/LoadMoreWidget'\nimport { LinkTypeModel } from '@shared/api'\nimport { LinkWidgetData } from './widgets/LinksWidget'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { getEntityTypeIcon } from '@shared/util'\nimport { NameWidgetData } from '@shared/components/RenameForm'\nimport { isEntityRestricted, READ_ONLY } from './utils/restrictedEntity'\nimport { ColumnsConfig, getColumnDisplayConfig } from './types/columnConfig'\nimport { upperFirst } from 'lodash'\n\nexport const isEntityExpandable = (entityType: string) => ['folder', 'product'].includes(entityType)\n\nconst MIN_SIZE = 50\n\n// Wrapper function for sorting that pushes isLoading rows to the bottom\nconst withLoadingStateSort = (sortFn: SortingFn<any>): SortingFn<any> => {\n return (rowA, rowB, ...args) => {\n // If row loading states differ, prioritize non-loading rows\n if (rowA.original.isLoading !== rowB.original.isLoading) {\n return rowA.original.isLoading ? 1 : -1\n }\n // Otherwise, use the original sort function\n return sortFn(rowA, rowB, ...args)\n }\n}\n\nconst pathSort: SortingFn<any> = (rowA, rowB) => {\n const labelA = rowA.original.path || rowA.original.name || ''\n const labelB = rowB.original.path || rowB.original.name || ''\n // sort alphabetically by label\n return labelA.localeCompare(labelB)\n}\n\nconst valueLengthSort: SortingFn<any> = (rowA, rowB, columnId) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n const lengthA = Array.isArray(valueA) ? valueA.length : valueA ? String(valueA).length : 0\n const lengthB = Array.isArray(valueB) ? valueB.length : valueB ? String(valueB).length : 0\n return lengthA - lengthB\n}\n\ntype AttribSortingFn = (rowA: any, rowB: any, columnId: string, attribute?: AttributeData) => number\n// sort by the order of the enum options\nconst attribSort: AttribSortingFn = (rowA, rowB, columnId, attrib) => {\n const valueA = getCellValue(rowA.original, columnId)\n const valueB = getCellValue(rowB.original, columnId)\n // if attrib is defined and has enum options, use them\n if (attrib && attrib.enum) {\n const indexA = attrib.enum.findIndex((o) => o.value === valueA)\n const indexB = attrib.enum.findIndex((o) => o.value === valueB)\n return indexB - indexA < 0 ? 1 : -1\n } else if (attrib?.type === 'datetime') {\n return sortingFns.datetime(rowA, rowB, columnId)\n } else if (attrib?.type === 'boolean') {\n const boolA = valueA === true ? 1 : 0\n const boolB = valueB === true ? 1 : 0\n return boolA - boolB\n } else {\n return sortingFns.alphanumeric(rowA, rowB, columnId)\n }\n}\n\nexport const getLinkLabel = (\n link: Pick<LinkTypeModel, 'linkType'>,\n direction: 'in' | 'out' | string,\n) => `${link.linkType.charAt(0).toUpperCase() + link.linkType.slice(1)} (${direction})`\n\nexport const getLinkKey = (link: Pick<LinkTypeModel, 'name'>, direction: 'in' | 'out' | string) =>\n `${link.name.replaceAll('_', '').replaceAll('-', '').replaceAll('|', '_')}_${direction}`\n\nexport const getLinkColumnId = (\n link: Pick<LinkTypeModel, 'name'>,\n direction: 'in' | 'out' | string,\n) => `link_${getLinkKey(link, direction)}`\n\nexport type DefaultColumns =\n | typeof ROW_SELECTION_COLUMN_ID\n | 'thumbnail'\n | 'name'\n | 'entityType'\n | 'folder'\n | 'status'\n | 'subType'\n | 'assignees'\n | 'tags'\n | 'createdAt'\n | 'updatedAt'\n\nexport type TreeTableExtraColumn = { column: ColumnDef<TableRow>; position?: number }\n\nexport type BuildTreeTableColumnsProps = {\n scopes: string[]\n attribs: ProjectTableAttribute[]\n links: LinkTypeModel[]\n includeLinks?: boolean\n showHierarchy: boolean\n options: BuiltInFieldOptions\n excluded?: (DefaultColumns | string)[]\n excludedSorting?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n groupBy?: TableGroupBy\n nameLabel?: string\n}\n\nconst buildTreeTableColumns = ({\n scopes,\n attribs,\n links = [],\n includeLinks = true,\n showHierarchy,\n options,\n excluded,\n excludedSorting,\n extraColumns,\n groupBy,\n nameLabel = 'Entity',\n}: BuildTreeTableColumnsProps) => {\n const staticColumns: ColumnDef<TableRow>[] = []\n\n // Helper to check if a column should be included\n const isIncluded = (id: DefaultColumns | string) => !excluded?.includes(id)\n const canSort = (id: DefaultColumns | string) => !excludedSorting?.includes(id)\n\n // Conditionally add static columns\n if (isIncluded(ROW_SELECTION_COLUMN_ID)) {\n staticColumns.push({\n id: ROW_SELECTION_COLUMN_ID,\n enableResizing: false,\n enableSorting: false,\n enablePinning: false,\n enableHiding: false,\n\n header: () => <RowSelectionHeader />,\n cell: ({ row }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n return <SelectionCell />\n },\n size: 20,\n })\n }\n\n if (isIncluded('thumbnail')) {\n staticColumns.push({\n id: 'thumbnail',\n header: 'Thumbnail',\n size: 63,\n minSize: 24,\n enableResizing: true,\n enableSorting: false,\n cell: ({ row, column, table }) => {\n if (row.original.entityType === 'group' || row.original.metaType) return null\n const meta = table.options.meta\n if (!meta) return null\n const cellId = getCellId(row.id, column.id)\n let thumbnail = {\n entityId: row.original.entityId || row.id,\n entityType: row.original.entityType,\n updatedAt: row.original.updatedAt,\n }\n // check for thumbnail override\n if (row.original.thumbnail) {\n thumbnail = row.original.thumbnail\n }\n return (\n <ThumbnailWidget\n id={cellId}\n entityId={thumbnail.entityId}\n entityType={thumbnail.entityType}\n updatedAt={thumbnail.updatedAt}\n icon={row.original.icon}\n projectName={meta?.projectName as string}\n className={clsx('thumbnail', {\n loading: row.original.isLoading,\n })}\n isPlayable={row.original.hasReviewables}\n />\n )\n },\n })\n }\n\n if (isIncluded('name')) {\n staticColumns.push({\n id: 'name',\n accessorKey: 'name',\n header: nameLabel,\n minSize: MIN_SIZE,\n sortingFn: withLoadingStateSort(pathSort),\n enableSorting: groupBy ? false : canSort('name'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: groupBy ? false : true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n const { isEditing } = useCellEditing()\n const { rowHeight = 40 } = useColumnSettingsContext()\n const cellId = getCellId(row.id, column.id)\n\n if (row.original.metaType) {\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', 'readonly', row.original.entityType)}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + 8px)`,\n pointerEvents: 'none',\n }}\n tabIndex={0}\n >\n <MetaWidget metaType={row.original.metaType} label={row.original.label} />\n </TableCellContent>\n )\n }\n\n if (row.original.entityType === NEXT_PAGE_ID && row.original.group) {\n return (\n <LoadMoreWidget\n id={row.original.group.value}\n onLoadMore={(id) => meta?.loadMoreRows?.(id)}\n />\n )\n }\n\n const isExpandable =\n row.getCanExpand() &&\n !!row.originalSubRows &&\n (isEntityExpandable(row.original.entityType) || !!row.original.group)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('large', row.original.entityType, {\n loading: row.original.isLoading,\n hierarchy: showHierarchy,\n })}\n style={{\n paddingLeft: `calc(${row.depth * 1}rem + ${\n isExpandable || !row.getCanExpand() ? 0 : 32\n }px + 8px)`,\n }}\n tabIndex={0}\n >\n {row.original.group ? (\n <GroupHeaderWidget\n id={row.id}\n label={row.original.group.label}\n name={row.original.name}\n icon={row.original.group.icon}\n img={row.original.group.img}\n color={row.original.group.color}\n count={row.original.group.count}\n isExpanded={row.getIsExpanded()}\n isEmpty={row.original.group.count === 0}\n toggleExpanded={row.getToggleExpandedHandler()}\n />\n ) : (\n <EntityNameWidget\n id={row.id}\n label={row.original.label}\n name={row.original.name}\n path={!showHierarchy ? '/' + row.original.parents?.join('/') : undefined}\n icon={row.original.icon}\n type={row.original.entityType}\n isExpandable={isExpandable}\n isExpanded={row.getIsExpanded()}\n toggleExpandAll={() => meta?.toggleExpandAll?.([row.id])}\n toggleExpanded={row.getToggleExpandedHandler()}\n rowHeight={rowHeight}\n columnDisplayConfig={getColumnDisplayConfig(meta?.columnsConfig, 'name')}\n />\n )}\n {isEditing(cellId) && (\n <CellWidget\n rowId={id}\n className={clsx('name', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n valueData={\n {\n name: row.original.name,\n label: row.original.label,\n meta,\n entityRowId: id,\n columnId: column.id,\n hasVersions: !!row.original.hasVersions,\n } as NameWidgetData\n }\n entityType={type}\n attributeData={{ type: 'name' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={meta?.readOnly?.includes(column.id)}\n />\n )}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('status')) {\n staticColumns.push({\n id: 'status',\n accessorKey: 'status',\n minSize: MIN_SIZE,\n header: 'Status',\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: options.status, type: 'string' }),\n ),\n sortDescFirst: true,\n enableSorting: canSort('status'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n const meta = table.options.meta\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('status', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={meta?.options?.status.filter((s) => s.scope?.includes(type))}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n pt: {\n template: {\n pt: {\n icon: {\n style: {\n fontVariationSettings: \"'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 20\",\n },\n },\n },\n },\n },\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('entityType')) {\n staticColumns.push({\n id: 'entityType',\n accessorKey: 'entityType',\n header: 'Entity Type',\n minSize: 20,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.alphanumeric),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const cellId = getCellId(row.id, column.id)\n\n return (\n <TableCellContent\n id={cellId}\n className={clsx('entityType', READ_ONLY, type, { loading: row.original.isLoading })}\n tabIndex={0}\n >\n <Icon icon={getEntityTypeIcon(type)} /> {upperFirst(value)}\n </TableCellContent>\n )\n },\n })\n }\n\n if (isIncluded('subType')) {\n staticColumns.push({\n id: 'subType',\n accessorKey: 'subType',\n header: scopes.includes('product') || scopes.includes('version') ? 'Product type' : 'Type',\n minSize: MIN_SIZE,\n enableSorting: canSort('subType'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort((a, b, c) =>\n attribSort(a, b, c, { enum: [...options.folderType, ...options.taskType], type: 'string' }),\n ),\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const fieldId = type === 'folder' ? 'folderType' : 'taskType'\n const meta = table.options.meta\n const folderHasVersions = type === 'folder' && row.original.hasVersions\n return (\n <CellWidget\n rowId={id}\n className={clsx('subType', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n options={\n type === 'folder'\n ? meta?.options?.folderType\n : type === 'task'\n ? meta?.options?.taskType\n : []\n }\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: fieldId, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={\n meta?.readOnly?.includes(column.id) ||\n meta?.readOnly?.includes(fieldId) ||\n folderHasVersions\n }\n tooltip={\n folderHasVersions\n ? 'Folder type cannot be edited when versions exist within the folder'\n : undefined\n }\n />\n )\n },\n })\n }\n\n if (isIncluded('assignees')) {\n staticColumns.push({\n id: 'assignees',\n accessorKey: 'assignees',\n header: 'Assignees',\n minSize: MIN_SIZE,\n enableSorting: canSort('assignees'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n if (type === 'folder')\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value=\"\"\n isPlaceholder\n />\n )\n return (\n <CellWidget\n rowId={id}\n className={clsx('assignees', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n pt={{\n enum: {\n multiSelectClose: value?.length === 0, // close the dropdown on first assignment\n search: true, // enable search at all times\n multipleOverride: false,\n },\n }}\n />\n )\n },\n })\n }\n\n if (isIncluded('folder')) {\n staticColumns.push({\n id: 'folder',\n accessorKey: 'folder',\n header: 'Folder name',\n minSize: MIN_SIZE,\n enableSorting: canSort('folderName'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('folder', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // only show authors column for products\n if (isIncluded('author') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'author',\n accessorKey: 'author',\n header: 'Author',\n minSize: MIN_SIZE,\n enableSorting: canSort('author'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('author', { loading: row.original.isLoading })}\n columnId={column.id}\n value={[value]}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.assignee}\n isReadOnly={true}\n isInherited={type === 'product'} // products do not have authors, we just show the featured version's author\n />\n )\n },\n })\n }\n\n // version column for versions\n if (isIncluded('version') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'version',\n accessorKey: 'version',\n header: 'Version',\n minSize: MIN_SIZE,\n enableSorting: canSort('version'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n let versionValue = row.original.versionName || value\n if (row.original.entityType === 'product') {\n // show summary of versions for products\n versionValue = `${row.original.versionName} (${row.original.versionsCount || 0} versions)`\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('version', { loading: row.original.isLoading })}\n columnId={column.id}\n value={versionValue}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n // product name column for versions and products\n if (isIncluded('product') && ['version', 'product'].some((s) => scopes.includes(s))) {\n staticColumns.push({\n id: 'product',\n accessorKey: 'product',\n header: 'Product name',\n minSize: MIN_SIZE,\n enableSorting: canSort('product'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(pathSort),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('product', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'string' }}\n isReadOnly={true}\n />\n )\n },\n })\n }\n\n if (isIncluded('tags')) {\n staticColumns.push({\n id: 'tags',\n accessorKey: 'tags',\n header: 'Tags',\n minSize: MIN_SIZE,\n enableSorting: canSort('tags'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(valueLengthSort),\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('tags', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'list_of_strings' }}\n options={meta?.options?.tag}\n isCollapsed={!!row.original.childOnlyMatch}\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: column.id, value, type, rowId: row.id },\n { selection: meta?.selection },\n )\n }\n isReadOnly={meta?.readOnly?.includes(column.id) || isEntityRestricted(type)}\n enableCustomValues\n />\n )\n },\n })\n }\n\n if (isIncluded('createdAt')) {\n staticColumns.push({\n id: 'createdAt',\n accessorKey: 'createdAt',\n header: 'Created at',\n minSize: MIN_SIZE,\n enableSorting: canSort('createdAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('createdAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n if (isIncluded('updatedAt')) {\n staticColumns.push({\n id: 'updatedAt',\n accessorKey: 'updatedAt',\n header: 'Updated at',\n minSize: MIN_SIZE,\n enableSorting: canSort('updatedAt'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n sortingFn: withLoadingStateSort(sortingFns.datetime),\n cell: ({ row, column }) => {\n const { value, id, type } = getValueIdType(row, column.id)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n return (\n <CellWidget\n rowId={id}\n className={clsx('updatedAt', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: 'datetime' }}\n isCollapsed={!!row.original.childOnlyMatch}\n isReadOnly={true}\n pt={{ date: { showTime: true } }}\n />\n )\n },\n })\n }\n\n const attributeColumns: ColumnDef<TableRow>[] = attribs\n .filter((attrib) => {\n // filter out attributes that are out of scope\n if (attrib.scope && !attrib.scope.some((s) => scopes.includes(s))) return false\n\n const columnId = 'attrib_' + attrib.name\n // Check if the specific attribute column is excluded\n // or if all built-in attributes are excluded and this is a built-in attribute\n if (!isIncluded(columnId)) return false\n if (attrib.builtin && !isIncluded('attrib')) return false\n return true\n })\n .map((attrib) => {\n const attribColumn: ColumnDef<TableRow> = {\n id: 'attrib_' + attrib.name,\n accessorKey: 'attrib.' + attrib.name,\n header: attrib.data.title || attrib.name,\n minSize: MIN_SIZE,\n filterFn: 'fuzzy' as FilterFnOption<TableRow>,\n sortingFn: withLoadingStateSort((a, b, c) => attribSort(a, b, c, attrib.data)),\n enableSorting: canSort(attrib.name) && canSort('attrib'),\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column, table }) => {\n const meta = table.options.meta\n const columnIdParsed = column.id.replace('attrib_', '')\n const { value, id, type } = getValueIdType(row, columnIdParsed, 'attrib')\n const isInherited = !row.original.ownAttrib?.includes(columnIdParsed)\n if (['group', NEXT_PAGE_ID].includes(type) || row.original.metaType) return null\n const outOfScopeAndNoValue =\n !attrib.scope?.includes(type as (typeof attrib.scope)[number]) &&\n (value === null || value === undefined)\n\n // if the attribute is not in scope, we should nothing\n if (outOfScopeAndNoValue) return null\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('attrib', { loading: row.original.isLoading })}\n columnId={column.id}\n value={value}\n attributeData={{ type: attrib.data.type || 'string' }}\n options={attrib.data.enum || []}\n isCollapsed={!!row.original.childOnlyMatch}\n isInherited={isInherited}\n isReadOnly={\n // check attrib is not read only\n attrib.readOnly ||\n // check if there is any other reason the cell should be read only\n meta?.readOnly?.some(\n (id) => id === columnIdParsed || (id === 'attrib' && attrib.builtin),\n )\n }\n onChange={(value) =>\n meta?.updateEntities?.(\n { field: columnIdParsed, value, type, isAttrib: true, rowId: row.id },\n { selection: !!attrib.data.enum?.length ? meta?.selection : undefined },\n )\n }\n />\n )\n },\n }\n return attribColumn\n })\n\n const linkColumns: ColumnDef<TableRow>[] = !includeLinks\n ? []\n : links\n .filter((link) => {\n // Check if the link type is excluded\n if (!isIncluded(link.linkType) || !isIncluded('link')) return false\n // Check if inputType and outputType are in scopes\n if (!scopes.includes(link.inputType) && !scopes.includes(link.outputType)) return false\n return true\n })\n .flatMap((link) => {\n const createLinkColumn = (direction: 'in' | 'out'): ColumnDef<TableRow> => {\n return {\n id: getLinkColumnId(link, direction),\n accessorKey: `links.${getLinkKey(link, direction)}`,\n header: () => (\n <LinkColumnHeader>\n {getLinkLabel(link, direction)}{' '}\n <Icon\n icon={getEntityTypeIcon(direction === 'in' ? link.inputType : link.outputType)}\n />\n </LinkColumnHeader>\n ),\n minSize: MIN_SIZE,\n enableSorting: false,\n enableResizing: true,\n enablePinning: true,\n enableHiding: true,\n cell: ({ row, column }) => {\n const columnIdParsed = column.id.replace('link_', '')\n\n const { id, value } = getValueIdType(row, columnIdParsed, 'links')\n const cellValue = value?.map((v: any) => v.label)\n const valueData: LinkWidgetData = {\n links: value,\n direction: direction,\n entityId: row.original.entityId || row.original.id,\n entityType: row.original.entityType,\n link: {\n label: link.linkType,\n linkType: link.name,\n targetEntityType: direction === 'in' ? link.inputType : link.outputType,\n },\n }\n\n return (\n <CellWidget\n rowId={id}\n className={clsx('links', { loading: row.original.isLoading })}\n columnId={column.id}\n value={cellValue}\n valueData={valueData}\n folderId={row.original.folderId}\n attributeData={{ type: 'links' }}\n />\n )\n },\n }\n }\n\n return [createLinkColumn('in'), createLinkColumn('out')]\n })\n\n const allColumns = [...staticColumns, ...attributeColumns, ...linkColumns]\n\n // Add extra columns if provided\n if (extraColumns) {\n extraColumns.forEach(({ column, position = -1 }) => {\n if (position >= 0 && position < allColumns.length) {\n allColumns.splice(position, 0, column)\n } else {\n allColumns.push(column)\n }\n })\n }\n\n return allColumns\n}\n\nexport default buildTreeTableColumns\n\nexport const getValueIdType = (\n row: Row<TableRow>,\n field: string,\n nestedField?: keyof TableRow,\n): {\n value: any\n id: string\n type: string\n} => ({\n value: nestedField\n ? (row.original[nestedField as keyof TableRow] as any)?.[field]\n : (row.original[field as keyof TableRow] as any),\n id: row.id,\n type: row.original.entityType,\n})\n"],"names":["isEntityExpandable","entityType","MIN_SIZE","withLoadingStateSort","sortFn","rowA","rowB","args","pathSort","labelA","labelB","valueLengthSort","columnId","valueA","getCellValue","valueB","lengthA","lengthB","attribSort","attrib","indexA","o","sortingFns","getLinkLabel","link","direction","getLinkKey","getLinkColumnId","buildTreeTableColumns","scopes","attribs","links","includeLinks","showHierarchy","options","excluded","excludedSorting","extraColumns","groupBy","nameLabel","staticColumns","isIncluded","id","canSort","ROW_SELECTION_COLUMN_ID","jsx","RowSelectionHeader","row","SelectionCell","column","table","meta","cellId","getCellId","thumbnail","ThumbnailWidget","clsx","value","type","getValueIdType","isEditing","useCellEditing","rowHeight","useColumnSettingsContext","TableCellContent","MetaWidget","NEXT_PAGE_ID","LoadMoreWidget","isExpandable","jsxs","GroupHeaderWidget","EntityNameWidget","getColumnDisplayConfig","CellWidget","a","b","c","s","isEntityRestricted","READ_ONLY","Icon","getEntityTypeIcon","upperFirst","fieldId","folderHasVersions","versionValue","attributeColumns","columnIdParsed","isInherited","linkColumns","createLinkColumn","LinkColumnHeader","cellValue","v","valueData","allColumns","position","field","nestedField"],"mappings":"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"}
@@ -262,13 +262,13 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
262
262
  const g = l.original.path || l.original.name || "", c = s.original.path || s.original.name || "";
263
263
  return g.localeCompare(c);
264
264
  }, B = (l, s, g) => {
265
- const c = D(l.original, g), S = D(s.original, g), C = Array.isArray(c) ? c.length : c ? String(c).length : 0, E = Array.isArray(S) ? S.length : S ? String(S).length : 0;
266
- return C - E;
265
+ const c = D(l.original, g), S = D(s.original, g), C = Array.isArray(c) ? c.length : c ? String(c).length : 0, R = Array.isArray(S) ? S.length : S ? String(S).length : 0;
266
+ return C - R;
267
267
  }, K = (l, s, g, c) => {
268
268
  const S = D(l.original, g), C = D(s.original, g);
269
269
  if (c && c.enum) {
270
- const E = c.enum.findIndex((L) => L.value === S);
271
- return c.enum.findIndex((L) => L.value === C) - E < 0 ? 1 : -1;
270
+ const R = c.enum.findIndex((L) => L.value === S);
271
+ return c.enum.findIndex((L) => L.value === C) - R < 0 ? 1 : -1;
272
272
  } else return c?.type === "datetime" ? A.datetime(l, s, g) : c?.type === "boolean" ? (S === !0 ? 1 : 0) - (C === !0 ? 1 : 0) : A.alphanumeric(l, s, g);
273
273
  }, si = (l, s) => `${l.linkType.charAt(0).toUpperCase() + l.linkType.slice(1)} (${s})`, G = (l, s) => `${l.name.replaceAll("_", "").replaceAll("-", "").replaceAll("|", "_")}_${s}`, di = (l, s) => `link_${G(l, s)}`, to = ({
274
274
  scopes: l,
@@ -277,13 +277,13 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
277
277
  includeLinks: c = !0,
278
278
  showHierarchy: S,
279
279
  options: C,
280
- excluded: E,
280
+ excluded: R,
281
281
  excludedSorting: P,
282
282
  extraColumns: L,
283
283
  groupBy: M,
284
284
  nameLabel: U = "Entity"
285
285
  }) => {
286
- const y = [], m = (i) => !E?.includes(i), h = (i) => !P?.includes(i);
286
+ const y = [], m = (i) => !R?.includes(i), h = (i) => !P?.includes(i);
287
287
  m(W) && y.push({
288
288
  id: W,
289
289
  enableResizing: !1,
@@ -337,7 +337,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
337
337
  enablePinning: !0,
338
338
  enableHiding: !M,
339
339
  cell: ({ row: i, column: e, table: t }) => {
340
- const { value: n, id: o, type: r } = b(i, e.id), a = t.options.meta, { isEditing: d } = ti(), { rowHeight: R = 40 } = ri(), v = H(i.id, e.id);
340
+ const { value: n, id: o, type: r } = b(i, e.id), a = t.options.meta, { isEditing: d } = ti(), { rowHeight: E = 40 } = ri(), v = H(i.id, e.id);
341
341
  if (i.original.metaType)
342
342
  return /* @__PURE__ */ p.jsx(
343
343
  _,
@@ -385,7 +385,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
385
385
  color: i.original.group.color,
386
386
  count: i.original.group.count,
387
387
  isExpanded: i.getIsExpanded(),
388
- isEmpty: i.subRows.length === 0 && !i.original.metaType,
388
+ isEmpty: i.original.group.count === 0,
389
389
  toggleExpanded: i.getToggleExpandedHandler()
390
390
  }
391
391
  ) : /* @__PURE__ */ p.jsx(
@@ -401,7 +401,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
401
401
  isExpanded: i.getIsExpanded(),
402
402
  toggleExpandAll: () => a?.toggleExpandAll?.([i.id]),
403
403
  toggleExpanded: i.getToggleExpandedHandler(),
404
- rowHeight: R,
404
+ rowHeight: E,
405
405
  columnDisplayConfig: ai(a?.columnsConfig, "name")
406
406
  }
407
407
  ),
@@ -521,7 +521,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
521
521
  cell: ({ row: i, column: e, table: t }) => {
522
522
  const { value: n, id: o, type: r } = b(i, e.id);
523
523
  if (["group", T].includes(r) || i.original.metaType) return null;
524
- const a = r === "folder" ? "folderType" : "taskType", d = t.options.meta, R = r === "folder" && i.original.hasVersions;
524
+ const a = r === "folder" ? "folderType" : "taskType", d = t.options.meta, E = r === "folder" && i.original.hasVersions;
525
525
  return /* @__PURE__ */ p.jsx(
526
526
  f,
527
527
  {
@@ -536,8 +536,8 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
536
536
  { field: a, value: v, type: r, rowId: i.id },
537
537
  { selection: d?.selection }
538
538
  ),
539
- isReadOnly: d?.readOnly?.includes(e.id) || d?.readOnly?.includes(a) || R,
540
- tooltip: R ? "Folder type cannot be edited when versions exist within the folder" : void 0
539
+ isReadOnly: d?.readOnly?.includes(e.id) || d?.readOnly?.includes(a) || E,
540
+ tooltip: E ? "Folder type cannot be edited when versions exist within the folder" : void 0
541
541
  }
542
542
  );
543
543
  }
@@ -788,11 +788,11 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
788
788
  enablePinning: !0,
789
789
  enableHiding: !0,
790
790
  cell: ({ row: t, column: n, table: o }) => {
791
- const r = o.options.meta, a = n.id.replace("attrib_", ""), { value: d, id: R, type: v } = b(t, a, "attrib"), z = !t.original.ownAttrib?.includes(a);
791
+ const r = o.options.meta, a = n.id.replace("attrib_", ""), { value: d, id: E, type: v } = b(t, a, "attrib"), z = !t.original.ownAttrib?.includes(a);
792
792
  return ["group", T].includes(v) || t.original.metaType || !i.scope?.includes(v) && d == null ? null : /* @__PURE__ */ p.jsx(
793
793
  f,
794
794
  {
795
- rowId: R,
795
+ rowId: E,
796
796
  className: u("attrib", { loading: t.original.isLoading }),
797
797
  columnId: n.id,
798
798
  value: d,
@@ -834,7 +834,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
834
834
  enablePinning: !0,
835
835
  enableHiding: !0,
836
836
  cell: ({ row: n, column: o }) => {
837
- const r = o.id.replace("link_", ""), { id: a, value: d } = b(n, r, "links"), R = d?.map((z) => z.label), v = {
837
+ const r = o.id.replace("link_", ""), { id: a, value: d } = b(n, r, "links"), E = d?.map((z) => z.label), v = {
838
838
  links: d,
839
839
  direction: t,
840
840
  entityId: n.original.entityId || n.original.id,
@@ -851,7 +851,7 @@ const pi = (l) => ["folder", "product"].includes(l), I = 50, x = (l) => (s, g, .
851
851
  rowId: a,
852
852
  className: u("links", { loading: n.original.isLoading }),
853
853
  columnId: o.id,
854
- value: R,
854
+ value: E,
855
855
  valueData: v,
856
856
  folderId: n.original.folderId,
857
857
  attributeData: { type: "links" }