@ynput/ayon-frontend-shared 0.3.31 → 0.3.32
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 -22
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +213 -197
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +19 -18
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs22.js +1 -1
- package/dist/_virtual/index.cjs23.js +1 -1
- package/dist/_virtual/index.cjs24.js +1 -1
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.es19.js +2 -2
- package/dist/_virtual/index.es20.js +2 -2
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es4.js +2 -5
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +5 -2
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/_virtual/index.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +453 -434
- package/dist/api.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +11 -9
- 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/rehype/node_modules/unified/lib/index.cjs.js +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.es.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
- package/dist/node_modules/rehype-parse/lib/index.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/@module-federation/error-codes/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/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/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 +21 -17
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js +2 -14
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +237 -55
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +361 -161
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/activityQueries.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/activityQueries.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/activityQueries.es.js +1 -0
- package/dist/shared/src/api/queries/activities/activityQueries.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +33 -21
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +74 -60
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +2 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js +96 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +2 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +88 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +62 -48
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +7 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +94 -79
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +104 -71
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +265 -216
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +198 -183
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +138 -107
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +332 -239
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +38 -38
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +3 -2
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- 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 +4 -2
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.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/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +3 -2
- package/dist/shared/src/components/EntityIcon/EntityIcon.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 +137 -158
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +4 -2
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.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/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.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 +3 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +3 -2
- package/dist/shared/src/components/LinksManager/LinksManager.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 -2
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +3 -2
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
- package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.es.js +3 -2
- package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.es.js +1 -0
- package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.es.js +3 -2
- package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
- 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 +3 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +3 -2
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +79 -77
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- 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 -4
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.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 +3 -2
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +4 -2
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js +4 -2
- package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
- package/dist/shared/src/components/RenameForm/RenameForm.es.js +4 -2
- package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.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 -2
- 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 -3
- 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 -2
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +4 -2
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +7 -6
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
- 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/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +6 -4
- package/dist/shared/src/components/SimpleFormDialog/FormFile.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 -2
- package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +3 -2
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +11 -10
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +49 -44
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +32 -22
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.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 -2
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +8 -6
- package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
- package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
- package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.es.js +7 -1
- package/dist/shared/src/config/powerpackFeatures.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 -2
- 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 -2
- 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 -2
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js +41 -38
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +18 -16
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/containers/DetailsPanelSubtasks.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js +4 -2
- package/dist/shared/src/containers/DetailsPanel/containers/FeedContextWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js +13 -11
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +14 -14
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +13 -9
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.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 -2
- 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 -2
- 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 -2
- 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 -2
- 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 +5 -4
- package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityCheckbox/ActivityCheckbox.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 +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.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 +28 -27
- 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 +1 -1
- 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 +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.es.js +8 -6
- package/dist/shared/src/containers/Feed/components/CommentInput/helpers.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 +3 -2
- 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 +3 -2
- 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 +3 -2
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.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 +37 -44
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js +3 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.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/Feed/helpers/groupActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +14 -13
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTable.es.js +212 -204
- package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +4 -2
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableHeader.es.js +4 -2
- package/dist/shared/src/containers/ListTable/ListTableHeader.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 +729 -675
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +32 -10
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +42 -18
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.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 +17 -14
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.es.js +57 -43
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnDndProvider.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 -2
- 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 -2
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +48 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +103 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -0
- 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 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +7 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +215 -181
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +21 -17
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.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 +17 -11
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.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 +83 -81
- 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 +116 -111
- 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 +6 -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 -2
- 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 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useDeleteEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.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 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGroupBySettings.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 -2
- 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 -2
- 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 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.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 +80 -78
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js +45 -44
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js +16 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -0
- 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 -13
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js +29 -25
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.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 +12 -10
- 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 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.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 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js +3 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +24 -19
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.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 -2
- 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 -2
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js +3 -2
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +4 -2
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js +5 -4
- package/dist/shared/src/containers/Slicer/context/SlicerContext.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js +12 -11
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +3 -2
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.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/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.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 +119 -118
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +18 -16
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +79 -51
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +19 -17
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.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 +6 -5
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +12 -11
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +78 -65
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.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 +5 -4
- 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/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +5 -4
- package/dist/shared/src/context/GlobalContext.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 +7 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +5 -4
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +5 -4
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.es.js +5 -4
- package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +6 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +6 -4
- package/dist/shared/src/context/WebsocketContext.es.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
- package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- 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/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +3 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +3 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.es.js +3 -2
- package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js +86 -65
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/shared/src/util/getThumbnailUrl.cjs.js +2 -0
- package/dist/shared/src/util/getThumbnailUrl.cjs.js.map +1 -0
- package/dist/shared/src/util/getThumbnailUrl.es.js +23 -0
- package/dist/shared/src/util/getThumbnailUrl.es.js.map +1 -0
- package/dist/shared/src/util/thumbnailWebsocket.cjs.js +2 -0
- package/dist/shared/src/util/thumbnailWebsocket.cjs.js.map +1 -0
- package/dist/shared/src/util/thumbnailWebsocket.es.js +54 -0
- package/dist/shared/src/util/thumbnailWebsocket.es.js.map +1 -0
- package/dist/types/api/generated/folders.d.ts +1 -6
- package/dist/types/api/generated/graphql.d.ts +275 -6
- package/dist/types/api/generated/graphqlLinks.d.ts +7 -4
- package/dist/types/api/queries/activities/activityQueries.d.ts +1 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +47 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +94 -0
- package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
- package/dist/types/api/queries/columnStats/columnStats.d.ts +28 -0
- package/dist/types/api/queries/columnStats/index.d.ts +2 -0
- package/dist/types/api/queries/columnStats/metricTargets.d.ts +31 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +47 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +47 -0
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +47 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +47 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +733 -1
- package/dist/types/api/queries/project/getProject.d.ts +47 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +69 -0
- package/dist/types/api/queries/users/getUsers.d.ts +47 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +828 -1
- package/dist/types/components/EntityPanelUploader/EntityPanelUploader.d.ts +1 -11
- package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +2 -2
- package/dist/types/components/Thumbnail/Thumbnail.d.ts +2 -2
- package/dist/types/components/ThumbnailSimple/ThumbnailSimple.d.ts +1 -1
- package/dist/types/config/powerpackFeatures.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/containers/FeedWrapper.d.ts +1 -0
- package/dist/types/containers/DetailsPanel/helpers/getThumbnails.d.ts +2 -2
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +8 -3
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/constants.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +17 -1
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +50 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +3 -0
- package/dist/types/containers/ProjectTreeTable/utils/checkColumnVisibility.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/utils/pinningUtils.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -1
- package/dist/types/containers/Views/hooks/useSelectedView.d.ts +2 -1
- package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -3
- package/dist/types/util/getThumbnailUrl.d.ts +18 -0
- package/dist/types/util/index.d.ts +2 -0
- package/dist/types/util/thumbnailWebsocket.d.ts +21 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +35 -30
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentInput.cjs.js","sources":["../../../../../../../src/containers/Feed/components/CommentInput/CommentInput.tsx"],"sourcesContent":["// React and related hooks\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\n// Third-party libraries\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport ReactQuill, { Quill } from 'react-quill-ayon'\n\n// Components\nimport { Button, Icon, SaveButton } from '@ynput/ayon-react-components'\nimport CommentMentionSelect from '../CommentMentionSelect/CommentMentionSelect'\nimport InputMarkdownConvert from './InputMarkdownConvert'\nimport FilesGrid from '../FilesGrid'\n\n// Styled components\nimport * as Styled from './CommentInput.styled'\nimport { QuillListStyles } from '../../../../components/QuillListStyles'\n\n// Helpers and utilities\nimport getMentionOptions from '../../mentionHelpers/getMentionOptions'\nimport getMentionUsers from '../../mentionHelpers/getMentionUsers'\nimport getMentionTasks from '../../mentionHelpers/getMentionTasks'\nimport getMentionVersions from '../../mentionHelpers/getMentionVersions'\nimport { convertToMarkdown } from './quillToMarkdown'\nimport { handleFileDrop, parseImages, typeWithDelay } from './helpers'\nimport { getModules, quillFormats } from './modules'\n\n// Hooks\nimport useInitialValue from './hooks/useInitialValue'\nimport useSetCursorEnd from './hooks/useSetCursorEnd'\nimport useMentionLink from './hooks/useMentionLink'\nimport useAnnotationsSync from './hooks/useAnnotationsSync'\nimport { useBlendedCategoryColor } from './hooks/useBlendedCategoryColor'\n\n// State management\nimport useAnnotationsUpload from './hooks/useAnnotationsUpload'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { ActivityCategorySelect, isCategoryHidden, SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useProjectContext } from '@shared/context'\nimport { parseFilename } from '@shared/components'\n\nvar Delta = Quill.import('delta')\n\nconst mentionTypes = ['@', '@@', '@@@']\nexport const mentionTypeOptions = {\n '@@@': {\n id: 'task',\n },\n '@@': {\n id: 'version',\n },\n '@': {\n id: 'user',\n isCircle: true,\n },\n}\n\ninterface CommentInputProps {\n initValue: string | null\n initFiles?: any[]\n initCategory?: string | null\n data?: any\n onSubmit: (markdown: string, files: any[], data?: any) => Promise<void>\n isEditing?: boolean\n disabled?: boolean\n isLoading?: boolean\n isOpen: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CommentInput: FC<CommentInputProps> = ({\n initValue,\n initFiles = [],\n initCategory = null,\n data = {},\n onSubmit,\n isEditing,\n disabled,\n isLoading,\n isOpen,\n onOpen,\n onClose,\n}) => {\n const {\n projectName,\n entities,\n projectInfo,\n scope,\n feedFilter,\n mentionSuggestionsData,\n categories,\n isGuest,\n } = useFeedContext()\n\n const { hasLicense, onPowerFeature, user } = useDetailsPanelContext()\n const isAdmin = user?.data?.isAdmin\n\n const project = useProjectContext()\n\n const {\n users: mentionUsers,\n teams: mentionTeams,\n versions: mentionVersions,\n tasks: mentionTasks,\n } = mentionSuggestionsData || {}\n\n const [initHeight, setInitHeight] = useState(88)\n const [editorValue, setEditorValue] = useState('')\n // file uploads\n const [files, setFiles] = useState(initFiles)\n const [filesUploading, setFilesUploading] = useState([])\n const [isDropping, setIsDropping] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const { annotations, removeAnnotation, goToAnnotation } = useAnnotationsSync({\n entityId: entities[0]?.id,\n filesUploading,\n })\n\n // MENTION STATES\n const [mention, setMention] = useState<null | any>(null)\n const [mentionSelectedIndex, setMentionSelectedIndex] = useState(0)\n // Prefix filter for mentions (e.g. 'team:' or 'user:')\n const [mentionPrefix, setMentionPrefix] = useState('')\n\n const clearMention = () => {\n setMention(null)\n setMentionSelectedIndex(0)\n setMentionPrefix('')\n }\n // CATEGORY STATE\n const [category, setCategory] = useState<null | string>(initCategory)\n const categoryOptions = categories.filter((cat) => cat.accessLevel >= 20)\n const categoryData = categories.find((cat) => cat.name === category)\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n // REFS\n const editorRef = useRef<any>(null)\n const editorContainerRef = useRef<HTMLDivElement>(null)\n\n const markdownRef = useRef<HTMLDivElement>(null)\n\n // if there is an initial value, set it so the editor is prefilled\n useInitialValue({\n markdownRef,\n initValue,\n setEditorValue,\n setInitHeight,\n isOpen: isOpen,\n filter: feedFilter,\n })\n\n // When editing, set selection to the end of the editor\n useSetCursorEnd({ initHeight, editorRef, isEditing })\n // create a new quill format for mentions and registers it\n useMentionLink({ projectName })\n\n // focus on editor when opened\n useEffect(() => {\n if (isOpen) {\n editorRef.current?.getEditor()?.enable()\n // block autofocus if opened from an annotation\n if (annotations.length > 0 && files.length === 0) {\n return\n }\n\n editorRef.current?.focus()\n }\n // We don't set annotations or files as useEffect dependencies, because we don't want to focus\n // the input if it's already open but annotations change (e.g. are removed).\n }, [isOpen, editorRef])\n\n mentionTypes.sort((a, b) => b.length - a.length)\n\n // Combine prefix filter with typed search for options filtering\n const mentionSearchWithPrefix = mentionPrefix + (mention?.search || '')\n\n const mentionOptions = useMemo(\n () =>\n getMentionOptions(\n mention?.type,\n {\n '@': () => getMentionUsers(mentionUsers, mentionTeams),\n '@@': () => getMentionVersions(mentionVersions, project),\n '@@@': () => getMentionTasks(mentionTasks, projectInfo.taskTypes),\n },\n mentionSearchWithPrefix || undefined,\n ),\n [mentionTasks, mentionVersions, mentionUsers, mentionTeams, mention?.type, mentionSearchWithPrefix],\n )\n\n // show first 5 and filter itself out\n const shownMentionOptions = mentionOptions.slice(0, 5)\n\n // triggered when a mention is selected\n const [newSelection, setNewSelection] = useState<null | number>()\n\n useEffect(() => {\n if (newSelection) {\n setNewSelection(null)\n // now we set selection to the end of the mention\n const quill = editorRef.current.getEditor()\n quill.setSelection(newSelection)\n }\n }, [newSelection])\n\n const handleSelectMention = (selectedOption: any) => {\n // get option text\n const quill = editorRef.current.getEditor()\n\n const typePrefix = mention.type // the type of mention: @, @@, @@@\n const search = typePrefix + (mention.search || '') // the full search string: @Tim\n const mentionLabel = typePrefix + selectedOption.label // the label of the mention: @Tim Bailey\n // @ts-expect-error\n const type = mentionTypeOptions[typePrefix] // the type of mention: user, version, task\n // Use the option's own type (e.g. 'team') if available, otherwise fall back to the mention type config\n const refType = selectedOption.type || type?.id\n const href = `${refType}:${selectedOption.id}` // the href of the mention: user:user.123 or team:Thunder boys\n\n // get selection delta\n const selection = quill.getSelection(true)\n const selectionIndex = selection?.index || 0\n const startIndex = selectionIndex - search.length // the start index of the search\n\n // first delete the search string\n quill.deleteText(startIndex, search.length)\n\n // insert embed link\n quill.insertText(startIndex, mentionLabel, 'mention', href)\n\n const endIndex = startIndex + mentionLabel.length\n\n // insert a space after the mention\n quill.updateContents(new Delta().retain(endIndex).insert(' '))\n\n // remove single \\n after mention\n quill.updateContents(new Delta().retain(endIndex + 1).delete(1))\n\n // set selection to the end of the mention + 1\n setNewSelection(endIndex + 1)\n\n // reset mention state\n clearMention()\n }\n\n const handleSelectChange = (option: any) => {\n handleSelectMention(option)\n }\n\n const handleChange = (content: string, delta: any, _: any, editor: any) => {\n let currentCharacter =\n (delta.ops[0] && delta.ops[0].insert) || (delta.ops[1] && delta.ops[1].insert)\n\n const tabOrEnter = currentCharacter === '\\n' || currentCharacter === '\\t'\n // find the first option\n const selectedOption = mentionOptions[mentionSelectedIndex]\n\n if (mention && tabOrEnter && selectedOption && !isGuest) {\n // get option text\n const retain = (delta.ops[0] && delta.ops[0].retain) || 0\n // prevent default\n\n // @ts-ignore\n handleSelectMention(selectedOption, retain)\n\n return\n }\n\n setEditorValue(content)\n\n const isDelete = delta.ops.length === 2 && !!delta.ops[1].delete\n\n if (!currentCharacter && isDelete) {\n currentCharacter = editor.getText(delta.ops[0].retain - 1, 1)\n }\n\n const isMention = mentionTypes.includes(currentCharacter)\n\n if (isMention) {\n const mentionIndex = delta.ops.findIndex((op: any) => 'insert' in op || 'delete' in op)\n const mention = currentCharacter\n let retain = mentionIndex === 0 ? 0 : delta.ops[mentionIndex - 1].retain\n if (isDelete) retain = retain - 1\n\n // for each mention denotation char, check if it is a mention\n // sort by length of mention denotation char\n let mentionMatch = null\n\n // loop through each mention denotation char, with longest first. First one to match is the one we want\n for (const chars of mentionTypes) {\n let isMatch = true\n // start with the last character\n if (chars.endsWith(mention)) {\n // loop through the chars backwards\n for (let i = chars.length - 1; i >= 0; i--) {\n // skip first character as that's already been checked\n if (i === 0) continue\n const char = chars[i - 1]\n const indexInDelta = retain - (chars.length - i)\n const valueCharAtIndex = editor.getText(indexInDelta, 1)\n if (valueCharAtIndex !== char) {\n isMatch = false\n break\n }\n }\n } else {\n isMatch = false\n }\n\n if (isMatch) {\n // console.log('match!!!', chars)\n mentionMatch = chars\n break\n }\n }\n\n if (mentionMatch) {\n setMention({\n type: mentionMatch,\n retain: retain,\n })\n } else {\n clearMention()\n }\n } else {\n // get full string between mention and new delta\n // This is where SEARCH is handled\n if (mention) {\n const retain = delta.ops[0].retain\n // if space is pressed, remove mention\n if (currentCharacter === ' ' || !retain) {\n clearMention()\n return\n }\n\n let distanceMentionToRetain = retain - mention.retain\n if (!isDelete) distanceMentionToRetain++\n const mentionFull = editor.getText(mention.retain, distanceMentionToRetain)\n const mentionSearch = mentionFull.replace(mention.type.slice(-1), '')\n // check for space in mentionFull\n if (mentionFull.includes(' ')) {\n clearMention()\n } else {\n setMention({\n ...mention,\n search: mentionSearch?.toLowerCase(),\n })\n }\n } else if (isDelete) {\n // backspace inside a mention deletes the whole mention\n const quill = editorRef.current.getEditor()\n const currentSelection = quill.getSelection(false)\n const currentFormat = quill.getFormat(currentSelection?.index, currentSelection?.length)\n if (currentFormat.mention) {\n const [lineBlock] = quill.getLine(currentSelection.index - 1) || []\n const ops = lineBlock?.cache?.delta?.ops || []\n const lastMentionOp = ops.reverse().find((op: any) => op.attributes?.mention)\n if (lastMentionOp) {\n const mentionLength = lastMentionOp.insert.length\n quill.deleteText(currentSelection.index - mentionLength, mentionLength)\n }\n }\n }\n }\n }\n\n const addTextToEditor = (type: string) => {\n // get editor retain\n const quill = editorRef.current.getEditor()\n\n let retain = quill.getSelection(true)?.index || 0\n\n // get character at retain\n const currentCharacter = quill.getText(retain - 1, 1)\n\n // if the current character is a character, increment retain\n const addSpace = currentCharacter !== ' ' && currentCharacter\n if (addSpace) {\n quill.insertText(retain, ' ')\n retain++\n }\n\n // This is hack AF, but it works\n typeWithDelay(quill, retain, type)\n }\n\n const handleMentionButton = (type: string) => {\n // first check if mention is already open\n if (mention) {\n const { type, retain, search = '' } = mention\n\n const quill = editorRef.current.getEditor()\n const length = type.length + search.length\n const start = retain - type.length + 1\n // delete the mention\n quill.deleteText(start, length)\n }\n\n addTextToEditor(type)\n }\n\n const handleOpenClick = () => {\n if (isOpen || disabled) return\n\n onOpen && onOpen()\n }\n\n const handleClose = () => {\n // get editor value\n const editor = editorRef.current.getEditor()\n const text = editor.getText()\n if (text.length < 2 || isEditing) {\n setEditorValue('')\n }\n\n // always close editor\n onClose && onClose()\n }\n\n const handleFileUploaded = ({ file, data }: any) => {\n const fileName = parseFilename(file.name)\n const newFile = {\n id: data.id,\n name: fileName,\n mime: file.type,\n size: file.size,\n order: files.length,\n }\n\n setFiles((prev) => [...prev, newFile])\n // remove from uploading\n setFilesUploading((prev) =>\n prev.filter((uploading: any) => parseFilename(uploading.name) !== fileName),\n )\n\n return newFile\n }\n\n const handleFileRemove = (id: string, name: string, isUnsavedAnnotation: boolean) => {\n if (isUnsavedAnnotation) {\n // remove from annotations (if it's an unsaved annotation)\n removeAnnotation?.(id)\n } else {\n // remove file from files\n setFiles((prev) => prev.filter((file) => file.id !== id))\n // remove from uploading\n setFilesUploading((prev) => {\n return prev.filter((file: any) => parseFilename(file.name) !== parseFilename(name))\n })\n }\n }\n\n const handleFileProgress = (e: any, file: any) => {\n const progress = Math.round((e.loaded * 100) / e.total)\n if (progress !== 100) {\n const fileName = parseFilename(file.name)\n const uploadProgress = {\n name: fileName,\n progress,\n type: file.type,\n order: files.length + filesUploading.length,\n }\n\n // @ts-ignore\n setFilesUploading((prev) => {\n // replace or add new progress\n const newProgress = prev.filter((name: any) => parseFilename(name.name) !== fileName)\n return [...newProgress, uploadProgress]\n })\n }\n }\n\n // when a file is not dropped onto the comment input\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n setIsDropping(false)\n // upload file\n handleFileDrop(e, projectName, handleFileProgress, handleFileUploaded)\n }\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDropping(true)\n }\n\n const uploadAnnotations = useAnnotationsUpload({\n projectName,\n onSuccess: handleFileUploaded,\n })\n\n const handleSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // upload any annotations first\n let annotationFiles = []\n let annotationMetadata: SavedAnnotationMetadata[] | undefined = undefined\n if (annotations.length) {\n const { files, metadata } = await uploadAnnotations(annotations)\n annotationFiles = files\n // get current files data\n const { annotations: annotationsData = [] } = data || {}\n // merge existing annotations data with new metadata\n annotationMetadata = [...annotationsData, ...metadata]\n }\n\n // convert to markdown\n const [markdown] = convertToMarkdown(editorValue)\n\n // remove img query params\n const markdownParsed = parseImages(markdown)\n\n const uploadedFiles = [...files, ...annotationFiles]\n\n const newData = {\n ...data,\n annotations: annotationMetadata, // could be undefined\n category: isGuest ? null : category, // guests cannot set category (it is done by default on backend)\n }\n\n if ((markdownParsed || uploadedFiles.length) && onSubmit) {\n try {\n await onSubmit(markdownParsed, uploadedFiles, newData)\n // only clear if onSubmit is successful\n setEditorValue('')\n setFiles([])\n } catch (error) {\n // error is handled in rtk query mutation\n return\n }\n }\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (mention) {\n // close mention on escape\n if (e.key === 'Escape') {\n clearMention()\n return\n }\n\n // add top search of mention\n if (mention && e.key === 'Tab') {\n // we handle this in the onChange\n }\n\n const arrowDirection = e.key === 'ArrowUp' ? -1 : e.key === 'ArrowDown' ? 1 : 0\n\n if (arrowDirection) {\n // navigate through mentions\n e.preventDefault()\n let newIndex = mentionSelectedIndex + arrowDirection\n if (newIndex < 0) newIndex = shownMentionOptions.length - 1\n if (newIndex >= shownMentionOptions.length) newIndex = 0\n setMentionSelectedIndex(newIndex)\n }\n\n if (e.key === 'Enter') {\n // we handle this in the onChange\n }\n }\n\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n handleSubmit()\n }\n\n if (e.key === 'Escape') {\n handleClose()\n }\n }\n\n let quillMinHeight: number | undefined = isOpen ? initHeight + 41 : 44\n if (isEditing) quillMinHeight = undefined\n\n // QUILL CONFIG\n const modules = useMemo(\n () =>\n getModules({\n imageUploader: {\n projectName,\n onUpload: handleFileUploaded,\n onUploadProgress: handleFileProgress,\n },\n mentionTypeOptions,\n }),\n [projectName, setFiles, setFilesUploading],\n )\n\n const allFiles = [...annotations, ...(files || []), ...filesUploading].sort(\n (a, b) => a.order - b.order,\n )\n const compactGrid = allFiles.length > 3\n\n // disable version mentions for folders\n let mentionsError = null\n if (entities.length && entities[0].entityType === 'folder') {\n if (mention?.type === '@@') {\n mentionsError = 'Version mentions are disabled for folders'\n }\n }\n\n const getCommentPlaceholder = (isOpen?: boolean) => {\n if (disabled) {\n if (isGuest) return 'You do not have permission to comment.'\n return 'Commenting is disabled across multiple projects.'\n }\n\n if (isGuest || !isOpen) return 'Leave a comment'\n\n return 'Comment or mention with @user, @@version, @@@task...'\n }\n\n return (\n <>\n <Styled.AutoHeight\n className={clsx('comment-container', { isOpen, isEditing })}\n onDragOver={handleDragOver}\n onDragLeave={() => setIsDropping(false)}\n onDrop={handleDrop}\n onClick={() => setIsDropping(false)}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Styled.Comment\n className={clsx('block-shortcuts', {\n isOpen,\n isClosed: !isOpen || disabled,\n isEditing,\n isDropping,\n disabled,\n isLoading,\n isSubmitting,\n category: !!category && !isGuest,\n })}\n onKeyDown={handleKeyDown}\n onClick={handleOpenClick}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <Styled.Markdown ref={markdownRef}>\n {/* this is purely used to translate the markdown into html for Editor */}\n <InputMarkdownConvert typeOptions={mentionTypeOptions} initValue={initValue} />\n </Styled.Markdown>\n\n {/* file uploads */}\n {isOpen && (\n <FilesGrid\n files={allFiles}\n isCompact={compactGrid || isEditing}\n onRemove={handleFileRemove}\n projectName={projectName}\n onAnnotationClick={goToAnnotation}\n style={{\n borderBottom: '1px solid var(--md-sys-color-outline-variant)',\n height: '100%',\n }}\n isEditing\n pt={{\n file: {\n style: {\n height: isEditing ? 70 : undefined,\n },\n },\n }}\n />\n )}\n {isOpen && !disabled ? (\n <QuillListStyles ref={editorContainerRef}>\n {!isGuest && (\n <ActivityCategorySelect\n value={category}\n categories={categoryOptions}\n onChange={(c) => setCategory(c)}\n isCompact={isEditing}\n hasPowerpack={hasLicense}\n onPowerFeature={onPowerFeature}\n isHidden={isCategoryHidden(categoryOptions, { isGuest, isAdmin })}\n style={{\n position: isEditing ? 'relative' : 'absolute',\n left: 4,\n top: isEditing ? 0 : 4,\n }}\n />\n )}\n\n <ReactQuill\n theme=\"snow\"\n style={{ minHeight: quillMinHeight, maxHeight: 300 }}\n ref={editorRef}\n value={editorValue}\n onChange={handleChange}\n readOnly={!isOpen}\n placeholder={getCommentPlaceholder(true)}\n modules={modules}\n formats={quillFormats}\n />\n </QuillListStyles>\n ) : (\n <Styled.Placeholder>{getCommentPlaceholder()}</Styled.Placeholder>\n )}\n\n <Styled.Footer>\n {!isGuest && (\n <Styled.Buttons>\n {/* mention a user */}\n <Button\n icon=\"person\"\n variant=\"text\"\n onClick={() => handleMentionButton('@')}\n data-tooltip={'Mention user'}\n data-shortcut={'@'}\n />\n {/* mention a version */}\n <Button\n icon=\"layers\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@')}\n data-tooltip={'Mention version'}\n data-shortcut={'@@'}\n />\n {/* mention a task */}\n <Button\n icon=\"check_circle\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@@')}\n data-tooltip={'Mention task'}\n data-shortcut={'@@@'}\n />\n </Styled.Buttons>\n )}\n <Styled.Buttons style={{ marginLeft: 'auto' }}>\n {isEditing && (\n <Button variant=\"text\" onClick={handleClose}>\n Cancel\n </Button>\n )}\n <SaveButton\n label={isEditing ? 'Save' : 'Comment'}\n className=\"comment\"\n active={!!editorValue || !!files.length}\n onClick={handleSubmit}\n disabled={isLoading}\n />\n </Styled.Buttons>\n </Styled.Footer>\n\n <Styled.Dropzone className={clsx({ show: isDropping && isOpen })}>\n <Icon icon=\"cloud_upload\" />\n </Styled.Dropzone>\n </Styled.Comment>\n <CommentMentionSelect\n mention={mention}\n options={shownMentionOptions}\n onChange={handleSelectChange}\n onPrefixFilter={(prefix) => {\n setMentionPrefix(prefix)\n setMentionSelectedIndex(0)\n }}\n activePrefix={mentionPrefix ? mentionPrefix.replace(':', '') : undefined}\n types={mentionTypes}\n // @ts-ignore\n config={mentionTypeOptions[mention?.type]}\n noneFound={!shownMentionOptions.length && (mention?.search || mentionPrefix)}\n noneFoundAtAll={!shownMentionOptions.length && !mention?.search && !mentionPrefix}\n selectedIndex={mentionSelectedIndex}\n // @ts-ignore\n error={mentionsError}\n isGuest={isGuest}\n />\n </Styled.AutoHeight>\n </>\n )\n}\n\nexport default CommentInput\n"],"names":["Delta","Quill","mentionTypes","mentionTypeOptions","CommentInput","initValue","initFiles","initCategory","data","onSubmit","isEditing","disabled","isLoading","isOpen","onOpen","onClose","projectName","entities","projectInfo","scope","feedFilter","mentionSuggestionsData","categories","isGuest","useFeedContext","hasLicense","onPowerFeature","user","useDetailsPanelContext","isAdmin","project","useProjectContext","mentionUsers","mentionTeams","mentionVersions","mentionTasks","initHeight","setInitHeight","useState","editorValue","setEditorValue","files","setFiles","filesUploading","setFilesUploading","isDropping","setIsDropping","isSubmitting","setIsSubmitting","annotations","removeAnnotation","goToAnnotation","useAnnotationsSync","mention","setMention","mentionSelectedIndex","setMentionSelectedIndex","mentionPrefix","setMentionPrefix","clearMention","category","setCategory","categoryOptions","cat","categoryData","blendedCategoryColor","useBlendedCategoryColor","editorRef","useRef","editorContainerRef","markdownRef","useInitialValue","useSetCursorEnd","useMentionLink","useEffect","a","b","mentionSearchWithPrefix","mentionOptions","useMemo","getMentionOptions","getMentionUsers","getMentionVersions","getMentionTasks","shownMentionOptions","newSelection","setNewSelection","handleSelectMention","selectedOption","quill","typePrefix","search","mentionLabel","type","href","startIndex","endIndex","handleSelectChange","option","handleChange","content","delta","_","editor","currentCharacter","tabOrEnter","isDelete","mentionIndex","op","retain","mentionMatch","chars","isMatch","i","char","indexInDelta","distanceMentionToRetain","mentionFull","mentionSearch","currentSelection","lineBlock","lastMentionOp","mentionLength","addTextToEditor","typeWithDelay","handleMentionButton","length","start","handleOpenClick","handleClose","handleFileUploaded","file","fileName","parseFilename","newFile","prev","uploading","handleFileRemove","id","name","isUnsavedAnnotation","handleFileProgress","progress","uploadProgress","handleDrop","handleFileDrop","handleDragOver","uploadAnnotations","useAnnotationsUpload","handleSubmit","annotationFiles","annotationMetadata","metadata","annotationsData","markdown","convertToMarkdown","markdownParsed","parseImages","uploadedFiles","newData","error","toast","handleKeyDown","arrowDirection","newIndex","quillMinHeight","modules","getModules","allFiles","compactGrid","mentionsError","getCommentPlaceholder","jsx","Fragment","jsxs","Styled.AutoHeight","clsx","Styled.Comment","Styled.Markdown","InputMarkdownConvert","FilesGrid","QuillListStyles","ActivityCategorySelect","c","isCategoryHidden","ReactQuill","quillFormats","Styled.Placeholder","Styled.Footer","Styled.Buttons","Button","SaveButton","Styled.Dropzone","Icon","CommentMentionSelect","prefix"],"mappings":"0/iBA0CA,IAAIA,GAAQC,GAAAA,MAAM,OAAO,OAAO,EAEhC,MAAMC,EAAe,CAAC,IAAK,KAAM,KAAK,EACzBC,EAAqB,CAChC,MAAO,CACL,GAAI,MAAA,EAEN,KAAM,CACJ,GAAI,SAAA,EAEN,IAAK,CACH,GAAI,OACJ,SAAU,EAAA,CAEd,EAgBMC,GAAsC,CAAC,CAC3C,UAAAC,EACA,UAAAC,GAAY,CAAA,EACZ,aAAAC,GAAe,KACf,KAAAC,EAAO,CAAA,EACP,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,GACA,OAAAC,EACA,OAAAC,GACA,QAAAC,EACF,IAAM,CACJ,KAAM,CACJ,YAAAC,EACA,SAAAC,EACA,YAAAC,GACA,MAAAC,GACA,WAAAC,GACA,uBAAAC,GACA,WAAAC,GACA,QAAAC,CAAA,EACEC,kBAAA,EAEE,CAAE,WAAAC,GAAY,eAAAC,GAAgB,KAAAC,EAAA,EAASC,GAAAA,uBAAA,EACvCC,GAAUF,IAAM,MAAM,QAEtBG,GAAUC,GAAAA,kBAAA,EAEV,CACJ,MAAOC,GACP,MAAOC,GACP,SAAUC,GACV,MAAOC,EAAA,EACLd,IAA0B,CAAA,EAExB,CAACe,GAAYC,EAAa,EAAIC,EAAAA,SAAS,EAAE,EACzC,CAACC,EAAaC,CAAc,EAAIF,EAAAA,SAAS,EAAE,EAE3C,CAACG,EAAOC,CAAQ,EAAIJ,EAAAA,SAAShC,EAAS,EACtC,CAACqC,EAAgBC,CAAiB,EAAIN,EAAAA,SAAS,CAAA,CAAE,EACjD,CAACO,GAAYC,CAAa,EAAIR,EAAAA,SAAS,EAAK,EAC5C,CAACS,GAAcC,EAAe,EAAIV,EAAAA,SAAS,EAAK,EAEhD,CAAE,YAAAW,EAAa,iBAAAC,GAAkB,eAAAC,EAAA,EAAmBC,GAAAA,QAAmB,CAC3E,SAAUnC,EAAS,CAAC,GAAG,GACvB,eAAA0B,CAAA,CACD,EAGK,CAACU,EAASC,CAAU,EAAIhB,EAAAA,SAAqB,IAAI,EACjD,CAACiB,EAAsBC,CAAuB,EAAIlB,EAAAA,SAAS,CAAC,EAE5D,CAACmB,EAAeC,EAAgB,EAAIpB,EAAAA,SAAS,EAAE,EAE/CqB,EAAe,IAAM,CACzBL,EAAW,IAAI,EACfE,EAAwB,CAAC,EACzBE,GAAiB,EAAE,CACrB,EAEM,CAACE,EAAUC,EAAW,EAAIvB,EAAAA,SAAwB/B,EAAY,EAC9DuD,GAAkBxC,GAAW,OAAQyC,GAAQA,EAAI,aAAe,EAAE,EAClEC,GAAe1C,GAAW,KAAMyC,GAAQA,EAAI,OAASH,CAAQ,EAE7DK,GAAuBC,GAAAA,wBAAwBF,IAAc,KAAK,EAElEG,EAAYC,EAAAA,OAAY,IAAI,EAC5BC,GAAqBD,EAAAA,OAAuB,IAAI,EAEhDE,GAAcF,EAAAA,OAAuB,IAAI,EAG/CG,GAAgB,CACd,YAAAD,GACA,UAAAjE,EACA,eAAAmC,EACA,cAAAH,GACA,OAAAxB,EACA,OAAQO,EAAA,CACT,EAGDoD,GAAgB,CAAE,WAAApC,GAAY,UAAA+B,EAAW,UAAAzD,CAAA,CAAW,EAEpD+D,GAAe,CAAE,YAAAzD,EAAa,EAG9B0D,EAAAA,UAAU,IAAM,CACd,GAAI7D,EAAQ,CAGV,GAFAsD,EAAU,SAAS,UAAA,GAAa,OAAA,EAE5BlB,EAAY,OAAS,GAAKR,EAAM,SAAW,EAC7C,OAGF0B,EAAU,SAAS,MAAA,CACrB,CAGF,EAAG,CAACtD,EAAQsD,CAAS,CAAC,EAEtBjE,EAAa,KAAK,CAACyE,EAAGC,IAAMA,EAAE,OAASD,EAAE,MAAM,EAG/C,MAAME,GAA0BpB,GAAiBJ,GAAS,QAAU,IAE9DyB,GAAiBC,EAAAA,QACrB,IACEC,GAAAA,QACE3B,GAAS,KACT,CACE,IAAK,IAAM4B,GAAgBjD,GAAcC,EAAY,EACrD,KAAM,IAAMiD,GAAmBhD,GAAiBJ,EAAO,EACvD,MAAO,IAAMqD,GAAgBhD,GAAcjB,GAAY,SAAS,CAAA,EAElE2D,IAA2B,MAAA,EAE/B,CAAC1C,GAAcD,GAAiBF,GAAcC,GAAcoB,GAAS,KAAMwB,EAAuB,CAAA,EAI9FO,EAAsBN,GAAe,MAAM,EAAG,CAAC,EAG/C,CAACO,EAAcC,EAAe,EAAIhD,WAAA,EAExCoC,EAAAA,UAAU,IAAM,CACVW,IACFC,GAAgB,IAAI,EAENnB,EAAU,QAAQ,UAAA,EAC1B,aAAakB,CAAY,EAEnC,EAAG,CAACA,CAAY,CAAC,EAEjB,MAAME,GAAuBC,GAAwB,CAEnD,MAAMC,EAAQtB,EAAU,QAAQ,UAAA,EAE1BuB,EAAarC,EAAQ,KACrBsC,EAASD,GAAcrC,EAAQ,QAAU,IACzCuC,EAAeF,EAAaF,EAAe,MAE3CK,EAAO1F,EAAmBuF,CAAU,EAGpCI,EAAO,GADGN,EAAe,MAAQK,GAAM,EACtB,IAAIL,EAAe,EAAE,GAKtCO,GAFYN,EAAM,aAAa,EAAI,GACP,OAAS,GACPE,EAAO,OAG3CF,EAAM,WAAWM,EAAYJ,EAAO,MAAM,EAG1CF,EAAM,WAAWM,EAAYH,EAAc,UAAWE,CAAI,EAE1D,MAAME,EAAWD,EAAaH,EAAa,OAG3CH,EAAM,eAAe,IAAIzF,GAAA,EAAQ,OAAOgG,CAAQ,EAAE,OAAO,GAAG,CAAC,EAG7DP,EAAM,eAAe,IAAIzF,KAAQ,OAAOgG,EAAW,CAAC,EAAE,OAAO,CAAC,CAAC,EAG/DV,GAAgBU,EAAW,CAAC,EAG5BrC,EAAA,CACF,EAEMsC,GAAsBC,GAAgB,CAC1CX,GAAoBW,CAAM,CAC5B,EAEMC,GAAe,CAACC,EAAiBC,EAAYC,EAAQC,IAAgB,CACzE,IAAIC,EACDH,EAAM,IAAI,CAAC,GAAKA,EAAM,IAAI,CAAC,EAAE,QAAYA,EAAM,IAAI,CAAC,GAAKA,EAAM,IAAI,CAAC,EAAE,OAEzE,MAAMI,EAAaD,IAAqB;AAAA,GAAQA,IAAqB,IAE/DhB,EAAiBV,GAAevB,CAAoB,EAE1D,GAAIF,GAAWoD,GAAcjB,GAAkB,CAACjE,EAAS,CAEvC8E,EAAM,IAAI,CAAC,GAAKA,EAAM,IAAI,CAAC,EAAE,OAI7Cd,GAAoBC,CAAsB,EAE1C,MACF,CAEAhD,EAAe4D,CAAO,EAEtB,MAAMM,EAAWL,EAAM,IAAI,SAAW,GAAK,CAAC,CAACA,EAAM,IAAI,CAAC,EAAE,OAQ1D,GANI,CAACG,GAAoBE,IACvBF,EAAmBD,EAAO,QAAQF,EAAM,IAAI,CAAC,EAAE,OAAS,EAAG,CAAC,GAG5CnG,EAAa,SAASsG,CAAgB,EAEzC,CACb,MAAMG,EAAeN,EAAM,IAAI,UAAWO,GAAY,WAAYA,GAAM,WAAYA,CAAE,EAChFvD,EAAUmD,EAChB,IAAIK,EAASF,IAAiB,EAAI,EAAIN,EAAM,IAAIM,EAAe,CAAC,EAAE,OAC9DD,MAAmBG,EAAS,GAIhC,IAAIC,EAAe,KAGnB,UAAWC,KAAS7G,EAAc,CAChC,IAAI8G,EAAU,GAEd,GAAID,EAAM,SAAS1D,CAAO,EAExB,QAAS4D,EAAIF,EAAM,OAAS,EAAGE,GAAK,EAAGA,IAAK,CAE1C,GAAIA,IAAM,EAAG,SACb,MAAMC,GAAOH,EAAME,EAAI,CAAC,EAClBE,GAAeN,GAAUE,EAAM,OAASE,GAE9C,GADyBV,EAAO,QAAQY,GAAc,CAAC,IAC9BD,GAAM,CAC7BF,EAAU,GACV,KACF,CACF,MAEAA,EAAU,GAGZ,GAAIA,EAAS,CAEXF,EAAeC,EACf,KACF,CACF,CAEID,EACFxD,EAAW,CACT,KAAMwD,EACN,OAAAD,CAAA,CACD,EAEDlD,EAAA,CAEJ,SAGMN,EAAS,CACX,MAAMwD,EAASR,EAAM,IAAI,CAAC,EAAE,OAE5B,GAAIG,IAAqB,KAAO,CAACK,EAAQ,CACvClD,EAAA,EACA,MACF,CAEA,IAAIyD,EAA0BP,EAASxD,EAAQ,OAC1CqD,GAAUU,IACf,MAAMC,EAAcd,EAAO,QAAQlD,EAAQ,OAAQ+D,CAAuB,EACpEE,EAAgBD,EAAY,QAAQhE,EAAQ,KAAK,MAAM,EAAE,EAAG,EAAE,EAEhEgE,EAAY,SAAS,GAAG,EAC1B1D,EAAA,EAEAL,EAAW,CACT,GAAGD,EACH,OAAQiE,GAAe,YAAA,CAAY,CACpC,CAEL,SAAWZ,EAAU,CAEnB,MAAMjB,EAAQtB,EAAU,QAAQ,UAAA,EAC1BoD,EAAmB9B,EAAM,aAAa,EAAK,EAEjD,GADsBA,EAAM,UAAU8B,GAAkB,MAAOA,GAAkB,MAAM,EACrE,QAAS,CACzB,KAAM,CAACC,CAAS,EAAI/B,EAAM,QAAQ8B,EAAiB,MAAQ,CAAC,GAAK,CAAA,EAE3DE,GADMD,GAAW,OAAO,OAAO,KAAO,CAAA,GAClB,UAAU,KAAMZ,GAAYA,EAAG,YAAY,OAAO,EAC5E,GAAIa,EAAe,CACjB,MAAMC,EAAgBD,EAAc,OAAO,OAC3ChC,EAAM,WAAW8B,EAAiB,MAAQG,EAAeA,CAAa,CACxE,CACF,CACF,CAEJ,EAEMC,GAAmB9B,GAAiB,CAExC,MAAMJ,EAAQtB,EAAU,QAAQ,UAAA,EAEhC,IAAI0C,EAASpB,EAAM,aAAa,EAAI,GAAG,OAAS,EAGhD,MAAMe,EAAmBf,EAAM,QAAQoB,EAAS,EAAG,CAAC,EAGnCL,IAAqB,KAAOA,IAE3Cf,EAAM,WAAWoB,EAAQ,GAAG,EAC5BA,KAIFe,gBAAcnC,EAAOoB,EAAQhB,CAAI,CACnC,EAEMgC,EAAuBhC,GAAiB,CAE5C,GAAIxC,EAAS,CACX,KAAM,CAAE,KAAAwC,EAAM,OAAAgB,EAAQ,OAAAlB,EAAS,IAAOtC,EAEhCoC,EAAQtB,EAAU,QAAQ,UAAA,EAC1B2D,EAASjC,EAAK,OAASF,EAAO,OAC9BoC,EAAQlB,EAAShB,EAAK,OAAS,EAErCJ,EAAM,WAAWsC,EAAOD,CAAM,CAChC,CAEAH,GAAgB9B,CAAI,CACtB,EAEMmC,GAAkB,IAAM,CACxBnH,GAAUF,GAEdG,IAAUA,GAAA,CACZ,EAEMmH,GAAc,IAAM,EAET9D,EAAU,QAAQ,UAAA,EACb,QAAA,EACX,OAAS,GAAKzD,IACrB8B,EAAe,EAAE,EAInBzB,IAAWA,GAAA,CACb,EAEMmH,EAAqB,CAAC,CAAE,KAAAC,EAAM,KAAA3H,KAAgB,CAClD,MAAM4H,EAAWC,EAAAA,cAAcF,EAAK,IAAI,EAClCG,EAAU,CACd,GAAI9H,EAAK,GACT,KAAM4H,EACN,KAAMD,EAAK,KACX,KAAMA,EAAK,KACX,MAAO1F,EAAM,MAAA,EAGf,OAAAC,EAAU6F,GAAS,CAAC,GAAGA,EAAMD,CAAO,CAAC,EAErC1F,EAAmB2F,GACjBA,EAAK,OAAQC,GAAmBH,gBAAcG,EAAU,IAAI,IAAMJ,CAAQ,CAAA,EAGrEE,CACT,EAEMG,GAAmB,CAACC,EAAYC,EAAcC,IAAiC,CAC/EA,EAEF1F,KAAmBwF,CAAE,GAGrBhG,EAAU6F,GAASA,EAAK,OAAQJ,GAASA,EAAK,KAAOO,CAAE,CAAC,EAExD9F,EAAmB2F,GACVA,EAAK,OAAQJ,GAAcE,EAAAA,cAAcF,EAAK,IAAI,IAAME,gBAAcM,CAAI,CAAC,CACnF,EAEL,EAEME,GAAqB,CAAC,EAAQV,IAAc,CAChD,MAAMW,EAAW,KAAK,MAAO,EAAE,OAAS,IAAO,EAAE,KAAK,EACtD,GAAIA,IAAa,IAAK,CACpB,MAAMV,EAAWC,EAAAA,cAAcF,EAAK,IAAI,EAClCY,EAAiB,CACrB,KAAMX,EACN,SAAAU,EACA,KAAMX,EAAK,KACX,MAAO1F,EAAM,OAASE,EAAe,MAAA,EAIvCC,EAAmB2F,GAGV,CAAC,GADYA,EAAK,OAAQI,GAAcN,EAAAA,cAAcM,EAAK,IAAI,IAAMP,CAAQ,EAC5DW,CAAc,CACvC,CACH,CACF,EAGMC,GAAc,GAAuC,CACzDlG,EAAc,EAAK,EAEnBmG,EAAAA,eAAe,EAAGjI,EAAa6H,GAAoBX,CAAkB,CACvE,EAEMgB,GAAkB,GAAuC,CAC7D,EAAE,eAAA,EACF,EAAE,gBAAA,EACFpG,EAAc,EAAI,CACpB,EAEMqG,GAAoBC,GAAqB,CAC7C,YAAApI,EACA,UAAWkH,CAAA,CACZ,EAEKmB,GAAe,SAAY,CAC/B,GAAI,CACFrG,GAAgB,EAAI,EAGpB,IAAIsG,EAAkB,CAAA,EAClBC,EACJ,GAAItG,EAAY,OAAQ,CACtB,KAAM,CAAE,MAAAR,EAAO,SAAA+G,GAAa,MAAML,GAAkBlG,CAAW,EAC/DqG,EAAkB7G,EAElB,KAAM,CAAE,YAAagH,EAAkB,CAAA,CAAC,EAAMjJ,GAAQ,CAAA,EAEtD+I,EAAqB,CAAC,GAAGE,EAAiB,GAAGD,CAAQ,CACvD,CAGA,KAAM,CAACE,CAAQ,EAAIC,GAAAA,kBAAkBpH,CAAW,EAG1CqH,EAAiBC,EAAAA,YAAYH,CAAQ,EAErCI,EAAgB,CAAC,GAAGrH,EAAO,GAAG6G,CAAe,EAE7CS,EAAU,CACd,GAAGvJ,EACH,YAAa+I,EACb,SAAUhI,EAAU,KAAOqC,CAAA,EAG7B,IAAKgG,GAAkBE,EAAc,SAAWrJ,EAC9C,GAAI,CACF,MAAMA,EAASmJ,EAAgBE,EAAeC,CAAO,EAErDvH,EAAe,EAAE,EACjBE,EAAS,CAAA,CAAE,CACb,MAAgB,CAEd,MACF,CAEJ,OAASsH,EAAO,CACd,QAAQ,MAAMA,CAAK,EACnBC,GAAAA,MAAM,MAAM,sBAAsB,CACpC,QAAA,CACEjH,GAAgB,EAAK,CACvB,CACF,EAEMkH,GAAiB,GAAwC,CAC7D,GAAI7G,EAAS,CAEX,GAAI,EAAE,MAAQ,SAAU,CACtBM,EAAA,EACA,MACF,CAGIN,GAAW,EAAE,IAIjB,MAAM8G,EAAiB,EAAE,MAAQ,UAAY,GAAK,EAAE,MAAQ,YAAc,EAAI,EAE9E,GAAIA,EAAgB,CAElB,EAAE,eAAA,EACF,IAAIC,EAAW7G,EAAuB4G,EAClCC,EAAW,IAAGA,EAAWhF,EAAoB,OAAS,GACtDgF,GAAYhF,EAAoB,SAAQgF,EAAW,GACvD5G,EAAwB4G,CAAQ,CAClC,CAEI,EAAE,GAGR,CAEI,EAAE,MAAQ,UAAY,EAAE,SAAW,EAAE,UACvCf,GAAA,EAGE,EAAE,MAAQ,UACZpB,GAAA,CAEJ,EAEA,IAAIoC,GAAqCxJ,EAASuB,GAAa,GAAK,GAChE1B,IAAW2J,GAAiB,QAGhC,MAAMC,GAAUvF,EAAAA,QACd,IACEwF,cAAW,CACT,cAAe,CACb,YAAAvJ,EACA,SAAUkH,EACV,iBAAkBW,EAAA,EAEpB,mBAAA1I,CAAA,CACD,EACH,CAACa,EAAa0B,EAAUE,CAAiB,CAAA,EAGrC4H,GAAW,CAAC,GAAGvH,EAAa,GAAIR,GAAS,GAAK,GAAGE,CAAc,EAAE,KACrE,CAACgC,EAAGC,IAAMD,EAAE,MAAQC,EAAE,KAAA,EAElB6F,GAAcD,GAAS,OAAS,EAGtC,IAAIE,GAAgB,KAChBzJ,EAAS,QAAUA,EAAS,CAAC,EAAE,aAAe,UAC5CoC,GAAS,OAAS,OACpBqH,GAAgB,6CAIpB,MAAMC,GAAyB9J,GACzBF,EACEY,EAAgB,yCACb,mDAGLA,GAAW,CAACV,EAAe,kBAExB,uDAGT,OACE+J,wBAAAC,EAAAA,kBAAAA,SAAA,CACE,SAAAC,EAAAA,kBAAAA,KAACC,EAAAA,WAAA,CACC,UAAWC,EAAK,oBAAqB,CAAE,OAAAnK,EAAQ,UAAAH,EAAW,EAC1D,WAAYwI,GACZ,YAAa,IAAMpG,EAAc,EAAK,EACtC,OAAQkG,GACR,QAAS,IAAMlG,EAAc,EAAK,EAClC,UAAY,GAAM,EAAE,gBAAA,EAEpB,SAAA,CAAAgI,EAAAA,kBAAAA,KAACG,EAAAA,QAAA,CACC,UAAWD,EAAK,kBAAmB,CACjC,OAAAnK,EACA,SAAU,CAACA,GAAUF,EACrB,UAAAD,EACA,WAAAmC,GACA,SAAAlC,EACA,UAAAC,GACA,aAAAmC,GACA,SAAU,CAAC,CAACa,GAAY,CAACrC,CAAA,CAC1B,EACD,UAAW2I,GACX,QAASlC,GACT,iBAAkBhE,IAAc,MAChC,kBAAmBC,GAAqB,QACxC,mBAAoBA,GAAqB,UAEzC,SAAA,CAAA2G,EAAAA,kBAAAA,IAACM,EAAAA,SAAA,CAAgB,IAAK5G,GAEpB,iCAAC6G,GAAAA,QAAA,CAAqB,YAAahL,EAAoB,UAAAE,CAAA,CAAsB,CAAA,CAC/E,EAGCQ,GACC+J,EAAAA,kBAAAA,IAACQ,GAAA,CACC,MAAOZ,GACP,UAAWC,IAAe/J,EAC1B,SAAU+H,GACV,YAAAzH,EACA,kBAAmBmC,GACnB,MAAO,CACL,aAAc,gDACd,OAAQ,MAAA,EAEV,UAAS,GACT,GAAI,CACF,KAAM,CACJ,MAAO,CACL,OAAQzC,EAAY,GAAK,MAAA,CAC3B,CACF,CACF,CAAA,EAGHG,GAAU,CAACF,EACVmK,EAAAA,kBAAAA,KAACO,GAAAA,gBAAA,CAAgB,IAAKhH,GACnB,SAAA,CAAA,CAAC9C,GACAqJ,EAAAA,kBAAAA,IAACU,GAAAA,uBAAA,CACC,MAAO1H,EACP,WAAYE,GACZ,SAAWyH,GAAM1H,GAAY0H,CAAC,EAC9B,UAAW7K,EACX,aAAce,GACd,eAAAC,GACA,SAAU8J,GAAAA,iBAAiB1H,GAAiB,CAAE,QAAAvC,EAAS,QAAAM,GAAS,EAChE,MAAO,CACL,SAAUnB,EAAY,WAAa,WACnC,KAAM,EACN,IAAKA,EAAY,EAAI,CAAA,CACvB,CAAA,EAIJkK,EAAAA,kBAAAA,IAACa,GAAA,CACC,MAAM,OACN,MAAO,CAAE,UAAWpB,GAAgB,UAAW,GAAA,EAC/C,IAAKlG,EACL,MAAO5B,EACP,SAAU4D,GACV,SAAU,CAACtF,EACX,YAAa8J,GAAsB,EAAI,EACvC,QAAAL,GACA,QAASoB,GAAAA,YAAA,CAAA,CACX,CAAA,CACF,EAEAd,EAAAA,kBAAAA,IAACe,EAAAA,YAAA,CAAoB,cAAwB,EAG/Cb,yBAACc,EAAAA,OAAA,CACE,SAAA,CAAA,CAACrK,GACAuJ,EAAAA,kBAAAA,KAACe,EAAAA,QAAA,CAEC,SAAA,CAAAjB,EAAAA,kBAAAA,IAACkB,EAAAA,OAAA,CACC,KAAK,SACL,QAAQ,OACR,QAAS,IAAMjE,EAAoB,GAAG,EACtC,eAAc,eACd,gBAAe,GAAA,CAAA,EAGjB+C,EAAAA,kBAAAA,IAACkB,EAAAA,OAAA,CACC,KAAK,SACL,QAAQ,OACR,QAAS,IAAMjE,EAAoB,IAAI,EACvC,eAAc,kBACd,gBAAe,IAAA,CAAA,EAGjB+C,EAAAA,kBAAAA,IAACkB,EAAAA,OAAA,CACC,KAAK,eACL,QAAQ,OACR,QAAS,IAAMjE,EAAoB,KAAK,EACxC,eAAc,eACd,gBAAe,KAAA,CAAA,CACjB,EACF,EAEFiD,EAAAA,kBAAAA,KAACe,EAAAA,QAAA,CAAe,MAAO,CAAE,WAAY,QAClC,SAAA,CAAAnL,2BACEoL,EAAAA,OAAA,CAAO,QAAQ,OAAO,QAAS7D,GAAa,SAAA,SAE7C,EAEF2C,EAAAA,kBAAAA,IAACmB,EAAAA,WAAA,CACC,MAAOrL,EAAY,OAAS,UAC5B,UAAU,UACV,OAAQ,CAAC,CAAC6B,GAAe,CAAC,CAACE,EAAM,OACjC,QAAS4G,GACT,SAAUzI,EAAA,CAAA,CACZ,CAAA,CACF,CAAA,EACF,0BAECoL,EAAAA,SAAA,CAAgB,UAAWhB,EAAK,CAAE,KAAMnI,IAAchC,CAAA,CAAQ,EAC7D,SAAA+J,EAAAA,kBAAAA,IAACqB,EAAAA,KAAA,CAAK,KAAK,eAAe,CAAA,CAC5B,CAAA,CAAA,CAAA,EAEFrB,EAAAA,kBAAAA,IAACsB,GAAA,CACC,QAAA7I,EACA,QAAS+B,EACT,SAAUa,GACV,eAAiBkG,GAAW,CAC1BzI,GAAiByI,CAAM,EACvB3I,EAAwB,CAAC,CAC3B,EACA,aAAcC,EAAgBA,EAAc,QAAQ,IAAK,EAAE,EAAI,OAC/D,MAAOvD,EAEP,OAAQC,EAAmBkD,GAAS,IAAI,EACxC,UAAW,CAAC+B,EAAoB,SAAW/B,GAAS,QAAUI,GAC9D,eAAgB,CAAC2B,EAAoB,QAAU,CAAC/B,GAAS,QAAU,CAACI,EACpE,cAAeF,EAEf,MAAOmH,GACP,QAAAnJ,CAAA,CAAA,CACF,CAAA,CAAA,EAEJ,CAEJ"}
|
|
1
|
+
{"version":3,"file":"CommentInput.cjs.js","sources":["../../../../../../../src/containers/Feed/components/CommentInput/CommentInput.tsx"],"sourcesContent":["// React and related hooks\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\n// Third-party libraries\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport ReactQuill, { Quill } from 'react-quill-ayon'\n\n// Components\nimport { Button, Icon, SaveButton } from '@ynput/ayon-react-components'\nimport CommentMentionSelect from '../CommentMentionSelect/CommentMentionSelect'\nimport InputMarkdownConvert from './InputMarkdownConvert'\nimport FilesGrid from '../FilesGrid'\n\n// Styled components\nimport * as Styled from './CommentInput.styled'\nimport { QuillListStyles } from '../../../../components/QuillListStyles'\n\n// Helpers and utilities\nimport getMentionOptions from '../../mentionHelpers/getMentionOptions'\nimport getMentionUsers from '../../mentionHelpers/getMentionUsers'\nimport getMentionTasks from '../../mentionHelpers/getMentionTasks'\nimport getMentionVersions from '../../mentionHelpers/getMentionVersions'\nimport { convertToMarkdown } from './quillToMarkdown'\nimport { handleFileDrop, parseImages, typeWithDelay } from './helpers'\nimport { getModules, quillFormats } from './modules'\n\n// Hooks\nimport useInitialValue from './hooks/useInitialValue'\nimport useSetCursorEnd from './hooks/useSetCursorEnd'\nimport useMentionLink from './hooks/useMentionLink'\nimport useAnnotationsSync from './hooks/useAnnotationsSync'\nimport { useBlendedCategoryColor } from './hooks/useBlendedCategoryColor'\n\n// State management\nimport useAnnotationsUpload from './hooks/useAnnotationsUpload'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { ActivityCategorySelect, isCategoryHidden, SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useProjectContext } from '@shared/context'\nimport { parseFilename } from '@shared/components'\n\nvar Delta = Quill.import('delta')\n\nconst mentionTypes = ['@', '@@', '@@@']\nexport const mentionTypeOptions = {\n '@@@': {\n id: 'task',\n },\n '@@': {\n id: 'version',\n },\n '@': {\n id: 'user',\n isCircle: true,\n },\n}\n\ninterface CommentInputProps {\n initValue: string | null\n initFiles?: any[]\n initCategory?: string | null\n data?: any\n onSubmit: (markdown: string, files: any[], data?: any) => Promise<void>\n isEditing?: boolean\n disabled?: boolean\n isLoading?: boolean\n isOpen: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CommentInput: FC<CommentInputProps> = ({\n initValue,\n initFiles = [],\n initCategory = null,\n data = {},\n onSubmit,\n isEditing,\n disabled,\n isLoading,\n isOpen,\n onOpen,\n onClose,\n}) => {\n const {\n projectName,\n entities,\n projectInfo,\n scope,\n feedFilter,\n mentionSuggestionsData,\n categories,\n isGuest,\n } = useFeedContext()\n\n const { hasLicense, onPowerFeature, user } = useDetailsPanelContext()\n const isAdmin = user?.data?.isAdmin\n\n const project = useProjectContext()\n\n const {\n users: mentionUsers,\n teams: mentionTeams,\n versions: mentionVersions,\n tasks: mentionTasks,\n } = mentionSuggestionsData || {}\n\n const [initHeight, setInitHeight] = useState(88)\n const [editorValue, setEditorValue] = useState('')\n // file uploads\n const [files, setFiles] = useState(initFiles)\n const [filesUploading, setFilesUploading] = useState([])\n const [isDropping, setIsDropping] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const { annotations, removeAnnotation, goToAnnotation } = useAnnotationsSync({\n entityId: entities[0]?.id,\n filesUploading,\n })\n\n // MENTION STATES\n const [mention, setMention] = useState<null | any>(null)\n const [mentionSelectedIndex, setMentionSelectedIndex] = useState(0)\n // Prefix filter for mentions (e.g. 'team:' or 'user:')\n const [mentionPrefix, setMentionPrefix] = useState('')\n\n const clearMention = () => {\n setMention(null)\n setMentionSelectedIndex(0)\n setMentionPrefix('')\n }\n // CATEGORY STATE\n const [category, setCategory] = useState<null | string>(initCategory)\n const categoryOptions = categories.filter((cat) => cat.accessLevel >= 20)\n const categoryData = categories.find((cat) => cat.name === category)\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n // REFS\n const editorRef = useRef<any>(null)\n const editorContainerRef = useRef<HTMLDivElement>(null)\n\n const markdownRef = useRef<HTMLDivElement>(null)\n\n // if there is an initial value, set it so the editor is prefilled\n useInitialValue({\n markdownRef,\n initValue,\n setEditorValue,\n setInitHeight,\n isOpen: isOpen,\n filter: feedFilter,\n })\n\n // When editing, set selection to the end of the editor\n useSetCursorEnd({ initHeight, editorRef, isEditing })\n // create a new quill format for mentions and registers it\n useMentionLink({ projectName })\n\n // focus on editor when opened\n useEffect(() => {\n if (isOpen) {\n editorRef.current?.getEditor()?.enable()\n // block autofocus if opened from an annotation\n if (annotations.length > 0 && files.length === 0) {\n return\n }\n\n editorRef.current?.focus()\n }\n // We don't set annotations or files as useEffect dependencies, because we don't want to focus\n // the input if it's already open but annotations change (e.g. are removed).\n }, [isOpen, editorRef])\n\n mentionTypes.sort((a, b) => b.length - a.length)\n\n // Combine prefix filter with typed search for options filtering\n const mentionSearchWithPrefix = mentionPrefix + (mention?.search || '')\n\n const mentionOptions = useMemo(\n () =>\n getMentionOptions(\n mention?.type,\n {\n '@': () => getMentionUsers(mentionUsers, mentionTeams),\n '@@': () => getMentionVersions(mentionVersions, project),\n '@@@': () => getMentionTasks(mentionTasks, projectInfo.taskTypes),\n },\n mentionSearchWithPrefix || undefined,\n ),\n [mentionTasks, mentionVersions, mentionUsers, mentionTeams, mention?.type, mentionSearchWithPrefix],\n )\n\n // show first 5 and filter itself out\n const shownMentionOptions = mentionOptions.slice(0, 5)\n\n // triggered when a mention is selected\n const [newSelection, setNewSelection] = useState<null | number>()\n\n useEffect(() => {\n if (newSelection) {\n setNewSelection(null)\n // now we set selection to the end of the mention\n const quill = editorRef.current.getEditor()\n quill.setSelection(newSelection)\n }\n }, [newSelection])\n\n const handleSelectMention = (selectedOption: any) => {\n // get option text\n const quill = editorRef.current.getEditor()\n\n const typePrefix = mention.type // the type of mention: @, @@, @@@\n const search = typePrefix + (mention.search || '') // the full search string: @Tim\n const mentionLabel = typePrefix + selectedOption.label // the label of the mention: @Tim Bailey\n // @ts-expect-error\n const type = mentionTypeOptions[typePrefix] // the type of mention: user, version, task\n // Use the option's own type (e.g. 'team') if available, otherwise fall back to the mention type config\n const refType = selectedOption.type || type?.id\n const href = `${refType}:${selectedOption.id}` // the href of the mention: user:user.123 or team:Thunder boys\n\n // get selection delta\n const selection = quill.getSelection(true)\n const selectionIndex = selection?.index || 0\n const startIndex = selectionIndex - search.length // the start index of the search\n\n // first delete the search string\n quill.deleteText(startIndex, search.length)\n\n // insert embed link\n quill.insertText(startIndex, mentionLabel, 'mention', href)\n\n const endIndex = startIndex + mentionLabel.length\n\n // insert a space after the mention\n quill.updateContents(new Delta().retain(endIndex).insert(' '))\n\n // remove single \\n after mention\n quill.updateContents(new Delta().retain(endIndex + 1).delete(1))\n\n // set selection to the end of the mention + 1\n setNewSelection(endIndex + 1)\n\n // reset mention state\n clearMention()\n }\n\n const handleSelectChange = (option: any) => {\n handleSelectMention(option)\n }\n\n const handleChange = (content: string, delta: any, _: any, editor: any) => {\n let currentCharacter =\n (delta.ops[0] && delta.ops[0].insert) || (delta.ops[1] && delta.ops[1].insert)\n\n const tabOrEnter = currentCharacter === '\\n' || currentCharacter === '\\t'\n // find the first option\n const selectedOption = mentionOptions[mentionSelectedIndex]\n\n if (mention && tabOrEnter && selectedOption && !isGuest) {\n // get option text\n const retain = (delta.ops[0] && delta.ops[0].retain) || 0\n // prevent default\n\n // @ts-ignore\n handleSelectMention(selectedOption, retain)\n\n return\n }\n\n setEditorValue(content)\n\n const isDelete = delta.ops.length === 2 && !!delta.ops[1].delete\n\n if (!currentCharacter && isDelete) {\n currentCharacter = editor.getText(delta.ops[0].retain - 1, 1)\n }\n\n const isMention = mentionTypes.includes(currentCharacter)\n\n if (isMention) {\n const mentionIndex = delta.ops.findIndex((op: any) => 'insert' in op || 'delete' in op)\n const mention = currentCharacter\n let retain = mentionIndex === 0 ? 0 : delta.ops[mentionIndex - 1].retain\n if (isDelete) retain = retain - 1\n\n // for each mention denotation char, check if it is a mention\n // sort by length of mention denotation char\n let mentionMatch = null\n\n // loop through each mention denotation char, with longest first. First one to match is the one we want\n for (const chars of mentionTypes) {\n let isMatch = true\n // start with the last character\n if (chars.endsWith(mention)) {\n // loop through the chars backwards\n for (let i = chars.length - 1; i >= 0; i--) {\n // skip first character as that's already been checked\n if (i === 0) continue\n const char = chars[i - 1]\n const indexInDelta = retain - (chars.length - i)\n const valueCharAtIndex = editor.getText(indexInDelta, 1)\n if (valueCharAtIndex !== char) {\n isMatch = false\n break\n }\n }\n } else {\n isMatch = false\n }\n\n if (isMatch) {\n // console.log('match!!!', chars)\n mentionMatch = chars\n break\n }\n }\n\n if (mentionMatch) {\n setMention({\n type: mentionMatch,\n retain: retain,\n })\n } else {\n clearMention()\n }\n } else {\n // get full string between mention and new delta\n // This is where SEARCH is handled\n if (mention) {\n const retain = delta.ops[0].retain\n // if space is pressed, remove mention\n if (currentCharacter === ' ' || !retain) {\n clearMention()\n return\n }\n\n let distanceMentionToRetain = retain - mention.retain\n if (!isDelete) distanceMentionToRetain++\n const mentionFull = editor.getText(mention.retain, distanceMentionToRetain)\n const mentionSearch = mentionFull.replace(mention.type.slice(-1), '')\n // check for space in mentionFull\n if (mentionFull.includes(' ')) {\n clearMention()\n } else {\n setMention({\n ...mention,\n search: mentionSearch?.toLowerCase(),\n })\n }\n } else if (isDelete) {\n // backspace inside a mention deletes the whole mention\n const quill = editorRef.current.getEditor()\n const currentSelection = quill.getSelection(false)\n const currentFormat = quill.getFormat(currentSelection?.index, currentSelection?.length)\n if (currentFormat.mention) {\n const [lineBlock] = quill.getLine(currentSelection.index - 1) || []\n const ops = lineBlock?.cache?.delta?.ops || []\n const lastMentionOp = ops.reverse().find((op: any) => op.attributes?.mention)\n if (lastMentionOp) {\n const mentionLength = lastMentionOp.insert.length\n quill.deleteText(currentSelection.index - mentionLength, mentionLength)\n }\n }\n }\n }\n }\n\n const addTextToEditor = (type: string) => {\n // get editor retain\n const quill = editorRef.current.getEditor()\n\n let retain = quill.getSelection(true)?.index || 0\n\n // get character at retain\n const currentCharacter = quill.getText(retain - 1, 1)\n\n // if the current character is a character, increment retain\n const addSpace = currentCharacter !== ' ' && currentCharacter\n if (addSpace) {\n quill.insertText(retain, ' ')\n retain++\n }\n\n // This is hack AF, but it works\n typeWithDelay(quill, retain, type)\n }\n\n const handleMentionButton = (type: string) => {\n // first check if mention is already open\n if (mention) {\n const { type, retain, search = '' } = mention\n\n const quill = editorRef.current.getEditor()\n const length = type.length + search.length\n const start = retain - type.length + 1\n // delete the mention\n quill.deleteText(start, length)\n }\n\n addTextToEditor(type)\n }\n\n const handleOpenClick = () => {\n if (isOpen || disabled) return\n\n onOpen && onOpen()\n }\n\n const handleClose = () => {\n // get editor value\n const editor = editorRef.current.getEditor()\n const text = editor.getText()\n if (text.length < 2 || isEditing) {\n setEditorValue('')\n }\n\n // always close editor\n onClose && onClose()\n }\n\n const handleFileUploaded = ({ file, data }: any) => {\n const fileName = parseFilename(file.name)\n const newFile = {\n id: data.id,\n name: fileName,\n mime: file.type,\n size: file.size,\n order: files.length,\n }\n\n setFiles((prev) => [...prev, newFile])\n // remove from uploading\n setFilesUploading((prev) =>\n prev.filter((uploading: any) => parseFilename(uploading.name) !== fileName),\n )\n\n return newFile\n }\n\n const handleFileRemove = (id: string, name: string, isUnsavedAnnotation: boolean) => {\n if (isUnsavedAnnotation) {\n // remove from annotations (if it's an unsaved annotation)\n removeAnnotation?.(id)\n } else {\n // remove file from files\n setFiles((prev) => prev.filter((file) => file.id !== id))\n // remove from uploading\n setFilesUploading((prev) => {\n return prev.filter((file: any) => parseFilename(file.name) !== parseFilename(name))\n })\n }\n }\n\n const handleFileProgress = (e: any, file: any) => {\n const progress = Math.round((e.loaded * 100) / e.total)\n if (progress !== 100) {\n const fileName = parseFilename(file.name)\n const uploadProgress = {\n name: fileName,\n progress,\n type: file.type,\n order: files.length + filesUploading.length,\n }\n\n // @ts-ignore\n setFilesUploading((prev) => {\n // replace or add new progress\n const newProgress = prev.filter((name: any) => parseFilename(name.name) !== fileName)\n return [...newProgress, uploadProgress]\n })\n }\n }\n\n // when a file is not dropped onto the comment input\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n setIsDropping(false)\n // upload file\n handleFileDrop(e, projectName, handleFileProgress, handleFileUploaded)\n }\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDropping(true)\n }\n\n const uploadAnnotations = useAnnotationsUpload({\n projectName,\n onSuccess: handleFileUploaded,\n })\n\n const handleSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // upload any annotations first\n let annotationFiles = []\n let annotationMetadata: SavedAnnotationMetadata[] | undefined = undefined\n if (annotations.length) {\n const { files, metadata } = await uploadAnnotations(annotations)\n annotationFiles = files\n // get current files data\n const { annotations: annotationsData = [] } = data || {}\n // merge existing annotations data with new metadata\n annotationMetadata = [...annotationsData, ...metadata]\n }\n\n // convert to markdown\n const [markdown] = convertToMarkdown(editorValue)\n\n // remove img query params\n const markdownParsed = parseImages(markdown)\n\n const uploadedFiles = [...files, ...annotationFiles]\n\n const newData = {\n ...data,\n annotations: annotationMetadata, // could be undefined\n category: isGuest ? null : category, // guests cannot set category (it is done by default on backend)\n }\n\n if ((markdownParsed || uploadedFiles.length) && onSubmit) {\n try {\n await onSubmit(markdownParsed, uploadedFiles, newData)\n // only clear if onSubmit is successful\n setEditorValue('')\n setFiles([])\n } catch (error) {\n // error is handled in rtk query mutation\n return\n }\n }\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (mention) {\n // close mention on escape\n if (e.key === 'Escape') {\n clearMention()\n return\n }\n\n // add top search of mention\n if (mention && e.key === 'Tab') {\n // we handle this in the onChange\n }\n\n const arrowDirection = e.key === 'ArrowUp' ? -1 : e.key === 'ArrowDown' ? 1 : 0\n\n if (arrowDirection) {\n // navigate through mentions\n e.preventDefault()\n let newIndex = mentionSelectedIndex + arrowDirection\n if (newIndex < 0) newIndex = shownMentionOptions.length - 1\n if (newIndex >= shownMentionOptions.length) newIndex = 0\n setMentionSelectedIndex(newIndex)\n }\n\n if (e.key === 'Enter') {\n // we handle this in the onChange\n }\n }\n\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n handleSubmit()\n }\n\n if (e.key === 'Escape') {\n handleClose()\n }\n }\n\n let quillMinHeight: number | undefined = isOpen ? initHeight + 41 : 44\n if (isEditing) quillMinHeight = undefined\n\n // QUILL CONFIG\n const modules = useMemo(\n () =>\n getModules({\n imageUploader: {\n projectName,\n onUpload: handleFileUploaded,\n onUploadProgress: handleFileProgress,\n },\n mentionTypeOptions,\n }),\n [projectName, setFiles, setFilesUploading],\n )\n\n const allFiles = [...annotations, ...(files || []), ...filesUploading].sort(\n (a, b) => a.order - b.order,\n )\n const compactGrid = allFiles.length > 3\n\n // disable version mentions for folders\n let mentionsError = null\n if (entities.length && entities[0].entityType === 'folder') {\n if (mention?.type === '@@') {\n mentionsError = 'Version mentions are disabled for folders'\n }\n }\n\n const getCommentPlaceholder = (isOpen?: boolean) => {\n if (disabled) {\n if (isGuest) return 'You do not have permission to comment.'\n return 'Commenting is disabled across multiple projects.'\n }\n\n if (isGuest || !isOpen) return 'Leave a comment'\n\n return 'Comment or mention with @user, @@version, @@@task...'\n }\n\n return (\n <>\n <Styled.AutoHeight\n className={clsx('comment-container', { isOpen, isEditing })}\n onDragOver={handleDragOver}\n onDragLeave={() => setIsDropping(false)}\n onDrop={handleDrop}\n onClick={() => setIsDropping(false)}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Styled.Comment\n className={clsx('block-shortcuts', {\n isOpen,\n isClosed: !isOpen || disabled,\n isEditing,\n isDropping,\n disabled,\n isLoading,\n isSubmitting,\n category: !!category && !isGuest,\n })}\n onKeyDown={handleKeyDown}\n onClick={handleOpenClick}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <Styled.Markdown ref={markdownRef}>\n {/* this is purely used to translate the markdown into html for Editor */}\n <InputMarkdownConvert typeOptions={mentionTypeOptions} initValue={initValue} />\n </Styled.Markdown>\n\n {/* file uploads */}\n {isOpen && (\n <FilesGrid\n files={allFiles}\n isCompact={compactGrid || isEditing}\n onRemove={handleFileRemove}\n projectName={projectName}\n onAnnotationClick={goToAnnotation}\n style={{\n borderBottom: '1px solid var(--md-sys-color-outline-variant)',\n height: '100%',\n }}\n isEditing\n pt={{\n file: {\n style: {\n height: isEditing ? 70 : undefined,\n },\n },\n }}\n />\n )}\n {isOpen && !disabled ? (\n <QuillListStyles ref={editorContainerRef}>\n {!isGuest && (\n <ActivityCategorySelect\n value={category}\n categories={categoryOptions}\n onChange={(c) => setCategory(c)}\n isCompact={isEditing}\n hasPowerpack={hasLicense}\n onPowerFeature={onPowerFeature}\n isHidden={isCategoryHidden(categoryOptions, { isGuest, isAdmin })}\n style={{\n position: isEditing ? 'relative' : 'absolute',\n left: 4,\n top: isEditing ? 0 : 4,\n }}\n />\n )}\n\n <ReactQuill\n theme=\"snow\"\n style={{ minHeight: quillMinHeight, maxHeight: 300 }}\n ref={editorRef}\n value={editorValue}\n onChange={handleChange}\n readOnly={!isOpen}\n placeholder={getCommentPlaceholder(true)}\n modules={modules}\n formats={quillFormats}\n />\n </QuillListStyles>\n ) : (\n <Styled.Placeholder>{getCommentPlaceholder()}</Styled.Placeholder>\n )}\n\n <Styled.Footer>\n {!isGuest && (\n <Styled.Buttons>\n {/* mention a user */}\n <Button\n icon=\"person\"\n variant=\"text\"\n onClick={() => handleMentionButton('@')}\n data-tooltip={'Mention user'}\n data-shortcut={'@'}\n />\n {/* mention a version */}\n <Button\n icon=\"layers\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@')}\n data-tooltip={'Mention version'}\n data-shortcut={'@@'}\n />\n {/* mention a task */}\n <Button\n icon=\"check_circle\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@@')}\n data-tooltip={'Mention task'}\n data-shortcut={'@@@'}\n />\n </Styled.Buttons>\n )}\n <Styled.Buttons style={{ marginLeft: 'auto' }}>\n {isEditing && (\n <Button variant=\"text\" onClick={handleClose}>\n Cancel\n </Button>\n )}\n <SaveButton\n label={isEditing ? 'Save' : 'Comment'}\n className=\"comment\"\n active={!!editorValue || !!files.length}\n onClick={handleSubmit}\n disabled={isLoading}\n />\n </Styled.Buttons>\n </Styled.Footer>\n\n <Styled.Dropzone className={clsx({ show: isDropping && isOpen })}>\n <Icon icon=\"cloud_upload\" />\n </Styled.Dropzone>\n </Styled.Comment>\n <CommentMentionSelect\n mention={mention}\n options={shownMentionOptions}\n onChange={handleSelectChange}\n onPrefixFilter={(prefix) => {\n setMentionPrefix(prefix)\n setMentionSelectedIndex(0)\n }}\n activePrefix={mentionPrefix ? mentionPrefix.replace(':', '') : undefined}\n types={mentionTypes}\n // @ts-ignore\n config={mentionTypeOptions[mention?.type]}\n noneFound={!shownMentionOptions.length && (mention?.search || mentionPrefix)}\n noneFoundAtAll={!shownMentionOptions.length && !mention?.search && !mentionPrefix}\n selectedIndex={mentionSelectedIndex}\n // @ts-ignore\n error={mentionsError}\n isGuest={isGuest}\n />\n </Styled.AutoHeight>\n </>\n )\n}\n\nexport default CommentInput\n"],"names":["Delta","Quill","mentionTypes","mentionTypeOptions","CommentInput","initValue","initFiles","initCategory","data","onSubmit","isEditing","disabled","isLoading","isOpen","onOpen","onClose","projectName","entities","projectInfo","scope","feedFilter","mentionSuggestionsData","categories","isGuest","useFeedContext","hasLicense","onPowerFeature","user","useDetailsPanelContext","isAdmin","project","useProjectContext","mentionUsers","mentionTeams","mentionVersions","mentionTasks","initHeight","setInitHeight","useState","editorValue","setEditorValue","files","setFiles","filesUploading","setFilesUploading","isDropping","setIsDropping","isSubmitting","setIsSubmitting","annotations","removeAnnotation","goToAnnotation","useAnnotationsSync","mention","setMention","mentionSelectedIndex","setMentionSelectedIndex","mentionPrefix","setMentionPrefix","clearMention","category","setCategory","categoryOptions","cat","categoryData","blendedCategoryColor","useBlendedCategoryColor","editorRef","useRef","editorContainerRef","markdownRef","useInitialValue","useSetCursorEnd","useMentionLink","useEffect","a","b","mentionSearchWithPrefix","mentionOptions","useMemo","getMentionOptions","getMentionUsers","getMentionVersions","getMentionTasks","shownMentionOptions","newSelection","setNewSelection","handleSelectMention","selectedOption","quill","typePrefix","search","mentionLabel","type","href","startIndex","endIndex","handleSelectChange","option","handleChange","content","delta","_","editor","currentCharacter","tabOrEnter","isDelete","mentionIndex","op","retain","mentionMatch","chars","isMatch","i","char","indexInDelta","distanceMentionToRetain","mentionFull","mentionSearch","currentSelection","lineBlock","lastMentionOp","mentionLength","addTextToEditor","typeWithDelay","handleMentionButton","length","start","handleOpenClick","handleClose","handleFileUploaded","file","fileName","parseFilename","newFile","prev","uploading","handleFileRemove","id","name","isUnsavedAnnotation","handleFileProgress","progress","uploadProgress","handleDrop","handleFileDrop","handleDragOver","uploadAnnotations","useAnnotationsUpload","handleSubmit","annotationFiles","annotationMetadata","metadata","annotationsData","markdown","convertToMarkdown","markdownParsed","parseImages","uploadedFiles","newData","error","toast","handleKeyDown","arrowDirection","newIndex","quillMinHeight","modules","getModules","allFiles","compactGrid","mentionsError","getCommentPlaceholder","jsx","Fragment","jsxs","Styled.AutoHeight","clsx","Styled.Comment","Styled.Markdown","InputMarkdownConvert","FilesGrid","QuillListStyles","ActivityCategorySelect","c","isCategoryHidden","ReactQuill","quillFormats","Styled.Placeholder","Styled.Footer","Styled.Buttons","Button","SaveButton","Styled.Dropzone","Icon","CommentMentionSelect","prefix"],"mappings":"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"}
|
|
@@ -78,6 +78,7 @@ import "../../../../api/queries/attributes/getAttributes.es.js";
|
|
|
78
78
|
import "../../../../api/queries/attributes/updateAttributes.es.js";
|
|
79
79
|
import "../../../../api/queries/authentication/getAuthentication.es.js";
|
|
80
80
|
import "../../../../api/queries/cloud/cloud.es.js";
|
|
81
|
+
import "../../../../api/queries/columnStats/metricTargets.es.js";
|
|
81
82
|
import "../../../../api/queries/config/getConfig.es.js";
|
|
82
83
|
import "../../../../api/queries/config/updateConfig.es.js";
|
|
83
84
|
import "../../../../api/queries/entities/getEntity.es.js";
|
|
@@ -220,6 +221,7 @@ import "../../../ProjectTreeTable/components/SelectionCell.es.js";
|
|
|
220
221
|
import "../../../ProjectTreeTable/components/RowSelectionHeader.es.js";
|
|
221
222
|
import "../../../ProjectTreeTable/widgets/LoadMoreWidget.es.js";
|
|
222
223
|
import "../../../ProjectTreeTable/components/HeaderActionButton.es.js";
|
|
224
|
+
import "../../../ProjectTreeTable/components/TableFooterRow.es.js";
|
|
223
225
|
import "../../../EntityPickerDialog/EntityPickerDialog.es.js";
|
|
224
226
|
import "../../../Slicer/components/Slicer.es.js";
|
|
225
227
|
import "../../../Slicer/context/SlicerContext.es.js";
|
|
@@ -304,7 +306,7 @@ const q = ["@", "@@", "@@@"], E = {
|
|
|
304
306
|
id: "user",
|
|
305
307
|
isCircle: !0
|
|
306
308
|
}
|
|
307
|
-
},
|
|
309
|
+
}, yp = ({
|
|
308
310
|
initValue: J,
|
|
309
311
|
initFiles: Pt = [],
|
|
310
312
|
initCategory: At = null,
|
|
@@ -702,7 +704,7 @@ const q = ["@", "@@", "@@@"], E = {
|
|
|
702
704
|
) });
|
|
703
705
|
};
|
|
704
706
|
export {
|
|
705
|
-
|
|
707
|
+
yp as default,
|
|
706
708
|
E as mentionTypeOptions
|
|
707
709
|
};
|
|
708
710
|
//# sourceMappingURL=CommentInput.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentInput.es.js","sources":["../../../../../../../src/containers/Feed/components/CommentInput/CommentInput.tsx"],"sourcesContent":["// React and related hooks\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\n// Third-party libraries\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport ReactQuill, { Quill } from 'react-quill-ayon'\n\n// Components\nimport { Button, Icon, SaveButton } from '@ynput/ayon-react-components'\nimport CommentMentionSelect from '../CommentMentionSelect/CommentMentionSelect'\nimport InputMarkdownConvert from './InputMarkdownConvert'\nimport FilesGrid from '../FilesGrid'\n\n// Styled components\nimport * as Styled from './CommentInput.styled'\nimport { QuillListStyles } from '../../../../components/QuillListStyles'\n\n// Helpers and utilities\nimport getMentionOptions from '../../mentionHelpers/getMentionOptions'\nimport getMentionUsers from '../../mentionHelpers/getMentionUsers'\nimport getMentionTasks from '../../mentionHelpers/getMentionTasks'\nimport getMentionVersions from '../../mentionHelpers/getMentionVersions'\nimport { convertToMarkdown } from './quillToMarkdown'\nimport { handleFileDrop, parseImages, typeWithDelay } from './helpers'\nimport { getModules, quillFormats } from './modules'\n\n// Hooks\nimport useInitialValue from './hooks/useInitialValue'\nimport useSetCursorEnd from './hooks/useSetCursorEnd'\nimport useMentionLink from './hooks/useMentionLink'\nimport useAnnotationsSync from './hooks/useAnnotationsSync'\nimport { useBlendedCategoryColor } from './hooks/useBlendedCategoryColor'\n\n// State management\nimport useAnnotationsUpload from './hooks/useAnnotationsUpload'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { ActivityCategorySelect, isCategoryHidden, SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useProjectContext } from '@shared/context'\nimport { parseFilename } from '@shared/components'\n\nvar Delta = Quill.import('delta')\n\nconst mentionTypes = ['@', '@@', '@@@']\nexport const mentionTypeOptions = {\n '@@@': {\n id: 'task',\n },\n '@@': {\n id: 'version',\n },\n '@': {\n id: 'user',\n isCircle: true,\n },\n}\n\ninterface CommentInputProps {\n initValue: string | null\n initFiles?: any[]\n initCategory?: string | null\n data?: any\n onSubmit: (markdown: string, files: any[], data?: any) => Promise<void>\n isEditing?: boolean\n disabled?: boolean\n isLoading?: boolean\n isOpen: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CommentInput: FC<CommentInputProps> = ({\n initValue,\n initFiles = [],\n initCategory = null,\n data = {},\n onSubmit,\n isEditing,\n disabled,\n isLoading,\n isOpen,\n onOpen,\n onClose,\n}) => {\n const {\n projectName,\n entities,\n projectInfo,\n scope,\n feedFilter,\n mentionSuggestionsData,\n categories,\n isGuest,\n } = useFeedContext()\n\n const { hasLicense, onPowerFeature, user } = useDetailsPanelContext()\n const isAdmin = user?.data?.isAdmin\n\n const project = useProjectContext()\n\n const {\n users: mentionUsers,\n teams: mentionTeams,\n versions: mentionVersions,\n tasks: mentionTasks,\n } = mentionSuggestionsData || {}\n\n const [initHeight, setInitHeight] = useState(88)\n const [editorValue, setEditorValue] = useState('')\n // file uploads\n const [files, setFiles] = useState(initFiles)\n const [filesUploading, setFilesUploading] = useState([])\n const [isDropping, setIsDropping] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const { annotations, removeAnnotation, goToAnnotation } = useAnnotationsSync({\n entityId: entities[0]?.id,\n filesUploading,\n })\n\n // MENTION STATES\n const [mention, setMention] = useState<null | any>(null)\n const [mentionSelectedIndex, setMentionSelectedIndex] = useState(0)\n // Prefix filter for mentions (e.g. 'team:' or 'user:')\n const [mentionPrefix, setMentionPrefix] = useState('')\n\n const clearMention = () => {\n setMention(null)\n setMentionSelectedIndex(0)\n setMentionPrefix('')\n }\n // CATEGORY STATE\n const [category, setCategory] = useState<null | string>(initCategory)\n const categoryOptions = categories.filter((cat) => cat.accessLevel >= 20)\n const categoryData = categories.find((cat) => cat.name === category)\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n // REFS\n const editorRef = useRef<any>(null)\n const editorContainerRef = useRef<HTMLDivElement>(null)\n\n const markdownRef = useRef<HTMLDivElement>(null)\n\n // if there is an initial value, set it so the editor is prefilled\n useInitialValue({\n markdownRef,\n initValue,\n setEditorValue,\n setInitHeight,\n isOpen: isOpen,\n filter: feedFilter,\n })\n\n // When editing, set selection to the end of the editor\n useSetCursorEnd({ initHeight, editorRef, isEditing })\n // create a new quill format for mentions and registers it\n useMentionLink({ projectName })\n\n // focus on editor when opened\n useEffect(() => {\n if (isOpen) {\n editorRef.current?.getEditor()?.enable()\n // block autofocus if opened from an annotation\n if (annotations.length > 0 && files.length === 0) {\n return\n }\n\n editorRef.current?.focus()\n }\n // We don't set annotations or files as useEffect dependencies, because we don't want to focus\n // the input if it's already open but annotations change (e.g. are removed).\n }, [isOpen, editorRef])\n\n mentionTypes.sort((a, b) => b.length - a.length)\n\n // Combine prefix filter with typed search for options filtering\n const mentionSearchWithPrefix = mentionPrefix + (mention?.search || '')\n\n const mentionOptions = useMemo(\n () =>\n getMentionOptions(\n mention?.type,\n {\n '@': () => getMentionUsers(mentionUsers, mentionTeams),\n '@@': () => getMentionVersions(mentionVersions, project),\n '@@@': () => getMentionTasks(mentionTasks, projectInfo.taskTypes),\n },\n mentionSearchWithPrefix || undefined,\n ),\n [mentionTasks, mentionVersions, mentionUsers, mentionTeams, mention?.type, mentionSearchWithPrefix],\n )\n\n // show first 5 and filter itself out\n const shownMentionOptions = mentionOptions.slice(0, 5)\n\n // triggered when a mention is selected\n const [newSelection, setNewSelection] = useState<null | number>()\n\n useEffect(() => {\n if (newSelection) {\n setNewSelection(null)\n // now we set selection to the end of the mention\n const quill = editorRef.current.getEditor()\n quill.setSelection(newSelection)\n }\n }, [newSelection])\n\n const handleSelectMention = (selectedOption: any) => {\n // get option text\n const quill = editorRef.current.getEditor()\n\n const typePrefix = mention.type // the type of mention: @, @@, @@@\n const search = typePrefix + (mention.search || '') // the full search string: @Tim\n const mentionLabel = typePrefix + selectedOption.label // the label of the mention: @Tim Bailey\n // @ts-expect-error\n const type = mentionTypeOptions[typePrefix] // the type of mention: user, version, task\n // Use the option's own type (e.g. 'team') if available, otherwise fall back to the mention type config\n const refType = selectedOption.type || type?.id\n const href = `${refType}:${selectedOption.id}` // the href of the mention: user:user.123 or team:Thunder boys\n\n // get selection delta\n const selection = quill.getSelection(true)\n const selectionIndex = selection?.index || 0\n const startIndex = selectionIndex - search.length // the start index of the search\n\n // first delete the search string\n quill.deleteText(startIndex, search.length)\n\n // insert embed link\n quill.insertText(startIndex, mentionLabel, 'mention', href)\n\n const endIndex = startIndex + mentionLabel.length\n\n // insert a space after the mention\n quill.updateContents(new Delta().retain(endIndex).insert(' '))\n\n // remove single \\n after mention\n quill.updateContents(new Delta().retain(endIndex + 1).delete(1))\n\n // set selection to the end of the mention + 1\n setNewSelection(endIndex + 1)\n\n // reset mention state\n clearMention()\n }\n\n const handleSelectChange = (option: any) => {\n handleSelectMention(option)\n }\n\n const handleChange = (content: string, delta: any, _: any, editor: any) => {\n let currentCharacter =\n (delta.ops[0] && delta.ops[0].insert) || (delta.ops[1] && delta.ops[1].insert)\n\n const tabOrEnter = currentCharacter === '\\n' || currentCharacter === '\\t'\n // find the first option\n const selectedOption = mentionOptions[mentionSelectedIndex]\n\n if (mention && tabOrEnter && selectedOption && !isGuest) {\n // get option text\n const retain = (delta.ops[0] && delta.ops[0].retain) || 0\n // prevent default\n\n // @ts-ignore\n handleSelectMention(selectedOption, retain)\n\n return\n }\n\n setEditorValue(content)\n\n const isDelete = delta.ops.length === 2 && !!delta.ops[1].delete\n\n if (!currentCharacter && isDelete) {\n currentCharacter = editor.getText(delta.ops[0].retain - 1, 1)\n }\n\n const isMention = mentionTypes.includes(currentCharacter)\n\n if (isMention) {\n const mentionIndex = delta.ops.findIndex((op: any) => 'insert' in op || 'delete' in op)\n const mention = currentCharacter\n let retain = mentionIndex === 0 ? 0 : delta.ops[mentionIndex - 1].retain\n if (isDelete) retain = retain - 1\n\n // for each mention denotation char, check if it is a mention\n // sort by length of mention denotation char\n let mentionMatch = null\n\n // loop through each mention denotation char, with longest first. First one to match is the one we want\n for (const chars of mentionTypes) {\n let isMatch = true\n // start with the last character\n if (chars.endsWith(mention)) {\n // loop through the chars backwards\n for (let i = chars.length - 1; i >= 0; i--) {\n // skip first character as that's already been checked\n if (i === 0) continue\n const char = chars[i - 1]\n const indexInDelta = retain - (chars.length - i)\n const valueCharAtIndex = editor.getText(indexInDelta, 1)\n if (valueCharAtIndex !== char) {\n isMatch = false\n break\n }\n }\n } else {\n isMatch = false\n }\n\n if (isMatch) {\n // console.log('match!!!', chars)\n mentionMatch = chars\n break\n }\n }\n\n if (mentionMatch) {\n setMention({\n type: mentionMatch,\n retain: retain,\n })\n } else {\n clearMention()\n }\n } else {\n // get full string between mention and new delta\n // This is where SEARCH is handled\n if (mention) {\n const retain = delta.ops[0].retain\n // if space is pressed, remove mention\n if (currentCharacter === ' ' || !retain) {\n clearMention()\n return\n }\n\n let distanceMentionToRetain = retain - mention.retain\n if (!isDelete) distanceMentionToRetain++\n const mentionFull = editor.getText(mention.retain, distanceMentionToRetain)\n const mentionSearch = mentionFull.replace(mention.type.slice(-1), '')\n // check for space in mentionFull\n if (mentionFull.includes(' ')) {\n clearMention()\n } else {\n setMention({\n ...mention,\n search: mentionSearch?.toLowerCase(),\n })\n }\n } else if (isDelete) {\n // backspace inside a mention deletes the whole mention\n const quill = editorRef.current.getEditor()\n const currentSelection = quill.getSelection(false)\n const currentFormat = quill.getFormat(currentSelection?.index, currentSelection?.length)\n if (currentFormat.mention) {\n const [lineBlock] = quill.getLine(currentSelection.index - 1) || []\n const ops = lineBlock?.cache?.delta?.ops || []\n const lastMentionOp = ops.reverse().find((op: any) => op.attributes?.mention)\n if (lastMentionOp) {\n const mentionLength = lastMentionOp.insert.length\n quill.deleteText(currentSelection.index - mentionLength, mentionLength)\n }\n }\n }\n }\n }\n\n const addTextToEditor = (type: string) => {\n // get editor retain\n const quill = editorRef.current.getEditor()\n\n let retain = quill.getSelection(true)?.index || 0\n\n // get character at retain\n const currentCharacter = quill.getText(retain - 1, 1)\n\n // if the current character is a character, increment retain\n const addSpace = currentCharacter !== ' ' && currentCharacter\n if (addSpace) {\n quill.insertText(retain, ' ')\n retain++\n }\n\n // This is hack AF, but it works\n typeWithDelay(quill, retain, type)\n }\n\n const handleMentionButton = (type: string) => {\n // first check if mention is already open\n if (mention) {\n const { type, retain, search = '' } = mention\n\n const quill = editorRef.current.getEditor()\n const length = type.length + search.length\n const start = retain - type.length + 1\n // delete the mention\n quill.deleteText(start, length)\n }\n\n addTextToEditor(type)\n }\n\n const handleOpenClick = () => {\n if (isOpen || disabled) return\n\n onOpen && onOpen()\n }\n\n const handleClose = () => {\n // get editor value\n const editor = editorRef.current.getEditor()\n const text = editor.getText()\n if (text.length < 2 || isEditing) {\n setEditorValue('')\n }\n\n // always close editor\n onClose && onClose()\n }\n\n const handleFileUploaded = ({ file, data }: any) => {\n const fileName = parseFilename(file.name)\n const newFile = {\n id: data.id,\n name: fileName,\n mime: file.type,\n size: file.size,\n order: files.length,\n }\n\n setFiles((prev) => [...prev, newFile])\n // remove from uploading\n setFilesUploading((prev) =>\n prev.filter((uploading: any) => parseFilename(uploading.name) !== fileName),\n )\n\n return newFile\n }\n\n const handleFileRemove = (id: string, name: string, isUnsavedAnnotation: boolean) => {\n if (isUnsavedAnnotation) {\n // remove from annotations (if it's an unsaved annotation)\n removeAnnotation?.(id)\n } else {\n // remove file from files\n setFiles((prev) => prev.filter((file) => file.id !== id))\n // remove from uploading\n setFilesUploading((prev) => {\n return prev.filter((file: any) => parseFilename(file.name) !== parseFilename(name))\n })\n }\n }\n\n const handleFileProgress = (e: any, file: any) => {\n const progress = Math.round((e.loaded * 100) / e.total)\n if (progress !== 100) {\n const fileName = parseFilename(file.name)\n const uploadProgress = {\n name: fileName,\n progress,\n type: file.type,\n order: files.length + filesUploading.length,\n }\n\n // @ts-ignore\n setFilesUploading((prev) => {\n // replace or add new progress\n const newProgress = prev.filter((name: any) => parseFilename(name.name) !== fileName)\n return [...newProgress, uploadProgress]\n })\n }\n }\n\n // when a file is not dropped onto the comment input\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n setIsDropping(false)\n // upload file\n handleFileDrop(e, projectName, handleFileProgress, handleFileUploaded)\n }\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDropping(true)\n }\n\n const uploadAnnotations = useAnnotationsUpload({\n projectName,\n onSuccess: handleFileUploaded,\n })\n\n const handleSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // upload any annotations first\n let annotationFiles = []\n let annotationMetadata: SavedAnnotationMetadata[] | undefined = undefined\n if (annotations.length) {\n const { files, metadata } = await uploadAnnotations(annotations)\n annotationFiles = files\n // get current files data\n const { annotations: annotationsData = [] } = data || {}\n // merge existing annotations data with new metadata\n annotationMetadata = [...annotationsData, ...metadata]\n }\n\n // convert to markdown\n const [markdown] = convertToMarkdown(editorValue)\n\n // remove img query params\n const markdownParsed = parseImages(markdown)\n\n const uploadedFiles = [...files, ...annotationFiles]\n\n const newData = {\n ...data,\n annotations: annotationMetadata, // could be undefined\n category: isGuest ? null : category, // guests cannot set category (it is done by default on backend)\n }\n\n if ((markdownParsed || uploadedFiles.length) && onSubmit) {\n try {\n await onSubmit(markdownParsed, uploadedFiles, newData)\n // only clear if onSubmit is successful\n setEditorValue('')\n setFiles([])\n } catch (error) {\n // error is handled in rtk query mutation\n return\n }\n }\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (mention) {\n // close mention on escape\n if (e.key === 'Escape') {\n clearMention()\n return\n }\n\n // add top search of mention\n if (mention && e.key === 'Tab') {\n // we handle this in the onChange\n }\n\n const arrowDirection = e.key === 'ArrowUp' ? -1 : e.key === 'ArrowDown' ? 1 : 0\n\n if (arrowDirection) {\n // navigate through mentions\n e.preventDefault()\n let newIndex = mentionSelectedIndex + arrowDirection\n if (newIndex < 0) newIndex = shownMentionOptions.length - 1\n if (newIndex >= shownMentionOptions.length) newIndex = 0\n setMentionSelectedIndex(newIndex)\n }\n\n if (e.key === 'Enter') {\n // we handle this in the onChange\n }\n }\n\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n handleSubmit()\n }\n\n if (e.key === 'Escape') {\n handleClose()\n }\n }\n\n let quillMinHeight: number | undefined = isOpen ? initHeight + 41 : 44\n if (isEditing) quillMinHeight = undefined\n\n // QUILL CONFIG\n const modules = useMemo(\n () =>\n getModules({\n imageUploader: {\n projectName,\n onUpload: handleFileUploaded,\n onUploadProgress: handleFileProgress,\n },\n mentionTypeOptions,\n }),\n [projectName, setFiles, setFilesUploading],\n )\n\n const allFiles = [...annotations, ...(files || []), ...filesUploading].sort(\n (a, b) => a.order - b.order,\n )\n const compactGrid = allFiles.length > 3\n\n // disable version mentions for folders\n let mentionsError = null\n if (entities.length && entities[0].entityType === 'folder') {\n if (mention?.type === '@@') {\n mentionsError = 'Version mentions are disabled for folders'\n }\n }\n\n const getCommentPlaceholder = (isOpen?: boolean) => {\n if (disabled) {\n if (isGuest) return 'You do not have permission to comment.'\n return 'Commenting is disabled across multiple projects.'\n }\n\n if (isGuest || !isOpen) return 'Leave a comment'\n\n return 'Comment or mention with @user, @@version, @@@task...'\n }\n\n return (\n <>\n <Styled.AutoHeight\n className={clsx('comment-container', { isOpen, isEditing })}\n onDragOver={handleDragOver}\n onDragLeave={() => setIsDropping(false)}\n onDrop={handleDrop}\n onClick={() => setIsDropping(false)}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Styled.Comment\n className={clsx('block-shortcuts', {\n isOpen,\n isClosed: !isOpen || disabled,\n isEditing,\n isDropping,\n disabled,\n isLoading,\n isSubmitting,\n category: !!category && !isGuest,\n })}\n onKeyDown={handleKeyDown}\n onClick={handleOpenClick}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <Styled.Markdown ref={markdownRef}>\n {/* this is purely used to translate the markdown into html for Editor */}\n <InputMarkdownConvert typeOptions={mentionTypeOptions} initValue={initValue} />\n </Styled.Markdown>\n\n {/* file uploads */}\n {isOpen && (\n <FilesGrid\n files={allFiles}\n isCompact={compactGrid || isEditing}\n onRemove={handleFileRemove}\n projectName={projectName}\n onAnnotationClick={goToAnnotation}\n style={{\n borderBottom: '1px solid var(--md-sys-color-outline-variant)',\n height: '100%',\n }}\n isEditing\n pt={{\n file: {\n style: {\n height: isEditing ? 70 : undefined,\n },\n },\n }}\n />\n )}\n {isOpen && !disabled ? (\n <QuillListStyles ref={editorContainerRef}>\n {!isGuest && (\n <ActivityCategorySelect\n value={category}\n categories={categoryOptions}\n onChange={(c) => setCategory(c)}\n isCompact={isEditing}\n hasPowerpack={hasLicense}\n onPowerFeature={onPowerFeature}\n isHidden={isCategoryHidden(categoryOptions, { isGuest, isAdmin })}\n style={{\n position: isEditing ? 'relative' : 'absolute',\n left: 4,\n top: isEditing ? 0 : 4,\n }}\n />\n )}\n\n <ReactQuill\n theme=\"snow\"\n style={{ minHeight: quillMinHeight, maxHeight: 300 }}\n ref={editorRef}\n value={editorValue}\n onChange={handleChange}\n readOnly={!isOpen}\n placeholder={getCommentPlaceholder(true)}\n modules={modules}\n formats={quillFormats}\n />\n </QuillListStyles>\n ) : (\n <Styled.Placeholder>{getCommentPlaceholder()}</Styled.Placeholder>\n )}\n\n <Styled.Footer>\n {!isGuest && (\n <Styled.Buttons>\n {/* mention a user */}\n <Button\n icon=\"person\"\n variant=\"text\"\n onClick={() => handleMentionButton('@')}\n data-tooltip={'Mention user'}\n data-shortcut={'@'}\n />\n {/* mention a version */}\n <Button\n icon=\"layers\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@')}\n data-tooltip={'Mention version'}\n data-shortcut={'@@'}\n />\n {/* mention a task */}\n <Button\n icon=\"check_circle\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@@')}\n data-tooltip={'Mention task'}\n data-shortcut={'@@@'}\n />\n </Styled.Buttons>\n )}\n <Styled.Buttons style={{ marginLeft: 'auto' }}>\n {isEditing && (\n <Button variant=\"text\" onClick={handleClose}>\n Cancel\n </Button>\n )}\n <SaveButton\n label={isEditing ? 'Save' : 'Comment'}\n className=\"comment\"\n active={!!editorValue || !!files.length}\n onClick={handleSubmit}\n disabled={isLoading}\n />\n </Styled.Buttons>\n </Styled.Footer>\n\n <Styled.Dropzone className={clsx({ show: isDropping && isOpen })}>\n <Icon icon=\"cloud_upload\" />\n </Styled.Dropzone>\n </Styled.Comment>\n <CommentMentionSelect\n mention={mention}\n options={shownMentionOptions}\n onChange={handleSelectChange}\n onPrefixFilter={(prefix) => {\n setMentionPrefix(prefix)\n setMentionSelectedIndex(0)\n }}\n activePrefix={mentionPrefix ? mentionPrefix.replace(':', '') : undefined}\n types={mentionTypes}\n // @ts-ignore\n config={mentionTypeOptions[mention?.type]}\n noneFound={!shownMentionOptions.length && (mention?.search || mentionPrefix)}\n noneFoundAtAll={!shownMentionOptions.length && !mention?.search && !mentionPrefix}\n selectedIndex={mentionSelectedIndex}\n // @ts-ignore\n error={mentionsError}\n isGuest={isGuest}\n />\n </Styled.AutoHeight>\n </>\n )\n}\n\nexport default CommentInput\n"],"names":["Delta","Quill","mentionTypes","mentionTypeOptions","CommentInput","initValue","initFiles","initCategory","data","onSubmit","isEditing","disabled","isLoading","isOpen","onOpen","onClose","projectName","entities","projectInfo","scope","feedFilter","mentionSuggestionsData","categories","isGuest","useFeedContext","hasLicense","onPowerFeature","user","useDetailsPanelContext","isAdmin","project","useProjectContext","mentionUsers","mentionTeams","mentionVersions","mentionTasks","initHeight","setInitHeight","useState","editorValue","setEditorValue","files","setFiles","filesUploading","setFilesUploading","isDropping","setIsDropping","isSubmitting","setIsSubmitting","annotations","removeAnnotation","goToAnnotation","useAnnotationsSync","mention","setMention","mentionSelectedIndex","setMentionSelectedIndex","mentionPrefix","setMentionPrefix","clearMention","category","setCategory","categoryOptions","cat","categoryData","blendedCategoryColor","useBlendedCategoryColor","editorRef","useRef","editorContainerRef","markdownRef","useInitialValue","useSetCursorEnd","useMentionLink","useEffect","a","b","mentionSearchWithPrefix","mentionOptions","useMemo","getMentionOptions","getMentionUsers","getMentionVersions","getMentionTasks","shownMentionOptions","newSelection","setNewSelection","handleSelectMention","selectedOption","quill","typePrefix","search","mentionLabel","type","href","startIndex","endIndex","handleSelectChange","option","handleChange","content","delta","_","editor","currentCharacter","tabOrEnter","isDelete","mentionIndex","op","retain","mentionMatch","chars","isMatch","i","char","indexInDelta","distanceMentionToRetain","mentionFull","mentionSearch","currentSelection","lineBlock","lastMentionOp","mentionLength","addTextToEditor","typeWithDelay","handleMentionButton","length","start","handleOpenClick","handleClose","handleFileUploaded","file","fileName","parseFilename","newFile","prev","uploading","handleFileRemove","id","name","isUnsavedAnnotation","handleFileProgress","e","progress","uploadProgress","handleDrop","handleFileDrop","handleDragOver","uploadAnnotations","useAnnotationsUpload","handleSubmit","annotationFiles","annotationMetadata","metadata","annotationsData","markdown","convertToMarkdown","markdownParsed","parseImages","uploadedFiles","newData","error","toast","handleKeyDown","arrowDirection","newIndex","quillMinHeight","modules","getModules","allFiles","compactGrid","mentionsError","getCommentPlaceholder","jsx","Fragment","jsxs","Styled.AutoHeight","clsx","Styled.Comment","Styled.Markdown","InputMarkdownConvert","FilesGrid","QuillListStyles","ActivityCategorySelect","c","isCategoryHidden","ReactQuill","quillFormats","Styled.Placeholder","Styled.Footer","Styled.Buttons","Button","SaveButton","Styled.Dropzone","Icon","CommentMentionSelect","prefix"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommentInput.es.js","sources":["../../../../../../../src/containers/Feed/components/CommentInput/CommentInput.tsx"],"sourcesContent":["// React and related hooks\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react'\n\n// Third-party libraries\nimport clsx from 'clsx'\nimport { toast } from 'react-toastify'\nimport ReactQuill, { Quill } from 'react-quill-ayon'\n\n// Components\nimport { Button, Icon, SaveButton } from '@ynput/ayon-react-components'\nimport CommentMentionSelect from '../CommentMentionSelect/CommentMentionSelect'\nimport InputMarkdownConvert from './InputMarkdownConvert'\nimport FilesGrid from '../FilesGrid'\n\n// Styled components\nimport * as Styled from './CommentInput.styled'\nimport { QuillListStyles } from '../../../../components/QuillListStyles'\n\n// Helpers and utilities\nimport getMentionOptions from '../../mentionHelpers/getMentionOptions'\nimport getMentionUsers from '../../mentionHelpers/getMentionUsers'\nimport getMentionTasks from '../../mentionHelpers/getMentionTasks'\nimport getMentionVersions from '../../mentionHelpers/getMentionVersions'\nimport { convertToMarkdown } from './quillToMarkdown'\nimport { handleFileDrop, parseImages, typeWithDelay } from './helpers'\nimport { getModules, quillFormats } from './modules'\n\n// Hooks\nimport useInitialValue from './hooks/useInitialValue'\nimport useSetCursorEnd from './hooks/useSetCursorEnd'\nimport useMentionLink from './hooks/useMentionLink'\nimport useAnnotationsSync from './hooks/useAnnotationsSync'\nimport { useBlendedCategoryColor } from './hooks/useBlendedCategoryColor'\n\n// State management\nimport useAnnotationsUpload from './hooks/useAnnotationsUpload'\nimport { useFeedContext } from '../../context/FeedContext'\nimport { ActivityCategorySelect, isCategoryHidden, SavedAnnotationMetadata } from '../../index'\nimport { useDetailsPanelContext } from '@shared/context'\nimport { useProjectContext } from '@shared/context'\nimport { parseFilename } from '@shared/components'\n\nvar Delta = Quill.import('delta')\n\nconst mentionTypes = ['@', '@@', '@@@']\nexport const mentionTypeOptions = {\n '@@@': {\n id: 'task',\n },\n '@@': {\n id: 'version',\n },\n '@': {\n id: 'user',\n isCircle: true,\n },\n}\n\ninterface CommentInputProps {\n initValue: string | null\n initFiles?: any[]\n initCategory?: string | null\n data?: any\n onSubmit: (markdown: string, files: any[], data?: any) => Promise<void>\n isEditing?: boolean\n disabled?: boolean\n isLoading?: boolean\n isOpen: boolean\n onOpen?: () => void\n onClose?: () => void\n}\n\nconst CommentInput: FC<CommentInputProps> = ({\n initValue,\n initFiles = [],\n initCategory = null,\n data = {},\n onSubmit,\n isEditing,\n disabled,\n isLoading,\n isOpen,\n onOpen,\n onClose,\n}) => {\n const {\n projectName,\n entities,\n projectInfo,\n scope,\n feedFilter,\n mentionSuggestionsData,\n categories,\n isGuest,\n } = useFeedContext()\n\n const { hasLicense, onPowerFeature, user } = useDetailsPanelContext()\n const isAdmin = user?.data?.isAdmin\n\n const project = useProjectContext()\n\n const {\n users: mentionUsers,\n teams: mentionTeams,\n versions: mentionVersions,\n tasks: mentionTasks,\n } = mentionSuggestionsData || {}\n\n const [initHeight, setInitHeight] = useState(88)\n const [editorValue, setEditorValue] = useState('')\n // file uploads\n const [files, setFiles] = useState(initFiles)\n const [filesUploading, setFilesUploading] = useState([])\n const [isDropping, setIsDropping] = useState(false)\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const { annotations, removeAnnotation, goToAnnotation } = useAnnotationsSync({\n entityId: entities[0]?.id,\n filesUploading,\n })\n\n // MENTION STATES\n const [mention, setMention] = useState<null | any>(null)\n const [mentionSelectedIndex, setMentionSelectedIndex] = useState(0)\n // Prefix filter for mentions (e.g. 'team:' or 'user:')\n const [mentionPrefix, setMentionPrefix] = useState('')\n\n const clearMention = () => {\n setMention(null)\n setMentionSelectedIndex(0)\n setMentionPrefix('')\n }\n // CATEGORY STATE\n const [category, setCategory] = useState<null | string>(initCategory)\n const categoryOptions = categories.filter((cat) => cat.accessLevel >= 20)\n const categoryData = categories.find((cat) => cat.name === category)\n // Compute blended background color for category\n const blendedCategoryColor = useBlendedCategoryColor(categoryData?.color)\n // REFS\n const editorRef = useRef<any>(null)\n const editorContainerRef = useRef<HTMLDivElement>(null)\n\n const markdownRef = useRef<HTMLDivElement>(null)\n\n // if there is an initial value, set it so the editor is prefilled\n useInitialValue({\n markdownRef,\n initValue,\n setEditorValue,\n setInitHeight,\n isOpen: isOpen,\n filter: feedFilter,\n })\n\n // When editing, set selection to the end of the editor\n useSetCursorEnd({ initHeight, editorRef, isEditing })\n // create a new quill format for mentions and registers it\n useMentionLink({ projectName })\n\n // focus on editor when opened\n useEffect(() => {\n if (isOpen) {\n editorRef.current?.getEditor()?.enable()\n // block autofocus if opened from an annotation\n if (annotations.length > 0 && files.length === 0) {\n return\n }\n\n editorRef.current?.focus()\n }\n // We don't set annotations or files as useEffect dependencies, because we don't want to focus\n // the input if it's already open but annotations change (e.g. are removed).\n }, [isOpen, editorRef])\n\n mentionTypes.sort((a, b) => b.length - a.length)\n\n // Combine prefix filter with typed search for options filtering\n const mentionSearchWithPrefix = mentionPrefix + (mention?.search || '')\n\n const mentionOptions = useMemo(\n () =>\n getMentionOptions(\n mention?.type,\n {\n '@': () => getMentionUsers(mentionUsers, mentionTeams),\n '@@': () => getMentionVersions(mentionVersions, project),\n '@@@': () => getMentionTasks(mentionTasks, projectInfo.taskTypes),\n },\n mentionSearchWithPrefix || undefined,\n ),\n [mentionTasks, mentionVersions, mentionUsers, mentionTeams, mention?.type, mentionSearchWithPrefix],\n )\n\n // show first 5 and filter itself out\n const shownMentionOptions = mentionOptions.slice(0, 5)\n\n // triggered when a mention is selected\n const [newSelection, setNewSelection] = useState<null | number>()\n\n useEffect(() => {\n if (newSelection) {\n setNewSelection(null)\n // now we set selection to the end of the mention\n const quill = editorRef.current.getEditor()\n quill.setSelection(newSelection)\n }\n }, [newSelection])\n\n const handleSelectMention = (selectedOption: any) => {\n // get option text\n const quill = editorRef.current.getEditor()\n\n const typePrefix = mention.type // the type of mention: @, @@, @@@\n const search = typePrefix + (mention.search || '') // the full search string: @Tim\n const mentionLabel = typePrefix + selectedOption.label // the label of the mention: @Tim Bailey\n // @ts-expect-error\n const type = mentionTypeOptions[typePrefix] // the type of mention: user, version, task\n // Use the option's own type (e.g. 'team') if available, otherwise fall back to the mention type config\n const refType = selectedOption.type || type?.id\n const href = `${refType}:${selectedOption.id}` // the href of the mention: user:user.123 or team:Thunder boys\n\n // get selection delta\n const selection = quill.getSelection(true)\n const selectionIndex = selection?.index || 0\n const startIndex = selectionIndex - search.length // the start index of the search\n\n // first delete the search string\n quill.deleteText(startIndex, search.length)\n\n // insert embed link\n quill.insertText(startIndex, mentionLabel, 'mention', href)\n\n const endIndex = startIndex + mentionLabel.length\n\n // insert a space after the mention\n quill.updateContents(new Delta().retain(endIndex).insert(' '))\n\n // remove single \\n after mention\n quill.updateContents(new Delta().retain(endIndex + 1).delete(1))\n\n // set selection to the end of the mention + 1\n setNewSelection(endIndex + 1)\n\n // reset mention state\n clearMention()\n }\n\n const handleSelectChange = (option: any) => {\n handleSelectMention(option)\n }\n\n const handleChange = (content: string, delta: any, _: any, editor: any) => {\n let currentCharacter =\n (delta.ops[0] && delta.ops[0].insert) || (delta.ops[1] && delta.ops[1].insert)\n\n const tabOrEnter = currentCharacter === '\\n' || currentCharacter === '\\t'\n // find the first option\n const selectedOption = mentionOptions[mentionSelectedIndex]\n\n if (mention && tabOrEnter && selectedOption && !isGuest) {\n // get option text\n const retain = (delta.ops[0] && delta.ops[0].retain) || 0\n // prevent default\n\n // @ts-ignore\n handleSelectMention(selectedOption, retain)\n\n return\n }\n\n setEditorValue(content)\n\n const isDelete = delta.ops.length === 2 && !!delta.ops[1].delete\n\n if (!currentCharacter && isDelete) {\n currentCharacter = editor.getText(delta.ops[0].retain - 1, 1)\n }\n\n const isMention = mentionTypes.includes(currentCharacter)\n\n if (isMention) {\n const mentionIndex = delta.ops.findIndex((op: any) => 'insert' in op || 'delete' in op)\n const mention = currentCharacter\n let retain = mentionIndex === 0 ? 0 : delta.ops[mentionIndex - 1].retain\n if (isDelete) retain = retain - 1\n\n // for each mention denotation char, check if it is a mention\n // sort by length of mention denotation char\n let mentionMatch = null\n\n // loop through each mention denotation char, with longest first. First one to match is the one we want\n for (const chars of mentionTypes) {\n let isMatch = true\n // start with the last character\n if (chars.endsWith(mention)) {\n // loop through the chars backwards\n for (let i = chars.length - 1; i >= 0; i--) {\n // skip first character as that's already been checked\n if (i === 0) continue\n const char = chars[i - 1]\n const indexInDelta = retain - (chars.length - i)\n const valueCharAtIndex = editor.getText(indexInDelta, 1)\n if (valueCharAtIndex !== char) {\n isMatch = false\n break\n }\n }\n } else {\n isMatch = false\n }\n\n if (isMatch) {\n // console.log('match!!!', chars)\n mentionMatch = chars\n break\n }\n }\n\n if (mentionMatch) {\n setMention({\n type: mentionMatch,\n retain: retain,\n })\n } else {\n clearMention()\n }\n } else {\n // get full string between mention and new delta\n // This is where SEARCH is handled\n if (mention) {\n const retain = delta.ops[0].retain\n // if space is pressed, remove mention\n if (currentCharacter === ' ' || !retain) {\n clearMention()\n return\n }\n\n let distanceMentionToRetain = retain - mention.retain\n if (!isDelete) distanceMentionToRetain++\n const mentionFull = editor.getText(mention.retain, distanceMentionToRetain)\n const mentionSearch = mentionFull.replace(mention.type.slice(-1), '')\n // check for space in mentionFull\n if (mentionFull.includes(' ')) {\n clearMention()\n } else {\n setMention({\n ...mention,\n search: mentionSearch?.toLowerCase(),\n })\n }\n } else if (isDelete) {\n // backspace inside a mention deletes the whole mention\n const quill = editorRef.current.getEditor()\n const currentSelection = quill.getSelection(false)\n const currentFormat = quill.getFormat(currentSelection?.index, currentSelection?.length)\n if (currentFormat.mention) {\n const [lineBlock] = quill.getLine(currentSelection.index - 1) || []\n const ops = lineBlock?.cache?.delta?.ops || []\n const lastMentionOp = ops.reverse().find((op: any) => op.attributes?.mention)\n if (lastMentionOp) {\n const mentionLength = lastMentionOp.insert.length\n quill.deleteText(currentSelection.index - mentionLength, mentionLength)\n }\n }\n }\n }\n }\n\n const addTextToEditor = (type: string) => {\n // get editor retain\n const quill = editorRef.current.getEditor()\n\n let retain = quill.getSelection(true)?.index || 0\n\n // get character at retain\n const currentCharacter = quill.getText(retain - 1, 1)\n\n // if the current character is a character, increment retain\n const addSpace = currentCharacter !== ' ' && currentCharacter\n if (addSpace) {\n quill.insertText(retain, ' ')\n retain++\n }\n\n // This is hack AF, but it works\n typeWithDelay(quill, retain, type)\n }\n\n const handleMentionButton = (type: string) => {\n // first check if mention is already open\n if (mention) {\n const { type, retain, search = '' } = mention\n\n const quill = editorRef.current.getEditor()\n const length = type.length + search.length\n const start = retain - type.length + 1\n // delete the mention\n quill.deleteText(start, length)\n }\n\n addTextToEditor(type)\n }\n\n const handleOpenClick = () => {\n if (isOpen || disabled) return\n\n onOpen && onOpen()\n }\n\n const handleClose = () => {\n // get editor value\n const editor = editorRef.current.getEditor()\n const text = editor.getText()\n if (text.length < 2 || isEditing) {\n setEditorValue('')\n }\n\n // always close editor\n onClose && onClose()\n }\n\n const handleFileUploaded = ({ file, data }: any) => {\n const fileName = parseFilename(file.name)\n const newFile = {\n id: data.id,\n name: fileName,\n mime: file.type,\n size: file.size,\n order: files.length,\n }\n\n setFiles((prev) => [...prev, newFile])\n // remove from uploading\n setFilesUploading((prev) =>\n prev.filter((uploading: any) => parseFilename(uploading.name) !== fileName),\n )\n\n return newFile\n }\n\n const handleFileRemove = (id: string, name: string, isUnsavedAnnotation: boolean) => {\n if (isUnsavedAnnotation) {\n // remove from annotations (if it's an unsaved annotation)\n removeAnnotation?.(id)\n } else {\n // remove file from files\n setFiles((prev) => prev.filter((file) => file.id !== id))\n // remove from uploading\n setFilesUploading((prev) => {\n return prev.filter((file: any) => parseFilename(file.name) !== parseFilename(name))\n })\n }\n }\n\n const handleFileProgress = (e: any, file: any) => {\n const progress = Math.round((e.loaded * 100) / e.total)\n if (progress !== 100) {\n const fileName = parseFilename(file.name)\n const uploadProgress = {\n name: fileName,\n progress,\n type: file.type,\n order: files.length + filesUploading.length,\n }\n\n // @ts-ignore\n setFilesUploading((prev) => {\n // replace or add new progress\n const newProgress = prev.filter((name: any) => parseFilename(name.name) !== fileName)\n return [...newProgress, uploadProgress]\n })\n }\n }\n\n // when a file is not dropped onto the comment input\n const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {\n setIsDropping(false)\n // upload file\n handleFileDrop(e, projectName, handleFileProgress, handleFileUploaded)\n }\n\n const handleDragOver = (e: React.DragEvent<HTMLDivElement>) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDropping(true)\n }\n\n const uploadAnnotations = useAnnotationsUpload({\n projectName,\n onSuccess: handleFileUploaded,\n })\n\n const handleSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // upload any annotations first\n let annotationFiles = []\n let annotationMetadata: SavedAnnotationMetadata[] | undefined = undefined\n if (annotations.length) {\n const { files, metadata } = await uploadAnnotations(annotations)\n annotationFiles = files\n // get current files data\n const { annotations: annotationsData = [] } = data || {}\n // merge existing annotations data with new metadata\n annotationMetadata = [...annotationsData, ...metadata]\n }\n\n // convert to markdown\n const [markdown] = convertToMarkdown(editorValue)\n\n // remove img query params\n const markdownParsed = parseImages(markdown)\n\n const uploadedFiles = [...files, ...annotationFiles]\n\n const newData = {\n ...data,\n annotations: annotationMetadata, // could be undefined\n category: isGuest ? null : category, // guests cannot set category (it is done by default on backend)\n }\n\n if ((markdownParsed || uploadedFiles.length) && onSubmit) {\n try {\n await onSubmit(markdownParsed, uploadedFiles, newData)\n // only clear if onSubmit is successful\n setEditorValue('')\n setFiles([])\n } catch (error) {\n // error is handled in rtk query mutation\n return\n }\n }\n } catch (error) {\n console.error(error)\n toast.error('Something went wrong')\n } finally {\n setIsSubmitting(false)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (mention) {\n // close mention on escape\n if (e.key === 'Escape') {\n clearMention()\n return\n }\n\n // add top search of mention\n if (mention && e.key === 'Tab') {\n // we handle this in the onChange\n }\n\n const arrowDirection = e.key === 'ArrowUp' ? -1 : e.key === 'ArrowDown' ? 1 : 0\n\n if (arrowDirection) {\n // navigate through mentions\n e.preventDefault()\n let newIndex = mentionSelectedIndex + arrowDirection\n if (newIndex < 0) newIndex = shownMentionOptions.length - 1\n if (newIndex >= shownMentionOptions.length) newIndex = 0\n setMentionSelectedIndex(newIndex)\n }\n\n if (e.key === 'Enter') {\n // we handle this in the onChange\n }\n }\n\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n handleSubmit()\n }\n\n if (e.key === 'Escape') {\n handleClose()\n }\n }\n\n let quillMinHeight: number | undefined = isOpen ? initHeight + 41 : 44\n if (isEditing) quillMinHeight = undefined\n\n // QUILL CONFIG\n const modules = useMemo(\n () =>\n getModules({\n imageUploader: {\n projectName,\n onUpload: handleFileUploaded,\n onUploadProgress: handleFileProgress,\n },\n mentionTypeOptions,\n }),\n [projectName, setFiles, setFilesUploading],\n )\n\n const allFiles = [...annotations, ...(files || []), ...filesUploading].sort(\n (a, b) => a.order - b.order,\n )\n const compactGrid = allFiles.length > 3\n\n // disable version mentions for folders\n let mentionsError = null\n if (entities.length && entities[0].entityType === 'folder') {\n if (mention?.type === '@@') {\n mentionsError = 'Version mentions are disabled for folders'\n }\n }\n\n const getCommentPlaceholder = (isOpen?: boolean) => {\n if (disabled) {\n if (isGuest) return 'You do not have permission to comment.'\n return 'Commenting is disabled across multiple projects.'\n }\n\n if (isGuest || !isOpen) return 'Leave a comment'\n\n return 'Comment or mention with @user, @@version, @@@task...'\n }\n\n return (\n <>\n <Styled.AutoHeight\n className={clsx('comment-container', { isOpen, isEditing })}\n onDragOver={handleDragOver}\n onDragLeave={() => setIsDropping(false)}\n onDrop={handleDrop}\n onClick={() => setIsDropping(false)}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Styled.Comment\n className={clsx('block-shortcuts', {\n isOpen,\n isClosed: !isOpen || disabled,\n isEditing,\n isDropping,\n disabled,\n isLoading,\n isSubmitting,\n category: !!category && !isGuest,\n })}\n onKeyDown={handleKeyDown}\n onClick={handleOpenClick}\n $categoryPrimary={categoryData?.color}\n $categoryTertiary={blendedCategoryColor.primary}\n $categorySecondary={blendedCategoryColor.secondary}\n >\n <Styled.Markdown ref={markdownRef}>\n {/* this is purely used to translate the markdown into html for Editor */}\n <InputMarkdownConvert typeOptions={mentionTypeOptions} initValue={initValue} />\n </Styled.Markdown>\n\n {/* file uploads */}\n {isOpen && (\n <FilesGrid\n files={allFiles}\n isCompact={compactGrid || isEditing}\n onRemove={handleFileRemove}\n projectName={projectName}\n onAnnotationClick={goToAnnotation}\n style={{\n borderBottom: '1px solid var(--md-sys-color-outline-variant)',\n height: '100%',\n }}\n isEditing\n pt={{\n file: {\n style: {\n height: isEditing ? 70 : undefined,\n },\n },\n }}\n />\n )}\n {isOpen && !disabled ? (\n <QuillListStyles ref={editorContainerRef}>\n {!isGuest && (\n <ActivityCategorySelect\n value={category}\n categories={categoryOptions}\n onChange={(c) => setCategory(c)}\n isCompact={isEditing}\n hasPowerpack={hasLicense}\n onPowerFeature={onPowerFeature}\n isHidden={isCategoryHidden(categoryOptions, { isGuest, isAdmin })}\n style={{\n position: isEditing ? 'relative' : 'absolute',\n left: 4,\n top: isEditing ? 0 : 4,\n }}\n />\n )}\n\n <ReactQuill\n theme=\"snow\"\n style={{ minHeight: quillMinHeight, maxHeight: 300 }}\n ref={editorRef}\n value={editorValue}\n onChange={handleChange}\n readOnly={!isOpen}\n placeholder={getCommentPlaceholder(true)}\n modules={modules}\n formats={quillFormats}\n />\n </QuillListStyles>\n ) : (\n <Styled.Placeholder>{getCommentPlaceholder()}</Styled.Placeholder>\n )}\n\n <Styled.Footer>\n {!isGuest && (\n <Styled.Buttons>\n {/* mention a user */}\n <Button\n icon=\"person\"\n variant=\"text\"\n onClick={() => handleMentionButton('@')}\n data-tooltip={'Mention user'}\n data-shortcut={'@'}\n />\n {/* mention a version */}\n <Button\n icon=\"layers\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@')}\n data-tooltip={'Mention version'}\n data-shortcut={'@@'}\n />\n {/* mention a task */}\n <Button\n icon=\"check_circle\"\n variant=\"text\"\n onClick={() => handleMentionButton('@@@')}\n data-tooltip={'Mention task'}\n data-shortcut={'@@@'}\n />\n </Styled.Buttons>\n )}\n <Styled.Buttons style={{ marginLeft: 'auto' }}>\n {isEditing && (\n <Button variant=\"text\" onClick={handleClose}>\n Cancel\n </Button>\n )}\n <SaveButton\n label={isEditing ? 'Save' : 'Comment'}\n className=\"comment\"\n active={!!editorValue || !!files.length}\n onClick={handleSubmit}\n disabled={isLoading}\n />\n </Styled.Buttons>\n </Styled.Footer>\n\n <Styled.Dropzone className={clsx({ show: isDropping && isOpen })}>\n <Icon icon=\"cloud_upload\" />\n </Styled.Dropzone>\n </Styled.Comment>\n <CommentMentionSelect\n mention={mention}\n options={shownMentionOptions}\n onChange={handleSelectChange}\n onPrefixFilter={(prefix) => {\n setMentionPrefix(prefix)\n setMentionSelectedIndex(0)\n }}\n activePrefix={mentionPrefix ? mentionPrefix.replace(':', '') : undefined}\n types={mentionTypes}\n // @ts-ignore\n config={mentionTypeOptions[mention?.type]}\n noneFound={!shownMentionOptions.length && (mention?.search || mentionPrefix)}\n noneFoundAtAll={!shownMentionOptions.length && !mention?.search && !mentionPrefix}\n selectedIndex={mentionSelectedIndex}\n // @ts-ignore\n error={mentionsError}\n isGuest={isGuest}\n />\n </Styled.AutoHeight>\n </>\n )\n}\n\nexport default CommentInput\n"],"names":["Delta","Quill","mentionTypes","mentionTypeOptions","CommentInput","initValue","initFiles","initCategory","data","onSubmit","isEditing","disabled","isLoading","isOpen","onOpen","onClose","projectName","entities","projectInfo","scope","feedFilter","mentionSuggestionsData","categories","isGuest","useFeedContext","hasLicense","onPowerFeature","user","useDetailsPanelContext","isAdmin","project","useProjectContext","mentionUsers","mentionTeams","mentionVersions","mentionTasks","initHeight","setInitHeight","useState","editorValue","setEditorValue","files","setFiles","filesUploading","setFilesUploading","isDropping","setIsDropping","isSubmitting","setIsSubmitting","annotations","removeAnnotation","goToAnnotation","useAnnotationsSync","mention","setMention","mentionSelectedIndex","setMentionSelectedIndex","mentionPrefix","setMentionPrefix","clearMention","category","setCategory","categoryOptions","cat","categoryData","blendedCategoryColor","useBlendedCategoryColor","editorRef","useRef","editorContainerRef","markdownRef","useInitialValue","useSetCursorEnd","useMentionLink","useEffect","a","b","mentionSearchWithPrefix","mentionOptions","useMemo","getMentionOptions","getMentionUsers","getMentionVersions","getMentionTasks","shownMentionOptions","newSelection","setNewSelection","handleSelectMention","selectedOption","quill","typePrefix","search","mentionLabel","type","href","startIndex","endIndex","handleSelectChange","option","handleChange","content","delta","_","editor","currentCharacter","tabOrEnter","isDelete","mentionIndex","op","retain","mentionMatch","chars","isMatch","i","char","indexInDelta","distanceMentionToRetain","mentionFull","mentionSearch","currentSelection","lineBlock","lastMentionOp","mentionLength","addTextToEditor","typeWithDelay","handleMentionButton","length","start","handleOpenClick","handleClose","handleFileUploaded","file","fileName","parseFilename","newFile","prev","uploading","handleFileRemove","id","name","isUnsavedAnnotation","handleFileProgress","e","progress","uploadProgress","handleDrop","handleFileDrop","handleDragOver","uploadAnnotations","useAnnotationsUpload","handleSubmit","annotationFiles","annotationMetadata","metadata","annotationsData","markdown","convertToMarkdown","markdownParsed","parseImages","uploadedFiles","newData","error","toast","handleKeyDown","arrowDirection","newIndex","quillMinHeight","modules","getModules","allFiles","compactGrid","mentionsError","getCommentPlaceholder","jsx","Fragment","jsxs","Styled.AutoHeight","clsx","Styled.Comment","Styled.Markdown","InputMarkdownConvert","FilesGrid","QuillListStyles","ActivityCategorySelect","c","isCategoryHidden","ReactQuill","quillFormats","Styled.Placeholder","Styled.Footer","Styled.Buttons","Button","SaveButton","Styled.Dropzone","Icon","CommentMentionSelect","prefix"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../../_virtual/jsx-runtime.cjs.js");require("react");require("../../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../../components/Badge/Badge.cjs.js");require("../../../../components/Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../../components/LinksManager/CellEditingDialog.cjs.js");const l=require("react-toastify");require("../../../../api/base/client.cjs.js");require("../../../../api/generated/graphql.cjs.js");require("../../../../api/generated/graphqlLinks.cjs.js");require("../../../../api/generated/access.cjs.js");require("../../../../api/generated/actions.cjs.js");require("../../../../api/generated/activityFeed.cjs.js");require("../../../../api/generated/addons.cjs.js");require("../../../../api/generated/anatomy.cjs.js");require("../../../../api/generated/attributes.cjs.js");require("../../../../api/generated/authentication.cjs.js");require("../../../../api/generated/bundles.cjs.js");require("../../../../api/generated/configuration.cjs.js");require("../../../../api/generated/dataImport.cjs.js");require("../../../../api/generated/desktop.cjs.js");require("../../../../api/generated/entityLists.cjs.js");require("../../../../api/generated/events.cjs.js");require("../../../../api/generated/files.cjs.js");require("../../../../api/generated/folders.cjs.js");require("../../../../api/generated/inbox.cjs.js");require("../../../../api/generated/links.cjs.js");require("../../../../api/generated/market.cjs.js");require("../../../../api/generated/onboarding.cjs.js");require("../../../../api/generated/operations.cjs.js");require("../../../../api/generated/products.cjs.js");require("../../../../api/generated/projectDashboard.cjs.js");require("../../../../api/generated/projects.cjs.js");require("../../../../api/generated/projectFolders.cjs.js");require("../../../../api/generated/reviewables.cjs.js");require("../../../../api/generated/services.cjs.js");require("../../../../api/generated/system.cjs.js");require("../../../../api/generated/tasks.cjs.js");require("../../../../api/generated/teams.cjs.js");require("../../../../api/generated/thumbnails.cjs.js");require("../../../../api/generated/uRIs.cjs.js");require("../../../../api/generated/users.cjs.js");require("../../../../api/generated/versions.cjs.js");require("../../../../api/generated/workfiles.cjs.js");require("../../../../api/generated/ynputCloud.cjs.js");require("../../../../api/generated/grouping.cjs.js");require("../../../../api/generated/views.cjs.js");require("../../../../api/queries/actions/getActions.cjs.js");require("../../../../api/queries/activities/getActivities.cjs.js");require("../../../../api/queries/activities/updateActivities.cjs.js");require("../../../../api/queries/activities/updateReaction.cjs.js");require("../../../../api/queries/activities/getMentions.cjs.js");require("../../../../api/queries/activities/getCategories.cjs.js");require("../../../../api/queries/addons/getAddons.cjs.js");require("../../../../api/queries/addons/updateAddons.cjs.js");require("../../../../api/queries/attributes/getAttributes.cjs.js");require("../../../../api/queries/attributes/updateAttributes.cjs.js");require("../../../../api/queries/authentication/getAuthentication.cjs.js");require("../../../../api/queries/cloud/cloud.cjs.js");require("../../../../api/queries/config/getConfig.cjs.js");require("../../../../api/queries/config/updateConfig.cjs.js");require("../../../../api/queries/entities/getEntity.cjs.js");require("../../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../../api/queries/overview/getOverview.cjs.js");require("../../../../api/queries/overview/updateOverview.cjs.js");require("../../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../../api/queries/links/getEntityLinks.cjs.js");require("../../../../api/queries/entities/updateEntity.cjs.js");require("../../../../api/queries/entityLists/getLists.cjs.js");require("../../../../api/queries/entityLists/updateLists.cjs.js");require("../../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../../api/queries/entityLists/listFolders.cjs.js");require("../../../../api/queries/folders/getFolders.cjs.js");require("../../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../../api/queries/grouping/getGrouping.cjs.js");require("../../../../api/queries/links/updateLinks.cjs.js");require("../../../../api/queries/links/getLinks.cjs.js");require("../../../../api/queries/permissions/getPermissions.cjs.js");require("../../../../api/queries/products/createProduct.cjs.js");require("../../../../api/queries/products/getFolderProducts.cjs.js");require("../../../../api/queries/project/getProject.cjs.js");require("../../../../api/queries/project/updateProject.cjs.js");require("../../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../../api/queries/review/getReview.cjs.js");require("../../../../api/queries/review/updateReview.cjs.js");require("../../../../api/queries/share/share.cjs.js");require("../../../../api/queries/system/getSystem.cjs.js");require("../../../../api/queries/tasks/getTasks.cjs.js");require("../../../../api/queries/tasks/updateTasks.cjs.js");require("../../../../api/queries/teams/getTeams.cjs.js");require("../../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../../api/queries/users/getUsers.cjs.js");require("../../../../api/queries/users/updateUsers.cjs.js");require("../../../../api/queries/users/guests.cjs.js");require("../../../../api/queries/versions/updateVersions.cjs.js");require("../../../../api/queries/views/getViews.cjs.js");require("../../../../api/queries/views/updateViews.cjs.js");require("../../../../api/queries/watchers/getWatchers.cjs.js");require("../../../../api/queries/uris/getUris.cjs.js");require("../../../../../../_virtual/index.cjs.js");require("../../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../../../util/pubsub.cjs.js");require("../../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("./quillToMarkdown.cjs.js");require("../../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("./modules/index.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");require("../../../../../../_virtual/runtime.cjs.js");require("../../../../../../_virtual/semver.cjs.js");require("../../../../context/PowerpackContextInstance.cjs.js");require("../../../../context/UriContext.cjs.js");require("../../../../context/DetailsPanelContextInstance.cjs.js");require("../../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");require("../../../../context/ProjectContext.cjs.js");require("../../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../context/FeedContext.cjs.js");require("../Tooltips/UserTooltipItem.cjs.js");require("../Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("./CommentInput.cjs.js");require("../ReactionContainer/Reactions.styled.cjs.js");require("../FilesGrid/FilesGrid.styled.cjs.js");require("../FileUploadCard/FileUploadCard.styled.cjs.js");require("../ActivityComment/ActivityComment.styled.cjs.js");require("../ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../ActivityStatus/ActivityStatus.cjs.js");require("../ActivityHeader/ActivityHeader.styled.cjs.js");require("../ActivityDate.cjs.js");require("../ActivityCategorySelect/CategoryTag.cjs.js");require("../ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../ActivityVersions/ActivityVersions.styled.cjs.js");require("../ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed.styled.cjs.js");require("../../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../../../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../Slicer/components/Slicer.cjs.js");require("../../../Slicer/context/SlicerContext.cjs.js");require("../../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../Actions/Actions.styled.cjs.js");require("../../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../Actions/ActionIcon.cjs.js");require("../../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../Views/context/ViewsContextInstance.cjs.js");require("../../../Views/Views.styled.cjs.js");require("../../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../ListTable/ListTableRow.cjs.js");require("../../../ListTable/ListTable.styled.cjs.js");require("../../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");const o=require("axios");require("../../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");const c=require("../../../../components/ReviewablesList/useReviewablesUpload.cjs.js");require("../../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../../components/Feedback/SupportBubble.cjs.js");require("../../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../../components/Powerpack/CTAButton.cjs.js");require("../../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../../components/StyledLink/StyledLink.cjs.js");require("../../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../../components/Watchers/Watchers.cjs.js");require("../../../../components/Menu/Menu.styled.cjs.js");require("../../../../components/Menu/MenuItem.cjs.js");require("../../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../../components/ColumnHeaderMenuUI.cjs.js");const p=e=>{const t=/!\[.*?\]\((.*?)\)/g,i=e.match(t);let u=e;return i&&i.forEach(r=>{if(!r.includes("http"))return;const a=r.match(/\(([^)]+)\)/)[1],q=a.split("?")[0];u=e.replace(a,q)}),u};async function d(e,t,i,u=1){for(let r=0;r<i.length;r++)e.insertText(t+r,i[r]),await new Promise(a=>setTimeout(a,u))}const f=new AbortController,m=o.CancelToken,h=m.source(),s=(e,t,i)=>new Promise((u,r)=>{new FormData().append("image",e);const q={signal:f.signal,cancelToken:h.token,onUploadProgress:n=>i&&i(n,e),headers:{"Content-Type":e.type,"x-file-name":c.parseFilename(e.name)}};o.post(`/api/projects/${t}/files`,e,q).then(n=>{u({file:e,data:n.data})}).catch(n=>{console.error(n),r({message:"Upload failed: "+n.response.data.detail})})}),g=(e,t,i,u)=>{e.preventDefault(),e.stopPropagation();let r=e.dataTransfer.files;if(r?.length){if(r.length===0)return;for(const a of r)s(a,t,i).then(q=>u(q),q=>{l.toast.error("Upload failed: "+q.response.data.detail),console.warn(q)})}};exports.handleFileDrop=g;exports.parseImages=p;exports.typeWithDelay=d;exports.uploadFile=s;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("../../../../../../_virtual/jsx-runtime.cjs.js");require("react");require("../../../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("@ynput/ayon-react-components");require("../../../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../../../components/AccessUser/AccessUser.cjs.js");require("clsx");require("../../../../components/AttributeEditor/AttributeEditor.cjs.js");require("../../../../components/AttributeEditor/attributeTypeMap.cjs.js");require("../../../../components/Badge/Badge.cjs.js");require("../../../../components/Chips/Chips.cjs.js");require("react-dom");require("date-fns");require("../../../../components/DateRangePicker/DateRangePicker.styled.cjs.js");require("../../../../components/LinksManager/CellEditingDialog.cjs.js");const l=require("react-toastify");require("../../../../api/base/client.cjs.js");require("../../../../api/generated/graphql.cjs.js");require("../../../../api/generated/graphqlLinks.cjs.js");require("../../../../api/generated/access.cjs.js");require("../../../../api/generated/actions.cjs.js");require("../../../../api/generated/activityFeed.cjs.js");require("../../../../api/generated/addons.cjs.js");require("../../../../api/generated/anatomy.cjs.js");require("../../../../api/generated/attributes.cjs.js");require("../../../../api/generated/authentication.cjs.js");require("../../../../api/generated/bundles.cjs.js");require("../../../../api/generated/configuration.cjs.js");require("../../../../api/generated/dataImport.cjs.js");require("../../../../api/generated/desktop.cjs.js");require("../../../../api/generated/entityLists.cjs.js");require("../../../../api/generated/events.cjs.js");require("../../../../api/generated/files.cjs.js");require("../../../../api/generated/folders.cjs.js");require("../../../../api/generated/inbox.cjs.js");require("../../../../api/generated/links.cjs.js");require("../../../../api/generated/market.cjs.js");require("../../../../api/generated/onboarding.cjs.js");require("../../../../api/generated/operations.cjs.js");require("../../../../api/generated/products.cjs.js");require("../../../../api/generated/projectDashboard.cjs.js");require("../../../../api/generated/projects.cjs.js");require("../../../../api/generated/projectFolders.cjs.js");require("../../../../api/generated/reviewables.cjs.js");require("../../../../api/generated/services.cjs.js");require("../../../../api/generated/system.cjs.js");require("../../../../api/generated/tasks.cjs.js");require("../../../../api/generated/teams.cjs.js");require("../../../../api/generated/thumbnails.cjs.js");require("../../../../api/generated/uRIs.cjs.js");require("../../../../api/generated/users.cjs.js");require("../../../../api/generated/versions.cjs.js");require("../../../../api/generated/workfiles.cjs.js");require("../../../../api/generated/ynputCloud.cjs.js");require("../../../../api/generated/grouping.cjs.js");require("../../../../api/generated/views.cjs.js");require("../../../../api/queries/actions/getActions.cjs.js");require("../../../../api/queries/activities/getActivities.cjs.js");require("../../../../api/queries/activities/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/columnStats/metricTargets.cjs.js");require("../../../../api/queries/config/getConfig.cjs.js");require("../../../../api/queries/config/updateConfig.cjs.js");require("../../../../api/queries/entities/getEntity.cjs.js");require("../../../../api/queries/entities/getEntityPanel.cjs.js");require("../../../../api/queries/overview/getOverview.cjs.js");require("../../../../api/queries/overview/updateOverview.cjs.js");require("../../../../api/queries/versions/getVersionsProducts.cjs.js");require("../../../../api/queries/links/getEntityLinks.cjs.js");require("../../../../api/queries/entities/updateEntity.cjs.js");require("../../../../api/queries/entityLists/getLists.cjs.js");require("../../../../api/queries/entityLists/updateLists.cjs.js");require("../../../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../../../api/queries/entityLists/listFolders.cjs.js");require("../../../../api/queries/folders/getFolders.cjs.js");require("../../../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../../../api/queries/grouping/getGrouping.cjs.js");require("../../../../api/queries/links/updateLinks.cjs.js");require("../../../../api/queries/links/getLinks.cjs.js");require("../../../../api/queries/permissions/getPermissions.cjs.js");require("../../../../api/queries/products/createProduct.cjs.js");require("../../../../api/queries/products/getFolderProducts.cjs.js");require("../../../../api/queries/project/getProject.cjs.js");require("../../../../api/queries/project/updateProject.cjs.js");require("../../../../api/queries/projectFolders/projectFolders.cjs.js");require("../../../../api/queries/review/getReview.cjs.js");require("../../../../api/queries/review/updateReview.cjs.js");require("../../../../api/queries/share/share.cjs.js");require("../../../../api/queries/system/getSystem.cjs.js");require("../../../../api/queries/tasks/getTasks.cjs.js");require("../../../../api/queries/tasks/updateTasks.cjs.js");require("../../../../api/queries/teams/getTeams.cjs.js");require("../../../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../../../api/queries/users/getUsers.cjs.js");require("../../../../api/queries/users/updateUsers.cjs.js");require("../../../../api/queries/users/guests.cjs.js");require("../../../../api/queries/versions/updateVersions.cjs.js");require("../../../../api/queries/views/getViews.cjs.js");require("../../../../api/queries/views/updateViews.cjs.js");require("../../../../api/queries/watchers/getWatchers.cjs.js");require("../../../../api/queries/uris/getUris.cjs.js");require("../../../../../../_virtual/index.cjs.js");require("../../../../../../node_modules/refractor/lib/common.cjs.js");require("../../../../../../node_modules/refractor/lib/all.cjs.js");;/* empty css */require("lodash");require("uuid");require("../../../../util/pubsub.cjs.js");require("../../../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("react-quill-ayon");require("../../../../components/DetailsPanelDetails/BorderedSection.cjs.js");require("../../../../components/QuillListStyles/QuillListStyles.cjs.js");require("../../../../components/DetailsPanelDetails/DescriptionSection.styles.cjs.js");require("react-markdown");require("remark-gfm");require("rehype-raw");require("./quillToMarkdown.cjs.js");require("../../../../components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js");require("./modules/index.cjs.js");require("../../../../context/RemoteModulesContext.cjs.js");require("../../../../../../_virtual/runtime.cjs.js");require("../../../../../../_virtual/semver.cjs.js");require("../../../../context/PowerpackContextInstance.cjs.js");require("../../../../context/UriContext.cjs.js");require("../../../../context/DetailsPanelContextInstance.cjs.js");require("../../../../context/SubtasksModulesContextInstance.cjs.js");require("../../../../context/ThumbnailUploaderContext.cjs.js");require("../../../../context/SettingsPanelContext.cjs.js");require("../../../../context/pip/PiPProvider.cjs.js");require("../../../../context/pip/PiPWrapper.cjs.js");require("../../../../context/AddonProjectContext.cjs.js");require("../../../../context/AddonContext.cjs.js");require("../../../../context/MoveEntityContext.cjs.js");require("../../../../context/MenuContext.cjs.js");require("../../../../context/WebsocketContext.cjs.js");require("../../../../context/GlobalContext.cjs.js");require("../../../../context/ProjectContext.cjs.js");require("../../../../context/ProjectFoldersContext.cjs.js");require("react-redux");require("custom-protocol-check");require("../../../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../../../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../../../components/DetailsPanelDetails/FieldLabel.cjs.js");require("../../../../components/DoneCheckbox/DoneCheckbox.cjs.js");require("../../../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("../../context/FeedContext.cjs.js");require("../Tooltips/UserTooltipItem.cjs.js");require("../Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Tooltips/TeamTooltip/TeamTooltip.styled.cjs.js");require("../Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../FileUploadPreview/Mimes/TextMime.cjs.js");require("remark-emoji");require("remark-directive");require("remark-directive-rehype");require("./CommentInput.cjs.js");require("../ReactionContainer/Reactions.styled.cjs.js");require("../FilesGrid/FilesGrid.styled.cjs.js");require("../FileUploadCard/FileUploadCard.styled.cjs.js");require("../ActivityComment/ActivityComment.styled.cjs.js");require("../ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../ActivityStatus/ActivityStatus.cjs.js");require("../ActivityHeader/ActivityHeader.styled.cjs.js");require("../ActivityDate.cjs.js");require("../ActivityCategorySelect/CategoryTag.cjs.js");require("../ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../ActivityVersions/ActivityVersions.styled.cjs.js");require("../ActivityGroup/ActivityGroup.styled.cjs.js");require("../../Feed.styled.cjs.js");require("../../../DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js");require("../ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../../../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../../../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EnumCellValue.cjs.js");require("../../../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../../../ProjectTreeTable/widgets/MarkdownWidget.cjs.js");require("../../../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../../../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../../../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../../../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../../../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../../../components/LinksManager/LinksManager.styled.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../../../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../../../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../../../ProjectTreeTable/context/CellEditingContext.cjs.js");require("../../../../components/SearchFilter/filterDates.cjs.js");require("short-uuid");require("../../../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../../../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../../../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../../../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../../../ProjectTreeTable/components/DeleteConfirmContent.cjs.js");require("../../../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../../../ProjectTreeTable/components/SelectionCell.cjs.js");require("../../../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../../../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../../../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../../../ProjectTreeTable/components/TableFooterRow.cjs.js");require("../../../EntityPickerDialog/EntityPickerDialog.cjs.js");require("../../../Slicer/components/Slicer.cjs.js");require("../../../Slicer/context/SlicerContext.cjs.js");require("../../../Slicer/hooks/useTableDataBySlice.cjs.js");require("../../../DetailsPanel/DetailsPanel.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelTabs/DetailsPanelTabs.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("../../../../components/PlayableIcon/PlayableIcon.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFiles/DetailsPanelFiles.cjs.js");require("../../../DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js");require("../../../DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("../../../DetailsPanel/components/DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../../../Actions/Actions.styled.cjs.js");require("../../../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../../../Actions/ActionIcon.cjs.js");require("../../../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../../Views/context/ViewsContextInstance.cjs.js");require("../../../Views/Views.styled.cjs.js");require("../../../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../../../ListTable/ListTableRow.cjs.js");require("../../../ListTable/ListTable.styled.cjs.js");require("../../../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");const o=require("axios");require("../../../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../../../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");const c=require("../../../../components/ReviewablesList/useReviewablesUpload.cjs.js");require("../../../../components/EntityPath/EntityPath.styled.cjs.js");require("../../../../components/EntityPath/SegmentProvider.cjs.js");require("../../../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../../../components/Feedback/FeedbackContextInstance.cjs.js");require("../../../../components/Feedback/SupportBubble.cjs.js");require("../../../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../../../components/Powerpack/PowerpackButton.cjs.js");require("../../../../components/Powerpack/FreeTrialLink.cjs.js");require("../../../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../../../components/Powerpack/CTAButton.cjs.js");require("../../../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../../../components/SizeSlider/SizeSlider.cjs.js");require("../../../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");require("../../../../components/StyledLink/StyledLink.cjs.js");require("../../../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../../../components/Thumbnail/StackedThumbnails.cjs.js");require("../../../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../../../components/Watchers/Watchers.cjs.js");require("../../../../components/Menu/Menu.styled.cjs.js");require("../../../../components/Menu/MenuItem.cjs.js");require("../../../../components/ReviewablesSelector/ReviewablesSelector.cjs.js");require("../../../../components/ColumnHeaderMenuUI.cjs.js");const p=e=>{const t=/!\[.*?\]\((.*?)\)/g,i=e.match(t);let u=e;return i&&i.forEach(r=>{if(!r.includes("http"))return;const a=r.match(/\(([^)]+)\)/)[1],q=a.split("?")[0];u=e.replace(a,q)}),u};async function d(e,t,i,u=1){for(let r=0;r<i.length;r++)e.insertText(t+r,i[r]),await new Promise(a=>setTimeout(a,u))}const f=new AbortController,m=o.CancelToken,h=m.source(),s=(e,t,i)=>new Promise((u,r)=>{new FormData().append("image",e);const q={signal:f.signal,cancelToken:h.token,onUploadProgress:n=>i&&i(n,e),headers:{"Content-Type":e.type,"x-file-name":c.parseFilename(e.name)}};o.post(`/api/projects/${t}/files`,e,q).then(n=>{u({file:e,data:n.data})}).catch(n=>{console.error(n),r({message:"Upload failed: "+n.response.data.detail})})}),g=(e,t,i,u)=>{e.preventDefault(),e.stopPropagation();let r=e.dataTransfer.files;if(r?.length){if(r.length===0)return;for(const a of r)s(a,t,i).then(q=>u(q),q=>{l.toast.error("Upload failed: "+q.response.data.detail),console.warn(q)})}};exports.handleFileDrop=g;exports.parseImages=p;exports.typeWithDelay=d;exports.uploadFile=s;
|
|
2
2
|
//# sourceMappingURL=helpers.cjs.js.map
|