@ynput/ayon-frontend-shared 0.2.34 → 0.2.35
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.
- package/dist/DetailsPanel.cjs.js +1 -1
- package/dist/DetailsPanel.es.js +24 -23
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/Feed.cjs.js +1 -1
- package/dist/Feed.es.js +20 -19
- package/dist/_virtual/attach-listener.cjs.js +2 -0
- package/dist/_virtual/attach-listener.cjs.js.map +1 -0
- package/dist/_virtual/attach-listener.es.js +5 -0
- package/dist/_virtual/attach-listener.es.js.map +1 -0
- package/dist/_virtual/attach-shared-listeners.cjs.js +2 -0
- package/dist/_virtual/attach-shared-listeners.cjs.js.map +1 -0
- package/dist/_virtual/attach-shared-listeners.es.js +5 -0
- package/dist/_virtual/attach-shared-listeners.es.js.map +1 -0
- package/dist/_virtual/constants.cjs.js +2 -0
- package/dist/_virtual/constants.cjs.js.map +1 -0
- package/dist/_virtual/constants.es.js +5 -0
- package/dist/_virtual/constants.es.js.map +1 -0
- package/dist/_virtual/create-or-join.cjs.js +2 -0
- package/dist/_virtual/create-or-join.cjs.js.map +1 -0
- package/dist/_virtual/create-or-join.es.js +5 -0
- package/dist/_virtual/create-or-join.es.js.map +1 -0
- package/dist/_virtual/get-url.cjs.js +2 -0
- package/dist/_virtual/get-url.cjs.js.map +1 -0
- package/dist/_virtual/get-url.es.js +5 -0
- package/dist/_virtual/get-url.es.js.map +1 -0
- package/dist/_virtual/globals.cjs.js +2 -0
- package/dist/_virtual/globals.cjs.js.map +1 -0
- package/dist/_virtual/globals.es.js +5 -0
- package/dist/_virtual/globals.es.js.map +1 -0
- package/dist/_virtual/heartbeat.cjs.js +2 -0
- package/dist/_virtual/heartbeat.cjs.js.map +1 -0
- package/dist/_virtual/heartbeat.es.js +5 -0
- package/dist/_virtual/heartbeat.es.js.map +1 -0
- package/dist/_virtual/index.cjs.js +1 -1
- package/dist/_virtual/index.cjs10.js +1 -1
- package/dist/_virtual/index.cjs11.js +2 -0
- package/dist/_virtual/index.cjs11.js.map +1 -0
- package/dist/_virtual/index.cjs12.js +2 -0
- package/dist/_virtual/index.cjs12.js.map +1 -0
- package/dist/_virtual/index.cjs2.js +1 -1
- package/dist/_virtual/index.cjs3.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es.js +5 -4
- package/dist/_virtual/index.es10.js +5 -5
- package/dist/_virtual/index.es11.js +8 -0
- package/dist/_virtual/index.es11.js.map +1 -0
- package/dist/_virtual/index.es12.js +8 -0
- package/dist/_virtual/index.es12.js.map +1 -0
- package/dist/_virtual/index.es2.js +2 -2
- package/dist/_virtual/index.es3.js +5 -2
- package/dist/_virtual/index.es3.js.map +1 -1
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es6.js +5 -5
- package/dist/_virtual/index.es8.js +4 -4
- package/dist/_virtual/index.es9.js +2 -5
- package/dist/_virtual/index.es9.js.map +1 -1
- package/dist/_virtual/manage-subscribers.cjs.js +2 -0
- package/dist/_virtual/manage-subscribers.cjs.js.map +1 -0
- package/dist/_virtual/manage-subscribers.es.js +5 -0
- package/dist/_virtual/manage-subscribers.es.js.map +1 -0
- package/dist/_virtual/proxy.cjs.js +2 -0
- package/dist/_virtual/proxy.cjs.js.map +1 -0
- package/dist/_virtual/proxy.es.js +5 -0
- package/dist/_virtual/proxy.es.js.map +1 -0
- package/dist/_virtual/socket-io.cjs.js +2 -0
- package/dist/_virtual/socket-io.cjs.js.map +1 -0
- package/dist/_virtual/socket-io.es.js +5 -0
- package/dist/_virtual/socket-io.es.js.map +1 -0
- package/dist/_virtual/use-event-source.cjs.js +2 -0
- package/dist/_virtual/use-event-source.cjs.js.map +1 -0
- package/dist/_virtual/use-event-source.es.js +5 -0
- package/dist/_virtual/use-event-source.es.js.map +1 -0
- package/dist/_virtual/use-socket-io.cjs.js +2 -0
- package/dist/_virtual/use-socket-io.cjs.js.map +1 -0
- package/dist/_virtual/use-socket-io.es.js +5 -0
- package/dist/_virtual/use-socket-io.es.js.map +1 -0
- package/dist/_virtual/use-websocket.cjs.js +2 -0
- package/dist/_virtual/use-websocket.cjs.js.map +1 -0
- package/dist/_virtual/use-websocket.es.js +5 -0
- package/dist/_virtual/use-websocket.es.js.map +1 -0
- package/dist/_virtual/util.cjs.js +2 -0
- package/dist/_virtual/util.cjs.js.map +1 -0
- package/dist/_virtual/util.es.js +5 -0
- package/dist/_virtual/util.es.js.map +1 -0
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +233 -230
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +25 -23
- package/dist/components.es.js.map +1 -1
- package/dist/context.cjs.js +1 -1
- package/dist/context.es.js +17 -13
- package/dist/context.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -10
- package/dist/index.es.js.map +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
- package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
- package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
- package/dist/node_modules/react-use-websocket/dist/index.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/index.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/index.es.js +36 -0
- package/dist/node_modules/react-use-websocket/dist/index.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.es.js +79 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-listener.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.es.js +72 -0
- package/dist/node_modules/react-use-websocket/dist/lib/attach-shared-listeners.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/constants.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/constants.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/constants.es.js +32 -0
- package/dist/node_modules/react-use-websocket/dist/lib/constants.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.es.js +53 -0
- package/dist/node_modules/react-use-websocket/dist/lib/create-or-join.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/get-url.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/get-url.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/get-url.es.js +144 -0
- package/dist/node_modules/react-use-websocket/dist/lib/get-url.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/globals.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/globals.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/globals.es.js +19 -0
- package/dist/node_modules/react-use-websocket/dist/lib/globals.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.es.js +35 -0
- package/dist/node_modules/react-use-websocket/dist/lib/heartbeat.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.es.js +36 -0
- package/dist/node_modules/react-use-websocket/dist/lib/manage-subscribers.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/proxy.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/proxy.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/proxy.es.js +24 -0
- package/dist/node_modules/react-use-websocket/dist/lib/proxy.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/socket-io.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/socket-io.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/socket-io.es.js +39 -0
- package/dist/node_modules/react-use-websocket/dist/lib/socket-io.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.es.js +51 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-event-source.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.es.js +54 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-socket-io.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.es.js +198 -0
- package/dist/node_modules/react-use-websocket/dist/lib/use-websocket.es.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/util.cjs.js +2 -0
- package/dist/node_modules/react-use-websocket/dist/lib/util.cjs.js.map +1 -0
- package/dist/node_modules/react-use-websocket/dist/lib/util.es.js +21 -0
- package/dist/node_modules/react-use-websocket/dist/lib/util.es.js.map +1 -0
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js.map +1 -1
- package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js.map +1 -1
- package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
- package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
- package/dist/shared/node_modules/prop-types/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +7 -6
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +71 -60
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getCategories.es.js +11 -6
- package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.es.js +1 -1
- package/dist/shared/src/api/queries/activities/updateReaction.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +2 -0
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +144 -0
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -0
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js +4 -4
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js +36 -35
- package/dist/shared/src/components/DetailsPanelDetails/BorderedSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +28 -27
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js +3 -2
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -3
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +4 -3
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +2 -2
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +3 -2
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -3
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/RequiredAddonVersion.cjs.js +9 -0
- package/dist/shared/src/components/Powerpack/RequiredAddonVersion.cjs.js.map +1 -0
- package/dist/shared/src/components/Powerpack/RequiredAddonVersion.es.js +30 -0
- package/dist/shared/src/components/Powerpack/RequiredAddonVersion.es.js.map +1 -0
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +6 -5
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js +4 -3
- package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +5 -4
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js +1 -0
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.cjs.js.map +1 -1
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js +1 -0
- package/dist/shared/src/components/QuillListStyles/QuillListStyles.es.js.map +1 -1
- package/dist/shared/src/components/RefreshToast/RefreshToast.cjs.js +2 -0
- package/dist/shared/src/components/RefreshToast/RefreshToast.cjs.js.map +1 -0
- package/dist/shared/src/components/RefreshToast/RefreshToast.es.js +10 -0
- package/dist/shared/src/components/RefreshToast/RefreshToast.es.js.map +1 -0
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +2 -2
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -3
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +4 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +5 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +4 -3
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +4 -4
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +3 -2
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +4 -3
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +6 -5
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +4 -3
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +4 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +4 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +5 -4
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -3
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +4 -3
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +4 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +4 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +4 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +3 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +4 -3
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js +42 -39
- package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +13 -12
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js +7 -6
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +258 -245
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +66 -11
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +68 -13
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js +13 -10
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +6 -5
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +63 -51
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js +35 -31
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js +1 -0
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/FilesGrid/FilesGrid.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +6 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +73 -72
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +15 -14
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +6 -5
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +4 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +4 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +4 -3
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js +3 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +5 -4
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
- package/dist/shared/src/context/AddonContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonContext.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +27 -13
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +5 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +11 -10
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +2 -0
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -0
- package/dist/shared/src/context/WebsocketContext.es.js +309 -0
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -0
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/Menu.es.js +3 -2
- package/dist/src/components/Menu/MenuComponents/Menu.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js +7 -6
- package/dist/src/components/Menu/MenuComponents/MenuItem.es.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.cjs.js.map +1 -1
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js +11 -10
- package/dist/src/components/Menu/MenuComponents/MenuList.es.js.map +1 -1
- package/dist/types/api/queries/activities/getActivities.d.ts +1 -1
- package/dist/types/api/queries/activities/index.d.ts +0 -1
- package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +40 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/components/Powerpack/RequiredAddonVersion.d.ts +12 -0
- package/dist/types/components/Powerpack/index.d.ts +1 -1
- package/dist/types/components/RefreshToast/RefreshToast.d.ts +1 -0
- package/dist/types/components/RefreshToast/index.d.ts +1 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +5 -0
- package/dist/types/containers/Feed/components/FileUploadCard/FileUploadCard.d.ts +2 -1
- package/dist/types/containers/Feed/components/FilesGrid/FilesGrid.d.ts +6 -2
- package/dist/types/context/AddonContext.d.ts +1 -0
- package/dist/types/context/AddonProjectContext.d.ts +6 -1
- package/dist/types/context/WebsocketContext.d.ts +21 -0
- package/dist/types/context/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js +0 -9
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.cjs.js.map +0 -1
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js +0 -25
- package/dist/shared/src/components/Powerpack/RequiredPowerpackVersion.es.js.map +0 -1
- package/dist/types/components/Powerpack/RequiredPowerpackVersion.d.ts +0 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../_virtual/jsx-runtime.cjs.js"),m=require("react"),dr=require("@tanstack/react-virtual"),k=require("@tanstack/react-table"),L=require("clsx"),qr=require("./buildTreeTableColumns.cjs.js"),S=require("./ProjectTreeTable.styled.cjs.js"),gr=require("./components/HeaderActionButton.cjs.js"),mr=require("./components/RowDragHandleCellContent.cjs.js");require("./components/RowSelectionHeader.cjs.js");require("./components/SelectionCell.cjs.js");const xr=require("./components/ColumnHeaderMenu.cjs.js"),fr=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const ve=require("./context/CellEditingContext.cjs.js"),D=require("./context/SelectionCellsContext.cjs.js"),Cr=require("./context/ClipboardContext.cjs.js"),pr=require("./context/SelectedRowsContext.cjs.js"),hr=require("./context/ColumnSettingsContext.cjs.js"),yr=require("../../context/MenuContext.cjs.js"),Rr=require("./hooks/useCustomColumnWidthVars.cjs.js"),br=require("./hooks/usePrefetchFolderTasks.cjs.js"),jr=require("./hooks/useCellContextMenu.cjs.js"),Er=require("./hooks/useColumnVirtualization.cjs.js"),wr=require("./hooks/useKeyboardNavigation.cjs.js"),Sr=require("./hooks/useDynamicRowHeight.cjs.js"),Tr=require("../EntityPickerDialog/EntityPickerDialog.cjs.js"),Mr=require("./hooks/useMoveEntities.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");const _e=require("@ynput/ayon-react-components");;/* empty css */const ke=require("react-dom");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("lodash");const Ir=require("react-toastify");require("uuid");require("../../util/pubsub.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("../../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("../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");const Ne=require("./utils/loadingUtils.cjs.js"),Pr=require("./utils/getTableFieldOptions.cjs.js"),Or=require("./utils/getReadOnlyLists.cjs.js"),te=require("./utils/cellUtils.cjs.js"),zr=require("./utils/getEntityViewerIds.cjs.js");require("./context/ProjectTableQueriesContext.cjs.js");const He=require("./context/ProjectTableContext.cjs.js");require("./context/DetailsPanelEntityContext.cjs.js");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/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/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("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("./components/GroupSettingsFallback.cjs.js");const Dr=require("./context/ProjectDataContext.cjs.js");require("./widgets/CollapsedWidget.cjs.js");require("./widgets/DateWidget.cjs.js");require("./widgets/EnumWidget.cjs.js");require("./widgets/TextWidget.cjs.js");require("./widgets/BooleanWidget.cjs.js");const Lr=require("./widgets/CellWidget.cjs.js");require("./widgets/EntityNameWidget.cjs.js");require("./widgets/GroupHeaderWidget.cjs.js");require("./widgets/ThumbnailWidget.cjs.js");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");const Nr=require("@dnd-kit/core"),me=require("@dnd-kit/sortable"),vr=require("../../../../node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs.js");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");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("../../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/RequiredPowerpackVersion.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/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");require("../../components/Chips/Chips.cjs.js");require("../../components/LinksManager/LinksManager.styled.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/LinksManager/CellEditingDialog.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");const ie=e=>{const l=e.getIsPinned(),n=e.id!==D.ROW_SELECTION_COLUMN_ID&&e.id!==F?-30:0;return{left:l==="left"?`${e.getStart("left")+n}px`:void 0,right:l==="right"?`${e.getAfter("right")}px`:void 0,position:l?"sticky":"relative",width:e.getSize(),zIndex:l?100:0}},ne=(e,l)=>`calc(var(--col-${l}-size) * 1px)`,F="drag-handle",_r=({scope:e,sliceId:l,onScroll:n,onScrollBottom:p,onOpenNew:y,readOnly:h,excludedColumns:R,extraColumns:b,isLoading:j,clientSorting:s=!1,sortableRows:c=!1,onRowReorder:P,dndActiveId:i,pt:x,...H})=>{var Le;const{columnVisibility:T,columnPinning:E,columnOrder:f,columnSizing:O,setAllColumns:q,sorting:U,sortingOnChange:W,columnPinningOnChange:V,columnSizingOnChange:a,columnVisibilityOnChange:N,columnOrderOnChange:w,groupBy:z}=hr.useColumnSettingsContext(),v=!!z,{projectInfo:se,tableData:g,attribFields:C,entitiesMap:_,users:xe,isLoading:Fe,error:Ve,isInitialized:oe,expanded:Be,projectName:K,updateExpanded:fe,toggleExpandAll:Ue,showHierarchy:A,fetchNextPage:We,scopes:Ce,getEntityById:pe}=He.useProjectTableContext(),{projectName:$e,writableFields:he}=Dr.useProjectDataContext(),X=j||Fe,{statuses:ye=[],folderTypes:Re=[],taskTypes:be=[],tags:je=[],linkTypes:Ge=[]}=se||{},Y=m.useMemo(()=>Pr.getTableFieldOptions({users:xe,statuses:ye,folderTypes:Re,taskTypes:be,tags:je,scopes:Ce}),[xe,ye,Re,be,Ce,je]),J=m.useRef(null),Ee=m.useRef(0),{registerGrid:we}=D.useSelectionCellsContext(),{loadingAttrib:Se,loadingRows:Ke}=m.useMemo(()=>{var o;const r=((o=J.current)==null?void 0:o.querySelectorAll("tbody tr").length)||0,d=Ne.generateDummyAttributes(),u=Ne.generateLoadingRows(C,A&&g.length>0?Math.min(r,50):z?Math.max(Ee.current,50):50);return{loadingAttrib:d,loadingRows:u}},[]),Xe=!oe||X,{readOnlyColumns:Te,readOnlyAttribs:Ye}=m.useMemo(()=>Or.getReadOnlyLists(C,he,h),[C,he,h]),{selectedCells:ue}=D.useSelectionCellsContext(),{updateEntities:Me}=ve.useCellEditing(),Je=m.useCallback(async(r,d)=>{const{selection:u=[]}=d||{},o=[];if(!(u!=null&&u.length))o.push({...r,id:r.rowId});else{const{field:I,value:ce,isAttrib:de,type:qe}=r;for(const ee of ue){const{colId:B,rowId:re}=te.parseCellId(ee)||{},ge=pe(re||"");if(!ge){console.warn(`Entity with ID ${re} not found for cell update.`);continue}(!(B!=null&&B.includes("attrib_"))||(B==null?void 0:B.replace("attrib_",""))===I)&&re&&o.push({field:I,rowId:re,id:ge.entityId,value:ce,isAttrib:de,type:ge.entityType})}}if(!o.length){console.warn("No entities to update, skipping updateEntities call."),Ir.toast.warn("No entities to update.");return}await Me(o,!0)},[Me,pe,ue]),Ie=m.useMemo(()=>oe?C:Se,[C,Se,oe]),le=m.useMemo(()=>{const r=qr.default({attribs:Ie,links:Ge,showHierarchy:A,options:Y,extraColumns:b,excluded:R,groupBy:z});return c?[{id:F,header:()=>null,cell:()=>null,size:24,minSize:24,maxSize:24,enableResizing:!1,enableSorting:!1,enableHiding:!1,enablePinning:!1},...r]:r},[Ie,A,Y,b,R,c]);m.useEffect(()=>{const r=le.map(d=>d.id).filter(Boolean);q(r)},[le,q]);const M=k.useReactTable({data:Xe?Ke:g,columns:le,defaultColumn:{minSize:50,size:150},enableRowSelection:!0,getRowId:r=>r.id,enableSubRowSelection:!1,getSubRows:r=>r.subRows,getRowCanExpand:()=>!0,getCoreRowModel:k.getCoreRowModel(),getFilteredRowModel:k.getFilteredRowModel(),getExpandedRowModel:k.getExpandedRowModel(),filterFromLeafRows:!0,onExpandedChange:fe,enableSorting:!0,getSortedRowModel:k.getSortedRowModel(),sortDescFirst:!1,manualSorting:!s,onSortingChange:W,columnResizeMode:"onChange",onColumnPinningChange:V,onColumnSizingChange:a,onColumnVisibilityChange:N,onColumnOrderChange:w,filterFns:k.filterFns,state:{expanded:Be,sorting:U,columnPinning:(()=>{const r=[];c&&r.push(F),r.push(D.ROW_SELECTION_COLUMN_ID);const d=(E.left||[]).filter(o=>o!==F&&o!==D.ROW_SELECTION_COLUMN_ID);return r.push(...d),{left:[...new Set(r)],right:E.right}})(),columnSizing:O,columnVisibility:T,columnOrder:f},meta:{projectName:K,options:Y,readOnly:Te,updateEntities:Je,toggleExpandAll:Ue,loadMoreTasks:We,selection:Array.from(ue)}}),{rows:$}=M.getRowModel();m.useEffect(()=>{Ee.current=$.length},[$.length]),m.useEffect(()=>{if(!$.length)return;const r=$.map(o=>o.id),u=[...M.getAllLeafColumns().map(o=>o.id)].sort((o,I)=>{var qe,ee;if(D.ROW_SELECTION_COLUMN_ID===I)return 1;const ce=(qe=E.left)!=null&&qe.includes(o)?0:1,de=(ee=E.left)!=null&&ee.includes(I)?0:1;return ce-de});we(r,u)},[$,M.getAllLeafColumns(),E,D.ROW_SELECTION_COLUMN_ID,we]);const Pe=M.getVisibleLeafColumns(),{columnVirtualizer:ae,virtualPaddingLeft:Q,virtualPaddingRight:Z}=Er({visibleColumns:Pe,tableContainerRef:J,columnPinning:E,columnSizing:O,columnOrder:f}),Oe=Rr(M,O),{getRowHeight:Qe,defaultRowHeight:ze}=Sr(),Ze=m.useMemo(()=>C.reduce((r,d)=>{var u,o,I;return(o=(u=d.data)==null?void 0:u.enum)!=null&&o.length&&(r[d.name]=(I=d.data)==null?void 0:I.enum),r},{}),[C]),er=m.useMemo(()=>g.map(r=>r.id),[g]),rr=m.useMemo(()=>!i||!c?null:g.find(r=>r.id===i),[i,g,c]),tr=m.useCallback(r=>{if(n==null||n(r),p){const d=r.currentTarget;if(d&&!A&&!z){const{scrollHeight:u,scrollTop:o,clientHeight:I}=d;u-o-I<500&&!X&&p(r)}}},[n,p,A,z,X]),{isEntityPickerOpen:ir,handleMoveSubmit:nr,closeMoveDialog:sr,movingEntities:G,handleMoveToRoot:or,getDisabledFolderIds:ur,getDisabledMessage:lr}=Mr.useMoveEntities({projectName:$e||K||""}),ar=r=>{nr(r);const d=r[0];fe(u=>typeof u=="boolean"?u||{[d]:!0}:u[d]?u:{...u,[d]:!0})},De=t.jsxRuntimeExports.jsxs(Cr.ClipboardProvider,{entitiesMap:_,columnEnums:{...Y,...Ze},columnReadOnly:Ye,visibleColumns:Pe,children:[t.jsxRuntimeExports.jsx(S.TableWrapper,{...H,children:t.jsxRuntimeExports.jsx(S.TableContainer,{ref:J,style:{height:"100%",padding:0},onScroll:tr,...x==null?void 0:x.container,className:L("table-container",{resizing:M.getState().columnSizingInfo.isResizingColumn},(Le=x==null?void 0:x.container)==null?void 0:Le.className),children:t.jsxRuntimeExports.jsxs("table",{style:{display:"grid",borderCollapse:"collapse",userSelect:"none",...Oe,width:M.getTotalSize(),cursor:M.getState().columnSizingInfo.isResizingColumn?"col-resize":void 0},children:[t.jsxRuntimeExports.jsx(kr,{columnVirtualizer:ae,table:M,virtualPaddingLeft:Q,virtualPaddingRight:Z,isLoading:X,readOnlyColumns:Te,sortableRows:c,...x==null?void 0:x.head}),t.jsxRuntimeExports.jsx(Fr,{columnVirtualizer:ae,table:M,tableContainerRef:J,virtualPaddingLeft:Q,virtualPaddingRight:Z,showHierarchy:A,attribs:C,onOpenNew:y,rowOrderIds:er,sortableRows:c,error:Ve,isGrouping:v,getRowHeight:Qe,defaultRowHeight:ze})]})})}),ir&&K&&(G==null?void 0:G.entities)&&G.entities.length>0&&t.jsxRuntimeExports.jsx(Tr.EntityPickerDialog,{projectName:K,entityType:"folder",onSubmit:ar,onClose:sr,showMoveToRoot:G.entities.every(r=>r.entityType==="folder"),onMoveToRoot:or,disabledIds:ur(),getDisabledMessage:lr})]}),cr=c&&i&&ke.createPortal(t.jsxRuntimeExports.jsx(Nr.DragOverlay,{dropAnimation:null,children:rr?(()=>{const r=M.getRowModel().rows.find(u=>u.id===i);if(!r)return null;const d=M.getTotalSize();return t.jsxRuntimeExports.jsx("table",{style:{width:d,borderCollapse:"collapse",backgroundColor:"var(--md-sys-color-surface-container-high)",boxShadow:"0 0 10px rgba(0,0,0,0.2)",...Oe},children:t.jsxRuntimeExports.jsx("tbody",{children:t.jsxRuntimeExports.jsxs(S.TR,{style:{display:"flex",userSelect:"none"},children:[Q?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:Q}}):null,ae.getVirtualItems().map(u=>{const o=r.getVisibleCells()[u.index];if(!o)return null;const I={...ie(o.column),width:ne(r.id,o.column.id),display:"flex",alignItems:"center",height:ze};return o.column.id===F?t.jsxRuntimeExports.jsxs(S.TableCell,{style:{...I,justifyContent:"center"},className:L(o.column.id),children:[t.jsxRuntimeExports.jsx(_e.Icon,{icon:"drag_handle"})," "]},`overlay-drag-${o.id}`):t.jsxRuntimeExports.jsx(Ae,{cell:o,cellId:`overlay-${te.getCellId(r.id,o.column.id)}`,rowId:r.id,showHierarchy:A},`overlay-cell-${o.id}`)}),Z?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:Z}}):null]})})})})():null}),document.body);return c?t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[De,cr]}):De},kr=({columnVirtualizer:e,table:l,virtualPaddingLeft:n,virtualPaddingRight:p,isLoading:y,readOnlyColumns:h,sortableRows:R,...b})=>t.jsxRuntimeExports.jsx(S.TableHeader,{...b,children:l.getHeaderGroups().map(j=>t.jsxRuntimeExports.jsx(Hr,{columnVirtualizer:e,headerGroup:j,virtualPaddingLeft:n,virtualPaddingRight:p,isLoading:y,readOnlyColumns:h,sortableRows:R},j.id))}),Hr=({columnVirtualizer:e,headerGroup:l,virtualPaddingLeft:n,virtualPaddingRight:p,isLoading:y,readOnlyColumns:h,sortableRows:R})=>{const b=e.getVirtualItems();return t.jsxRuntimeExports.jsxs(S.ColumnHeader,{style:{display:"flex"},children:[n?t.jsxRuntimeExports.jsx("th",{style:{display:"flex",width:n}}):null,b.map(j=>{const s=l.headers[j.index];return t.jsxRuntimeExports.jsx(Ar,{header:s,isLoading:y,isReadOnly:h==null?void 0:h.includes(s.id),canSort:s.column.getCanSort(),canFilter:s.column.getCanFilter(),canHide:s.column.getCanHide(),canPin:s.column.getCanPin(),canResize:s.column.getCanResize(),sortableRows:R},s.id)}),p?t.jsxRuntimeExports.jsx("th",{style:{display:"flex",width:p}}):null]},l.id)},Ar=({header:e,isLoading:l,canFilter:n,canHide:p,canSort:y,canPin:h,canResize:R,isReadOnly:b,sortableRows:j})=>{const{column:s}=e,c=s.getIsSorted(),P=`column-header-menu-${s.id}`,{menuOpen:i}=yr.useMenuContext(),x=i===P;return t.jsxRuntimeExports.jsx(S.HeaderCell,{className:L(e.id,"shimmer-dark",{loading:l,"last-pinned-left":s.getIsPinned()==="left"&&s.getIsLastColumn("left"),resizing:s.getIsResizing()}),style:{...ie(s),width:ne("",s.id)},children:e.isPlaceholder?null:t.jsxRuntimeExports.jsxs(S.TableCellContent,{className:L("bold","header"),children:[k.flexRender(s.columnDef.header,e.getContext()),b&&t.jsxRuntimeExports.jsx(_e.Icon,{icon:"lock","data-tooltip":"You only have permission to read this column."}),t.jsxRuntimeExports.jsxs(S.HeaderButtons,{className:"actions",$isOpen:x,children:[(p||h||y)&&t.jsxRuntimeExports.jsx(xr.ColumnHeaderMenu,{className:"header-menu",header:e,canHide:p,canPin:h,canSort:y,isResizing:s.getIsResizing(),menuId:P,isOpen:x}),y&&t.jsxRuntimeExports.jsx(gr,{icon:"sort",className:L("sort-button",{visible:c}),style:{transform:c==="asc"?"rotate(180deg) scaleX(-1)":"none"},onClick:s.getToggleSortingHandler(),selected:!!s.getIsSorted()})]}),R&&t.jsxRuntimeExports.jsx(S.ResizedHandler,{onDoubleClick:()=>s.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:L("resize-handle",{resizing:s.getIsResizing()})})]})},e.id)},Fr=({columnVirtualizer:e,table:l,tableContainerRef:n,showHierarchy:p,virtualPaddingLeft:y,virtualPaddingRight:h,attribs:R,onOpenNew:b,rowOrderIds:j,sortableRows:s,error:c,isGrouping:P,getRowHeight:i,defaultRowHeight:x})=>{const H=m.useMemo(()=>l.getAllColumns().map(w=>{const z=w.id,v=w.columnDef.header;return typeof v=="string"||typeof v=="number"?{label:v,id:z}:null}).filter(Boolean),[l.getAllColumns()]),E=jr({attribs:R,onOpenNew:b,headerLabels:H}).handleTableBodyContextMenu,{handlePreFetchTasks:f}=br.usePrefetchFolderTasks(),{rows:O}=l.getRowModel(),q=dr.useVirtualizer({count:O.length,estimateSize:a=>{const N=O[a];return N?i(N.original):x},getScrollElement:()=>n.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?a=>a==null?void 0:a.getBoundingClientRect().height:void 0,overscan:5}),U=q.getVirtualItems();m.useEffect(()=>{const a=setTimeout(()=>{q.measure()},100);return()=>clearTimeout(a)},[x,q]);const W=m.useCallback(a=>{a&&q.measureElement(a)},[q]);wr();const V=t.jsxRuntimeExports.jsx("tbody",{style:{height:`${q.getTotalSize()}px`,position:"relative",display:"grid"},onContextMenu:E,onMouseOver:a=>{f(a)},children:U.map((a,N)=>{const w=O[a.index];return w?t.jsxRuntimeExports.jsx(Vr,{row:w,showHierarchy:p,visibleCells:w.getVisibleCells(),virtualColumns:e.getVirtualItems(),paddingLeft:y,paddingRight:h,rowRef:W,dataIndex:a.index,offsetTop:a.start,sortableRows:s,isGrouping:P,rowHeight:i(w.original)},w.id+N.toString()):(console.warn("Virtualized row data not found for index:",a.index),null)})});return c?n.current&&ke.createPortal(t.jsxRuntimeExports.jsx(fr.EmptyPlaceholder,{message:"No items found",error:c}),n.current):s?t.jsxRuntimeExports.jsx(me.SortableContext,{items:j,strategy:me.verticalListSortingStrategy,children:V}):V},Vr=({row:e,showHierarchy:l,visibleCells:n,virtualColumns:p,paddingLeft:y,paddingRight:h,rowRef:R,dataIndex:b,offsetTop:j,sortableRows:s,isGrouping:c=!1,rowHeight:P})=>{const i=s?me.useSortable({id:e.id}):null,x=m.useCallback(T=>{i&&i.setNodeRef(T),i&&i.isDragging||R(T)},[i,R]),H={position:"absolute",top:j,left:0,right:0,height:P,zIndex:i&&i.isDragging?0:1,display:"flex",transform:i&&i.transform?vr.CSS.Transform.toString(i.transform):void 0,transition:i&&i.transition?i.transition:void 0,visibility:i&&i.isDragging?"hidden":"visible"};return t.jsxRuntimeExports.jsxs(S.TR,{ref:x,"data-index":b,style:H,className:L({"group-row":e.original.group}),children:[y?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:y}}):null,p.map((T,E)=>{const f=n[T.index];if(!f)return null;const O=te.getCellId(e.id,f.column.id);return f.column.id===F?t.jsxRuntimeExports.jsx(S.TableCell,{style:{...ie(f.column),width:ne(e.id,f.column.id),display:"flex",alignItems:"center",justifyContent:"center",height:P,pointerEvents:"all",cursor:"grab"},className:L(f.column.id,{"last-pinned-left":f.column.getIsPinned()==="left"&&f.column.getIsLastColumn("left")}),onMouseDown:q=>q.stopPropagation(),onMouseOver:q=>q.stopPropagation(),onDoubleClick:q=>q.stopPropagation(),onContextMenu:q=>{q.preventDefault(),q.stopPropagation()},children:t.jsxRuntimeExports.jsx(mr,{attributes:i==null?void 0:i.attributes,listeners:i==null?void 0:i.listeners})},f.id+E.toString()):t.jsxRuntimeExports.jsx(Ae,{cell:f,cellId:O,rowId:e.id,showHierarchy:l,sortableRows:s,rowHeight:P},f.id+E.toString())}),h?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:h}}):null]})},Br=({cell:e,rowId:l,cellId:n,className:p,showHierarchy:y,sortableRows:h,rowHeight:R,...b})=>{const{getEntityById:j,onOpenPlayer:s}=He.useProjectTableContext(),{isCellSelected:c,isCellFocused:P,startSelection:i,extendSelection:x,endSelection:H,selectCell:T,focusCell:E,getCellBorderClasses:f,clearSelection:O,selectedCells:q}=D.useSelectionCellsContext(),{isRowSelected:U}=pr.useSelectedRowsContext(),{isEditing:W,setEditingCellId:V}=ve.useCellEditing(),a=f(n),w=e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left"),z=e.column.id===D.ROW_SELECTION_COLUMN_ID,v=e.row.original.entityType==="group",se=q.size>1;return t.jsxRuntimeExports.jsx(S.TableCell,{...b,tabIndex:0,$isLastPinned:w,className:L(e.column.id,{selected:c(n),focused:P(n),editing:W(n),"last-pinned-left":w,"selected-row":U(l),task:e.row.original.entityType==="task","multiple-selected":se},p,...a),style:{...ie(e.column),width:ne(e.row.id,e.column.id),height:R},onMouseDown:g=>{if(g.button!==0)return;const C=g.target;if(C.closest(".expander"))return;if(C.closest("."+Lr.EDIT_TRIGGER_CLASS)){c(n)||(T(n,!1,!1),E(n)),V(n);return}if(C.closest(".options"))return;if(v&&e.column.id!=="name")return O();const _=g.metaKey||g.ctrlKey||z;g.shiftKey?T(n,_,!0):i(n,_)},onMouseOver:g=>{g.buttons===1&&x(n,z)},onMouseUp:()=>{H(n)},onDoubleClick:g=>{if(e.column.id==="name"&&!g.target.closest(".expander")&&!v){const C=te.getCellId(e.row.id,D.ROW_SELECTION_COLUMN_ID);if(!c(C)){const _=g.metaKey||g.ctrlKey;T(C,_,!1)}}if(e.column.id==="thumbnail"&&s){const C=j(e.row.original.entityId||e.row.id);if(C){const _=zr.getEntityViewierIds(C);s(_,{quickView:!0})}}},onContextMenu:g=>{g.preventDefault(),c(n)||T(n,!1,!1)},children:k.flexRender(e.column.columnDef.cell,e.getContext())})},Ae=m.memo(Br);exports.DRAG_HANDLE_COLUMN_ID=F;exports.ProjectTreeTable=_r;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../_virtual/jsx-runtime.cjs.js"),m=require("react"),dr=require("@tanstack/react-virtual"),k=require("@tanstack/react-table"),L=require("clsx"),qr=require("./buildTreeTableColumns.cjs.js"),S=require("./ProjectTreeTable.styled.cjs.js"),gr=require("./components/HeaderActionButton.cjs.js"),mr=require("./components/RowDragHandleCellContent.cjs.js");require("./components/RowSelectionHeader.cjs.js");require("./components/SelectionCell.cjs.js");const xr=require("./components/ColumnHeaderMenu.cjs.js"),fr=require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");const ve=require("./context/CellEditingContext.cjs.js"),D=require("./context/SelectionCellsContext.cjs.js"),Cr=require("./context/ClipboardContext.cjs.js"),pr=require("./context/SelectedRowsContext.cjs.js"),hr=require("./context/ColumnSettingsContext.cjs.js"),yr=require("../../context/MenuContext.cjs.js"),Rr=require("./hooks/useCustomColumnWidthVars.cjs.js"),br=require("./hooks/usePrefetchFolderTasks.cjs.js"),jr=require("./hooks/useCellContextMenu.cjs.js"),Er=require("./hooks/useColumnVirtualization.cjs.js"),wr=require("./hooks/useKeyboardNavigation.cjs.js"),Sr=require("./hooks/useDynamicRowHeight.cjs.js"),Tr=require("../EntityPickerDialog/EntityPickerDialog.cjs.js"),Mr=require("./hooks/useMoveEntities.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");const _e=require("@ynput/ayon-react-components");;/* empty css */const ke=require("react-dom");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("lodash");const Ir=require("react-toastify");require("uuid");require("../../util/pubsub.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("../../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/WebsocketContext.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");const Ne=require("./utils/loadingUtils.cjs.js"),Pr=require("./utils/getTableFieldOptions.cjs.js"),Or=require("./utils/getReadOnlyLists.cjs.js"),te=require("./utils/cellUtils.cjs.js"),zr=require("./utils/getEntityViewerIds.cjs.js");require("./context/ProjectTableQueriesContext.cjs.js");const He=require("./context/ProjectTableContext.cjs.js");require("./context/DetailsPanelEntityContext.cjs.js");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/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/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("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("./components/GroupSettingsFallback.cjs.js");const Dr=require("./context/ProjectDataContext.cjs.js");require("./widgets/CollapsedWidget.cjs.js");require("./widgets/DateWidget.cjs.js");require("./widgets/EnumWidget.cjs.js");require("./widgets/TextWidget.cjs.js");require("./widgets/BooleanWidget.cjs.js");const Lr=require("./widgets/CellWidget.cjs.js");require("./widgets/EntityNameWidget.cjs.js");require("./widgets/GroupHeaderWidget.cjs.js");require("./widgets/ThumbnailWidget.cjs.js");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");const Nr=require("@dnd-kit/core"),me=require("@dnd-kit/sortable"),vr=require("../../../../node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs.js");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");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("../../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/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/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");require("../../components/Chips/Chips.cjs.js");require("../../components/LinksManager/LinksManager.styled.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/LinksManager/CellEditingDialog.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");const ie=e=>{const l=e.getIsPinned(),n=e.id!==D.ROW_SELECTION_COLUMN_ID&&e.id!==F?-30:0;return{left:l==="left"?`${e.getStart("left")+n}px`:void 0,right:l==="right"?`${e.getAfter("right")}px`:void 0,position:l?"sticky":"relative",width:e.getSize(),zIndex:l?100:0}},ne=(e,l)=>`calc(var(--col-${l}-size) * 1px)`,F="drag-handle",_r=({scope:e,sliceId:l,onScroll:n,onScrollBottom:p,onOpenNew:y,readOnly:h,excludedColumns:R,extraColumns:b,isLoading:j,clientSorting:s=!1,sortableRows:c=!1,onRowReorder:P,dndActiveId:i,pt:x,...H})=>{var Le;const{columnVisibility:T,columnPinning:E,columnOrder:f,columnSizing:O,setAllColumns:q,sorting:U,sortingOnChange:W,columnPinningOnChange:V,columnSizingOnChange:a,columnVisibilityOnChange:N,columnOrderOnChange:w,groupBy:z}=hr.useColumnSettingsContext(),v=!!z,{projectInfo:se,tableData:g,attribFields:C,entitiesMap:_,users:xe,isLoading:Fe,error:Ve,isInitialized:oe,expanded:Be,projectName:K,updateExpanded:fe,toggleExpandAll:Ue,showHierarchy:A,fetchNextPage:We,scopes:Ce,getEntityById:pe}=He.useProjectTableContext(),{projectName:$e,writableFields:he}=Dr.useProjectDataContext(),X=j||Fe,{statuses:ye=[],folderTypes:Re=[],taskTypes:be=[],tags:je=[],linkTypes:Ge=[]}=se||{},Y=m.useMemo(()=>Pr.getTableFieldOptions({users:xe,statuses:ye,folderTypes:Re,taskTypes:be,tags:je,scopes:Ce}),[xe,ye,Re,be,Ce,je]),J=m.useRef(null),Ee=m.useRef(0),{registerGrid:we}=D.useSelectionCellsContext(),{loadingAttrib:Se,loadingRows:Ke}=m.useMemo(()=>{var o;const r=((o=J.current)==null?void 0:o.querySelectorAll("tbody tr").length)||0,d=Ne.generateDummyAttributes(),u=Ne.generateLoadingRows(C,A&&g.length>0?Math.min(r,50):z?Math.max(Ee.current,50):50);return{loadingAttrib:d,loadingRows:u}},[]),Xe=!oe||X,{readOnlyColumns:Te,readOnlyAttribs:Ye}=m.useMemo(()=>Or.getReadOnlyLists(C,he,h),[C,he,h]),{selectedCells:ue}=D.useSelectionCellsContext(),{updateEntities:Me}=ve.useCellEditing(),Je=m.useCallback(async(r,d)=>{const{selection:u=[]}=d||{},o=[];if(!(u!=null&&u.length))o.push({...r,id:r.rowId});else{const{field:I,value:ce,isAttrib:de,type:qe}=r;for(const ee of ue){const{colId:B,rowId:re}=te.parseCellId(ee)||{},ge=pe(re||"");if(!ge){console.warn(`Entity with ID ${re} not found for cell update.`);continue}(!(B!=null&&B.includes("attrib_"))||(B==null?void 0:B.replace("attrib_",""))===I)&&re&&o.push({field:I,rowId:re,id:ge.entityId,value:ce,isAttrib:de,type:ge.entityType})}}if(!o.length){console.warn("No entities to update, skipping updateEntities call."),Ir.toast.warn("No entities to update.");return}await Me(o,!0)},[Me,pe,ue]),Ie=m.useMemo(()=>oe?C:Se,[C,Se,oe]),le=m.useMemo(()=>{const r=qr.default({attribs:Ie,links:Ge,showHierarchy:A,options:Y,extraColumns:b,excluded:R,groupBy:z});return c?[{id:F,header:()=>null,cell:()=>null,size:24,minSize:24,maxSize:24,enableResizing:!1,enableSorting:!1,enableHiding:!1,enablePinning:!1},...r]:r},[Ie,A,Y,b,R,c]);m.useEffect(()=>{const r=le.map(d=>d.id).filter(Boolean);q(r)},[le,q]);const M=k.useReactTable({data:Xe?Ke:g,columns:le,defaultColumn:{minSize:50,size:150},enableRowSelection:!0,getRowId:r=>r.id,enableSubRowSelection:!1,getSubRows:r=>r.subRows,getRowCanExpand:()=>!0,getCoreRowModel:k.getCoreRowModel(),getFilteredRowModel:k.getFilteredRowModel(),getExpandedRowModel:k.getExpandedRowModel(),filterFromLeafRows:!0,onExpandedChange:fe,enableSorting:!0,getSortedRowModel:k.getSortedRowModel(),sortDescFirst:!1,manualSorting:!s,onSortingChange:W,columnResizeMode:"onChange",onColumnPinningChange:V,onColumnSizingChange:a,onColumnVisibilityChange:N,onColumnOrderChange:w,filterFns:k.filterFns,state:{expanded:Be,sorting:U,columnPinning:(()=>{const r=[];c&&r.push(F),r.push(D.ROW_SELECTION_COLUMN_ID);const d=(E.left||[]).filter(o=>o!==F&&o!==D.ROW_SELECTION_COLUMN_ID);return r.push(...d),{left:[...new Set(r)],right:E.right}})(),columnSizing:O,columnVisibility:T,columnOrder:f},meta:{projectName:K,options:Y,readOnly:Te,updateEntities:Je,toggleExpandAll:Ue,loadMoreTasks:We,selection:Array.from(ue)}}),{rows:$}=M.getRowModel();m.useEffect(()=>{Ee.current=$.length},[$.length]),m.useEffect(()=>{if(!$.length)return;const r=$.map(o=>o.id),u=[...M.getAllLeafColumns().map(o=>o.id)].sort((o,I)=>{var qe,ee;if(D.ROW_SELECTION_COLUMN_ID===I)return 1;const ce=(qe=E.left)!=null&&qe.includes(o)?0:1,de=(ee=E.left)!=null&&ee.includes(I)?0:1;return ce-de});we(r,u)},[$,M.getAllLeafColumns(),E,D.ROW_SELECTION_COLUMN_ID,we]);const Pe=M.getVisibleLeafColumns(),{columnVirtualizer:ae,virtualPaddingLeft:Q,virtualPaddingRight:Z}=Er({visibleColumns:Pe,tableContainerRef:J,columnPinning:E,columnSizing:O,columnOrder:f}),Oe=Rr(M,O),{getRowHeight:Qe,defaultRowHeight:ze}=Sr(),Ze=m.useMemo(()=>C.reduce((r,d)=>{var u,o,I;return(o=(u=d.data)==null?void 0:u.enum)!=null&&o.length&&(r[d.name]=(I=d.data)==null?void 0:I.enum),r},{}),[C]),er=m.useMemo(()=>g.map(r=>r.id),[g]),rr=m.useMemo(()=>!i||!c?null:g.find(r=>r.id===i),[i,g,c]),tr=m.useCallback(r=>{if(n==null||n(r),p){const d=r.currentTarget;if(d&&!A&&!z){const{scrollHeight:u,scrollTop:o,clientHeight:I}=d;u-o-I<500&&!X&&p(r)}}},[n,p,A,z,X]),{isEntityPickerOpen:ir,handleMoveSubmit:nr,closeMoveDialog:sr,movingEntities:G,handleMoveToRoot:or,getDisabledFolderIds:ur,getDisabledMessage:lr}=Mr.useMoveEntities({projectName:$e||K||""}),ar=r=>{nr(r);const d=r[0];fe(u=>typeof u=="boolean"?u||{[d]:!0}:u[d]?u:{...u,[d]:!0})},De=t.jsxRuntimeExports.jsxs(Cr.ClipboardProvider,{entitiesMap:_,columnEnums:{...Y,...Ze},columnReadOnly:Ye,visibleColumns:Pe,children:[t.jsxRuntimeExports.jsx(S.TableWrapper,{...H,children:t.jsxRuntimeExports.jsx(S.TableContainer,{ref:J,style:{height:"100%",padding:0},onScroll:tr,...x==null?void 0:x.container,className:L("table-container",{resizing:M.getState().columnSizingInfo.isResizingColumn},(Le=x==null?void 0:x.container)==null?void 0:Le.className),children:t.jsxRuntimeExports.jsxs("table",{style:{display:"grid",borderCollapse:"collapse",userSelect:"none",...Oe,width:M.getTotalSize(),cursor:M.getState().columnSizingInfo.isResizingColumn?"col-resize":void 0},children:[t.jsxRuntimeExports.jsx(kr,{columnVirtualizer:ae,table:M,virtualPaddingLeft:Q,virtualPaddingRight:Z,isLoading:X,readOnlyColumns:Te,sortableRows:c,...x==null?void 0:x.head}),t.jsxRuntimeExports.jsx(Fr,{columnVirtualizer:ae,table:M,tableContainerRef:J,virtualPaddingLeft:Q,virtualPaddingRight:Z,showHierarchy:A,attribs:C,onOpenNew:y,rowOrderIds:er,sortableRows:c,error:Ve,isGrouping:v,getRowHeight:Qe,defaultRowHeight:ze})]})})}),ir&&K&&(G==null?void 0:G.entities)&&G.entities.length>0&&t.jsxRuntimeExports.jsx(Tr.EntityPickerDialog,{projectName:K,entityType:"folder",onSubmit:ar,onClose:sr,showMoveToRoot:G.entities.every(r=>r.entityType==="folder"),onMoveToRoot:or,disabledIds:ur(),getDisabledMessage:lr})]}),cr=c&&i&&ke.createPortal(t.jsxRuntimeExports.jsx(Nr.DragOverlay,{dropAnimation:null,children:rr?(()=>{const r=M.getRowModel().rows.find(u=>u.id===i);if(!r)return null;const d=M.getTotalSize();return t.jsxRuntimeExports.jsx("table",{style:{width:d,borderCollapse:"collapse",backgroundColor:"var(--md-sys-color-surface-container-high)",boxShadow:"0 0 10px rgba(0,0,0,0.2)",...Oe},children:t.jsxRuntimeExports.jsx("tbody",{children:t.jsxRuntimeExports.jsxs(S.TR,{style:{display:"flex",userSelect:"none"},children:[Q?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:Q}}):null,ae.getVirtualItems().map(u=>{const o=r.getVisibleCells()[u.index];if(!o)return null;const I={...ie(o.column),width:ne(r.id,o.column.id),display:"flex",alignItems:"center",height:ze};return o.column.id===F?t.jsxRuntimeExports.jsxs(S.TableCell,{style:{...I,justifyContent:"center"},className:L(o.column.id),children:[t.jsxRuntimeExports.jsx(_e.Icon,{icon:"drag_handle"})," "]},`overlay-drag-${o.id}`):t.jsxRuntimeExports.jsx(Ae,{cell:o,cellId:`overlay-${te.getCellId(r.id,o.column.id)}`,rowId:r.id,showHierarchy:A},`overlay-cell-${o.id}`)}),Z?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:Z}}):null]})})})})():null}),document.body);return c?t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[De,cr]}):De},kr=({columnVirtualizer:e,table:l,virtualPaddingLeft:n,virtualPaddingRight:p,isLoading:y,readOnlyColumns:h,sortableRows:R,...b})=>t.jsxRuntimeExports.jsx(S.TableHeader,{...b,children:l.getHeaderGroups().map(j=>t.jsxRuntimeExports.jsx(Hr,{columnVirtualizer:e,headerGroup:j,virtualPaddingLeft:n,virtualPaddingRight:p,isLoading:y,readOnlyColumns:h,sortableRows:R},j.id))}),Hr=({columnVirtualizer:e,headerGroup:l,virtualPaddingLeft:n,virtualPaddingRight:p,isLoading:y,readOnlyColumns:h,sortableRows:R})=>{const b=e.getVirtualItems();return t.jsxRuntimeExports.jsxs(S.ColumnHeader,{style:{display:"flex"},children:[n?t.jsxRuntimeExports.jsx("th",{style:{display:"flex",width:n}}):null,b.map(j=>{const s=l.headers[j.index];return t.jsxRuntimeExports.jsx(Ar,{header:s,isLoading:y,isReadOnly:h==null?void 0:h.includes(s.id),canSort:s.column.getCanSort(),canFilter:s.column.getCanFilter(),canHide:s.column.getCanHide(),canPin:s.column.getCanPin(),canResize:s.column.getCanResize(),sortableRows:R},s.id)}),p?t.jsxRuntimeExports.jsx("th",{style:{display:"flex",width:p}}):null]},l.id)},Ar=({header:e,isLoading:l,canFilter:n,canHide:p,canSort:y,canPin:h,canResize:R,isReadOnly:b,sortableRows:j})=>{const{column:s}=e,c=s.getIsSorted(),P=`column-header-menu-${s.id}`,{menuOpen:i}=yr.useMenuContext(),x=i===P;return t.jsxRuntimeExports.jsx(S.HeaderCell,{className:L(e.id,"shimmer-dark",{loading:l,"last-pinned-left":s.getIsPinned()==="left"&&s.getIsLastColumn("left"),resizing:s.getIsResizing()}),style:{...ie(s),width:ne("",s.id)},children:e.isPlaceholder?null:t.jsxRuntimeExports.jsxs(S.TableCellContent,{className:L("bold","header"),children:[k.flexRender(s.columnDef.header,e.getContext()),b&&t.jsxRuntimeExports.jsx(_e.Icon,{icon:"lock","data-tooltip":"You only have permission to read this column."}),t.jsxRuntimeExports.jsxs(S.HeaderButtons,{className:"actions",$isOpen:x,children:[(p||h||y)&&t.jsxRuntimeExports.jsx(xr.ColumnHeaderMenu,{className:"header-menu",header:e,canHide:p,canPin:h,canSort:y,isResizing:s.getIsResizing(),menuId:P,isOpen:x}),y&&t.jsxRuntimeExports.jsx(gr,{icon:"sort",className:L("sort-button",{visible:c}),style:{transform:c==="asc"?"rotate(180deg) scaleX(-1)":"none"},onClick:s.getToggleSortingHandler(),selected:!!s.getIsSorted()})]}),R&&t.jsxRuntimeExports.jsx(S.ResizedHandler,{onDoubleClick:()=>s.resetSize(),onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:L("resize-handle",{resizing:s.getIsResizing()})})]})},e.id)},Fr=({columnVirtualizer:e,table:l,tableContainerRef:n,showHierarchy:p,virtualPaddingLeft:y,virtualPaddingRight:h,attribs:R,onOpenNew:b,rowOrderIds:j,sortableRows:s,error:c,isGrouping:P,getRowHeight:i,defaultRowHeight:x})=>{const H=m.useMemo(()=>l.getAllColumns().map(w=>{const z=w.id,v=w.columnDef.header;return typeof v=="string"||typeof v=="number"?{label:v,id:z}:null}).filter(Boolean),[l.getAllColumns()]),E=jr({attribs:R,onOpenNew:b,headerLabels:H}).handleTableBodyContextMenu,{handlePreFetchTasks:f}=br.usePrefetchFolderTasks(),{rows:O}=l.getRowModel(),q=dr.useVirtualizer({count:O.length,estimateSize:a=>{const N=O[a];return N?i(N.original):x},getScrollElement:()=>n.current,measureElement:typeof window<"u"&&navigator.userAgent.indexOf("Firefox")===-1?a=>a==null?void 0:a.getBoundingClientRect().height:void 0,overscan:5}),U=q.getVirtualItems();m.useEffect(()=>{const a=setTimeout(()=>{q.measure()},100);return()=>clearTimeout(a)},[x,q]);const W=m.useCallback(a=>{a&&q.measureElement(a)},[q]);wr();const V=t.jsxRuntimeExports.jsx("tbody",{style:{height:`${q.getTotalSize()}px`,position:"relative",display:"grid"},onContextMenu:E,onMouseOver:a=>{f(a)},children:U.map((a,N)=>{const w=O[a.index];return w?t.jsxRuntimeExports.jsx(Vr,{row:w,showHierarchy:p,visibleCells:w.getVisibleCells(),virtualColumns:e.getVirtualItems(),paddingLeft:y,paddingRight:h,rowRef:W,dataIndex:a.index,offsetTop:a.start,sortableRows:s,isGrouping:P,rowHeight:i(w.original)},w.id+N.toString()):(console.warn("Virtualized row data not found for index:",a.index),null)})});return c?n.current&&ke.createPortal(t.jsxRuntimeExports.jsx(fr.EmptyPlaceholder,{message:"No items found",error:c}),n.current):s?t.jsxRuntimeExports.jsx(me.SortableContext,{items:j,strategy:me.verticalListSortingStrategy,children:V}):V},Vr=({row:e,showHierarchy:l,visibleCells:n,virtualColumns:p,paddingLeft:y,paddingRight:h,rowRef:R,dataIndex:b,offsetTop:j,sortableRows:s,isGrouping:c=!1,rowHeight:P})=>{const i=s?me.useSortable({id:e.id}):null,x=m.useCallback(T=>{i&&i.setNodeRef(T),i&&i.isDragging||R(T)},[i,R]),H={position:"absolute",top:j,left:0,right:0,height:P,zIndex:i&&i.isDragging?0:1,display:"flex",transform:i&&i.transform?vr.CSS.Transform.toString(i.transform):void 0,transition:i&&i.transition?i.transition:void 0,visibility:i&&i.isDragging?"hidden":"visible"};return t.jsxRuntimeExports.jsxs(S.TR,{ref:x,"data-index":b,style:H,className:L({"group-row":e.original.group}),children:[y?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:y}}):null,p.map((T,E)=>{const f=n[T.index];if(!f)return null;const O=te.getCellId(e.id,f.column.id);return f.column.id===F?t.jsxRuntimeExports.jsx(S.TableCell,{style:{...ie(f.column),width:ne(e.id,f.column.id),display:"flex",alignItems:"center",justifyContent:"center",height:P,pointerEvents:"all",cursor:"grab"},className:L(f.column.id,{"last-pinned-left":f.column.getIsPinned()==="left"&&f.column.getIsLastColumn("left")}),onMouseDown:q=>q.stopPropagation(),onMouseOver:q=>q.stopPropagation(),onDoubleClick:q=>q.stopPropagation(),onContextMenu:q=>{q.preventDefault(),q.stopPropagation()},children:t.jsxRuntimeExports.jsx(mr,{attributes:i==null?void 0:i.attributes,listeners:i==null?void 0:i.listeners})},f.id+E.toString()):t.jsxRuntimeExports.jsx(Ae,{cell:f,cellId:O,rowId:e.id,showHierarchy:l,sortableRows:s,rowHeight:P},f.id+E.toString())}),h?t.jsxRuntimeExports.jsx("td",{style:{display:"flex",width:h}}):null]})},Br=({cell:e,rowId:l,cellId:n,className:p,showHierarchy:y,sortableRows:h,rowHeight:R,...b})=>{const{getEntityById:j,onOpenPlayer:s}=He.useProjectTableContext(),{isCellSelected:c,isCellFocused:P,startSelection:i,extendSelection:x,endSelection:H,selectCell:T,focusCell:E,getCellBorderClasses:f,clearSelection:O,selectedCells:q}=D.useSelectionCellsContext(),{isRowSelected:U}=pr.useSelectedRowsContext(),{isEditing:W,setEditingCellId:V}=ve.useCellEditing(),a=f(n),w=e.column.getIsPinned()==="left"&&e.column.getIsLastColumn("left"),z=e.column.id===D.ROW_SELECTION_COLUMN_ID,v=e.row.original.entityType==="group",se=q.size>1;return t.jsxRuntimeExports.jsx(S.TableCell,{...b,tabIndex:0,$isLastPinned:w,className:L(e.column.id,{selected:c(n),focused:P(n),editing:W(n),"last-pinned-left":w,"selected-row":U(l),task:e.row.original.entityType==="task","multiple-selected":se},p,...a),style:{...ie(e.column),width:ne(e.row.id,e.column.id),height:R},onMouseDown:g=>{if(g.button!==0)return;const C=g.target;if(C.closest(".expander"))return;if(C.closest("."+Lr.EDIT_TRIGGER_CLASS)){c(n)||(T(n,!1,!1),E(n)),V(n);return}if(C.closest(".options"))return;if(v&&e.column.id!=="name")return O();const _=g.metaKey||g.ctrlKey||z;g.shiftKey?T(n,_,!0):i(n,_)},onMouseOver:g=>{g.buttons===1&&x(n,z)},onMouseUp:()=>{H(n)},onDoubleClick:g=>{if(e.column.id==="name"&&!g.target.closest(".expander")&&!v){const C=te.getCellId(e.row.id,D.ROW_SELECTION_COLUMN_ID);if(!c(C)){const _=g.metaKey||g.ctrlKey;T(C,_,!1)}}if(e.column.id==="thumbnail"&&s){const C=j(e.row.original.entityId||e.row.id);if(C){const _=zr.getEntityViewierIds(C);s(_,{quickView:!0})}}},onContextMenu:g=>{g.preventDefault(),c(n)||T(n,!1,!1)},children:k.flexRender(e.column.columnDef.cell,e.getContext())})},Ae=m.memo(Br);exports.DRAG_HANDLE_COLUMN_ID=F;exports.ProjectTreeTable=_r;
|
|
2
2
|
//# sourceMappingURL=ProjectTreeTable.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectTreeTable.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport useDynamicRowHeight from './hooks/useDynamicRowHeight'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { useSelector } from 'react-redux'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const { projectName: contextProjectName, writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n enableSorting: true,\n getSortedRowModel: getSortedRowModel(),\n sortDescFirst: false,\n manualSorting: !clientSorting,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n // Calculate dynamic row height based on user setting from Customize panel\n const { getRowHeight, defaultRowHeight } = useDynamicRowHeight()\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName: contextProjectName || projectName || '',\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n getRowHeight={getRowHeight}\n defaultRowHeight={defaultRowHeight}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: defaultRowHeight,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen}>\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'asc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n getRowHeight: (row: TableRow) => number\n defaultRowHeight: number\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n getRowHeight,\n defaultRowHeight,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: (index) => {\n // Calculate dynamic row height based on specific row data\n const row = rows[index]\n return row ? getRowHeight(row.original) : defaultRowHeight\n },\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Force row virtualizer to recalculate when row height changes (debounced for performance)\n useEffect(() => {\n const timeout = setTimeout(() => {\n rowVirtualizer.measure()\n }, 100) // Small delay to batch multiple rapid changes\n\n return () => clearTimeout(timeout)\n }, [defaultRowHeight, rowVirtualizer])\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n rowHeight={getRowHeight(row.original)}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n rowHeight: number\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n rowHeight,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: rowHeight, // Use dynamic row height\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: rowHeight,\n pointerEvents: 'all',\n cursor: 'grab',\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n rowHeight={rowHeight}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n rowHeight?: number\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n rowHeight,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: rowHeight,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["getCommonPinningStyles","column","isPinned","offset","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","getColumnWidth","rowId","columnId","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","extraColumns","isLoadingProp","clientSorting","sortableRows","onRowReorder","dndActiveId","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","columnVisibilityOnChange","columnOrderOnChange","groupBy","useColumnSettingsContext","isGrouping","projectInfo","tableData","attribFields","entitiesMap","users","isLoadingData","error","isInitialized","expanded","projectName","updateExpanded","toggleExpandAll","showHierarchy","fetchNextPage","scopes","getEntityById","useProjectTableContext","contextProjectName","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","_a","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","type","cellId","colId","parseCellId","toast","columnAttribs","columns","baseColumns","buildTreeTableColumns","useEffect","ids","c","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","id","rows","rowIds","colIdsSortedByPinning","col","a","b","colA","colB","_b","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","columnSizeVars","useCustomColumnWidthVars","getRowHeight","defaultRowHeight","useDynamicRowHeight","attribByField","acc","attrib","_c","rowOrderIds","draggedRowData","combinedScrollHandler","e","containerRefElement","scrollHeight","scrollTop","clientHeight","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","jsx","Styled.TableWrapper","Styled.TableContainer","clsx","TableHead","TableBody","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","r","tableWidth","Styled.TR","vc","cell","cellStyleBase","Styled.TableCell","Icon","TableCellMemo","getCellId","Fragment","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","Styled.ColumnHeader","virtualColumn","header","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","menuId","menuOpen","useMenuContext","isOpen","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","handlePreFetchTasks","usePrefetchFolderTasks","rowVirtualizer","useVirtualizer","index","element","virtualRows","timeout","measureRowElement","node","useKeyboardNavigation","tbodyContent","virtualRow","i","TableBodyRow","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","rowHeight","sortable","useSortable","combinedRef","style","CSS","RowDragHandleCellContent","TableCell","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","target","EDIT_TRIGGER_CLASS","additive","rowSelectionCellId","targetIds","getEntityViewierIds","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectTreeTable.cjs.js","sources":["../../../../../src/containers/ProjectTreeTable/ProjectTreeTable.tsx"],"sourcesContent":["import { useMemo, useRef, useEffect, memo, CSSProperties, useCallback, UIEventHandler } from 'react' // Added useCallback\nimport { useVirtualizer, VirtualItem, Virtualizer } from '@tanstack/react-virtual'\n// TanStack Table imports\nimport {\n useReactTable,\n getCoreRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n filterFns,\n flexRender,\n Row,\n getSortedRowModel,\n Cell,\n Column,\n Table,\n Header,\n HeaderGroup,\n RowData,\n ExpandedState,\n} from '@tanstack/react-table'\n\n// Utility imports\nimport clsx from 'clsx'\n\n// Type imports\nimport type { TableRow } from './types/table'\n\n// Component imports\nimport buildTreeTableColumns, {\n DefaultColumns,\n TreeTableExtraColumn,\n} from './buildTreeTableColumns'\nimport * as Styled from './ProjectTreeTable.styled'\nimport { RowDragHandleCellContent, ColumnHeaderMenu } from './components'\nimport EmptyPlaceholder from '../../components/EmptyPlaceholder'\nimport HeaderActionButton from './components/HeaderActionButton'\n\n// Context imports\nimport { useCellEditing } from './context/CellEditingContext'\nimport { ROW_SELECTION_COLUMN_ID, useSelectionCellsContext } from './context/SelectionCellsContext'\nimport { ClipboardProvider } from './context/ClipboardContext'\nimport { useSelectedRowsContext } from './context/SelectedRowsContext'\nimport { useColumnSettingsContext } from './context/ColumnSettingsContext'\nimport { useMenuContext } from '../../context/MenuContext'\n\n// Hook imports\nimport useCustomColumnWidthVars from './hooks/useCustomColumnWidthVars'\nimport usePrefetchFolderTasks from './hooks/usePrefetchFolderTasks'\nimport useCellContextMenu, { HeaderLabel } from './hooks/useCellContextMenu'\nimport useColumnVirtualization from './hooks/useColumnVirtualization'\nimport useKeyboardNavigation from './hooks/useKeyboardNavigation'\nimport useDynamicRowHeight from './hooks/useDynamicRowHeight'\n\n// EntityPickerDialog import\nimport { EntityPickerDialog } from '../EntityPickerDialog/EntityPickerDialog'\n// Move entity hook\nimport { useMoveEntities } from './hooks/useMoveEntities'\nimport { useProjectDataContext } from '@shared/containers'\n\n// Utility function imports\nimport { getCellId, parseCellId } from './utils/cellUtils'\nimport { generateLoadingRows, generateDummyAttributes } from './utils/loadingUtils'\nimport { createPortal } from 'react-dom'\nimport { Icon } from '@ynput/ayon-react-components'\nimport { AttributeEnumItem, ProjectTableAttribute, BuiltInFieldOptions } from './types'\nimport { ToggleExpandAll, useProjectTableContext } from './context/ProjectTableContext'\nimport { getEntityViewierIds, getReadOnlyLists, getTableFieldOptions } from './utils'\nimport { EntityUpdate } from './hooks/useUpdateTableData'\n\n// dnd-kit imports\nimport {\n DragOverlay,\n type UniqueIdentifier,\n // Removed: DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, DragEndEvent, DragStartEvent, Active, Over, useSensor, useSensors\n} from '@dnd-kit/core'\n// import { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport { SortableContext, verticalListSortingStrategy, useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { EDIT_TRIGGER_CLASS } from './widgets/CellWidget'\nimport { toast } from 'react-toastify'\nimport { EntityMoveData } from '@shared/context/MoveEntityContext'\nimport { useSelector } from 'react-redux'\n\ntype CellUpdate = (\n entity: Omit<EntityUpdate, 'id'>,\n config?: { selection?: string[] },\n) => Promise<void>\n\ndeclare module '@tanstack/react-table' {\n interface TableMeta<TData extends RowData> {\n options?: BuiltInFieldOptions\n readOnly?: ProjectTreeTableProps['readOnly']\n projectName?: string\n updateEntities?: CellUpdate\n toggleExpandAll?: ToggleExpandAll\n selection?: string[]\n }\n}\n\n//These are the important styles to make sticky column pinning work!\n//Apply styles like this using your CSS strategy of choice with this kind of logic to head cells, data cells, footer cells, etc.\n//View the index.css file for more needed styles such as border-collapse: separate\nconst getCommonPinningStyles = (column: Column<TableRow, unknown>): CSSProperties => {\n const isPinned = column.getIsPinned()\n const offset =\n column.id !== ROW_SELECTION_COLUMN_ID && column.id !== DRAG_HANDLE_COLUMN_ID ? -30 : 0\n\n return {\n left: isPinned === 'left' ? `${column.getStart('left') + offset}px` : undefined, // Removed offset\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 100 : 0,\n }\n}\n\nconst getColumnWidth = (rowId: string, columnId: string) => {\n return `calc(var(--col-${columnId}-size) * 1px)`\n}\n// test\n\nexport const DRAG_HANDLE_COLUMN_ID = 'drag-handle'\n\nexport interface ProjectTreeTableProps extends React.HTMLAttributes<HTMLDivElement> {\n scope: string\n sliceId: string\n onScrollBottom?: React.HTMLAttributes<HTMLDivElement>['onScroll']\n onOpenNew?: (type: 'folder' | 'task') => void\n readOnly?: (DefaultColumns | string)[]\n excludedColumns?: (DefaultColumns | string)[]\n extraColumns?: TreeTableExtraColumn[]\n isLoading?: boolean\n clientSorting?: boolean\n sortableRows?: boolean\n onRowReorder?: (active: UniqueIdentifier, over: UniqueIdentifier | null) => void // Adjusted type for active/over if needed, or keep as Active, Over\n dndActiveId?: UniqueIdentifier | null // Added prop\n pt?: {\n container?: React.HTMLAttributes<HTMLDivElement>\n head?: Partial<TableHeadProps>\n }\n}\n\nexport const ProjectTreeTable = ({\n scope,\n sliceId,\n onScroll,\n onScrollBottom, // when the user scrolls to the bottom of the table, this callback is called\n onOpenNew,\n readOnly,\n excludedColumns,\n extraColumns,\n isLoading: isLoadingProp,\n clientSorting = false,\n sortableRows = false,\n onRowReorder,\n dndActiveId, // Destructure new prop\n pt,\n ...props\n}: ProjectTreeTableProps) => {\n const {\n columnVisibility,\n columnPinning,\n columnOrder,\n columnSizing,\n setAllColumns,\n sorting,\n sortingOnChange,\n columnPinningOnChange,\n columnSizingOnChange,\n columnVisibilityOnChange,\n columnOrderOnChange,\n groupBy,\n } = useColumnSettingsContext()\n const isGrouping = !!groupBy\n\n const {\n projectInfo,\n tableData,\n attribFields,\n entitiesMap,\n users,\n isLoading: isLoadingData,\n error,\n isInitialized,\n expanded,\n projectName,\n updateExpanded,\n toggleExpandAll,\n showHierarchy,\n fetchNextPage,\n scopes,\n getEntityById,\n } = useProjectTableContext()\n\n const { projectName: contextProjectName, writableFields } = useProjectDataContext()\n\n const isLoading = isLoadingProp || isLoadingData\n\n const {\n statuses = [],\n folderTypes = [],\n taskTypes = [],\n tags = [],\n linkTypes = [],\n } = projectInfo || {}\n const options: BuiltInFieldOptions = useMemo(\n () =>\n getTableFieldOptions({\n users,\n statuses,\n folderTypes,\n taskTypes,\n tags,\n scopes,\n }),\n [users, statuses, folderTypes, taskTypes, scopes, tags],\n )\n\n //The virtualizer needs to know the scrollable container element\n const tableContainerRef = useRef<HTMLDivElement>(null)\n // reference of how many rows are currently rendered in the table\n const tableRowsCountRef = useRef(0)\n\n // Selection context\n const { registerGrid } = useSelectionCellsContext()\n\n // generate loading attrib and rows\n const { loadingAttrib, loadingRows } = useMemo(() => {\n // count the number of children in tbody\n const tableRowsCount = tableContainerRef.current?.querySelectorAll('tbody tr').length || 0\n const loadingAttrib = generateDummyAttributes()\n const loadingRows = generateLoadingRows(\n attribFields,\n showHierarchy && tableData.length > 0\n ? Math.min(tableRowsCount, 50)\n : groupBy\n ? Math.max(tableRowsCountRef.current, 50)\n : 50,\n )\n\n return { loadingAttrib, loadingRows }\n }, [])\n\n const showLoadingRows = !isInitialized || isLoading\n\n // Format readonly columns and attributes\n const { readOnlyColumns, readOnlyAttribs } = useMemo(\n () => getReadOnlyLists(attribFields, writableFields, readOnly),\n [attribFields, writableFields, readOnly],\n )\n\n const { selectedCells } = useSelectionCellsContext()\n const { updateEntities } = useCellEditing()\n\n const handleCellUpdate: CellUpdate = useCallback(\n async (entity, config) => {\n const { selection = [] } = config || {}\n const entitiesToUpdate: EntityUpdate[] = []\n if (!selection?.length) {\n entitiesToUpdate.push({ ...entity, id: entity.rowId })\n } else {\n // if includeSelection is true, update all the selected cells with the same columnId\n const { field, value, isAttrib, type } = entity\n for (const cellId of selectedCells) {\n const { colId, rowId } = parseCellId(cellId) || {}\n\n const entity = getEntityById(rowId || '')\n if (!entity) {\n console.warn(`Entity with ID ${rowId} not found for cell update.`)\n continue\n }\n\n if ((!colId?.includes('attrib_') || colId?.replace('attrib_', '') === field) && rowId) {\n entitiesToUpdate.push({\n field: field,\n rowId: rowId,\n id: entity.entityId,\n value: value,\n isAttrib: isAttrib,\n type: entity.entityType,\n })\n }\n }\n }\n\n if (!entitiesToUpdate.length) {\n console.warn('No entities to update, skipping updateEntities call.')\n toast.warn('No entities to update.')\n return\n }\n\n await updateEntities(entitiesToUpdate, true)\n },\n [updateEntities, getEntityById, selectedCells],\n )\n\n const columnAttribs = useMemo(\n () => (isInitialized ? attribFields : loadingAttrib),\n [attribFields, loadingAttrib, isInitialized],\n )\n const columns = useMemo(() => {\n const baseColumns = buildTreeTableColumns({\n attribs: columnAttribs,\n links: linkTypes,\n showHierarchy,\n options,\n extraColumns,\n excluded: excludedColumns,\n groupBy,\n })\n\n if (sortableRows) {\n return [\n {\n id: DRAG_HANDLE_COLUMN_ID,\n header: () => null,\n cell: () => null, // Content rendered by TableBodyRow\n size: 24,\n minSize: 24,\n maxSize: 24,\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n enablePinning: false, // Programmatically pinned\n },\n ...baseColumns,\n ]\n }\n return baseColumns\n }, [columnAttribs, showHierarchy, options, extraColumns, excludedColumns, sortableRows])\n\n // Keep ColumnSettingsProvider's allColumns ref up to date\n useEffect(() => {\n const ids = columns.map((c) => c.id!).filter(Boolean)\n setAllColumns(ids)\n }, [columns, setAllColumns])\n\n const table = useReactTable({\n data: showLoadingRows ? loadingRows : tableData,\n columns,\n defaultColumn: {\n minSize: 50,\n size: 150,\n },\n enableRowSelection: true, //enable row selection for all rows\n getRowId: (row) => row.id,\n enableSubRowSelection: false, //disable sub row selection\n getSubRows: (row) => row.subRows,\n getRowCanExpand: () => true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n filterFromLeafRows: true,\n // EXPANDABLE\n onExpandedChange: updateExpanded,\n // SORTING\n enableSorting: true,\n getSortedRowModel: getSortedRowModel(),\n sortDescFirst: false,\n manualSorting: !clientSorting,\n onSortingChange: sortingOnChange,\n columnResizeMode: 'onChange',\n onColumnPinningChange: columnPinningOnChange,\n onColumnSizingChange: columnSizingOnChange,\n onColumnVisibilityChange: columnVisibilityOnChange,\n onColumnOrderChange: columnOrderOnChange,\n // @ts-ignore\n filterFns,\n state: {\n expanded,\n sorting,\n columnPinning: (() => {\n const leftPins: string[] = []\n if (sortableRows) {\n leftPins.push(DRAG_HANDLE_COLUMN_ID)\n }\n leftPins.push(ROW_SELECTION_COLUMN_ID)\n\n // Add other unique pins from context, ensuring they are not the programmatic ones\n const contextLeftPins = (columnPinning.left || []).filter(\n (id) => id !== DRAG_HANDLE_COLUMN_ID && id !== ROW_SELECTION_COLUMN_ID,\n )\n leftPins.push(...contextLeftPins)\n // Remove duplicates just in case, though filter should handle it\n const uniqueLeftPins = [...new Set(leftPins)]\n\n return {\n left: uniqueLeftPins,\n right: columnPinning.right,\n }\n })(),\n columnSizing,\n columnVisibility,\n columnOrder,\n },\n meta: {\n projectName,\n options,\n readOnly: readOnlyColumns,\n updateEntities: handleCellUpdate,\n toggleExpandAll,\n loadMoreTasks: fetchNextPage,\n selection: Array.from(selectedCells),\n },\n })\n\n // TODO: when there is data (like in error) then we have infinite rendering\n\n const { rows } = table.getRowModel()\n\n // update the tableRowsCountRef with the current number of rows\n useEffect(() => {\n tableRowsCountRef.current = rows.length\n }, [rows.length])\n\n // Register grid structure with selection context when rows or columns change\n useEffect(() => {\n if (!rows.length) return\n const rowIds = rows.map((row) => row.id)\n const colIds = table.getAllLeafColumns().map((col) => col.id)\n const colIdsSortedByPinning = [...colIds].sort((a, b) => {\n if (ROW_SELECTION_COLUMN_ID === b) return 1\n const colA = columnPinning.left?.includes(a) ? 0 : 1\n const colB = columnPinning.left?.includes(b) ? 0 : 1\n return colA - colB\n })\n\n registerGrid(rowIds, colIdsSortedByPinning)\n }, [rows, table.getAllLeafColumns(), columnPinning, ROW_SELECTION_COLUMN_ID, registerGrid])\n\n const visibleColumns = table.getVisibleLeafColumns()\n\n // Use the column virtualization hook\n const { columnVirtualizer, virtualPaddingLeft, virtualPaddingRight } = useColumnVirtualization({\n visibleColumns,\n tableContainerRef,\n columnPinning,\n columnSizing,\n columnOrder,\n })\n\n const columnSizeVars = useCustomColumnWidthVars(table, columnSizing)\n\n // Calculate dynamic row height based on user setting from Customize panel\n const { getRowHeight, defaultRowHeight } = useDynamicRowHeight()\n\n const attribByField = useMemo(() => {\n return attribFields.reduce((acc: Record<string, AttributeEnumItem[]>, attrib) => {\n if (attrib.data?.enum?.length) {\n acc[attrib.name] = attrib.data?.enum\n }\n return acc\n }, {})\n }, [attribFields])\n\n const rowOrderIds = useMemo(() => tableData.map((row) => row.id), [tableData])\n const draggedRowData = useMemo(() => {\n if (!dndActiveId || !sortableRows) return null // Use dndActiveId\n return tableData.find((r) => r.id === dndActiveId) // Use dndActiveId\n }, [dndActiveId, tableData, sortableRows])\n\n const combinedScrollHandler: UIEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n // Call the original onScroll if provided\n onScroll?.(e)\n\n if (onScrollBottom) {\n const containerRefElement = e.currentTarget\n if (containerRefElement && !showHierarchy && !groupBy) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n //once the user has scrolled within 500px of the bottom of the table, fetch more data if we can\n if (scrollHeight - scrollTop - clientHeight < 500 && !isLoading) {\n onScrollBottom(e)\n }\n }\n }\n },\n [onScroll, onScrollBottom, showHierarchy, groupBy, isLoading],\n )\n\n // Get move entity functions for the dialog\n const {\n isEntityPickerOpen,\n handleMoveSubmit,\n closeMoveDialog,\n movingEntities,\n handleMoveToRoot,\n getDisabledFolderIds,\n getDisabledMessage,\n } = useMoveEntities({\n projectName: contextProjectName || projectName || '',\n })\n\n const handleMoveSubmitWithExpand = (selection: string[]) => {\n handleMoveSubmit(selection)\n const folderIdToExpand = selection[0]\n\n updateExpanded((prevExpanded: ExpandedState) => {\n if (typeof prevExpanded === 'boolean') {\n if (prevExpanded) {\n return prevExpanded\n }\n return { [folderIdToExpand]: true }\n }\n\n if (prevExpanded[folderIdToExpand]) {\n return prevExpanded\n }\n\n return {\n ...prevExpanded,\n [folderIdToExpand]: true,\n }\n })\n }\n\n const tableUiContent = (\n <ClipboardProvider\n entitiesMap={entitiesMap}\n columnEnums={{ ...options, ...attribByField }}\n columnReadOnly={readOnlyAttribs}\n visibleColumns={visibleColumns}\n >\n <Styled.TableWrapper {...props}>\n <Styled.TableContainer\n ref={tableContainerRef}\n style={{ height: '100%', padding: 0 }}\n onScroll={combinedScrollHandler}\n {...pt?.container}\n className={clsx(\n 'table-container',\n {\n resizing: table.getState().columnSizingInfo.isResizingColumn,\n },\n pt?.container?.className,\n )}\n >\n <table\n style={{\n display: 'grid',\n borderCollapse: 'collapse',\n userSelect: 'none',\n ...columnSizeVars,\n width: table.getTotalSize(),\n cursor: table.getState().columnSizingInfo.isResizingColumn ? 'col-resize' : undefined,\n }}\n >\n <TableHead\n columnVirtualizer={columnVirtualizer}\n table={table}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n {...pt?.head}\n />\n <TableBody\n columnVirtualizer={columnVirtualizer}\n table={table}\n tableContainerRef={tableContainerRef}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n showHierarchy={showHierarchy}\n attribs={attribFields}\n onOpenNew={onOpenNew}\n rowOrderIds={rowOrderIds}\n sortableRows={sortableRows}\n error={error}\n isGrouping={isGrouping}\n getRowHeight={getRowHeight}\n defaultRowHeight={defaultRowHeight}\n />\n </table>\n </Styled.TableContainer>\n </Styled.TableWrapper>\n {/* Render EntityPickerDialog alongside table content */}\n {isEntityPickerOpen &&\n projectName &&\n movingEntities?.entities &&\n movingEntities.entities.length > 0 && (\n <EntityPickerDialog\n projectName={projectName}\n entityType=\"folder\"\n onSubmit={handleMoveSubmitWithExpand}\n onClose={closeMoveDialog}\n showMoveToRoot={movingEntities.entities.every(\n (entity: EntityMoveData) => entity.entityType === 'folder',\n )}\n onMoveToRoot={handleMoveToRoot}\n disabledIds={getDisabledFolderIds()}\n getDisabledMessage={getDisabledMessage}\n />\n )}\n </ClipboardProvider>\n )\n\n // Render DragOverlay if sortableRows and dndActiveId is present\n const dragOverlayPortal =\n sortableRows &&\n dndActiveId &&\n createPortal(\n <DragOverlay dropAnimation={null}>\n {draggedRowData\n ? (() => {\n const overlayRowInstance = table.getRowModel().rows.find((r) => r.id === dndActiveId)\n if (!overlayRowInstance) return null\n\n const tableWidth = table.getTotalSize()\n\n return (\n <table\n style={{\n width: tableWidth,\n borderCollapse: 'collapse',\n backgroundColor: 'var(--md-sys-color-surface-container-high)',\n boxShadow: '0 0 10px rgba(0,0,0,0.2)',\n ...columnSizeVars,\n }}\n >\n <tbody>\n <Styled.TR style={{ display: 'flex', userSelect: 'none' }}>\n {virtualPaddingLeft ? (\n <td style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {columnVirtualizer.getVirtualItems().map((vc) => {\n const cell = overlayRowInstance.getVisibleCells()[vc.index]\n if (!cell) return null\n\n const cellStyleBase: CSSProperties = {\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(overlayRowInstance.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n height: defaultRowHeight,\n }\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={`overlay-drag-${cell.id}`}\n style={{ ...cellStyleBase, justifyContent: 'center' }}\n className={clsx(cell.column.id)}\n >\n <Icon icon=\"drag_handle\" /> {/* Static icon */}\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={`overlay-${getCellId(overlayRowInstance.id, cell.column.id)}`}\n rowId={overlayRowInstance.id}\n key={`overlay-cell-${cell.id}`}\n showHierarchy={showHierarchy}\n />\n )\n })}\n {virtualPaddingRight ? (\n <td style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.TR>\n </tbody>\n </table>\n )\n })()\n : null}\n </DragOverlay>,\n document.body,\n )\n\n if (sortableRows) {\n return (\n <>\n {tableUiContent}\n {dragOverlayPortal}\n </>\n )\n } else {\n return tableUiContent\n }\n}\n\ninterface TableHeadProps extends React.HTMLAttributes<HTMLTableSectionElement> {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHead = ({\n columnVirtualizer,\n table,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n ...props\n}: TableHeadProps) => {\n return (\n <Styled.TableHeader {...props}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableHeadRow\n key={headerGroup.id}\n columnVirtualizer={columnVirtualizer}\n headerGroup={headerGroup}\n virtualPaddingLeft={virtualPaddingLeft}\n virtualPaddingRight={virtualPaddingRight}\n isLoading={isLoading}\n readOnlyColumns={readOnlyColumns}\n sortableRows={sortableRows}\n />\n ))}\n </Styled.TableHeader>\n )\n}\n\ninterface TableHeadRowProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n headerGroup: HeaderGroup<TableRow>\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n isLoading: boolean\n readOnlyColumns?: string[]\n sortableRows?: boolean\n}\n\nconst TableHeadRow = ({\n columnVirtualizer,\n headerGroup,\n virtualPaddingLeft,\n virtualPaddingRight,\n isLoading,\n readOnlyColumns,\n sortableRows,\n}: TableHeadRowProps) => {\n const virtualColumns = columnVirtualizer.getVirtualItems()\n return (\n <Styled.ColumnHeader key={headerGroup.id} style={{ display: 'flex' }}>\n {virtualPaddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingLeft }} />\n ) : null}\n {virtualColumns.map((virtualColumn) => {\n const header = headerGroup.headers[virtualColumn.index]\n\n return (\n <TableHeadCell\n key={header.id}\n header={header}\n isLoading={isLoading}\n isReadOnly={readOnlyColumns?.includes(header.id)}\n canSort={header.column.getCanSort()}\n canFilter={header.column.getCanFilter()}\n canHide={header.column.getCanHide()}\n canPin={header.column.getCanPin()}\n canResize={header.column.getCanResize()}\n sortableRows={sortableRows}\n />\n )\n })}\n {virtualPaddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <th style={{ display: 'flex', width: virtualPaddingRight }} />\n ) : null}\n </Styled.ColumnHeader>\n )\n}\n\ninterface TableHeadCellProps {\n header: Header<TableRow, unknown>\n isLoading: boolean\n canSort?: boolean\n canFilter?: boolean\n canHide?: boolean\n canPin?: boolean\n canResize?: boolean\n isReadOnly?: boolean\n sortableRows?: boolean\n}\n\nconst TableHeadCell = ({\n header,\n isLoading,\n canFilter,\n canHide,\n canSort,\n canPin,\n canResize,\n isReadOnly,\n sortableRows,\n}: TableHeadCellProps) => {\n const { column } = header\n const sorting = column.getIsSorted()\n const menuId = `column-header-menu-${column.id}`\n const { menuOpen } = useMenuContext()\n const isOpen = menuOpen === menuId\n\n return (\n <Styled.HeaderCell\n className={clsx(header.id, 'shimmer-dark', {\n loading: isLoading,\n 'last-pinned-left': column.getIsPinned() === 'left' && column.getIsLastColumn('left'),\n resizing: column.getIsResizing(),\n })}\n key={header.id}\n style={{\n ...getCommonPinningStyles(column),\n width: getColumnWidth('', column.id),\n }}\n >\n {header.isPlaceholder ? null : (\n <Styled.TableCellContent className={clsx('bold', 'header')}>\n {flexRender(column.columnDef.header, header.getContext())}\n {isReadOnly && (\n <Icon icon=\"lock\" data-tooltip={'You only have permission to read this column.'} />\n )}\n\n <Styled.HeaderButtons className=\"actions\" $isOpen={isOpen}>\n {(canHide || canPin || canSort) && (\n <ColumnHeaderMenu\n className=\"header-menu\"\n header={header}\n canHide={canHide}\n canPin={canPin}\n canSort={canSort}\n isResizing={column.getIsResizing()}\n menuId={menuId}\n isOpen={isOpen}\n />\n )}\n\n {/* COLUMN SORTING */}\n {canSort && (\n <HeaderActionButton\n icon=\"sort\"\n className={clsx('sort-button', { visible: sorting })}\n style={{\n transform: sorting === 'asc' ? 'rotate(180deg) scaleX(-1)' : 'none',\n }}\n onClick={column.getToggleSortingHandler()}\n selected={!!column.getIsSorted()}\n />\n )}\n </Styled.HeaderButtons>\n {canResize && (\n <Styled.ResizedHandler\n {...{\n onDoubleClick: () => column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: clsx('resize-handle', {\n resizing: column.getIsResizing(),\n }),\n }}\n />\n )}\n </Styled.TableCellContent>\n )}\n </Styled.HeaderCell>\n )\n}\n\ninterface TableBodyProps {\n columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>\n table: Table<TableRow>\n tableContainerRef: React.RefObject<HTMLDivElement>\n showHierarchy: boolean\n virtualPaddingLeft: number | undefined\n virtualPaddingRight: number | undefined\n attribs: ProjectTableAttribute[]\n onOpenNew?: (type: 'folder' | 'task') => void\n rowOrderIds: UniqueIdentifier[]\n sortableRows: boolean\n error?: string\n isGrouping: boolean\n getRowHeight: (row: TableRow) => number\n defaultRowHeight: number\n}\n\nconst TableBody = ({\n columnVirtualizer,\n table,\n tableContainerRef,\n showHierarchy,\n virtualPaddingLeft,\n virtualPaddingRight,\n attribs,\n onOpenNew,\n rowOrderIds,\n sortableRows,\n error,\n isGrouping,\n getRowHeight,\n defaultRowHeight,\n}: TableBodyProps) => {\n const headerLabels = useMemo(() => {\n const allColumns = table.getAllColumns()\n const headers = allColumns\n .map((col) => {\n const headerId = col.id\n const header = col.columnDef.header\n if (typeof header === 'string' || typeof header === 'number') {\n return { label: header, id: headerId }\n }\n return null\n })\n .filter(Boolean)\n\n return headers as HeaderLabel[]\n }, [table.getAllColumns()])\n\n const cellContextMenuHook = useCellContextMenu({ attribs, onOpenNew, headerLabels })\n\n const handleTableBodyContextMenu = cellContextMenuHook.handleTableBodyContextMenu\n\n const { handlePreFetchTasks } = usePrefetchFolderTasks()\n\n const { rows } = table.getRowModel()\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: (index) => {\n // Calculate dynamic row height based on specific row data\n const row = rows[index]\n return row ? getRowHeight(row.original) : defaultRowHeight\n },\n getScrollElement: () => tableContainerRef.current,\n //measure dynamic row height, except in firefox because it measures table border height incorrectly\n measureElement:\n typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1\n ? (element) => element?.getBoundingClientRect().height\n : undefined,\n overscan: 5,\n })\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n // Force row virtualizer to recalculate when row height changes (debounced for performance)\n useEffect(() => {\n const timeout = setTimeout(() => {\n rowVirtualizer.measure()\n }, 100) // Small delay to batch multiple rapid changes\n\n return () => clearTimeout(timeout)\n }, [defaultRowHeight, rowVirtualizer])\n\n // Memoize the measureElement callback\n const measureRowElement = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (node) {\n rowVirtualizer.measureElement(node)\n }\n },\n [rowVirtualizer],\n )\n\n useKeyboardNavigation()\n\n const tbodyContent = (\n <tbody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n position: 'relative',\n display: 'grid',\n }}\n onContextMenu={handleTableBodyContextMenu}\n onMouseOver={(e) => {\n handlePreFetchTasks(e)\n }}\n >\n {virtualRows.map((virtualRow, i) => {\n const row = rows[virtualRow.index] as Row<TableRow>\n // Add a check for row existence to prevent potential errors if data is out of sync\n if (!row) {\n console.warn('Virtualized row data not found for index:', virtualRow.index)\n return null\n }\n return (\n <TableBodyRow\n key={row.id + i.toString()} // dnd-kit needs this key to be stable and match the id in useSortable\n row={row}\n showHierarchy={showHierarchy}\n visibleCells={row.getVisibleCells()}\n virtualColumns={columnVirtualizer.getVirtualItems()}\n paddingLeft={virtualPaddingLeft}\n paddingRight={virtualPaddingRight}\n rowRef={measureRowElement}\n dataIndex={virtualRow.index}\n offsetTop={virtualRow.start}\n sortableRows={sortableRows}\n isGrouping={isGrouping}\n rowHeight={getRowHeight(row.original)}\n />\n )\n })}\n </tbody>\n )\n\n if (error) {\n return (\n tableContainerRef.current &&\n createPortal(\n <EmptyPlaceholder message=\"No items found\" error={error} />,\n tableContainerRef.current,\n )\n )\n }\n\n if (sortableRows) {\n return (\n <SortableContext items={rowOrderIds} strategy={verticalListSortingStrategy}>\n {tbodyContent}\n </SortableContext>\n )\n } else {\n return tbodyContent\n }\n}\n\ninterface TableBodyRowProps {\n row: Row<TableRow>\n showHierarchy: boolean\n visibleCells: Cell<TableRow, unknown>[]\n virtualColumns: VirtualItem[]\n paddingLeft: number | undefined\n paddingRight: number | undefined\n rowRef: (node: HTMLTableRowElement | null) => void\n dataIndex: number\n offsetTop: number\n sortableRows: boolean\n isGrouping: boolean\n rowHeight: number\n}\n\nconst TableBodyRow = ({\n row,\n showHierarchy,\n visibleCells,\n virtualColumns,\n paddingLeft,\n paddingRight,\n rowRef,\n dataIndex,\n offsetTop,\n sortableRows,\n isGrouping = false,\n rowHeight,\n}: TableBodyRowProps) => {\n const sortable = sortableRows ? useSortable({ id: row.id }) : null\n\n const combinedRef = useCallback(\n (node: HTMLTableRowElement | null) => {\n if (sortable) {\n sortable.setNodeRef(node)\n }\n // rowRef for virtualizer measurement\n // only measure if not actively being transformed by dnd-kit\n if (!(sortable && sortable.isDragging)) {\n rowRef(node)\n }\n },\n [sortable, rowRef],\n )\n\n // Attempt to combine dnd-kit transform with virtualizer's offsetTop\n const style: CSSProperties = {\n position: 'absolute', // Use absolute positioning for virtualized items\n top: offsetTop, // Position based on virtualizer's calculation (virtualRow.start)\n left: 0, // Span full width of the relative parent (tbody)\n right: 0, // Span full width\n height: rowHeight, // Use dynamic row height\n zIndex: sortable && sortable.isDragging ? 0 : 1, // Ensure dragged item is above others\n display: 'flex', // Styled.TR is display:flex\n transform:\n sortable && sortable.transform ? CSS.Transform.toString(sortable.transform) : undefined, // Apply dnd-kit's transform for drag effect\n transition: sortable && sortable.transition ? sortable.transition : undefined,\n visibility: sortable && sortable.isDragging ? 'hidden' : 'visible', // Hide the row being dragged\n }\n\n return (\n <Styled.TR\n ref={combinedRef}\n data-index={dataIndex} //needed for dynamic row height measurement\n style={style}\n className={clsx({ 'group-row': row.original.group })}\n >\n {paddingLeft ? (\n //fake empty column to the left for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingLeft }} />\n ) : null}\n {virtualColumns.map((vc, i) => {\n const cell = visibleCells[vc.index]\n if (!cell) return null // Should not happen in normal circumstances\n\n const cellId = getCellId(row.id, cell.column.id)\n\n if (cell.column.id === DRAG_HANDLE_COLUMN_ID) {\n return (\n <Styled.TableCell\n key={cell.id + i.toString()}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(row.id, cell.column.id),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: rowHeight,\n pointerEvents: 'all',\n cursor: 'grab',\n }}\n className={clsx(cell.column.id, {\n 'last-pinned-left':\n cell.column.getIsPinned() === 'left' && cell.column.getIsLastColumn('left'),\n })}\n onMouseDown={(e) => e.stopPropagation()} // Prevent selection interference\n onMouseOver={(e) => e.stopPropagation()}\n // Removed onMouseUp stopPropagation to allow dnd-kit to handle it\n onDoubleClick={(e) => e.stopPropagation()}\n onContextMenu={(e) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <RowDragHandleCellContent\n attributes={sortable?.attributes}\n listeners={sortable?.listeners}\n />\n </Styled.TableCell>\n )\n }\n return (\n <TableCellMemo\n cell={cell}\n cellId={cellId}\n rowId={row.id}\n key={cell.id + i.toString()}\n showHierarchy={showHierarchy}\n sortableRows={sortableRows}\n rowHeight={rowHeight}\n />\n )\n })}\n\n {paddingRight ? (\n //fake empty column to the right for virtualization scroll padding\n <td style={{ display: 'flex', width: paddingRight }} />\n ) : null}\n </Styled.TR>\n )\n}\n\ninterface TableCellProps {\n cell: Cell<TableRow, unknown>\n cellId: string\n rowId: string\n className?: string\n showHierarchy: boolean\n sortableRows?: boolean\n rowHeight?: number\n}\n\nconst TableCell = ({\n cell,\n rowId,\n cellId,\n className,\n showHierarchy,\n sortableRows,\n rowHeight,\n ...props\n}: TableCellProps) => {\n const { getEntityById, onOpenPlayer } = useProjectTableContext()\n\n const {\n isCellSelected,\n isCellFocused,\n startSelection,\n extendSelection,\n endSelection,\n selectCell,\n focusCell,\n getCellBorderClasses,\n clearSelection,\n selectedCells,\n } = useSelectionCellsContext()\n\n const { isRowSelected } = useSelectedRowsContext()\n\n const { isEditing, setEditingCellId } = useCellEditing()\n\n const borderClasses = getCellBorderClasses(cellId)\n\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinnedColumn = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isRowSelectionColumn = cell.column.id === ROW_SELECTION_COLUMN_ID\n const isGroup = cell.row.original.entityType === 'group'\n const isMultipleSelected = selectedCells.size > 1\n\n return (\n <Styled.TableCell\n {...props}\n tabIndex={0}\n $isLastPinned={isLastLeftPinnedColumn} // is this column the last pinned column? Custom styling for borders.\n className={clsx(\n cell.column.id,\n {\n selected: isCellSelected(cellId),\n focused: isCellFocused(cellId),\n editing: isEditing(cellId),\n 'last-pinned-left': isLastLeftPinnedColumn,\n 'selected-row': isRowSelected(rowId),\n task: cell.row.original.entityType === 'task',\n 'multiple-selected': isMultipleSelected,\n },\n className,\n ...borderClasses,\n )}\n style={{\n ...getCommonPinningStyles(cell.column),\n width: getColumnWidth(cell.row.id, cell.column.id),\n height: rowHeight,\n }}\n onMouseDown={(e) => {\n // Only process left clicks (button 0), ignore right clicks\n if (e.button !== 0) return\n\n const target = e.target as HTMLElement\n\n // check we are not clicking on expander\n if (target.closest('.expander')) return\n\n // if we are clicking on an edit trigger, we need to start editing\n if (target.closest('.' + EDIT_TRIGGER_CLASS)) {\n if (!isCellSelected(cellId)) {\n // if the cell is not selected, select it and deselect all others\n selectCell(cellId, false, false)\n focusCell(cellId)\n }\n // start editing the cell\n setEditingCellId(cellId)\n\n return\n }\n\n // check we are not clicking in a dropdown\n if (target.closest('.options')) return\n\n // only name column can be selected for group rows\n if (isGroup && cell.column.id !== 'name') return clearSelection()\n\n const additive = e.metaKey || e.ctrlKey || isRowSelectionColumn\n if (e.shiftKey) {\n // Shift+click extends selection from anchor cell\n selectCell(cellId, additive, true) // true for range selection\n } else {\n // Normal click starts a new selection\n startSelection(cellId, additive)\n }\n }}\n onMouseOver={(e) => {\n if (e.buttons === 1) {\n // Left button is pressed during mouse move - drag selection\n extendSelection(cellId, isRowSelectionColumn)\n }\n }}\n onMouseUp={() => {\n endSelection(cellId)\n }}\n onDoubleClick={(e) => {\n // row selection on name column double click\n if (\n cell.column.id === 'name' &&\n !(e.target as HTMLElement).closest('.expander') &&\n !isGroup\n ) {\n // select the row by selecting the row-selection cell\n const rowSelectionCellId = getCellId(cell.row.id, ROW_SELECTION_COLUMN_ID)\n if (!isCellSelected(rowSelectionCellId)) {\n const additive = e.metaKey || e.ctrlKey\n selectCell(rowSelectionCellId, additive, false)\n }\n }\n // open the viewer on thumbnail double click\n if (cell.column.id === 'thumbnail') {\n if (onOpenPlayer) {\n const entity = getEntityById(cell.row.original.entityId || cell.row.id)\n if (entity) {\n const targetIds = getEntityViewierIds(entity)\n onOpenPlayer(targetIds, { quickView: true })\n }\n }\n }\n }}\n onContextMenu={(e) => {\n e.preventDefault()\n // if the cell is not selected, select it and deselect all others\n if (!isCellSelected(cellId)) {\n selectCell(cellId, false, false)\n }\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Styled.TableCell>\n )\n}\n\nconst TableCellMemo = memo(TableCell)\n"],"names":["getCommonPinningStyles","column","isPinned","offset","ROW_SELECTION_COLUMN_ID","DRAG_HANDLE_COLUMN_ID","getColumnWidth","rowId","columnId","ProjectTreeTable","scope","sliceId","onScroll","onScrollBottom","onOpenNew","readOnly","excludedColumns","extraColumns","isLoadingProp","clientSorting","sortableRows","onRowReorder","dndActiveId","pt","props","columnVisibility","columnPinning","columnOrder","columnSizing","setAllColumns","sorting","sortingOnChange","columnPinningOnChange","columnSizingOnChange","columnVisibilityOnChange","columnOrderOnChange","groupBy","useColumnSettingsContext","isGrouping","projectInfo","tableData","attribFields","entitiesMap","users","isLoadingData","error","isInitialized","expanded","projectName","updateExpanded","toggleExpandAll","showHierarchy","fetchNextPage","scopes","getEntityById","useProjectTableContext","contextProjectName","writableFields","useProjectDataContext","isLoading","statuses","folderTypes","taskTypes","tags","linkTypes","options","useMemo","getTableFieldOptions","tableContainerRef","useRef","tableRowsCountRef","registerGrid","useSelectionCellsContext","loadingAttrib","loadingRows","tableRowsCount","_a","generateDummyAttributes","generateLoadingRows","showLoadingRows","readOnlyColumns","readOnlyAttribs","getReadOnlyLists","selectedCells","updateEntities","useCellEditing","handleCellUpdate","useCallback","entity","config","selection","entitiesToUpdate","field","value","isAttrib","type","cellId","colId","parseCellId","toast","columnAttribs","columns","baseColumns","buildTreeTableColumns","useEffect","ids","c","table","useReactTable","row","getCoreRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","filterFns","leftPins","contextLeftPins","id","rows","rowIds","colIdsSortedByPinning","col","a","b","colA","colB","_b","visibleColumns","columnVirtualizer","virtualPaddingLeft","virtualPaddingRight","useColumnVirtualization","columnSizeVars","useCustomColumnWidthVars","getRowHeight","defaultRowHeight","useDynamicRowHeight","attribByField","acc","attrib","_c","rowOrderIds","draggedRowData","combinedScrollHandler","e","containerRefElement","scrollHeight","scrollTop","clientHeight","isEntityPickerOpen","handleMoveSubmit","closeMoveDialog","movingEntities","handleMoveToRoot","getDisabledFolderIds","getDisabledMessage","useMoveEntities","handleMoveSubmitWithExpand","folderIdToExpand","prevExpanded","tableUiContent","jsxs","ClipboardProvider","jsx","Styled.TableWrapper","Styled.TableContainer","clsx","TableHead","TableBody","EntityPickerDialog","dragOverlayPortal","createPortal","DragOverlay","overlayRowInstance","r","tableWidth","Styled.TR","vc","cell","cellStyleBase","Styled.TableCell","Icon","TableCellMemo","getCellId","Fragment","Styled.TableHeader","headerGroup","TableHeadRow","virtualColumns","Styled.ColumnHeader","virtualColumn","header","TableHeadCell","canFilter","canHide","canSort","canPin","canResize","isReadOnly","menuId","menuOpen","useMenuContext","isOpen","Styled.HeaderCell","Styled.TableCellContent","flexRender","Styled.HeaderButtons","ColumnHeaderMenu","HeaderActionButton","Styled.ResizedHandler","attribs","headerLabels","headerId","handleTableBodyContextMenu","useCellContextMenu","handlePreFetchTasks","usePrefetchFolderTasks","rowVirtualizer","useVirtualizer","index","element","virtualRows","timeout","measureRowElement","node","useKeyboardNavigation","tbodyContent","virtualRow","i","TableBodyRow","EmptyPlaceholder","SortableContext","verticalListSortingStrategy","visibleCells","paddingLeft","paddingRight","rowRef","dataIndex","offsetTop","rowHeight","sortable","useSortable","combinedRef","style","CSS","RowDragHandleCellContent","TableCell","className","onOpenPlayer","isCellSelected","isCellFocused","startSelection","extendSelection","endSelection","selectCell","focusCell","getCellBorderClasses","clearSelection","isRowSelected","useSelectedRowsContext","isEditing","setEditingCellId","borderClasses","isLastLeftPinnedColumn","isRowSelectionColumn","isGroup","isMultipleSelected","target","EDIT_TRIGGER_CLASS","additive","rowSelectionCellId","targetIds","getEntityViewierIds","memo"],"mappings":"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"}
|