@ynput/ayon-frontend-shared 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1168) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +37 -198
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +248 -496
  6. package/dist/ProjectTreeTable.es.js.map +1 -1
  7. package/dist/Slicer.cjs.js +1 -1
  8. package/dist/Slicer.es.js +31 -230
  9. package/dist/Slicer.es.js.map +1 -1
  10. package/dist/api.cjs.js +1 -1
  11. package/dist/api.es.js +93 -93
  12. package/dist/components.cjs.js +1 -1
  13. package/dist/components.es.js +131 -126
  14. package/dist/components.es.js.map +1 -1
  15. package/dist/index.cjs.js +1 -1
  16. package/dist/index.es.js +33 -128
  17. package/dist/index.es.js.map +1 -1
  18. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  19. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  20. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  21. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  22. package/dist/shared/src/api/generated/graphql.cjs.js +45 -25
  23. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  24. package/dist/shared/src/api/generated/graphql.es.js +54 -34
  25. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  26. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  27. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  28. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  29. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  30. package/dist/shared/src/api/queries/actions/getActions.cjs.js.map +1 -1
  31. package/dist/shared/src/api/queries/actions/getActions.es.js.map +1 -1
  32. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  33. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  34. package/dist/shared/src/api/queries/activities/getActivities.es.js +4 -4
  35. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  36. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
  38. package/dist/shared/src/api/queries/activities/patchTableLatestComments.cjs.js.map +1 -1
  39. package/dist/shared/src/api/queries/activities/patchTableLatestComments.es.js.map +1 -1
  40. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
  42. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
  43. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
  44. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +99 -201
  45. package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
  46. package/dist/shared/src/api/queries/addons/updateAddons.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/addons/updateAddons.es.js.map +1 -1
  48. package/dist/shared/src/api/queries/attributes/getAttributes.cjs.js.map +1 -1
  49. package/dist/shared/src/api/queries/attributes/getAttributes.es.js.map +1 -1
  50. package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
  52. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  53. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  54. package/dist/shared/src/api/queries/entities/getEntity.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/entities/getEntity.es.js.map +1 -1
  56. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
  57. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  58. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +133 -142
  59. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  60. package/dist/shared/src/api/queries/entities/patchDetailsPanel.cjs.js.map +1 -1
  61. package/dist/shared/src/api/queries/entities/patchDetailsPanel.es.js.map +1 -1
  62. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
  63. package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
  64. package/dist/shared/src/api/queries/entityLists/getLists.es.js +151 -202
  65. package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
  66. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
  67. package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
  68. package/dist/shared/src/api/queries/entityLists/listFolders.es.js +40 -95
  69. package/dist/shared/src/api/queries/entityLists/listFolders.es.js.map +1 -1
  70. package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
  71. package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
  72. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.cjs.js.map +1 -1
  73. package/dist/shared/src/api/queries/folders/getFolderDeleteInfo.es.js.map +1 -1
  74. package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
  75. package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
  76. package/dist/shared/src/api/queries/folders/getFolders.es.js +80 -129
  77. package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/links/getEntityLinks.es.js +111 -167
  81. package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
  83. package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
  84. package/dist/shared/src/api/queries/links/getLinks.es.js +58 -73
  85. package/dist/shared/src/api/queries/links/getLinks.es.js.map +1 -1
  86. package/dist/shared/src/api/queries/links/updateLinks.cjs.js.map +1 -1
  87. package/dist/shared/src/api/queries/links/updateLinks.es.js.map +1 -1
  88. package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
  89. package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
  90. package/dist/shared/src/api/queries/overview/getOverview.es.js +344 -345
  91. package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
  92. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js +1 -1
  93. package/dist/shared/src/api/queries/overview/patchVersions.cjs.js.map +1 -1
  94. package/dist/shared/src/api/queries/overview/patchVersions.es.js +130 -77
  95. package/dist/shared/src/api/queries/overview/patchVersions.es.js.map +1 -1
  96. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  97. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  98. package/dist/shared/src/api/queries/overview/updateOverview.es.js +136 -132
  99. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  100. package/dist/shared/src/api/queries/products/getFolderProducts.cjs.js.map +1 -1
  101. package/dist/shared/src/api/queries/products/getFolderProducts.es.js.map +1 -1
  102. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
  103. package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
  104. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +80 -134
  105. package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
  106. package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
  107. package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
  108. package/dist/shared/src/api/queries/review/getReview.es.js +105 -86
  109. package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  111. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  112. package/dist/shared/src/api/queries/system/getSystem.cjs.js.map +1 -1
  113. package/dist/shared/src/api/queries/system/getSystem.es.js.map +1 -1
  114. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  115. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  116. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +151 -184
  117. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  118. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -2
  119. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  120. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -2
  121. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  122. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
  123. package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
  124. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +486 -490
  125. package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
  126. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.cjs.js.map +1 -1
  127. package/dist/shared/src/api/queries/versions/getVersionsProductsUtils.es.js.map +1 -1
  128. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -1
  129. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -1
  130. package/dist/shared/src/api/queries/views/getViews.cjs.js.map +1 -1
  131. package/dist/shared/src/api/queries/views/getViews.es.js.map +1 -1
  132. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  133. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  134. package/dist/shared/src/api/queries/watchers/getWatchers.cjs.js.map +1 -1
  135. package/dist/shared/src/api/queries/watchers/getWatchers.es.js.map +1 -1
  136. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -1
  137. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -1
  138. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  139. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  140. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +28 -30
  141. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  142. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
  143. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
  144. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +29 -125
  145. package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js.map +1 -1
  146. package/dist/shared/src/components/Chips/Chips.cjs.js +1 -1
  147. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  148. package/dist/shared/src/components/Chips/Chips.es.js +18 -17
  149. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  150. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +3 -3
  151. package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
  152. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +16 -307
  153. package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
  154. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js +5 -5
  155. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js.map +1 -1
  156. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js +49 -145
  157. package/dist/shared/src/components/DeleteEntitiesConfirm/DeleteConfirmContent.es.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +5 -5
  159. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +45 -141
  161. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  162. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  163. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  164. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +27 -180
  165. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  166. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  167. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  168. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +9 -192
  169. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  170. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +2 -2
  171. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  172. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +5 -197
  173. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  174. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +4 -4
  175. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
  176. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +18 -114
  177. package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
  178. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +2 -2
  179. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
  180. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +13 -109
  181. package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js.map +1 -1
  182. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  183. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  184. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +11 -313
  185. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  186. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
  187. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
  188. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +23 -119
  189. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
  190. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
  191. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
  192. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +0 -111
  193. package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js.map +1 -1
  194. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js +1 -1
  195. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.cjs.js.map +1 -1
  196. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js +1 -1
  197. package/dist/shared/src/components/DetailsPanelDetails/hooks/useQuillFormats.es.js.map +1 -1
  198. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
  199. package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
  200. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +13 -311
  201. package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
  202. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  203. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  204. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +86 -270
  205. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  206. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
  207. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
  208. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +34 -332
  209. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -1
  210. package/dist/shared/src/components/EntityPath/EntityPath.cjs.js.map +1 -1
  211. package/dist/shared/src/components/EntityPath/EntityPath.es.js.map +1 -1
  212. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
  213. package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
  214. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +15 -307
  215. package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
  216. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.cjs.js.map +1 -1
  217. package/dist/shared/src/components/EnumEditor/DraggableEnumEditorItem.es.js.map +1 -1
  218. package/dist/shared/src/components/EnumEditor/EnumEditorItem.cjs.js.map +1 -1
  219. package/dist/shared/src/components/EnumEditor/EnumEditorItem.es.js.map +1 -1
  220. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  221. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  222. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +89 -290
  223. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  224. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js +2 -2
  225. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.cjs.js.map +1 -1
  226. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js +10 -106
  227. package/dist/shared/src/components/FilterErrorActions/FilterErrorActions.es.js.map +1 -1
  228. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js +1 -1
  229. package/dist/shared/src/components/InfoMessage/InfoMessage.cjs.js.map +1 -1
  230. package/dist/shared/src/components/InfoMessage/InfoMessage.es.js +6 -5
  231. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  232. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  233. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
  234. package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
  235. package/dist/shared/src/components/LinksManager/LinksManager.es.js +51 -343
  236. package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
  237. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  238. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  239. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +7 -209
  240. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  241. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  242. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  243. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +2 -202
  244. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  245. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
  246. package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
  247. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -182
  248. package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
  249. package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
  250. package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
  251. package/dist/shared/src/components/Menu/Menu.es.js +48 -340
  252. package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
  253. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  254. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  255. package/dist/shared/src/components/Menu/MenuItem.es.js +20 -313
  256. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  257. package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
  258. package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
  259. package/dist/shared/src/components/Menu/MenuList.es.js +74 -370
  260. package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
  261. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
  262. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  263. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +16 -312
  264. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  265. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  266. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  267. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +48 -343
  268. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  269. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +2 -2
  270. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
  271. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +226 -368
  272. package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
  273. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  274. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  275. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +89 -375
  276. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  277. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  278. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  279. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +3 -296
  280. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  281. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
  282. package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
  283. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +34 -331
  284. package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
  285. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
  286. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  287. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +30 -328
  288. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  289. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +5 -5
  290. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  291. package/dist/shared/src/components/RenameForm/RenameForm.es.js +77 -369
  292. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  293. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  294. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  295. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +114 -312
  296. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  297. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  298. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  299. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +66 -362
  300. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  301. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  302. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  303. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +14 -313
  304. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  305. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  306. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  307. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +70 -72
  308. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  309. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
  310. package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
  311. package/dist/shared/src/components/ReviewablesSelector/Card.es.js +24 -323
  312. package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
  313. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js +1 -1
  314. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -1
  315. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js +2 -1
  316. package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -1
  317. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  318. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  319. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +441 -523
  320. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  321. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +7 -7
  322. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  323. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +29 -326
  324. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  325. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +8 -5
  326. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
  327. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +36 -22
  328. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
  329. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +4 -4
  330. package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
  331. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +53 -352
  332. package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js.map +1 -1
  333. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +2 -2
  334. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  335. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +95 -391
  336. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  337. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js +2 -2
  338. package/dist/shared/src/components/SyncButton/SyncButton.cjs.js.map +1 -1
  339. package/dist/shared/src/components/SyncButton/SyncButton.es.js +52 -165
  340. package/dist/shared/src/components/SyncButton/SyncButton.es.js.map +1 -1
  341. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +3 -3
  342. package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
  343. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +35 -331
  344. package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
  345. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
  346. package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
  347. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +26 -122
  348. package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
  349. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
  350. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  351. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +22 -118
  352. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  353. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +13 -13
  354. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  355. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +99 -297
  356. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  357. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  358. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  359. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +61 -259
  360. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  361. package/dist/shared/src/config/plannerFeatures.cjs.js.map +1 -1
  362. package/dist/shared/src/config/plannerFeatures.es.js.map +1 -1
  363. package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
  364. package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
  365. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  366. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  367. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -207
  368. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  369. package/dist/shared/src/containers/Actions/ActionIcon.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/Actions/ActionIcon.es.js.map +1 -1
  371. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  372. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  373. package/dist/shared/src/containers/Actions/Actions.es.js +51 -247
  374. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  375. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js.map +1 -1
  376. package/dist/shared/src/containers/Actions/ActionsDropdown/ActionsDropdown.es.js.map +1 -1
  377. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  378. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  379. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +20 -320
  380. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  381. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/ContextMenu/ContextMenuItem.es.js.map +1 -1
  383. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.cjs.js.map +1 -1
  384. package/dist/shared/src/containers/ContextMenu/useCreateContextMenu.es.js.map +1 -1
  385. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  386. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  387. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +143 -324
  388. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  389. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +3 -3
  390. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  391. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +27 -326
  392. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  393. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  394. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  395. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +39 -233
  396. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  397. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  398. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  399. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +65 -252
  400. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  401. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
  402. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
  403. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +16 -314
  404. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js.map +1 -1
  405. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
  406. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
  407. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +61 -351
  408. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
  409. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +5 -5
  410. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
  411. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +20 -116
  412. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js.map +1 -1
  413. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
  414. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
  415. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +2 -303
  416. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
  417. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js +1 -1
  418. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.cjs.js.map +1 -1
  419. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js +51 -147
  420. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.es.js.map +1 -1
  421. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  422. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  423. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -199
  424. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  425. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.es.js.map +1 -1
  427. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js +1 -1
  428. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js.map +1 -1
  429. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js +12 -12
  430. package/dist/shared/src/containers/DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.es.js.map +1 -1
  431. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.cjs.js.map +1 -1
  432. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.es.js.map +1 -1
  433. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +9 -9
  434. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
  435. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -317
  436. package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
  437. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
  438. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
  439. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +13 -214
  440. package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
  441. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
  442. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
  443. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +22 -320
  444. package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
  445. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
  446. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  447. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +27 -304
  448. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  449. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.cjs.js.map +1 -1
  450. package/dist/shared/src/containers/DetailsPanel/helpers/buildDetailsPanelTitles.es.js.map +1 -1
  451. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/DetailsPanel/helpers/buildEntityTypeIcons.es.js.map +1 -1
  453. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.cjs.js.map +1 -1
  454. package/dist/shared/src/containers/DetailsPanel/helpers/getAllProjectsStatuses.es.js.map +1 -1
  455. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/DetailsPanel/helpers/getEntityPathData.es.js.map +1 -1
  457. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
  458. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
  459. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +10 -106
  460. package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
  461. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.cjs.js.map +1 -1
  462. package/dist/shared/src/containers/DetailsPanel/helpers/mergeProjectInfo.es.js.map +1 -1
  463. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  464. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  465. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -206
  466. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  467. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +2 -2
  468. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  469. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +74 -370
  470. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  471. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  472. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  473. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +20 -321
  474. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  475. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +6 -6
  476. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  477. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +32 -335
  478. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  479. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +3 -3
  480. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  481. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +12 -315
  482. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  483. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
  484. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
  485. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +11 -107
  486. package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js.map +1 -1
  487. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  488. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  489. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +23 -225
  490. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  491. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
  492. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
  493. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +27 -123
  494. package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js.map +1 -1
  495. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/EntityPickerDialog/util/getExpandedFoldersFromIds.es.js.map +1 -1
  497. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  498. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  499. package/dist/shared/src/containers/Feed/Feed.es.js +65 -242
  500. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  501. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
  502. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
  503. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
  504. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
  505. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +8 -306
  506. package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js.map +1 -1
  507. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  508. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  509. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +145 -418
  510. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  511. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  512. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  513. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +18 -314
  514. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  515. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  516. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  517. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -120
  518. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  519. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
  520. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
  521. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +42 -328
  522. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
  523. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.styled.es.js.map +1 -1
  525. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  526. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  527. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +227 -369
  528. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  529. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -1
  530. package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -1
  531. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
  532. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
  533. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +38 -338
  534. package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js.map +1 -1
  535. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
  536. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
  537. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +22 -321
  538. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
  539. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
  540. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
  541. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +9 -105
  542. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -1
  543. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
  544. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
  545. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +21 -321
  546. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
  547. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js +1 -1
  548. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.cjs.js.map +1 -1
  549. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js +16 -26
  550. package/dist/shared/src/containers/Feed/components/CommentInput/modules/index.es.js.map +1 -1
  551. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js +2 -0
  552. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.cjs.js.map +1 -0
  553. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js +14 -0
  554. package/dist/shared/src/containers/Feed/components/CommentInput/quillFormats.es.js.map +1 -0
  555. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js +1 -1
  556. package/dist/shared/src/containers/Feed/components/CommentInput/types.cjs.js.map +1 -1
  557. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js +2 -15
  558. package/dist/shared/src/containers/Feed/components/CommentInput/types.es.js.map +1 -1
  559. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +2 -2
  560. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
  561. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +63 -359
  562. package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js.map +1 -1
  563. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
  564. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
  565. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +57 -353
  566. package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
  567. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  568. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  569. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +14 -307
  570. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  571. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  572. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  573. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +34 -235
  574. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  575. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  576. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  577. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +67 -163
  578. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  579. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
  580. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +18 -8
  581. package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
  582. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
  583. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
  584. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +10 -106
  585. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
  586. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.cjs.js.map +1 -1
  587. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionUsers.es.js.map +1 -1
  588. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
  589. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
  590. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +13 -109
  591. package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js.map +1 -1
  592. package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
  593. package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
  594. package/dist/shared/src/containers/ListTable/ListTable.es.js +116 -282
  595. package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
  596. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  597. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  598. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +58 -188
  599. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  600. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
  601. package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
  602. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +46 -340
  603. package/dist/shared/src/containers/ListTable/ListTableHeader.es.js.map +1 -1
  604. package/dist/shared/src/containers/ListTable/ListTableWidgets.cjs.js.map +1 -1
  605. package/dist/shared/src/containers/ListTable/ListTableWidgets.es.js.map +1 -1
  606. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.cjs.js.map +1 -1
  607. package/dist/shared/src/containers/MoveEntityDialog/MoveEntityDialog.es.js.map +1 -1
  608. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js +3 -3
  609. package/dist/shared/src/containers/NewEntity/components/NewEntity.cjs.js.map +1 -1
  610. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js +170 -456
  611. package/dist/shared/src/containers/NewEntity/components/NewEntity.es.js.map +1 -1
  612. package/dist/shared/src/containers/NewEntity/components/TypeEditor.cjs.js.map +1 -1
  613. package/dist/shared/src/containers/NewEntity/components/TypeEditor.es.js.map +1 -1
  614. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js +1 -1
  615. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.cjs.js.map +1 -1
  616. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js +117 -311
  617. package/dist/shared/src/containers/NewEntity/context/NewEntityContext.es.js.map +1 -1
  618. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  619. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  620. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +603 -869
  621. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  622. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  623. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  624. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +605 -579
  625. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  626. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
  627. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
  628. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +75 -372
  629. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js.map +1 -1
  630. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  631. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  632. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +32 -201
  633. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  634. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  635. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  636. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +28 -122
  637. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  638. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +7 -7
  639. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
  640. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +35 -131
  641. package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
  642. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  643. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  644. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +107 -299
  645. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  646. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
  647. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
  648. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +334 -515
  649. package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
  650. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  651. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  652. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +158 -329
  653. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  654. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  655. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  656. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +4 -205
  657. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  658. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js +1 -1
  659. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  660. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js +121 -418
  661. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  662. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  663. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  664. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +73 -244
  665. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  666. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.cjs.js.map +1 -1
  667. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js +3 -3
  668. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardComments.es.js.map +1 -1
  669. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.cjs.js.map +1 -1
  670. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardSubtasks.es.js.map +1 -1
  671. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.cjs.js.map +1 -1
  672. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardTypes.es.js.map +1 -1
  673. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
  674. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
  675. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +83 -179
  676. package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js.map +1 -1
  677. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  678. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  679. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +13 -314
  680. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  681. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  682. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  683. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +60 -231
  684. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  685. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  686. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  687. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +75 -246
  688. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  689. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  690. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  691. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +149 -438
  692. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  693. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  694. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  695. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +25 -196
  696. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  697. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  698. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  699. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +32 -203
  700. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  701. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
  702. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
  703. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +32 -329
  704. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
  705. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  706. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  707. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +174 -371
  708. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  709. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.cjs.js.map +1 -1
  710. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetEntityTypeData.es.js.map +1 -1
  711. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  712. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  713. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +29 -200
  714. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  715. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  716. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  717. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +36 -201
  718. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  719. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupCounts.cjs.js.map +1 -1
  720. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupCounts.es.js.map +1 -1
  721. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  722. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  723. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +93 -383
  724. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  725. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  726. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  727. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +78 -279
  728. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  729. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  730. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  731. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +31 -229
  732. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  733. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  734. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  735. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +25 -196
  736. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  737. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  738. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  739. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +39 -221
  740. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  741. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
  742. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
  743. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +167 -464
  744. package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
  745. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  746. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  747. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +41 -212
  748. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  749. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.cjs.js.map +1 -1
  750. package/dist/shared/src/containers/ProjectTreeTable/utils/clientFilterToQueryFilter.es.js.map +1 -1
  751. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.cjs.js +2 -0
  752. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.cjs.js.map +1 -0
  753. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.es.js +45 -0
  754. package/dist/shared/src/containers/ProjectTreeTable/utils/columnIds.es.js.map +1 -0
  755. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.cjs.js.map +1 -1
  756. package/dist/shared/src/containers/ProjectTreeTable/utils/getEntityViewerIds.es.js.map +1 -1
  757. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.cjs.js.map +1 -1
  758. package/dist/shared/src/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.es.js.map +1 -1
  759. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.cjs.js.map +1 -1
  760. package/dist/shared/src/containers/ProjectTreeTable/utils/getReadOnlyLists.es.js.map +1 -1
  761. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +1 -1
  762. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  763. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +37 -21
  764. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  765. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.cjs.js.map +1 -1
  766. package/dist/shared/src/containers/ProjectTreeTable/utils/getTypeDefaultValue.es.js.map +1 -1
  767. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.cjs.js.map +1 -1
  768. package/dist/shared/src/containers/ProjectTreeTable/utils/linksToTableData.es.js.map +1 -1
  769. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.cjs.js.map +1 -1
  770. package/dist/shared/src/containers/ProjectTreeTable/utils/loadingUtils.es.js.map +1 -1
  771. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
  772. package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
  773. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -1
  774. package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -1
  775. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.cjs.js.map +1 -1
  776. package/dist/shared/src/containers/ProjectTreeTable/utils/validateUpdateEntities.es.js.map +1 -1
  777. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  778. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  779. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +14 -312
  780. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  781. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +6 -2
  782. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  783. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +121 -399
  784. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  785. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +5 -5
  786. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
  787. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +40 -329
  788. package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js.map +1 -1
  789. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  790. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  791. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js +30 -0
  792. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.cjs.js.map +1 -0
  793. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js +198 -0
  794. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityWidget.es.js.map +1 -0
  795. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  796. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  797. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  798. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  799. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +3 -3
  800. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  801. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +50 -343
  802. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  803. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +5 -5
  804. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
  805. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +77 -361
  806. package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
  807. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  808. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  809. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +28 -199
  810. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  811. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  812. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  813. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +36 -330
  814. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  815. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +5 -5
  816. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
  817. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +130 -421
  818. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
  819. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +4 -4
  820. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  821. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +80 -176
  822. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  823. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +5 -5
  824. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  825. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -108
  826. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  827. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  828. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  829. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +20 -214
  830. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  831. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  832. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  833. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +231 -524
  834. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  835. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
  836. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
  837. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +69 -364
  838. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -1
  839. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +2 -2
  840. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
  841. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +18 -315
  842. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
  843. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +2 -2
  844. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
  845. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +24 -325
  846. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
  847. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
  848. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
  849. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +69 -367
  850. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
  851. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
  852. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
  853. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +27 -225
  854. package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
  855. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js +1 -1
  856. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.cjs.js.map +1 -1
  857. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js +34 -233
  858. package/dist/shared/src/containers/Slicer/hooks/useHierarchyContextMenuItems.es.js.map +1 -1
  859. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
  860. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
  861. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +5 -306
  862. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
  863. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
  864. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
  865. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +7 -308
  866. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
  867. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js +1 -1
  868. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.cjs.js.map +1 -1
  869. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js +11 -311
  870. package/dist/shared/src/containers/Slicer/hooks/useSlicerCounts.es.js.map +1 -1
  871. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
  872. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
  873. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +13 -313
  874. package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
  875. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
  876. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
  877. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +34 -335
  878. package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
  879. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
  880. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
  881. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +11 -313
  882. package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js.map +1 -1
  883. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
  884. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
  885. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +72 -365
  886. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
  887. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
  888. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
  889. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
  890. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
  891. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
  892. package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
  893. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +24 -120
  894. package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js.map +1 -1
  895. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.cjs.js.map +1 -1
  896. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewFormDialogFallback.es.js.map +1 -1
  897. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  898. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  899. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +35 -333
  900. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  901. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  902. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  903. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +55 -351
  904. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  905. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  906. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  907. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +40 -332
  908. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  909. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  910. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  911. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +59 -259
  912. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  913. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
  914. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
  915. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +17 -113
  916. package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
  917. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  918. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  919. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +45 -141
  920. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  921. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
  922. package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
  923. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  924. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  925. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +22 -213
  926. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  927. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  928. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  929. package/dist/shared/src/containers/Views/types.cjs.js.map +1 -1
  930. package/dist/shared/src/containers/Views/types.es.js.map +1 -1
  931. package/dist/shared/src/containers/Views/utils/generateWorkingView.cjs.js.map +1 -1
  932. package/dist/shared/src/containers/Views/utils/generateWorkingView.es.js.map +1 -1
  933. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  934. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  935. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  936. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  937. package/dist/shared/src/context/AddonProjectContext.es.js +19 -115
  938. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  939. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js +1 -1
  940. package/dist/shared/src/context/DeleteEntitiesContext.cjs.js.map +1 -1
  941. package/dist/shared/src/context/DeleteEntitiesContext.es.js +1 -1
  942. package/dist/shared/src/context/DeleteEntitiesContext.es.js.map +1 -1
  943. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  944. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  945. package/dist/shared/src/context/DetailsPanelContext.es.js +66 -359
  946. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  947. package/dist/shared/src/context/EntityUpdatesContext.cjs.js +1 -1
  948. package/dist/shared/src/context/EntityUpdatesContext.cjs.js.map +1 -1
  949. package/dist/shared/src/context/EntityUpdatesContext.es.js +79 -356
  950. package/dist/shared/src/context/EntityUpdatesContext.es.js.map +1 -1
  951. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  952. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  953. package/dist/shared/src/context/PowerpackContext.es.js +42 -341
  954. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  955. package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
  956. package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
  957. package/dist/shared/src/context/ProjectFoldersContext.es.js +26 -228
  958. package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
  959. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  960. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  961. package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
  962. package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
  963. package/dist/shared/src/context/SubtasksModulesContext.es.js +23 -321
  964. package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
  965. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +1 -1
  966. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  967. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +17 -21
  968. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  969. package/dist/shared/src/context/UriContext.cjs.js +1 -1
  970. package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
  971. package/dist/shared/src/context/UriContext.es.js +2 -2
  972. package/dist/shared/src/context/UriContext.es.js.map +1 -1
  973. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  974. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  975. package/dist/shared/src/context/WebsocketContext.es.js +28 -226
  976. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  977. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  978. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  979. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -205
  980. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  981. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
  982. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  983. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +11 -311
  984. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  985. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  986. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  987. package/dist/shared/src/hooks/useHierarchyTable.es.js +30 -330
  988. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  989. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  990. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  991. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
  992. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
  993. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +19 -115
  994. package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js.map +1 -1
  995. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  996. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  997. package/dist/shared/src/hooks/useUserProjectConfig.es.js +6 -209
  998. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  999. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  1000. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  1001. package/dist/shared/src/util/checkName.cjs.js.map +1 -1
  1002. package/dist/shared/src/util/checkName.es.js.map +1 -1
  1003. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  1004. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  1005. package/dist/shared/src/util/columnConfigConverter.es.js +33 -33
  1006. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  1007. package/dist/shared/src/util/getAttributeIcon.cjs.js +1 -1
  1008. package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
  1009. package/dist/shared/src/util/getAttributeIcon.es.js +2 -1
  1010. package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
  1011. package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
  1012. package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
  1013. package/dist/shared/src/util/getBundleMode.es.js +16 -112
  1014. package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
  1015. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  1016. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  1017. package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
  1018. package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
  1019. package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
  1020. package/dist/shared/src/util/iconUtils.es.js.map +1 -1
  1021. package/dist/shared/src/util/mentionTypeOptions.cjs.js +2 -0
  1022. package/dist/shared/src/util/mentionTypeOptions.cjs.js.map +1 -0
  1023. package/dist/shared/src/util/mentionTypeOptions.es.js +16 -0
  1024. package/dist/shared/src/util/mentionTypeOptions.es.js.map +1 -0
  1025. package/dist/shared/src/util/parseFilename.cjs.js +2 -0
  1026. package/dist/shared/src/util/parseFilename.cjs.js.map +1 -0
  1027. package/dist/shared/src/util/parseFilename.es.js +8 -0
  1028. package/dist/shared/src/util/parseFilename.es.js.map +1 -0
  1029. package/dist/shared/src/util/realtimeUpdatesUtils.cjs.js +1 -1
  1030. package/dist/shared/src/util/realtimeUpdatesUtils.cjs.js.map +1 -1
  1031. package/dist/shared/src/util/realtimeUpdatesUtils.es.js +33 -27
  1032. package/dist/shared/src/util/realtimeUpdatesUtils.es.js.map +1 -1
  1033. package/dist/shared/src/util/uriUtils.cjs.js.map +1 -1
  1034. package/dist/shared/src/util/uriUtils.es.js.map +1 -1
  1035. package/dist/types/api/base/index.d.ts +1 -1
  1036. package/dist/types/api/generated/graphql.d.ts +50 -4
  1037. package/dist/types/api/generated/graphqlLinks.d.ts +15 -2
  1038. package/dist/types/api/generated/views.d.ts +13 -4
  1039. package/dist/types/api/queries/activities/getActivities.d.ts +28 -2
  1040. package/dist/types/api/queries/activities/getCategories.d.ts +1 -1
  1041. package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +1 -4
  1042. package/dist/types/api/queries/entities/getEntity.d.ts +14 -1
  1043. package/dist/types/api/queries/entities/getEntityPanel.d.ts +14 -1
  1044. package/dist/types/api/queries/entities/updateEntity.d.ts +14 -1
  1045. package/dist/types/api/queries/entityLists/getLists.d.ts +317 -312
  1046. package/dist/types/api/queries/entityLists/types.d.ts +7 -0
  1047. package/dist/types/api/queries/overview/getOverview.d.ts +49 -20
  1048. package/dist/types/api/queries/overview/patchVersions.d.ts +9 -0
  1049. package/dist/types/api/queries/project/getProject.d.ts +74 -61
  1050. package/dist/types/api/queries/system/getSystem.d.ts +1 -1
  1051. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +14 -1
  1052. package/dist/types/api/queries/users/getUsers.d.ts +14 -1
  1053. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +159 -2
  1054. package/dist/types/api/queries/views/getViews.d.ts +1 -1
  1055. package/dist/types/components/DetailsPanelDetails/DetailsSection.d.ts +1 -1
  1056. package/dist/types/components/EntityIcon/EntityIcon.d.ts +4 -4
  1057. package/dist/types/components/Menu/Menu.d.ts +1 -1
  1058. package/dist/types/components/Menu/MenuList.d.ts +1 -1
  1059. package/dist/types/components/Powerpack/PowerpackButton.d.ts +1 -1
  1060. package/dist/types/components/ProjectTableSettings/ColumnsSettings.d.ts +10 -2
  1061. package/dist/types/components/ProjectTableSettings/ProjectTableSettings.d.ts +2 -2
  1062. package/dist/types/components/ProjectTableSettings/TableSettingsFallback.d.ts +1 -1
  1063. package/dist/types/components/ProjectTableSettings/index.d.ts +1 -0
  1064. package/dist/types/components/RemotePage/ProjectPageRemote.d.ts +1 -1
  1065. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +5 -3
  1066. package/dist/types/components/RenameForm/RenameForm.d.ts +1 -1
  1067. package/dist/types/components/ReviewablesList/SortableReviewableCard.d.ts +1 -1
  1068. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +2 -2
  1069. package/dist/types/components/ReviewablesSelector/Card.d.ts +1 -1
  1070. package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +1 -1
  1071. package/dist/types/components/SearchFilter/useBuildFilterOptions.d.ts +6 -3
  1072. package/dist/types/components/SettingsPanel/SettingsPanel.d.ts +1 -1
  1073. package/dist/types/components/SettingsPanel/SettingsPanelItemTemplate.d.ts +1 -0
  1074. package/dist/types/components/SyncButton/SyncButton.d.ts +1 -1
  1075. package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +1 -2
  1076. package/dist/types/components/index.d.ts +1 -0
  1077. package/dist/types/config/plannerFeatures.d.ts +1 -1
  1078. package/dist/types/config/powerpackFeatures.d.ts +1 -1
  1079. package/dist/types/containers/Actions/Actions.d.ts +2 -2
  1080. package/dist/types/containers/ContextMenu/ContextMenuItem.d.ts +1 -1
  1081. package/dist/types/containers/ContextMenu/useCreateContextMenu.d.ts +1 -1
  1082. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +1 -1
  1083. package/dist/types/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.d.ts +2 -2
  1084. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.d.ts +1 -1
  1085. package/dist/types/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useMenuOptions.d.ts +2 -2
  1086. package/dist/types/containers/DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.d.ts +1 -1
  1087. package/dist/types/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.d.ts +3 -3
  1088. package/dist/types/containers/DetailsPanel/containers/DetailsPanelSubtasks.d.ts +1 -1
  1089. package/dist/types/containers/DetailsPanel/helpers/buildEntityTypeIcons.d.ts +1 -1
  1090. package/dist/types/containers/DetailsPanel/helpers/getEntityPathData.d.ts +1 -1
  1091. package/dist/types/containers/DetailsPanel/helpers/mergeProjectInfo.d.ts +1 -1
  1092. package/dist/types/containers/DetailsPanel/hooks/useGetEntityPath.d.ts +1 -1
  1093. package/dist/types/containers/EntityPickerDialog/components/EntityTypeTable.d.ts +1 -1
  1094. package/dist/types/containers/EntityPickerDialog/hooks/useGetEntityPickerData.d.ts +1 -1
  1095. package/dist/types/containers/EntityPickerDialog/util/buildEntityPickerTableData.d.ts +1 -1
  1096. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +1 -1
  1097. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -2
  1098. package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +1 -1
  1099. package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.styled.d.ts +1 -1
  1100. package/dist/types/containers/Feed/components/CommentInput/modules/index.d.ts +1 -1
  1101. package/dist/types/containers/Feed/components/CommentInput/quillFormats.d.ts +1 -0
  1102. package/dist/types/containers/Feed/components/CommentInput/types.d.ts +1 -12
  1103. package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +1 -1
  1104. package/dist/types/containers/Feed/context/FeedContext.d.ts +1 -1
  1105. package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +1 -1
  1106. package/dist/types/containers/Feed/mentionHelpers/getMentionTasks.d.ts +1 -1
  1107. package/dist/types/containers/Feed/mentionHelpers/getMentionUsers.d.ts +1 -1
  1108. package/dist/types/containers/Feed/mentionHelpers/getMentionVersions.d.ts +2 -2
  1109. package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +4 -2
  1110. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +22 -1
  1111. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +4 -3
  1112. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +1 -1
  1113. package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +4 -5
  1114. package/dist/types/containers/ProjectTreeTable/hooks/useFolderRelationships.d.ts +1 -1
  1115. package/dist/types/containers/ProjectTreeTable/hooks/useGetEntityTypeData.d.ts +2 -2
  1116. package/dist/types/containers/ProjectTreeTable/hooks/useGroupCounts.d.ts +1 -0
  1117. package/dist/types/containers/ProjectTreeTable/hooks/useMoveEntities.d.ts +1 -1
  1118. package/dist/types/containers/ProjectTreeTable/hooks/usePasteLinks.d.ts +1 -1
  1119. package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
  1120. package/dist/types/containers/ProjectTreeTable/types/index.d.ts +1 -1
  1121. package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +6 -5
  1122. package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -0
  1123. package/dist/types/containers/ProjectTreeTable/utils/columnIds.d.ts +10 -0
  1124. package/dist/types/containers/ProjectTreeTable/utils/getEntityViewerIds.d.ts +1 -1
  1125. package/dist/types/containers/ProjectTreeTable/utils/getFolderIdsToQueryFromExpanded.d.ts +1 -1
  1126. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  1127. package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
  1128. package/dist/types/containers/ProjectTreeTable/utils/linksToTableData.d.ts +1 -1
  1129. package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +1 -1
  1130. package/dist/types/containers/ProjectTreeTable/widgets/EntityWidget.d.ts +15 -0
  1131. package/dist/types/containers/ProjectTreeTable/widgets/LinksWidget.d.ts +1 -1
  1132. package/dist/types/containers/ProjectTreeTable/widgets/NameWidget.d.ts +1 -1
  1133. package/dist/types/containers/ProjectTreeTable/widgets/TextWidget.d.ts +2 -1
  1134. package/dist/types/containers/ProjectTreeTable/widgets/index.d.ts +1 -0
  1135. package/dist/types/containers/Slicer/components/Slicer.d.ts +2 -2
  1136. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +1 -1
  1137. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
  1138. package/dist/types/containers/Slicer/hooks/useEntityListsSlice.d.ts +1 -1
  1139. package/dist/types/containers/Slicer/hooks/useHierarchyContextMenuItems.d.ts +3 -3
  1140. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +1 -1
  1141. package/dist/types/containers/Slicer/hooks/useSlicerCounts.d.ts +1 -1
  1142. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +1 -1
  1143. package/dist/types/containers/Slicer/types.d.ts +1 -1
  1144. package/dist/types/containers/Views/hooks/pages/useListsViewSettings.d.ts +1 -1
  1145. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +1 -1
  1146. package/dist/types/containers/Views/types.d.ts +1 -1
  1147. package/dist/types/context/AddonContext.d.ts +1 -1
  1148. package/dist/types/context/AddonProjectContext.d.ts +2 -2
  1149. package/dist/types/context/DetailsPanelContext.d.ts +2 -2
  1150. package/dist/types/context/SubtasksModulesContext.d.ts +1 -1
  1151. package/dist/types/hooks/useHierarchyTable.d.ts +1 -1
  1152. package/dist/types/util/buildHierarchicalTableRows.d.ts +1 -1
  1153. package/dist/types/util/columnConfigConverter.d.ts +1 -1
  1154. package/dist/types/util/getBundleMode.d.ts +1 -1
  1155. package/dist/types/util/getGroupByDataType.d.ts +1 -1
  1156. package/dist/types/util/index.d.ts +2 -0
  1157. package/dist/types/util/mentionTypeOptions.d.ts +12 -0
  1158. package/dist/types/util/parseFilename.d.ts +1 -0
  1159. package/dist/types/util/realtimeUpdatesUtils.d.ts +6 -3
  1160. package/dist/types/util/uriUtils.d.ts +1 -1
  1161. package/dist/util.cjs.js +1 -1
  1162. package/dist/util.es.js +52 -47
  1163. package/dist/util.es.js.map +1 -1
  1164. package/package.json +4 -4
  1165. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js +0 -2
  1166. package/dist/shared/src/components/ThumbnailSimple/index.cjs.js.map +0 -1
  1167. package/dist/shared/src/components/ThumbnailSimple/index.es.js +0 -6
  1168. package/dist/shared/src/components/ThumbnailSimple/index.es.js.map +0 -1
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryFilterToClientFilter.es.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.es.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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeQueryFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.ts"],"sourcesContent":["import { QueryCondition, QueryFilter } from '@shared/containers'\n\nconst isCondition = (c: QueryCondition | QueryFilter): c is QueryCondition => 'key' in c\n\n// Persisted filters come back from the views API with `value: null` filled in.\n// The server rejects null values even for isnull/notnull, so drop the key entirely.\nexport const sanitizeQueryFilter = (filter: QueryFilter): QueryFilter => ({\n ...filter,\n conditions: filter.conditions?.map((c) => {\n if (!isCondition(c)) return sanitizeQueryFilter(c)\n if ((c.operator === 'isnull' || c.operator === 'notnull') && c.value == null) {\n const { value, ...rest } = c\n return rest\n }\n return c\n }),\n})\n"],"names":["isCondition","c","sanitizeQueryFilter","filter","value","rest"],"mappings":"gFAEA,MAAMA,EAAeC,GAAyD,QAASA,EAI1EC,EAAuBC,IAAsC,CACxE,GAAGA,EACH,WAAYA,EAAO,YAAY,IAAKF,GAAM,CACxC,GAAI,CAACD,EAAYC,CAAC,EAAG,OAAOC,EAAoBD,CAAC,EACjD,IAAKA,EAAE,WAAa,UAAYA,EAAE,WAAa,YAAcA,EAAE,OAAS,KAAM,CAC5E,KAAM,CAAE,MAAAG,EAAO,GAAGC,CAAA,EAASJ,EAC3B,OAAOI,CACT,CACA,OAAOJ,CACT,CAAC,CACH"}
1
+ {"version":3,"file":"sanitizeQueryFilter.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.ts"],"sourcesContent":["import type { QueryCondition, QueryFilter } from '../types/operations'\n\nconst isCondition = (c: QueryCondition | QueryFilter): c is QueryCondition => 'key' in c\n\n// Persisted filters come back from the views API with `value: null` filled in.\n// The server rejects null values even for isnull/notnull, so drop the key entirely.\nexport const sanitizeQueryFilter = (filter: QueryFilter): QueryFilter => ({\n ...filter,\n conditions: filter.conditions?.map((c) => {\n if (!isCondition(c)) return sanitizeQueryFilter(c)\n if ((c.operator === 'isnull' || c.operator === 'notnull') && c.value == null) {\n const { value, ...rest } = c\n return rest\n }\n return c\n }),\n})\n"],"names":["isCondition","c","sanitizeQueryFilter","filter","value","rest"],"mappings":"gFAEA,MAAMA,EAAeC,GAAyD,QAASA,EAI1EC,EAAuBC,IAAsC,CACxE,GAAGA,EACH,WAAYA,EAAO,YAAY,IAAKF,GAAM,CACxC,GAAI,CAACD,EAAYC,CAAC,EAAG,OAAOC,EAAoBD,CAAC,EACjD,IAAKA,EAAE,WAAa,UAAYA,EAAE,WAAa,YAAcA,EAAE,OAAS,KAAM,CAC5E,KAAM,CAAE,MAAAG,EAAO,GAAGC,CAAA,EAASJ,EAC3B,OAAOI,CACT,CACA,OAAOJ,CACT,CAAC,CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeQueryFilter.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.ts"],"sourcesContent":["import { QueryCondition, QueryFilter } from '@shared/containers'\n\nconst isCondition = (c: QueryCondition | QueryFilter): c is QueryCondition => 'key' in c\n\n// Persisted filters come back from the views API with `value: null` filled in.\n// The server rejects null values even for isnull/notnull, so drop the key entirely.\nexport const sanitizeQueryFilter = (filter: QueryFilter): QueryFilter => ({\n ...filter,\n conditions: filter.conditions?.map((c) => {\n if (!isCondition(c)) return sanitizeQueryFilter(c)\n if ((c.operator === 'isnull' || c.operator === 'notnull') && c.value == null) {\n const { value, ...rest } = c\n return rest\n }\n return c\n }),\n})\n"],"names":["isCondition","c","sanitizeQueryFilter","filter","value","rest"],"mappings":"AAEA,MAAMA,IAAc,CAACC,MAAyD,SAASA,GAI1EC,IAAsB,CAACC,OAAsC;AAAA,EACxE,GAAGA;AAAA,EACH,YAAYA,EAAO,YAAY,IAAI,CAACF,MAAM;AACxC,QAAI,CAACD,EAAYC,CAAC,EAAG,QAAOC,EAAoBD,CAAC;AACjD,SAAKA,EAAE,aAAa,YAAYA,EAAE,aAAa,cAAcA,EAAE,SAAS,MAAM;AAC5E,YAAM,EAAE,OAAAG,GAAO,GAAGC,EAAA,IAASJ;AAC3B,aAAOI;AAAA,IACT;AACA,WAAOJ;AAAA,EACT,CAAC;AACH;"}
1
+ {"version":3,"file":"sanitizeQueryFilter.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.ts"],"sourcesContent":["import type { QueryCondition, QueryFilter } from '../types/operations'\n\nconst isCondition = (c: QueryCondition | QueryFilter): c is QueryCondition => 'key' in c\n\n// Persisted filters come back from the views API with `value: null` filled in.\n// The server rejects null values even for isnull/notnull, so drop the key entirely.\nexport const sanitizeQueryFilter = (filter: QueryFilter): QueryFilter => ({\n ...filter,\n conditions: filter.conditions?.map((c) => {\n if (!isCondition(c)) return sanitizeQueryFilter(c)\n if ((c.operator === 'isnull' || c.operator === 'notnull') && c.value == null) {\n const { value, ...rest } = c\n return rest\n }\n return c\n }),\n})\n"],"names":["isCondition","c","sanitizeQueryFilter","filter","value","rest"],"mappings":"AAEA,MAAMA,IAAc,CAACC,MAAyD,SAASA,GAI1EC,IAAsB,CAACC,OAAsC;AAAA,EACxE,GAAGA;AAAA,EACH,YAAYA,EAAO,YAAY,IAAI,CAACF,MAAM;AACxC,QAAI,CAACD,EAAYC,CAAC,EAAG,QAAOC,EAAoBD,CAAC;AACjD,SAAKA,EAAE,aAAa,YAAYA,EAAE,aAAa,cAAcA,EAAE,SAAS,MAAM;AAC5E,YAAM,EAAE,OAAAG,GAAO,GAAGC,EAAA,IAASJ;AAC3B,aAAOI;AAAA,IACT;AACA,WAAOJ;AAAA,EACT,CAAC;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateUpdateEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/validateUpdateEntities.ts"],"sourcesContent":["import { ProjectTableAttribute } from '../types'\nimport { AttributeData } from '@shared/api'\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\n\nconst validateUpdateEntities = (\n entities: EntityUpdate[] = [],\n attribFields: ProjectTableAttribute[],\n) => {\n // first validate the values are correct\n for (const { isAttrib, value: rawValue, field } of entities) {\n if (!isAttrib) continue\n const attribute = attribFields.find((attr) => attr.name === field)\n if (!attribute) continue\n\n // coerce numeric strings into numbers for integer/float types or fail\n let value: any = rawValue\n const { type } = attribute.data\n if (type === 'integer' || type === 'float') {\n if (typeof rawValue === 'string') {\n // empty or non‑numeric strings are invalid\n if (rawValue.trim() === '' || isNaN(Number(rawValue))) {\n throw new Error(`“${field}” must be a valid number`)\n }\n value = type === 'integer' ? parseInt(rawValue, 10) : parseFloat(rawValue)\n } else if (typeof rawValue !== 'number') {\n // any other type is invalid\n throw new Error(`“${field}” must be a valid number`)\n }\n }\n\n // collect numeric rules from attribute.data\n const validationKeys: (keyof AttributeData)[] = [\n 'ge',\n 'gt',\n 'le',\n 'lt',\n 'minLength',\n 'maxLength',\n 'minItems',\n 'maxItems',\n ]\n const validationValues = (\n Object.entries(attribute.data) as [keyof AttributeData, any][]\n ).reduce((acc, [key, v]) => {\n if (validationKeys.includes(key)) acc[key] = v as number\n return acc\n }, {} as Record<keyof AttributeData, number>)\n\n const { ge, gt, le, lt, minLength, maxLength, minItems, maxItems } = validationValues\n const pattern = attribute.data.regex\n\n if (typeof value === 'number') {\n if (ge != null && value < ge) throw new Error(`“${field}” must be ≥ ${ge}`)\n if (gt != null && value <= gt) throw new Error(`“${field}” must be > ${gt}`)\n if (le != null && value > le) throw new Error(`“${field}” must be ≤ ${le}`)\n if (lt != null && value >= lt) throw new Error(`“${field}” must be < ${lt}`)\n } else if (typeof value === 'string') {\n if (minLength != null && value.length < minLength)\n throw new Error(`“${field}” length must be ≥ ${minLength}`)\n if (maxLength != null && value.length > maxLength)\n throw new Error(`“${field}” length must be ≤ ${maxLength}`)\n if (pattern && !new RegExp(pattern).test(value))\n throw new Error(`“${field}” must match pattern ${pattern}`)\n } else if (Array.isArray(value)) {\n if (minItems != null && value.length < minItems)\n throw new Error(`“${field}” items must be ≥ ${minItems}`)\n if (maxItems != null && value.length > maxItems)\n throw new Error(`“${field}” items must be ≤ ${maxItems}`)\n }\n }\n}\n\nexport default validateUpdateEntities\n"],"names":["validateUpdateEntities","entities","attribFields","isAttrib","rawValue","field","attribute","attr","value","type","validationKeys","validationValues","acc","key","ge","gt","le","lt","minLength","maxLength","minItems","maxItems","pattern"],"mappings":"aAIA,MAAMA,EAAyB,CAC7BC,EAA2B,CAAA,EAC3BC,IACG,CAEH,SAAW,CAAE,SAAAC,EAAU,MAAOC,EAAU,MAAAC,CAAA,IAAWJ,EAAU,CAC3D,GAAI,CAACE,EAAU,SACf,MAAMG,EAAYJ,EAAa,KAAMK,GAASA,EAAK,OAASF,CAAK,EACjE,GAAI,CAACC,EAAW,SAGhB,IAAIE,EAAaJ,EACjB,KAAM,CAAE,KAAAK,GAASH,EAAU,KAC3B,GAAIG,IAAS,WAAaA,IAAS,SACjC,GAAI,OAAOL,GAAa,SAAU,CAEhC,GAAIA,EAAS,SAAW,IAAM,MAAM,OAAOA,CAAQ,CAAC,EAClD,MAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B,EAErDG,EAAQC,IAAS,UAAY,SAASL,EAAU,EAAE,EAAI,WAAWA,CAAQ,CAC3E,SAAW,OAAOA,GAAa,SAE7B,MAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B,EAKvD,MAAMK,EAA0C,CAC9C,KACA,KACA,KACA,KACA,YACA,YACA,WACA,UAAA,EAEIC,EACJ,OAAO,QAAQL,EAAU,IAAI,EAC7B,OAAO,CAACM,EAAK,CAACC,EAAK,CAAC,KAChBH,EAAe,SAASG,CAAG,IAAGD,EAAIC,CAAG,EAAI,GACtCD,GACN,CAAA,CAAyC,EAEtC,CAAE,GAAAE,EAAI,GAAAC,EAAI,GAAAC,EAAI,GAAAC,EAAI,UAAAC,EAAW,UAAAC,EAAW,SAAAC,EAAU,SAAAC,CAAA,EAAaV,EAC/DW,EAAUhB,EAAU,KAAK,MAE/B,GAAI,OAAOE,GAAU,SAAU,CAC7B,GAAIM,GAAM,MAAQN,EAAQM,EAAI,MAAM,IAAI,MAAM,IAAIT,CAAK,eAAeS,CAAE,EAAE,EAC1E,GAAIC,GAAM,MAAQP,GAASO,EAAI,MAAM,IAAI,MAAM,IAAIV,CAAK,eAAeU,CAAE,EAAE,EAC3E,GAAIC,GAAM,MAAQR,EAAQQ,EAAI,MAAM,IAAI,MAAM,IAAIX,CAAK,eAAeW,CAAE,EAAE,EAC1E,GAAIC,GAAM,MAAQT,GAASS,EAAI,MAAM,IAAI,MAAM,IAAIZ,CAAK,eAAeY,CAAE,EAAE,CAC7E,SAAW,OAAOT,GAAU,SAAU,CACpC,GAAIU,GAAa,MAAQV,EAAM,OAASU,EACtC,MAAM,IAAI,MAAM,IAAIb,CAAK,sBAAsBa,CAAS,EAAE,EAC5D,GAAIC,GAAa,MAAQX,EAAM,OAASW,EACtC,MAAM,IAAI,MAAM,IAAId,CAAK,sBAAsBc,CAAS,EAAE,EAC5D,GAAIG,GAAW,CAAC,IAAI,OAAOA,CAAO,EAAE,KAAKd,CAAK,EAC5C,MAAM,IAAI,MAAM,IAAIH,CAAK,wBAAwBiB,CAAO,EAAE,CAC9D,SAAW,MAAM,QAAQd,CAAK,EAAG,CAC/B,GAAIY,GAAY,MAAQZ,EAAM,OAASY,EACrC,MAAM,IAAI,MAAM,IAAIf,CAAK,qBAAqBe,CAAQ,EAAE,EAC1D,GAAIC,GAAY,MAAQb,EAAM,OAASa,EACrC,MAAM,IAAI,MAAM,IAAIhB,CAAK,qBAAqBgB,CAAQ,EAAE,CAC5D,CACF,CACF"}
1
+ {"version":3,"file":"validateUpdateEntities.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/validateUpdateEntities.ts"],"sourcesContent":["import { ProjectTableAttribute } from '../types'\nimport type { AttributeData } from '@shared/api'\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\n\nconst validateUpdateEntities = (\n entities: EntityUpdate[] = [],\n attribFields: ProjectTableAttribute[],\n) => {\n // first validate the values are correct\n for (const { isAttrib, value: rawValue, field } of entities) {\n if (!isAttrib) continue\n const attribute = attribFields.find((attr) => attr.name === field)\n if (!attribute) continue\n\n // coerce numeric strings into numbers for integer/float types or fail\n let value: any = rawValue\n const { type } = attribute.data\n if (type === 'integer' || type === 'float') {\n if (typeof rawValue === 'string') {\n // empty or non‑numeric strings are invalid\n if (rawValue.trim() === '' || isNaN(Number(rawValue))) {\n throw new Error(`“${field}” must be a valid number`)\n }\n value = type === 'integer' ? parseInt(rawValue, 10) : parseFloat(rawValue)\n } else if (typeof rawValue !== 'number') {\n // any other type is invalid\n throw new Error(`“${field}” must be a valid number`)\n }\n }\n\n // collect numeric rules from attribute.data\n const validationKeys: (keyof AttributeData)[] = [\n 'ge',\n 'gt',\n 'le',\n 'lt',\n 'minLength',\n 'maxLength',\n 'minItems',\n 'maxItems',\n ]\n const validationValues = (\n Object.entries(attribute.data) as [keyof AttributeData, any][]\n ).reduce((acc, [key, v]) => {\n if (validationKeys.includes(key)) acc[key] = v as number\n return acc\n }, {} as Record<keyof AttributeData, number>)\n\n const { ge, gt, le, lt, minLength, maxLength, minItems, maxItems } = validationValues\n const pattern = attribute.data.regex\n\n if (typeof value === 'number') {\n if (ge != null && value < ge) throw new Error(`“${field}” must be ≥ ${ge}`)\n if (gt != null && value <= gt) throw new Error(`“${field}” must be > ${gt}`)\n if (le != null && value > le) throw new Error(`“${field}” must be ≤ ${le}`)\n if (lt != null && value >= lt) throw new Error(`“${field}” must be < ${lt}`)\n } else if (typeof value === 'string') {\n if (minLength != null && value.length < minLength)\n throw new Error(`“${field}” length must be ≥ ${minLength}`)\n if (maxLength != null && value.length > maxLength)\n throw new Error(`“${field}” length must be ≤ ${maxLength}`)\n if (pattern && !new RegExp(pattern).test(value))\n throw new Error(`“${field}” must match pattern ${pattern}`)\n } else if (Array.isArray(value)) {\n if (minItems != null && value.length < minItems)\n throw new Error(`“${field}” items must be ≥ ${minItems}`)\n if (maxItems != null && value.length > maxItems)\n throw new Error(`“${field}” items must be ≤ ${maxItems}`)\n }\n }\n}\n\nexport default validateUpdateEntities\n"],"names":["validateUpdateEntities","entities","attribFields","isAttrib","rawValue","field","attribute","attr","value","type","validationKeys","validationValues","acc","key","ge","gt","le","lt","minLength","maxLength","minItems","maxItems","pattern"],"mappings":"aAIA,MAAMA,EAAyB,CAC7BC,EAA2B,CAAA,EAC3BC,IACG,CAEH,SAAW,CAAE,SAAAC,EAAU,MAAOC,EAAU,MAAAC,CAAA,IAAWJ,EAAU,CAC3D,GAAI,CAACE,EAAU,SACf,MAAMG,EAAYJ,EAAa,KAAMK,GAASA,EAAK,OAASF,CAAK,EACjE,GAAI,CAACC,EAAW,SAGhB,IAAIE,EAAaJ,EACjB,KAAM,CAAE,KAAAK,GAASH,EAAU,KAC3B,GAAIG,IAAS,WAAaA,IAAS,SACjC,GAAI,OAAOL,GAAa,SAAU,CAEhC,GAAIA,EAAS,SAAW,IAAM,MAAM,OAAOA,CAAQ,CAAC,EAClD,MAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B,EAErDG,EAAQC,IAAS,UAAY,SAASL,EAAU,EAAE,EAAI,WAAWA,CAAQ,CAC3E,SAAW,OAAOA,GAAa,SAE7B,MAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B,EAKvD,MAAMK,EAA0C,CAC9C,KACA,KACA,KACA,KACA,YACA,YACA,WACA,UAAA,EAEIC,EACJ,OAAO,QAAQL,EAAU,IAAI,EAC7B,OAAO,CAACM,EAAK,CAACC,EAAK,CAAC,KAChBH,EAAe,SAASG,CAAG,IAAGD,EAAIC,CAAG,EAAI,GACtCD,GACN,CAAA,CAAyC,EAEtC,CAAE,GAAAE,EAAI,GAAAC,EAAI,GAAAC,EAAI,GAAAC,EAAI,UAAAC,EAAW,UAAAC,EAAW,SAAAC,EAAU,SAAAC,CAAA,EAAaV,EAC/DW,EAAUhB,EAAU,KAAK,MAE/B,GAAI,OAAOE,GAAU,SAAU,CAC7B,GAAIM,GAAM,MAAQN,EAAQM,EAAI,MAAM,IAAI,MAAM,IAAIT,CAAK,eAAeS,CAAE,EAAE,EAC1E,GAAIC,GAAM,MAAQP,GAASO,EAAI,MAAM,IAAI,MAAM,IAAIV,CAAK,eAAeU,CAAE,EAAE,EAC3E,GAAIC,GAAM,MAAQR,EAAQQ,EAAI,MAAM,IAAI,MAAM,IAAIX,CAAK,eAAeW,CAAE,EAAE,EAC1E,GAAIC,GAAM,MAAQT,GAASS,EAAI,MAAM,IAAI,MAAM,IAAIZ,CAAK,eAAeY,CAAE,EAAE,CAC7E,SAAW,OAAOT,GAAU,SAAU,CACpC,GAAIU,GAAa,MAAQV,EAAM,OAASU,EACtC,MAAM,IAAI,MAAM,IAAIb,CAAK,sBAAsBa,CAAS,EAAE,EAC5D,GAAIC,GAAa,MAAQX,EAAM,OAASW,EACtC,MAAM,IAAI,MAAM,IAAId,CAAK,sBAAsBc,CAAS,EAAE,EAC5D,GAAIG,GAAW,CAAC,IAAI,OAAOA,CAAO,EAAE,KAAKd,CAAK,EAC5C,MAAM,IAAI,MAAM,IAAIH,CAAK,wBAAwBiB,CAAO,EAAE,CAC9D,SAAW,MAAM,QAAQd,CAAK,EAAG,CAC/B,GAAIY,GAAY,MAAQZ,EAAM,OAASY,EACrC,MAAM,IAAI,MAAM,IAAIf,CAAK,qBAAqBe,CAAQ,EAAE,EAC1D,GAAIC,GAAY,MAAQb,EAAM,OAASa,EACrC,MAAM,IAAI,MAAM,IAAIhB,CAAK,qBAAqBgB,CAAQ,EAAE,CAC5D,CACF,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateUpdateEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/validateUpdateEntities.ts"],"sourcesContent":["import { ProjectTableAttribute } from '../types'\nimport { AttributeData } from '@shared/api'\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\n\nconst validateUpdateEntities = (\n entities: EntityUpdate[] = [],\n attribFields: ProjectTableAttribute[],\n) => {\n // first validate the values are correct\n for (const { isAttrib, value: rawValue, field } of entities) {\n if (!isAttrib) continue\n const attribute = attribFields.find((attr) => attr.name === field)\n if (!attribute) continue\n\n // coerce numeric strings into numbers for integer/float types or fail\n let value: any = rawValue\n const { type } = attribute.data\n if (type === 'integer' || type === 'float') {\n if (typeof rawValue === 'string') {\n // empty or non‑numeric strings are invalid\n if (rawValue.trim() === '' || isNaN(Number(rawValue))) {\n throw new Error(`“${field}” must be a valid number`)\n }\n value = type === 'integer' ? parseInt(rawValue, 10) : parseFloat(rawValue)\n } else if (typeof rawValue !== 'number') {\n // any other type is invalid\n throw new Error(`“${field}” must be a valid number`)\n }\n }\n\n // collect numeric rules from attribute.data\n const validationKeys: (keyof AttributeData)[] = [\n 'ge',\n 'gt',\n 'le',\n 'lt',\n 'minLength',\n 'maxLength',\n 'minItems',\n 'maxItems',\n ]\n const validationValues = (\n Object.entries(attribute.data) as [keyof AttributeData, any][]\n ).reduce((acc, [key, v]) => {\n if (validationKeys.includes(key)) acc[key] = v as number\n return acc\n }, {} as Record<keyof AttributeData, number>)\n\n const { ge, gt, le, lt, minLength, maxLength, minItems, maxItems } = validationValues\n const pattern = attribute.data.regex\n\n if (typeof value === 'number') {\n if (ge != null && value < ge) throw new Error(`“${field}” must be ≥ ${ge}`)\n if (gt != null && value <= gt) throw new Error(`“${field}” must be > ${gt}`)\n if (le != null && value > le) throw new Error(`“${field}” must be ≤ ${le}`)\n if (lt != null && value >= lt) throw new Error(`“${field}” must be < ${lt}`)\n } else if (typeof value === 'string') {\n if (minLength != null && value.length < minLength)\n throw new Error(`“${field}” length must be ≥ ${minLength}`)\n if (maxLength != null && value.length > maxLength)\n throw new Error(`“${field}” length must be ≤ ${maxLength}`)\n if (pattern && !new RegExp(pattern).test(value))\n throw new Error(`“${field}” must match pattern ${pattern}`)\n } else if (Array.isArray(value)) {\n if (minItems != null && value.length < minItems)\n throw new Error(`“${field}” items must be ≥ ${minItems}`)\n if (maxItems != null && value.length > maxItems)\n throw new Error(`“${field}” items must be ≤ ${maxItems}`)\n }\n }\n}\n\nexport default validateUpdateEntities\n"],"names":["validateUpdateEntities","entities","attribFields","isAttrib","rawValue","field","attribute","attr","value","type","validationKeys","validationValues","acc","key","ge","gt","le","lt","minLength","maxLength","minItems","maxItems","pattern"],"mappings":"AAIA,MAAMA,IAAyB,CAC7BC,IAA2B,CAAA,GAC3BC,MACG;AAEH,aAAW,EAAE,UAAAC,GAAU,OAAOC,GAAU,OAAAC,EAAA,KAAWJ,GAAU;AAC3D,QAAI,CAACE,EAAU;AACf,UAAMG,IAAYJ,EAAa,KAAK,CAACK,MAASA,EAAK,SAASF,CAAK;AACjE,QAAI,CAACC,EAAW;AAGhB,QAAIE,IAAaJ;AACjB,UAAM,EAAE,MAAAK,MAASH,EAAU;AAC3B,QAAIG,MAAS,aAAaA,MAAS;AACjC,UAAI,OAAOL,KAAa,UAAU;AAEhC,YAAIA,EAAS,WAAW,MAAM,MAAM,OAAOA,CAAQ,CAAC;AAClD,gBAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B;AAErD,QAAAG,IAAQC,MAAS,YAAY,SAASL,GAAU,EAAE,IAAI,WAAWA,CAAQ;AAAA,MAC3E,WAAW,OAAOA,KAAa;AAE7B,cAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B;AAAA;AAKvD,UAAMK,IAA0C;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAEIC,IACJ,OAAO,QAAQL,EAAU,IAAI,EAC7B,OAAO,CAACM,GAAK,CAACC,GAAK,CAAC,OAChBH,EAAe,SAASG,CAAG,MAAGD,EAAIC,CAAG,IAAI,IACtCD,IACN,CAAA,CAAyC,GAEtC,EAAE,IAAAE,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,WAAAC,GAAW,WAAAC,GAAW,UAAAC,GAAU,UAAAC,EAAA,IAAaV,GAC/DW,IAAUhB,EAAU,KAAK;AAE/B,QAAI,OAAOE,KAAU,UAAU;AAC7B,UAAIM,KAAM,QAAQN,IAAQM,EAAI,OAAM,IAAI,MAAM,IAAIT,CAAK,eAAeS,CAAE,EAAE;AAC1E,UAAIC,KAAM,QAAQP,KAASO,EAAI,OAAM,IAAI,MAAM,IAAIV,CAAK,eAAeU,CAAE,EAAE;AAC3E,UAAIC,KAAM,QAAQR,IAAQQ,EAAI,OAAM,IAAI,MAAM,IAAIX,CAAK,eAAeW,CAAE,EAAE;AAC1E,UAAIC,KAAM,QAAQT,KAASS,EAAI,OAAM,IAAI,MAAM,IAAIZ,CAAK,eAAeY,CAAE,EAAE;AAAA,IAC7E,WAAW,OAAOT,KAAU,UAAU;AACpC,UAAIU,KAAa,QAAQV,EAAM,SAASU;AACtC,cAAM,IAAI,MAAM,IAAIb,CAAK,sBAAsBa,CAAS,EAAE;AAC5D,UAAIC,KAAa,QAAQX,EAAM,SAASW;AACtC,cAAM,IAAI,MAAM,IAAId,CAAK,sBAAsBc,CAAS,EAAE;AAC5D,UAAIG,KAAW,CAAC,IAAI,OAAOA,CAAO,EAAE,KAAKd,CAAK;AAC5C,cAAM,IAAI,MAAM,IAAIH,CAAK,wBAAwBiB,CAAO,EAAE;AAAA,IAC9D,WAAW,MAAM,QAAQd,CAAK,GAAG;AAC/B,UAAIY,KAAY,QAAQZ,EAAM,SAASY;AACrC,cAAM,IAAI,MAAM,IAAIf,CAAK,qBAAqBe,CAAQ,EAAE;AAC1D,UAAIC,KAAY,QAAQb,EAAM,SAASa;AACrC,cAAM,IAAI,MAAM,IAAIhB,CAAK,qBAAqBgB,CAAQ,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"validateUpdateEntities.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/utils/validateUpdateEntities.ts"],"sourcesContent":["import { ProjectTableAttribute } from '../types'\nimport type { AttributeData } from '@shared/api'\nimport { EntityUpdate } from '../hooks/useUpdateTableData'\n\nconst validateUpdateEntities = (\n entities: EntityUpdate[] = [],\n attribFields: ProjectTableAttribute[],\n) => {\n // first validate the values are correct\n for (const { isAttrib, value: rawValue, field } of entities) {\n if (!isAttrib) continue\n const attribute = attribFields.find((attr) => attr.name === field)\n if (!attribute) continue\n\n // coerce numeric strings into numbers for integer/float types or fail\n let value: any = rawValue\n const { type } = attribute.data\n if (type === 'integer' || type === 'float') {\n if (typeof rawValue === 'string') {\n // empty or non‑numeric strings are invalid\n if (rawValue.trim() === '' || isNaN(Number(rawValue))) {\n throw new Error(`“${field}” must be a valid number`)\n }\n value = type === 'integer' ? parseInt(rawValue, 10) : parseFloat(rawValue)\n } else if (typeof rawValue !== 'number') {\n // any other type is invalid\n throw new Error(`“${field}” must be a valid number`)\n }\n }\n\n // collect numeric rules from attribute.data\n const validationKeys: (keyof AttributeData)[] = [\n 'ge',\n 'gt',\n 'le',\n 'lt',\n 'minLength',\n 'maxLength',\n 'minItems',\n 'maxItems',\n ]\n const validationValues = (\n Object.entries(attribute.data) as [keyof AttributeData, any][]\n ).reduce((acc, [key, v]) => {\n if (validationKeys.includes(key)) acc[key] = v as number\n return acc\n }, {} as Record<keyof AttributeData, number>)\n\n const { ge, gt, le, lt, minLength, maxLength, minItems, maxItems } = validationValues\n const pattern = attribute.data.regex\n\n if (typeof value === 'number') {\n if (ge != null && value < ge) throw new Error(`“${field}” must be ≥ ${ge}`)\n if (gt != null && value <= gt) throw new Error(`“${field}” must be > ${gt}`)\n if (le != null && value > le) throw new Error(`“${field}” must be ≤ ${le}`)\n if (lt != null && value >= lt) throw new Error(`“${field}” must be < ${lt}`)\n } else if (typeof value === 'string') {\n if (minLength != null && value.length < minLength)\n throw new Error(`“${field}” length must be ≥ ${minLength}`)\n if (maxLength != null && value.length > maxLength)\n throw new Error(`“${field}” length must be ≤ ${maxLength}`)\n if (pattern && !new RegExp(pattern).test(value))\n throw new Error(`“${field}” must match pattern ${pattern}`)\n } else if (Array.isArray(value)) {\n if (minItems != null && value.length < minItems)\n throw new Error(`“${field}” items must be ≥ ${minItems}`)\n if (maxItems != null && value.length > maxItems)\n throw new Error(`“${field}” items must be ≤ ${maxItems}`)\n }\n }\n}\n\nexport default validateUpdateEntities\n"],"names":["validateUpdateEntities","entities","attribFields","isAttrib","rawValue","field","attribute","attr","value","type","validationKeys","validationValues","acc","key","ge","gt","le","lt","minLength","maxLength","minItems","maxItems","pattern"],"mappings":"AAIA,MAAMA,IAAyB,CAC7BC,IAA2B,CAAA,GAC3BC,MACG;AAEH,aAAW,EAAE,UAAAC,GAAU,OAAOC,GAAU,OAAAC,EAAA,KAAWJ,GAAU;AAC3D,QAAI,CAACE,EAAU;AACf,UAAMG,IAAYJ,EAAa,KAAK,CAACK,MAASA,EAAK,SAASF,CAAK;AACjE,QAAI,CAACC,EAAW;AAGhB,QAAIE,IAAaJ;AACjB,UAAM,EAAE,MAAAK,MAASH,EAAU;AAC3B,QAAIG,MAAS,aAAaA,MAAS;AACjC,UAAI,OAAOL,KAAa,UAAU;AAEhC,YAAIA,EAAS,WAAW,MAAM,MAAM,OAAOA,CAAQ,CAAC;AAClD,gBAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B;AAErD,QAAAG,IAAQC,MAAS,YAAY,SAASL,GAAU,EAAE,IAAI,WAAWA,CAAQ;AAAA,MAC3E,WAAW,OAAOA,KAAa;AAE7B,cAAM,IAAI,MAAM,IAAIC,CAAK,0BAA0B;AAAA;AAKvD,UAAMK,IAA0C;AAAA,MAC9C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAEIC,IACJ,OAAO,QAAQL,EAAU,IAAI,EAC7B,OAAO,CAACM,GAAK,CAACC,GAAK,CAAC,OAChBH,EAAe,SAASG,CAAG,MAAGD,EAAIC,CAAG,IAAI,IACtCD,IACN,CAAA,CAAyC,GAEtC,EAAE,IAAAE,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,WAAAC,GAAW,WAAAC,GAAW,UAAAC,GAAU,UAAAC,EAAA,IAAaV,GAC/DW,IAAUhB,EAAU,KAAK;AAE/B,QAAI,OAAOE,KAAU,UAAU;AAC7B,UAAIM,KAAM,QAAQN,IAAQM,EAAI,OAAM,IAAI,MAAM,IAAIT,CAAK,eAAeS,CAAE,EAAE;AAC1E,UAAIC,KAAM,QAAQP,KAASO,EAAI,OAAM,IAAI,MAAM,IAAIV,CAAK,eAAeU,CAAE,EAAE;AAC3E,UAAIC,KAAM,QAAQR,IAAQQ,EAAI,OAAM,IAAI,MAAM,IAAIX,CAAK,eAAeW,CAAE,EAAE;AAC1E,UAAIC,KAAM,QAAQT,KAASS,EAAI,OAAM,IAAI,MAAM,IAAIZ,CAAK,eAAeY,CAAE,EAAE;AAAA,IAC7E,WAAW,OAAOT,KAAU,UAAU;AACpC,UAAIU,KAAa,QAAQV,EAAM,SAASU;AACtC,cAAM,IAAI,MAAM,IAAIb,CAAK,sBAAsBa,CAAS,EAAE;AAC5D,UAAIC,KAAa,QAAQX,EAAM,SAASW;AACtC,cAAM,IAAI,MAAM,IAAId,CAAK,sBAAsBc,CAAS,EAAE;AAC5D,UAAIG,KAAW,CAAC,IAAI,OAAOA,CAAO,EAAE,KAAKd,CAAK;AAC5C,cAAM,IAAI,MAAM,IAAIH,CAAK,wBAAwBiB,CAAO,EAAE;AAAA,IAC9D,WAAW,MAAM,QAAQd,CAAK,GAAG;AAC/B,UAAIY,KAAY,QAAQZ,EAAM,SAASY;AACrC,cAAM,IAAI,MAAM,IAAIf,CAAK,qBAAqBe,CAAQ,EAAE;AAC1D,UAAIC,KAAY,QAAQb,EAAM,SAASa;AACrC,cAAM,IAAI,MAAM,IAAIhB,CAAK,qBAAqBgB,CAAQ,EAAE;AAAA,IAC5D;AAAA,EACF;AACF;"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("../../../../../_virtual/jsx-runtime.cjs.js"),n=require("react"),a=require("styled-components");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../components/LinksManager/CellEditingDialog.cjs.js");require("../../../components/DeleteEntitiesConfirm/DeleteConfirmContent.cjs.js");require("../../../components/DeleteEntitiesConfirm/DeleteEntitiesConfirmDialog.styled.cjs.js");require("react-toastify");require("../../../api/base/client.cjs.js");require("../../../api/generated/graphql.cjs.js");require("../../../api/generated/graphqlLinks.cjs.js");require("../../../api/generated/access.cjs.js");require("../../../api/generated/actions.cjs.js");require("../../../api/generated/activityFeed.cjs.js");require("../../../api/generated/addons.cjs.js");require("../../../api/generated/anatomy.cjs.js");require("../../../api/generated/attributes.cjs.js");require("../../../api/generated/authentication.cjs.js");require("../../../api/generated/bundles.cjs.js");require("../../../api/generated/configuration.cjs.js");require("../../../api/generated/dataImport.cjs.js");require("../../../api/generated/desktop.cjs.js");require("../../../api/generated/entityLists.cjs.js");require("../../../api/generated/events.cjs.js");require("../../../api/generated/files.cjs.js");require("../../../api/generated/folders.cjs.js");require("../../../api/generated/inbox.cjs.js");require("../../../api/generated/links.cjs.js");require("../../../api/generated/market.cjs.js");require("../../../api/generated/onboarding.cjs.js");require("../../../api/generated/operations.cjs.js");require("../../../api/generated/products.cjs.js");require("../../../api/generated/projectDashboard.cjs.js");require("../../../api/generated/projects.cjs.js");require("../../../api/generated/projectFolders.cjs.js");require("../../../api/generated/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/bundles/getBundles.cjs.js");require("../../../api/queries/bundles/updateBundles.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/columnStats/metricTargets.cjs.js");require("../../../api/queries/columnStats/groupCounts.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/listItemsColumnStats.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/products/getFolderProducts.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.cjs.js");require("../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../api/queries/review/getReview.cjs.js");require("../../../api/queries/review/updateReview.cjs.js");require("../../../api/queries/share/share.cjs.js");require("../../../api/queries/system/getSystem.cjs.js");require("../../../api/queries/tasks/getTasks.cjs.js");require("../../../api/queries/tasks/updateTasks.cjs.js");require("../../../api/queries/teams/getTeams.cjs.js");require("../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../api/queries/users/getUsers.cjs.js");require("../../../api/queries/users/updateUsers.cjs.js");require("../../../api/queries/users/guests.cjs.js");require("../../../api/queries/versions/updateVersions.cjs.js");require("../../../api/queries/views/getViews.cjs.js");require("../../../api/queries/views/updateViews.cjs.js");require("../../../api/queries/watchers/getWatchers.cjs.js");require("../../../api/queries/uris/getUris.cjs.js");require("../../../../../_virtual/index.cjs.js");require("../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("../../Feed/components/CommentInput/modules/index.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("../../../context/PowerpackContextInstance.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../context/DetailsPanelContextInstance.cjs.js");require("../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContextInstance.cjs.js");require("../../../context/EntityUpdatesContextInstance.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltipItem.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityFieldChange/ActivityFieldChange.styled.cjs.js");require("../../Feed/components/ActivityFieldChange/FieldValue.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../Feed/components/FeedSearchFilter.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("./CollapsedWidget.cjs.js");require("./DateWidget.cjs.js");require("./EnumWidget.cjs.js");require("./EnumCellValue.cjs.js");require("./TextWidget.cjs.js");require("./MarkdownWidget.cjs.js");require("./CellWidget.cjs.js");require("./EntityNameWidget.cjs.js");require("./GroupHeaderWidget.cjs.js");require("./ThumbnailWidget.cjs.js");require("./LinksWidget.cjs.js");require("../../../components/LinksManager/LinksManager.styled.cjs.js");require("short-uuid");require("../../../components/SearchFilter/filterDates.cjs.js");require("../context/CellEditingContext.cjs.js");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/SelectedRowsContext.cjs.js");require("../context/DetailsPanelEntityContext.cjs.js");require("../context/ProjectDataContextInstance.cjs.js");require("../../NewEntity/components/NewEntity.cjs.js");require("../../Slicer/components/Slicer.cjs.js");require("../../Slicer/context/SlicerContextInstance.cjs.js");require("../../Slicer/components/SlicerDropdownFallback.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("react-redux");require("../../NewEntity/context/NewEntityContextInstance.cjs.js");require("../../NewEntity/components/NewEntityForm.cjs.js");require("../context/ProjectTableContextInstance.cjs.js");require("./EmptyWidget.cjs.js");require("./ErrorWidget.cjs.js");require("../ProjectTreeTable.styled.cjs.js");require("../components/SelectionCell.cjs.js");require("../components/RowSelectionHeader.cjs.js");require("./LoadMoreWidget.cjs.js");require("../components/HeaderActionButton.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../components/TableFooterRow.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../../DetailsPanel/components/SubtasksSearchFilter/SubtasksSearchFilter.cjs.js");require("../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../Views/context/ViewsContextInstance.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../ListTable/ListTableRow.cjs.js");require("../../ListTable/ListTable.styled.cjs.js");require("../../../context/DeleteEntitiesContext.cjs.js");require("custom-protocol-check");require("../components/GroupSettingsFallback.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");const s=require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/InfoMessage/InfoMessage.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/CustomDateRangeDialog.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/SyncButton/SyncButton.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContextInstance.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");require("../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../components/ColumnHeaderMenuUI.cjs.js");const d=a.input`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../../../../_virtual/jsx-runtime.cjs.js"),s=require("react"),d=require("styled-components"),l=require("../../../components/DoneCheckbox/DoneCheckbox.cjs.js"),u=d.input`
2
2
  margin: auto;
3
3
  z-index: 1;
4
4
  cursor: pointer;
@@ -19,5 +19,5 @@
19
19
  border-color: var(--md-sys-color-primary);
20
20
  appearance: auto;
21
21
  }
