@ynput/ayon-frontend-shared 0.2.44 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +72 -65
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/ProjectTreeTable.cjs.js +1 -1
  5. package/dist/ProjectTreeTable.es.js +104 -102
  6. package/dist/Slicer.cjs.js +1 -1
  7. package/dist/Slicer.es.js +113 -4
  8. package/dist/Slicer.es.js.map +1 -1
  9. package/dist/Views.cjs.js.map +1 -1
  10. package/dist/Views.es.js.map +1 -1
  11. package/dist/_virtual/index.cjs4.js +1 -1
  12. package/dist/_virtual/index.cjs5.js +1 -1
  13. package/dist/_virtual/index.es4.js +5 -2
  14. package/dist/_virtual/index.es4.js.map +1 -1
  15. package/dist/_virtual/index.es5.js +2 -5
  16. package/dist/_virtual/index.es5.js.map +1 -1
  17. package/dist/components.cjs.js +1 -1
  18. package/dist/components.es.js +141 -139
  19. package/dist/components.es.js.map +1 -1
  20. package/dist/index.cjs.js +1 -1
  21. package/dist/index.es.js +61 -54
  22. package/dist/index.es.js.map +1 -1
  23. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js +5 -5
  24. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.cjs.js.map +1 -1
  25. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js +313 -305
  26. package/dist/node_modules/@reduxjs/toolkit/dist/query/rtk-query.modern.es.js.map +1 -1
  27. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  28. package/dist/node_modules/remove-accents/index.es.js +1 -1
  29. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
  30. package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
  31. package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
  32. package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
  33. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
  34. package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
  35. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
  36. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
  37. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +73 -68
  38. package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
  39. package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
  40. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  41. package/dist/shared/src/api/queries/views/updateViews.es.js +1 -1
  42. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  43. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  44. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  45. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +57 -50
  46. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  47. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  48. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  49. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +45 -38
  50. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  51. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  52. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  53. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +47 -40
  54. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  55. package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
  56. package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
  57. package/dist/shared/src/components/Menu/MenuItem.es.js +21 -21
  58. package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
  59. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  60. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  61. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +49 -42
  62. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  63. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  64. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  65. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +44 -37
  66. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  67. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  68. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  69. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +48 -41
  70. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  71. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +2 -0
  72. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -0
  73. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +279 -0
  74. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -0
  75. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  76. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  77. package/dist/shared/src/components/RenameForm/RenameForm.es.js +48 -41
  78. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  79. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  80. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  81. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +64 -57
  82. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  83. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  84. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  85. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +54 -47
  86. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  87. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  88. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  89. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +53 -46
  90. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  91. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  92. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  93. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +52 -45
  94. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  95. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +2 -2
  96. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  97. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +56 -49
  98. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  99. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  100. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  101. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +53 -46
  102. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  103. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  104. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  105. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +54 -47
  106. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  107. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  108. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  109. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +70 -63
  110. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  111. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  112. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  113. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +49 -42
  114. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  115. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  116. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  117. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +68 -61
  118. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  119. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  120. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  121. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +93 -86
  122. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  123. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  124. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  125. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +47 -40
  126. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  127. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  128. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  129. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +46 -43
  130. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  131. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  132. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  133. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +49 -46
  134. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  135. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  136. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  137. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +49 -46
  138. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  139. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  140. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  141. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +49 -46
  142. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  143. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  144. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  145. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +50 -42
  146. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  147. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
  148. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
  149. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +55 -48
  150. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
  151. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  152. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  153. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +70 -63
  154. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  155. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  156. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  157. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +47 -40
  158. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  159. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  160. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  161. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +468 -448
  162. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  163. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  164. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  165. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +96 -89
  166. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  167. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  168. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  169. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +47 -40
  170. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  171. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  172. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  173. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +57 -50
  174. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  175. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  176. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  177. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +54 -47
  178. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  179. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  180. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  181. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
  182. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +63 -68
  184. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  185. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  186. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +49 -41
  188. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  189. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  190. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +51 -44
  192. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  193. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  194. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +48 -41
  196. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  197. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  198. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +55 -48
  200. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  201. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  202. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +54 -47
  204. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  205. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  206. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +51 -44
  208. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  209. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  210. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +51 -44
  212. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  213. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
  214. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +51 -44
  216. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  218. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +54 -47
  220. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  222. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +46 -39
  224. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  226. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +46 -39
  228. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  230. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +48 -41
  232. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  235. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +62 -55
  236. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.cjs.js +1 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.cjs.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.es.js +11 -6
  240. package/dist/shared/src/containers/ProjectTreeTable/utils/restrictedEntity.es.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +2 -2
  242. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +16 -13
  244. package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  246. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +342 -116
  248. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js +2 -2
  250. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.cjs.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js +47 -40
  252. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidgetInput.es.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +2 -2
  254. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +7 -7
  256. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  258. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +69 -62
  260. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  262. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +51 -44
  264. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js +2 -2
  266. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.cjs.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js +29 -33
  268. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidgetInput.es.js.map +1 -1
  269. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  270. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  271. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +118 -111
  272. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  273. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  274. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  275. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +49 -46
  276. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  277. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -0
  278. package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -0
  279. package/dist/shared/src/containers/Slicer/components/Slicer.es.js +82 -0
  280. package/dist/shared/src/containers/Slicer/components/Slicer.es.js.map +1 -0
  281. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +27 -0
  282. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -0
  283. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +71 -0
  284. package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -0
  285. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +10 -0
  286. package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -0
  287. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +294 -0
  288. package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -0
  289. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +2 -0
  290. package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -0
  291. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +215 -0
  292. package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -0
  293. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js.map +1 -0
  294. package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.es.js.map +1 -0
  295. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +2 -0
  296. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -0
  297. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +25 -0
  298. package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -0
  299. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +2 -0
  300. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -0
  301. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +28 -0
  302. package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -0
  303. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +2 -0
  304. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -0
  305. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +304 -0
  306. package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -0
  307. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +2 -0
  308. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -0
  309. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +99 -0
  310. package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -0
  311. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -0
  312. package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -0
  313. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
  314. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
  315. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +95 -88
  316. package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js.map +1 -1
  317. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +2 -2
  318. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
  319. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +32 -31
  320. package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
  321. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  322. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  323. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +125 -121
  324. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  325. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
  326. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
  327. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +47 -49
  328. package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
  329. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  330. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  331. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +6 -5
  332. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  333. package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
  334. package/dist/shared/src/context/AddonContext.es.js.map +1 -1
  335. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  336. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  337. package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
  338. package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
  339. package/dist/shared/src/context/WebsocketContext.es.js +51 -44
  340. package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
  341. package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
  342. package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
  343. package/dist/shared/src/hooks/useLoadModules.cjs.js +1 -1
  344. package/dist/shared/src/hooks/useLoadModules.cjs.js.map +1 -1
  345. package/dist/shared/src/hooks/useLoadModules.es.js +7 -7
  346. package/dist/shared/src/hooks/useLoadModules.es.js.map +1 -1
  347. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  348. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  349. package/dist/shared/src/util/columnConfigConverter.es.js +69 -46
  350. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  351. package/dist/shared/src/util/getGroupByDataType.cjs.js +1 -1
  352. package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
  353. package/dist/shared/src/util/getGroupByDataType.es.js +4 -4
  354. package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
  355. package/dist/types/api/queries/activities/getActivities.d.ts +1 -1
  356. package/dist/types/api/queries/entityLists/getLists.d.ts +183 -183
  357. package/dist/types/api/queries/links/getLinks.d.ts +1 -1
  358. package/dist/types/api/queries/overview/getOverview.d.ts +1 -1
  359. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +1 -0
  360. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +2 -2
  361. package/dist/types/components/RemotePage/RemotePageWrapper.d.ts +28 -0
  362. package/dist/types/components/RemotePage/index.d.ts +1 -0
  363. package/dist/types/components/index.d.ts +31 -30
  364. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +0 -2
  365. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +1 -4
  366. package/dist/types/containers/ProjectTreeTable/utils/restrictedEntity.d.ts +3 -3
  367. package/dist/types/containers/Slicer/components/Slicer.d.ts +9 -0
  368. package/dist/types/containers/Slicer/components/SlicerDropdownFallback.d.ts +7 -0
  369. package/dist/types/containers/Slicer/components/SlicerSearch.d.ts +6 -0
  370. package/dist/types/containers/Slicer/context/SlicerContext.d.ts +48 -0
  371. package/dist/types/containers/Slicer/hooks/index.d.ts +5 -0
  372. package/dist/types/containers/Slicer/{useFiltersWithHierarchy.d.ts → hooks/useFiltersWithHierarchy.d.ts} +1 -1
  373. package/dist/types/containers/Slicer/hooks/useProjectAnatomySlices.d.ts +51 -0
  374. package/dist/types/containers/Slicer/hooks/useSlicerAttributesData.d.ts +7 -0
  375. package/dist/types/containers/Slicer/hooks/useTableDataBySlice.d.ts +8 -0
  376. package/dist/types/containers/Slicer/hooks/useUsersTable.d.ts +10 -0
  377. package/dist/types/containers/Slicer/index.d.ts +4 -2
  378. package/dist/types/containers/Slicer/types.d.ts +35 -0
  379. package/dist/types/containers/Slicer/{createFilterFromSlicer.d.ts → util/createFilterFromSlicer.d.ts} +2 -2
  380. package/dist/types/containers/Slicer/util/index.d.ts +1 -0
  381. package/dist/types/containers/Views/ViewsMenuContainer/BaseViewsTags.d.ts +4 -1
  382. package/dist/types/containers/Views/hooks/pages/useOverviewViewSettings.d.ts +7 -1
  383. package/dist/types/containers/Views/index.d.ts +1 -1
  384. package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +1 -1
  385. package/dist/types/context/AddonContext.d.ts +10 -2
  386. package/dist/types/context/AddonProjectContext.d.ts +7 -12
  387. package/dist/types/hooks/useGroupByRemoteModules.d.ts +2 -1
  388. package/package.json +1 -1
  389. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.cjs.js.map +0 -1
  390. package/dist/shared/src/containers/Slicer/createFilterFromSlicer.es.js.map +0 -1
  391. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.cjs.js.map +0 -1
  392. package/dist/shared/src/containers/Slicer/useFiltersWithHierarchy.es.js.map +0 -1
  393. /package/dist/shared/src/containers/Slicer/{useFiltersWithHierarchy.cjs.js → hooks/useFiltersWithHierarchy.cjs.js} +0 -0
  394. /package/dist/shared/src/containers/Slicer/{useFiltersWithHierarchy.es.js → hooks/useFiltersWithHierarchy.es.js} +0 -0
  395. /package/dist/shared/src/containers/Slicer/{createFilterFromSlicer.cjs.js → util/createFilterFromSlicer.cjs.js} +0 -0
  396. /package/dist/shared/src/containers/Slicer/{createFilterFromSlicer.es.js → util/createFilterFromSlicer.es.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DateWidgetInput.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/DateWidgetInput.tsx"],"sourcesContent":["import { forwardRef, useState, useEffect, useRef } from 'react'\nimport styled from 'styled-components'\nimport { format, isValid, parseISO } from 'date-fns'\nimport { WidgetBaseProps } from './CellWidget'\n\ninterface DateWidgetInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n onCancel?: () => void\n autoFocus?: boolean\n}\n\nconst StyledInput = styled.input`\n z-index: 10;\n border: none;\n outline: none;\n padding: 0;\n padding-left: 1px;\n margin: 0;\n cursor: text;\n font-size: inherit;\n font-family: inherit;\n font-weight: inherit;\n background-color: transparent;\n width: 100%;\n box-sizing: border-box;\n`\n\nexport const DateWidgetInput = forwardRef<HTMLInputElement, DateWidgetInputProps>(\n ({ value: initialValue, onChange, onCancel, autoFocus = true, ...props }, _) => {\n const [value, setValue] = useState(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n return format(parsedDate, 'yyyy-MM-dd')\n }\n }\n return ''\n })\n\n useEffect(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n setValue(format(parsedDate, 'yyyy-MM-dd'))\n } else {\n setValue('')\n }\n }\n }, [initialValue])\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (autoFocus && inputRef.current) {\n inputRef.current.focus()\n // Delay showPicker call until after focus to ensure it's tied to user interaction\n setTimeout(() => {\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown automatically:', error)\n }\n }, 100)\n }\n }, [autoFocus])\n\n // Ensure the picker opens when clicked directly\n const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e.preventDefault() // Prevent default to ensure our handler takes precedence\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown on click:', error)\n }\n }\n\n const handleDateSubmit = (event?: 'Click' | 'Enter') => {\n if (value) {\n const parsed = Date.parse(value)\n if (isValid(parsed)) {\n const dateWithZeroTime = new Date(parsed)\n dateWithZeroTime.setUTCHours(0, 0, 0, 0)\n onChange(dateWithZeroTime.toISOString(), event)\n return true\n }\n }\n return false\n }\n\n const handleBlur = () => {\n if (!handleDateSubmit('Click')) {\n onCancel?.()\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleDateSubmit('Enter')\n inputRef.current?.blur()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n onCancel?.()\n }\n }\n\n return (\n <StyledInput\n {...props}\n ref={inputRef}\n type=\"date\"\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n />\n )\n },\n)\n"],"names":["StyledInput","styled","DateWidgetInput","forwardRef","initialValue","onChange","onCancel","autoFocus","props","_","value","setValue","useState","parsedDate","parseISO","isValid","format","useEffect","inputRef","useRef","error","handleClick","handleDateSubmit","event","parsed","dateWithZeroTime","handleBlur","handleKeyDown","jsx"],"mappings":"sNAaMA,EAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBdC,EAAkBC,EAAAA,WAC7B,CAAC,CAAE,MAAOC,EAAc,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAY,GAAM,GAAGC,CAAA,EAASC,IAAM,CAC9E,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAS,IAAM,CACvC,GAAIR,EAAc,CAChB,MAAMS,EAAaC,EAAAA,SAASV,CAAY,EACxC,GAAIW,EAAAA,QAAQF,CAAU,EACpB,OAAOG,EAAAA,OAAOH,EAAY,YAAY,CAE1C,CACA,MAAO,EACT,CAAC,EAEDI,EAAAA,UAAU,IAAM,CACd,GAAIb,EAAc,CAChB,MAAMS,EAAaC,EAAAA,SAASV,CAAY,EACpCW,EAAAA,QAAQF,CAAU,EACpBF,EAASK,EAAAA,OAAOH,EAAY,YAAY,CAAC,EAEzCF,EAAS,EAAE,CAEf,CACF,EAAG,CAACP,CAAY,CAAC,EAEjB,MAAMc,EAAWC,EAAAA,OAAyB,IAAI,EAE9CF,EAAAA,UAAU,IAAM,CACVV,GAAaW,EAAS,UACxBA,EAAS,QAAQ,MAAA,EAEjB,WAAW,IAAM,CACf,GAAI,CACFA,EAAS,SAAS,WAAA,CACpB,OAASE,EAAO,CACd,QAAQ,MAAM,gDAAiDA,CAAK,CACtE,CACF,EAAG,GAAG,EAEV,EAAG,CAACb,CAAS,CAAC,EAGd,MAAMc,EAAe,GAA0C,CAC7D,EAAE,eAAA,EACF,GAAI,CACFH,EAAS,SAAS,WAAA,CACpB,OAASE,EAAO,CACd,QAAQ,MAAM,2CAA4CA,CAAK,CACjE,CACF,EAEME,EAAoBC,GAA8B,CACtD,GAAIb,EAAO,CACT,MAAMc,EAAS,KAAK,MAAMd,CAAK,EAC/B,GAAIK,EAAAA,QAAQS,CAAM,EAAG,CACnB,MAAMC,EAAmB,IAAI,KAAKD,CAAM,EACxC,OAAAC,EAAiB,YAAY,EAAG,EAAG,EAAG,CAAC,EACvCpB,EAASoB,EAAiB,YAAA,EAAeF,CAAK,EACvC,EACT,CACF,CACA,MAAO,EACT,EAEMG,EAAa,IAAM,CAClBJ,EAAiB,OAAO,GAC3BhB,IAAA,CAEJ,EAEMqB,EAAiB,GAA6C,CAC9D,EAAE,MAAQ,SACZ,EAAE,eAAA,EACFL,EAAiB,OAAO,EACxBJ,EAAS,SAAS,KAAA,GACT,EAAE,MAAQ,WACnB,EAAE,eAAA,EACFZ,IAAA,EAEJ,EAEA,OACEsB,EAAAA,kBAAAA,IAAC5B,EAAA,CACE,GAAGQ,EACJ,IAAKU,EACL,KAAK,OACL,MAAAR,EACA,SAAW,GAAMC,EAAS,EAAE,OAAO,KAAK,EACxC,OAAQe,EACR,UAAWC,EACX,QAASN,CAAA,CAAA,CAGf,CACF"}
1
+ {"version":3,"file":"DateWidgetInput.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/DateWidgetInput.tsx"],"sourcesContent":["import { forwardRef, useState, useEffect, useRef } from 'react'\nimport styled from 'styled-components'\nimport { format, isValid, parseISO } from 'date-fns'\nimport { WidgetBaseProps } from './CellWidget'\n\ninterface DateWidgetInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n onCancel?: () => void\n autoFocus?: boolean\n}\n\nconst StyledInput = styled.input`\n z-index: 10;\n border: none;\n outline: none;\n padding: 0;\n padding-left: 1px;\n margin: 0;\n cursor: text;\n font-size: inherit;\n font-family: inherit;\n font-weight: inherit;\n background-color: transparent;\n width: 100%;\n box-sizing: border-box;\n`\n\nexport const DateWidgetInput = forwardRef<HTMLInputElement, DateWidgetInputProps>(\n ({ value: initialValue, onChange, onCancel, autoFocus = true, ...props }, _) => {\n const [value, setValue] = useState(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n return format(parsedDate, 'yyyy-MM-dd')\n }\n }\n return ''\n })\n\n useEffect(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n setValue(format(parsedDate, 'yyyy-MM-dd'))\n } else {\n setValue('')\n }\n }\n }, [initialValue])\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (autoFocus && inputRef.current) {\n inputRef.current.focus()\n // Delay showPicker call until after focus to ensure it's tied to user interaction\n setTimeout(() => {\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown automatically:', error)\n }\n }, 100)\n }\n }, [autoFocus])\n\n // Ensure the picker opens when clicked directly\n const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e.preventDefault() // Prevent default to ensure our handler takes precedence\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown on click:', error)\n }\n }\n\n const handleDateSubmit = (event?: 'Click' | 'Enter') => {\n if (value) {\n const parsed = Date.parse(value)\n if (isValid(parsed)) {\n const dateWithZeroTime = new Date(parsed)\n dateWithZeroTime.setUTCHours(0, 0, 0, 0)\n const newISOValue = dateWithZeroTime.toISOString()\n\n // For Click/Blur: only save if value changed\n // For Enter: always save\n if (event === 'Enter') {\n onChange(newISOValue, event)\n return true\n } else if (event === 'Click') {\n // Check if value actually changed\n const initialDateISO = initialValue ? parseISO(initialValue).toISOString() : ''\n if (newISOValue !== initialDateISO) {\n onChange(newISOValue, event)\n return true\n }\n // Value didn't change, cancel edit\n return false\n }\n }\n }\n return false\n }\n\n const handleBlur = () => {\n if (!handleDateSubmit('Click')) {\n onCancel?.()\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleDateSubmit('Enter')\n inputRef.current?.blur()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n onCancel?.()\n }\n }\n\n return (\n <StyledInput\n {...props}\n ref={inputRef}\n type=\"date\"\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n />\n )\n },\n)\n"],"names":["StyledInput","styled","DateWidgetInput","forwardRef","initialValue","onChange","onCancel","autoFocus","props","_","value","setValue","useState","parsedDate","parseISO","isValid","format","useEffect","inputRef","useRef","error","handleClick","handleDateSubmit","event","parsed","dateWithZeroTime","newISOValue","initialDateISO","handleBlur","handleKeyDown","jsx"],"mappings":"sNAaMA,EAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBdC,EAAkBC,EAAAA,WAC7B,CAAC,CAAE,MAAOC,EAAc,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAY,GAAM,GAAGC,CAAA,EAASC,IAAM,CAC9E,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAS,IAAM,CACvC,GAAIR,EAAc,CAChB,MAAMS,EAAaC,EAAAA,SAASV,CAAY,EACxC,GAAIW,EAAAA,QAAQF,CAAU,EACpB,OAAOG,EAAAA,OAAOH,EAAY,YAAY,CAE1C,CACA,MAAO,EACT,CAAC,EAEDI,EAAAA,UAAU,IAAM,CACd,GAAIb,EAAc,CAChB,MAAMS,EAAaC,EAAAA,SAASV,CAAY,EACpCW,EAAAA,QAAQF,CAAU,EACpBF,EAASK,EAAAA,OAAOH,EAAY,YAAY,CAAC,EAEzCF,EAAS,EAAE,CAEf,CACF,EAAG,CAACP,CAAY,CAAC,EAEjB,MAAMc,EAAWC,EAAAA,OAAyB,IAAI,EAE9CF,EAAAA,UAAU,IAAM,CACVV,GAAaW,EAAS,UACxBA,EAAS,QAAQ,MAAA,EAEjB,WAAW,IAAM,CACf,GAAI,CACFA,EAAS,SAAS,WAAA,CACpB,OAASE,EAAO,CACd,QAAQ,MAAM,gDAAiDA,CAAK,CACtE,CACF,EAAG,GAAG,EAEV,EAAG,CAACb,CAAS,CAAC,EAGd,MAAMc,EAAe,GAA0C,CAC7D,EAAE,eAAA,EACF,GAAI,CACFH,EAAS,SAAS,WAAA,CACpB,OAASE,EAAO,CACd,QAAQ,MAAM,2CAA4CA,CAAK,CACjE,CACF,EAEME,EAAoBC,GAA8B,CACtD,GAAIb,EAAO,CACT,MAAMc,EAAS,KAAK,MAAMd,CAAK,EAC/B,GAAIK,EAAAA,QAAQS,CAAM,EAAG,CACnB,MAAMC,EAAmB,IAAI,KAAKD,CAAM,EACxCC,EAAiB,YAAY,EAAG,EAAG,EAAG,CAAC,EACvC,MAAMC,EAAcD,EAAiB,YAAA,EAIrC,GAAIF,IAAU,QACZ,OAAAlB,EAASqB,EAAaH,CAAK,EACpB,GACT,GAAWA,IAAU,QAAS,CAE5B,MAAMI,EAAiBvB,EAAeU,EAAAA,SAASV,CAAY,EAAE,cAAgB,GAC7E,OAAIsB,IAAgBC,GAClBtB,EAASqB,EAAaH,CAAK,EACpB,IAGF,EACT,CACF,CACF,CACA,MAAO,EACT,EAEMK,EAAa,IAAM,CAClBN,EAAiB,OAAO,GAC3BhB,IAAA,CAEJ,EAEMuB,EAAiB,GAA6C,CAC9D,EAAE,MAAQ,SACZ,EAAE,eAAA,EACFP,EAAiB,OAAO,EACxBJ,EAAS,SAAS,KAAA,GACT,EAAE,MAAQ,WACnB,EAAE,eAAA,EACFZ,IAAA,EAEJ,EAEA,OACEwB,EAAAA,kBAAAA,IAAC9B,EAAA,CACE,GAAGQ,EACJ,IAAKU,EACL,KAAK,OACL,MAAAR,EACA,SAAW,GAAMC,EAAS,EAAE,OAAO,KAAK,EACxC,OAAQiB,EACR,UAAWC,EACX,QAASR,CAAA,CAAA,CAGf,CACF"}
@@ -1,8 +1,8 @@
1
- import { j as b } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import { forwardRef as k, useState as w, useEffect as d, useRef as x } from "react";
3
- import v from "styled-components";
4
- import { parseISO as l, isValid as c, format as p } from "date-fns";
5
- const S = v.input`
1
+ import { j as w } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import { forwardRef as S, useState as x, useEffect as y, useRef as I } from "react";
3
+ import E from "styled-components";
4
+ import { parseISO as i, isValid as u, format as h } from "date-fns";
5
+ const O = E.input`
6
6
  z-index: 10;
