@ynput/ayon-frontend-shared 0.4.1 → 0.4.3

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 (1190) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -201
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +252 -512
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -233
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/_virtual/index.cjs22.js +1 -1
  11. package/dist/_virtual/index.cjs23.js +1 -1
  12. package/dist/_virtual/index.cjs24.js +1 -1
  13. package/dist/_virtual/index.cjs4.js +1 -1
  14. package/dist/_virtual/index.cjs5.js +1 -1
  15. package/dist/_virtual/index.cjs6.js +1 -1
  16. package/dist/_virtual/index.cjs8.js +1 -1
  17. package/dist/_virtual/index.es22.js +3 -3
  18. package/dist/_virtual/index.es23.js +5 -5
  19. package/dist/_virtual/index.es24.js +5 -5
  20. package/dist/_virtual/index.es4.js +2 -5
  21. package/dist/_virtual/index.es4.js.map +1 -1
  22. package/dist/_virtual/index.es5.js +5 -2
  23. package/dist/_virtual/index.es5.js.map +1 -1
  24. package/dist/_virtual/index.es6.js +2 -2
  25. package/dist/_virtual/index.es8.js +2 -2
  26. package/dist/api.cjs.js +1 -1
  27. package/dist/api.es.js +446 -445
  28. package/dist/components.cjs.js +1 -1
  29. package/dist/components.es.js +83 -82
  30. package/dist/components.es.js.map +1 -1
  31. package/dist/index.cjs.js +1 -1
  32. package/dist/index.es.js +43 -130
  33. package/dist/index.es.js.map +1 -1
  34. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  35. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  36. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  37. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  38. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  39. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  40. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  41. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  42. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  43. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  44. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  45. package/dist/node_modules/remove-accents/index.es.js +1 -1
  46. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  47. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  48. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  49. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  50. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  51. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  52. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  53. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  54. package/dist/shared/src/api/generated/graphql.cjs.js +85 -27
  55. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  56. package/dist/shared/src/api/generated/graphql.es.js +126 -64
  57. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  58. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  59. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  63. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  64. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  65. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  68. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  69. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  71. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  72. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +55 -151
  73. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  75. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  76. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  77. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  79. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  80. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
  81. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  82. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +36 -36
  83. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  84. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  85. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +58 -113
  89. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  91. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  93. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  94. package/dist/shared/src/api/queries/entityLists/getLists.es.js +67 -118
  95. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  99. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  102. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  103. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  104. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  105. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  106. package/dist/shared/src/api/queries/folders/getFolders.es.js +68 -119
  107. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  108. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  109. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  110. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +73 -128
  111. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  114. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  115. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  116. package/dist/shared/src/api/queries/overview/getOverview.es.js +229 -282
  117. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  118. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  119. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  120. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  121. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  122. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  123. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  124. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  125. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  126. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  127. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  128. package/dist/shared/src/api/queries/review/getReview.es.js +95 -152
  129. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  130. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  135. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  136. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +88 -141
  137. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  138. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  139. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  140. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  141. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  142. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +30 -80
  143. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  144. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  145. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  146. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  147. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  148. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  149. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  150. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  151. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  152. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  153. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  154. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  155. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  156. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  157. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  158. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  159. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  160. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  161. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  162. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  163. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  164. package/dist/shared/src/components/Chips/Chips.cjs.js +12 -6
  165. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  166. package/dist/shared/src/components/Chips/Chips.es.js +69 -62
  167. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  168. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  169. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  170. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -310
  171. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  172. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  173. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  174. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  175. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  176. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  177. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  178. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  179. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  180. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  181. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  182. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +30 -166
  183. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  184. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  185. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  186. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -195
  187. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  188. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  189. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  190. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -200
  191. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  192. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  193. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  194. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  195. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  196. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  197. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  198. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  199. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  200. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  201. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  202. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -316
  203. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  204. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  205. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  206. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  207. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  208. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  209. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  210. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  211. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  212. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  213. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  214. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  215. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  216. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  217. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  218. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +12 -314
  219. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  220. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  221. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  222. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -273
  223. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  224. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  225. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  226. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -335
  227. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  228. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  229. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  230. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  231. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  232. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -310
  233. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  234. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  235. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  236. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  237. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  238. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  239. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  240. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -293
  241. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  242. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  243. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  244. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  245. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  246. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  247. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  248. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  249. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  250. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  251. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  252. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  253. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -346
  254. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  255. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  256. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  257. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -212
  258. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  259. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  260. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  261. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -205
  262. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  263. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  264. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  265. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -185
  266. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  267. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  268. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  269. package/dist/shared/src/components/Menu/Menu.es.js +48 -343
  270. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  271. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  272. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  273. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -316
  274. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  275. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  276. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  277. package/dist/shared/src/components/Menu/MenuList.es.js +74 -373
  278. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  279. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  280. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  281. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -315
  282. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  283. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  284. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  285. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -346
  286. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  287. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  288. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  289. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +134 -304
  290. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  291. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  292. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  293. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +78 -371
  294. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  295. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  296. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  297. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -299
  298. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  299. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  300. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  301. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -334
  302. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  303. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  304. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  305. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -331
  306. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  307. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  308. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  309. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -372
  310. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  312. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  313. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -309
  314. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  315. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  316. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  317. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -365
  318. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  319. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  320. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  321. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -316
  322. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  323. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  324. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  325. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  326. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  327. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  328. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  329. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -326
  330. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  331. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  332. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  333. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  334. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +335 -534
  336. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  337. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  338. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -329
  340. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  341. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  342. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  343. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -355
  344. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  345. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  346. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  347. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -394
  348. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  349. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  350. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  351. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +39 -8
  352. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  353. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  354. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  355. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  356. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  357. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  358. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  359. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -334
  360. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  361. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  362. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  363. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  364. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  365. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  366. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  367. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  368. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  369. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  370. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  371. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -300
  372. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  373. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  374. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  375. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -262
  376. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  377. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  378. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  379. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  380. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  381. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  382. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  383. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -210
  384. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  385. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  387. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  388. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  389. package/dist/shared/src/containers/Actions/Actions.es.js +51 -250
  390. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  391. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  392. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  393. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  394. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -323
  396. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  397. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  399. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  400. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +151 -334
  404. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  406. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -329
  408. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  410. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -236
  412. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -255
  416. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -317
  420. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -354
  424. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  426. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  428. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  430. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -306
  432. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  433. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  434. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  436. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  437. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  438. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -202
  440. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  441. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  442. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  443. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  445. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  446. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  447. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  448. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  449. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -320
  450. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  451. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  452. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  453. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -217
  454. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  455. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  456. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  457. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -323
  458. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  459. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  460. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  461. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -307
  462. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  463. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  465. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  466. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  467. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  469. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  470. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  471. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  472. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  474. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  475. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  476. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  477. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  478. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  479. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -209
  480. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  481. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  482. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  483. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -373
  484. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  485. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  486. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  487. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -324
  488. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  489. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  490. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  491. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -338
  492. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  493. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  494. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  495. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -318
  496. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  497. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  498. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  500. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  501. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  502. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  503. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -228
  504. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  505. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  506. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  507. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  508. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  509. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  510. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  512. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/Feed.es.js +65 -245
  514. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  518. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  519. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -309
  520. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  521. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  522. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -421
  524. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  526. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -317
  528. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  530. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  532. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  534. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -331
  536. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  538. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  540. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -372
  542. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  546. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  547. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -341
  548. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  549. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  550. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  551. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -324
  552. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  553. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  554. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  555. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  556. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  557. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  558. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  559. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -324
  560. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  561. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  562. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  563. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  564. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  565. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  566. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  567. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  568. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  569. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  570. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  571. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  572. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  573. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  574. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  575. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +62 -361
  576. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  577. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  578. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  579. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -356
  580. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  581. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  582. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  583. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -310
  584. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  585. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  586. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  587. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -238
  588. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  589. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +1 -1
  590. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -1
  591. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +24 -18
  592. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -1
  593. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +1 -1
  594. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -1
  595. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +26 -25
  596. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -1
  597. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  598. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  599. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  600. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  601. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  603. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  604. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  605. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  606. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  607. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  608. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  609. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  610. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  611. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  612. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  613. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  614. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  615. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/ListTable/ListTable.es.js +115 -284
  617. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  618. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  619. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +56 -177
  621. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  622. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  623. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -343
  625. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  626. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  627. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  628. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  629. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  630. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  631. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -459
  633. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  634. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  635. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  636. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  637. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  638. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -314
  639. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  641. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  642. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +613 -883
  643. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +6 -0
  645. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  646. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +14 -8
  647. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  649. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  650. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +289 -413
  651. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  653. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  654. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -375
  655. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  657. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  658. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -204
  659. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  661. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  662. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +38 -124
  663. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  665. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  666. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  667. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  668. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -1
  670. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -3
  671. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  674. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +97 -292
  675. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  676. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
  677. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +243 -441
  679. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  680. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +156 -330
  683. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  684. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -208
  687. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  688. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +120 -420
  691. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  692. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +71 -245
  695. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  696. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  698. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  700. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  704. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  706. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  708. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -317
  710. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +59 -233
  714. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +74 -248
  718. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +147 -439
  722. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  724. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +23 -197
  726. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  728. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -206
  730. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  732. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -332
  734. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  736. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +135 -335
  738. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  740. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -203
  744. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  746. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -204
  748. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -282
  752. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  753. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  754. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  755. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -232
  756. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  758. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +24 -198
  760. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  762. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +43 -217
  764. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  766. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -467
  768. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  770. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -215
  772. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  774. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  776. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  778. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  779. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  780. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  781. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  782. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  783. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  784. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  785. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  786. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  787. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  788. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  789. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  790. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  791. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  792. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  793. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  794. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  795. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -315
  796. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  797. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +5 -3
  798. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  799. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +159 -441
  800. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  801. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  802. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  803. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -332
  804. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  805. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +9 -1
  806. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
  807. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +47 -31
  808. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
  809. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +28 -9
  810. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  811. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +58 -39
  812. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  813. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +1 -1
  814. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -1
  815. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +22 -194
  816. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -1
  817. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +53 -25
  818. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  819. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +150 -103
  820. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  821. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +9 -2
  822. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  823. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +66 -57
  824. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  825. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  826. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  827. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +52 -348
  828. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  829. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  830. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  831. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -364
  832. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  833. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  834. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  835. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -202
  836. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  837. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  838. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  839. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +37 -333
  840. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  841. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  842. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  843. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -424
  844. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  845. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +19 -3
  846. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  847. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +119 -196
  848. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  849. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  850. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  851. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  852. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  853. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js +6 -0
  854. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js.map +1 -0
  855. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js +11 -0
  856. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js.map +1 -0
  857. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  858. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  859. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -217
  860. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  861. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  862. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  863. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -527
  864. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  865. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  866. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  867. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -367
  868. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  869. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  870. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  871. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -318
  872. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  873. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  874. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  875. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -328
  876. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  877. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  878. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  879. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -370
  880. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  881. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  882. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  883. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -228
  884. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  885. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  886. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  887. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -236
  888. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  889. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  890. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  891. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -309
  892. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  893. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  894. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  895. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -311
  896. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  897. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  898. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  899. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -314
  900. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  901. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  902. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  903. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -316
  904. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  905. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  906. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  907. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -338
  908. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  909. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  910. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  911. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -316
  912. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  913. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  914. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  915. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -368
  916. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  917. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  918. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  919. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  920. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  921. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  922. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  923. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  924. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  925. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  926. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  927. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  928. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  929. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -336
  930. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  931. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  932. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  933. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -354
  934. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  935. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  936. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  937. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -335
  938. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  939. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  940. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  941. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +89 -287
  942. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  943. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  944. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  945. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  946. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  947. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  948. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  949. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  950. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  951. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  952. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  953. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  954. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  955. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -216
  956. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  957. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  958. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  959. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  960. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  961. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  962. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  963. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  964. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  965. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +47 -46
  966. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  967. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  968. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  969. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  970. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  971. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  972. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  973. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  974. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  975. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  976. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  977. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  978. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  979. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -362
  980. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  981. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  982. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  983. package/dist/shared/src/context/EntityUpdatesContext.es.js +61 -358
  984. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  985. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  986. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  987. package/dist/shared/src/context/PowerpackContext.es.js +42 -344
  988. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  989. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  990. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  991. package/dist/shared/src/context/ProjectContext.es.js +1 -1
  992. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  993. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  994. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  995. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -231
  996. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  997. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  998. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  999. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  1000. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  1001. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -324
  1002. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  1003. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  1004. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  1005. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  1006. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  1007. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  1008. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  1009. package/dist/shared/src/context/UriContext.es.js +2 -2
  1010. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  1011. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  1012. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  1013. package/dist/shared/src/context/WebsocketContext.es.js +28 -229
  1014. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  1015. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  1016. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  1017. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -208
  1018. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  1019. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  1020. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  1021. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -314
  1022. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  1023. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  1024. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  1025. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -333
  1026. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  1027. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  1028. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  1029. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  1030. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  1031. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  1032. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  1033. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  1034. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  1035. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -212
  1036. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  1037. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
  1038. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  1039. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +36 -33
  1040. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  1041. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  1042. package/dist/shared/src/util/checkName.es.js.map +1 -1
  1043. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  1044. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  1045. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  1046. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  1047. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  1048. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  1049. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  1050. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  1051. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  1052. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  1053. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  1054. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  1055. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  1056. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  1057. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  1058. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  1059. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  1060. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  1061. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  1062. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  1063. package/dist/shared/src/util/parseFilename.es.js +8 -0
  1064. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  1065. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  1066. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  1067. package/dist/types/api/base/index.d.ts +1 -1
  1068. package/dist/types/api/generated/graphql.d.ts +76 -2
  1069. package/dist/types/api/generated/graphqlLinks.d.ts +1 -0
  1070. package/dist/types/api/queries/activities/getActivities.d.ts +32 -2
  1071. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  1072. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -1
  1073. package/dist/types/api/queries/entities/getEntity.d.ts +16 -1
  1074. package/dist/types/api/queries/entities/getEntityPanel.d.ts +16 -1
  1075. package/dist/types/api/queries/entities/updateEntity.d.ts +16 -1
  1076. package/dist/types/api/queries/entityLists/getLists.d.ts +319 -305
  1077. package/dist/types/api/queries/overview/getOverview.d.ts +49 -18
  1078. package/dist/types/api/queries/project/getProject.d.ts +76 -61
  1079. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  1080. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +16 -1
  1081. package/dist/types/api/queries/users/getUsers.d.ts +16 -1
  1082. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +32 -2
  1083. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  1084. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  1085. package/dist/types/components/Menu/Menu.d.ts +1 -1
  1086. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  1087. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1088. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +1 -1
  1089. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1090. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1091. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1092. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +4 -2
  1093. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1094. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1095. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1096. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1097. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1098. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +1 -1
  1099. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1100. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +4 -1
  1101. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1102. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1103. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1104. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1105. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1106. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1107. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1108. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1109. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1110. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1111. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1112. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1113. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1114. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1115. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1116. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1117. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1118. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1119. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1120. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1121. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1122. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1123. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1124. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1125. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1126. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1127. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1128. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1129. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1130. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1131. package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +1 -0
  1132. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1133. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1134. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1135. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1136. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +1 -1
  1137. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +2 -1
  1138. package/dist/types/containers/ProjectTreeTable/constants.d.ts +3 -0
  1139. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1140. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1141. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1142. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1143. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1144. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1145. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1146. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1147. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1148. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1149. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1150. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1151. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1152. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1153. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1154. package/dist/types/containers/ProjectTreeTable/widgets/SubtasksWidget.d.ts +1 -0
  1155. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1156. package/dist/types/containers/ProjectTreeTable/widgets/wrapMode.d.ts +2 -0
  1157. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1158. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1159. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1160. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1161. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1162. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1163. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1164. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1165. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1166. package/dist/types/containers/Views/context/ViewsContext.d.ts +1 -0
  1167. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1168. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1169. package/dist/types/containers/Views/types.d.ts +1 -1
  1170. package/dist/types/context/AddonContext.d.ts +1 -1
  1171. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1172. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1173. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1174. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1175. package/dist/types/util/buildHierarchicalTableRows.d.ts +3 -1
  1176. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1177. package/dist/types/util/getBundleMode.d.ts +1 -1
  1178. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1179. package/dist/types/util/index.d.ts +2 -0
  1180. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1181. package/dist/types/util/parseFilename.d.ts +1 -0
  1182. package/dist/types/util/uriUtils.d.ts +1 -1
  1183. package/dist/util.cjs.js +1 -1
  1184. package/dist/util.es.js +24 -20
  1185. package/dist/util.es.js.map +1 -1
  1186. package/package.json +1 -1
  1187. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1188. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1189. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1190. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cellUtils.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/cellUtils.ts"],"sourcesContent":["/**\n * Shared cell utilities for table operations\n */\n\nimport { TaskLink } from '@shared/api'\nimport { parseRowId } from '../context'\nimport { EMapResult, EntitiesMap } from '../types'\n\n// Type definitions for cell identifiers\nexport type CellId = string\nexport type RowId = string\nexport type ColId = string\n\n// Cell position in the grid\nexport interface CellPosition {\n rowId: RowId\n colId: ColId\n}\n\n// Cell border position flags - used for determining which borders to show\nexport enum BorderPosition {\n None = 0,\n Top = 1 << 0,\n Right = 1 << 1,\n Bottom = 1 << 2,\n Left = 1 << 3,\n All = Top | Right | Bottom | Left,\n}\n\n/**\n * Create a standardized cell ID from row and column IDs\n */\nexport const getCellId = (rowId: RowId, colId: ColId): CellId => `cell-${rowId}-${colId}`\n\n/**\n * Parse a cell ID to extract row and column IDs\n * @returns CellPosition or null if invalid format\n */\nexport const parseCellId = (cellId: CellId): CellPosition | null => {\n const match = cellId.match(/^cell-(.+)-(.+)$/)\n if (!match) return null\n return { rowId: match[1], colId: match[2] }\n}\n\nexport const getCellValue = (obj: any, path: string): any => {\n if (!obj || !path) return undefined\n\n const parts = path.split('_')\n let current = obj\n\n for (const part of parts) {\n if (current && typeof current === 'object' && part in current) {\n current = current[part]\n } else {\n return undefined // Return undefined if any part of the path is invalid\n }\n }\n\n return current\n}\n\n// return the link entity ids for a given column id\nexport const getLinkEntityIdsByColumnId = (links: TaskLink[], columnId: CellId): string => {\n // split the columnId\n const [_link, linkType, _inType, _outType, direction] = columnId.split('_')\n const cellLinks = links.filter(\n (link) => link.linkType === linkType && link.direction === direction,\n )\n if (cellLinks.length) {\n return cellLinks.map((link) => link.node.id).join(',')\n } else {\n return ''\n }\n}\n\n/**\n * Determines which borders to display for a selected cell\n * based on its position within the selection grid\n *\n * @param rowIndex Current cell's row index\n * @param colIndex Current cell's column index\n * @param selectedCells 2D array representing selection state (true = selected)\n * @returns BorderPosition flags indicating which borders to display\n */\nexport const getCellBorders = (\n rowIndex: number,\n colIndex: number,\n selectedCells: boolean[][],\n): BorderPosition => {\n if (!selectedCells[rowIndex]?.[colIndex]) {\n return BorderPosition.None\n }\n\n let borders = BorderPosition.None\n\n // Check top border\n if (rowIndex === 0 || !selectedCells[rowIndex - 1]?.[colIndex]) {\n borders |= BorderPosition.Top\n }\n\n // Check right border\n if (!selectedCells[rowIndex]?.[colIndex + 1]) {\n borders |= BorderPosition.Right\n }\n\n // Check bottom border\n if (!selectedCells[rowIndex + 1]?.[colIndex]) {\n borders |= BorderPosition.Bottom\n }\n\n // Check left border\n if (colIndex === 0 || !selectedCells[rowIndex]?.[colIndex - 1]) {\n borders |= BorderPosition.Left\n }\n\n return borders\n}\n\n/**\n * Converts border position flags to CSS classes for shadow styling\n */\nexport const getBorderClasses = (borders: BorderPosition): string[] => {\n const classes: string[] = []\n\n if (borders & BorderPosition.Top) classes.push('shadow-top')\n if (borders & BorderPosition.Right) classes.push('shadow-right')\n if (borders & BorderPosition.Bottom) classes.push('shadow-bottom')\n if (borders & BorderPosition.Left) classes.push('shadow-left')\n\n return classes\n}\n\n// get a entity from it's id\nexport const getEntityDataById = <T extends 'folder' | 'task' | 'product' | 'version'>(\n id: string,\n entitiesMap: EntitiesMap,\n) => entitiesMap.get(parseRowId(id)) as EMapResult<T> | undefined\n"],"names":["BorderPosition","getCellId","rowId","colId","parseCellId","cellId","match","getCellValue","obj","path","parts","current","part","getLinkEntityIdsByColumnId","links","columnId","_link","linkType","_inType","_outType","direction","cellLinks","link","getCellBorders","rowIndex","colIndex","selectedCells","borders","getBorderClasses","classes","getEntityDataById","id","entitiesMap","parseRowId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,IAAKA,sBAAAA,OACVA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,MAAM,CAAA,IAAN,OACAA,EAAAA,EAAA,QAAQ,CAAA,IAAR,SACAA,EAAAA,EAAA,SAAS,CAAA,IAAT,UACAA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,MAAM,EAAA,IAAN,OANUA,IAAAA,KAAA,CAAA,CAAA;AAYL,MAAMC,KAAY,CAACC,GAAcC,MAAyB,QAAQD,CAAK,IAAIC,CAAK,IAM1EC,KAAc,CAACC,MAAwC;AAClE,QAAMC,IAAQD,EAAO,MAAM,kBAAkB;AAC7C,SAAKC,IACE,EAAE,OAAOA,EAAM,CAAC,GAAG,OAAOA,EAAM,CAAC,EAAA,IADrB;AAErB,GAEaC,KAAe,CAACC,GAAUC,MAAsB;AAC3D,MAAI,CAACD,KAAO,CAACC,EAAM;AAEnB,QAAMC,IAAQD,EAAK,MAAM,GAAG;AAC5B,MAAIE,IAAUH;AAEd,aAAWI,KAAQF;AACjB,QAAIC,KAAW,OAAOA,KAAY,YAAYC,KAAQD;AACpD,MAAAA,IAAUA,EAAQC,CAAI;AAAA;AAEtB;AAIJ,SAAOD;AACT,GAGaE,KAA6B,CAACC,GAAmBC,MAA6B;AAEzF,QAAM,CAACC,GAAOC,GAAUC,GAASC,GAAUC,CAAS,IAAIL,EAAS,MAAM,GAAG,GACpEM,IAAYP,EAAM;AAAA,IACtB,CAACQ,MAASA,EAAK,aAAaL,KAAYK,EAAK,cAAcF;AAAA,EAAA;AAE7D,SAAIC,EAAU,SACLA,EAAU,IAAI,CAACC,MAASA,EAAK,KAAK,EAAE,EAAE,KAAK,GAAG,IAE9C;AAEX,GAWaC,KAAiB,CAC5BC,GACAC,GACAC,MACmB;AACnB,MAAI,CAACA,EAAcF,CAAQ,IAAIC,CAAQ;AACrC,WAAO;AAGT,MAAIE,IAAU;AAGd,UAAIH,MAAa,KAAK,CAACE,EAAcF,IAAW,CAAC,IAAIC,CAAQ,OAC3DE,KAAW,IAIRD,EAAcF,CAAQ,IAAIC,IAAW,CAAC,MACzCE,KAAW,IAIRD,EAAcF,IAAW,CAAC,IAAIC,CAAQ,MACzCE,KAAW,KAITF,MAAa,KAAK,CAACC,EAAcF,CAAQ,IAAIC,IAAW,CAAC,OAC3DE,KAAW,IAGNA;AACT,GAKaC,KAAmB,CAACD,MAAsC;AACrE,QAAME,IAAoB,CAAA;AAE1B,SAAIF,IAAU,KAAoBE,EAAQ,KAAK,YAAY,GACvDF,IAAU,KAAsBE,EAAQ,KAAK,cAAc,GAC3DF,IAAU,KAAuBE,EAAQ,KAAK,eAAe,GAC7DF,IAAU,KAAqBE,EAAQ,KAAK,aAAa,GAEtDA;AACT,GAGaC,KAAoB,CAC/BC,GACAC,MACGA,EAAY,IAAIC,EAAWF,CAAE,CAAC;"}