22
- `,l=n.forwardRef(({value:e,onChange:o,isReadOnly:r,isEditing:b,onCancelEdit:x,isInherited:p,...i},t)=>r?q.jsxRuntimeExports.jsx(s.DoneCheckbox,{checked:e,isReadOnly:!0,className:i.className}):q.jsxRuntimeExports.jsx(d,{...i,checked:e,onChange:c=>{const u=c.target.checked;u!==e&&o(u,"Click")},ref:t,type:"checkbox",disabled:r,readOnly:r}));exports.BooleanWidget=l;
22
+ `,b=s.forwardRef(({value:e,onChange:n,isReadOnly:r,isEditing:x,onCancelEdit:p,isInherited:h,...o},a)=>r?c.jsxRuntimeExports.jsx(l.DoneCheckbox,{checked:e,isReadOnly:!0,className:o.className}):c.jsxRuntimeExports.jsx(u,{...o,checked:e,onChange:i=>{const t=i.target.checked;t!==e&&n(t,"Click")},ref:a,type:"checkbox",disabled:r,readOnly:r}));exports.BooleanWidget=b;
23
23
  //# sourceMappingURL=BooleanWidget.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/BooleanWidget.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport styled from 'styled-components'\nimport { DoneCheckbox } from '@shared/components'\nimport { WidgetBaseProps } from './CellWidget'\n\nconst StyledCheckbox = styled.input`\n margin: auto;\n z-index: 1;\n cursor: pointer;\n\n width: 16px;\n height: 16px;\n background-color: transparent;\n border: 1px solid var(--md-sys-color-outline);\n appearance: none;\n border-radius: 2px;\n\n &:hover {\n border-color: var(--color-table-boolean-border);\n }\n\n &:checked {\n background-color: var(--md-sys-color-primary);\n border-color: var(--md-sys-color-primary);\n appearance: auto;\n }\n`\n\nexport interface BooleanWidgetProps\n extends Omit<React.HTMLAttributes<HTMLInputElement>, 'onChange'>,\n WidgetBaseProps {\n value: boolean\n isReadOnly?: boolean\n isInherited?: boolean\n}\n\nexport const BooleanWidget = forwardRef<HTMLInputElement, BooleanWidgetProps>(\n ({ value, onChange, isReadOnly, isEditing, onCancelEdit, isInherited, ...props }, ref) => {\n if (isReadOnly) {\n return <DoneCheckbox checked={value} isReadOnly className={props.className} />\n }\n\n return (\n <StyledCheckbox\n {...props}\n checked={value}\n onChange={(e) => {\n const newValue = (e.target as HTMLInputElement).checked\n // For checkboxes, every click is a value change, but we check anyway for consistency\n if (newValue !== value) {\n onChange(newValue, 'Click')\n }\n }}\n ref={ref}\n type=\"checkbox\"\n disabled={isReadOnly}\n readOnly={isReadOnly}\n />\n )\n },\n)\n"],"names":["StyledCheckbox","styled","BooleanWidget","forwardRef","value","onChange","isReadOnly","isEditing","onCancelEdit","isInherited","props","ref","jsx","DoneCheckbox","e","newValue"],"mappings":"uyiBAKA,MAAMA,EAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BjBC,EAAgBC,EAAAA,WAC3B,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,WAAAC,EAAY,UAAAC,EAAW,aAAAC,EAAc,YAAAC,EAAa,GAAGC,CAAA,EAASC,IAC5EL,EACKM,wBAACC,EAAAA,cAAa,QAAST,EAAO,WAAU,GAAC,UAAWM,EAAM,UAAW,EAI5EE,EAAAA,kBAAAA,IAACZ,EAAA,CACE,GAAGU,EACJ,QAASN,EACT,SAAWU,GAAM,CACf,MAAMC,EAAYD,EAAE,OAA4B,QAE5CC,IAAaX,GACfC,EAASU,EAAU,OAAO,CAE9B,EACA,IAAAJ,EACA,KAAK,WACL,SAAUL,EACV,SAAUA,CAAA,CAAA,CAIlB"}