7
7
  border: none;
8
8
  outline: none;
@@ -16,69 +16,76 @@ const S = v.input`
16
16
  background-color: transparent;
17
17
  width: 100%;
18
18
  box-sizing: border-box;
19
- `, j = k(
20
- ({ value: r, onChange: y, onCancel: i, autoFocus: a = !0, ...h }, E) => {
21
- const [o, s] = w(() => {
22
- if (r) {
23
- const e = l(r);
24
- if (c(e))
25
- return p(e, "yyyy-MM-dd");
19
+ `, z = S(
20
+ ({ value: t, onChange: a, onCancel: f, autoFocus: d = !0, ...m }, C) => {
21
+ const [o, s] = x(() => {
22
+ if (t) {
23
+ const e = i(t);
24
+ if (u(e))
25
+ return h(e, "yyyy-MM-dd");
26
26
  }
27
27
  return "";
28
28
  });
29
- d(() => {
30
- if (r) {
31
- const e = l(r);
32
- c(e) ? s(p(e, "yyyy-MM-dd")) : s("");
29
+ y(() => {
30
+ if (t) {
31
+ const e = i(t);
32
+ u(e) ? s(h(e, "yyyy-MM-dd")) : s("");
33
33
  }
34
- }, [r]);
35
- const t = x(null);
36
- d(() => {
37
- a && t.current && (t.current.focus(), setTimeout(() => {
34
+ }, [t]);
35
+ const r = I(null);
36
+ y(() => {
37
+ d && r.current && (r.current.focus(), setTimeout(() => {
38
38
  try {
39
- t.current?.showPicker();
39
+ r.current?.showPicker();
40
40
  } catch (e) {
41
41
  console.debug("Date picker could not be shown automatically:", e);
42
42
  }
43
43
  }, 100));
44
- }, [a]);
45
- const m = (e) => {
44
+ }, [d]);
45
+ const D = (e) => {
46
46
  e.preventDefault();
47
47
  try {
48
- t.current?.showPicker();
48
+ r.current?.showPicker();
49
49
  } catch (n) {
50
50
  console.debug("Date picker could not be shown on click:", n);
51
51
  }
52
- }, u = (e) => {
52
+ }, l = (e) => {
53
53
  if (o) {
54
54
  const n = Date.parse(o);
55
- if (c(n)) {
56
- const f = new Date(n);
57
- return f.setUTCHours(0, 0, 0, 0), y(f.toISOString(), e), !0;
55
+ if (u(n)) {
56
+ const p = new Date(n);
57
+ p.setUTCHours(0, 0, 0, 0);
58
+ const c = p.toISOString();
59
+ if (e === "Enter")
60
+ return a(c, e), !0;
61
+ if (e === "Click") {
62
+ const b = t ? i(t).toISOString() : "";
63
+ return c !== b ? (a(c, e), !0) : !1;
64
+ }
58
65
  }
59
66
  }
60
67
  return !1;
61
- }, D = () => {
62
- u("Click") || i?.();
63
- }, g = (e) => {
64
- e.key === "Enter" ? (e.preventDefault(), u("Enter"), t.current?.blur()) : e.key === "Escape" && (e.preventDefault(), i?.());
68
+ }, g = () => {
69
+ l("Click") || f?.();
70
+ }, k = (e) => {
71
+ e.key === "Enter" ? (e.preventDefault(), l("Enter"), r.current?.blur()) : e.key === "Escape" && (e.preventDefault(), f?.());
65
72
  };
66
- return /* @__PURE__ */ b.jsx(
67
- S,
73
+ return /* @__PURE__ */ w.jsx(
74
+ O,
68
75
  {
69
- ...h,
70
- ref: t,
76
+ ...m,
77
+ ref: r,
71
78
  type: "date",
72
79
  value: o,
73
80
  onChange: (e) => s(e.target.value),
74
- onBlur: D,
75
- onKeyDown: g,
76
- onClick: m
81
+ onBlur: g,
82
+ onKeyDown: k,
83
+ onClick: D
77
84
  }
78
85
  );
79
86
  }
80
87
  );
81
88
  export {
82
- j as DateWidgetInput
89
+ z as DateWidgetInput
83
90
  };
84
91
  //# sourceMappingURL=DateWidgetInput.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateWidgetInput.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/DateWidgetInput.tsx"],"sourcesContent":["import { forwardRef, useState, useEffect, useRef } from 'react'\nimport styled from 'styled-components'\nimport { format, isValid, parseISO } from 'date-fns'\nimport { WidgetBaseProps } from './CellWidget'\n\ninterface DateWidgetInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n onCancel?: () => void\n autoFocus?: boolean\n}\n\nconst StyledInput = styled.input`\n z-index: 10;\n border: none;\n outline: none;\n padding: 0;\n padding-left: 1px;\n margin: 0;\n cursor: text;\n font-size: inherit;\n font-family: inherit;\n font-weight: inherit;\n background-color: transparent;\n width: 100%;\n box-sizing: border-box;\n`\n\nexport const DateWidgetInput = forwardRef<HTMLInputElement, DateWidgetInputProps>(\n ({ value: initialValue, onChange, onCancel, autoFocus = true, ...props }, _) => {\n const [value, setValue] = useState(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n return format(parsedDate, 'yyyy-MM-dd')\n }\n }\n return ''\n })\n\n useEffect(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n setValue(format(parsedDate, 'yyyy-MM-dd'))\n } else {\n setValue('')\n }\n }\n }, [initialValue])\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (autoFocus && inputRef.current) {\n inputRef.current.focus()\n // Delay showPicker call until after focus to ensure it's tied to user interaction\n setTimeout(() => {\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown automatically:', error)\n }\n }, 100)\n }\n }, [autoFocus])\n\n // Ensure the picker opens when clicked directly\n const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e.preventDefault() // Prevent default to ensure our handler takes precedence\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown on click:', error)\n }\n }\n\n const handleDateSubmit = (event?: 'Click' | 'Enter') => {\n if (value) {\n const parsed = Date.parse(value)\n if (isValid(parsed)) {\n const dateWithZeroTime = new Date(parsed)\n dateWithZeroTime.setUTCHours(0, 0, 0, 0)\n onChange(dateWithZeroTime.toISOString(), event)\n return true\n }\n }\n return false\n }\n\n const handleBlur = () => {\n if (!handleDateSubmit('Click')) {\n onCancel?.()\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleDateSubmit('Enter')\n inputRef.current?.blur()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n onCancel?.()\n }\n }\n\n return (\n <StyledInput\n {...props}\n ref={inputRef}\n type=\"date\"\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n />\n )\n },\n)\n"],"names":["StyledInput","styled","DateWidgetInput","forwardRef","initialValue","onChange","onCancel","autoFocus","props","_","value","setValue","useState","parsedDate","parseISO","isValid","format","useEffect","inputRef","useRef","error","handleClick","handleDateSubmit","event","parsed","dateWithZeroTime","handleBlur","handleKeyDown","jsx"],"mappings":";;;;AAaA,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBdC,IAAkBC;AAAA,EAC7B,CAAC,EAAE,OAAOC,GAAc,UAAAC,GAAU,UAAAC,GAAU,WAAAC,IAAY,IAAM,GAAGC,EAAA,GAASC,MAAM;AAC9E,UAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAS,MAAM;AACvC,UAAIR,GAAc;AAChB,cAAMS,IAAaC,EAASV,CAAY;AACxC,YAAIW,EAAQF,CAAU;AACpB,iBAAOG,EAAOH,GAAY,YAAY;AAAA,MAE1C;AACA,aAAO;AAAA,IACT,CAAC;AAED,IAAAI,EAAU,MAAM;AACd,UAAIb,GAAc;AAChB,cAAMS,IAAaC,EAASV,CAAY;AACxC,QAAIW,EAAQF,CAAU,IACpBF,EAASK,EAAOH,GAAY,YAAY,CAAC,IAEzCF,EAAS,EAAE;AAAA,MAEf;AAAA,IACF,GAAG,CAACP,CAAY,CAAC;AAEjB,UAAMc,IAAWC,EAAyB,IAAI;AAE9C,IAAAF,EAAU,MAAM;AACd,MAAIV,KAAaW,EAAS,YACxBA,EAAS,QAAQ,MAAA,GAEjB,WAAW,MAAM;AACf,YAAI;AACF,UAAAA,EAAS,SAAS,WAAA;AAAA,QACpB,SAASE,GAAO;AACd,kBAAQ,MAAM,iDAAiDA,CAAK;AAAA,QACtE;AAAA,MACF,GAAG,GAAG;AAAA,IAEV,GAAG,CAACb,CAAS,CAAC;AAGd,UAAMc,IAAc,CAAC,MAA0C;AAC7D,QAAE,eAAA;AACF,UAAI;AACF,QAAAH,EAAS,SAAS,WAAA;AAAA,MACpB,SAASE,GAAO;AACd,gBAAQ,MAAM,4CAA4CA,CAAK;AAAA,MACjE;AAAA,IACF,GAEME,IAAmB,CAACC,MAA8B;AACtD,UAAIb,GAAO;AACT,cAAMc,IAAS,KAAK,MAAMd,CAAK;AAC/B,YAAIK,EAAQS,CAAM,GAAG;AACnB,gBAAMC,IAAmB,IAAI,KAAKD,CAAM;AACxC,iBAAAC,EAAiB,YAAY,GAAG,GAAG,GAAG,CAAC,GACvCpB,EAASoB,EAAiB,YAAA,GAAeF,CAAK,GACvC;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT,GAEMG,IAAa,MAAM;AACvB,MAAKJ,EAAiB,OAAO,KAC3BhB,IAAA;AAAA,IAEJ,GAEMqB,IAAgB,CAAC,MAA6C;AAClE,MAAI,EAAE,QAAQ,WACZ,EAAE,eAAA,GACFL,EAAiB,OAAO,GACxBJ,EAAS,SAAS,KAAA,KACT,EAAE,QAAQ,aACnB,EAAE,eAAA,GACFZ,IAAA;AAAA,IAEJ;AAEA,WACEsB,gBAAAA,EAAAA;AAAAA,MAAC5B;AAAA,MAAA;AAAA,QACE,GAAGQ;AAAA,QACJ,KAAKU;AAAA,QACL,MAAK;AAAA,QACL,OAAAR;AAAA,QACA,UAAU,CAAC,MAAMC,EAAS,EAAE,OAAO,KAAK;AAAA,QACxC,QAAQe;AAAA,QACR,WAAWC;AAAA,QACX,SAASN;AAAA,MAAA;AAAA,IAAA;AAAA,EAGf;AACF;"}
1
+ {"version":3,"file":"DateWidgetInput.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/DateWidgetInput.tsx"],"sourcesContent":["import { forwardRef, useState, useEffect, useRef } from 'react'\nimport styled from 'styled-components'\nimport { format, isValid, parseISO } from 'date-fns'\nimport { WidgetBaseProps } from './CellWidget'\n\ninterface DateWidgetInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'>,\n WidgetBaseProps {\n value: string\n onCancel?: () => void\n autoFocus?: boolean\n}\n\nconst StyledInput = styled.input`\n z-index: 10;\n border: none;\n outline: none;\n padding: 0;\n padding-left: 1px;\n margin: 0;\n cursor: text;\n font-size: inherit;\n font-family: inherit;\n font-weight: inherit;\n background-color: transparent;\n width: 100%;\n box-sizing: border-box;\n`\n\nexport const DateWidgetInput = forwardRef<HTMLInputElement, DateWidgetInputProps>(\n ({ value: initialValue, onChange, onCancel, autoFocus = true, ...props }, _) => {\n const [value, setValue] = useState(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n return format(parsedDate, 'yyyy-MM-dd')\n }\n }\n return ''\n })\n\n useEffect(() => {\n if (initialValue) {\n const parsedDate = parseISO(initialValue)\n if (isValid(parsedDate)) {\n setValue(format(parsedDate, 'yyyy-MM-dd'))\n } else {\n setValue('')\n }\n }\n }, [initialValue])\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (autoFocus && inputRef.current) {\n inputRef.current.focus()\n // Delay showPicker call until after focus to ensure it's tied to user interaction\n setTimeout(() => {\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown automatically:', error)\n }\n }, 100)\n }\n }, [autoFocus])\n\n // Ensure the picker opens when clicked directly\n const handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n e.preventDefault() // Prevent default to ensure our handler takes precedence\n try {\n inputRef.current?.showPicker()\n } catch (error) {\n console.debug('Date picker could not be shown on click:', error)\n }\n }\n\n const handleDateSubmit = (event?: 'Click' | 'Enter') => {\n if (value) {\n const parsed = Date.parse(value)\n if (isValid(parsed)) {\n const dateWithZeroTime = new Date(parsed)\n dateWithZeroTime.setUTCHours(0, 0, 0, 0)\n const newISOValue = dateWithZeroTime.toISOString()\n\n // For Click/Blur: only save if value changed\n // For Enter: always save\n if (event === 'Enter') {\n onChange(newISOValue, event)\n return true\n } else if (event === 'Click') {\n // Check if value actually changed\n const initialDateISO = initialValue ? parseISO(initialValue).toISOString() : ''\n if (newISOValue !== initialDateISO) {\n onChange(newISOValue, event)\n return true\n }\n // Value didn't change, cancel edit\n return false\n }\n }\n }\n return false\n }\n\n const handleBlur = () => {\n if (!handleDateSubmit('Click')) {\n onCancel?.()\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleDateSubmit('Enter')\n inputRef.current?.blur()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n onCancel?.()\n }\n }\n\n return (\n <StyledInput\n {...props}\n ref={inputRef}\n type=\"date\"\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n />\n )\n },\n)\n"],"names":["StyledInput","styled","DateWidgetInput","forwardRef","initialValue","onChange","onCancel","autoFocus","props","_","value","setValue","useState","parsedDate","parseISO","isValid","format","useEffect","inputRef","useRef","error","handleClick","handleDateSubmit","event","parsed","dateWithZeroTime","newISOValue","initialDateISO","handleBlur","handleKeyDown","jsx"],"mappings":";;;;AAaA,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBdC,IAAkBC;AAAA,EAC7B,CAAC,EAAE,OAAOC,GAAc,UAAAC,GAAU,UAAAC,GAAU,WAAAC,IAAY,IAAM,GAAGC,EAAA,GAASC,MAAM;AAC9E,UAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAS,MAAM;AACvC,UAAIR,GAAc;AAChB,cAAMS,IAAaC,EAASV,CAAY;AACxC,YAAIW,EAAQF,CAAU;AACpB,iBAAOG,EAAOH,GAAY,YAAY;AAAA,MAE1C;AACA,aAAO;AAAA,IACT,CAAC;AAED,IAAAI,EAAU,MAAM;AACd,UAAIb,GAAc;AAChB,cAAMS,IAAaC,EAASV,CAAY;AACxC,QAAIW,EAAQF,CAAU,IACpBF,EAASK,EAAOH,GAAY,YAAY,CAAC,IAEzCF,EAAS,EAAE;AAAA,MAEf;AAAA,IACF,GAAG,CAACP,CAAY,CAAC;AAEjB,UAAMc,IAAWC,EAAyB,IAAI;AAE9C,IAAAF,EAAU,MAAM;AACd,MAAIV,KAAaW,EAAS,YACxBA,EAAS,QAAQ,MAAA,GAEjB,WAAW,MAAM;AACf,YAAI;AACF,UAAAA,EAAS,SAAS,WAAA;AAAA,QACpB,SAASE,GAAO;AACd,kBAAQ,MAAM,iDAAiDA,CAAK;AAAA,QACtE;AAAA,MACF,GAAG,GAAG;AAAA,IAEV,GAAG,CAACb,CAAS,CAAC;AAGd,UAAMc,IAAc,CAAC,MAA0C;AAC7D,QAAE,eAAA;AACF,UAAI;AACF,QAAAH,EAAS,SAAS,WAAA;AAAA,MACpB,SAASE,GAAO;AACd,gBAAQ,MAAM,4CAA4CA,CAAK;AAAA,MACjE;AAAA,IACF,GAEME,IAAmB,CAACC,MAA8B;AACtD,UAAIb,GAAO;AACT,cAAMc,IAAS,KAAK,MAAMd,CAAK;AAC/B,YAAIK,EAAQS,CAAM,GAAG;AACnB,gBAAMC,IAAmB,IAAI,KAAKD,CAAM;AACxC,UAAAC,EAAiB,YAAY,GAAG,GAAG,GAAG,CAAC;AACvC,gBAAMC,IAAcD,EAAiB,YAAA;AAIrC,cAAIF,MAAU;AACZ,mBAAAlB,EAASqB,GAAaH,CAAK,GACpB;AACT,cAAWA,MAAU,SAAS;AAE5B,kBAAMI,IAAiBvB,IAAeU,EAASV,CAAY,EAAE,gBAAgB;AAC7E,mBAAIsB,MAAgBC,KAClBtB,EAASqB,GAAaH,CAAK,GACpB,MAGF;AAAA,UACT;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT,GAEMK,IAAa,MAAM;AACvB,MAAKN,EAAiB,OAAO,KAC3BhB,IAAA;AAAA,IAEJ,GAEMuB,IAAgB,CAAC,MAA6C;AAClE,MAAI,EAAE,QAAQ,WACZ,EAAE,eAAA,GACFP,EAAiB,OAAO,GACxBJ,EAAS,SAAS,KAAA,KACT,EAAE,QAAQ,aACnB,EAAE,eAAA,GACFZ,IAAA;AAAA,IAEJ;AAEA,WACEwB,gBAAAA,EAAAA;AAAAA,MAAC9B;AAAA,MAAA;AAAA,QACE,GAAGQ;AAAA,QACJ,KAAKU;AAAA,QACL,MAAK;AAAA,QACL,OAAAR;AAAA,QACA,UAAU,CAAC,MAAMC,EAAS,EAAE,OAAO,KAAK;AAAA,QACxC,QAAQiB;AAAA,QACR,WAAWC;AAAA,QACX,SAASR;AAAA,MAAA;AAAA,IAAA;AAAA,EAGf;AACF;"}
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../../../../_virtual/jsx-runtime.cjs.js"),M=require("@ynput/ayon-react-components"),x=require("clsx"),i=require("react"),V=require("styled-components"),v=require("./EnumCellValue.cjs.js"),b=V(M.Dropdown)`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../../../../_virtual/jsx-runtime.cjs.js"),M=require("@ynput/ayon-react-components"),x=require("clsx"),i=require("react"),b=require("styled-components"),v=require("./EnumCellValue.cjs.js"),A=b(M.Dropdown)`
2
2
  height: 100%;
3
3
  width: 100%;
4
- `,A=i.forwardRef(({value:y,isEditing:d,options:c,type:E,autoOpen:g=!0,isReadOnly:u,enableCustomValues:o,onOpen:D,onChange:S,onCancelEdit:q,onNext:T,pt:l,...s},_)=>{const p=y.map(t=>t?.toString()).filter(t=>!!t);let r=c.filter(t=>p.includes(t.value.toString()));const j=[];p.forEach(t=>{if(!c.find(e=>e.value===t)){const e={label:t,value:t,color:o?"var(--md-sys-color-surface-container)":"var(--md-sys-color-error)",icon:o?void 0:"warning"};r=[...r,e],j.push(e)}});const R=r.length>1,h=[...c,...j],n=i.useRef(null),[O,N]=i.useState(!1);i.useEffect(()=>{d&&n.current&&g?(!n.current.isOpen&&n.current?.open(),N(!0)):N(!1)},[d,n.current,g]),i.useEffect(()=>{if(O&&!s.search&&h.length<20){const e=n.current?.getOptions()?.querySelector("li");e&&(e.focus(),e.style.outline="none")}},[O,s.search,h.length]);const m=!!E?.includes("list"),w=t=>{let e=o?t:t.filter(a=>c.find(C=>C.value===a));E?.includes("list")||(e=Array.isArray(e)?e[0]:e),S(e,"Click")};return d?f.jsxRuntimeExports.jsx(b,{options:h,value:p,ref:n,valueTemplate:(t,e,a)=>f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:r,hasMultipleValues:e.length>1,isOpen:a,isReadOnly:u,isMultiSelect:m,...l?.template,placeholder:s.placeholder,className:x("enum-dropdown-value",l?.template?.className)}),itemTemplate:(t,e,a)=>f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:[t],hasMultipleValues:!1,isOpen:!1,isItem:!0,isMultiSelect:m,isSelected:a,...l?.template,className:x("enum-dropdown-item",l?.template?.className)}),widthExpand:!0,multiSelect:m,disableOpen:u,disabled:u,sortBySelected:!0,searchOnNumber:10,...s,onChange:w,onClose:q,editable:o}):f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:r,hasMultipleValues:R,isMultiSelect:m,isReadOnly:u,...l?.template,placeholder:s.placeholder,className:x("enum-value",l?.template?.className,s.className)})});exports.EnumWidget=A;
4
+ `,V=i.forwardRef(({value:y,isEditing:d,options:c,type:E,autoOpen:g=!0,isReadOnly:u,enableCustomValues:o,onOpen:D,onChange:S,onCancelEdit:q,onNext:T,pt:l,...s},_)=>{const p=y.map(t=>t?.toString()).filter(t=>!!t);let r=c.filter(t=>p.includes(t.value.toString()));const j=[];p.forEach(t=>{if(!c.find(e=>e.value===t)){const e={label:t,value:t,color:o?"var(--md-sys-color-surface-container)":"var(--md-sys-color-error)",icon:o?void 0:"warning"};r=[...r,e],j.push(e)}});const R=r.length>1,h=[...c,...j],n=i.useRef(null),[O,N]=i.useState(!1);i.useEffect(()=>{d&&n.current&&g?(!n.current.isOpen&&n.current?.open(),N(!0)):N(!1)},[d,n.current,g]),i.useEffect(()=>{if(O&&!s.search&&h.length<20){const e=n.current?.getOptions()?.querySelector("li");e&&(e.focus(),e.style.outline="none")}},[O,s.search,h.length]);const m=!!E?.includes("list"),C=t=>{let e=o?t:t.filter(a=>c.find(w=>w.value===a));E?.includes("list")||(e=Array.isArray(e)?e[0]:e),S(e,"Click")};return d?f.jsxRuntimeExports.jsx(A,{options:h,value:p,ref:n,valueTemplate:(t,e,a)=>f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:r,hasMultipleValues:e.length>1,isOpen:a,isReadOnly:u,isMultiSelect:m,...l?.template,placeholder:s.placeholder,className:x("enum-dropdown-value",l?.template?.className)}),itemTemplate:(t,e,a)=>f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:[t],hasMultipleValues:!1,isOpen:!1,isItem:!0,isMultiSelect:m,isSelected:a,...l?.template,className:x("enum-dropdown-item",l?.template?.className)}),widthExpand:!0,multiSelect:m,disableOpen:u,disabled:u,sortBySelected:!0,searchOnNumber:10,...s,onChange:C,onClose:q,editable:o}):f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:r,hasMultipleValues:R,isMultiSelect:m,isReadOnly:u,...l?.template,placeholder:s.placeholder,className:x("enum-value",l?.template?.className,s.className)})});exports.EnumWidget=V;
5
5
  //# sourceMappingURL=EnumWidget.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnumWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport type { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\nimport { EnumCellValue, EnumTemplateProps } from './EnumCellValue'\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n const invalidOptions: AttributeEnumItem[] = []\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n const invalidOption = {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n }\n selectedOptions = [...selectedOptions, invalidOption]\n invalidOptions.push(invalidOption)\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n // Merge valid options with invalid options for the dropdown\n const allOptions = [...options, ...invalidOptions]\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen && !dropdownProps.search && allOptions.length < 20) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen, dropdownProps.search, allOptions.length])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (value: string[]) => {\n let filteredValue: string | string[] = enableCustomValues\n ? value\n : value.filter((v) => options.find((o) => o.value === v))\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // check if the value is an array or a string and for arrays take the first value only\n filteredValue = Array.isArray(filteredValue) ? filteredValue[0] : filteredValue\n\n // take first value as the type is not list]\n onChange(filteredValue, 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={allOptions}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n searchOnNumber={10}\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n editable={enableCustomValues}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n"],"names":["StyledDropdown","styled","Dropdown","EnumWidget","forwardRef","value","isEditing","options","type","autoOpen","isReadOnly","enableCustomValues","onOpen","onChange","onCancelEdit","onNext","pt","dropdownProps","_ref","valueAsStrings","v","selectedOptions","option","invalidOptions","val","invalidOption","hasMultipleValues","allOptions","dropdownRef","useRef","dropdownOpen","setDropdownOpen","useState","useEffect","firstItem","isMultiSelect","handleChange","filteredValue","o","jsx","_value","selected","isOpen","EnumCellValue","clsx","_isActive","isSelected"],"mappings":"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"}