1
+ {"version":3,"file":"cellUtils.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/cellUtils.ts"],"sourcesContent":["/**\n * Shared cell utilities for table operations\n */\n\nimport type { TaskLink } from '@shared/api'\nimport { parseRowId } from '../context'\nimport { EMapResult, EntitiesMap } from '../types'\n\n// Type definitions for cell identifiers\nexport type CellId = string\nexport type RowId = string\nexport type ColId = string\n\n// Cell position in the grid\nexport interface CellPosition {\n rowId: RowId\n colId: ColId\n}\n\n// Cell border position flags - used for determining which borders to show\nexport enum BorderPosition {\n None = 0,\n Top = 1 << 0,\n Right = 1 << 1,\n Bottom = 1 << 2,\n Left = 1 << 3,\n All = Top | Right | Bottom | Left,\n}\n\n/**\n * Create a standardized cell ID from row and column IDs\n */\nexport const getCellId = (rowId: RowId, colId: ColId): CellId => `cell-${rowId}-${colId}`\n\n/**\n * Parse a cell ID to extract row and column IDs\n * @returns CellPosition or null if invalid format\n */\nexport const parseCellId = (cellId: CellId): CellPosition | null => {\n const match = cellId.match(/^cell-(.+)-(.+)$/)\n if (!match) return null\n return { rowId: match[1], colId: match[2] }\n}\n\nexport const getCellValue = (obj: any, path: string): any => {\n if (!obj || !path) return undefined\n\n const parts = path.split('_')\n let current = obj\n\n for (const part of parts) {\n if (current && typeof current === 'object' && part in current) {\n current = current[part]\n } else {\n return undefined // Return undefined if any part of the path is invalid\n }\n }\n\n return current\n}\n\n// return the link entity ids for a given column id\nexport const getLinkEntityIdsByColumnId = (links: TaskLink[], columnId: CellId): string => {\n // split the columnId\n const [_link, linkType, _inType, _outType, direction] = columnId.split('_')\n const cellLinks = links.filter(\n (link) => link.linkType === linkType && link.direction === direction,\n )\n if (cellLinks.length) {\n return cellLinks.map((link) => link.node.id).join(',')\n } else {\n return ''\n }\n}\n\n/**\n * Determines which borders to display for a selected cell\n * based on its position within the selection grid\n *\n * @param rowIndex Current cell's row index\n * @param colIndex Current cell's column index\n * @param selectedCells 2D array representing selection state (true = selected)\n * @returns BorderPosition flags indicating which borders to display\n */\nexport const getCellBorders = (\n rowIndex: number,\n colIndex: number,\n selectedCells: boolean[][],\n): BorderPosition => {\n if (!selectedCells[rowIndex]?.[colIndex]) {\n return BorderPosition.None\n }\n\n let borders = BorderPosition.None\n\n // Check top border\n if (rowIndex === 0 || !selectedCells[rowIndex - 1]?.[colIndex]) {\n borders |= BorderPosition.Top\n }\n\n // Check right border\n if (!selectedCells[rowIndex]?.[colIndex + 1]) {\n borders |= BorderPosition.Right\n }\n\n // Check bottom border\n if (!selectedCells[rowIndex + 1]?.[colIndex]) {\n borders |= BorderPosition.Bottom\n }\n\n // Check left border\n if (colIndex === 0 || !selectedCells[rowIndex]?.[colIndex - 1]) {\n borders |= BorderPosition.Left\n }\n\n return borders\n}\n\n/**\n * Converts border position flags to CSS classes for shadow styling\n */\nexport const getBorderClasses = (borders: BorderPosition): string[] => {\n const classes: string[] = []\n\n if (borders & BorderPosition.Top) classes.push('shadow-top')\n if (borders & BorderPosition.Right) classes.push('shadow-right')\n if (borders & BorderPosition.Bottom) classes.push('shadow-bottom')\n if (borders & BorderPosition.Left) classes.push('shadow-left')\n\n return classes\n}\n\n// get a entity from it's id\nexport const getEntityDataById = <T extends 'folder' | 'task' | 'product' | 'version'>(\n id: string,\n entitiesMap: EntitiesMap,\n) => entitiesMap.get(parseRowId(id)) as EMapResult<T> | undefined\n"],"names":["BorderPosition","getCellId","rowId","colId","parseCellId","cellId","match","getCellValue","obj","path","parts","current","part","getLinkEntityIdsByColumnId","links","columnId","_link","linkType","_inType","_outType","direction","cellLinks","link","getCellBorders","rowIndex","colIndex","selectedCells","borders","getBorderClasses","classes","getEntityDataById","id","entitiesMap","parseRowId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,IAAKA,sBAAAA,OACVA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,MAAM,CAAA,IAAN,OACAA,EAAAA,EAAA,QAAQ,CAAA,IAAR,SACAA,EAAAA,EAAA,SAAS,CAAA,IAAT,UACAA,EAAAA,EAAA,OAAO,CAAA,IAAP,QACAA,EAAAA,EAAA,MAAM,EAAA,IAAN,OANUA,IAAAA,KAAA,CAAA,CAAA;AAYL,MAAMC,KAAY,CAACC,GAAcC,MAAyB,QAAQD,CAAK,IAAIC,CAAK,IAM1EC,KAAc,CAACC,MAAwC;AAClE,QAAMC,IAAQD,EAAO,MAAM,kBAAkB;AAC7C,SAAKC,IACE,EAAE,OAAOA,EAAM,CAAC,GAAG,OAAOA,EAAM,CAAC,EAAA,IADrB;AAErB,GAEaC,KAAe,CAACC,GAAUC,MAAsB;AAC3D,MAAI,CAACD,KAAO,CAACC,EAAM;AAEnB,QAAMC,IAAQD,EAAK,MAAM,GAAG;AAC5B,MAAIE,IAAUH;AAEd,aAAWI,KAAQF;AACjB,QAAIC,KAAW,OAAOA,KAAY,YAAYC,KAAQD;AACpD,MAAAA,IAAUA,EAAQC,CAAI;AAAA;AAEtB;AAIJ,SAAOD;AACT,GAGaE,KAA6B,CAACC,GAAmBC,MAA6B;AAEzF,QAAM,CAACC,GAAOC,GAAUC,GAASC,GAAUC,CAAS,IAAIL,EAAS,MAAM,GAAG,GACpEM,IAAYP,EAAM;AAAA,IACtB,CAACQ,MAASA,EAAK,aAAaL,KAAYK,EAAK,cAAcF;AAAA,EAAA;AAE7D,SAAIC,EAAU,SACLA,EAAU,IAAI,CAACC,MAASA,EAAK,KAAK,EAAE,EAAE,KAAK,GAAG,IAE9C;AAEX,GAWaC,KAAiB,CAC5BC,GACAC,GACAC,MACmB;AACnB,MAAI,CAACA,EAAcF,CAAQ,IAAIC,CAAQ;AACrC,WAAO;AAGT,MAAIE,IAAU;AAGd,UAAIH,MAAa,KAAK,CAACE,EAAcF,IAAW,CAAC,IAAIC,CAAQ,OAC3DE,KAAW,IAIRD,EAAcF,CAAQ,IAAIC,IAAW,CAAC,MACzCE,KAAW,IAIRD,EAAcF,IAAW,CAAC,IAAIC,CAAQ,MACzCE,KAAW,KAITF,MAAa,KAAK,CAACC,EAAcF,CAAQ,IAAIC,IAAW,CAAC,OAC3DE,KAAW,IAGNA;AACT,GAKaC,KAAmB,CAACD,MAAsC;AACrE,QAAME,IAAoB,CAAA;AAE1B,SAAIF,IAAU,KAAoBE,EAAQ,KAAK,YAAY,GACvDF,IAAU,KAAsBE,EAAQ,KAAK,cAAc,GAC3DF,IAAU,KAAuBE,EAAQ,KAAK,eAAe,GAC7DF,IAAU,KAAqBE,EAAQ,KAAK,aAAa,GAEtDA;AACT,GAGaC,KAAoB,CAC/BC,GACAC,MACGA,EAAY,IAAIC,EAAWF,CAAE,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"clientFilterToQueryFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\n/**\n * Converts a datetime Filter to a nested QueryFilter with gte/lte conditions.\n * Returns null if no date conditions could be created.\n * Shared with other filter adapters (e.g. subtasksFilterAdapter).\n */\nexport const convertDateFilterToQueryFilter = (\n key: string,\n filter: { values?: FilterForQuery['values']; inverted?: boolean },\n): QueryFilter | null => {\n if (!filter.values || filter.values.length === 0) return null\n\n const dateConditions: QueryCondition[] = filter.values.flatMap((filterValue) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 0) : dateValues[0].id,\n })\n }\n\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 1) : dateValues[1].id,\n })\n }\n\n return conditions\n })\n\n if (dateConditions.length === 0) return null\n\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Cleared text attribs are stored as \"\" (not null), so nullness checks on text\n// fields must cover both states. queryFilterToClientFilter reverses these shapes.\nconst textEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'isnull' },\n { key, operator: 'eq', value: '' },\n ],\n operator: 'or',\n})\n\nconst textNotEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'notnull' },\n { key, operator: 'ne', value: '' },\n ],\n operator: 'and',\n})\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n const isTextField = filter.type === 'string' && !isListField\n\n // Handle different filter types\n if (hasSomeValue) {\n if (isTextField) {\n return filter.inverted ? textEmptyGroup(key) : textNotEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n if (isTextField) {\n return filter.inverted ? textNotEmptyGroup(key) : textEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n const dateQueryFilter = convertDateFilterToQueryFilter(key, filter)\n if (dateQueryFilter) return dateQueryFilter\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","convertDateFilterToQueryFilter","key","filter","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","clientFilterToQueryFilter","filters","f","convertFilterToCondition","textEmptyGroup","textNotEmptyGroup","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","isTextField","dateQueryFilter","customValues","nonCustomValues","type"],"mappings":"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"}
1
+ {"version":3,"file":"clientFilterToQueryFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport type { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\n/**\n * Converts a datetime Filter to a nested QueryFilter with gte/lte conditions.\n * Returns null if no date conditions could be created.\n * Shared with other filter adapters (e.g. subtasksFilterAdapter).\n */\nexport const convertDateFilterToQueryFilter = (\n key: string,\n filter: { values?: FilterForQuery['values']; inverted?: boolean },\n): QueryFilter | null => {\n if (!filter.values || filter.values.length === 0) return null\n\n const dateConditions: QueryCondition[] = filter.values.flatMap((filterValue) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 0) : dateValues[0].id,\n })\n }\n\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 1) : dateValues[1].id,\n })\n }\n\n return conditions\n })\n\n if (dateConditions.length === 0) return null\n\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Cleared text attribs are stored as \"\" (not null), so nullness checks on text\n// fields must cover both states. queryFilterToClientFilter reverses these shapes.\nconst textEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'isnull' },\n { key, operator: 'eq', value: '' },\n ],\n operator: 'or',\n})\n\nconst textNotEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'notnull' },\n { key, operator: 'ne', value: '' },\n ],\n operator: 'and',\n})\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n const isTextField = filter.type === 'string' && !isListField\n\n // Handle different filter types\n if (hasSomeValue) {\n if (isTextField) {\n return filter.inverted ? textEmptyGroup(key) : textNotEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n if (isTextField) {\n return filter.inverted ? textNotEmptyGroup(key) : textEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n const dateQueryFilter = convertDateFilterToQueryFilter(key, filter)\n if (dateQueryFilter) return dateQueryFilter\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","convertDateFilterToQueryFilter","key","filter","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","clientFilterToQueryFilter","filters","f","convertFilterToCondition","textEmptyGroup","textNotEmptyGroup","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","isTextField","dateQueryFilter","customValues","nonCustomValues","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clientFilterToQueryFilter.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\n/**\n * Converts a datetime Filter to a nested QueryFilter with gte/lte conditions.\n * Returns null if no date conditions could be created.\n * Shared with other filter adapters (e.g. subtasksFilterAdapter).\n */\nexport const convertDateFilterToQueryFilter = (\n key: string,\n filter: { values?: FilterForQuery['values']; inverted?: boolean },\n): QueryFilter | null => {\n if (!filter.values || filter.values.length === 0) return null\n\n const dateConditions: QueryCondition[] = filter.values.flatMap((filterValue) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 0) : dateValues[0].id,\n })\n }\n\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 1) : dateValues[1].id,\n })\n }\n\n return conditions\n })\n\n if (dateConditions.length === 0) return null\n\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Cleared text attribs are stored as \"\" (not null), so nullness checks on text\n// fields must cover both states. queryFilterToClientFilter reverses these shapes.\nconst textEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'isnull' },\n { key, operator: 'eq', value: '' },\n ],\n operator: 'or',\n})\n\nconst textNotEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'notnull' },\n { key, operator: 'ne', value: '' },\n ],\n operator: 'and',\n})\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n const isTextField = filter.type === 'string' && !isListField\n\n // Handle different filter types\n if (hasSomeValue) {\n if (isTextField) {\n return filter.inverted ? textEmptyGroup(key) : textNotEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n if (isTextField) {\n return filter.inverted ? textNotEmptyGroup(key) : textEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n const dateQueryFilter = convertDateFilterToQueryFilter(key, filter)\n if (dateQueryFilter) return dateQueryFilter\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","convertDateFilterToQueryFilter","key","filter","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","clientFilterToQueryFilter","filters","f","convertFilterToCondition","textEmptyGroup","textNotEmptyGroup","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","isTextField","dateQueryFilter","customValues","nonCustomValues","type"],"mappings":";;;AAIA,MAAMA,IAAU,WAiBHC,IAAiC,CAC5CC,GACAC,MACuB;AACvB,MAAI,CAACA,EAAO,UAAUA,EAAO,OAAO,WAAW,EAAG,QAAO;AAEzD,QAAMC,IAAmCD,EAAO,OAAO,QAAQ,CAACE,MAAgB;AAC9E,UAAMC,IAA+B,CAAA,GAC/BC,IAAaF,EAAY,QAEzBG,IAAWD,IAAa,CAAC,GAAG,IAC5BE,IAASF,IAAa,CAAC,GAAG,IAC1BG,IACJF,KAAYC,KAAUD,MAAaR,KAAWS,MAAWT,IACrDW,EAA0BH,GAAUC,CAAM,IAC1C;AAEN,WAAIF,IAAa,CAAC,MAAM,UAAaA,IAAa,CAAC,EAAE,OAAOP,KAC1DM,EAAW,KAAK;AAAA,MACd,KAAAJ;AAAA,MACA,UAAUC,EAAO,WAAW,QAAQ;AAAA,MACpC,OAAOO,IAAkBE,EAAoBF,EAAgB,IAAI,CAAC,IAAIH,EAAW,CAAC,EAAE;AAAA,IAAA,CACrF,GAGCA,IAAa,CAAC,MAAM,UAAaA,IAAa,CAAC,EAAE,OAAOP,KAC1DM,EAAW,KAAK;AAAA,MACd,KAAAJ;AAAA,MACA,UAAUC,EAAO,WAAW,QAAQ;AAAA,MACpC,OAAOO,IAAkBE,EAAoBF,EAAgB,IAAI,CAAC,IAAIH,EAAW,CAAC,EAAE;AAAA,IAAA,CACrF,GAGID;AAAA,EACT,CAAC;AAED,SAAIF,EAAe,WAAW,IAAU,OAEjC;AAAA,IACL,YAAYA;AAAA,IACZ,UAAUD,EAAO,WAAW,OAAO;AAAA,EAAA;AAEvC,GAEaU,IAA4B,CAACC,MAEpC,CAACA,KAAWA,EAAQ,WAAW,IAC1B,CAAA,IAUF;AAAA,EACL,YAPmDA,EAClD,OAAO,CAACC,MAAM,CAAC,CAACA,EAAE,QAAQ,MAAM,EAChC,OAAO,CAACA,MAAMA,EAAE,OAAO,WAAW,EAClC,QAAQ,CAACZ,MAAWa,EAAyBb,CAAM,CAAC;AAAA,EAKrD,UAAU;AAAA,GAMRc,IAAiB,CAACf,OAA8B;AAAA,EACpD,YAAY;AAAA,IACV,EAAE,KAAAA,GAAK,UAAU,SAAA;AAAA,IACjB,EAAE,KAAAA,GAAK,UAAU,MAAM,OAAO,GAAA;AAAA,EAAG;AAAA,EAEnC,UAAU;AACZ,IAEMgB,IAAoB,CAAChB,OAA8B;AAAA,EACvD,YAAY;AAAA,IACV,EAAE,KAAAA,GAAK,UAAU,UAAA;AAAA,IACjB,EAAE,KAAAA,GAAK,UAAU,MAAM,OAAO,GAAA;AAAA,EAAG;AAAA,EAEnC,UAAU;AACZ,IAGMc,IAA2B,CAACb,MAAyD;AAEzF,QAAMD,IAAMiB,EAAgBhB,EAAO,EAAE;AAGrC,MAAIiB;AAGJ,QAAMC,IACJ,MAAM,QAAQlB,EAAO,MAAM,KAAKA,EAAO,OAAO,IAAI,CAACmB,MAAMA,EAAE,EAAE,GAAG,SAAS,UAAU,GAC/EC,IACJ,MAAM,QAAQpB,EAAO,MAAM,KAAKA,EAAO,OAAO,IAAI,CAACmB,MAAMA,EAAE,EAAE,GAAG,SAAS,SAAS;AAEpF,EAAInB,EAAO,UAAUA,EAAO,OAAO,SAAS,MACtCA,EAAO,eAETiB,IAAQI,EAAmBrB,EAAO,OAAO,CAAC,EAAE,IAAIA,EAAO,IAAI,IAG3DiB,IAAQjB,EAAO,OAAO,IAAI,CAACmB,MAAME,EAAmBF,EAAE,IAAInB,EAAO,IAAI,CAAC;AAK1E,QAAMsB,IACJtB,EAAO,MAAM,WAAW,UAAU,KAAKD,EAAI,SAAS,MAAM,KAAKA,EAAI,SAAS,WAAW,GACnFwB,IAAcvB,EAAO,SAAS,YAC9BwB,IAAiBxB,EAAO,SAAS,WAEjCyB,IACJ1B,EAAI,SAAS,SAAS,KAAKC,EAAO,SAAS,aAAaA,EAAO,SAAS,SAGpE0B,IAAkB1B,EAAO,UAAUA,EAAO,OAAO,KAAK,CAACmB,MAAMA,EAAE,aAAa,EAAI;AAGtF,MAAIQ,IAAuC;AAG3C,MAAIV,MAAU;AACZ,WAAAU,IAAW3B,EAAO,WAAW,YAAY,UAClC,EAAE,KAAAD,GAAK,UAAA4B,EAAA;AAGhB,QAAMC,IAAc5B,EAAO,SAAS,YAAY,CAACsB;AAGjD,MAAIJ,GAAc;AAChB,QAAIU;AACF,aAAO5B,EAAO,WAAWc,EAAef,CAAG,IAAIgB,EAAkBhB,CAAG;AAGtE,IAAAkB,IAAQK,IAAc,CAAA,IAAK,QAC3BK,IAAWL,IACPtB,EAAO,WACL,OACA,OACFA,EAAO,WACP,WACA;AAAA,EACN,WAAWoB,GAAY;AACrB,QAAIQ;AACF,aAAO5B,EAAO,WAAWe,EAAkBhB,CAAG,IAAIe,EAAef,CAAG;AAGtE,IAAAkB,IAAQK,IAAc,CAAA,IAAK,QAC3BK,IAAWL,IACPtB,EAAO,WACL,OACA,OACFA,EAAO,WACP,YACA;AAAA,EACN,WAAWsB;AACT,IAAItB,EAAO,WACT2B,IAAW3B,EAAO,aAAa,QAAQ,gBAAgB,gBAEvD2B,IAAW3B,EAAO,aAAa,QAAQ,gBAAgB;AAAA,WAEhDuB,GAAa;AACtB,UAAMM,IAAkB/B,EAA+BC,GAAKC,CAAM;AAClE,QAAI6B,EAAiB,QAAOA;AAE5B,IAAAF,IAAW3B,EAAO,WAAW,OAAO;AAAA,EACtC,WAAWwB;AACT,IAAAG,IAAW3B,EAAO,WAAW,OAAO;AAAA,WAC3B0B,KAAmB,CAACJ,KAAe,CAACG;AAK7C,QAAI,CAACzB,EAAO,UAAUA,EAAO,OAAO,WAAW;AAE7C,MAAA2B,IAAW3B,EAAO,WAAW,UAAU;AAAA,SAClC;AAEL,YAAM8B,IAAe9B,EAAO,OAAO,OAAO,CAACmB,MAAMA,EAAE,aAAa,EAAI,GAC9DY,IAAkB/B,EAAO,OAAO,OAAO,CAACmB,MAAM,CAACA,EAAE,QAAQ;AAG/D,UAAIY,EAAgB,WAAW;AAC7B,YAAID,EAAa,WAAW;AAE1B,UAAAH,IAAW,QACXV,IAAQ,IAAIa,EAAa,CAAC,EAAE,EAAE;AAAA;AAS9B,iBAAO;AAAA,YACL,YAPmCA,EAAa,IAAI,CAACX,OAAO;AAAA,cAC5D,KAAApB;AAAA,cACA,UAAU;AAAA,cACV,OAAO,IAAIoB,EAAE,EAAE;AAAA,YAAA,EACf;AAAA,YAIA,UAAUnB,EAAO,WAAW,QAAQ;AAAA,UAAA;AAAA,WAGnC;AAGL,cAAMG,IAA+B,CAAA;AAGrC,eAAI4B,EAAgB,SAAS,KAC3B5B,EAAW,KAAK;AAAA,UACd,KAAAJ;AAAA,UACA,UAAUC,EAAO,WAAW,UAAU;AAAA,UACtC,OAAO+B,EAAgB;AAAA,YAAI,CAACZ,MAC1BE,EAAmBF,EAAE,IAAInB,EAAO,IAAI;AAAA,UAAA;AAAA,QACtC,CACD,GAIH8B,EAAa,QAAQ,CAACX,MAAM;AAC1B,UAAAhB,EAAW,KAAK;AAAA,YACd,KAAAJ;AAAA,YACA,UAAU;AAAA,YACV,OAAO,IAAIoB,EAAE,EAAE;AAAA,UAAA,CAChB;AAAA,QACH,CAAC,GAEM;AAAA,UACL,YAAAhB;AAAA,UACA,UAAUH,EAAO,WAAW,QAAQ;AAAA,QAAA;AAAA,MAExC;AAAA,IACF;AAAA;AAGA,IAAA2B,IAAW3B,EAAO,WAAW,UAAU;AAGzC,SAAO,EAAE,KAAAD,GAAK,OAAAkB,GAAO,UAAAU,EAAA;AACvB,GAGMN,IAAqB,CAACJ,GAAee,MAA6C;AACtF,MAAI,CAACA,EAAM,QAAOf;AAElB,UAAQe,GAAA;AAAA,IACN,KAAK;AACH,aAAO,SAASf,GAAO,EAAE;AAAA,IAC3B,KAAK;AACH,aAAO,WAAWA,CAAK;AAAA,IACzB,KAAK;AACH,aAAOA,EAAM,kBAAkB;AAAA,IACjC;AACE,aAAOA;AAAA,EAAA;AAEb;"}
1
+ {"version":3,"file":"clientFilterToQueryFilter.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.ts"],"sourcesContent":["import { getFilterFromId } from '@ynput/ayon-react-components'\nimport type { QueryCondition, QueryFilter } from '../types/operations'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { createRelativeValue } from './expandRelativeDates'\nconst NO_DATE = 'no-date'\n\n// New type that cherry picks only the needed fields from Filter\nexport type FilterForQuery = {\n id: string\n values?: { id: string; values?: { id: string }[]; isCustom?: boolean }[]\n type?: string\n singleSelect?: boolean\n inverted?: boolean\n operator?: string\n}\n\n/**\n * Converts a datetime Filter to a nested QueryFilter with gte/lte conditions.\n * Returns null if no date conditions could be created.\n * Shared with other filter adapters (e.g. subtasksFilterAdapter).\n */\nexport const convertDateFilterToQueryFilter = (\n key: string,\n filter: { values?: FilterForQuery['values']; inverted?: boolean },\n): QueryFilter | null => {\n if (!filter.values || filter.values.length === 0) return null\n\n const dateConditions: QueryCondition[] = filter.values.flatMap((filterValue) => {\n const conditions: QueryCondition[] = []\n const dateValues = filterValue.values\n\n const startISO = dateValues?.[0]?.id\n const endISO = dateValues?.[1]?.id\n const relativePattern =\n startISO && endISO && startISO !== NO_DATE && endISO !== NO_DATE\n ? detectRelativeDatePattern(startISO, endISO)\n : null\n\n if (dateValues?.[0] !== undefined && dateValues?.[0].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'lte' : 'gte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 0) : dateValues[0].id,\n })\n }\n\n if (dateValues?.[1] !== undefined && dateValues?.[1].id !== NO_DATE) {\n conditions.push({\n key,\n operator: filter.inverted ? 'gte' : 'lte',\n value: relativePattern ? createRelativeValue(relativePattern.id, 1) : dateValues[1].id,\n })\n }\n\n return conditions\n })\n\n if (dateConditions.length === 0) return null\n\n return {\n conditions: dateConditions,\n operator: filter.inverted ? 'or' : 'and',\n } as QueryFilter\n}\n\nexport const clientFilterToQueryFilter = (filters: FilterForQuery[]): QueryFilter => {\n // If there are no filters, return an empty filter\n if (!filters || filters.length === 0) {\n return {}\n }\n\n // Process each filter as its own condition\n const conditions: (QueryCondition | QueryFilter)[] = filters\n .filter((f) => !!f.values?.length)\n .filter((f) => f.id !== 'hierarchy') // remove hierarchy filter as it is handled separately\n .flatMap((filter) => convertFilterToCondition(filter))\n\n // Return the QueryFilter with all conditions combined with AND\n return {\n conditions,\n operator: 'and',\n }\n}\n\n// Cleared text attribs are stored as \"\" (not null), so nullness checks on text\n// fields must cover both states. queryFilterToClientFilter reverses these shapes.\nconst textEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'isnull' },\n { key, operator: 'eq', value: '' },\n ],\n operator: 'or',\n})\n\nconst textNotEmptyGroup = (key: string): QueryFilter => ({\n conditions: [\n { key, operator: 'notnull' },\n { key, operator: 'ne', value: '' },\n ],\n operator: 'and',\n})\n\n// Helper function to convert a single Filter to a QueryCondition\nconst convertFilterToCondition = (filter: FilterForQuery): QueryCondition | QueryFilter => {\n // Extract key from filter ID (split by underscore if needed)\n const key = getFilterFromId(filter.id)\n\n // Handle values based on filter type\n let value: QueryCondition['value']\n\n // there is any value\n const hasSomeValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('hasValue')\n const hasNoValue =\n Array.isArray(filter.values) && filter.values.map((v) => v.id)?.includes('noValue')\n\n if (filter.values && filter.values.length > 0) {\n if (filter.singleSelect) {\n // @ts-expect-error\n value = convertValueByType(filter.values[0].id, filter.type)\n } else {\n // @ts-expect-error\n value = filter.values.map((v) => convertValueByType(v.id, filter.type))\n }\n }\n\n // Determine if this is likely a list field based on filter type\n const isListField =\n filter.type?.startsWith('list_of_') || key.includes('tags') || key.includes('assignees')\n const isDateField = filter.type === 'datetime'\n const isBooleanField = filter.type === 'boolean'\n // Version field is a special numeric field that should use exact matching\n const isNumberField =\n key.endsWith('version') || filter.type === 'integer' || filter.type === 'float'\n\n // Check if any of the values are custom (user-entered values)\n const hasCustomValues = filter.values && filter.values.some((v) => v.isCustom === true)\n\n // Determine the appropriate operator based on filter properties and type\n let operator: QueryCondition['operator'] = 'eq'\n\n // Handling NULL values\n if (value === undefined) {\n operator = filter.inverted ? 'notnull' : 'isnull'\n return { key, operator }\n }\n\n const isTextField = filter.type === 'string' && !isListField\n\n // Handle different filter types\n if (hasSomeValue) {\n if (isTextField) {\n return filter.inverted ? textEmptyGroup(key) : textNotEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should not be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'eq'\n : 'ne'\n : filter.inverted\n ? 'isnull'\n : 'notnull'\n } else if (hasNoValue) {\n if (isTextField) {\n return filter.inverted ? textNotEmptyGroup(key) : textEmptyGroup(key)\n }\n // we set the value to the empty state and then say it should be that\n value = isListField ? [] : undefined\n operator = isListField\n ? filter.inverted\n ? 'ne'\n : 'eq'\n : filter.inverted\n ? 'notnull'\n : 'isnull'\n } else if (isListField) {\n if (filter.inverted) {\n operator = filter.operator === 'AND' ? 'excludesall' : 'excludesany'\n } else {\n operator = filter.operator === 'AND' ? 'includesall' : 'includesany'\n }\n } else if (isDateField) {\n const dateQueryFilter = convertDateFilterToQueryFilter(key, filter)\n if (dateQueryFilter) return dateQueryFilter\n // If no date conditions were created, fall back to a basic equality check\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (isBooleanField) {\n operator = filter.inverted ? 'ne' : 'eq'\n } else if (hasCustomValues && !isListField && !isNumberField) {\n // Handle custom values with partial matching using LIKE operator\n // If we have custom values, we need to use LIKE operator with wildcards for partial matching\n // Note: Version fields and numeric fields use exact matching (eq/in) instead\n\n if (!filter.values || filter.values.length === 0) {\n // This shouldn't happen but handle it gracefully\n operator = filter.inverted ? 'notin' : 'in'\n } else {\n // Separate custom and non-custom values\n const customValues = filter.values.filter((v) => v.isCustom === true)\n const nonCustomValues = filter.values.filter((v) => !v.isCustom)\n\n // If we only have custom values\n if (nonCustomValues.length === 0) {\n if (customValues.length === 1) {\n // Single custom value - use simple LIKE operator\n operator = 'like'\n value = `%${customValues[0].id}%`\n } else {\n // Multiple custom values - create OR conditions for each\n const conditions: QueryCondition[] = customValues.map((v) => ({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n }))\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n } else {\n // We have both custom and non-custom values\n // Create separate conditions for each type\n const conditions: QueryCondition[] = []\n\n // Add non-custom values condition\n if (nonCustomValues.length > 0) {\n conditions.push({\n key,\n operator: filter.inverted ? 'notin' : 'in',\n value: nonCustomValues.map((v) =>\n convertValueByType(v.id, filter.type),\n ) as QueryCondition['value'],\n })\n }\n\n // Add custom values conditions (each needs its own LIKE)\n customValues.forEach((v) => {\n conditions.push({\n key,\n operator: 'like' as QueryCondition['operator'],\n value: `%${v.id}%`,\n })\n })\n\n return {\n conditions,\n operator: filter.inverted ? 'and' : 'or',\n } as QueryFilter\n }\n }\n } else {\n // DEFAULT for other scalar fields\n operator = filter.inverted ? 'notin' : 'in'\n }\n\n return { key, value, operator }\n}\n\n// Helper function to convert values based on the filter type\nconst convertValueByType = (value: string, type?: string): string | number | boolean => {\n if (!type) return value\n\n switch (type) {\n case 'integer':\n return parseInt(value, 10)\n case 'float':\n return parseFloat(value)\n case 'boolean':\n return value.toLowerCase() === 'true'\n default:\n return value\n }\n}\n\nexport default clientFilterToQueryFilter\n"],"names":["NO_DATE","convertDateFilterToQueryFilter","key","filter","dateConditions","filterValue","conditions","dateValues","startISO","endISO","relativePattern","detectRelativeDatePattern","createRelativeValue","clientFilterToQueryFilter","filters","f","convertFilterToCondition","textEmptyGroup","textNotEmptyGroup","getFilterFromId","value","hasSomeValue","v","hasNoValue","convertValueByType","isListField","isDateField","isBooleanField","isNumberField","hasCustomValues","operator","isTextField","dateQueryFilter","customValues","nonCustomValues","type"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getEntityViewerIds.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getEntityViewerIds.ts"],"sourcesContent":["import { EntityMap } from '.'\n\n// gets parents id of an entity when using the viewer\nexport const getEntityViewierIds = (entity: EntityMap): { [id: string]: string } => {\n const targetIds = {\n [entity.entityType + 'Id']: entity.entityId,\n }\n // if version, also include productId and folderId\n if (entity.entityType === 'version') {\n if ('product' in entity && entity.product?.id) {\n targetIds.productId = entity.product?.id\n if ('folder' in entity.product && entity.product?.folder?.id) {\n targetIds.folderId = entity.product?.folder.id\n }\n }\n }\n return targetIds\n}\n"],"names":["getEntityViewierIds","entity","targetIds"],"mappings":"gFAGO,MAAMA,EAAuBC,GAAgD,CAClF,MAAMC,EAAY,CAChB,CAACD,EAAO,WAAa,IAAI,EAAGA,EAAO,QAAA,EAGrC,OAAIA,EAAO,aAAe,WACpB,YAAaA,GAAUA,EAAO,SAAS,KACzCC,EAAU,UAAYD,EAAO,SAAS,GAClC,WAAYA,EAAO,SAAWA,EAAO,SAAS,QAAQ,KACxDC,EAAU,SAAWD,EAAO,SAAS,OAAO,KAI3CC,CACT"}
1
+ {"version":3,"file":"getEntityViewerIds.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getEntityViewerIds.ts"],"sourcesContent":["import type { EntityMap } from '../types/table'\n\n// gets parents id of an entity when using the viewer\nexport const getEntityViewierIds = (entity: EntityMap): { [id: string]: string } => {\n const targetIds = {\n [entity.entityType + 'Id']: entity.entityId,\n }\n // if version, also include productId and folderId\n if (entity.entityType === 'version') {\n if ('product' in entity && entity.product?.id) {\n targetIds.productId = entity.product?.id\n if ('folder' in entity.product && entity.product?.folder?.id) {\n targetIds.folderId = entity.product?.folder.id\n }\n }\n }\n return targetIds\n}\n"],"names":["getEntityViewierIds","entity","targetIds"],"mappings":"gFAGO,MAAMA,EAAuBC,GAAgD,CAClF,MAAMC,EAAY,CAChB,CAACD,EAAO,WAAa,IAAI,EAAGA,EAAO,QAAA,EAGrC,OAAIA,EAAO,aAAe,WACpB,YAAaA,GAAUA,EAAO,SAAS,KACzCC,EAAU,UAAYD,EAAO,SAAS,GAClC,WAAYA,EAAO,SAAWA,EAAO,SAAS,QAAQ,KACxDC,EAAU,SAAWD,EAAO,SAAS,OAAO,KAI3CC,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"getEntityViewerIds.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getEntityViewerIds.ts"],"sourcesContent":["import { EntityMap } from '.'\n\n// gets parents id of an entity when using the viewer\nexport const getEntityViewierIds = (entity: EntityMap): { [id: string]: string } => {\n const targetIds = {\n [entity.entityType + 'Id']: entity.entityId,\n }\n // if version, also include productId and folderId\n if (entity.entityType === 'version') {\n if ('product' in entity && entity.product?.id) {\n targetIds.productId = entity.product?.id\n if ('folder' in entity.product && entity.product?.folder?.id) {\n targetIds.folderId = entity.product?.folder.id\n }\n }\n }\n return targetIds\n}\n"],"names":["getEntityViewierIds","entity","targetIds"],"mappings":"AAGO,MAAMA,IAAsB,CAACC,MAAgD;AAClF,QAAMC,IAAY;AAAA,IAChB,CAACD,EAAO,aAAa,IAAI,GAAGA,EAAO;AAAA,EAAA;AAGrC,SAAIA,EAAO,eAAe,aACpB,aAAaA,KAAUA,EAAO,SAAS,OACzCC,EAAU,YAAYD,EAAO,SAAS,IAClC,YAAYA,EAAO,WAAWA,EAAO,SAAS,QAAQ,OACxDC,EAAU,WAAWD,EAAO,SAAS,OAAO,MAI3CC;AACT;"}
1
+ {"version":3,"file":"getEntityViewerIds.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getEntityViewerIds.ts"],"sourcesContent":["import type { EntityMap } from '../types/table'\n\n// gets parents id of an entity when using the viewer\nexport const getEntityViewierIds = (entity: EntityMap): { [id: string]: string } => {\n const targetIds = {\n [entity.entityType + 'Id']: entity.entityId,\n }\n // if version, also include productId and folderId\n if (entity.entityType === 'version') {\n if ('product' in entity && entity.product?.id) {\n targetIds.productId = entity.product?.id\n if ('folder' in entity.product && entity.product?.folder?.id) {\n targetIds.folderId = entity.product?.folder.id\n }\n }\n }\n return targetIds\n}\n"],"names":["getEntityViewierIds","entity","targetIds"],"mappings":"AAGO,MAAMA,IAAsB,CAACC,MAAgD;AAClF,QAAMC,IAAY;AAAA,IAChB,CAACD,EAAO,aAAa,IAAI,GAAGA,EAAO;AAAA,EAAA;AAGrC,SAAIA,EAAO,eAAe,aACpB,aAAaA,KAAUA,EAAO,SAAS,OACzCC,EAAU,YAAYD,EAAO,SAAS,IAClC,YAAYA,EAAO,WAAWA,EAAO,SAAS,QAAQ,OACxDC,EAAU,WAAWD,EAAO,SAAS,OAAO,MAI3CC;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderIdsToQueryFromExpanded.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.ts"],"sourcesContent":["import { ProjectFoldersContextValue } from '@shared/context'\nimport { ExpandedState } from '@tanstack/react-table'\n\nexport const getFolderIdsToQueryFromExpanded = (props: {\n expanded: ExpandedState\n expandedParentIds: string[]\n selectedFolders: string[]\n excludeSelectedFolders: boolean\n getFolderById: ProjectFoldersContextValue['getFolderById']\n showHierarchy: boolean\n}) => {\n const {\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n showHierarchy,\n } = props\n const expandedMap = expanded as Record<string, boolean>\n const memoVisibility = new Map<string, boolean>()\n\n const isFolderVisible = (id: string): boolean => {\n // If visibility for this specific branch path was already calculated, return it instantly\n if (memoVisibility.has(id)) return memoVisibility.get(id)!\n\n const folder = getFolderById(id)\n if (!folder) {\n memoVisibility.set(id, false)\n return false\n }\n\n const parentId = folder.parentId as string\n\n // Check if this folder acts as a boundary root from the slicer selection\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(id)\n\n if (isRootFromSlicer) {\n memoVisibility.set(id, true)\n return true\n }\n\n // Top-level root folders (no parent) are always visible IF there is no slicer selection\n if (!parentId) {\n const isVisible = selectedFolders.length === 0\n memoVisibility.set(id, isVisible)\n return isVisible\n }\n\n // If the parent folder is not expanded, this folder is NOT visible (only for tree table hierarchy)\n if (showHierarchy) {\n // Chain step: Visible ONLY if the immediate parent is expanded AND that parent path is visible\n const visible = expandedMap[parentId] === true && isFolderVisible(parentId)\n\n // Cache the result to protect sibling lookups from re-walking this shared ancestral path\n memoVisibility.set(id, visible)\n return visible\n } else {\n return true\n }\n }\n\n // We ONLY loop over the expanded folder IDs, never the full project folder array!\n return expandedParentIds.filter((id) => isFolderVisible(id))\n}\n"],"names":["getFolderIdsToQueryFromExpanded","props","expanded","expandedParentIds","selectedFolders","excludeSelectedFolders","getFolderById","showHierarchy","expandedMap","memoVisibility","isFolderVisible","id","folder","parentId","isVisible","visible"],"mappings":"gFAGO,MAAMA,EAAmCC,GAO1C,CACJ,KAAM,CACJ,SAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,cAAAC,EACA,cAAAC,CAAA,EACEN,EACEO,EAAcN,EACdO,MAAqB,IAErBC,EAAmBC,GAAwB,CAE/C,GAAIF,EAAe,IAAIE,CAAE,EAAG,OAAOF,EAAe,IAAIE,CAAE,EAExD,MAAMC,EAASN,EAAcK,CAAE,EAC/B,GAAI,CAACC,EACH,OAAAH,EAAe,IAAIE,EAAI,EAAK,EACrB,GAGT,MAAME,EAAWD,EAAO,SAOxB,GAJyBP,EACrBD,EAAgB,SAASS,CAAQ,EACjCT,EAAgB,SAASO,CAAE,EAG7B,OAAAF,EAAe,IAAIE,EAAI,EAAI,EACpB,GAIT,GAAI,CAACE,EAAU,CACb,MAAMC,EAAYV,EAAgB,SAAW,EAC7C,OAAAK,EAAe,IAAIE,EAAIG,CAAS,EACzBA,CACT,CAGA,GAAIP,EAAe,CAEjB,MAAMQ,EAAUP,EAAYK,CAAQ,IAAM,IAAQH,EAAgBG,CAAQ,EAG1E,OAAAJ,EAAe,IAAIE,EAAII,CAAO,EACvBA,CACT,KACE,OAAO,EAEX,EAGA,OAAOZ,EAAkB,OAAQQ,GAAOD,EAAgBC,CAAE,CAAC,CAC7D"}
1
+ {"version":3,"file":"getFolderIdsToQueryFromExpanded.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.ts"],"sourcesContent":["import type { ProjectFoldersContextValue } from '@shared/context/ProjectFoldersContext'\nimport { ExpandedState } from '@tanstack/react-table'\n\nexport const getFolderIdsToQueryFromExpanded = (props: {\n expanded: ExpandedState\n expandedParentIds: string[]\n selectedFolders: string[]\n excludeSelectedFolders: boolean\n getFolderById: ProjectFoldersContextValue['getFolderById']\n showHierarchy: boolean\n}) => {\n const {\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n showHierarchy,\n } = props\n const expandedMap = expanded as Record<string, boolean>\n const memoVisibility = new Map<string, boolean>()\n\n const isFolderVisible = (id: string): boolean => {\n // If visibility for this specific branch path was already calculated, return it instantly\n if (memoVisibility.has(id)) return memoVisibility.get(id)!\n\n const folder = getFolderById(id)\n if (!folder) {\n memoVisibility.set(id, false)\n return false\n }\n\n const parentId = folder.parentId as string\n\n // Check if this folder acts as a boundary root from the slicer selection\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(id)\n\n if (isRootFromSlicer) {\n memoVisibility.set(id, true)\n return true\n }\n\n // Top-level root folders (no parent) are always visible IF there is no slicer selection\n if (!parentId) {\n const isVisible = selectedFolders.length === 0\n memoVisibility.set(id, isVisible)\n return isVisible\n }\n\n // If the parent folder is not expanded, this folder is NOT visible (only for tree table hierarchy)\n if (showHierarchy) {\n // Chain step: Visible ONLY if the immediate parent is expanded AND that parent path is visible\n const visible = expandedMap[parentId] === true && isFolderVisible(parentId)\n\n // Cache the result to protect sibling lookups from re-walking this shared ancestral path\n memoVisibility.set(id, visible)\n return visible\n } else {\n return true\n }\n }\n\n // We ONLY loop over the expanded folder IDs, never the full project folder array!\n return expandedParentIds.filter((id) => isFolderVisible(id))\n}\n"],"names":["getFolderIdsToQueryFromExpanded","props","expanded","expandedParentIds","selectedFolders","excludeSelectedFolders","getFolderById","showHierarchy","expandedMap","memoVisibility","isFolderVisible","id","folder","parentId","isVisible","visible"],"mappings":"gFAGO,MAAMA,EAAmCC,GAO1C,CACJ,KAAM,CACJ,SAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,cAAAC,EACA,cAAAC,CAAA,EACEN,EACEO,EAAcN,EACdO,MAAqB,IAErBC,EAAmBC,GAAwB,CAE/C,GAAIF,EAAe,IAAIE,CAAE,EAAG,OAAOF,EAAe,IAAIE,CAAE,EAExD,MAAMC,EAASN,EAAcK,CAAE,EAC/B,GAAI,CAACC,EACH,OAAAH,EAAe,IAAIE,EAAI,EAAK,EACrB,GAGT,MAAME,EAAWD,EAAO,SAOxB,GAJyBP,EACrBD,EAAgB,SAASS,CAAQ,EACjCT,EAAgB,SAASO,CAAE,EAG7B,OAAAF,EAAe,IAAIE,EAAI,EAAI,EACpB,GAIT,GAAI,CAACE,EAAU,CACb,MAAMC,EAAYV,EAAgB,SAAW,EAC7C,OAAAK,EAAe,IAAIE,EAAIG,CAAS,EACzBA,CACT,CAGA,GAAIP,EAAe,CAEjB,MAAMQ,EAAUP,EAAYK,CAAQ,IAAM,IAAQH,EAAgBG,CAAQ,EAG1E,OAAAJ,EAAe,IAAIE,EAAII,CAAO,EACvBA,CACT,KACE,OAAO,EAEX,EAGA,OAAOZ,EAAkB,OAAQQ,GAAOD,EAAgBC,CAAE,CAAC,CAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderIdsToQueryFromExpanded.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.ts"],"sourcesContent":["import { ProjectFoldersContextValue } from '@shared/context'\nimport { ExpandedState } from '@tanstack/react-table'\n\nexport const getFolderIdsToQueryFromExpanded = (props: {\n expanded: ExpandedState\n expandedParentIds: string[]\n selectedFolders: string[]\n excludeSelectedFolders: boolean\n getFolderById: ProjectFoldersContextValue['getFolderById']\n showHierarchy: boolean\n}) => {\n const {\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n showHierarchy,\n } = props\n const expandedMap = expanded as Record<string, boolean>\n const memoVisibility = new Map<string, boolean>()\n\n const isFolderVisible = (id: string): boolean => {\n // If visibility for this specific branch path was already calculated, return it instantly\n if (memoVisibility.has(id)) return memoVisibility.get(id)!\n\n const folder = getFolderById(id)\n if (!folder) {\n memoVisibility.set(id, false)\n return false\n }\n\n const parentId = folder.parentId as string\n\n // Check if this folder acts as a boundary root from the slicer selection\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(id)\n\n if (isRootFromSlicer) {\n memoVisibility.set(id, true)\n return true\n }\n\n // Top-level root folders (no parent) are always visible IF there is no slicer selection\n if (!parentId) {\n const isVisible = selectedFolders.length === 0\n memoVisibility.set(id, isVisible)\n return isVisible\n }\n\n // If the parent folder is not expanded, this folder is NOT visible (only for tree table hierarchy)\n if (showHierarchy) {\n // Chain step: Visible ONLY if the immediate parent is expanded AND that parent path is visible\n const visible = expandedMap[parentId] === true && isFolderVisible(parentId)\n\n // Cache the result to protect sibling lookups from re-walking this shared ancestral path\n memoVisibility.set(id, visible)\n return visible\n } else {\n return true\n }\n }\n\n // We ONLY loop over the expanded folder IDs, never the full project folder array!\n return expandedParentIds.filter((id) => isFolderVisible(id))\n}\n"],"names":["getFolderIdsToQueryFromExpanded","props","expanded","expandedParentIds","selectedFolders","excludeSelectedFolders","getFolderById","showHierarchy","expandedMap","memoVisibility","isFolderVisible","id","folder","parentId","isVisible","visible"],"mappings":"AAGO,MAAMA,IAAkC,CAACC,MAO1C;AACJ,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACEN,GACEO,IAAcN,GACdO,wBAAqB,IAAA,GAErBC,IAAkB,CAACC,MAAwB;AAE/C,QAAIF,EAAe,IAAIE,CAAE,EAAG,QAAOF,EAAe,IAAIE,CAAE;AAExD,UAAMC,IAASN,EAAcK,CAAE;AAC/B,QAAI,CAACC;AACH,aAAAH,EAAe,IAAIE,GAAI,EAAK,GACrB;AAGT,UAAME,IAAWD,EAAO;AAOxB,QAJyBP,IACrBD,EAAgB,SAASS,CAAQ,IACjCT,EAAgB,SAASO,CAAE;AAG7B,aAAAF,EAAe,IAAIE,GAAI,EAAI,GACpB;AAIT,QAAI,CAACE,GAAU;AACb,YAAMC,IAAYV,EAAgB,WAAW;AAC7C,aAAAK,EAAe,IAAIE,GAAIG,CAAS,GACzBA;AAAA,IACT;AAGA,QAAIP,GAAe;AAEjB,YAAMQ,IAAUP,EAAYK,CAAQ,MAAM,MAAQH,EAAgBG,CAAQ;AAG1E,aAAAJ,EAAe,IAAIE,GAAII,CAAO,GACvBA;AAAA,IACT;AACE,aAAO;AAAA,EAEX;AAGA,SAAOZ,EAAkB,OAAO,CAACQ,MAAOD,EAAgBC,CAAE,CAAC;AAC7D;"}
1
+ {"version":3,"file":"getFolderIdsToQueryFromExpanded.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.ts"],"sourcesContent":["import type { ProjectFoldersContextValue } from '@shared/context/ProjectFoldersContext'\nimport { ExpandedState } from '@tanstack/react-table'\n\nexport const getFolderIdsToQueryFromExpanded = (props: {\n expanded: ExpandedState\n expandedParentIds: string[]\n selectedFolders: string[]\n excludeSelectedFolders: boolean\n getFolderById: ProjectFoldersContextValue['getFolderById']\n showHierarchy: boolean\n}) => {\n const {\n expanded,\n expandedParentIds,\n selectedFolders,\n excludeSelectedFolders,\n getFolderById,\n showHierarchy,\n } = props\n const expandedMap = expanded as Record<string, boolean>\n const memoVisibility = new Map<string, boolean>()\n\n const isFolderVisible = (id: string): boolean => {\n // If visibility for this specific branch path was already calculated, return it instantly\n if (memoVisibility.has(id)) return memoVisibility.get(id)!\n\n const folder = getFolderById(id)\n if (!folder) {\n memoVisibility.set(id, false)\n return false\n }\n\n const parentId = folder.parentId as string\n\n // Check if this folder acts as a boundary root from the slicer selection\n const isRootFromSlicer = excludeSelectedFolders\n ? selectedFolders.includes(parentId)\n : selectedFolders.includes(id)\n\n if (isRootFromSlicer) {\n memoVisibility.set(id, true)\n return true\n }\n\n // Top-level root folders (no parent) are always visible IF there is no slicer selection\n if (!parentId) {\n const isVisible = selectedFolders.length === 0\n memoVisibility.set(id, isVisible)\n return isVisible\n }\n\n // If the parent folder is not expanded, this folder is NOT visible (only for tree table hierarchy)\n if (showHierarchy) {\n // Chain step: Visible ONLY if the immediate parent is expanded AND that parent path is visible\n const visible = expandedMap[parentId] === true && isFolderVisible(parentId)\n\n // Cache the result to protect sibling lookups from re-walking this shared ancestral path\n memoVisibility.set(id, visible)\n return visible\n } else {\n return true\n }\n }\n\n // We ONLY loop over the expanded folder IDs, never the full project folder array!\n return expandedParentIds.filter((id) => isFolderVisible(id))\n}\n"],"names":["getFolderIdsToQueryFromExpanded","props","expanded","expandedParentIds","selectedFolders","excludeSelectedFolders","getFolderById","showHierarchy","expandedMap","memoVisibility","isFolderVisible","id","folder","parentId","isVisible","visible"],"mappings":"AAGO,MAAMA,IAAkC,CAACC,MAO1C;AACJ,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAAC;AAAA,EAAA,IACEN,GACEO,IAAcN,GACdO,wBAAqB,IAAA,GAErBC,IAAkB,CAACC,MAAwB;AAE/C,QAAIF,EAAe,IAAIE,CAAE,EAAG,QAAOF,EAAe,IAAIE,CAAE;AAExD,UAAMC,IAASN,EAAcK,CAAE;AAC/B,QAAI,CAACC;AACH,aAAAH,EAAe,IAAIE,GAAI,EAAK,GACrB;AAGT,UAAME,IAAWD,EAAO;AAOxB,QAJyBP,IACrBD,EAAgB,SAASS,CAAQ,IACjCT,EAAgB,SAASO,CAAE;AAG7B,aAAAF,EAAe,IAAIE,GAAI,EAAI,GACpB;AAIT,QAAI,CAACE,GAAU;AACb,YAAMC,IAAYV,EAAgB,WAAW;AAC7C,aAAAK,EAAe,IAAIE,GAAIG,CAAS,GACzBA;AAAA,IACT;AAGA,QAAIP,GAAe;AAEjB,YAAMQ,IAAUP,EAAYK,CAAQ,MAAM,MAAQH,EAAgBG,CAAQ;AAG1E,aAAAJ,EAAe,IAAIE,GAAII,CAAO,GACvBA;AAAA,IACT;AACE,aAAO;AAAA,EAEX;AAGA,SAAOZ,EAAkB,OAAO,CAACQ,MAAOD,EAAgBC,CAAE,CAAC;AAC7D;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTableFieldOptions.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTableFieldOptions.ts"],"sourcesContent":["import { ProductType } from '@shared/api'\nimport { BuiltInFieldOptions } from '../types'\nimport { FolderType, Status, Tag, TaskType } from '../types/project'\n\ntype Params = {\n users: {\n name: string\n fullName?: string\n }[]\n statuses: Status[]\n folderTypes: FolderType[]\n taskTypes: TaskType[]\n productTypes: ProductType[]\n tags: Tag[]\n scopes: string[]\n}\n\nexport const getTableFieldOptions = ({\n users,\n statuses,\n folderTypes,\n taskTypes,\n productTypes,\n tags,\n scopes,\n}: Params): BuiltInFieldOptions => {\n const getStatusOptions = (allowedScopes: string[]) =>\n statuses\n .filter(\n (status) => !status.scope || allowedScopes.some((scope) => status.scope?.includes(scope)),\n )\n .map(({ name, color, icon, scope }) => ({\n value: name,\n label: name,\n color,\n icon,\n scope,\n }))\n\n return {\n assignee: users.map(({ name, fullName }) => ({\n value: name,\n label: fullName || name,\n icon: `/api/users/${name}/avatar`,\n })),\n status: getStatusOptions(scopes),\n folderStatus: getStatusOptions(['folder']),\n tag: tags.map(({ name, color }) => ({ value: name, label: name, color })),\n folderType: folderTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n taskType: taskTypes.map(({ name, icon, color }) => ({ value: name, label: name, icon, color })),\n productType: productTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n }\n}\n"],"names":["getTableFieldOptions","users","statuses","folderTypes","taskTypes","productTypes","tags","scopes","getStatusOptions","allowedScopes","status","scope","name","color","icon","fullName"],"mappings":"gFAiBO,MAAMA,EAAuB,CAAC,CACnC,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,aAAAC,EACA,KAAAC,EACA,OAAAC,CACF,IAAmC,CACjC,MAAMC,EAAoBC,GACxBP,EACG,OACEQ,GAAW,CAACA,EAAO,OAASD,EAAc,KAAME,GAAUD,EAAO,OAAO,SAASC,CAAK,CAAC,CAAA,EAEzF,IAAI,CAAC,CAAE,KAAAC,EAAM,MAAAC,EAAO,KAAAC,EAAM,MAAAH,MAAa,CACtC,MAAOC,EACP,MAAOA,EACP,MAAAC,EACA,KAAAC,EACA,MAAAH,CAAA,EACA,EAEN,MAAO,CACL,SAAUV,EAAM,IAAI,CAAC,CAAE,KAAAW,EAAM,SAAAG,MAAgB,CAC3C,MAAOH,EACP,MAAOG,GAAYH,EACnB,KAAM,cAAcA,CAAI,SAAA,EACxB,EACF,OAAQJ,EAAiBD,CAAM,EAC/B,aAAcC,EAAiB,CAAC,QAAQ,CAAC,EACzC,IAAKF,EAAK,IAAI,CAAC,CAAE,KAAAM,EAAM,MAAAC,CAAA,KAAa,CAAE,MAAOD,EAAM,MAAOA,EAAM,MAAAC,GAAQ,EACxE,WAAYV,EAAY,IAAI,CAAC,CAAE,KAAAS,EAAM,KAAAE,EAAM,MAAAD,MAAa,CACtD,MAAOD,EACP,MAAOA,EACP,KAAAE,EACA,MAAAD,CAAA,EACA,EACF,SAAUT,EAAU,IAAI,CAAC,CAAE,KAAAQ,EAAM,KAAAE,EAAM,MAAAD,CAAA,KAAa,CAAE,MAAOD,EAAM,MAAOA,EAAM,KAAAE,EAAM,MAAAD,GAAQ,EAC9F,YAAaR,EAAa,IAAI,CAAC,CAAE,KAAAO,EAAM,KAAAE,EAAM,MAAAD,MAAa,CACxD,MAAOD,EACP,MAAOA,EACP,KAAAE,EACA,MAAAD,CAAA,EACA,CAAA,CAEN"}
1
+ {"version":3,"file":"getTableFieldOptions.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTableFieldOptions.ts"],"sourcesContent":["import type { ProductType } from '@shared/api'\nimport type { BuiltInFieldOptions } from '../types'\nimport type { FolderType, Status, Tag, TaskType } from '../types/project'\n\ntype Params = {\n users: {\n name: string\n fullName?: string\n }[]\n statuses: Status[]\n folderTypes: FolderType[]\n taskTypes: TaskType[]\n productTypes: ProductType[]\n tags: Tag[]\n scopes: string[]\n}\n\nexport const getTableFieldOptions = ({\n users,\n statuses,\n folderTypes,\n taskTypes,\n productTypes,\n tags,\n scopes,\n}: Params): BuiltInFieldOptions => {\n const getStatusOptions = (allowedScopes: string[]) =>\n statuses\n .filter(\n (status) => !status.scope || allowedScopes.some((scope) => status.scope?.includes(scope)),\n )\n .map(({ name, color, icon, scope }) => ({\n value: name,\n label: name,\n color,\n icon,\n scope,\n }))\n\n return {\n assignee: users.map(({ name, fullName }) => ({\n value: name,\n label: fullName || name,\n icon: `/api/users/${name}/avatar`,\n })),\n status: getStatusOptions(scopes),\n folderStatus: getStatusOptions(['folder']),\n tag: tags.map(({ name, color }) => ({ value: name, label: name, color })),\n folderType: folderTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n taskType: taskTypes.map(({ name, icon, color }) => ({ value: name, label: name, icon, color })),\n productType: productTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n }\n}\n"],"names":["getTableFieldOptions","users","statuses","folderTypes","taskTypes","productTypes","tags","scopes","getStatusOptions","allowedScopes","status","scope","name","color","icon","fullName"],"mappings":"gFAiBO,MAAMA,EAAuB,CAAC,CACnC,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,aAAAC,EACA,KAAAC,EACA,OAAAC,CACF,IAAmC,CACjC,MAAMC,EAAoBC,GACxBP,EACG,OACEQ,GAAW,CAACA,EAAO,OAASD,EAAc,KAAME,GAAUD,EAAO,OAAO,SAASC,CAAK,CAAC,CAAA,EAEzF,IAAI,CAAC,CAAE,KAAAC,EAAM,MAAAC,EAAO,KAAAC,EAAM,MAAAH,MAAa,CACtC,MAAOC,EACP,MAAOA,EACP,MAAAC,EACA,KAAAC,EACA,MAAAH,CAAA,EACA,EAEN,MAAO,CACL,SAAUV,EAAM,IAAI,CAAC,CAAE,KAAAW,EAAM,SAAAG,MAAgB,CAC3C,MAAOH,EACP,MAAOG,GAAYH,EACnB,KAAM,cAAcA,CAAI,SAAA,EACxB,EACF,OAAQJ,EAAiBD,CAAM,EAC/B,aAAcC,EAAiB,CAAC,QAAQ,CAAC,EACzC,IAAKF,EAAK,IAAI,CAAC,CAAE,KAAAM,EAAM,MAAAC,CAAA,KAAa,CAAE,MAAOD,EAAM,MAAOA,EAAM,MAAAC,GAAQ,EACxE,WAAYV,EAAY,IAAI,CAAC,CAAE,KAAAS,EAAM,KAAAE,EAAM,MAAAD,MAAa,CACtD,MAAOD,EACP,MAAOA,EACP,KAAAE,EACA,MAAAD,CAAA,EACA,EACF,SAAUT,EAAU,IAAI,CAAC,CAAE,KAAAQ,EAAM,KAAAE,EAAM,MAAAD,CAAA,KAAa,CAAE,MAAOD,EAAM,MAAOA,EAAM,KAAAE,EAAM,MAAAD,GAAQ,EAC9F,YAAaR,EAAa,IAAI,CAAC,CAAE,KAAAO,EAAM,KAAAE,EAAM,MAAAD,MAAa,CACxD,MAAOD,EACP,MAAOA,EACP,KAAAE,EACA,MAAAD,CAAA,EACA,CAAA,CAEN"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTableFieldOptions.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTableFieldOptions.ts"],"sourcesContent":["import { ProductType } from '@shared/api'\nimport { BuiltInFieldOptions } from '../types'\nimport { FolderType, Status, Tag, TaskType } from '../types/project'\n\ntype Params = {\n users: {\n name: string\n fullName?: string\n }[]\n statuses: Status[]\n folderTypes: FolderType[]\n taskTypes: TaskType[]\n productTypes: ProductType[]\n tags: Tag[]\n scopes: string[]\n}\n\nexport const getTableFieldOptions = ({\n users,\n statuses,\n folderTypes,\n taskTypes,\n productTypes,\n tags,\n scopes,\n}: Params): BuiltInFieldOptions => {\n const getStatusOptions = (allowedScopes: string[]) =>\n statuses\n .filter(\n (status) => !status.scope || allowedScopes.some((scope) => status.scope?.includes(scope)),\n )\n .map(({ name, color, icon, scope }) => ({\n value: name,\n label: name,\n color,\n icon,\n scope,\n }))\n\n return {\n assignee: users.map(({ name, fullName }) => ({\n value: name,\n label: fullName || name,\n icon: `/api/users/${name}/avatar`,\n })),\n status: getStatusOptions(scopes),\n folderStatus: getStatusOptions(['folder']),\n tag: tags.map(({ name, color }) => ({ value: name, label: name, color })),\n folderType: folderTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n taskType: taskTypes.map(({ name, icon, color }) => ({ value: name, label: name, icon, color })),\n productType: productTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n }\n}\n"],"names":["getTableFieldOptions","users","statuses","folderTypes","taskTypes","productTypes","tags","scopes","getStatusOptions","allowedScopes","status","scope","name","color","icon","fullName"],"mappings":"AAiBO,MAAMA,IAAuB,CAAC;AAAA,EACnC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AACF,MAAmC;AACjC,QAAMC,IAAmB,CAACC,MACxBP,EACG;AAAA,IACC,CAACQ,MAAW,CAACA,EAAO,SAASD,EAAc,KAAK,CAACE,MAAUD,EAAO,OAAO,SAASC,CAAK,CAAC;AAAA,EAAA,EAEzF,IAAI,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,MAAAC,GAAM,OAAAH,SAAa;AAAA,IACtC,OAAOC;AAAA,IACP,OAAOA;AAAA,IACP,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAH;AAAA,EAAA,EACA;AAEN,SAAO;AAAA,IACL,UAAUV,EAAM,IAAI,CAAC,EAAE,MAAAW,GAAM,UAAAG,SAAgB;AAAA,MAC3C,OAAOH;AAAA,MACP,OAAOG,KAAYH;AAAA,MACnB,MAAM,cAAcA,CAAI;AAAA,IAAA,EACxB;AAAA,IACF,QAAQJ,EAAiBD,CAAM;AAAA,IAC/B,cAAcC,EAAiB,CAAC,QAAQ,CAAC;AAAA,IACzC,KAAKF,EAAK,IAAI,CAAC,EAAE,MAAAM,GAAM,OAAAC,EAAA,OAAa,EAAE,OAAOD,GAAM,OAAOA,GAAM,OAAAC,IAAQ;AAAA,IACxE,YAAYV,EAAY,IAAI,CAAC,EAAE,MAAAS,GAAM,MAAAE,GAAM,OAAAD,SAAa;AAAA,MACtD,OAAOD;AAAA,MACP,OAAOA;AAAA,MACP,MAAAE;AAAA,MACA,OAAAD;AAAA,IAAA,EACA;AAAA,IACF,UAAUT,EAAU,IAAI,CAAC,EAAE,MAAAQ,GAAM,MAAAE,GAAM,OAAAD,EAAA,OAAa,EAAE,OAAOD,GAAM,OAAOA,GAAM,MAAAE,GAAM,OAAAD,IAAQ;AAAA,IAC9F,aAAaR,EAAa,IAAI,CAAC,EAAE,MAAAO,GAAM,MAAAE,GAAM,OAAAD,SAAa;AAAA,MACxD,OAAOD;AAAA,MACP,OAAOA;AAAA,MACP,MAAAE;AAAA,MACA,OAAAD;AAAA,IAAA,EACA;AAAA,EAAA;AAEN;"}
1
+ {"version":3,"file":"getTableFieldOptions.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTableFieldOptions.ts"],"sourcesContent":["import type { ProductType } from '@shared/api'\nimport type { BuiltInFieldOptions } from '../types'\nimport type { FolderType, Status, Tag, TaskType } from '../types/project'\n\ntype Params = {\n users: {\n name: string\n fullName?: string\n }[]\n statuses: Status[]\n folderTypes: FolderType[]\n taskTypes: TaskType[]\n productTypes: ProductType[]\n tags: Tag[]\n scopes: string[]\n}\n\nexport const getTableFieldOptions = ({\n users,\n statuses,\n folderTypes,\n taskTypes,\n productTypes,\n tags,\n scopes,\n}: Params): BuiltInFieldOptions => {\n const getStatusOptions = (allowedScopes: string[]) =>\n statuses\n .filter(\n (status) => !status.scope || allowedScopes.some((scope) => status.scope?.includes(scope)),\n )\n .map(({ name, color, icon, scope }) => ({\n value: name,\n label: name,\n color,\n icon,\n scope,\n }))\n\n return {\n assignee: users.map(({ name, fullName }) => ({\n value: name,\n label: fullName || name,\n icon: `/api/users/${name}/avatar`,\n })),\n status: getStatusOptions(scopes),\n folderStatus: getStatusOptions(['folder']),\n tag: tags.map(({ name, color }) => ({ value: name, label: name, color })),\n folderType: folderTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n taskType: taskTypes.map(({ name, icon, color }) => ({ value: name, label: name, icon, color })),\n productType: productTypes.map(({ name, icon, color }) => ({\n value: name,\n label: name,\n icon,\n color,\n })),\n }\n}\n"],"names":["getTableFieldOptions","users","statuses","folderTypes","taskTypes","productTypes","tags","scopes","getStatusOptions","allowedScopes","status","scope","name","color","icon","fullName"],"mappings":"AAiBO,MAAMA,IAAuB,CAAC;AAAA,EACnC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AACF,MAAmC;AACjC,QAAMC,IAAmB,CAACC,MACxBP,EACG;AAAA,IACC,CAACQ,MAAW,CAACA,EAAO,SAASD,EAAc,KAAK,CAACE,MAAUD,EAAO,OAAO,SAASC,CAAK,CAAC;AAAA,EAAA,EAEzF,IAAI,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,MAAAC,GAAM,OAAAH,SAAa;AAAA,IACtC,OAAOC;AAAA,IACP,OAAOA;AAAA,IACP,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAH;AAAA,EAAA,EACA;AAEN,SAAO;AAAA,IACL,UAAUV,EAAM,IAAI,CAAC,EAAE,MAAAW,GAAM,UAAAG,SAAgB;AAAA,MAC3C,OAAOH;AAAA,MACP,OAAOG,KAAYH;AAAA,MACnB,MAAM,cAAcA,CAAI;AAAA,IAAA,EACxB;AAAA,IACF,QAAQJ,EAAiBD,CAAM;AAAA,IAC/B,cAAcC,EAAiB,CAAC,QAAQ,CAAC;AAAA,IACzC,KAAKF,EAAK,IAAI,CAAC,EAAE,MAAAM,GAAM,OAAAC,EAAA,OAAa,EAAE,OAAOD,GAAM,OAAOA,GAAM,OAAAC,IAAQ;AAAA,IACxE,YAAYV,EAAY,IAAI,CAAC,EAAE,MAAAS,GAAM,MAAAE,GAAM,OAAAD,SAAa;AAAA,MACtD,OAAOD;AAAA,MACP,OAAOA;AAAA,MACP,MAAAE;AAAA,MACA,OAAAD;AAAA,IAAA,EACA;AAAA,IACF,UAAUT,EAAU,IAAI,CAAC,EAAE,MAAAQ,GAAM,MAAAE,GAAM,OAAAD,EAAA,OAAa,EAAE,OAAOD,GAAM,OAAOA,GAAM,MAAAE,GAAM,OAAAD,IAAQ;AAAA,IAC9F,aAAaR,EAAa,IAAI,CAAC,EAAE,MAAAO,GAAM,MAAAE,GAAM,OAAAD,SAAa;AAAA,MACxD,OAAOD;AAAA,MACP,OAAOA;AAAA,MACP,MAAAE;AAAA,MACA,OAAAD;AAAA,IAAA,EACA;AAAA,EAAA;AAEN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTypeDefaultValue.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTypeDefaultValue.ts"],"sourcesContent":["import { AttributeData } from '@shared/api'\n\nexport const getTypeDefaultValue = (type: AttributeData['type']) => {\n switch (type) {\n case 'boolean':\n return false\n case 'datetime':\n return null\n case 'float':\n case 'integer':\n return 0\n case 'string':\n return ''\n case 'list_of_strings':\n case 'list_of_integers':\n case 'list_of_any':\n case 'list_of_submodels':\n return []\n case 'dict':\n return {}\n default:\n return null\n }\n}\n"],"names":["getTypeDefaultValue","type"],"mappings":"gFAEO,MAAMA,EAAuBC,GAAgC,CAClE,OAAQA,EAAA,CACN,IAAK,UACH,MAAO,GACT,IAAK,WACH,OAAO,KACT,IAAK,QACL,IAAK,UACH,MAAO,GACT,IAAK,SACH,MAAO,GACT,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,oBACH,MAAO,CAAA,EACT,IAAK,OACH,MAAO,CAAA,EACT,QACE,OAAO,IAAA,CAEb"}
1
+ {"version":3,"file":"getTypeDefaultValue.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTypeDefaultValue.ts"],"sourcesContent":["import type { AttributeData } from '@shared/api'\n\nexport const getTypeDefaultValue = (type: AttributeData['type']) => {\n switch (type) {\n case 'boolean':\n return false\n case 'datetime':\n return null\n case 'float':\n case 'integer':\n return 0\n case 'string':\n return ''\n case 'list_of_strings':\n case 'list_of_integers':\n case 'list_of_any':\n case 'list_of_submodels':\n return []\n case 'dict':\n return {}\n default:\n return null\n }\n}\n"],"names":["getTypeDefaultValue","type"],"mappings":"gFAEO,MAAMA,EAAuBC,GAAgC,CAClE,OAAQA,EAAA,CACN,IAAK,UACH,MAAO,GACT,IAAK,WACH,OAAO,KACT,IAAK,QACL,IAAK,UACH,MAAO,GACT,IAAK,SACH,MAAO,GACT,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,oBACH,MAAO,CAAA,EACT,IAAK,OACH,MAAO,CAAA,EACT,QACE,OAAO,IAAA,CAEb"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTypeDefaultValue.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTypeDefaultValue.ts"],"sourcesContent":["import { AttributeData } from '@shared/api'\n\nexport const getTypeDefaultValue = (type: AttributeData['type']) => {\n switch (type) {\n case 'boolean':\n return false\n case 'datetime':\n return null\n case 'float':\n case 'integer':\n return 0\n case 'string':\n return ''\n case 'list_of_strings':\n case 'list_of_integers':\n case 'list_of_any':\n case 'list_of_submodels':\n return []\n case 'dict':\n return {}\n default:\n return null\n }\n}\n"],"names":["getTypeDefaultValue","type"],"mappings":"AAEO,MAAMA,IAAsB,CAACC,MAAgC;AAClE,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,CAAA;AAAA,IACT,KAAK;AACH,aAAO,CAAA;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;"}
1
+ {"version":3,"file":"getTypeDefaultValue.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/getTypeDefaultValue.ts"],"sourcesContent":["import type { AttributeData } from '@shared/api'\n\nexport const getTypeDefaultValue = (type: AttributeData['type']) => {\n switch (type) {\n case 'boolean':\n return false\n case 'datetime':\n return null\n case 'float':\n case 'integer':\n return 0\n case 'string':\n return ''\n case 'list_of_strings':\n case 'list_of_integers':\n case 'list_of_any':\n case 'list_of_submodels':\n return []\n case 'dict':\n return {}\n default:\n return null\n }\n}\n"],"names":["getTypeDefaultValue","type"],"mappings":"AAEO,MAAMA,IAAsB,CAACC,MAAgC;AAClE,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,CAAA;AAAA,IACT,KAAK;AACH,aAAO,CAAA;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;"}
@@ -1 +1 @@
1
- {"version":3,"file":"linksToTableData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/linksToTableData.ts"],"sourcesContent":["// converts the links array to the data shown in the table (object of link keys with list of link entity names)\n// we split the links by direction (in/out) and store them in an object\n\nimport { LinkEntity } from '@shared/components'\nimport { getLinkKey } from '../buildTreeTableColumns'\nimport { EntityLink } from '@shared/api'\nimport { getEntityColor, getEntityIcon, IconAnatomy } from '@shared/util/iconUtils'\n\nexport type LinkId = string\nexport type LinkValue = LinkEntity[]\nexport type LinksTableData = Record<LinkId, LinkValue>\n\nexport const linksToTableData = (\n links: EntityLink[] | undefined,\n entityType: string,\n anatomy: IconAnatomy,\n): LinksTableData =>\n links?.reduce((acc, edge) => {\n const { linkType, direction, entityType: linkEntityType, id, node, isRestricted } = edge\n\n // Handle restricted links (node is null)\n if (isRestricted || !node) {\n const entityData: LinkEntity = {\n label: '',\n parents: [],\n linkId: id,\n entityId: '',\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, undefined, anatomy),\n color: undefined,\n isRestricted: true,\n }\n\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }\n\n // Handle normal links\n const entityData: LinkEntity = {\n label: (node.label || node.name) as string,\n parents: node.parents,\n linkId: id,\n entityId: node.id as string,\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, node.subType, anatomy),\n color: getEntityColor(linkEntityType, node.subType, anatomy),\n }\n\n // we must build the entity link type name based on the direction and entity types\n // e.g. \"linkType|inEntityType|outEntityType\"\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n // add the entity name to the link type\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }, {} as LinksTableData) || {}\n\n// converts the link type + in/out entity types to a link name format {linkType}|in|out\nconst linkTypeToLinkName = (\n linkType: string,\n baseEntityType: string,\n linkEntityType: string,\n direction: 'in' | 'out' | string,\n): string => {\n const firstType = direction === 'in' ? linkEntityType : baseEntityType\n const secondType = direction === 'in' ? baseEntityType : linkEntityType\n return `${linkType}|${firstType}|${secondType}`\n}\n"],"names":["linksToTableData","links","entityType","anatomy","acc","edge","linkType","direction","linkEntityType","id","node","isRestricted","entityData","getEntityIcon","linkTypeName","linkTypeToLinkName","tableId","getLinkKey","getEntityColor","baseEntityType"],"mappings":"+KAYaA,EAAmB,CAC9BC,EACAC,EACAC,IAEAF,GAAO,OAAO,CAACG,EAAKC,IAAS,CAC3B,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,WAAYC,EAAgB,GAAAC,EAAI,KAAAC,EAAM,aAAAC,GAAiBN,EAGpF,GAAIM,GAAgB,CAACD,EAAM,CACzB,MAAME,EAAyB,CAC7B,MAAO,GACP,QAAS,CAAA,EACT,OAAQH,EACR,SAAU,GACV,WAAYD,EACZ,KAAMK,EAAAA,cAAcL,EAAgB,OAAWL,CAAO,EACtD,MAAO,OACP,aAAc,EAAA,EAGVW,EAAeC,EAAmBT,EAAUJ,EAAYM,EAAgBD,CAAS,EACjFS,EAAUC,EAAAA,WAAW,CAAE,KAAMH,CAAAA,EAAgBP,CAAS,EAE5D,OAAKH,EAAIY,CAAO,IACdZ,EAAIY,CAAO,EAAI,CAAA,GAGZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,GACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,EAGvBR,CACT,CAGA,MAAMQ,EAAyB,CAC7B,MAAQF,EAAK,OAASA,EAAK,KAC3B,QAASA,EAAK,QACd,OAAQD,EACR,SAAUC,EAAK,GACf,WAAYF,EACZ,KAAMK,EAAAA,cAAcL,EAAgBE,EAAK,QAASP,CAAO,EACzD,MAAOe,EAAAA,eAAeV,EAAgBE,EAAK,QAASP,CAAO,CAAA,EAKvDW,EAAeC,EAAmBT,EAAUJ,EAAYM,EAAgBD,CAAS,EAEjFS,EAAUC,EAAAA,WAAW,CAAE,KAAMH,CAAA,EAAgBP,CAAS,EAE5D,OAAKH,EAAIY,CAAO,IACdZ,EAAIY,CAAO,EAAI,CAAA,GAIZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,GACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,EAGvBR,CACT,EAAG,CAAA,CAAoB,GAAK,CAAA,EAGxBW,EAAqB,CACzBT,EACAa,EACAX,EACAD,IAIO,GAAGD,CAAQ,IAFAC,IAAc,KAAOC,EAAiBW,CAEzB,IADZZ,IAAc,KAAOY,EAAiBX,CACZ"}
1
+ {"version":3,"file":"linksToTableData.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/linksToTableData.ts"],"sourcesContent":["// converts the links array to the data shown in the table (object of link keys with list of link entity names)\n// we split the links by direction (in/out) and store them in an object\n\nimport type { LinkEntity } from '@shared/components/LinksManager/LinksManager'\nimport { getLinkKey } from '../buildTreeTableColumns'\nimport { EntityLink } from '@shared/api'\nimport { getEntityColor, getEntityIcon, IconAnatomy } from '@shared/util/iconUtils'\n\nexport type LinkId = string\nexport type LinkValue = LinkEntity[]\nexport type LinksTableData = Record<LinkId, LinkValue>\n\nexport const linksToTableData = (\n links: EntityLink[] | undefined,\n entityType: string,\n anatomy: IconAnatomy,\n): LinksTableData =>\n links?.reduce((acc, edge) => {\n const { linkType, direction, entityType: linkEntityType, id, node, isRestricted } = edge\n\n // Handle restricted links (node is null)\n if (isRestricted || !node) {\n const entityData: LinkEntity = {\n label: '',\n parents: [],\n linkId: id,\n entityId: '',\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, undefined, anatomy),\n color: undefined,\n isRestricted: true,\n }\n\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }\n\n // Handle normal links\n const entityData: LinkEntity = {\n label: (node.label || node.name) as string,\n parents: node.parents,\n linkId: id,\n entityId: node.id as string,\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, node.subType, anatomy),\n color: getEntityColor(linkEntityType, node.subType, anatomy),\n }\n\n // we must build the entity link type name based on the direction and entity types\n // e.g. \"linkType|inEntityType|outEntityType\"\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n // add the entity name to the link type\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }, {} as LinksTableData) || {}\n\n// converts the link type + in/out entity types to a link name format {linkType}|in|out\nconst linkTypeToLinkName = (\n linkType: string,\n baseEntityType: string,\n linkEntityType: string,\n direction: 'in' | 'out' | string,\n): string => {\n const firstType = direction === 'in' ? linkEntityType : baseEntityType\n const secondType = direction === 'in' ? baseEntityType : linkEntityType\n return `${linkType}|${firstType}|${secondType}`\n}\n"],"names":["linksToTableData","links","entityType","anatomy","acc","edge","linkType","direction","linkEntityType","id","node","isRestricted","entityData","getEntityIcon","linkTypeName","linkTypeToLinkName","tableId","getLinkKey","getEntityColor","baseEntityType"],"mappings":"+KAYaA,EAAmB,CAC9BC,EACAC,EACAC,IAEAF,GAAO,OAAO,CAACG,EAAKC,IAAS,CAC3B,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,WAAYC,EAAgB,GAAAC,EAAI,KAAAC,EAAM,aAAAC,GAAiBN,EAGpF,GAAIM,GAAgB,CAACD,EAAM,CACzB,MAAME,EAAyB,CAC7B,MAAO,GACP,QAAS,CAAA,EACT,OAAQH,EACR,SAAU,GACV,WAAYD,EACZ,KAAMK,EAAAA,cAAcL,EAAgB,OAAWL,CAAO,EACtD,MAAO,OACP,aAAc,EAAA,EAGVW,EAAeC,EAAmBT,EAAUJ,EAAYM,EAAgBD,CAAS,EACjFS,EAAUC,EAAAA,WAAW,CAAE,KAAMH,CAAAA,EAAgBP,CAAS,EAE5D,OAAKH,EAAIY,CAAO,IACdZ,EAAIY,CAAO,EAAI,CAAA,GAGZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,GACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,EAGvBR,CACT,CAGA,MAAMQ,EAAyB,CAC7B,MAAQF,EAAK,OAASA,EAAK,KAC3B,QAASA,EAAK,QACd,OAAQD,EACR,SAAUC,EAAK,GACf,WAAYF,EACZ,KAAMK,EAAAA,cAAcL,EAAgBE,EAAK,QAASP,CAAO,EACzD,MAAOe,EAAAA,eAAeV,EAAgBE,EAAK,QAASP,CAAO,CAAA,EAKvDW,EAAeC,EAAmBT,EAAUJ,EAAYM,EAAgBD,CAAS,EAEjFS,EAAUC,EAAAA,WAAW,CAAE,KAAMH,CAAA,EAAgBP,CAAS,EAE5D,OAAKH,EAAIY,CAAO,IACdZ,EAAIY,CAAO,EAAI,CAAA,GAIZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,GACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,EAGvBR,CACT,EAAG,CAAA,CAAoB,GAAK,CAAA,EAGxBW,EAAqB,CACzBT,EACAa,EACAX,EACAD,IAIO,GAAGD,CAAQ,IAFAC,IAAc,KAAOC,EAAiBW,CAEzB,IADZZ,IAAc,KAAOY,EAAiBX,CACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"linksToTableData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/linksToTableData.ts"],"sourcesContent":["// converts the links array to the data shown in the table (object of link keys with list of link entity names)\n// we split the links by direction (in/out) and store them in an object\n\nimport { LinkEntity } from '@shared/components'\nimport { getLinkKey } from '../buildTreeTableColumns'\nimport { EntityLink } from '@shared/api'\nimport { getEntityColor, getEntityIcon, IconAnatomy } from '@shared/util/iconUtils'\n\nexport type LinkId = string\nexport type LinkValue = LinkEntity[]\nexport type LinksTableData = Record<LinkId, LinkValue>\n\nexport const linksToTableData = (\n links: EntityLink[] | undefined,\n entityType: string,\n anatomy: IconAnatomy,\n): LinksTableData =>\n links?.reduce((acc, edge) => {\n const { linkType, direction, entityType: linkEntityType, id, node, isRestricted } = edge\n\n // Handle restricted links (node is null)\n if (isRestricted || !node) {\n const entityData: LinkEntity = {\n label: '',\n parents: [],\n linkId: id,\n entityId: '',\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, undefined, anatomy),\n color: undefined,\n isRestricted: true,\n }\n\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }\n\n // Handle normal links\n const entityData: LinkEntity = {\n label: (node.label || node.name) as string,\n parents: node.parents,\n linkId: id,\n entityId: node.id as string,\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, node.subType, anatomy),\n color: getEntityColor(linkEntityType, node.subType, anatomy),\n }\n\n // we must build the entity link type name based on the direction and entity types\n // e.g. \"linkType|inEntityType|outEntityType\"\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n // add the entity name to the link type\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }, {} as LinksTableData) || {}\n\n// converts the link type + in/out entity types to a link name format {linkType}|in|out\nconst linkTypeToLinkName = (\n linkType: string,\n baseEntityType: string,\n linkEntityType: string,\n direction: 'in' | 'out' | string,\n): string => {\n const firstType = direction === 'in' ? linkEntityType : baseEntityType\n const secondType = direction === 'in' ? baseEntityType : linkEntityType\n return `${linkType}|${firstType}|${secondType}`\n}\n"],"names":["linksToTableData","links","entityType","anatomy","acc","edge","linkType","direction","linkEntityType","id","node","isRestricted","entityData","getEntityIcon","linkTypeName","linkTypeToLinkName","tableId","getLinkKey","getEntityColor","baseEntityType"],"mappings":";;AAYO,MAAMA,IAAmB,CAC9BC,GACAC,GACAC,MAEAF,GAAO,OAAO,CAACG,GAAKC,MAAS;AAC3B,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,YAAYC,GAAgB,IAAAC,GAAI,MAAAC,GAAM,cAAAC,MAAiBN;AAGpF,MAAIM,KAAgB,CAACD,GAAM;AACzB,UAAME,IAAyB;AAAA,MAC7B,OAAO;AAAA,MACP,SAAS,CAAA;AAAA,MACT,QAAQH;AAAA,MACR,UAAU;AAAA,MACV,YAAYD;AAAA,MACZ,MAAMK,EAAcL,GAAgB,QAAWL,CAAO;AAAA,MACtD,OAAO;AAAA,MACP,cAAc;AAAA,IAAA,GAGVW,IAAeC,EAAmBT,GAAUJ,GAAYM,GAAgBD,CAAS,GACjFS,IAAUC,EAAW,EAAE,MAAMH,EAAAA,GAAgBP,CAAS;AAE5D,WAAKH,EAAIY,CAAO,MACdZ,EAAIY,CAAO,IAAI,CAAA,IAGZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,KACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,GAGvBR;AAAA,EACT;AAGA,QAAMQ,IAAyB;AAAA,IAC7B,OAAQF,EAAK,SAASA,EAAK;AAAA,IAC3B,SAASA,EAAK;AAAA,IACd,QAAQD;AAAA,IACR,UAAUC,EAAK;AAAA,IACf,YAAYF;AAAA,IACZ,MAAMK,EAAcL,GAAgBE,EAAK,SAASP,CAAO;AAAA,IACzD,OAAOe,EAAeV,GAAgBE,EAAK,SAASP,CAAO;AAAA,EAAA,GAKvDW,IAAeC,EAAmBT,GAAUJ,GAAYM,GAAgBD,CAAS,GAEjFS,IAAUC,EAAW,EAAE,MAAMH,EAAA,GAAgBP,CAAS;AAE5D,SAAKH,EAAIY,CAAO,MACdZ,EAAIY,CAAO,IAAI,CAAA,IAIZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,KACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,GAGvBR;AACT,GAAG,CAAA,CAAoB,KAAK,CAAA,GAGxBW,IAAqB,CACzBT,GACAa,GACAX,GACAD,MAIO,GAAGD,CAAQ,IAFAC,MAAc,OAAOC,IAAiBW,CAEzB,IADZZ,MAAc,OAAOY,IAAiBX,CACZ;"}
1
+ {"version":3,"file":"linksToTableData.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/linksToTableData.ts"],"sourcesContent":["// converts the links array to the data shown in the table (object of link keys with list of link entity names)\n// we split the links by direction (in/out) and store them in an object\n\nimport type { LinkEntity } from '@shared/components/LinksManager/LinksManager'\nimport { getLinkKey } from '../buildTreeTableColumns'\nimport { EntityLink } from '@shared/api'\nimport { getEntityColor, getEntityIcon, IconAnatomy } from '@shared/util/iconUtils'\n\nexport type LinkId = string\nexport type LinkValue = LinkEntity[]\nexport type LinksTableData = Record<LinkId, LinkValue>\n\nexport const linksToTableData = (\n links: EntityLink[] | undefined,\n entityType: string,\n anatomy: IconAnatomy,\n): LinksTableData =>\n links?.reduce((acc, edge) => {\n const { linkType, direction, entityType: linkEntityType, id, node, isRestricted } = edge\n\n // Handle restricted links (node is null)\n if (isRestricted || !node) {\n const entityData: LinkEntity = {\n label: '',\n parents: [],\n linkId: id,\n entityId: '',\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, undefined, anatomy),\n color: undefined,\n isRestricted: true,\n }\n\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }\n\n // Handle normal links\n const entityData: LinkEntity = {\n label: (node.label || node.name) as string,\n parents: node.parents,\n linkId: id,\n entityId: node.id as string,\n entityType: linkEntityType,\n icon: getEntityIcon(linkEntityType, node.subType, anatomy),\n color: getEntityColor(linkEntityType, node.subType, anatomy),\n }\n\n // we must build the entity link type name based on the direction and entity types\n // e.g. \"linkType|inEntityType|outEntityType\"\n const linkTypeName = linkTypeToLinkName(linkType, entityType, linkEntityType, direction)\n\n const tableId = getLinkKey({ name: linkTypeName }, direction)\n\n if (!acc[tableId]) {\n acc[tableId] = []\n }\n\n // add the entity name to the link type\n if (!acc[tableId].includes(entityData)) {\n acc[tableId].push(entityData)\n }\n\n return acc\n }, {} as LinksTableData) || {}\n\n// converts the link type + in/out entity types to a link name format {linkType}|in|out\nconst linkTypeToLinkName = (\n linkType: string,\n baseEntityType: string,\n linkEntityType: string,\n direction: 'in' | 'out' | string,\n): string => {\n const firstType = direction === 'in' ? linkEntityType : baseEntityType\n const secondType = direction === 'in' ? baseEntityType : linkEntityType\n return `${linkType}|${firstType}|${secondType}`\n}\n"],"names":["linksToTableData","links","entityType","anatomy","acc","edge","linkType","direction","linkEntityType","id","node","isRestricted","entityData","getEntityIcon","linkTypeName","linkTypeToLinkName","tableId","getLinkKey","getEntityColor","baseEntityType"],"mappings":";;AAYO,MAAMA,IAAmB,CAC9BC,GACAC,GACAC,MAEAF,GAAO,OAAO,CAACG,GAAKC,MAAS;AAC3B,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,YAAYC,GAAgB,IAAAC,GAAI,MAAAC,GAAM,cAAAC,MAAiBN;AAGpF,MAAIM,KAAgB,CAACD,GAAM;AACzB,UAAME,IAAyB;AAAA,MAC7B,OAAO;AAAA,MACP,SAAS,CAAA;AAAA,MACT,QAAQH;AAAA,MACR,UAAU;AAAA,MACV,YAAYD;AAAA,MACZ,MAAMK,EAAcL,GAAgB,QAAWL,CAAO;AAAA,MACtD,OAAO;AAAA,MACP,cAAc;AAAA,IAAA,GAGVW,IAAeC,EAAmBT,GAAUJ,GAAYM,GAAgBD,CAAS,GACjFS,IAAUC,EAAW,EAAE,MAAMH,EAAAA,GAAgBP,CAAS;AAE5D,WAAKH,EAAIY,CAAO,MACdZ,EAAIY,CAAO,IAAI,CAAA,IAGZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,KACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,GAGvBR;AAAA,EACT;AAGA,QAAMQ,IAAyB;AAAA,IAC7B,OAAQF,EAAK,SAASA,EAAK;AAAA,IAC3B,SAASA,EAAK;AAAA,IACd,QAAQD;AAAA,IACR,UAAUC,EAAK;AAAA,IACf,YAAYF;AAAA,IACZ,MAAMK,EAAcL,GAAgBE,EAAK,SAASP,CAAO;AAAA,IACzD,OAAOe,EAAeV,GAAgBE,EAAK,SAASP,CAAO;AAAA,EAAA,GAKvDW,IAAeC,EAAmBT,GAAUJ,GAAYM,GAAgBD,CAAS,GAEjFS,IAAUC,EAAW,EAAE,MAAMH,EAAA,GAAgBP,CAAS;AAE5D,SAAKH,EAAIY,CAAO,MACdZ,EAAIY,CAAO,IAAI,CAAA,IAIZZ,EAAIY,CAAO,EAAE,SAASJ,CAAU,KACnCR,EAAIY,CAAO,EAAE,KAAKJ,CAAU,GAGvBR;AACT,GAAG,CAAA,CAAoB,KAAK,CAAA,GAGxBW,IAAqB,CACzBT,GACAa,GACAX,GACAD,MAIO,GAAGD,CAAQ,IAFAC,MAAc,OAAOC,IAAiBW,CAEzB,IADZZ,MAAc,OAAOY,IAAiBX,CACZ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadingUtils.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/loadingUtils.ts"],"sourcesContent":["import { TableRow } from '../types/table'\nimport { FolderNodeMap } from '../types/table'\nimport { LoadingTasks } from '../types'\nimport { AttributeModel } from '@shared/api'\nimport { uuid } from 'short-uuid'\n\n/**\n * Generates an array of placeholder rows for loading state\n * @param attribs - Attribute models used to populate empty attribute fields\n * @param count - Number of loading rows to generate (default: 50)\n * @returns Array of TableRow objects with loading state\n */\nexport const generateLoadingRows = (count = 50, attrib = {}): TableRow[] => {\n // @ts-ignore\n return new Array(count).fill(0).map((_, index) => ({\n id: uuid(),\n isLoading: true,\n ...attrib,\n }))\n}\n\n/**\n * Generates an array of dummy attribute models for loading states\n * @param count - Number of dummy attributes to generate (default: 10)\n * @returns Array of AttributeModel objects\n */\nexport const generateDummyAttributes = (count = 10): AttributeModel[] => {\n return Array(count)\n .fill(null)\n .map((_, i): AttributeModel => {\n return {\n name: `loading-attribute${i}`,\n scope: ['folder', 'task'],\n data: {\n type: 'string',\n },\n position: i,\n }\n })\n}\n\n/**\n * Parameters for determineLoadingTaskFolders function\n */\nexport type DetermineLoadingTaskFoldersParams = {\n expandedFoldersTasks: { folderId: string | null }[]\n expandedParentIds: string[]\n foldersMap: FolderNodeMap\n}\n\n/**\n * Determines which folders are currently loading tasks\n * @param params - Object containing parameters for determining loading folders\n * @returns Array of folder IDs that are in loading state\n */\nexport const determineLoadingTaskFolders = ({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n}: DetermineLoadingTaskFoldersParams): LoadingTasks => {\n // find the folderIds that are being fetched (not the ones that are already loaded)\n const folderIds = expandedFoldersTasks.map((task) => task.folderId)\n const expandedParentIdsThatHaveTasks = expandedParentIds.filter(\n (id) => foldersMap.get(id)?.hasTasks,\n )\n const folderIdsSet = new Set(folderIds)\n const loadingParentIds = new Set<string>()\n for (const folderId of expandedParentIdsThatHaveTasks) {\n if (!folderIdsSet.has(folderId)) {\n loadingParentIds.add(folderId)\n }\n }\n\n const loadingTasks: LoadingTasks = {}\n for (const folderId of loadingParentIds) {\n // find the folder by id\n const folder = foldersMap.get(folderId)\n if (folder) {\n loadingTasks[folderId] = folder.taskNames?.length || 0\n }\n }\n\n return loadingTasks\n}\n"],"names":["generateLoadingRows","count","attrib","_","index","uuid","generateDummyAttributes","i","determineLoadingTaskFolders","expandedFoldersTasks","expandedParentIds","foldersMap","folderIds","task","expandedParentIdsThatHaveTasks","id","folderIdsSet","loadingParentIds","folderId","loadingTasks","folder"],"mappings":"8GAYaA,EAAsB,CAACC,EAAQ,GAAIC,EAAS,CAAA,IAEhD,IAAI,MAAMD,CAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAACE,EAAGC,KAAW,CACjD,GAAIC,EAAAA,KAAA,EACJ,UAAW,GACX,GAAGH,CAAA,EACH,EAQSI,EAA0B,CAACL,EAAQ,KACvC,MAAMA,CAAK,EACf,KAAK,IAAI,EACT,IAAI,CAACE,EAAGI,KACA,CACL,KAAM,oBAAoBA,CAAC,GAC3B,MAAO,CAAC,SAAU,MAAM,EACxB,KAAM,CACJ,KAAM,QAAA,EAER,SAAUA,CAAA,EAEb,EAiBQC,EAA8B,CAAC,CAC1C,qBAAAC,EACA,kBAAAC,EACA,WAAAC,CACF,IAAuD,CAErD,MAAMC,EAAYH,EAAqB,IAAKI,GAASA,EAAK,QAAQ,EAC5DC,EAAiCJ,EAAkB,OACtDK,GAAOJ,EAAW,IAAII,CAAE,GAAG,QAAA,EAExBC,EAAe,IAAI,IAAIJ,CAAS,EAChCK,MAAuB,IAC7B,UAAWC,KAAYJ,EAChBE,EAAa,IAAIE,CAAQ,GAC5BD,EAAiB,IAAIC,CAAQ,EAIjC,MAAMC,EAA6B,CAAA,EACnC,UAAWD,KAAYD,EAAkB,CAEvC,MAAMG,EAAST,EAAW,IAAIO,CAAQ,EAClCE,IACFD,EAAaD,CAAQ,EAAIE,EAAO,WAAW,QAAU,EAEzD,CAEA,OAAOD,CACT"}
1
+ {"version":3,"file":"loadingUtils.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/loadingUtils.ts"],"sourcesContent":["import { TableRow } from '../types/table'\nimport { FolderNodeMap } from '../types/table'\nimport { LoadingTasks } from '../types'\nimport type { AttributeModel } from '@shared/api'\nimport { uuid } from 'short-uuid'\n\n/**\n * Generates an array of placeholder rows for loading state\n * @param attribs - Attribute models used to populate empty attribute fields\n * @param count - Number of loading rows to generate (default: 50)\n * @returns Array of TableRow objects with loading state\n */\nexport const generateLoadingRows = (count = 50, attrib = {}): TableRow[] => {\n // @ts-ignore\n return new Array(count).fill(0).map((_, index) => ({\n id: uuid(),\n isLoading: true,\n ...attrib,\n }))\n}\n\n/**\n * Generates an array of dummy attribute models for loading states\n * @param count - Number of dummy attributes to generate (default: 10)\n * @returns Array of AttributeModel objects\n */\nexport const generateDummyAttributes = (count = 10): AttributeModel[] => {\n return Array(count)\n .fill(null)\n .map((_, i): AttributeModel => {\n return {\n name: `loading-attribute${i}`,\n scope: ['folder', 'task'],\n data: {\n type: 'string',\n },\n position: i,\n }\n })\n}\n\n/**\n * Parameters for determineLoadingTaskFolders function\n */\nexport type DetermineLoadingTaskFoldersParams = {\n expandedFoldersTasks: { folderId: string | null }[]\n expandedParentIds: string[]\n foldersMap: FolderNodeMap\n}\n\n/**\n * Determines which folders are currently loading tasks\n * @param params - Object containing parameters for determining loading folders\n * @returns Array of folder IDs that are in loading state\n */\nexport const determineLoadingTaskFolders = ({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n}: DetermineLoadingTaskFoldersParams): LoadingTasks => {\n // find the folderIds that are being fetched (not the ones that are already loaded)\n const folderIds = expandedFoldersTasks.map((task) => task.folderId)\n const expandedParentIdsThatHaveTasks = expandedParentIds.filter(\n (id) => foldersMap.get(id)?.hasTasks,\n )\n const folderIdsSet = new Set(folderIds)\n const loadingParentIds = new Set<string>()\n for (const folderId of expandedParentIdsThatHaveTasks) {\n if (!folderIdsSet.has(folderId)) {\n loadingParentIds.add(folderId)\n }\n }\n\n const loadingTasks: LoadingTasks = {}\n for (const folderId of loadingParentIds) {\n // find the folder by id\n const folder = foldersMap.get(folderId)\n if (folder) {\n loadingTasks[folderId] = folder.taskNames?.length || 0\n }\n }\n\n return loadingTasks\n}\n"],"names":["generateLoadingRows","count","attrib","_","index","uuid","generateDummyAttributes","i","determineLoadingTaskFolders","expandedFoldersTasks","expandedParentIds","foldersMap","folderIds","task","expandedParentIdsThatHaveTasks","id","folderIdsSet","loadingParentIds","folderId","loadingTasks","folder"],"mappings":"8GAYaA,EAAsB,CAACC,EAAQ,GAAIC,EAAS,CAAA,IAEhD,IAAI,MAAMD,CAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAACE,EAAGC,KAAW,CACjD,GAAIC,EAAAA,KAAA,EACJ,UAAW,GACX,GAAGH,CAAA,EACH,EAQSI,EAA0B,CAACL,EAAQ,KACvC,MAAMA,CAAK,EACf,KAAK,IAAI,EACT,IAAI,CAACE,EAAGI,KACA,CACL,KAAM,oBAAoBA,CAAC,GAC3B,MAAO,CAAC,SAAU,MAAM,EACxB,KAAM,CACJ,KAAM,QAAA,EAER,SAAUA,CAAA,EAEb,EAiBQC,EAA8B,CAAC,CAC1C,qBAAAC,EACA,kBAAAC,EACA,WAAAC,CACF,IAAuD,CAErD,MAAMC,EAAYH,EAAqB,IAAKI,GAASA,EAAK,QAAQ,EAC5DC,EAAiCJ,EAAkB,OACtDK,GAAOJ,EAAW,IAAII,CAAE,GAAG,QAAA,EAExBC,EAAe,IAAI,IAAIJ,CAAS,EAChCK,MAAuB,IAC7B,UAAWC,KAAYJ,EAChBE,EAAa,IAAIE,CAAQ,GAC5BD,EAAiB,IAAIC,CAAQ,EAIjC,MAAMC,EAA6B,CAAA,EACnC,UAAWD,KAAYD,EAAkB,CAEvC,MAAMG,EAAST,EAAW,IAAIO,CAAQ,EAClCE,IACFD,EAAaD,CAAQ,EAAIE,EAAO,WAAW,QAAU,EAEzD,CAEA,OAAOD,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadingUtils.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/loadingUtils.ts"],"sourcesContent":["import { TableRow } from '../types/table'\nimport { FolderNodeMap } from '../types/table'\nimport { LoadingTasks } from '../types'\nimport { AttributeModel } from '@shared/api'\nimport { uuid } from 'short-uuid'\n\n/**\n * Generates an array of placeholder rows for loading state\n * @param attribs - Attribute models used to populate empty attribute fields\n * @param count - Number of loading rows to generate (default: 50)\n * @returns Array of TableRow objects with loading state\n */\nexport const generateLoadingRows = (count = 50, attrib = {}): TableRow[] => {\n // @ts-ignore\n return new Array(count).fill(0).map((_, index) => ({\n id: uuid(),\n isLoading: true,\n ...attrib,\n }))\n}\n\n/**\n * Generates an array of dummy attribute models for loading states\n * @param count - Number of dummy attributes to generate (default: 10)\n * @returns Array of AttributeModel objects\n */\nexport const generateDummyAttributes = (count = 10): AttributeModel[] => {\n return Array(count)\n .fill(null)\n .map((_, i): AttributeModel => {\n return {\n name: `loading-attribute${i}`,\n scope: ['folder', 'task'],\n data: {\n type: 'string',\n },\n position: i,\n }\n })\n}\n\n/**\n * Parameters for determineLoadingTaskFolders function\n */\nexport type DetermineLoadingTaskFoldersParams = {\n expandedFoldersTasks: { folderId: string | null }[]\n expandedParentIds: string[]\n foldersMap: FolderNodeMap\n}\n\n/**\n * Determines which folders are currently loading tasks\n * @param params - Object containing parameters for determining loading folders\n * @returns Array of folder IDs that are in loading state\n */\nexport const determineLoadingTaskFolders = ({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n}: DetermineLoadingTaskFoldersParams): LoadingTasks => {\n // find the folderIds that are being fetched (not the ones that are already loaded)\n const folderIds = expandedFoldersTasks.map((task) => task.folderId)\n const expandedParentIdsThatHaveTasks = expandedParentIds.filter(\n (id) => foldersMap.get(id)?.hasTasks,\n )\n const folderIdsSet = new Set(folderIds)\n const loadingParentIds = new Set<string>()\n for (const folderId of expandedParentIdsThatHaveTasks) {\n if (!folderIdsSet.has(folderId)) {\n loadingParentIds.add(folderId)\n }\n }\n\n const loadingTasks: LoadingTasks = {}\n for (const folderId of loadingParentIds) {\n // find the folder by id\n const folder = foldersMap.get(folderId)\n if (folder) {\n loadingTasks[folderId] = folder.taskNames?.length || 0\n }\n }\n\n return loadingTasks\n}\n"],"names":["generateLoadingRows","count","attrib","_","index","uuid","generateDummyAttributes","i","determineLoadingTaskFolders","expandedFoldersTasks","expandedParentIds","foldersMap","folderIds","task","expandedParentIdsThatHaveTasks","id","folderIdsSet","loadingParentIds","folderId","loadingTasks","folder"],"mappings":";AAYO,MAAMA,IAAsB,CAACC,IAAQ,IAAIC,IAAS,CAAA,MAEhD,IAAI,MAAMD,CAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAACE,GAAGC,OAAW;AAAA,EACjD,IAAIC,EAAA;AAAA,EACJ,WAAW;AAAA,EACX,GAAGH;AAAA,EACH,GAQSI,IAA0B,CAACL,IAAQ,OACvC,MAAMA,CAAK,EACf,KAAK,IAAI,EACT,IAAI,CAACE,GAAGI,OACA;AAAA,EACL,MAAM,oBAAoBA,CAAC;AAAA,EAC3B,OAAO,CAAC,UAAU,MAAM;AAAA,EACxB,MAAM;AAAA,IACJ,MAAM;AAAA,EAAA;AAAA,EAER,UAAUA;AAAA,EAEb,GAiBQC,IAA8B,CAAC;AAAA,EAC1C,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,YAAAC;AACF,MAAuD;AAErD,QAAMC,IAAYH,EAAqB,IAAI,CAACI,MAASA,EAAK,QAAQ,GAC5DC,IAAiCJ,EAAkB;AAAA,IACvD,CAACK,MAAOJ,EAAW,IAAII,CAAE,GAAG;AAAA,EAAA,GAExBC,IAAe,IAAI,IAAIJ,CAAS,GAChCK,wBAAuB,IAAA;AAC7B,aAAWC,KAAYJ;AACrB,IAAKE,EAAa,IAAIE,CAAQ,KAC5BD,EAAiB,IAAIC,CAAQ;AAIjC,QAAMC,IAA6B,CAAA;AACnC,aAAWD,KAAYD,GAAkB;AAEvC,UAAMG,IAAST,EAAW,IAAIO,CAAQ;AACtC,IAAIE,MACFD,EAAaD,CAAQ,IAAIE,EAAO,WAAW,UAAU;AAAA,EAEzD;AAEA,SAAOD;AACT;"}
1
+ {"version":3,"file":"loadingUtils.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/loadingUtils.ts"],"sourcesContent":["import { TableRow } from '../types/table'\nimport { FolderNodeMap } from '../types/table'\nimport { LoadingTasks } from '../types'\nimport type { AttributeModel } from '@shared/api'\nimport { uuid } from 'short-uuid'\n\n/**\n * Generates an array of placeholder rows for loading state\n * @param attribs - Attribute models used to populate empty attribute fields\n * @param count - Number of loading rows to generate (default: 50)\n * @returns Array of TableRow objects with loading state\n */\nexport const generateLoadingRows = (count = 50, attrib = {}): TableRow[] => {\n // @ts-ignore\n return new Array(count).fill(0).map((_, index) => ({\n id: uuid(),\n isLoading: true,\n ...attrib,\n }))\n}\n\n/**\n * Generates an array of dummy attribute models for loading states\n * @param count - Number of dummy attributes to generate (default: 10)\n * @returns Array of AttributeModel objects\n */\nexport const generateDummyAttributes = (count = 10): AttributeModel[] => {\n return Array(count)\n .fill(null)\n .map((_, i): AttributeModel => {\n return {\n name: `loading-attribute${i}`,\n scope: ['folder', 'task'],\n data: {\n type: 'string',\n },\n position: i,\n }\n })\n}\n\n/**\n * Parameters for determineLoadingTaskFolders function\n */\nexport type DetermineLoadingTaskFoldersParams = {\n expandedFoldersTasks: { folderId: string | null }[]\n expandedParentIds: string[]\n foldersMap: FolderNodeMap\n}\n\n/**\n * Determines which folders are currently loading tasks\n * @param params - Object containing parameters for determining loading folders\n * @returns Array of folder IDs that are in loading state\n */\nexport const determineLoadingTaskFolders = ({\n expandedFoldersTasks,\n expandedParentIds,\n foldersMap,\n}: DetermineLoadingTaskFoldersParams): LoadingTasks => {\n // find the folderIds that are being fetched (not the ones that are already loaded)\n const folderIds = expandedFoldersTasks.map((task) => task.folderId)\n const expandedParentIdsThatHaveTasks = expandedParentIds.filter(\n (id) => foldersMap.get(id)?.hasTasks,\n )\n const folderIdsSet = new Set(folderIds)\n const loadingParentIds = new Set<string>()\n for (const folderId of expandedParentIdsThatHaveTasks) {\n if (!folderIdsSet.has(folderId)) {\n loadingParentIds.add(folderId)\n }\n }\n\n const loadingTasks: LoadingTasks = {}\n for (const folderId of loadingParentIds) {\n // find the folder by id\n const folder = foldersMap.get(folderId)\n if (folder) {\n loadingTasks[folderId] = folder.taskNames?.length || 0\n }\n }\n\n return loadingTasks\n}\n"],"names":["generateLoadingRows","count","attrib","_","index","uuid","generateDummyAttributes","i","determineLoadingTaskFolders","expandedFoldersTasks","expandedParentIds","foldersMap","folderIds","task","expandedParentIdsThatHaveTasks","id","folderIdsSet","loadingParentIds","folderId","loadingTasks","folder"],"mappings":";AAYO,MAAMA,IAAsB,CAACC,IAAQ,IAAIC,IAAS,CAAA,MAEhD,IAAI,MAAMD,CAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAACE,GAAGC,OAAW;AAAA,EACjD,IAAIC,EAAA;AAAA,EACJ,WAAW;AAAA,EACX,GAAGH;AAAA,EACH,GAQSI,IAA0B,CAACL,IAAQ,OACvC,MAAMA,CAAK,EACf,KAAK,IAAI,EACT,IAAI,CAACE,GAAGI,OACA;AAAA,EACL,MAAM,oBAAoBA,CAAC;AAAA,EAC3B,OAAO,CAAC,UAAU,MAAM;AAAA,EACxB,MAAM;AAAA,IACJ,MAAM;AAAA,EAAA;AAAA,EAER,UAAUA;AAAA,EAEb,GAiBQC,IAA8B,CAAC;AAAA,EAC1C,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,YAAAC;AACF,MAAuD;AAErD,QAAMC,IAAYH,EAAqB,IAAI,CAACI,MAASA,EAAK,QAAQ,GAC5DC,IAAiCJ,EAAkB;AAAA,IACvD,CAACK,MAAOJ,EAAW,IAAII,CAAE,GAAG;AAAA,EAAA,GAExBC,IAAe,IAAI,IAAIJ,CAAS,GAChCK,wBAAuB,IAAA;AAC7B,aAAWC,KAAYJ;AACrB,IAAKE,EAAa,IAAIE,CAAQ,KAC5BD,EAAiB,IAAIC,CAAQ;AAIjC,QAAMC,IAA6B,CAAA;AACnC,aAAWD,KAAYD,GAAkB;AAEvC,UAAMG,IAAST,EAAW,IAAIO,CAAQ;AACtC,IAAIE,MACFD,EAAaD,CAAQ,IAAIE,EAAO,WAAW,UAAU;AAAA,EAEzD;AAEA,SAAOD;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryFilterToClientFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.ts"],"sourcesContent":["import { Filter, FilterValue, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport { QueryFilter, QueryCondition } from '../types/operations'\nimport { format, parseISO, isValid } from 'date-fns'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { isRelativeDateValue, resolveRelativeValue } from './expandRelativeDates'\n\n// Option interface for filter options (from useBuildFilterOptions)\ninterface Option {\n id: string\n type?: string\n label: string\n icon?: string | null\n img?: string | null\n inverted?: boolean\n operator?: 'AND' | 'OR'\n values?: FilterValue[]\n allowsCustomValues?: boolean\n allowHasValue?: boolean\n allowNoValue?: boolean\n allowExcludes?: boolean\n operatorChangeable?: boolean\n singleSelect?: boolean\n}\n\n/**\n * Converts a QueryFilter back to Filter[] objects that can be consumed by the SearchFilter component\n * This requires the filter options to properly reconstruct the Filter objects with all their metadata\n */\nexport const queryFilterToClientFilter = (\n queryFilter: QueryFilter | undefined,\n filterOptions: Option[],\n): Filter[] => {\n if (!queryFilter?.conditions || queryFilter.conditions.length === 0) {\n return []\n }\n\n const filters: Filter[] = []\n const processedConditions = new Set<string>()\n\n // Process each condition in the query filter\n queryFilter.conditions.forEach((condition) => {\n if ('key' in condition) {\n // This is a QueryCondition\n const filter = convertConditionToFilter(condition, filterOptions, processedConditions)\n if (filter) {\n filters.push(filter)\n }\n } else {\n // This is a nested QueryFilter - check if it's a datetime range (gte+lte same key)\n const datetimeFilter = tryMergeDatetimeRange(condition, filterOptions)\n const textNullnessFilter = datetimeFilter\n ? null\n : tryMergeTextNullness(condition, filterOptions)\n if (datetimeFilter) {\n filters.push(datetimeFilter)\n } else if (textNullnessFilter) {\n filters.push(textNullnessFilter)\n } else {\n // Recursively process other nested QueryFilters\n const nestedFilters = queryFilterToClientFilter(condition, filterOptions)\n filters.push(...nestedFilters)\n }\n }\n })\n\n return mergeFiltersById(filters)\n}\n\n/**\n * Merges filters that share the same id by combining their values.\n * This handles the case where custom + non-custom values for the same field\n * are stored as separate conditions in the query filter (e.g. `in` + `like`)\n * but should be represented as a single filter with all values combined.\n */\nconst mergeFiltersById = (filters: Filter[]): Filter[] => {\n const filterMap = new Map<string, Filter>()\n\n for (const filter of filters) {\n const existing = filterMap.get(filter.id)\n if (existing) {\n // Merge values, avoiding duplicates by id\n const existingValueIds = new Set((existing.values || []).map((v) => v.id))\n const newValues = (filter.values || []).filter((v) => !existingValueIds.has(v.id))\n existing.values = [...(existing.values || []), ...newValues]\n } else {\n filterMap.set(filter.id, { ...filter, values: [...(filter.values || [])] })\n }\n }\n\n return Array.from(filterMap.values())\n}\n\n/**\n * Detects nested QueryFilters that represent datetime ranges (gte+lte on the same key)\n * and merges them into a single datetime Filter with proper range values.\n */\nexport const tryMergeDatetimeRange = (\n nestedFilter: QueryFilter,\n filterOptions: Option[],\n): Filter | null => {\n if (!nestedFilter.conditions || nestedFilter.conditions.length < 1) return null\n\n // All conditions must be QueryConditions (not nested QueryFilters)\n const conditions = nestedFilter.conditions.filter((c): c is QueryCondition => 'key' in c)\n if (conditions.length !== nestedFilter.conditions.length) return null\n\n // All conditions must share the same key\n const key = conditions[0].key\n if (!conditions.every((c) => c.key === key)) return null\n\n // Find the matching filter option and check it's a datetime type\n const filterOption = findFilterOption(key, filterOptions)\n if (!filterOption || filterOption.type !== 'datetime') return null\n\n // Extract gte (start) and lte (end) values, resolving relative dates\n const gteCondition = conditions.find((c) => c.operator === 'gte')\n const lteCondition = conditions.find((c) => c.operator === 'lte')\n if (!gteCondition && !lteCondition) return null\n\n const rawStartValue = gteCondition?.value as string | undefined\n const rawEndValue = lteCondition?.value as string | undefined\n const startISO =\n rawStartValue && isRelativeDateValue(rawStartValue)\n ? resolveRelativeValue(rawStartValue)\n : rawStartValue\n const endISO =\n rawEndValue && isRelativeDateValue(rawEndValue)\n ? resolveRelativeValue(rawEndValue)\n : rawEndValue\n\n // Build the range label\n let label = 'Custom range'\n if (startISO && endISO) {\n // Check if it matches a relative date pattern first\n const relativePattern = detectRelativeDatePattern(startISO, endISO)\n if (relativePattern) {\n label = relativePattern.label\n } else {\n // Fall back to showing the date range\n const startDate = parseISO(startISO)\n const endDate = parseISO(endISO)\n if (isValid(startDate) && isValid(endDate)) {\n const currentYear = new Date().getFullYear()\n const endDateFormat = endDate.getFullYear() === currentYear ? 'MMM d' : 'MMM d, yyyy'\n label = `${format(startDate, 'MMM d')} – ${format(endDate, endDateFormat)}`\n }\n }\n }\n\n // `values` holds the gte/lte range pair — used by clientFilterToQueryFilter for round-trip\n // but not part of the FilterValue type, so we extend it at runtime\n const rangeValue = {\n id: `custom-${startISO || ''}-${endISO || ''}`,\n label,\n values: [\n ...(startISO\n ? [\n {\n id: startISO,\n label: isValid(parseISO(startISO))\n ? format(parseISO(startISO), 'MMM d, yyyy')\n : startISO,\n },\n ]\n : []),\n ...(endISO\n ? [\n {\n id: endISO,\n label: isValid(parseISO(endISO)) ? format(parseISO(endISO), 'MMM d, yyyy') : endISO,\n },\n ]\n : []),\n ],\n } as FilterValue\n\n return {\n id: filterOption.id,\n type: filterOption.type as Filter['type'],\n label: filterOption.label,\n icon: filterOption.icon,\n inverted: nestedFilter.operator === 'or',\n values: [rangeValue],\n singleSelect: filterOption.singleSelect,\n }\n}\n\n/**\n * Detects the composite nullness groups produced by clientFilterToQueryFilter for\n * text fields (isnull OR eq '' / notnull AND ne '') and restores the\n * noValue/hasValue chip instead of recursing into the group's conditions.\n */\nexport const tryMergeTextNullness = (\n nestedFilter: QueryFilter,\n filterOptions: Option[],\n): Filter | null => {\n const conditions = nestedFilter.conditions?.filter((c): c is QueryCondition => 'key' in c) ?? []\n if (conditions.length !== 2 || conditions.length !== nestedFilter.conditions?.length) return null\n\n const key = conditions[0].key\n if (!conditions.every((c) => c.key === key)) return null\n\n const isNoValue =\n nestedFilter.operator === 'or' &&\n conditions.some((c) => c.operator === 'isnull') &&\n conditions.some((c) => c.operator === 'eq' && c.value === '')\n const isHasValue =\n nestedFilter.operator === 'and' &&\n conditions.some((c) => c.operator === 'notnull') &&\n conditions.some((c) => c.operator === 'ne' && c.value === '')\n if (!isNoValue && !isHasValue) return null\n\n const filterOption = findFilterOption(key, filterOptions)\n if (!filterOption) return null\n\n return {\n id: filterOption.id,\n type: filterOption.type as Filter['type'],\n label: filterOption.label,\n inverted: false,\n operator: 'OR',\n icon: filterOption.icon,\n values: isNoValue\n ? [{ id: 'noValue', label: 'No Value' }]\n : [{ id: 'hasValue', label: 'Has Value' }],\n isCustom: filterOption.allowsCustomValues,\n singleSelect: filterOption.singleSelect,\n }\n}\n\nconst convertConditionToFilter = (\n condition: QueryCondition,\n filterOptions: Option[],\n processedConditions: Set<string>,\n): Filter | null => {\n const { key, value, operator } = condition\n\n // check if the filter is a text search filter\n if (key === SEARCH_FILTER_ID) {\n const valuesArray = Array.isArray(value) ? value : [value || '']\n const filter: Filter = {\n id: SEARCH_FILTER_ID,\n type: 'string',\n label: '',\n values: valuesArray.map((v) => ({ id: String(v), label: String(v) })),\n }\n\n return filter\n }\n\n // Find the matching filter option\n const filterOption = findFilterOption(key, filterOptions)\n if (!filterOption) {\n return null\n }\n\n // Create a unique key for this condition to avoid duplicates\n const conditionKey = `${key}_${operator}_${JSON.stringify(value)}`\n if (processedConditions.has(conditionKey)) {\n return null\n }\n processedConditions.add(conditionKey)\n\n // Convert the condition values to FilterValue objects\n const filterValues = convertConditionValueToFilterValues(value, operator, filterOption)\n\n // hasValue/noValue chips encode the null-check in the value itself — marking them\n // inverted would flip the operator back on the next conversion (notnull <-> isnull)\n const isNullnessCheck =\n filterValues.length === 1 && ['hasValue', 'noValue'].includes(String(filterValues[0].id))\n\n // Determine if the filter is inverted based on the operator\n const inverted = isNullnessCheck ? false : isInvertedOperator(operator, filterOption.type)\n\n // Determine the filter operator (AND/OR)\n const filterOperator = getFilterOperator(operator, filterOption.type)\n\n const filter: Filter = {\n id: filterOption.id,\n type: filterOption.type as Filter['type'],\n label: filterOption.label,\n inverted,\n operator: filterOperator,\n icon: filterOption.icon,\n values: filterValues,\n isCustom: filterOption.allowsCustomValues,\n singleSelect: filterOption.singleSelect,\n }\n\n return filter\n}\n\nconst findFilterOption = (key: string, filterOptions: Option[]): Option | undefined => {\n // Try exact match first\n let option = filterOptions.find((opt) => opt.id === key)\n if (option) return option\n\n // Try to find by the base key (without prefixes)\n option = filterOptions.find(\n (opt) =>\n opt.id.endsWith(key) ||\n opt.id.replace(/^[^.]*\\./, '') === key ||\n opt.id.split('_').pop() === key,\n )\n if (option) return option\n\n // Try to find by label match\n option = filterOptions.find((opt) => opt.label?.toLowerCase() === key.toLowerCase())\n\n return option\n}\n\nconst convertConditionValueToFilterValues = (\n value: QueryCondition['value'],\n operator: QueryCondition['operator'],\n filterOption: Option,\n): FilterValue[] => {\n // Handle special operators for null/empty checks\n if (operator === 'isnull' || operator === 'notnull') {\n return operator === 'isnull'\n ? [{ id: 'noValue', label: 'No Value' }]\n : [{ id: 'hasValue', label: 'Has Value' }]\n }\n\n // Handle empty array cases - these represent \"No Value\" and \"Has Value\" conditions\n if (Array.isArray(value) && value.length === 0) {\n if (operator === 'eq') {\n // Empty array with 'eq' operator means \"No Value\"\n return [{ id: 'noValue', label: 'No Value' }]\n } else if (operator === 'ne') {\n // Empty array with 'ne' operator means \"Has Value\"\n return [{ id: 'hasValue', label: 'Has Value' }]\n }\n }\n\n if (value === undefined || value === null) {\n return []\n }\n\n // Convert value(s) to FilterValue objects\n const values = Array.isArray(value) ? value : [value]\n\n return values.map((val) => {\n let stringValue = String(val)\n let isCustomValue = false\n\n // Handle LIKE operator with wildcards - strip them and mark as custom\n if (operator === 'like' && typeof val === 'string') {\n // Remove leading and trailing % wildcards\n stringValue = val.replace(/^%/, '').replace(/%$/, '')\n isCustomValue = true\n }\n\n // Try to find existing option value with metadata (only if not already marked as custom from LIKE)\n if (!isCustomValue) {\n const existingValue = filterOption.values?.find((v: FilterValue) => v.id === stringValue)\n if (existingValue) {\n return existingValue\n }\n }\n\n // Format datetime values nicely instead of showing raw ISO strings\n if (filterOption.type === 'datetime' && typeof val === 'string') {\n try {\n const date = parseISO(val)\n if (isValid(date)) {\n return {\n id: stringValue,\n label: format(date, 'MMM d, yyyy'),\n isCustom: true,\n }\n }\n } catch {\n // fall through to default\n }\n }\n\n // Create a basic FilterValue if no existing option found or if it's a LIKE value\n return {\n id: stringValue,\n label: stringValue,\n isCustom: true,\n }\n })\n}\n\nconst isInvertedOperator = (operator: QueryCondition['operator'], type?: string): boolean => {\n const invertedOperators = ['ne', 'notin', 'excludes', 'excludesall', 'excludesany', 'notnull']\n return operator ? invertedOperators.includes(operator) : false\n}\n\nconst getFilterOperator = (operator: QueryCondition['operator'], type?: string): 'AND' | 'OR' => {\n // For list types, determine AND/OR based on the operator\n if (type?.startsWith('list_of_')) {\n if (operator === 'includesall' || operator === 'excludesall') {\n return 'AND'\n }\n return 'OR'\n }\n\n // Default to OR for most cases\n return 'OR'\n}\n\nexport default queryFilterToClientFilter\n"],"names":["queryFilterToClientFilter","queryFilter","filterOptions","filters","processedConditions","condition","filter","convertConditionToFilter","datetimeFilter","tryMergeDatetimeRange","textNullnessFilter","tryMergeTextNullness","nestedFilters","mergeFiltersById","filterMap","existing","existingValueIds","v","newValues","nestedFilter","conditions","c","key","filterOption","findFilterOption","gteCondition","lteCondition","rawStartValue","rawEndValue","startISO","isRelativeDateValue","resolveRelativeValue","endISO","label","relativePattern","detectRelativeDatePattern","startDate","parseISO","endDate","isValid","currentYear","endDateFormat","format","rangeValue","isNoValue","isHasValue","value","operator","SEARCH_FILTER_ID","valuesArray","conditionKey","filterValues","convertConditionValueToFilterValues","inverted","isInvertedOperator","filterOperator","getFilterOperator","option","opt","val","stringValue","isCustomValue","existingValue","date","type"],"mappings":"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"}
1
+ {"version":3,"file":"queryFilterToClientFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.ts"],"sourcesContent":["import { Filter, FilterValue, SEARCH_FILTER_ID } from '@ynput/ayon-react-components'\nimport type { QueryFilter, QueryCondition } from '../types/operations'\nimport { format, parseISO, isValid } from 'date-fns'\nimport { detectRelativeDatePattern } from '@shared/components/SearchFilter/filterDates'\nimport { isRelativeDateValue, resolveRelativeValue } from './expandRelativeDates'\n\n// Option interface for filter options (from useBuildFilterOptions)\ninterface Option {\n id: string\n type?: string\n label: string\n icon?: string | null\n img?: string | null\n inverted?: boolean\n operator?: 'AND' | 'OR'\n values?: FilterValue[]\n allowsCustomValues?: boolean\n allowHasValue?: boolean\n allowNoValue?: boolean\n allowExcludes?: boolean\n operatorChangeable?: boolean\n singleSelect?: boolean\n}\n\n/**\n * Converts a QueryFilter back to Filter[] objects that can be consumed by the SearchFilter component\n * This requires the filter options to properly reconstruct the Filter objects with all their metadata\n */\nexport const queryFilterToClientFilter = (\n queryFilter: QueryFilter | undefined,\n filterOptions: Option[],\n): Filter[] => {\n if (!queryFilter?.conditions || queryFilter.conditions.length === 0) {\n return []\n }\n\n const filters: Filter[] = []\n const processedConditions = new Set<string>()\n\n // Process each condition in the query filter\n queryFilter.conditions.forEach((condition) => {\n if ('key' in condition) {\n // This is a QueryCondition\n const filter = convertConditionToFilter(condition, filterOptions, processedConditions)\n if (filter) {\n filters.push(filter)\n }\n } else {\n // This is a nested QueryFilter - check if it's a datetime range (gte+lte same key)\n const datetimeFilter = tryMergeDatetimeRange(condition, filterOptions)\n const textNullnessFilter = datetimeFilter\n ? null\n : tryMergeTextNullness(condition, filterOptions)\n if (datetimeFilter) {\n filters.push(datetimeFilter)\n } else if (textNullnessFilter) {\n filters.push(textNullnessFilter)\n } else {\n // Recursively process other nested QueryFilters\n const nestedFilters = queryFilterToClientFilter(condition, filterOptions)\n filters.push(...nestedFilters)\n }\n }\n })\n\n return mergeFiltersById(filters)\n}\n\n/**\n * Merges filters that share the same id by combining their values.\n * This handles the case where custom + non-custom values for the same field\n * are stored as separate conditions in the query filter (e.g. `in` + `like`)\n * but should be represented as a single filter with all values combined.\n */\nconst mergeFiltersById = (filters: Filter[]): Filter[] => {\n const filterMap = new Map<string, Filter>()\n\n for (const filter of filters) {\n const existing = filterMap.get(filter.id)\n if (existing) {\n // Merge values, avoiding duplicates by id\n const existingValueIds = new Set((existing.values || []).map((v) => v.id))\n const newValues = (filter.values || []).filter((v) => !existingValueIds.has(v.id))\n existing.values = [...(existing.values || []), ...newValues]\n } else {\n filterMap.set(filter.id, { ...filter, values: [...(filter.values || [])] })\n }\n }\n\n return Array.from(filterMap.values())\n}\n\n/**\n * Detects nested QueryFilters that represent datetime ranges (gte+lte on the same key)\n * and merges them into a single datetime Filter with proper range values.\n */\nexport const tryMergeDatetimeRange = (\n nestedFilter: QueryFilter,\n filterOptions: Option[],\n): Filter | null => {\n if (!nestedFilter.conditions || nestedFilter.conditions.length < 1) return null\n\n // All conditions must be QueryConditions (not nested QueryFilters)\n const conditions = nestedFilter.conditions.filter((c): c is QueryCondition => 'key' in c)\n if (conditions.length !== nestedFilter.conditions.length) return null\n\n // All conditions must share the same key\n const key = conditions[0].key\n if (!conditions.every((c) => c.key === key)) return null\n\n // Find the matching filter option and check it's a datetime type\n const filterOption = findFilterOption(key, filterOptions)\n if (!filterOption || filterOption.type !== 'datetime') return null\n\n // Extract gte (start) and lte (end) values, resolving relative dates\n const gteCondition = conditions.find((c) => c.operator === 'gte')\n const lteCondition = conditions.find((c) => c.operator === 'lte')\n if (!gteCondition && !lteCondition) return null\n\n const rawStartValue = gteCondition?.value as string | undefined\n const rawEndValue = lteCondition?.value as string | undefined\n const startISO =\n rawStartValue && isRelativeDateValue(rawStartValue)\n ? resolveRelativeValue(rawStartValue)\n : rawStartValue\n const endISO =\n rawEndValue && isRelativeDateValue(rawEndValue)\n ? resolveRelativeValue(rawEndValue)\n : rawEndValue\n\n // Build the range label\n let label = 'Custom range'\n if (startISO && endISO) {\n // Check if it matches a relative date pattern first\n const relativePattern = detectRelativeDatePattern(startISO, endISO)\n if (relativePattern) {\n label = relativePattern.label\n } else {\n // Fall back to showing the date range\n const startDate = parseISO(startISO)\n const endDate = parseISO(endISO)\n if (isValid(startDate) && isValid(endDate)) {\n const currentYear = new Date().getFullYear()\n const endDateFormat = endDate.getFullYear() === currentYear ? 'MMM d' : 'MMM d, yyyy'\n label = `${format(startDate, 'MMM d')} – ${format(endDate, endDateFormat)}`\n }\n }\n }\n\n // `values` holds the gte/lte range pair — used by clientFilterToQueryFilter for round-trip\n // but not part of the FilterValue type, so we extend it at runtime\n const rangeValue = {\n id: `custom-${startISO || ''}-${endISO || ''}`,\n label,\n values: [\n ...(startISO\n ? [\n {\n id: startISO,\n label: isValid(parseISO(startISO))\n ? format(parseISO(startISO), 'MMM d, yyyy')\n : startISO,\n },\n ]\n : []),\n ...(endISO\n ? [\n {\n id: endISO,\n label: isValid(parseISO(endISO)) ? format(parseISO(endISO), 'MMM d, yyyy') : endISO,\n },\n ]\n : []),\n ],\n } as FilterValue\n\n return {\n id: filterOption.id,\n type: filterOption.type as Filter['type'],\n label: filterOption.label,\n icon: filterOption.icon,\n inverted: nestedFilter.operator === 'or',\n values: [rangeValue],\n singleSelect: filterOption.singleSelect,\n }\n}\n\n/**\n * Detects the composite nullness groups produced by clientFilterToQueryFilter for\n * text fields (isnull OR eq '' / notnull AND ne '') and restores the\n * noValue/hasValue chip instead of recursing into the group's conditions.\n */\nexport const tryMergeTextNullness = (\n nestedFilter: QueryFilter,\n filterOptions: Option[],\n): Filter | null => {\n const conditions = nestedFilter.conditions?.filter((c): c is QueryCondition => 'key' in c) ?? []\n if (conditions.length !== 2 || conditions.length !== nestedFilter.conditions?.length) return null\n\n const key = conditions[0].key\n if (!conditions.every((c) => c.key === key)) return null\n\n const isNoValue =\n nestedFilter.operator === 'or' &&\n conditions.some((c) => c.operator === 'isnull') &&\n conditions.some((c) => c.operator === 'eq' && c.value === '')\n const isHasValue =\n nestedFilter.operator === 'and' &&\n conditions.some((c) => c.operator === 'notnull') &&\n conditions.some((c) => c.operator === 'ne' && c.value === '')\n if (!isNoValue && !isHasValue) return null\n\n const filterOption = findFilterOption(key, filterOptions)\n if (!filterOption) return null\n\n return {\n id: filterOption.id,\n type: filterOption.type as Filter['type'],\n label: filterOption.label,\n inverted: false,\n operator: 'OR',\n icon: filterOption.icon,\n values: isNoValue\n ? [{ id: 'noValue', label: 'No Value' }]\n : [{ id: 'hasValue', label: 'Has Value' }],\n isCustom: filterOption.allowsCustomValues,\n singleSelect: filterOption.singleSelect,\n }\n}\n\nconst convertConditionToFilter = (\n condition: QueryCondition,\n filterOptions: Option[],\n processedConditions: Set<string>,\n): Filter | null => {\n const { key, value, operator } = condition\n\n // check if the filter is a text search filter\n if (key === SEARCH_FILTER_ID) {\n const valuesArray = Array.isArray(value) ? value : [value || '']\n const filter: Filter = {\n id: SEARCH_FILTER_ID,\n type: 'string',\n label: '',\n values: valuesArray.map((v) => ({ id: String(v), label: String(v) })),\n }\n\n return filter\n }\n\n // Find the matching filter option\n const filterOption = findFilterOption(key, filterOptions)\n if (!filterOption) {\n return null\n }\n\n // Create a unique key for this condition to avoid duplicates\n const conditionKey = `${key}_${operator}_${JSON.stringify(value)}`\n if (processedConditions.has(conditionKey)) {\n return null\n }\n processedConditions.add(conditionKey)\n\n // Convert the condition values to FilterValue objects\n const filterValues = convertConditionValueToFilterValues(value, operator, filterOption)\n\n // hasValue/noValue chips encode the null-check in the value itself — marking them\n // inverted would flip the operator back on the next conversion (notnull <-> isnull)\n const isNullnessCheck =\n filterValues.length === 1 && ['hasValue', 'noValue'].includes(String(filterValues[0].id))\n\n // Determine if the filter is inverted based on the operator\n const inverted = isNullnessCheck ? false : isInvertedOperator(operator, filterOption.type)\n\n // Determine the filter operator (AND/OR)\n const filterOperator = getFilterOperator(operator, filterOption.type)\n\n const filter: Filter = {\n id: filterOption.id,\n type: filterOption.type as Filter['type'],\n label: filterOption.label,\n inverted,\n operator: filterOperator,\n icon: filterOption.icon,\n values: filterValues,\n isCustom: filterOption.allowsCustomValues,\n singleSelect: filterOption.singleSelect,\n }\n\n return filter\n}\n\nconst findFilterOption = (key: string, filterOptions: Option[]): Option | undefined => {\n // Try exact match first\n let option = filterOptions.find((opt) => opt.id === key)\n if (option) return option\n\n // Try to find by the base key (without prefixes)\n option = filterOptions.find(\n (opt) =>\n opt.id.endsWith(key) ||\n opt.id.replace(/^[^.]*\\./, '') === key ||\n opt.id.split('_').pop() === key,\n )\n if (option) return option\n\n // Try to find by label match\n option = filterOptions.find((opt) => opt.label?.toLowerCase() === key.toLowerCase())\n\n return option\n}\n\nconst convertConditionValueToFilterValues = (\n value: QueryCondition['value'],\n operator: QueryCondition['operator'],\n filterOption: Option,\n): FilterValue[] => {\n // Handle special operators for null/empty checks\n if (operator === 'isnull' || operator === 'notnull') {\n return operator === 'isnull'\n ? [{ id: 'noValue', label: 'No Value' }]\n : [{ id: 'hasValue', label: 'Has Value' }]\n }\n\n // Handle empty array cases - these represent \"No Value\" and \"Has Value\" conditions\n if (Array.isArray(value) && value.length === 0) {\n if (operator === 'eq') {\n // Empty array with 'eq' operator means \"No Value\"\n return [{ id: 'noValue', label: 'No Value' }]\n } else if (operator === 'ne') {\n // Empty array with 'ne' operator means \"Has Value\"\n return [{ id: 'hasValue', label: 'Has Value' }]\n }\n }\n\n if (value === undefined || value === null) {\n return []\n }\n\n // Convert value(s) to FilterValue objects\n const values = Array.isArray(value) ? value : [value]\n\n return values.map((val) => {\n let stringValue = String(val)\n let isCustomValue = false\n\n // Handle LIKE operator with wildcards - strip them and mark as custom\n if (operator === 'like' && typeof val === 'string') {\n // Remove leading and trailing % wildcards\n stringValue = val.replace(/^%/, '').replace(/%$/, '')\n isCustomValue = true\n }\n\n // Try to find existing option value with metadata (only if not already marked as custom from LIKE)\n if (!isCustomValue) {\n const existingValue = filterOption.values?.find((v: FilterValue) => v.id === stringValue)\n if (existingValue) {\n return existingValue\n }\n }\n\n // Format datetime values nicely instead of showing raw ISO strings\n if (filterOption.type === 'datetime' && typeof val === 'string') {\n try {\n const date = parseISO(val)\n if (isValid(date)) {\n return {\n id: stringValue,\n label: format(date, 'MMM d, yyyy'),\n isCustom: true,\n }\n }\n } catch {\n // fall through to default\n }\n }\n\n // Create a basic FilterValue if no existing option found or if it's a LIKE value\n return {\n id: stringValue,\n label: stringValue,\n isCustom: true,\n }\n })\n}\n\nconst isInvertedOperator = (operator: QueryCondition['operator'], type?: string): boolean => {\n const invertedOperators = ['ne', 'notin', 'excludes', 'excludesall', 'excludesany', 'notnull']\n return operator ? invertedOperators.includes(operator) : false\n}\n\nconst getFilterOperator = (operator: QueryCondition['operator'], type?: string): 'AND' | 'OR' => {\n // For list types, determine AND/OR based on the operator\n if (type?.startsWith('list_of_')) {\n if (operator === 'includesall' || operator === 'excludesall') {\n return 'AND'\n }\n return 'OR'\n }\n\n // Default to OR for most cases\n return 'OR'\n}\n\nexport default queryFilterToClientFilter\n"],"names":["queryFilterToClientFilter","queryFilter","filterOptions","filters","processedConditions","condition","filter","convertConditionToFilter","datetimeFilter","tryMergeDatetimeRange","textNullnessFilter","tryMergeTextNullness","nestedFilters","mergeFiltersById","filterMap","existing","existingValueIds","v","newValues","nestedFilter","conditions","c","key","filterOption","findFilterOption","gteCondition","lteCondition","rawStartValue","rawEndValue","startISO","isRelativeDateValue","resolveRelativeValue","endISO","label","relativePattern","detectRelativeDatePattern","startDate","parseISO","endDate","isValid","currentYear","endDateFormat","format","rangeValue","isNoValue","isHasValue","value","operator","SEARCH_FILTER_ID","valuesArray","conditionKey","filterValues","convertConditionValueToFilterValues","inverted","isInvertedOperator","filterOperator","getFilterOperator","option","opt","val","stringValue","isCustomValue","existingValue","date","type"],"mappings":"iQA4BaA,EAA4B,CACvCC,EACAC,IACa,CACb,GAAI,CAACD,GAAa,YAAcA,EAAY,WAAW,SAAW,EAChE,MAAO,CAAA,EAGT,MAAME,EAAoB,CAAA,EACpBC,MAA0B,IAGhC,OAAAH,EAAY,WAAW,QAASI,GAAc,CAC5C,GAAI,QAASA,EAAW,CAEtB,MAAMC,EAASC,EAAyBF,EAAWH,EAAeE,CAAmB,EACjFE,GACFH,EAAQ,KAAKG,CAAM,CAEvB,KAAO,CAEL,MAAME,EAAiBC,EAAsBJ,EAAWH,CAAa,EAC/DQ,EAAqBF,EACvB,KACAG,EAAqBN,EAAWH,CAAa,EACjD,GAAIM,EACFL,EAAQ,KAAKK,CAAc,UAClBE,EACTP,EAAQ,KAAKO,CAAkB,MAC1B,CAEL,MAAME,EAAgBZ,EAA0BK,EAAWH,CAAa,EACxEC,EAAQ,KAAK,GAAGS,CAAa,CAC/B,CACF,CACF,CAAC,EAEMC,EAAiBV,CAAO,CACjC,EAQMU,EAAoBV,GAAgC,CACxD,MAAMW,MAAgB,IAEtB,UAAWR,KAAUH,EAAS,CAC5B,MAAMY,EAAWD,EAAU,IAAIR,EAAO,EAAE,EACxC,GAAIS,EAAU,CAEZ,MAAMC,EAAmB,IAAI,KAAKD,EAAS,QAAU,IAAI,IAAKE,GAAMA,EAAE,EAAE,CAAC,EACnEC,GAAaZ,EAAO,QAAU,CAAA,GAAI,OAAQW,GAAM,CAACD,EAAiB,IAAIC,EAAE,EAAE,CAAC,EACjFF,EAAS,OAAS,CAAC,GAAIA,EAAS,QAAU,CAAA,EAAK,GAAGG,CAAS,CAC7D,MACEJ,EAAU,IAAIR,EAAO,GAAI,CAAE,GAAGA,EAAQ,OAAQ,CAAC,GAAIA,EAAO,QAAU,CAAA,CAAG,EAAG,CAE9E,CAEA,OAAO,MAAM,KAAKQ,EAAU,OAAA,CAAQ,CACtC,EAMaL,EAAwB,CACnCU,EACAjB,IACkB,CAClB,GAAI,CAACiB,EAAa,YAAcA,EAAa,WAAW,OAAS,EAAG,OAAO,KAG3E,MAAMC,EAAaD,EAAa,WAAW,OAAQE,GAA2B,QAASA,CAAC,EACxF,GAAID,EAAW,SAAWD,EAAa,WAAW,OAAQ,OAAO,KAGjE,MAAMG,EAAMF,EAAW,CAAC,EAAE,IAC1B,GAAI,CAACA,EAAW,MAAOC,GAAMA,EAAE,MAAQC,CAAG,EAAG,OAAO,KAGpD,MAAMC,EAAeC,EAAiBF,EAAKpB,CAAa,EACxD,GAAI,CAACqB,GAAgBA,EAAa,OAAS,WAAY,OAAO,KAG9D,MAAME,EAAeL,EAAW,KAAMC,GAAMA,EAAE,WAAa,KAAK,EAC1DK,EAAeN,EAAW,KAAMC,GAAMA,EAAE,WAAa,KAAK,EAChE,GAAI,CAACI,GAAgB,CAACC,EAAc,OAAO,KAE3C,MAAMC,EAAgBF,GAAc,MAC9BG,EAAcF,GAAc,MAC5BG,EACJF,GAAiBG,EAAAA,oBAAoBH,CAAa,EAC9CI,EAAAA,qBAAqBJ,CAAa,EAClCA,EACAK,EACJJ,GAAeE,EAAAA,oBAAoBF,CAAW,EAC1CG,EAAAA,qBAAqBH,CAAW,EAChCA,EAGN,IAAIK,EAAQ,eACZ,GAAIJ,GAAYG,EAAQ,CAEtB,MAAME,EAAkBC,EAAAA,0BAA0BN,EAAUG,CAAM,EAClE,GAAIE,EACFD,EAAQC,EAAgB,UACnB,CAEL,MAAME,EAAYC,EAAAA,SAASR,CAAQ,EAC7BS,EAAUD,EAAAA,SAASL,CAAM,EAC/B,GAAIO,EAAAA,QAAQH,CAAS,GAAKG,EAAAA,QAAQD,CAAO,EAAG,CAC1C,MAAME,EAAc,IAAI,KAAA,EAAO,YAAA,EACzBC,EAAgBH,EAAQ,YAAA,IAAkBE,EAAc,QAAU,cACxEP,EAAQ,GAAGS,SAAON,EAAW,OAAO,CAAC,MAAMM,SAAOJ,EAASG,CAAa,CAAC,EAC3E,CACF,CACF,CAIA,MAAME,EAAa,CACjB,GAAI,UAAUd,GAAY,EAAE,IAAIG,GAAU,EAAE,GAC5C,MAAAC,EACA,OAAQ,CACN,GAAIJ,EACA,CACE,CACE,GAAIA,EACJ,MAAOU,EAAAA,QAAQF,EAAAA,SAASR,CAAQ,CAAC,EAC7Ba,EAAAA,OAAOL,WAASR,CAAQ,EAAG,aAAa,EACxCA,CAAA,CACN,EAEF,CAAA,EACJ,GAAIG,EACA,CACE,CACE,GAAIA,EACJ,MAAOO,EAAAA,QAAQF,EAAAA,SAASL,CAAM,CAAC,EAAIU,EAAAA,OAAOL,WAASL,CAAM,EAAG,aAAa,EAAIA,CAAA,CAC/E,EAEF,CAAA,CAAC,CACP,EAGF,MAAO,CACL,GAAIT,EAAa,GACjB,KAAMA,EAAa,KACnB,MAAOA,EAAa,MACpB,KAAMA,EAAa,KACnB,SAAUJ,EAAa,WAAa,KACpC,OAAQ,CAACwB,CAAU,EACnB,aAAcpB,EAAa,YAAA,CAE/B,EAOaZ,EAAuB,CAClCQ,EACAjB,IACkB,CAClB,MAAMkB,EAAaD,EAAa,YAAY,OAAQE,GAA2B,QAASA,CAAC,GAAK,CAAA,EAC9F,GAAID,EAAW,SAAW,GAAKA,EAAW,SAAWD,EAAa,YAAY,OAAQ,OAAO,KAE7F,MAAMG,EAAMF,EAAW,CAAC,EAAE,IAC1B,GAAI,CAACA,EAAW,MAAOC,GAAMA,EAAE,MAAQC,CAAG,EAAG,OAAO,KAEpD,MAAMsB,EACJzB,EAAa,WAAa,MAC1BC,EAAW,KAAMC,GAAMA,EAAE,WAAa,QAAQ,GAC9CD,EAAW,KAAMC,GAAMA,EAAE,WAAa,MAAQA,EAAE,QAAU,EAAE,EACxDwB,EACJ1B,EAAa,WAAa,OAC1BC,EAAW,KAAMC,GAAMA,EAAE,WAAa,SAAS,GAC/CD,EAAW,KAAMC,GAAMA,EAAE,WAAa,MAAQA,EAAE,QAAU,EAAE,EAC9D,GAAI,CAACuB,GAAa,CAACC,EAAY,OAAO,KAEtC,MAAMtB,EAAeC,EAAiBF,EAAKpB,CAAa,EACxD,OAAKqB,EAEE,CACL,GAAIA,EAAa,GACjB,KAAMA,EAAa,KACnB,MAAOA,EAAa,MACpB,SAAU,GACV,SAAU,KACV,KAAMA,EAAa,KACnB,OAAQqB,EACJ,CAAC,CAAE,GAAI,UAAW,MAAO,WAAY,EACrC,CAAC,CAAE,GAAI,WAAY,MAAO,YAAa,EAC3C,SAAUrB,EAAa,mBACvB,aAAcA,EAAa,YAAA,EAbH,IAe5B,EAEMhB,EAA2B,CAC/BF,EACAH,EACAE,IACkB,CAClB,KAAM,CAAE,IAAAkB,EAAK,MAAAwB,EAAO,SAAAC,CAAA,EAAa1C,EAGjC,GAAIiB,IAAQ0B,EAAAA,iBAAkB,CAC5B,MAAMC,EAAc,MAAM,QAAQH,CAAK,EAAIA,EAAQ,CAACA,GAAS,EAAE,EAQ/D,MAPuB,CACrB,GAAIE,EAAAA,iBACJ,KAAM,SACN,MAAO,GACP,OAAQC,EAAY,IAAKhC,IAAO,CAAE,GAAI,OAAOA,CAAC,EAAG,MAAO,OAAOA,CAAC,GAAI,CAAA,CAIxE,CAGA,MAAMM,EAAeC,EAAiBF,EAAKpB,CAAa,EACxD,GAAI,CAACqB,EACH,OAAO,KAIT,MAAM2B,EAAe,GAAG5B,CAAG,IAAIyB,CAAQ,IAAI,KAAK,UAAUD,CAAK,CAAC,GAChE,GAAI1C,EAAoB,IAAI8C,CAAY,EACtC,OAAO,KAET9C,EAAoB,IAAI8C,CAAY,EAGpC,MAAMC,EAAeC,EAAoCN,EAAOC,EAAUxB,CAAY,EAQhF8B,EAHJF,EAAa,SAAW,GAAK,CAAC,WAAY,SAAS,EAAE,SAAS,OAAOA,EAAa,CAAC,EAAE,EAAE,CAAC,EAGvD,GAAQG,EAAmBP,EAAUxB,EAAa,IAAI,EAGnFgC,EAAiBC,EAAkBT,EAAUxB,EAAa,IAAI,EAcpE,MAZuB,CACrB,GAAIA,EAAa,GACjB,KAAMA,EAAa,KACnB,MAAOA,EAAa,MACpB,SAAA8B,EACA,SAAUE,EACV,KAAMhC,EAAa,KACnB,OAAQ4B,EACR,SAAU5B,EAAa,mBACvB,aAAcA,EAAa,YAAA,CAI/B,EAEMC,EAAmB,CAACF,EAAapB,IAAgD,CAErF,IAAIuD,EAASvD,EAAc,KAAMwD,GAAQA,EAAI,KAAOpC,CAAG,EAUvD,OATImC,IAGJA,EAASvD,EAAc,KACpBwD,GACCA,EAAI,GAAG,SAASpC,CAAG,GACnBoC,EAAI,GAAG,QAAQ,WAAY,EAAE,IAAMpC,GACnCoC,EAAI,GAAG,MAAM,GAAG,EAAE,QAAUpC,CAAA,EAE5BmC,KAGJA,EAASvD,EAAc,KAAMwD,GAAQA,EAAI,OAAO,YAAA,IAAkBpC,EAAI,aAAa,GAE5EmC,CACT,EAEML,EAAsC,CAC1CN,EACAC,EACAxB,IACkB,CAElB,GAAIwB,IAAa,UAAYA,IAAa,UACxC,OAAOA,IAAa,SAChB,CAAC,CAAE,GAAI,UAAW,MAAO,UAAA,CAAY,EACrC,CAAC,CAAE,GAAI,WAAY,MAAO,YAAa,EAI7C,GAAI,MAAM,QAAQD,CAAK,GAAKA,EAAM,SAAW,EAAG,CAC9C,GAAIC,IAAa,KAEf,MAAO,CAAC,CAAE,GAAI,UAAW,MAAO,WAAY,EAC9C,GAAWA,IAAa,KAEtB,MAAO,CAAC,CAAE,GAAI,WAAY,MAAO,YAAa,CAElD,CAEA,OAA2BD,GAAU,KAC5B,CAAA,GAIM,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAACA,CAAK,GAEtC,IAAKa,GAAQ,CACzB,IAAIC,EAAc,OAAOD,CAAG,EACxBE,EAAgB,GAUpB,GAPId,IAAa,QAAU,OAAOY,GAAQ,WAExCC,EAAcD,EAAI,QAAQ,KAAM,EAAE,EAAE,QAAQ,KAAM,EAAE,EACpDE,EAAgB,IAId,CAACA,EAAe,CAClB,MAAMC,EAAgBvC,EAAa,QAAQ,KAAMN,GAAmBA,EAAE,KAAO2C,CAAW,EACxF,GAAIE,EACF,OAAOA,CAEX,CAGA,GAAIvC,EAAa,OAAS,YAAc,OAAOoC,GAAQ,SACrD,GAAI,CACF,MAAMI,EAAO1B,EAAAA,SAASsB,CAAG,EACzB,GAAIpB,EAAAA,QAAQwB,CAAI,EACd,MAAO,CACL,GAAIH,EACJ,MAAOlB,EAAAA,OAAOqB,EAAM,aAAa,EACjC,SAAU,EAAA,CAGhB,MAAQ,CAER,CAIF,MAAO,CACL,GAAIH,EACJ,MAAOA,EACP,SAAU,EAAA,CAEd,CAAC,CACH,EAEMN,EAAqB,CAACP,EAAsCiB,IAEzDjB,EADmB,CAAC,KAAM,QAAS,WAAY,cAAe,cAAe,SAAS,EACzD,SAASA,CAAQ,EAAI,GAGrDS,EAAoB,CAACT,EAAsCiB,IAE3DA,GAAM,WAAW,UAAU,IACzBjB,IAAa,eAAiBA,IAAa,eACtC,MAMJ"}