1
+ {"version":3,"file":"BooleanWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/BooleanWidget.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport styled from 'styled-components'\nimport { DoneCheckbox } from '@shared/components/DoneCheckbox/DoneCheckbox'\nimport { WidgetBaseProps } from './CellWidget'\n\nconst StyledCheckbox = styled.input`\n margin: auto;\n z-index: 1;\n cursor: pointer;\n\n width: 16px;\n height: 16px;\n background-color: transparent;\n border: 1px solid var(--md-sys-color-outline);\n appearance: none;\n border-radius: 2px;\n\n &:hover {\n border-color: var(--color-table-boolean-border);\n }\n\n &:checked {\n background-color: var(--md-sys-color-primary);\n border-color: var(--md-sys-color-primary);\n appearance: auto;\n }\n`\n\nexport interface BooleanWidgetProps\n extends Omit<React.HTMLAttributes<HTMLInputElement>, 'onChange'>,\n WidgetBaseProps {\n value: boolean\n isReadOnly?: boolean\n isInherited?: boolean\n}\n\nexport const BooleanWidget = forwardRef<HTMLInputElement, BooleanWidgetProps>(\n ({ value, onChange, isReadOnly, isEditing, onCancelEdit, isInherited, ...props }, ref) => {\n if (isReadOnly) {\n return <DoneCheckbox checked={value} isReadOnly className={props.className} />\n }\n\n return (\n <StyledCheckbox\n {...props}\n checked={value}\n onChange={(e) => {\n const newValue = (e.target as HTMLInputElement).checked\n // For checkboxes, every click is a value change, but we check anyway for consistency\n if (newValue !== value) {\n onChange(newValue, 'Click')\n }\n }}\n ref={ref}\n type=\"checkbox\"\n disabled={isReadOnly}\n readOnly={isReadOnly}\n />\n )\n },\n)\n"],"names":["StyledCheckbox","styled","BooleanWidget","forwardRef","value","onChange","isReadOnly","isEditing","onCancelEdit","isInherited","props","ref","jsx","DoneCheckbox","e","newValue"],"mappings":"kQAKMA,EAAiBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BjBC,EAAgBC,EAAAA,WAC3B,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,WAAAC,EAAY,UAAAC,EAAW,aAAAC,EAAc,YAAAC,EAAa,GAAGC,CAAA,EAASC,IAC5EL,EACKM,wBAACC,EAAAA,cAAa,QAAST,EAAO,WAAU,GAAC,UAAWM,EAAM,UAAW,EAI5EE,EAAAA,kBAAAA,IAACZ,EAAA,CACE,GAAGU,EACJ,QAASN,EACT,SAAWU,GAAM,CACf,MAAMC,EAAYD,EAAE,OAA4B,QAE5CC,IAAaX,GACfC,EAASU,EAAU,OAAO,CAE9B,EACA,IAAAJ,EACA,KAAK,WACL,SAAUL,EACV,SAAUA,CAAA,CAAA,CAIlB"}