1
+ {"version":3,"file":"EnumWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport type { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\nimport { EnumCellValue, EnumTemplateProps } from './EnumCellValue'\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n const invalidOptions: AttributeEnumItem[] = []\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n const invalidOption = {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n }\n selectedOptions = [...selectedOptions, invalidOption]\n invalidOptions.push(invalidOption)\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n // Merge valid options with invalid options for the dropdown\n const allOptions = [...options, ...invalidOptions]\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen && !dropdownProps.search && allOptions.length < 20) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen, dropdownProps.search, allOptions.length])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (newValue: string[]) => {\n let filteredValue: string | string[] = enableCustomValues\n ? newValue\n : newValue.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // check if the value is an array or a string and for arrays take the first value only\n filteredValue = Array.isArray(filteredValue) ? filteredValue[0] : filteredValue\n\n // take first value as the type is not list]\n onChange(filteredValue, 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={allOptions}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n searchOnNumber={10}\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n editable={enableCustomValues}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n"],"names":["StyledDropdown","styled","Dropdown","EnumWidget","forwardRef","value","isEditing","options","type","autoOpen","isReadOnly","enableCustomValues","onOpen","onChange","onCancelEdit","onNext","pt","dropdownProps","_ref","valueAsStrings","v","selectedOptions","option","invalidOptions","val","invalidOption","hasMultipleValues","allOptions","dropdownRef","useRef","dropdownOpen","setDropdownOpen","useState","useEffect","firstItem","isMultiSelect","handleChange","newValue","filteredValue","o","jsx","_value","selected","isOpen","EnumCellValue","clsx","_isActive","isSelected"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { j as m } from "../../../../../_virtual/jsx-runtime.es.js";
2
2
  import { Dropdown as _ } from "@ynput/ayon-react-components";
3
3
  import h from "clsx";
4
- import { forwardRef as b, useRef as k, useState as C, useEffect as w } from "react";
4
+ import { forwardRef as b, useRef as k, useState as C, useEffect as E } from "react";
5
5
  import I from "styled-components";
6
6
  import { EnumCellValue as v } from "./EnumCellValue.es.js";
7
7
  const T = I(_)`
@@ -9,7 +9,7 @@ const T = I(_)`
9
9
  width: 100%;
10
10
  `, H = b(
11
11
  ({
12
- value: E,
12
+ value: w,
13
13
  isEditing: f,
14
14
  options: i,
15
15
  type: g,
@@ -19,11 +19,11 @@ const T = I(_)`
19
19
  onOpen: U,
20
20
  onChange: N,
21
21
  onCancelEdit: y,
22
- onNext: V,
22
+ onNext: q,
23
23
  pt: l,
24
24
  ...s
25
- }, q) => {
26
- const p = E.map((t) => t?.toString()).filter((t) => !!t);
25
+ }, B) => {
26
+ const p = w.map((t) => t?.toString()).filter((t) => !!t);
27
27
  let n = i.filter(
28
28
  (t) => p.includes(t.value.toString())
29
29
  );
@@ -40,9 +40,9 @@ const T = I(_)`
40
40
  }
41
41
  });
42
42
  const A = n.length > 1, d = [...i, ...O], r = k(null), [S, j] = C(!1);
43
- w(() => {
43
+ E(() => {
44
44
  f && r.current && x ? (!r.current.isOpen && r.current?.open(), j(!0)) : j(!1);
45
- }, [f, r.current, x]), w(() => {
45
+ }, [f, r.current, x]), E(() => {
46
46
  if (S && !s.search && d.length < 20) {
47
47
  const e = r.current?.getOptions()?.querySelector("li");
48
48
  e && (e.focus(), e.style.outline = "none");
@@ -1 +1 @@
1
- {"version":3,"file":"EnumWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport type { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\nimport { EnumCellValue, EnumTemplateProps } from './EnumCellValue'\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n const invalidOptions: AttributeEnumItem[] = []\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n const invalidOption = {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n }\n selectedOptions = [...selectedOptions, invalidOption]\n invalidOptions.push(invalidOption)\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n // Merge valid options with invalid options for the dropdown\n const allOptions = [...options, ...invalidOptions]\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen && !dropdownProps.search && allOptions.length < 20) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen, dropdownProps.search, allOptions.length])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (value: string[]) => {\n let filteredValue: string | string[] = enableCustomValues\n ? value\n : value.filter((v) => options.find((o) => o.value === v))\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // check if the value is an array or a string and for arrays take the first value only\n filteredValue = Array.isArray(filteredValue) ? filteredValue[0] : filteredValue\n\n // take first value as the type is not list]\n onChange(filteredValue, 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={allOptions}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n searchOnNumber={10}\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n editable={enableCustomValues}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n"],"names":["StyledDropdown","styled","Dropdown","EnumWidget","forwardRef","value","isEditing","options","type","autoOpen","isReadOnly","enableCustomValues","onOpen","onChange","onCancelEdit","onNext","pt","dropdownProps","_ref","valueAsStrings","v","selectedOptions","option","invalidOptions","val","invalidOption","hasMultipleValues","allOptions","dropdownRef","useRef","dropdownOpen","setDropdownOpen","useState","useEffect","firstItem","isMultiSelect","handleChange","filteredValue","o","jsx","_value","selected","isOpen","EnumCellValue","clsx","_isActive","isSelected"],"mappings":"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"}
1
+ {"version":3,"file":"EnumWidget.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport type { WidgetBaseProps } from './CellWidget'\nimport { AttributeData, AttributeEnumItem } from '../types'\nimport { EnumCellValue, EnumTemplateProps } from './EnumCellValue'\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: AttributeEnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n const invalidOptions: AttributeEnumItem[] = []\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n const invalidOption = {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n }\n selectedOptions = [...selectedOptions, invalidOption]\n invalidOptions.push(invalidOption)\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n // Merge valid options with invalid options for the dropdown\n const allOptions = [...options, ...invalidOptions]\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen && !dropdownProps.search && allOptions.length < 20) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen, dropdownProps.search, allOptions.length])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (newValue: string[]) => {\n let filteredValue: string | string[] = enableCustomValues\n ? newValue\n : newValue.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // check if the value is an array or a string and for arrays take the first value only\n filteredValue = Array.isArray(filteredValue) ? filteredValue[0] : filteredValue\n\n // take first value as the type is not list]\n onChange(filteredValue, 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={allOptions}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n searchOnNumber={10}\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n editable={enableCustomValues}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n"],"names":["StyledDropdown","styled","Dropdown","EnumWidget","forwardRef","value","isEditing","options","type","autoOpen","isReadOnly","enableCustomValues","onOpen","onChange","onCancelEdit","onNext","pt","dropdownProps","_ref","valueAsStrings","v","selectedOptions","option","invalidOptions","val","invalidOption","hasMultipleValues","allOptions","dropdownRef","useRef","dropdownOpen","setDropdownOpen","useState","useEffect","firstItem","isMultiSelect","handleChange","newValue","filteredValue","o","jsx","_value","selected","isOpen","EnumCellValue","clsx","_isActive","isSelected"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("@ynput/ayon-react-components");require("clsx");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.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/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/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.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/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("react");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../../util/pubsub.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.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("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("./CollapsedWidget.cjs.js");require("./DateWidget.cjs.js");require("./EnumWidget.cjs.js");require("./TextWidget.cjs.js");require("./BooleanWidget.cjs.js");const x=require("./CellWidget.cjs.js");require("./EntityNameWidget.cjs.js");require("./GroupHeaderWidget.cjs.js");require("./ThumbnailWidget.cjs.js");const R=require("../../../components/LinksManager/CellEditingDialog.cjs.js"),C=require("../context/DetailsPanelEntityContext.cjs.js"),g=require("../context/SelectedRowsContext.cjs.js"),h=require("../../../components/LinksManager/LinksManager.styled.cjs.js"),j=require("../utils/restrictedEntity.cjs.js");require("./EmptyWidget.cjs.js");require("./ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.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("../components/ColumnHeaderMenu.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/SearchFilter/filterDates.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Badge/Badge.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");const m=require("../../../components/Chips/Chips.cjs.js"),L=require("../../../components/LinksManager/LinksManager.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");const E=e=>[...e].sort((i,u)=>{const t=i.parents.join("/")+i.label,n=u.parents.join("/")+u.label;return t.localeCompare(n)}),b=(e,i,u)=>{const t=i.split("|"),[n,s,a]=t;return e==="in"?u===a:u===s},T=({value:e,isEditing:i,cellId:u,projectName:t,disabled:n,folderId:s,onChange:a,onCancelEdit:y})=>{let o,c;const d=[];try{const r=C.useDetailsPanelEntityContext();o=r.setSelectedEntity,r.selectedEntity&&d.push(r.selectedEntity.entityId)}catch{}try{c=g.useSelectedRowsContext().clearRowsSelection}catch{}const k=(r,l)=>{j.isEntityRestricted(l)||(c&&c(),o?o({entityId:r,entityType:l}):console.log("Entity clicked:",r,l))},p=e?.links?E(e.links):[];return q.jsxRuntimeExports.jsxs(q.jsxRuntimeExports.Fragment,{children:[q.jsxRuntimeExports.jsx(m.Chips,{values:p.map(r=>({label:r.isRestricted?"Restricted":r.label,tooltip:r.isRestricted?"Access Restricted - Insufficient Permissions to Entity":r.parents.join("/")+"/"+r.label,icon:r.isRestricted?"lock":void 0}))||[],pt:{chip:{className:x.EDIT_TRIGGER_CLASS}},disabled:n}),i&&e&&q.jsxRuntimeExports.jsx(R.CellEditingDialog,{isEditing:i,anchorId:u,onClose:y,children:n?q.jsxRuntimeExports.jsx(h.Container,{style:{color:"var(--md-sys-color-outline)"},children:`${e.link.label||""} ${e.direction} link is not of type ${e.entityType}`}):q.jsxRuntimeExports.jsx(L.LinksManager,{projectName:t,linkTypeLabel:e.link.label||"",links:p,direction:e.direction,entityId:e.entityId,entityType:e.entityType,targetEntityType:e.link.targetEntityType,linkType:e.link.linkType,selectedEntityIds:d,onEntityClick:k,folderId:s,onClose:y})})]})};exports.LinksWidget=T;exports.isLinkEditable=b;exports.sortEntityLinksByPath=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("../../../../../_virtual/jsx-runtime.cjs.js");require("../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("react");require("../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("lodash");require("../../../components/AttributeEditor/components/MinMaxField.cjs.js");require("react-dom");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../components/Badge/Badge.cjs.js");const x=require("../../../components/Chips/Chips.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/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/reviewables.cjs.js");require("../../../api/generated/services.cjs.js");require("../../../api/generated/system.cjs.js");require("../../../api/generated/tasks.cjs.js");require("../../../api/generated/teams.cjs.js");require("../../../api/generated/thumbnails.cjs.js");require("../../../api/generated/uRIs.cjs.js");require("../../../api/generated/users.cjs.js");require("../../../api/generated/versions.cjs.js");require("../../../api/generated/workfiles.cjs.js");require("../../../api/generated/ynputCloud.cjs.js");require("../../../api/generated/grouping.cjs.js");require("../../../api/generated/views.cjs.js");require("../../../api/queries/actions/getActions.cjs.js");require("../../../api/queries/activities/getActivities.cjs.js");require("../../../api/queries/activities/updateActivities.cjs.js");require("../../../api/queries/activities/updateReaction.cjs.js");require("../../../api/queries/activities/getMentions.cjs.js");require("../../../api/queries/activities/getCategories.cjs.js");require("../../../api/queries/addons/getAddons.cjs.js");require("../../../api/queries/addons/updateAddons.cjs.js");require("../../../api/queries/attributes/getAttributes.cjs.js");require("../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../api/queries/cloud/cloud.cjs.js");require("../../../api/queries/config/getConfig.cjs.js");require("../../../api/queries/config/updateConfig.cjs.js");require("../../../api/queries/entities/getEntity.cjs.js");require("../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../api/queries/entities/updateEntity.cjs.js");require("../../../api/queries/entityLists/getLists.cjs.js");require("../../../api/queries/entityLists/updateLists.cjs.js");require("../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../api/queries/entityLists/listFolders.cjs.js");require("../../../api/queries/folders/getFolders.cjs.js");require("../../../api/queries/grouping/getGrouping.cjs.js");require("../../../api/queries/links/updateLinks.cjs.js");require("../../../api/queries/links/getLinks.cjs.js");require("../../../api/queries/links/getEntityLinks.cjs.js");require("../../../api/queries/overview/getOverview.cjs.js");require("../../../api/queries/overview/updateOverview.cjs.js");require("../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../api/queries/permissions/getPermissions.cjs.js");require("../../../api/queries/products/createProduct.cjs.js");require("../../../api/queries/project/getProject.cjs.js");require("../../../api/queries/project/updateProject.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/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("../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../Feed/context/FeedContext.cjs.js");require("../../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../../../context/RemoteModulesContext.cjs.js");require("../../../context/DetailsPanelContext.cjs.js");require("../../../context/ThumbnailUploaderContext.cjs.js");require("../../../context/SettingsPanelContext.cjs.js");require("../../../context/pip/PiPProvider.cjs.js");require("../../../context/pip/PiPWrapper.cjs.js");require("../../../context/AddonProjectContext.cjs.js");require("../../../context/AddonContext.cjs.js");require("../../../context/PowerpackContext.cjs.js");require("../../../context/MoveEntityContext.cjs.js");require("../../../context/MenuContext.cjs.js");require("../../../context/WebsocketContext.cjs.js");require("../../../context/GlobalContext.cjs.js");require("../../../context/ProjectContext.cjs.js");require("../../../context/ProjectFoldersContext.cjs.js");require("../../../context/UriContext.cjs.js");require("../../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../../Feed/components/CommentInput/CommentInput.cjs.js");require("../../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("uuid");require("../../../util/pubsub.cjs.js");require("react-router-dom");require("../../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../../Feed/components/ActivityDate.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed/Feed.styled.cjs.js");require("date-fns");require("../../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("./CollapsedWidget.cjs.js");require("./DateWidget.cjs.js");require("./EnumWidget.cjs.js");require("./TextWidget.cjs.js");require("./BooleanWidget.cjs.js");const R=require("./CellWidget.cjs.js");require("./EntityNameWidget.cjs.js");require("./GroupHeaderWidget.cjs.js");require("./ThumbnailWidget.cjs.js");const C=require("../../../components/LinksManager/CellEditingDialog.cjs.js"),g=require("../context/DetailsPanelEntityContext.cjs.js"),h=require("../context/SelectedRowsContext.cjs.js"),j=require("../../../components/LinksManager/LinksManager.styled.cjs.js"),m=require("../utils/restrictedEntity.cjs.js");require("./EmptyWidget.cjs.js");require("./ErrorWidget.cjs.js");require("../context/CellEditingContext.cjs.js");require("short-uuid");require("../context/SelectionCellsContext.cjs.js");require("../context/ProjectTableQueriesContext.cjs.js");require("../context/ProjectTableContext.cjs.js");require("../context/ClipboardContext.cjs.js");require("../context/ColumnSettingsContext.cjs.js");require("../context/ProjectDataContext.cjs.js");require("../../../../../_virtual/runtime.cjs.js");require("../../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../components/GroupSettingsFallback.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("../components/ColumnHeaderMenu.cjs.js");require("../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../SimpleTable/SimpleTable.styled.cjs.js");require("@tanstack/match-sorter-utils");require("../../SimpleTable/context/SimpleTableContext.cjs.js");require("../../SimpleTable/SimpleTableRowTemplate.cjs.js");require("../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../Slicer/components/SlicerSearch.cjs.js");require("../../Slicer/context/SlicerContext.cjs.js");require("../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../DetailsPanel/FeedFilters/FeedFilters.styled.cjs.js");require("../../DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../Actions/Actions.styled.cjs.js");require("../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../Actions/ActionIcon.cjs.js");require("../../Views/context/ViewsContext.cjs.js");require("../../Views/Views.styled.cjs.js");require("../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("axios");require("../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../components/Feedback/FeedbackContext.cjs.js");require("../../../components/Feedback/SupportBubble.cjs.js");require("../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../components/LegacyBadge/LegacyBadge.cjs.js");const L=require("../../../components/LinksManager/LinksManager.cjs.js");require("../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../components/Powerpack/PricingLink.cjs.js");require("../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../components/Powerpack/CTAButton.cjs.js");require("../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../components/SearchFilter/filterDates.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/SortingSetting/SortingSetting.styled.cjs.js");require("../../../components/StyledLink/StyledLink.cjs.js");require("../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../components/Watchers/Watchers.cjs.js");require("../../../components/Menu/Menu.styled.cjs.js");require("../../../components/Menu/MenuItem.cjs.js");const E=e=>[...e].sort((i,u)=>{const t=i.parents.join("/")+i.label,n=u.parents.join("/")+u.label;return t.localeCompare(n)}),b=(e,i,u)=>{const t=i.split("|"),[n,s,a]=t;return e==="in"?u===a:u===s},T=({value:e,isEditing:i,cellId:u,projectName:t,disabled:n,folderId:s,onChange:a,onCancelEdit:y})=>{let o,c;const d=[];try{const r=g.useDetailsPanelEntityContext();o=r.setSelectedEntity,r.selectedEntity&&d.push(r.selectedEntity.entityId)}catch{}try{c=h.useSelectedRowsContext().clearRowsSelection}catch{}const k=(r,l)=>{m.isEntityRestricted(l)||(c&&c(),o?o({entityId:r,entityType:l}):console.log("Entity clicked:",r,l))},p=e?.links?E(e.links):[];return q.jsxRuntimeExports.jsxs(q.jsxRuntimeExports.Fragment,{children:[q.jsxRuntimeExports.jsx(x.Chips,{values:p.map(r=>({label:r.isRestricted?"Restricted":r.label,tooltip:r.isRestricted?"Access Restricted - Insufficient Permissions to Entity":r.parents.join("/")+"/"+r.label,icon:r.isRestricted?"lock":void 0}))||[],pt:{chip:{className:R.EDIT_TRIGGER_CLASS}},disabled:n}),i&&e&&q.jsxRuntimeExports.jsx(C.CellEditingDialog,{isEditing:i,anchorId:u,onClose:y,children:n?q.jsxRuntimeExports.jsx(j.Container,{style:{color:"var(--md-sys-color-outline)"},children:`${e.link.label||""} ${e.direction} link is not of type ${e.entityType}`}):q.jsxRuntimeExports.jsx(L.LinksManager,{projectName:t,linkTypeLabel:e.link.label||"",links:p,direction:e.direction,entityId:e.entityId,entityType:e.entityType,targetEntityType:e.link.targetEntityType,linkType:e.link.linkType,selectedEntityIds:d,onEntityClick:k,folderId:s,onClose:y})})]})};exports.LinksWidget=T;exports.isLinkEditable=b;exports.sortEntityLinksByPath=E;
2
2
  //# sourceMappingURL=LinksWidget.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinksWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/LinksWidget.tsx"],"sourcesContent":["import { Chips, ChipValue, LinkEntity, LinksManager } from '@shared/components'\nimport { CellEditingDialog } from '@shared/components/LinksManager/CellEditingDialog'\nimport { FC } from 'react'\nimport { EDIT_TRIGGER_CLASS, WidgetBaseProps } from './CellWidget'\nimport { createPortal } from 'react-dom'\nimport { useDetailsPanelEntityContext } from '../context/DetailsPanelEntityContext'\nimport { useSelectedRowsContext } from '../context/SelectedRowsContext'\nimport { Container } from '@shared/components/LinksManager/LinksManager.styled'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\nimport { Icon } from '@ynput/ayon-react-components'\n\nexport const sortEntityLinksByPath = (links: LinkEntity[]) => {\n return [...links].sort((a, b) => {\n const aPath = a.parents.join('/') + a.label\n const bPath = b.parents.join('/') + b.label\n\n return aPath.localeCompare(bPath)\n })\n}\n\nexport const isLinkEditable = (\n direction: 'in' | 'out',\n linkType: string,\n entityType: string,\n): boolean => {\n const linkTypeParts = linkType.split('|')\n const [_name, outType, inType] = linkTypeParts\n if (direction === 'in') {\n return entityType === inType\n } else {\n return entityType === outType\n }\n}\n\nexport type LinkWidgetData = {\n direction: 'in' | 'out'\n entityId: string\n entityType: string\n link: {\n linkType: string\n label: string\n targetEntityType: string\n }\n links: LinkEntity[]\n}\n\nexport interface LinksWidgetProps extends WidgetBaseProps {\n value?: LinkWidgetData\n projectName: string\n cellId: string\n disabled?: boolean\n folderId?: string | null // the folder selected or the parent folder of the selected (used in EntityPickerDialog)\n}\n\nexport const LinksWidget: FC<LinksWidgetProps> = ({\n value,\n isEditing,\n cellId,\n projectName,\n disabled,\n folderId,\n onChange: _onChange, // not used in this widget\n onCancelEdit,\n}) => {\n // Try to get the contexts, but they might not exist in all environments\n let setSelectedEntity:\n | ((entity: { entityId: string; entityType: 'folder' | 'task' }) => void)\n | undefined\n let clearRowsSelection: (() => void) | undefined\n\n const selectedEntityIds: string[] = []\n try {\n const entityContext = useDetailsPanelEntityContext()\n setSelectedEntity = entityContext.setSelectedEntity\n if (entityContext.selectedEntity) {\n selectedEntityIds.push(entityContext.selectedEntity.entityId)\n }\n } catch {\n // Context not available\n }\n\n try {\n const rowsContext = useSelectedRowsContext()\n clearRowsSelection = rowsContext.clearRowsSelection\n } catch {\n // Context not available\n }\n\n const handleEntityClick = (entityId: string, entityType: string) => {\n // Check if entity is restricted - prevent opening details panel\n const isRestricted = isEntityRestricted(entityType)\n if (isRestricted) {\n return\n }\n\n // Clear any row selection first if context is available\n if (clearRowsSelection) {\n clearRowsSelection()\n }\n // Set the selected entity if context is available\n if (setSelectedEntity) {\n setSelectedEntity({\n entityId,\n entityType: entityType as 'folder' | 'task',\n })\n } else {\n // Fallback to console.log if contexts are not available\n console.log('Entity clicked:', entityId, entityType)\n }\n }\n\n const sortedLinks = value?.links ? sortEntityLinksByPath(value.links) : []\n\n return (\n <>\n <Chips\n values={\n sortedLinks.map((v) => ({\n label: v.isRestricted ? 'Restricted' : v.label,\n tooltip: v.isRestricted\n ? \"Access Restricted - Insufficient Permissions to Entity\"\n : v.parents.join('/') + '/' + v.label,\n icon: v.isRestricted ? \"lock\": undefined,\n })) || []\n }\n pt={{ chip: { className: EDIT_TRIGGER_CLASS } }}\n disabled={disabled}\n />\n {isEditing && value && (\n <CellEditingDialog isEditing={isEditing} anchorId={cellId} onClose={onCancelEdit}>\n {disabled ? (\n <Container style={{ color: 'var(--md-sys-color-outline)' }}>\n {`${value.link.label || ''} ${value.direction} link is not of type ${\n value.entityType\n }`}\n </Container>\n ) : (\n <LinksManager\n projectName={projectName}\n linkTypeLabel={value.link.label || ''}\n links={sortedLinks}\n direction={value.direction}\n entityId={value.entityId}\n entityType={value.entityType}\n targetEntityType={value.link.targetEntityType}\n linkType={value.link.linkType}\n selectedEntityIds={selectedEntityIds}\n onEntityClick={handleEntityClick}\n folderId={folderId}\n onClose={onCancelEdit}\n />\n )}\n </CellEditingDialog>\n )}\n </>\n )\n}\n"],"names":["sortEntityLinksByPath","links","a","b","aPath","bPath","isLinkEditable","direction","linkType","entityType","linkTypeParts","_name","outType","inType","LinksWidget","value","isEditing","cellId","projectName","disabled","folderId","_onChange","onCancelEdit","setSelectedEntity","clearRowsSelection","selectedEntityIds","entityContext","useDetailsPanelEntityContext","useSelectedRowsContext","handleEntityClick","entityId","isEntityRestricted","sortedLinks","jsxs","Fragment","jsx","Chips","v","EDIT_TRIGGER_CLASS","CellEditingDialog","Container","LinksManager"],"mappings":"01bAWO,MAAMA,EAAyBC,GAC7B,CAAC,GAAGA,CAAK,EAAE,KAAK,CAACC,EAAGC,IAAM,CAC/B,MAAMC,EAAQF,EAAE,QAAQ,KAAK,GAAG,EAAIA,EAAE,MAChCG,EAAQF,EAAE,QAAQ,KAAK,GAAG,EAAIA,EAAE,MAEtC,OAAOC,EAAM,cAAcC,CAAK,CAClC,CAAC,EAGUC,EAAiB,CAC5BC,EACAC,EACAC,IACY,CACZ,MAAMC,EAAgBF,EAAS,MAAM,GAAG,EAClC,CAACG,EAAOC,EAASC,CAAM,EAAIH,EACjC,OAAIH,IAAc,KACTE,IAAeI,EAEfJ,IAAeG,CAE1B,EAsBaE,EAAoC,CAAC,CAChD,MAAAC,EACA,UAAAC,EACA,OAAAC,EACA,YAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAUC,EACV,aAAAC,CACF,IAAM,CAEJ,IAAIC,EAGAC,EAEJ,MAAMC,EAA8B,CAAA,EACpC,GAAI,CACF,MAAMC,EAAgBC,EAAAA,6BAAA,EACtBJ,EAAoBG,EAAc,kBAC9BA,EAAc,gBAChBD,EAAkB,KAAKC,EAAc,eAAe,QAAQ,CAEhE,MAAQ,CAER,CAEA,GAAI,CAEFF,EADoBI,EAAAA,uBAAA,EACa,kBACnC,MAAQ,CAER,CAEA,MAAMC,EAAoB,CAACC,EAAkBrB,IAAuB,CAE7CsB,EAAAA,mBAAmBtB,CAAU,IAM9Ce,GACFA,EAAA,EAGED,EACFA,EAAkB,CAChB,SAAAO,EACA,WAAArB,CAAA,CACD,EAGD,QAAQ,IAAI,kBAAmBqB,EAAUrB,CAAU,EAEvD,EAEMuB,EAAcjB,GAAO,MAAQf,EAAsBe,EAAM,KAAK,EAAI,CAAA,EAExE,OACEkB,EAAAA,kBAAAA,KAAAC,6BAAA,CACE,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAAA,MAAA,CACC,OACEJ,EAAY,IAAKK,IAAO,CACtB,MAAOA,EAAE,aAAe,aAAeA,EAAE,MACzC,QAASA,EAAE,aACP,yDACAA,EAAE,QAAQ,KAAK,GAAG,EAAI,IAAMA,EAAE,MAClC,KAAMA,EAAE,aAAe,OAAQ,MAAA,EAC/B,GAAK,CAAA,EAET,GAAI,CAAE,KAAM,CAAE,UAAWC,EAAAA,mBAAmB,EAC5C,SAAAnB,CAAA,CAAA,EAEDH,GAAaD,GACZoB,EAAAA,kBAAAA,IAACI,EAAAA,kBAAA,CAAkB,UAAAvB,EAAsB,SAAUC,EAAQ,QAASK,EACjE,SAAAH,EACCgB,EAAAA,kBAAAA,IAACK,EAAAA,UAAA,CAAU,MAAO,CAAE,MAAO,6BAAA,EACxB,SAAA,GAAGzB,EAAM,KAAK,OAAS,EAAE,IAAIA,EAAM,SAAS,wBAC3CA,EAAM,UACR,GACF,EAEAoB,EAAAA,kBAAAA,IAACM,EAAAA,aAAA,CACC,YAAAvB,EACA,cAAeH,EAAM,KAAK,OAAS,GACnC,MAAOiB,EACP,UAAWjB,EAAM,UACjB,SAAUA,EAAM,SAChB,WAAYA,EAAM,WAClB,iBAAkBA,EAAM,KAAK,iBAC7B,SAAUA,EAAM,KAAK,SACrB,kBAAAU,EACA,cAAeI,EACf,SAAAT,EACA,QAASE,CAAA,CAAA,CACX,CAEJ,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"LinksWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/LinksWidget.tsx"],"sourcesContent":["import { Chips, ChipValue, LinkEntity, LinksManager } from '@shared/components'\nimport { CellEditingDialog } from '@shared/components/LinksManager/CellEditingDialog'\nimport { FC } from 'react'\nimport { EDIT_TRIGGER_CLASS, WidgetBaseProps } from './CellWidget'\nimport { createPortal } from 'react-dom'\nimport { useDetailsPanelEntityContext } from '../context/DetailsPanelEntityContext'\nimport { useSelectedRowsContext } from '../context/SelectedRowsContext'\nimport { Container } from '@shared/components/LinksManager/LinksManager.styled'\nimport { isEntityRestricted } from '../utils/restrictedEntity'\nimport { Icon } from '@ynput/ayon-react-components'\n\nexport const sortEntityLinksByPath = (links: LinkEntity[]) => {\n return [...links].sort((a, b) => {\n const aPath = a.parents.join('/') + a.label\n const bPath = b.parents.join('/') + b.label\n\n return aPath.localeCompare(bPath)\n })\n}\n\nexport const isLinkEditable = (\n direction: 'in' | 'out',\n linkType: string,\n entityType: string,\n): boolean => {\n const linkTypeParts = linkType.split('|')\n const [_name, outType, inType] = linkTypeParts\n if (direction === 'in') {\n return entityType === inType\n } else {\n return entityType === outType\n }\n}\n\nexport type LinkWidgetData = {\n direction: 'in' | 'out'\n entityId: string\n entityType: string\n link: {\n linkType: string\n label: string\n targetEntityType: string\n }\n links: LinkEntity[]\n}\n\nexport interface LinksWidgetProps extends WidgetBaseProps {\n value?: LinkWidgetData\n projectName: string\n cellId: string\n disabled?: boolean\n folderId?: string | null // the folder selected or the parent folder of the selected (used in EntityPickerDialog)\n}\n\nexport const LinksWidget: FC<LinksWidgetProps> = ({\n value,\n isEditing,\n cellId,\n projectName,\n disabled,\n folderId,\n onChange: _onChange, // not used in this widget\n onCancelEdit,\n}) => {\n // Try to get the contexts, but they might not exist in all environments\n let setSelectedEntity:\n | ((entity: { entityId: string; entityType: 'folder' | 'task' }) => void)\n | undefined\n let clearRowsSelection: (() => void) | undefined\n\n const selectedEntityIds: string[] = []\n try {\n const entityContext = useDetailsPanelEntityContext()\n setSelectedEntity = entityContext.setSelectedEntity\n if (entityContext.selectedEntity) {\n selectedEntityIds.push(entityContext.selectedEntity.entityId)\n }\n } catch {\n // Context not available\n }\n\n try {\n const rowsContext = useSelectedRowsContext()\n clearRowsSelection = rowsContext.clearRowsSelection\n } catch {\n // Context not available\n }\n\n const handleEntityClick = (entityId: string, entityType: string) => {\n // Check if entity is restricted - prevent opening details panel\n const isRestricted = isEntityRestricted(entityType)\n if (isRestricted) {\n return\n }\n\n // Clear any row selection first if context is available\n if (clearRowsSelection) {\n clearRowsSelection()\n }\n // Set the selected entity if context is available\n if (setSelectedEntity) {\n setSelectedEntity({\n entityId,\n entityType: entityType as 'folder' | 'task',\n })\n } else {\n // Fallback to console.log if contexts are not available\n console.log('Entity clicked:', entityId, entityType)\n }\n }\n\n const sortedLinks = value?.links ? sortEntityLinksByPath(value.links) : []\n\n return (\n <>\n <Chips\n values={\n sortedLinks.map((v) => ({\n label: v.isRestricted ? 'Restricted' : v.label,\n tooltip: v.isRestricted\n ? \"Access Restricted - Insufficient Permissions to Entity\"\n : v.parents.join('/') + '/' + v.label,\n icon: v.isRestricted ? \"lock\": undefined,\n })) || []\n }\n pt={{ chip: { className: EDIT_TRIGGER_CLASS } }}\n disabled={disabled}\n />\n {isEditing && value && (\n <CellEditingDialog isEditing={isEditing} anchorId={cellId} onClose={onCancelEdit}>\n {disabled ? (\n <Container style={{ color: 'var(--md-sys-color-outline)' }}>\n {`${value.link.label || ''} ${value.direction} link is not of type ${\n value.entityType\n }`}\n </Container>\n ) : (\n <LinksManager\n projectName={projectName}\n linkTypeLabel={value.link.label || ''}\n links={sortedLinks}\n direction={value.direction}\n entityId={value.entityId}\n entityType={value.entityType}\n targetEntityType={value.link.targetEntityType}\n linkType={value.link.linkType}\n selectedEntityIds={selectedEntityIds}\n onEntityClick={handleEntityClick}\n folderId={folderId}\n onClose={onCancelEdit}\n />\n )}\n </CellEditingDialog>\n )}\n </>\n )\n}\n"],"names":["sortEntityLinksByPath","links","a","b","aPath","bPath","isLinkEditable","direction","linkType","entityType","linkTypeParts","_name","outType","inType","LinksWidget","value","isEditing","cellId","projectName","disabled","folderId","_onChange","onCancelEdit","setSelectedEntity","clearRowsSelection","selectedEntityIds","entityContext","useDetailsPanelEntityContext","useSelectedRowsContext","handleEntityClick","entityId","isEntityRestricted","sortedLinks","jsxs","Fragment","jsx","Chips","v","EDIT_TRIGGER_CLASS","CellEditingDialog","Container","LinksManager"],"mappings":"8tcAWO,MAAMA,EAAyBC,GAC7B,CAAC,GAAGA,CAAK,EAAE,KAAK,CAACC,EAAGC,IAAM,CAC/B,MAAMC,EAAQF,EAAE,QAAQ,KAAK,GAAG,EAAIA,EAAE,MAChCG,EAAQF,EAAE,QAAQ,KAAK,GAAG,EAAIA,EAAE,MAEtC,OAAOC,EAAM,cAAcC,CAAK,CAClC,CAAC,EAGUC,EAAiB,CAC5BC,EACAC,EACAC,IACY,CACZ,MAAMC,EAAgBF,EAAS,MAAM,GAAG,EAClC,CAACG,EAAOC,EAASC,CAAM,EAAIH,EACjC,OAAIH,IAAc,KACTE,IAAeI,EAEfJ,IAAeG,CAE1B,EAsBaE,EAAoC,CAAC,CAChD,MAAAC,EACA,UAAAC,EACA,OAAAC,EACA,YAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAUC,EACV,aAAAC,CACF,IAAM,CAEJ,IAAIC,EAGAC,EAEJ,MAAMC,EAA8B,CAAA,EACpC,GAAI,CACF,MAAMC,EAAgBC,EAAAA,6BAAA,EACtBJ,EAAoBG,EAAc,kBAC9BA,EAAc,gBAChBD,EAAkB,KAAKC,EAAc,eAAe,QAAQ,CAEhE,MAAQ,CAER,CAEA,GAAI,CAEFF,EADoBI,EAAAA,uBAAA,EACa,kBACnC,MAAQ,CAER,CAEA,MAAMC,EAAoB,CAACC,EAAkBrB,IAAuB,CAE7CsB,EAAAA,mBAAmBtB,CAAU,IAM9Ce,GACFA,EAAA,EAGED,EACFA,EAAkB,CAChB,SAAAO,EACA,WAAArB,CAAA,CACD,EAGD,QAAQ,IAAI,kBAAmBqB,EAAUrB,CAAU,EAEvD,EAEMuB,EAAcjB,GAAO,MAAQf,EAAsBe,EAAM,KAAK,EAAI,CAAA,EAExE,OACEkB,EAAAA,kBAAAA,KAAAC,6BAAA,CACE,SAAA,CAAAC,EAAAA,kBAAAA,IAACC,EAAAA,MAAA,CACC,OACEJ,EAAY,IAAKK,IAAO,CACtB,MAAOA,EAAE,aAAe,aAAeA,EAAE,MACzC,QAASA,EAAE,aACP,yDACAA,EAAE,QAAQ,KAAK,GAAG,EAAI,IAAMA,EAAE,MAClC,KAAMA,EAAE,aAAe,OAAQ,MAAA,EAC/B,GAAK,CAAA,EAET,GAAI,CAAE,KAAM,CAAE,UAAWC,EAAAA,mBAAmB,EAC5C,SAAAnB,CAAA,CAAA,EAEDH,GAAaD,GACZoB,EAAAA,kBAAAA,IAACI,EAAAA,kBAAA,CAAkB,UAAAvB,EAAsB,SAAUC,EAAQ,QAASK,EACjE,SAAAH,EACCgB,EAAAA,kBAAAA,IAACK,EAAAA,UAAA,CAAU,MAAO,CAAE,MAAO,6BAAA,EACxB,SAAA,GAAGzB,EAAM,KAAK,OAAS,EAAE,IAAIA,EAAM,SAAS,wBAC3CA,EAAM,UACR,GACF,EAEAoB,EAAAA,kBAAAA,IAACM,EAAAA,aAAA,CACC,YAAAvB,EACA,cAAeH,EAAM,KAAK,OAAS,GACnC,MAAOiB,EACP,UAAWjB,EAAM,UACjB,SAAUA,EAAM,SAChB,WAAYA,EAAM,WAClB,iBAAkBA,EAAM,KAAK,iBAC7B,SAAUA,EAAM,KAAK,SACrB,kBAAAU,EACA,cAAeI,EACf,SAAAT,EACA,QAASE,CAAA,CAAA,CACX,CAEJ,CAAA,EAEJ,CAEJ"}