@ynput/ayon-frontend-shared 0.3.42 → 0.3.43
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 +22 -23
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +218 -219
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +18 -21
- 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.cjs6.js +1 -1
- package/dist/_virtual/index.cjs8.js +1 -1
- 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.es6.js +2 -2
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +183 -182
- package/dist/api.es.js.map +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +34 -30
- package/dist/hooks.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +9 -10
- package/dist/index.es.js.map +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-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/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +15 -10
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +76 -214
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js +12 -12
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js +28 -78
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/getActivities.es.js +176 -73
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +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 +8 -1
- 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 +26 -26
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js +32 -28
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -1
- 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 +3 -4
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/updateEntity.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 +12 -13
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listFolders.es.js +8 -9
- package/dist/shared/src/api/queries/entityLists/listFolders.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 +3 -4
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js +2 -3
- package/dist/shared/src/api/queries/links/getEntityLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js +1 -1
- package/dist/shared/src/api/queries/links/getLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/links/getLinks.es.js +60 -119
- package/dist/shared/src/api/queries/links/getLinks.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 +166 -162
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +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 +1 -3
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js +12 -13
- package/dist/shared/src/api/queries/projectFolders/projectFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js +1 -1
- package/dist/shared/src/api/queries/review/getReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/getReview.es.js +78 -133
- package/dist/shared/src/api/queries/review/getReview.es.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js +1 -1
- package/dist/shared/src/api/queries/review/updateReview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/review/updateReview.es.js +1 -1
- package/dist/shared/src/api/queries/review/updateReview.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 +6 -7
- 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 +111 -110
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.cjs.js.map +1 -1
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.es.js +8 -9
- package/dist/shared/src/components/AttributeEditor/attributeTypeMap.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 +2 -3
- 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 +2 -3
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +2 -3
- package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js +2 -3
- package/dist/shared/src/components/DetailsPanelDetails/DetailsSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.es.js +2 -3
- package/dist/shared/src/components/DetailsPanelDetails/FieldLabel.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 +2 -3
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js +2 -3
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityFormData.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.es.js +2 -3
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useMentionSystem.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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +4 -5
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +0 -1
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +4 -5
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +3 -4
- package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +6 -7
- 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 +2 -3
- 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 +4 -5
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +2 -3
- 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 +2 -3
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +2 -3
- 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 +2 -3
- 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 +6 -7
- 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 +2 -3
- package/dist/shared/src/components/Watchers/Watchers.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 +2 -3
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/Actions.es.js +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.es.js +2 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/LinkedTaskRow.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 +2 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js +2 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.es.js +2 -3
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/components/ShareDialog.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 +2 -3
- 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 +2 -3
- 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 +16 -17
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +2 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +2 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +2 -3
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.es.js +2 -3
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useExpandedWithInitialFolders.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 +2 -3
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.es.js +4 -5
- package/dist/shared/src/containers/EntityPickerDialog/util/buildEntityPickerTableData.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 +3 -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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +2 -3
- package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +4 -5
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.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 +2 -3
- 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 +2 -3
- 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 +6 -7
- 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 +2 -3
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +2 -3
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.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 +2 -3
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.es.js +2 -3
- package/dist/shared/src/containers/Feed/components/FeedSearchFilter.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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +9 -10
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +2 -3
- package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +2 -3
- package/dist/shared/src/containers/Feed/hooks/useCommentMutations.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 +2 -3
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +2 -3
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js +2 -3
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionTasks.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.es.js +2 -3
- package/dist/shared/src/containers/Feed/mentionHelpers/getMentionVersions.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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +523 -526
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +65 -66
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +24 -5
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +183 -41
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +5 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +116 -113
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.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 +2 -3
- 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 +4 -5
- 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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.es.js +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/context/clipboard/clipboardValidation.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 +2 -3
- 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 +5 -6
- 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 +64 -62
- 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 +2 -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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +2 -3
- 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 +2 -3
- 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 +176 -189
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.es.js +8 -8
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSelectedFolders.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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +13 -14
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- 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 +2 -3
- 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 +3 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.es.js +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CommentsWidget.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 +4 -5
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +2 -3
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +2 -3
- package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js +2 -2
- package/dist/shared/src/containers/Slicer/components/Slicer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/Slicer.es.js +22 -22
- package/dist/shared/src/containers/Slicer/components/Slicer.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 +2 -3
- 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 +2 -3
- 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 +86 -237
- 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 +2 -3
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.es.js +11 -14
- package/dist/shared/src/containers/Slicer/hooks/useFiltersWithHierarchy.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 +2 -3
- 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 +39 -50
- 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 +2 -3
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js +2 -3
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRemotes.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js +26 -43
- package/dist/shared/src/containers/Slicer/hooks/useSlicerRowSelection.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.es.js +4 -5
- package/dist/shared/src/containers/Slicer/hooks/useSlicerSplitter.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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js +7 -7
- package/dist/shared/src/containers/Slicer/util/createFilterFromSlicer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.es.js +2 -3
- package/dist/shared/src/containers/Views/ViewItem/ViewItem.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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +4 -5
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.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 +2 -3
- 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 +5 -6
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +4 -5
- 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 +26 -26
- 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 +4 -5
- 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 +6 -7
- 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 +4 -5
- 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 +4 -5
- 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 +4 -5
- 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 +4 -5
- 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 +5 -6
- 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 +38 -36
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetProductionAddon.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetProductionAddon.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetProductionAddon.es.js +2 -3
- package/dist/shared/src/hooks/useGetProductionAddon.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 +2 -3
- 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 +2 -3
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useLocalStorage.cjs.js +1 -1
- package/dist/shared/src/hooks/useLocalStorage.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useLocalStorage.es.js +3 -1
- package/dist/shared/src/hooks/useLocalStorage.es.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.es.js +2 -3
- package/dist/shared/src/hooks/useReviewablesKeyboardNavigation.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 +4 -5
- 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 +2 -3
- package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
- package/dist/shared/src/hooks/useSessionStorage.cjs.js +2 -0
- package/dist/shared/src/hooks/useSessionStorage.cjs.js.map +1 -0
- package/dist/shared/src/hooks/useSessionStorage.es.js +60 -0
- package/dist/shared/src/hooks/useSessionStorage.es.js.map +1 -0
- 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 +2 -3
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/checkName.cjs.js.map +1 -1
- package/dist/shared/src/util/checkName.es.js.map +1 -1
- package/dist/shared/src/util/getAttributeIcon.cjs.js.map +1 -1
- package/dist/shared/src/util/getAttributeIcon.es.js.map +1 -1
- package/dist/shared/src/util/getBundleMode.cjs.js +1 -1
- package/dist/shared/src/util/getBundleMode.cjs.js.map +1 -1
- package/dist/shared/src/util/getBundleMode.es.js +3 -4
- package/dist/shared/src/util/getBundleMode.es.js.map +1 -1
- package/dist/shared/src/util/getGroupByDataType.cjs.js.map +1 -1
- package/dist/shared/src/util/getGroupByDataType.es.js.map +1 -1
- package/dist/shared/src/util/getPriorityOptions.cjs.js.map +1 -1
- package/dist/shared/src/util/getPriorityOptions.es.js.map +1 -1
- package/dist/shared/src/util/iconUtils.cjs.js.map +1 -1
- package/dist/shared/src/util/iconUtils.es.js.map +1 -1
- package/dist/types/api/generated/graphql.d.ts +208 -273
- package/dist/types/api/generated/graphqlLinks.d.ts +11 -7
- package/dist/types/api/queries/activities/getActivities.d.ts +2297 -1448
- package/dist/types/api/queries/activities/index.d.ts +0 -1
- package/dist/types/api/queries/activities/util/activityRealtimeHandler.d.ts +21 -1
- package/dist/types/api/queries/columnStats/columnStats.d.ts +1 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +295 -290
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +231 -226
- package/dist/types/api/queries/entities/updateEntity.d.ts +231 -226
- package/dist/types/api/queries/entityLists/getLists.d.ts +1495 -1490
- package/dist/types/api/queries/entityLists/listItemsColumnStats.d.ts +96 -96
- package/dist/types/api/queries/folders/getFolderDeleteInfo.d.ts +65 -65
- package/dist/types/api/queries/overview/getOverview.d.ts +858 -771
- package/dist/types/api/queries/products/getFolderProducts.d.ts +32 -32
- package/dist/types/api/queries/project/getProject.d.ts +471 -466
- package/dist/types/api/queries/review/getReview.d.ts +2 -2
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +343 -338
- package/dist/types/api/queries/users/getUsers.d.ts +425 -420
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +1006 -996
- package/dist/types/api/queries/versions/updateVersions.d.ts +32 -32
- package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +36 -36
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/hooks/useSelectedFolders.d.ts +2 -4
- package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +0 -29
- package/dist/types/containers/Slicer/context/SlicerContext.d.ts +3 -4
- package/dist/types/containers/Slicer/hooks/useFiltersWithHierarchy.d.ts +2 -2
- package/dist/types/containers/Slicer/hooks/useSlicerRowSelection.d.ts +1 -3
- package/dist/types/containers/Slicer/types.d.ts +0 -10
- package/dist/types/containers/Slicer/util/createFilterFromSlicer.d.ts +3 -2
- package/dist/types/containers/Slicer/util/getSelectionDataState.d.ts +1 -1
- package/dist/types/containers/Slicer/util/index.d.ts +0 -1
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useSessionStorage.d.ts +4 -0
- package/dist/types/util/checkName.d.ts +1 -1
- package/dist/types/util/getAttributeIcon.d.ts +1 -1
- package/dist/types/util/getGroupByDataType.d.ts +1 -1
- package/dist/types/util/getPriorityOptions.d.ts +2 -1
- package/dist/types/util/iconUtils.d.ts +1 -1
- package/package.json +1 -1
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +0 -2
- package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +0 -1
- package/dist/shared/src/api/queries/activities/updateActivities.es.js +0 -108
- package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js +0 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.cjs.js.map +0 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js +0 -27
- package/dist/shared/src/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.es.js.map +0 -1
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js +0 -2
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.cjs.js.map +0 -1
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js +0 -8
- package/dist/shared/src/containers/Slicer/util/getSelectionDataState.es.js.map +0 -1
- package/dist/types/api/queries/activities/updateActivities.d.ts +0 -1336
- package/dist/types/containers/ProjectTreeTable/hooks/usePrefetchFolderTasks.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.cjs.js","sources":["../../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, ReactNode } from 'react'\nimport * as Styled from './Menu.styled'\nimport { MenuList } from './MenuList'\nimport { MENU_PORTAL_CONTENT_ID } from './MenuContainer'\nimport { copyToClipboard } from '@shared/util'\nimport { Button } from '@ynput/ayon-react-components'\nimport { PowerpackFeature, useMenuContext, usePowerpack } from '@shared/context'\n\nexport interface MenuItemType {\n id: string\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n onClick?: (e: React.MouseEvent) => void\n link?: string\n disableClose?: boolean\n disabled?: boolean\n powerFeature?: PowerpackFeature\n active?: boolean\n hidden?: boolean\n node?: ReactNode\n [key: string]: any\n}\n\ninterface SubMenu {\n id: string\n items: MenuItemType[]\n level: number\n parentRef?: HTMLElement\n style?: React.CSSProperties\n placement?: 'left' | 'right'\n}\n\ninterface MenuProps {\n menu?: MenuItemType[]\n onClose?: () => void\n header?: ReactNode\n footer?: string\n}\n\nexport const Menu: React.FC<MenuProps> = ({ menu = [], onClose, header, footer = '' }) => {\n const { setPowerpackDialog } = usePowerpack()\n const { setMenuOpen } = useMenuContext()\n\n const [subMenus, setSubMenus] = useState<SubMenu[]>([])\n // When a menu item is clicked, the following happens:\n const handleClick = (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => {\n // this is handled by Link component inside the MenuItem\n if (url) return onClose?.()\n\n onClick?.(e)\n\n if (!disableClose && onClose) onClose()\n }\n\n const onMenuEnter = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[]; parentEl?: HTMLElement | null },\n ) => {\n // check to see if we need to open a submenu\n if (menu.items.length) {\n // yes, there is a submenu\n // open it if it is not already open\n if (!subMenus.find((m) => m.id === menu.id)) {\n // also close any other submenus on the same level\n // Prefer the explicit element passed from the source MenuItem ref; fall back to\n // currentTarget (the <li>) over target (which can be a nested span/icon).\n const parentEl =\n menu.parentEl ?? (e.currentTarget as HTMLElement) ?? (e.target as HTMLElement)\n setSubMenus([\n ...subMenus.filter((m) => m.level < (menu.level || 0) + 1),\n {\n ...menu,\n id: menu.id!,\n level: (menu.level || 0) + 1,\n parentRef: parentEl,\n } as SubMenu,\n ])\n }\n } else {\n // no items for this menu, so close all submenus on the higher levels\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0)))\n }\n }\n\n const onMenuLeave = (e: React.MouseEvent, menu: Partial<SubMenu> = {}) => {\n const related = e.relatedTarget as HTMLElement | null\n\n // Mouse exited the document entirely — keep menus open, user might come back.\n if (!related) return\n\n // Mouse moved onto the dialog backdrop itself — close everything.\n if (related.tagName === 'DIALOG') return setSubMenus([])\n\n // Mouse is still inside the menu portal (the DialogContent or any descendant).\n // The user is most likely traveling across a small gap toward an adjacent sub-menu.\n // Don't close anything — the next mouseenter will reconcile state.\n if (\n typeof related.closest === 'function' &&\n related.closest(`#${MENU_PORTAL_CONTENT_ID}`)\n )\n return\n\n // Mouse is targeting a known sub-menu element directly (id match) — keep open.\n const relatedTargetSubMenu = subMenus.find((m) => m.id === related.id)\n if (relatedTargetSubMenu) return\n\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0) + 1))\n }\n\n const handleSubMenu = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[] },\n ) => {\n if (e.type === 'mouseenter' || e.type === 'keydown') onMenuEnter(e, menu)\n else if (e.type === 'mouseleave') onMenuLeave(e, menu)\n }\n\n const handleSubMenuLayout = (\n id: string,\n style: React.CSSProperties,\n placement: 'left' | 'right',\n ) => {\n setSubMenus((prev) =>\n prev.map((m) => (m.id === id ? { ...m, style, placement } : m)),\n )\n }\n\n return (\n <>\n <Styled.Section>\n {header && header}\n <MenuList\n items={menu}\n handleClick={handleClick}\n onSubMenu={handleSubMenu}\n level={0}\n setPowerpackDialog={setPowerpackDialog}\n onMenuClose={() => setMenuOpen(false)}\n />\n {footer && (\n <Styled.Footer>\n {footer}\n <Button icon=\"content_copy\" variant=\"text\" onClick={() => copyToClipboard(footer)} />\n </Styled.Footer>\n )}\n </Styled.Section>\n {subMenus.map((menu, i) => (\n <MenuList\n key={i}\n {...menu}\n parentRef={menu.parentRef || null}\n style={menu.style || {}}\n handleClick={handleClick}\n subMenu\n onSubMenu={handleSubMenu}\n onSubMenuLayout={handleSubMenuLayout}\n onClose={() => setSubMenus(subMenus.filter((m) => m.id !== menu.id))}\n onMenuClose={() => setMenuOpen(false)}\n onChange={onMenuEnter}\n setPowerpackDialog={setPowerpackDialog}\n itemClassName={undefined}\n itemStyle={undefined}\n />\n ))}\n </>\n )\n}\n"],"names":["Menu","menu","onClose","header","footer","setPowerpackDialog","usePowerpack","setMenuOpen","useMenuContext","subMenus","setSubMenus","useState","handleClick","onClick","url","disableClose","onMenuEnter","m","parentEl","onMenuLeave","related","MENU_PORTAL_CONTENT_ID","handleSubMenu","handleSubMenuLayout","id","style","placement","prev","jsxs","Fragment","Styled.Section","jsx","MenuList","Styled.Footer","Button","copyToClipboard","i"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Menu.cjs.js","sources":["../../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, ReactNode } from 'react'\nimport * as Styled from './Menu.styled'\nimport { MenuList } from './MenuList'\nimport { MENU_PORTAL_CONTENT_ID } from './MenuContainer'\nimport { copyToClipboard } from '@shared/util'\nimport { Button } from '@ynput/ayon-react-components'\nimport { PowerpackFeature, useMenuContext, usePowerpack } from '@shared/context'\n\nexport interface MenuItemType {\n id: string\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n onClick?: (e: React.MouseEvent) => void\n link?: string\n disableClose?: boolean\n disabled?: boolean\n powerFeature?: PowerpackFeature\n active?: boolean\n hidden?: boolean\n node?: ReactNode\n [key: string]: any\n}\n\ninterface SubMenu {\n id: string\n items: MenuItemType[]\n level: number\n parentRef?: HTMLElement\n style?: React.CSSProperties\n placement?: 'left' | 'right'\n}\n\ninterface MenuProps {\n menu?: MenuItemType[]\n onClose?: () => void\n header?: ReactNode\n footer?: string\n}\n\nexport const Menu: React.FC<MenuProps> = ({ menu = [], onClose, header, footer = '' }) => {\n const { setPowerpackDialog } = usePowerpack()\n const { setMenuOpen } = useMenuContext()\n\n const [subMenus, setSubMenus] = useState<SubMenu[]>([])\n // When a menu item is clicked, the following happens:\n const handleClick = (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => {\n // this is handled by Link component inside the MenuItem\n if (url) return onClose?.()\n\n onClick?.(e)\n\n if (!disableClose && onClose) onClose()\n }\n\n const onMenuEnter = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[]; parentEl?: HTMLElement | null },\n ) => {\n // check to see if we need to open a submenu\n if (menu.items.length) {\n // yes, there is a submenu\n // open it if it is not already open\n if (!subMenus.find((m) => m.id === menu.id)) {\n // also close any other submenus on the same level\n // Prefer the explicit element passed from the source MenuItem ref; fall back to\n // currentTarget (the <li>) over target (which can be a nested span/icon).\n const parentEl =\n menu.parentEl ?? (e.currentTarget as HTMLElement) ?? (e.target as HTMLElement)\n setSubMenus([\n ...subMenus.filter((m) => m.level < (menu.level || 0) + 1),\n {\n ...menu,\n id: menu.id!,\n level: (menu.level || 0) + 1,\n parentRef: parentEl,\n } as SubMenu,\n ])\n }\n } else {\n // no items for this menu, so close all submenus on the higher levels\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0)))\n }\n }\n\n const onMenuLeave = (e: React.MouseEvent, menu: Partial<SubMenu> = {}) => {\n const related = e.relatedTarget as HTMLElement | null\n\n // Mouse exited the document entirely — keep menus open, user might come back.\n if (!related) return\n\n // Mouse moved onto the dialog backdrop itself — close everything.\n if (related.tagName === 'DIALOG') return setSubMenus([])\n\n // Mouse is still inside the menu portal (the DialogContent or any descendant).\n // The user is most likely traveling across a small gap toward an adjacent sub-menu.\n // Don't close anything — the next mouseenter will reconcile state.\n if (\n typeof related.closest === 'function' &&\n related.closest(`#${MENU_PORTAL_CONTENT_ID}`)\n )\n return\n\n // Mouse is targeting a known sub-menu element directly (id match) — keep open.\n const relatedTargetSubMenu = subMenus.find((m) => m.id === related.id)\n if (relatedTargetSubMenu) return\n\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0) + 1))\n }\n\n const handleSubMenu = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[] },\n ) => {\n if (e.type === 'mouseenter' || e.type === 'keydown') onMenuEnter(e, menu)\n else if (e.type === 'mouseleave') onMenuLeave(e, menu)\n }\n\n const handleSubMenuLayout = (\n id: string,\n style: React.CSSProperties,\n placement: 'left' | 'right',\n ) => {\n setSubMenus((prev) =>\n prev.map((m) => (m.id === id ? { ...m, style, placement } : m)),\n )\n }\n\n return (\n <>\n <Styled.Section>\n {header && header}\n <MenuList\n items={menu}\n handleClick={handleClick}\n onSubMenu={handleSubMenu}\n level={0}\n setPowerpackDialog={setPowerpackDialog}\n onMenuClose={() => setMenuOpen(false)}\n />\n {footer && (\n <Styled.Footer>\n {footer}\n <Button icon=\"content_copy\" variant=\"text\" onClick={() => copyToClipboard(footer)} />\n </Styled.Footer>\n )}\n </Styled.Section>\n {subMenus.map((menu, i) => (\n <MenuList\n key={i}\n {...menu}\n parentRef={menu.parentRef || null}\n style={menu.style || {}}\n handleClick={handleClick}\n subMenu\n onSubMenu={handleSubMenu}\n onSubMenuLayout={handleSubMenuLayout}\n onClose={() => setSubMenus(subMenus.filter((m) => m.id !== menu.id))}\n onMenuClose={() => setMenuOpen(false)}\n onChange={onMenuEnter}\n setPowerpackDialog={setPowerpackDialog}\n itemClassName={undefined}\n itemStyle={undefined}\n />\n ))}\n </>\n )\n}\n"],"names":["Menu","menu","onClose","header","footer","setPowerpackDialog","usePowerpack","setMenuOpen","useMenuContext","subMenus","setSubMenus","useState","handleClick","onClick","url","disableClose","onMenuEnter","m","parentEl","onMenuLeave","related","MENU_PORTAL_CONTENT_ID","handleSubMenu","handleSubMenuLayout","id","style","placement","prev","jsxs","Fragment","Styled.Section","jsx","MenuList","Styled.Footer","Button","copyToClipboard","i"],"mappings":"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"}
|
|
@@ -49,7 +49,6 @@ import "../../api/generated/grouping.es.js";
|
|
|
49
49
|
import "../../api/generated/views.es.js";
|
|
50
50
|
import "../../api/queries/actions/getActions.es.js";
|
|
51
51
|
import "../../api/queries/activities/getActivities.es.js";
|
|
52
|
-
import "../../api/queries/activities/updateActivities.es.js";
|
|
53
52
|
import "../../api/queries/activities/updateReaction.es.js";
|
|
54
53
|
import "../../api/queries/activities/getMentions.es.js";
|
|
55
54
|
import "../../api/queries/activities/getCategories.es.js";
|
|
@@ -127,7 +126,7 @@ import "../../context/WebsocketContext.es.js";
|
|
|
127
126
|
import "../../context/GlobalContext.es.js";
|
|
128
127
|
import "../../context/ProjectContext.es.js";
|
|
129
128
|
import "../../context/ProjectFoldersContext.es.js";
|
|
130
|
-
const
|
|
129
|
+
const Vo = ({ menu: y = [], onClose: l, header: a, footer: s = "" }) => {
|
|
131
130
|
const { setPowerpackDialog: u } = E(), { setMenuOpen: f } = L(), [i, e] = S([]), c = (t, o, r, n) => {
|
|
132
131
|
if (r) return l?.();
|
|
133
132
|
o?.(t), !n && l && l();
|
|
@@ -200,6 +199,6 @@ const Wo = ({ menu: y = [], onClose: l, header: a, footer: s = "" }) => {
|
|
|
200
199
|
] });
|
|
201
200
|
};
|
|
202
201
|
export {
|
|
203
|
-
|
|
202
|
+
Vo as Menu
|
|
204
203
|
};
|
|
205
204
|
//# sourceMappingURL=Menu.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.es.js","sources":["../../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, ReactNode } from 'react'\nimport * as Styled from './Menu.styled'\nimport { MenuList } from './MenuList'\nimport { MENU_PORTAL_CONTENT_ID } from './MenuContainer'\nimport { copyToClipboard } from '@shared/util'\nimport { Button } from '@ynput/ayon-react-components'\nimport { PowerpackFeature, useMenuContext, usePowerpack } from '@shared/context'\n\nexport interface MenuItemType {\n id: string\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n onClick?: (e: React.MouseEvent) => void\n link?: string\n disableClose?: boolean\n disabled?: boolean\n powerFeature?: PowerpackFeature\n active?: boolean\n hidden?: boolean\n node?: ReactNode\n [key: string]: any\n}\n\ninterface SubMenu {\n id: string\n items: MenuItemType[]\n level: number\n parentRef?: HTMLElement\n style?: React.CSSProperties\n placement?: 'left' | 'right'\n}\n\ninterface MenuProps {\n menu?: MenuItemType[]\n onClose?: () => void\n header?: ReactNode\n footer?: string\n}\n\nexport const Menu: React.FC<MenuProps> = ({ menu = [], onClose, header, footer = '' }) => {\n const { setPowerpackDialog } = usePowerpack()\n const { setMenuOpen } = useMenuContext()\n\n const [subMenus, setSubMenus] = useState<SubMenu[]>([])\n // When a menu item is clicked, the following happens:\n const handleClick = (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => {\n // this is handled by Link component inside the MenuItem\n if (url) return onClose?.()\n\n onClick?.(e)\n\n if (!disableClose && onClose) onClose()\n }\n\n const onMenuEnter = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[]; parentEl?: HTMLElement | null },\n ) => {\n // check to see if we need to open a submenu\n if (menu.items.length) {\n // yes, there is a submenu\n // open it if it is not already open\n if (!subMenus.find((m) => m.id === menu.id)) {\n // also close any other submenus on the same level\n // Prefer the explicit element passed from the source MenuItem ref; fall back to\n // currentTarget (the <li>) over target (which can be a nested span/icon).\n const parentEl =\n menu.parentEl ?? (e.currentTarget as HTMLElement) ?? (e.target as HTMLElement)\n setSubMenus([\n ...subMenus.filter((m) => m.level < (menu.level || 0) + 1),\n {\n ...menu,\n id: menu.id!,\n level: (menu.level || 0) + 1,\n parentRef: parentEl,\n } as SubMenu,\n ])\n }\n } else {\n // no items for this menu, so close all submenus on the higher levels\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0)))\n }\n }\n\n const onMenuLeave = (e: React.MouseEvent, menu: Partial<SubMenu> = {}) => {\n const related = e.relatedTarget as HTMLElement | null\n\n // Mouse exited the document entirely — keep menus open, user might come back.\n if (!related) return\n\n // Mouse moved onto the dialog backdrop itself — close everything.\n if (related.tagName === 'DIALOG') return setSubMenus([])\n\n // Mouse is still inside the menu portal (the DialogContent or any descendant).\n // The user is most likely traveling across a small gap toward an adjacent sub-menu.\n // Don't close anything — the next mouseenter will reconcile state.\n if (\n typeof related.closest === 'function' &&\n related.closest(`#${MENU_PORTAL_CONTENT_ID}`)\n )\n return\n\n // Mouse is targeting a known sub-menu element directly (id match) — keep open.\n const relatedTargetSubMenu = subMenus.find((m) => m.id === related.id)\n if (relatedTargetSubMenu) return\n\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0) + 1))\n }\n\n const handleSubMenu = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[] },\n ) => {\n if (e.type === 'mouseenter' || e.type === 'keydown') onMenuEnter(e, menu)\n else if (e.type === 'mouseleave') onMenuLeave(e, menu)\n }\n\n const handleSubMenuLayout = (\n id: string,\n style: React.CSSProperties,\n placement: 'left' | 'right',\n ) => {\n setSubMenus((prev) =>\n prev.map((m) => (m.id === id ? { ...m, style, placement } : m)),\n )\n }\n\n return (\n <>\n <Styled.Section>\n {header && header}\n <MenuList\n items={menu}\n handleClick={handleClick}\n onSubMenu={handleSubMenu}\n level={0}\n setPowerpackDialog={setPowerpackDialog}\n onMenuClose={() => setMenuOpen(false)}\n />\n {footer && (\n <Styled.Footer>\n {footer}\n <Button icon=\"content_copy\" variant=\"text\" onClick={() => copyToClipboard(footer)} />\n </Styled.Footer>\n )}\n </Styled.Section>\n {subMenus.map((menu, i) => (\n <MenuList\n key={i}\n {...menu}\n parentRef={menu.parentRef || null}\n style={menu.style || {}}\n handleClick={handleClick}\n subMenu\n onSubMenu={handleSubMenu}\n onSubMenuLayout={handleSubMenuLayout}\n onClose={() => setSubMenus(subMenus.filter((m) => m.id !== menu.id))}\n onMenuClose={() => setMenuOpen(false)}\n onChange={onMenuEnter}\n setPowerpackDialog={setPowerpackDialog}\n itemClassName={undefined}\n itemStyle={undefined}\n />\n ))}\n </>\n )\n}\n"],"names":["Menu","menu","onClose","header","footer","setPowerpackDialog","usePowerpack","setMenuOpen","useMenuContext","subMenus","setSubMenus","useState","handleClick","e","onClick","url","disableClose","onMenuEnter","m","parentEl","onMenuLeave","related","MENU_PORTAL_CONTENT_ID","handleSubMenu","handleSubMenuLayout","id","style","placement","prev","jsxs","Fragment","Styled.Section","jsx","MenuList","Styled.Footer","Button","copyToClipboard","i"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Menu.es.js","sources":["../../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, ReactNode } from 'react'\nimport * as Styled from './Menu.styled'\nimport { MenuList } from './MenuList'\nimport { MENU_PORTAL_CONTENT_ID } from './MenuContainer'\nimport { copyToClipboard } from '@shared/util'\nimport { Button } from '@ynput/ayon-react-components'\nimport { PowerpackFeature, useMenuContext, usePowerpack } from '@shared/context'\n\nexport interface MenuItemType {\n id: string\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n onClick?: (e: React.MouseEvent) => void\n link?: string\n disableClose?: boolean\n disabled?: boolean\n powerFeature?: PowerpackFeature\n active?: boolean\n hidden?: boolean\n node?: ReactNode\n [key: string]: any\n}\n\ninterface SubMenu {\n id: string\n items: MenuItemType[]\n level: number\n parentRef?: HTMLElement\n style?: React.CSSProperties\n placement?: 'left' | 'right'\n}\n\ninterface MenuProps {\n menu?: MenuItemType[]\n onClose?: () => void\n header?: ReactNode\n footer?: string\n}\n\nexport const Menu: React.FC<MenuProps> = ({ menu = [], onClose, header, footer = '' }) => {\n const { setPowerpackDialog } = usePowerpack()\n const { setMenuOpen } = useMenuContext()\n\n const [subMenus, setSubMenus] = useState<SubMenu[]>([])\n // When a menu item is clicked, the following happens:\n const handleClick = (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => {\n // this is handled by Link component inside the MenuItem\n if (url) return onClose?.()\n\n onClick?.(e)\n\n if (!disableClose && onClose) onClose()\n }\n\n const onMenuEnter = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[]; parentEl?: HTMLElement | null },\n ) => {\n // check to see if we need to open a submenu\n if (menu.items.length) {\n // yes, there is a submenu\n // open it if it is not already open\n if (!subMenus.find((m) => m.id === menu.id)) {\n // also close any other submenus on the same level\n // Prefer the explicit element passed from the source MenuItem ref; fall back to\n // currentTarget (the <li>) over target (which can be a nested span/icon).\n const parentEl =\n menu.parentEl ?? (e.currentTarget as HTMLElement) ?? (e.target as HTMLElement)\n setSubMenus([\n ...subMenus.filter((m) => m.level < (menu.level || 0) + 1),\n {\n ...menu,\n id: menu.id!,\n level: (menu.level || 0) + 1,\n parentRef: parentEl,\n } as SubMenu,\n ])\n }\n } else {\n // no items for this menu, so close all submenus on the higher levels\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0)))\n }\n }\n\n const onMenuLeave = (e: React.MouseEvent, menu: Partial<SubMenu> = {}) => {\n const related = e.relatedTarget as HTMLElement | null\n\n // Mouse exited the document entirely — keep menus open, user might come back.\n if (!related) return\n\n // Mouse moved onto the dialog backdrop itself — close everything.\n if (related.tagName === 'DIALOG') return setSubMenus([])\n\n // Mouse is still inside the menu portal (the DialogContent or any descendant).\n // The user is most likely traveling across a small gap toward an adjacent sub-menu.\n // Don't close anything — the next mouseenter will reconcile state.\n if (\n typeof related.closest === 'function' &&\n related.closest(`#${MENU_PORTAL_CONTENT_ID}`)\n )\n return\n\n // Mouse is targeting a known sub-menu element directly (id match) — keep open.\n const relatedTargetSubMenu = subMenus.find((m) => m.id === related.id)\n if (relatedTargetSubMenu) return\n\n setSubMenus(subMenus.filter((m) => m.level <= (menu.level || 0) + 1))\n }\n\n const handleSubMenu = (\n e: React.MouseEvent,\n menu: Partial<SubMenu> & { items: MenuItemType[] },\n ) => {\n if (e.type === 'mouseenter' || e.type === 'keydown') onMenuEnter(e, menu)\n else if (e.type === 'mouseleave') onMenuLeave(e, menu)\n }\n\n const handleSubMenuLayout = (\n id: string,\n style: React.CSSProperties,\n placement: 'left' | 'right',\n ) => {\n setSubMenus((prev) =>\n prev.map((m) => (m.id === id ? { ...m, style, placement } : m)),\n )\n }\n\n return (\n <>\n <Styled.Section>\n {header && header}\n <MenuList\n items={menu}\n handleClick={handleClick}\n onSubMenu={handleSubMenu}\n level={0}\n setPowerpackDialog={setPowerpackDialog}\n onMenuClose={() => setMenuOpen(false)}\n />\n {footer && (\n <Styled.Footer>\n {footer}\n <Button icon=\"content_copy\" variant=\"text\" onClick={() => copyToClipboard(footer)} />\n </Styled.Footer>\n )}\n </Styled.Section>\n {subMenus.map((menu, i) => (\n <MenuList\n key={i}\n {...menu}\n parentRef={menu.parentRef || null}\n style={menu.style || {}}\n handleClick={handleClick}\n subMenu\n onSubMenu={handleSubMenu}\n onSubMenuLayout={handleSubMenuLayout}\n onClose={() => setSubMenus(subMenus.filter((m) => m.id !== menu.id))}\n onMenuClose={() => setMenuOpen(false)}\n onChange={onMenuEnter}\n setPowerpackDialog={setPowerpackDialog}\n itemClassName={undefined}\n itemStyle={undefined}\n />\n ))}\n </>\n )\n}\n"],"names":["Menu","menu","onClose","header","footer","setPowerpackDialog","usePowerpack","setMenuOpen","useMenuContext","subMenus","setSubMenus","useState","handleClick","e","onClick","url","disableClose","onMenuEnter","m","parentEl","onMenuLeave","related","MENU_PORTAL_CONTENT_ID","handleSubMenu","handleSubMenuLayout","id","style","placement","prev","jsxs","Fragment","Styled.Section","jsx","MenuList","Styled.Footer","Button","copyToClipboard","i"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../../../../_virtual/jsx-runtime.cjs.js"),i=require("@ynput/ayon-react-components"),M=require("react"),a=require("./Menu.styled.cjs.js"),N=require("lodash"),P=require("react-router-dom"),C=require("clsx");require("../../context/RemoteModulesContext.cjs.js");const L=require("../../context/PowerpackContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/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/
|
|
1
|
+
"use strict";const e=require("../../../../_virtual/jsx-runtime.cjs.js"),i=require("@ynput/ayon-react-components"),M=require("react"),a=require("./Menu.styled.cjs.js"),N=require("lodash"),P=require("react-router-dom"),C=require("clsx");require("../../context/RemoteModulesContext.cjs.js");const L=require("../../context/PowerpackContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/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/listItemsColumnStats.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("react-toastify");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../util/pubsub.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("react-dom");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");const m=M.forwardRef(({label:r,icon:q,img:t,highlighted:j,notification:l,selected:p,danger:R,items:d=[],className:h,isLink:s,isDev:g,shortcut:n,disabled:E,powerFeature:I,active:w,...o},y)=>{const c=N.isArray(r)?r:[r],{powerLicense:f}=L.usePowerpack(),u=!f&&I,x=e.jsxRuntimeExports.jsxs(a.Item,{ref:y,className:C("menu-item",{highlighted:j,selected:p,notification:l,danger:R,dev:g,disabled:E,power:u},h),...o,"aria-label":c.join(", "),children:[(q||u)&&e.jsxRuntimeExports.jsx(i.Icon,{icon:u?"bolt":q}),t&&e.jsxRuntimeExports.jsx(a.Img,{src:t,alt:`${r} icon`}),c.map((k,A)=>e.jsxRuntimeExports.jsx("span",{children:k},A)),n&&e.jsxRuntimeExports.jsx(i.ShortcutTag,{style:{minWidth:22,textAlign:"center"},align:"right",children:n}),w&&e.jsxRuntimeExports.jsx(i.Icon,{icon:"check",style:{marginLeft:"auto"}}),!!d.length&&e.jsxRuntimeExports.jsx(i.Icon,{icon:"arrow_right",className:"more"})]});return s?e.jsxRuntimeExports.jsx(P.Link,{to:s,target:o.target,children:x}):x});m.displayName="MenuItem";module.exports=m;
|
|
2
2
|
//# sourceMappingURL=MenuItem.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.cjs.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const Item = (\n <Styled.Item\n ref={ref}\n className={clsx(\n 'menu-item',\n {\n highlighted: highlighted,\n selected: selected,\n notification: notification,\n danger: danger,\n dev: isDev,\n disabled: disabled,\n power: isPowerFeature,\n },\n className,\n )}\n {...props}\n aria-label={labelsArray.join(', ')}\n >\n {(icon || isPowerFeature) && <Icon icon={isPowerFeature ? 'bolt' : icon!} />}\n {img && <Styled.Img src={img} alt={`${label} icon`} />}\n {labelsArray.map((label, index) => (\n <span key={index}>{label}</span>\n ))}\n {shortcut && (\n <ShortcutTag style={{ minWidth: 22, textAlign: 'center' }} align={'right'}>\n {shortcut}\n </ShortcutTag>\n )}\n {active && <Icon icon=\"check\" style={{ marginLeft: 'auto' }} />}\n\n {!!items.length && <Icon icon=\"arrow_right\" className=\"more\" />}\n </Styled.Item>\n )\n\n if (isLink) {\n return (\n <Link to={isLink} target={props.target}>\n {Item}\n </Link>\n )\n } else {\n return Item\n }\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\nexport default MenuItem\n"],"names":["MenuItem","forwardRef","label","icon","img","highlighted","notification","selected","danger","items","className","isLink","isDev","shortcut","disabled","powerFeature","active","props","ref","labelsArray","isArray","powerLicense","usePowerpack","isPowerFeature","Item","jsxs","Styled.Item","clsx","jsx","Icon","Styled.Img","index","ShortcutTag","Link"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuItem.cjs.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const Item = (\n <Styled.Item\n ref={ref}\n className={clsx(\n 'menu-item',\n {\n highlighted: highlighted,\n selected: selected,\n notification: notification,\n danger: danger,\n dev: isDev,\n disabled: disabled,\n power: isPowerFeature,\n },\n className,\n )}\n {...props}\n aria-label={labelsArray.join(', ')}\n >\n {(icon || isPowerFeature) && <Icon icon={isPowerFeature ? 'bolt' : icon!} />}\n {img && <Styled.Img src={img} alt={`${label} icon`} />}\n {labelsArray.map((label, index) => (\n <span key={index}>{label}</span>\n ))}\n {shortcut && (\n <ShortcutTag style={{ minWidth: 22, textAlign: 'center' }} align={'right'}>\n {shortcut}\n </ShortcutTag>\n )}\n {active && <Icon icon=\"check\" style={{ marginLeft: 'auto' }} />}\n\n {!!items.length && <Icon icon=\"arrow_right\" className=\"more\" />}\n </Styled.Item>\n )\n\n if (isLink) {\n return (\n <Link to={isLink} target={props.target}>\n {Item}\n </Link>\n )\n } else {\n return Item\n }\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\nexport default MenuItem\n"],"names":["MenuItem","forwardRef","label","icon","img","highlighted","notification","selected","danger","items","className","isLink","isDev","shortcut","disabled","powerFeature","active","props","ref","labelsArray","isArray","powerLicense","usePowerpack","isPowerFeature","Item","jsxs","Styled.Item","clsx","jsx","Icon","Styled.Img","index","ShortcutTag","Link"],"mappings":"syMA2BA,MAAMA,EAAWC,EAAAA,WACf,CACE,CACE,MAAAC,EACA,KAAAC,EACA,IAAAC,EACA,YAAAC,EACA,aAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EAAQ,CAAA,EACR,UAAAC,EACA,OAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,aAAAC,EACA,OAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAcC,EAAAA,QAAQlB,CAAK,EAAIA,EAAQ,CAACA,CAAK,EAC7C,CAAE,aAAAmB,CAAA,EAAiBC,eAAA,EACnBC,EAAiB,CAACF,GAAgBN,EAElCS,EACJC,EAAAA,kBAAAA,KAACC,EAAAA,KAAA,CACC,IAAAR,EACA,UAAWS,EACT,YACA,CACE,YAAAtB,EACA,SAAAE,EACA,aAAAD,EACA,OAAAE,EACA,IAAKI,EACL,SAAAE,EACA,MAAOS,CAAA,EAETb,CAAA,EAED,GAAGO,EACJ,aAAYE,EAAY,KAAK,IAAI,EAE/B,SAAA,EAAAhB,GAAQoB,IAAmBK,EAAAA,kBAAAA,IAACC,EAAAA,KAAA,CAAK,KAAMN,EAAiB,OAASpB,EAAO,EACzEC,GAAOwB,EAAAA,kBAAAA,IAACE,MAAA,CAAW,IAAK1B,EAAK,IAAK,GAAGF,CAAK,QAAS,EACnDiB,EAAY,IAAI,CAACjB,EAAO6B,4BACtB,OAAA,CAAkB,SAAA7B,CAAAA,EAAR6B,CAAc,CAC1B,EACAlB,GACCe,EAAAA,kBAAAA,IAACI,EAAAA,YAAA,CAAY,MAAO,CAAE,SAAU,GAAI,UAAW,QAAA,EAAY,MAAO,QAC/D,SAAAnB,CAAA,CACH,EAEDG,2BAAWa,EAAAA,KAAA,CAAK,KAAK,QAAQ,MAAO,CAAE,WAAY,MAAA,EAAU,EAE5D,CAAC,CAACpB,EAAM,gCAAWoB,EAAAA,KAAA,CAAK,KAAK,cAAc,UAAU,MAAA,CAAO,CAAA,CAAA,CAAA,EAIjE,OAAIlB,0BAECsB,EAAAA,KAAA,CAAK,GAAItB,EAAQ,OAAQM,EAAM,OAC7B,SAAAO,EACH,EAGKA,CAEX,CACF,EAEAxB,EAAS,YAAc"}
|
|
@@ -52,7 +52,6 @@ import "../../api/generated/grouping.es.js";
|
|
|
52
52
|
import "../../api/generated/views.es.js";
|
|
53
53
|
import "../../api/queries/actions/getActions.es.js";
|
|
54
54
|
import "../../api/queries/activities/getActivities.es.js";
|
|
55
|
-
import "../../api/queries/activities/updateActivities.es.js";
|
|
56
55
|
import "../../api/queries/activities/updateReaction.es.js";
|
|
57
56
|
import "../../api/queries/activities/getMentions.es.js";
|
|
58
57
|
import "../../api/queries/activities/getCategories.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.es.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const Item = (\n <Styled.Item\n ref={ref}\n className={clsx(\n 'menu-item',\n {\n highlighted: highlighted,\n selected: selected,\n notification: notification,\n danger: danger,\n dev: isDev,\n disabled: disabled,\n power: isPowerFeature,\n },\n className,\n )}\n {...props}\n aria-label={labelsArray.join(', ')}\n >\n {(icon || isPowerFeature) && <Icon icon={isPowerFeature ? 'bolt' : icon!} />}\n {img && <Styled.Img src={img} alt={`${label} icon`} />}\n {labelsArray.map((label, index) => (\n <span key={index}>{label}</span>\n ))}\n {shortcut && (\n <ShortcutTag style={{ minWidth: 22, textAlign: 'center' }} align={'right'}>\n {shortcut}\n </ShortcutTag>\n )}\n {active && <Icon icon=\"check\" style={{ marginLeft: 'auto' }} />}\n\n {!!items.length && <Icon icon=\"arrow_right\" className=\"more\" />}\n </Styled.Item>\n )\n\n if (isLink) {\n return (\n <Link to={isLink} target={props.target}>\n {Item}\n </Link>\n )\n } else {\n return Item\n }\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\nexport default MenuItem\n"],"names":["MenuItem","forwardRef","label","icon","img","highlighted","notification","selected","danger","items","className","isLink","isDev","shortcut","disabled","powerFeature","active","props","ref","labelsArray","isArray","powerLicense","usePowerpack","isPowerFeature","Item","jsxs","Styled.Item","clsx","jsx","Icon","Styled.Img","index","ShortcutTag","Link"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuItem.es.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const Item = (\n <Styled.Item\n ref={ref}\n className={clsx(\n 'menu-item',\n {\n highlighted: highlighted,\n selected: selected,\n notification: notification,\n danger: danger,\n dev: isDev,\n disabled: disabled,\n power: isPowerFeature,\n },\n className,\n )}\n {...props}\n aria-label={labelsArray.join(', ')}\n >\n {(icon || isPowerFeature) && <Icon icon={isPowerFeature ? 'bolt' : icon!} />}\n {img && <Styled.Img src={img} alt={`${label} icon`} />}\n {labelsArray.map((label, index) => (\n <span key={index}>{label}</span>\n ))}\n {shortcut && (\n <ShortcutTag style={{ minWidth: 22, textAlign: 'center' }} align={'right'}>\n {shortcut}\n </ShortcutTag>\n )}\n {active && <Icon icon=\"check\" style={{ marginLeft: 'auto' }} />}\n\n {!!items.length && <Icon icon=\"arrow_right\" className=\"more\" />}\n </Styled.Item>\n )\n\n if (isLink) {\n return (\n <Link to={isLink} target={props.target}>\n {Item}\n </Link>\n )\n } else {\n return Item\n }\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\nexport default MenuItem\n"],"names":["MenuItem","forwardRef","label","icon","img","highlighted","notification","selected","danger","items","className","isLink","isDev","shortcut","disabled","powerFeature","active","props","ref","labelsArray","isArray","powerLicense","usePowerpack","isPowerFeature","Item","jsxs","Styled.Item","clsx","jsx","Icon","Styled.Img","index","ShortcutTag","Link"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAMA,IAAWC;AAAA,EACf,CACE;AAAA,IACE,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,KAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ,CAAA;AAAA,IACR,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAcC,EAAQlB,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAC7C,EAAE,cAAAmB,EAAA,IAAiBC,EAAA,GACnBC,IAAiB,CAACF,KAAgBN,GAElCS,IACJC,gBAAAA,EAAAA;AAAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAAR;AAAA,QACA,WAAWS;AAAA,UACT;AAAA,UACA;AAAA,YACE,aAAAtB;AAAA,YACA,UAAAE;AAAA,YACA,cAAAD;AAAA,YACA,QAAAE;AAAA,YACA,KAAKI;AAAA,YACL,UAAAE;AAAA,YACA,OAAOS;AAAA,UAAA;AAAA,UAETb;AAAA,QAAA;AAAA,QAED,GAAGO;AAAA,QACJ,cAAYE,EAAY,KAAK,IAAI;AAAA,QAE/B,UAAA;AAAA,WAAAhB,KAAQoB,MAAmBK,gBAAAA,EAAAA,IAACC,GAAA,EAAK,MAAMN,IAAiB,SAASpB,GAAO;AAAA,UACzEC,KAAOwB,gBAAAA,EAAAA,IAACE,GAAA,EAAW,KAAK1B,GAAK,KAAK,GAAGF,CAAK,SAAS;AAAA,UACnDiB,EAAY,IAAI,CAACjB,GAAO6B,4BACtB,QAAA,EAAkB,UAAA7B,EAAAA,GAAR6B,CAAc,CAC1B;AAAA,UACAlB,KACCe,gBAAAA,EAAAA,IAACI,GAAA,EAAY,OAAO,EAAE,UAAU,IAAI,WAAW,SAAA,GAAY,OAAO,SAC/D,UAAAnB,EAAA,CACH;AAAA,UAEDG,2BAAWa,GAAA,EAAK,MAAK,SAAQ,OAAO,EAAE,YAAY,OAAA,GAAU;AAAA,UAE5D,CAAC,CAACpB,EAAM,gCAAWoB,GAAA,EAAK,MAAK,eAAc,WAAU,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAIjE,WAAIlB,0BAECsB,GAAA,EAAK,IAAItB,GAAQ,QAAQM,EAAM,QAC7B,UAAAO,GACH,IAGKA;AAAAA,EAEX;AACF;AAEAxB,EAAS,cAAc;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("../../../../_virtual/jsx-runtime.cjs.js"),I=require("react"),ne=require("./MenuItem.cjs.js"),ue=require("@ynput/ayon-react-components"),O=require("./Menu.styled.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const oe=require("../../context/PowerpackContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/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/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("../../../../_virtual/jsx-runtime.cjs.js"),I=require("react"),ne=require("./MenuItem.cjs.js"),ue=require("@ynput/ayon-react-components"),O=require("./Menu.styled.cjs.js");require("../../context/RemoteModulesContext.cjs.js");const oe=require("../../context/PowerpackContext.cjs.js");require("../../context/UriContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/dataImport.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/projectFolders.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/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/listItemsColumnStats.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/folders/getFolderDeleteInfo.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/products/getFolderProducts.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/projectFolders/projectFolders.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/tasks/getTasks.cjs.js");require("../../api/queries/tasks/updateTasks.cjs.js");require("../../api/queries/teams/getTeams.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("lodash");require("react-toastify");require("react-redux");require("custom-protocol-check");require("../../containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("uuid");require("../../util/pubsub.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("react-dom");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");const se=({items:V,handleClick:W,onSubMenu:H,onSubMenuLayout:T,subMenu:a,level:A,id:y="root-menu",parentRef:M,style:l,placement:k,onClose:K,onMenuClose:_,itemClassName:Y,itemStyle:z,setPowerpackDialog:G,...J})=>{const D=I.useRef({}),E=I.useRef(null),S=(r,p,d)=>{const g=D.current[p],h=E.current;if(!g||!h)return;const m=(h.offsetParent??document.body).getBoundingClientRect(),f=g.getBoundingClientRect(),t=(h.querySelector("menu")??h).getBoundingClientRect(),P=window.innerWidth,v=window.innerHeight,i=8,o=Math.max(240,t.width),L=Math.min(d.length*36+16,480),w=4,n=()=>Math.max(i,t.left-o-w),R=()=>t.right+w,x=R()+o<=P-i,e=n()>=i;let s,c;k==="left"&&e?(s="left",c=n()):x?(s="right",c=R()):e?(s="left",c=n()):(s="left",c=Math.max(i,P-o-i));let q=f.top-8;q+L>v-i&&(q=Math.max(i,v-L-i));const j=s==="left"?c-16:c;H?.(r,{id:p,style:{top:q-m.top,left:j-m.left},items:d,level:A,placement:s,parentEl:g})},Q=r=>{a&&H?.(r,{id:"parent",items:[]})};return I.useEffect(()=>{a&&E.current&&E.current.querySelectorAll("li, button")[0]?.focus()},[a]),I.useLayoutEffect(()=>{if(!a||!E.current||!M||!T||!y)return;const r=E.current,p=M,d=p.closest(".menu-list, .sub-menu");if(!d)return;const g=r.querySelector("menu")??r,h=d.querySelector("menu")??d,m=(r.offsetParent??document.body).getBoundingClientRect(),f=r.getBoundingClientRect(),u=g.getBoundingClientRect(),t=h.getBoundingClientRect(),P=p.getBoundingClientRect(),v=u.left-f.left,i=u.width,o=u.height,L=window.innerWidth,w=window.innerHeight,n=8,R=4,x=()=>Math.max(n,t.left-i-R),e=()=>t.right+R,s=e()+i<=L-n,c=x()>=n;let b,q;k==="left"&&c?(b="left",q=x()):s?(b="right",q=e()):c?(b="left",q=x()):(b="left",q=Math.max(n,L-i-n));const j=g.querySelector(":scope > li")?.getBoundingClientRect(),X=P.top,Z=j?j.top:f.top+8,ee=X-Z;let F=f.top+ee;F+o>w-n&&(F=Math.max(n,w-o-n));const re=b==="left"?q-v:q,$=F-m.top,N=re-m.left,te=typeof l?.top=="number"?l.top:parseFloat(String(l?.top)),ie=typeof l?.left=="number"?l.left:parseFloat(String(l?.left));(Math.abs($-te)>1||Math.abs(N-ie)>1)&&T(y,{top:$,left:N},b)},[a,V,M,y,k,l?.top,l?.left,T]),C.jsxRuntimeExports.jsx(O.MenuWrapper,{style:{paddingLeft:a?16:0,...l},className:a?"sub-menu":"menu-list",id:y,onMouseLeave:Q,...J,ref:E,children:C.jsxRuntimeExports.jsx(O.Menu,{children:V.filter(r=>!r.hidden).map((r,p)=>{if(r.node)return r.node;if(r?.id==="divider"||r?.separator)return C.jsxRuntimeExports.jsx("hr",{},p);const{label:d,icon:g,img:h,highlighted:B,onClick:m,link:f,items:u=[],id:t,disableClose:P,selected:v,disabled:i,powerFeature:o,active:L,...w}=r,{powerLicense:n}=oe.usePowerpack(),R=!n&&o,x=e=>{e.preventDefault(),e.stopPropagation(),o&&G?.(o),_?.()};return C.jsxRuntimeExports.jsx(ne,{tabIndex:0,label:d,icon:g,img:h,highlighted:B,items:u,selected:v,disabled:i,powerFeature:o,active:L,isLink:f,onClick:e=>R?x(e):u.length?S(e,t,u):W(e,m,f,P),onKeyDown:e=>{e.key==="Enter"&&(R?x(e):u.length?S(e,t,u):W(e,m,f));const s=!e.target.nextSibling;e.key==="Tab"&&s&&!e.shiftKey&&(e.preventDefault(),e.stopPropagation(),E.current?.querySelectorAll("li, button")[0]?.focus()),e.key==="Escape"&&a&&M&&(e.preventDefault(),e.stopPropagation(),M.focus(),K?.(t))},style:{paddingRight:u.length?"0":"16px",...z},ref:e=>D.current[t]=e,onMouseEnter:e=>S(e,t,u),onMouseLeave:e=>S(e,t,[]),className:`${Y} ${w.className||""}`,...w,children:!!u.length&&C.jsxRuntimeExports.jsx(ue.Icon,{icon:"arrow_right",style:{marginLeft:"auto"}})},`${t}-${p}`)})})})};exports.MenuList=se;
|
|
2
2
|
//# sourceMappingURL=MenuList.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.cjs.js","sources":["../../../../../src/components/Menu/MenuList.tsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react'\nimport MenuItem from './MenuItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './Menu.styled'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\nimport type { MenuItemType } from './Menu'\n\ninterface MenuListProps {\n items: MenuItemType[]\n handleClick: (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => void\n onSubMenu?: (e: React.MouseEvent, menu: any) => void\n /** Called by a sub-menu after it mounts, with its real measured style. Lets the parent\n * refit using actual width/height instead of the open-time estimate. */\n onSubMenuLayout?: (id: string, style: React.CSSProperties, placement: 'left' | 'right') => void\n subMenu?: boolean\n level: number\n id?: string\n parentRef?: HTMLElement | null\n style?: React.CSSProperties\n /** Placement of THIS menu relative to its parent. Inherited by descendants so once\n * a chain flips to one side it stays there. */\n placement?: 'left' | 'right'\n onClose?: (id?: string) => void\n onMenuClose?: () => void\n itemClassName?: string\n itemStyle?: React.CSSProperties\n setPowerpackDialog?: (feature: PowerpackFeature) => void\n [key: string]: any\n}\n\nexport const MenuList: React.FC<MenuListProps> = ({\n items,\n handleClick,\n onSubMenu,\n onSubMenuLayout,\n subMenu,\n level,\n id = 'root-menu',\n parentRef,\n style,\n placement,\n onClose,\n onMenuClose,\n itemClassName,\n itemStyle,\n setPowerpackDialog,\n ...props\n}) => {\n const itemRefs = useRef<{ [key: string]: HTMLElement | null }>({})\n const menuRef = useRef<HTMLDivElement>(null)\n\n const handleSubMenu = (e: React.MouseEvent, id: string, items: MenuItemType[]) => {\n const itemEl = itemRefs.current[id]\n const parentMenuEl = menuRef.current\n if (!itemEl || !parentMenuEl) return\n\n // Sub-menus render absolute inside DialogContent. Compute viewport-anchored coords\n // from this item's bounding rect, then translate into the offsetParent's coord space.\n // Each level computes independently — no inherited offsets that drift across depth.\n const offsetParent = (parentMenuEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const itemRect = itemEl.getBoundingClientRect()\n // Use the visible inner <menu> element if present — the wrapper has 16px paddingLeft\n // for sub-menus which would otherwise produce a phantom gap on flip-left chains.\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n // Use the parent's visible width as the initial estimate — sub-menus tend to be\n // similar size or smaller. Falls back to 240 if parent is unusually narrow.\n const estimatedWidth = Math.max(240, parentVisibleRect.width)\n const estimatedHeight = Math.min(items.length * 36 + 16, 480)\n\n // Choose horizontal placement. If an ancestor sub-menu has already flipped to the\n // left, every descendant sub-menu also goes left — DetailsPanel scenarios put the\n // root menu near the right edge of the screen, so flipping flip-flop on each level\n // would push deep menus back into the panel content.\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - estimatedWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + estimatedWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n // Neither side fits cleanly — clamp to viewport, prefer left.\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - estimatedWidth - padding)\n }\n\n // Align first sub-menu item with the hovered parent item. The visible <menu> has\n // 8px top padding, so the wrapper top sits 8px above the item top.\n const innerTopOffset = 8\n let viewportTop = itemRect.top - innerTopOffset\n if (viewportTop + estimatedHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - estimatedHeight - padding)\n }\n\n // Sub-menu wrappers carry 16px paddingLeft (so their wrapper rect is wider than\n // the visible menu). When we anchor on the LEFT side, the visible menu sits 16px\n // inside the wrapper — pull the wrapper left so the visible right edge lines up\n // with parentVisibleRect.left.\n const subMenuPaddingLeft = 16\n const wrapperLeft = nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n onSubMenu?.(e, {\n id,\n style: {\n top: viewportTop - offsetParentRect.top,\n left: wrapperLeft - offsetParentRect.left,\n },\n items,\n level: level,\n placement: nextPlacement,\n // Pass the actual menu-item element so sub-menu measurement uses the <li>\n // instead of whatever inner span the mouse event bubbled from.\n parentEl: itemEl,\n })\n }\n\n const handleMouseLeave = (e: React.MouseEvent) => {\n if (subMenu) {\n onSubMenu?.(e, { id: 'parent', items: [] })\n }\n }\n\n // when a subMenu open, set focus on the first item\n useEffect(() => {\n if (subMenu && menuRef.current) {\n const first = menuRef.current.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n }, [subMenu])\n\n // Sub-menus open with an estimated width — once mounted, measure for real and refit.\n // Reuses the same flip/clamp rules as handleSubMenu but with the actual rendered size.\n useLayoutEffect(() => {\n if (!subMenu || !menuRef.current || !parentRef || !onSubMenuLayout || !id) return\n const wrapperEl = menuRef.current\n const parentItemEl = parentRef\n const parentMenuEl = parentItemEl.closest('.menu-list, .sub-menu') as HTMLElement | null\n if (!parentMenuEl) return\n // Measure visible boxes (the inner <menu> tag), not wrappers. Sub-menu wrappers\n // carry 16px paddingLeft which inflates the rect on the left side and would\n // otherwise produce phantom gaps when flipping left.\n const ownVisibleEl = (wrapperEl.querySelector('menu') as HTMLElement | null) ?? wrapperEl\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n\n const offsetParent = (wrapperEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const wrapperRect = wrapperEl.getBoundingClientRect()\n const ownVisibleRect = ownVisibleEl.getBoundingClientRect()\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n const parentItemRect = parentItemEl.getBoundingClientRect()\n\n // Some wrappers have 16px left padding (sub-menus). Track it so we can place the\n // wrapper such that the visible-menu edge — not the wrapper edge — lines up.\n const subMenuPaddingLeft = ownVisibleRect.left - wrapperRect.left\n const visibleWidth = ownVisibleRect.width\n const visibleHeight = ownVisibleRect.height\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - visibleWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + visibleWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - visibleWidth - padding)\n }\n\n // Align this sub-menu's first <li> with the hovered parent item.\n // Direct DOM measurement is more robust than computed-style math across nested\n // levels — picks up any box-sizing / margin quirks that pure padding values miss.\n const firstItemEl = ownVisibleEl.querySelector(':scope > li') as HTMLElement | null\n const firstItemRect = firstItemEl?.getBoundingClientRect()\n // Move the wrapper by exactly the delta between where the first <li> currently is\n // and where we want it (parent item's top). Avoids any cascading offset arithmetic.\n const desiredFirstItemTop = parentItemRect.top\n const currentFirstItemTop = firstItemRect ? firstItemRect.top : wrapperRect.top + 8\n const deltaY = desiredFirstItemTop - currentFirstItemTop\n let viewportTop = wrapperRect.top + deltaY\n if (viewportTop + visibleHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - visibleHeight - padding)\n }\n\n // Wrapper origin: visible target minus the wrapper's left padding when on the left.\n const wrapperLeft =\n nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n const targetTop = viewportTop - offsetParentRect.top\n const targetLeft = wrapperLeft - offsetParentRect.left\n const currentTop = typeof style?.top === 'number' ? style.top : parseFloat(String(style?.top))\n const currentLeft =\n typeof style?.left === 'number' ? style.left : parseFloat(String(style?.left))\n\n // Idempotent guard: only emit a layout update when the target differs by >1px\n // from what's already applied. This makes the effect safe to re-run on every\n // dependency change — including `style`, which we update from inside this effect.\n // After a successful update, the new style flows back as props, the effect runs\n // once more, current ≈ target, and the guard is a no-op. No infinite loop.\n if (Math.abs(targetTop - currentTop) > 1 || Math.abs(targetLeft - currentLeft) > 1) {\n onSubMenuLayout(id, { top: targetTop, left: targetLeft }, nextPlacement)\n }\n }, [subMenu, items, parentRef, id, placement, style?.top, style?.left, onSubMenuLayout])\n\n return (\n <Styled.MenuWrapper\n style={{ paddingLeft: subMenu ? 16 : 0, ...style }}\n className={subMenu ? 'sub-menu' : 'menu-list'}\n id={id}\n onMouseLeave={handleMouseLeave}\n {...props}\n ref={menuRef}\n >\n <Styled.Menu>\n {items\n .filter((item) => !item.hidden)\n .map((item, i) => {\n // if item is a node, return it\n if (item.node) {\n return item.node\n }\n\n if (item?.id === 'divider' || item?.separator ) return <hr key={i} />\n\n const {\n label,\n icon,\n img,\n highlighted,\n onClick,\n link,\n items = [],\n id,\n disableClose,\n selected,\n disabled,\n powerFeature,\n active,\n ...props\n } = item\n\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const handleClickPowerFeature = (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (powerFeature) {\n setPowerpackDialog?.(powerFeature)\n }\n\n // close the menu\n onMenuClose?.()\n }\n\n return (\n <MenuItem\n tabIndex={0}\n key={`${id}-${i}`}\n {...{\n label,\n icon,\n img,\n highlighted,\n items,\n selected,\n disabled,\n powerFeature,\n active,\n }}\n isLink={link}\n onClick={(e) =>\n isPowerFeature\n ? handleClickPowerFeature(e)\n : items.length\n ? handleSubMenu(e, id, items)\n : handleClick(e, onClick, link, disableClose)\n }\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter') {\n if (isPowerFeature) {\n handleClickPowerFeature(e as any)\n } else if (items.length) {\n handleSubMenu(e as any, id, items)\n } else {\n handleClick(e as any, onClick, link)\n }\n }\n const isLastChild = !(e.target as HTMLElement).nextSibling\n if (e.key === 'Tab' && isLastChild && !e.shiftKey) {\n e.preventDefault()\n e.stopPropagation()\n // when at bottom of list, tab goes to top\n const first = menuRef.current?.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n // when a submenu is open, esc closes it and sets focus on the parent\n if (e.key === 'Escape' && subMenu && parentRef) {\n e.preventDefault()\n e.stopPropagation()\n parentRef.focus()\n onClose?.(id)\n }\n }}\n style={{ paddingRight: items.length ? '0' : '16px', ...itemStyle }}\n ref={(e) => (itemRefs.current[id] = e)}\n onMouseEnter={(e) => handleSubMenu(e, id, items)}\n onMouseLeave={(e) => handleSubMenu(e, id, [])}\n className={`${itemClassName} ${props.className || ''}`}\n {...props}\n >\n {!!items.length && <Icon icon=\"arrow_right\" style={{ marginLeft: 'auto' }} />}\n </MenuItem>\n )\n })}\n </Styled.Menu>\n </Styled.MenuWrapper>\n )\n}\n"],"names":["MenuList","items","handleClick","onSubMenu","onSubMenuLayout","subMenu","level","id","parentRef","style","placement","onClose","onMenuClose","itemClassName","itemStyle","setPowerpackDialog","props","itemRefs","useRef","menuRef","handleSubMenu","e","itemEl","parentMenuEl","offsetParentRect","itemRect","parentVisibleRect","viewportWidth","viewportHeight","padding","estimatedWidth","estimatedHeight","gap","computeLeftSide","computeRightSide","fitsRight","fitsLeft","nextPlacement","viewportLeft","viewportTop","wrapperLeft","handleMouseLeave","useEffect","useLayoutEffect","wrapperEl","parentItemEl","ownVisibleEl","parentVisibleEl","wrapperRect","ownVisibleRect","parentItemRect","subMenuPaddingLeft","visibleWidth","visibleHeight","firstItemRect","desiredFirstItemTop","currentFirstItemTop","deltaY","targetTop","targetLeft","currentTop","currentLeft","jsx","Styled.MenuWrapper","Styled.Menu","item","i","label","icon","img","highlighted","onClick","link","disableClose","selected","disabled","powerFeature","active","powerLicense","usePowerpack","isPowerFeature","handleClickPowerFeature","MenuItem","isLastChild","Icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuList.cjs.js","sources":["../../../../../src/components/Menu/MenuList.tsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react'\nimport MenuItem from './MenuItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './Menu.styled'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\nimport type { MenuItemType } from './Menu'\n\ninterface MenuListProps {\n items: MenuItemType[]\n handleClick: (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => void\n onSubMenu?: (e: React.MouseEvent, menu: any) => void\n /** Called by a sub-menu after it mounts, with its real measured style. Lets the parent\n * refit using actual width/height instead of the open-time estimate. */\n onSubMenuLayout?: (id: string, style: React.CSSProperties, placement: 'left' | 'right') => void\n subMenu?: boolean\n level: number\n id?: string\n parentRef?: HTMLElement | null\n style?: React.CSSProperties\n /** Placement of THIS menu relative to its parent. Inherited by descendants so once\n * a chain flips to one side it stays there. */\n placement?: 'left' | 'right'\n onClose?: (id?: string) => void\n onMenuClose?: () => void\n itemClassName?: string\n itemStyle?: React.CSSProperties\n setPowerpackDialog?: (feature: PowerpackFeature) => void\n [key: string]: any\n}\n\nexport const MenuList: React.FC<MenuListProps> = ({\n items,\n handleClick,\n onSubMenu,\n onSubMenuLayout,\n subMenu,\n level,\n id = 'root-menu',\n parentRef,\n style,\n placement,\n onClose,\n onMenuClose,\n itemClassName,\n itemStyle,\n setPowerpackDialog,\n ...props\n}) => {\n const itemRefs = useRef<{ [key: string]: HTMLElement | null }>({})\n const menuRef = useRef<HTMLDivElement>(null)\n\n const handleSubMenu = (e: React.MouseEvent, id: string, items: MenuItemType[]) => {\n const itemEl = itemRefs.current[id]\n const parentMenuEl = menuRef.current\n if (!itemEl || !parentMenuEl) return\n\n // Sub-menus render absolute inside DialogContent. Compute viewport-anchored coords\n // from this item's bounding rect, then translate into the offsetParent's coord space.\n // Each level computes independently — no inherited offsets that drift across depth.\n const offsetParent = (parentMenuEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const itemRect = itemEl.getBoundingClientRect()\n // Use the visible inner <menu> element if present — the wrapper has 16px paddingLeft\n // for sub-menus which would otherwise produce a phantom gap on flip-left chains.\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n // Use the parent's visible width as the initial estimate — sub-menus tend to be\n // similar size or smaller. Falls back to 240 if parent is unusually narrow.\n const estimatedWidth = Math.max(240, parentVisibleRect.width)\n const estimatedHeight = Math.min(items.length * 36 + 16, 480)\n\n // Choose horizontal placement. If an ancestor sub-menu has already flipped to the\n // left, every descendant sub-menu also goes left — DetailsPanel scenarios put the\n // root menu near the right edge of the screen, so flipping flip-flop on each level\n // would push deep menus back into the panel content.\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - estimatedWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + estimatedWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n // Neither side fits cleanly — clamp to viewport, prefer left.\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - estimatedWidth - padding)\n }\n\n // Align first sub-menu item with the hovered parent item. The visible <menu> has\n // 8px top padding, so the wrapper top sits 8px above the item top.\n const innerTopOffset = 8\n let viewportTop = itemRect.top - innerTopOffset\n if (viewportTop + estimatedHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - estimatedHeight - padding)\n }\n\n // Sub-menu wrappers carry 16px paddingLeft (so their wrapper rect is wider than\n // the visible menu). When we anchor on the LEFT side, the visible menu sits 16px\n // inside the wrapper — pull the wrapper left so the visible right edge lines up\n // with parentVisibleRect.left.\n const subMenuPaddingLeft = 16\n const wrapperLeft = nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n onSubMenu?.(e, {\n id,\n style: {\n top: viewportTop - offsetParentRect.top,\n left: wrapperLeft - offsetParentRect.left,\n },\n items,\n level: level,\n placement: nextPlacement,\n // Pass the actual menu-item element so sub-menu measurement uses the <li>\n // instead of whatever inner span the mouse event bubbled from.\n parentEl: itemEl,\n })\n }\n\n const handleMouseLeave = (e: React.MouseEvent) => {\n if (subMenu) {\n onSubMenu?.(e, { id: 'parent', items: [] })\n }\n }\n\n // when a subMenu open, set focus on the first item\n useEffect(() => {\n if (subMenu && menuRef.current) {\n const first = menuRef.current.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n }, [subMenu])\n\n // Sub-menus open with an estimated width — once mounted, measure for real and refit.\n // Reuses the same flip/clamp rules as handleSubMenu but with the actual rendered size.\n useLayoutEffect(() => {\n if (!subMenu || !menuRef.current || !parentRef || !onSubMenuLayout || !id) return\n const wrapperEl = menuRef.current\n const parentItemEl = parentRef\n const parentMenuEl = parentItemEl.closest('.menu-list, .sub-menu') as HTMLElement | null\n if (!parentMenuEl) return\n // Measure visible boxes (the inner <menu> tag), not wrappers. Sub-menu wrappers\n // carry 16px paddingLeft which inflates the rect on the left side and would\n // otherwise produce phantom gaps when flipping left.\n const ownVisibleEl = (wrapperEl.querySelector('menu') as HTMLElement | null) ?? wrapperEl\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n\n const offsetParent = (wrapperEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const wrapperRect = wrapperEl.getBoundingClientRect()\n const ownVisibleRect = ownVisibleEl.getBoundingClientRect()\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n const parentItemRect = parentItemEl.getBoundingClientRect()\n\n // Some wrappers have 16px left padding (sub-menus). Track it so we can place the\n // wrapper such that the visible-menu edge — not the wrapper edge — lines up.\n const subMenuPaddingLeft = ownVisibleRect.left - wrapperRect.left\n const visibleWidth = ownVisibleRect.width\n const visibleHeight = ownVisibleRect.height\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - visibleWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + visibleWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - visibleWidth - padding)\n }\n\n // Align this sub-menu's first <li> with the hovered parent item.\n // Direct DOM measurement is more robust than computed-style math across nested\n // levels — picks up any box-sizing / margin quirks that pure padding values miss.\n const firstItemEl = ownVisibleEl.querySelector(':scope > li') as HTMLElement | null\n const firstItemRect = firstItemEl?.getBoundingClientRect()\n // Move the wrapper by exactly the delta between where the first <li> currently is\n // and where we want it (parent item's top). Avoids any cascading offset arithmetic.\n const desiredFirstItemTop = parentItemRect.top\n const currentFirstItemTop = firstItemRect ? firstItemRect.top : wrapperRect.top + 8\n const deltaY = desiredFirstItemTop - currentFirstItemTop\n let viewportTop = wrapperRect.top + deltaY\n if (viewportTop + visibleHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - visibleHeight - padding)\n }\n\n // Wrapper origin: visible target minus the wrapper's left padding when on the left.\n const wrapperLeft =\n nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n const targetTop = viewportTop - offsetParentRect.top\n const targetLeft = wrapperLeft - offsetParentRect.left\n const currentTop = typeof style?.top === 'number' ? style.top : parseFloat(String(style?.top))\n const currentLeft =\n typeof style?.left === 'number' ? style.left : parseFloat(String(style?.left))\n\n // Idempotent guard: only emit a layout update when the target differs by >1px\n // from what's already applied. This makes the effect safe to re-run on every\n // dependency change — including `style`, which we update from inside this effect.\n // After a successful update, the new style flows back as props, the effect runs\n // once more, current ≈ target, and the guard is a no-op. No infinite loop.\n if (Math.abs(targetTop - currentTop) > 1 || Math.abs(targetLeft - currentLeft) > 1) {\n onSubMenuLayout(id, { top: targetTop, left: targetLeft }, nextPlacement)\n }\n }, [subMenu, items, parentRef, id, placement, style?.top, style?.left, onSubMenuLayout])\n\n return (\n <Styled.MenuWrapper\n style={{ paddingLeft: subMenu ? 16 : 0, ...style }}\n className={subMenu ? 'sub-menu' : 'menu-list'}\n id={id}\n onMouseLeave={handleMouseLeave}\n {...props}\n ref={menuRef}\n >\n <Styled.Menu>\n {items\n .filter((item) => !item.hidden)\n .map((item, i) => {\n // if item is a node, return it\n if (item.node) {\n return item.node\n }\n\n if (item?.id === 'divider' || item?.separator ) return <hr key={i} />\n\n const {\n label,\n icon,\n img,\n highlighted,\n onClick,\n link,\n items = [],\n id,\n disableClose,\n selected,\n disabled,\n powerFeature,\n active,\n ...props\n } = item\n\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const handleClickPowerFeature = (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (powerFeature) {\n setPowerpackDialog?.(powerFeature)\n }\n\n // close the menu\n onMenuClose?.()\n }\n\n return (\n <MenuItem\n tabIndex={0}\n key={`${id}-${i}`}\n {...{\n label,\n icon,\n img,\n highlighted,\n items,\n selected,\n disabled,\n powerFeature,\n active,\n }}\n isLink={link}\n onClick={(e) =>\n isPowerFeature\n ? handleClickPowerFeature(e)\n : items.length\n ? handleSubMenu(e, id, items)\n : handleClick(e, onClick, link, disableClose)\n }\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter') {\n if (isPowerFeature) {\n handleClickPowerFeature(e as any)\n } else if (items.length) {\n handleSubMenu(e as any, id, items)\n } else {\n handleClick(e as any, onClick, link)\n }\n }\n const isLastChild = !(e.target as HTMLElement).nextSibling\n if (e.key === 'Tab' && isLastChild && !e.shiftKey) {\n e.preventDefault()\n e.stopPropagation()\n // when at bottom of list, tab goes to top\n const first = menuRef.current?.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n // when a submenu is open, esc closes it and sets focus on the parent\n if (e.key === 'Escape' && subMenu && parentRef) {\n e.preventDefault()\n e.stopPropagation()\n parentRef.focus()\n onClose?.(id)\n }\n }}\n style={{ paddingRight: items.length ? '0' : '16px', ...itemStyle }}\n ref={(e) => (itemRefs.current[id] = e)}\n onMouseEnter={(e) => handleSubMenu(e, id, items)}\n onMouseLeave={(e) => handleSubMenu(e, id, [])}\n className={`${itemClassName} ${props.className || ''}`}\n {...props}\n >\n {!!items.length && <Icon icon=\"arrow_right\" style={{ marginLeft: 'auto' }} />}\n </MenuItem>\n )\n })}\n </Styled.Menu>\n </Styled.MenuWrapper>\n )\n}\n"],"names":["MenuList","items","handleClick","onSubMenu","onSubMenuLayout","subMenu","level","id","parentRef","style","placement","onClose","onMenuClose","itemClassName","itemStyle","setPowerpackDialog","props","itemRefs","useRef","menuRef","handleSubMenu","e","itemEl","parentMenuEl","offsetParentRect","itemRect","parentVisibleRect","viewportWidth","viewportHeight","padding","estimatedWidth","estimatedHeight","gap","computeLeftSide","computeRightSide","fitsRight","fitsLeft","nextPlacement","viewportLeft","viewportTop","wrapperLeft","handleMouseLeave","useEffect","useLayoutEffect","wrapperEl","parentItemEl","ownVisibleEl","parentVisibleEl","wrapperRect","ownVisibleRect","parentItemRect","subMenuPaddingLeft","visibleWidth","visibleHeight","firstItemRect","desiredFirstItemTop","currentFirstItemTop","deltaY","targetTop","targetLeft","currentTop","currentLeft","jsx","Styled.MenuWrapper","Styled.Menu","item","i","label","icon","img","highlighted","onClick","link","disableClose","selected","disabled","powerFeature","active","powerLicense","usePowerpack","isPowerFeature","handleClickPowerFeature","MenuItem","isLastChild","Icon"],"mappings":"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"}
|
|
@@ -50,7 +50,6 @@ import "../../api/generated/grouping.es.js";
|
|
|
50
50
|
import "../../api/generated/views.es.js";
|
|
51
51
|
import "../../api/queries/actions/getActions.es.js";
|
|
52
52
|
import "../../api/queries/activities/getActivities.es.js";
|
|
53
|
-
import "../../api/queries/activities/updateActivities.es.js";
|
|
54
53
|
import "../../api/queries/activities/updateReaction.es.js";
|
|
55
54
|
import "../../api/queries/activities/getMentions.es.js";
|
|
56
55
|
import "../../api/queries/activities/getCategories.es.js";
|
|
@@ -125,7 +124,7 @@ import "../../context/WebsocketContext.es.js";
|
|
|
125
124
|
import "../../context/GlobalContext.es.js";
|
|
126
125
|
import "../../context/ProjectContext.es.js";
|
|
127
126
|
import "../../context/ProjectFoldersContext.es.js";
|
|
128
|
-
const
|
|
127
|
+
const Ie = ({
|
|
129
128
|
items: V,
|
|
130
129
|
handleClick: W,
|
|
131
130
|
onSubMenu: q,
|
|
@@ -248,6 +247,6 @@ const Be = ({
|
|
|
248
247
|
);
|
|
249
248
|
};
|
|
250
249
|
export {
|
|
251
|
-
|
|
250
|
+
Ie as MenuList
|
|
252
251
|
};
|
|
253
252
|
//# sourceMappingURL=MenuList.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuList.es.js","sources":["../../../../../src/components/Menu/MenuList.tsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react'\nimport MenuItem from './MenuItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './Menu.styled'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\nimport type { MenuItemType } from './Menu'\n\ninterface MenuListProps {\n items: MenuItemType[]\n handleClick: (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => void\n onSubMenu?: (e: React.MouseEvent, menu: any) => void\n /** Called by a sub-menu after it mounts, with its real measured style. Lets the parent\n * refit using actual width/height instead of the open-time estimate. */\n onSubMenuLayout?: (id: string, style: React.CSSProperties, placement: 'left' | 'right') => void\n subMenu?: boolean\n level: number\n id?: string\n parentRef?: HTMLElement | null\n style?: React.CSSProperties\n /** Placement of THIS menu relative to its parent. Inherited by descendants so once\n * a chain flips to one side it stays there. */\n placement?: 'left' | 'right'\n onClose?: (id?: string) => void\n onMenuClose?: () => void\n itemClassName?: string\n itemStyle?: React.CSSProperties\n setPowerpackDialog?: (feature: PowerpackFeature) => void\n [key: string]: any\n}\n\nexport const MenuList: React.FC<MenuListProps> = ({\n items,\n handleClick,\n onSubMenu,\n onSubMenuLayout,\n subMenu,\n level,\n id = 'root-menu',\n parentRef,\n style,\n placement,\n onClose,\n onMenuClose,\n itemClassName,\n itemStyle,\n setPowerpackDialog,\n ...props\n}) => {\n const itemRefs = useRef<{ [key: string]: HTMLElement | null }>({})\n const menuRef = useRef<HTMLDivElement>(null)\n\n const handleSubMenu = (e: React.MouseEvent, id: string, items: MenuItemType[]) => {\n const itemEl = itemRefs.current[id]\n const parentMenuEl = menuRef.current\n if (!itemEl || !parentMenuEl) return\n\n // Sub-menus render absolute inside DialogContent. Compute viewport-anchored coords\n // from this item's bounding rect, then translate into the offsetParent's coord space.\n // Each level computes independently — no inherited offsets that drift across depth.\n const offsetParent = (parentMenuEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const itemRect = itemEl.getBoundingClientRect()\n // Use the visible inner <menu> element if present — the wrapper has 16px paddingLeft\n // for sub-menus which would otherwise produce a phantom gap on flip-left chains.\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n // Use the parent's visible width as the initial estimate — sub-menus tend to be\n // similar size or smaller. Falls back to 240 if parent is unusually narrow.\n const estimatedWidth = Math.max(240, parentVisibleRect.width)\n const estimatedHeight = Math.min(items.length * 36 + 16, 480)\n\n // Choose horizontal placement. If an ancestor sub-menu has already flipped to the\n // left, every descendant sub-menu also goes left — DetailsPanel scenarios put the\n // root menu near the right edge of the screen, so flipping flip-flop on each level\n // would push deep menus back into the panel content.\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - estimatedWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + estimatedWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n // Neither side fits cleanly — clamp to viewport, prefer left.\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - estimatedWidth - padding)\n }\n\n // Align first sub-menu item with the hovered parent item. The visible <menu> has\n // 8px top padding, so the wrapper top sits 8px above the item top.\n const innerTopOffset = 8\n let viewportTop = itemRect.top - innerTopOffset\n if (viewportTop + estimatedHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - estimatedHeight - padding)\n }\n\n // Sub-menu wrappers carry 16px paddingLeft (so their wrapper rect is wider than\n // the visible menu). When we anchor on the LEFT side, the visible menu sits 16px\n // inside the wrapper — pull the wrapper left so the visible right edge lines up\n // with parentVisibleRect.left.\n const subMenuPaddingLeft = 16\n const wrapperLeft = nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n onSubMenu?.(e, {\n id,\n style: {\n top: viewportTop - offsetParentRect.top,\n left: wrapperLeft - offsetParentRect.left,\n },\n items,\n level: level,\n placement: nextPlacement,\n // Pass the actual menu-item element so sub-menu measurement uses the <li>\n // instead of whatever inner span the mouse event bubbled from.\n parentEl: itemEl,\n })\n }\n\n const handleMouseLeave = (e: React.MouseEvent) => {\n if (subMenu) {\n onSubMenu?.(e, { id: 'parent', items: [] })\n }\n }\n\n // when a subMenu open, set focus on the first item\n useEffect(() => {\n if (subMenu && menuRef.current) {\n const first = menuRef.current.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n }, [subMenu])\n\n // Sub-menus open with an estimated width — once mounted, measure for real and refit.\n // Reuses the same flip/clamp rules as handleSubMenu but with the actual rendered size.\n useLayoutEffect(() => {\n if (!subMenu || !menuRef.current || !parentRef || !onSubMenuLayout || !id) return\n const wrapperEl = menuRef.current\n const parentItemEl = parentRef\n const parentMenuEl = parentItemEl.closest('.menu-list, .sub-menu') as HTMLElement | null\n if (!parentMenuEl) return\n // Measure visible boxes (the inner <menu> tag), not wrappers. Sub-menu wrappers\n // carry 16px paddingLeft which inflates the rect on the left side and would\n // otherwise produce phantom gaps when flipping left.\n const ownVisibleEl = (wrapperEl.querySelector('menu') as HTMLElement | null) ?? wrapperEl\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n\n const offsetParent = (wrapperEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const wrapperRect = wrapperEl.getBoundingClientRect()\n const ownVisibleRect = ownVisibleEl.getBoundingClientRect()\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n const parentItemRect = parentItemEl.getBoundingClientRect()\n\n // Some wrappers have 16px left padding (sub-menus). Track it so we can place the\n // wrapper such that the visible-menu edge — not the wrapper edge — lines up.\n const subMenuPaddingLeft = ownVisibleRect.left - wrapperRect.left\n const visibleWidth = ownVisibleRect.width\n const visibleHeight = ownVisibleRect.height\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - visibleWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + visibleWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - visibleWidth - padding)\n }\n\n // Align this sub-menu's first <li> with the hovered parent item.\n // Direct DOM measurement is more robust than computed-style math across nested\n // levels — picks up any box-sizing / margin quirks that pure padding values miss.\n const firstItemEl = ownVisibleEl.querySelector(':scope > li') as HTMLElement | null\n const firstItemRect = firstItemEl?.getBoundingClientRect()\n // Move the wrapper by exactly the delta between where the first <li> currently is\n // and where we want it (parent item's top). Avoids any cascading offset arithmetic.\n const desiredFirstItemTop = parentItemRect.top\n const currentFirstItemTop = firstItemRect ? firstItemRect.top : wrapperRect.top + 8\n const deltaY = desiredFirstItemTop - currentFirstItemTop\n let viewportTop = wrapperRect.top + deltaY\n if (viewportTop + visibleHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - visibleHeight - padding)\n }\n\n // Wrapper origin: visible target minus the wrapper's left padding when on the left.\n const wrapperLeft =\n nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n const targetTop = viewportTop - offsetParentRect.top\n const targetLeft = wrapperLeft - offsetParentRect.left\n const currentTop = typeof style?.top === 'number' ? style.top : parseFloat(String(style?.top))\n const currentLeft =\n typeof style?.left === 'number' ? style.left : parseFloat(String(style?.left))\n\n // Idempotent guard: only emit a layout update when the target differs by >1px\n // from what's already applied. This makes the effect safe to re-run on every\n // dependency change — including `style`, which we update from inside this effect.\n // After a successful update, the new style flows back as props, the effect runs\n // once more, current ≈ target, and the guard is a no-op. No infinite loop.\n if (Math.abs(targetTop - currentTop) > 1 || Math.abs(targetLeft - currentLeft) > 1) {\n onSubMenuLayout(id, { top: targetTop, left: targetLeft }, nextPlacement)\n }\n }, [subMenu, items, parentRef, id, placement, style?.top, style?.left, onSubMenuLayout])\n\n return (\n <Styled.MenuWrapper\n style={{ paddingLeft: subMenu ? 16 : 0, ...style }}\n className={subMenu ? 'sub-menu' : 'menu-list'}\n id={id}\n onMouseLeave={handleMouseLeave}\n {...props}\n ref={menuRef}\n >\n <Styled.Menu>\n {items\n .filter((item) => !item.hidden)\n .map((item, i) => {\n // if item is a node, return it\n if (item.node) {\n return item.node\n }\n\n if (item?.id === 'divider' || item?.separator ) return <hr key={i} />\n\n const {\n label,\n icon,\n img,\n highlighted,\n onClick,\n link,\n items = [],\n id,\n disableClose,\n selected,\n disabled,\n powerFeature,\n active,\n ...props\n } = item\n\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const handleClickPowerFeature = (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (powerFeature) {\n setPowerpackDialog?.(powerFeature)\n }\n\n // close the menu\n onMenuClose?.()\n }\n\n return (\n <MenuItem\n tabIndex={0}\n key={`${id}-${i}`}\n {...{\n label,\n icon,\n img,\n highlighted,\n items,\n selected,\n disabled,\n powerFeature,\n active,\n }}\n isLink={link}\n onClick={(e) =>\n isPowerFeature\n ? handleClickPowerFeature(e)\n : items.length\n ? handleSubMenu(e, id, items)\n : handleClick(e, onClick, link, disableClose)\n }\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter') {\n if (isPowerFeature) {\n handleClickPowerFeature(e as any)\n } else if (items.length) {\n handleSubMenu(e as any, id, items)\n } else {\n handleClick(e as any, onClick, link)\n }\n }\n const isLastChild = !(e.target as HTMLElement).nextSibling\n if (e.key === 'Tab' && isLastChild && !e.shiftKey) {\n e.preventDefault()\n e.stopPropagation()\n // when at bottom of list, tab goes to top\n const first = menuRef.current?.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n // when a submenu is open, esc closes it and sets focus on the parent\n if (e.key === 'Escape' && subMenu && parentRef) {\n e.preventDefault()\n e.stopPropagation()\n parentRef.focus()\n onClose?.(id)\n }\n }}\n style={{ paddingRight: items.length ? '0' : '16px', ...itemStyle }}\n ref={(e) => (itemRefs.current[id] = e)}\n onMouseEnter={(e) => handleSubMenu(e, id, items)}\n onMouseLeave={(e) => handleSubMenu(e, id, [])}\n className={`${itemClassName} ${props.className || ''}`}\n {...props}\n >\n {!!items.length && <Icon icon=\"arrow_right\" style={{ marginLeft: 'auto' }} />}\n </MenuItem>\n )\n })}\n </Styled.Menu>\n </Styled.MenuWrapper>\n )\n}\n"],"names":["MenuList","items","handleClick","onSubMenu","onSubMenuLayout","subMenu","level","id","parentRef","style","placement","onClose","onMenuClose","itemClassName","itemStyle","setPowerpackDialog","props","itemRefs","useRef","menuRef","handleSubMenu","e","itemEl","parentMenuEl","offsetParentRect","itemRect","parentVisibleRect","viewportWidth","viewportHeight","padding","estimatedWidth","estimatedHeight","gap","computeLeftSide","computeRightSide","fitsRight","fitsLeft","nextPlacement","viewportLeft","viewportTop","wrapperLeft","handleMouseLeave","useEffect","useLayoutEffect","wrapperEl","parentItemEl","ownVisibleEl","parentVisibleEl","wrapperRect","ownVisibleRect","parentItemRect","subMenuPaddingLeft","visibleWidth","visibleHeight","firstItemRect","desiredFirstItemTop","currentFirstItemTop","deltaY","targetTop","targetLeft","currentTop","currentLeft","jsx","Styled.MenuWrapper","Styled.Menu","item","i","label","icon","img","highlighted","onClick","link","disableClose","selected","disabled","powerFeature","active","powerLicense","usePowerpack","isPowerFeature","handleClickPowerFeature","MenuItem","isLastChild","Icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuList.es.js","sources":["../../../../../src/components/Menu/MenuList.tsx"],"sourcesContent":["import React, { useEffect, useLayoutEffect, useRef } from 'react'\nimport MenuItem from './MenuItem'\nimport { Icon } from '@ynput/ayon-react-components'\nimport * as Styled from './Menu.styled'\nimport { PowerpackFeature, usePowerpack } from '@shared/context'\nimport type { MenuItemType } from './Menu'\n\ninterface MenuListProps {\n items: MenuItemType[]\n handleClick: (\n e: React.MouseEvent,\n onClick?: (e: React.MouseEvent) => void,\n url?: string,\n disableClose?: boolean,\n ) => void\n onSubMenu?: (e: React.MouseEvent, menu: any) => void\n /** Called by a sub-menu after it mounts, with its real measured style. Lets the parent\n * refit using actual width/height instead of the open-time estimate. */\n onSubMenuLayout?: (id: string, style: React.CSSProperties, placement: 'left' | 'right') => void\n subMenu?: boolean\n level: number\n id?: string\n parentRef?: HTMLElement | null\n style?: React.CSSProperties\n /** Placement of THIS menu relative to its parent. Inherited by descendants so once\n * a chain flips to one side it stays there. */\n placement?: 'left' | 'right'\n onClose?: (id?: string) => void\n onMenuClose?: () => void\n itemClassName?: string\n itemStyle?: React.CSSProperties\n setPowerpackDialog?: (feature: PowerpackFeature) => void\n [key: string]: any\n}\n\nexport const MenuList: React.FC<MenuListProps> = ({\n items,\n handleClick,\n onSubMenu,\n onSubMenuLayout,\n subMenu,\n level,\n id = 'root-menu',\n parentRef,\n style,\n placement,\n onClose,\n onMenuClose,\n itemClassName,\n itemStyle,\n setPowerpackDialog,\n ...props\n}) => {\n const itemRefs = useRef<{ [key: string]: HTMLElement | null }>({})\n const menuRef = useRef<HTMLDivElement>(null)\n\n const handleSubMenu = (e: React.MouseEvent, id: string, items: MenuItemType[]) => {\n const itemEl = itemRefs.current[id]\n const parentMenuEl = menuRef.current\n if (!itemEl || !parentMenuEl) return\n\n // Sub-menus render absolute inside DialogContent. Compute viewport-anchored coords\n // from this item's bounding rect, then translate into the offsetParent's coord space.\n // Each level computes independently — no inherited offsets that drift across depth.\n const offsetParent = (parentMenuEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const itemRect = itemEl.getBoundingClientRect()\n // Use the visible inner <menu> element if present — the wrapper has 16px paddingLeft\n // for sub-menus which would otherwise produce a phantom gap on flip-left chains.\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n // Use the parent's visible width as the initial estimate — sub-menus tend to be\n // similar size or smaller. Falls back to 240 if parent is unusually narrow.\n const estimatedWidth = Math.max(240, parentVisibleRect.width)\n const estimatedHeight = Math.min(items.length * 36 + 16, 480)\n\n // Choose horizontal placement. If an ancestor sub-menu has already flipped to the\n // left, every descendant sub-menu also goes left — DetailsPanel scenarios put the\n // root menu near the right edge of the screen, so flipping flip-flop on each level\n // would push deep menus back into the panel content.\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - estimatedWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + estimatedWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n // Neither side fits cleanly — clamp to viewport, prefer left.\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - estimatedWidth - padding)\n }\n\n // Align first sub-menu item with the hovered parent item. The visible <menu> has\n // 8px top padding, so the wrapper top sits 8px above the item top.\n const innerTopOffset = 8\n let viewportTop = itemRect.top - innerTopOffset\n if (viewportTop + estimatedHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - estimatedHeight - padding)\n }\n\n // Sub-menu wrappers carry 16px paddingLeft (so their wrapper rect is wider than\n // the visible menu). When we anchor on the LEFT side, the visible menu sits 16px\n // inside the wrapper — pull the wrapper left so the visible right edge lines up\n // with parentVisibleRect.left.\n const subMenuPaddingLeft = 16\n const wrapperLeft = nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n onSubMenu?.(e, {\n id,\n style: {\n top: viewportTop - offsetParentRect.top,\n left: wrapperLeft - offsetParentRect.left,\n },\n items,\n level: level,\n placement: nextPlacement,\n // Pass the actual menu-item element so sub-menu measurement uses the <li>\n // instead of whatever inner span the mouse event bubbled from.\n parentEl: itemEl,\n })\n }\n\n const handleMouseLeave = (e: React.MouseEvent) => {\n if (subMenu) {\n onSubMenu?.(e, { id: 'parent', items: [] })\n }\n }\n\n // when a subMenu open, set focus on the first item\n useEffect(() => {\n if (subMenu && menuRef.current) {\n const first = menuRef.current.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n }, [subMenu])\n\n // Sub-menus open with an estimated width — once mounted, measure for real and refit.\n // Reuses the same flip/clamp rules as handleSubMenu but with the actual rendered size.\n useLayoutEffect(() => {\n if (!subMenu || !menuRef.current || !parentRef || !onSubMenuLayout || !id) return\n const wrapperEl = menuRef.current\n const parentItemEl = parentRef\n const parentMenuEl = parentItemEl.closest('.menu-list, .sub-menu') as HTMLElement | null\n if (!parentMenuEl) return\n // Measure visible boxes (the inner <menu> tag), not wrappers. Sub-menu wrappers\n // carry 16px paddingLeft which inflates the rect on the left side and would\n // otherwise produce phantom gaps when flipping left.\n const ownVisibleEl = (wrapperEl.querySelector('menu') as HTMLElement | null) ?? wrapperEl\n const parentVisibleEl = (parentMenuEl.querySelector('menu') as HTMLElement | null) ?? parentMenuEl\n\n const offsetParent = (wrapperEl.offsetParent as HTMLElement | null) ?? document.body\n const offsetParentRect = offsetParent.getBoundingClientRect()\n const wrapperRect = wrapperEl.getBoundingClientRect()\n const ownVisibleRect = ownVisibleEl.getBoundingClientRect()\n const parentVisibleRect = parentVisibleEl.getBoundingClientRect()\n const parentItemRect = parentItemEl.getBoundingClientRect()\n\n // Some wrappers have 16px left padding (sub-menus). Track it so we can place the\n // wrapper such that the visible-menu edge — not the wrapper edge — lines up.\n const subMenuPaddingLeft = ownVisibleRect.left - wrapperRect.left\n const visibleWidth = ownVisibleRect.width\n const visibleHeight = ownVisibleRect.height\n\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 8\n\n const gap = 4\n const computeLeftSide = () => Math.max(padding, parentVisibleRect.left - visibleWidth - gap)\n const computeRightSide = () => parentVisibleRect.right + gap\n const fitsRight = computeRightSide() + visibleWidth <= viewportWidth - padding\n const fitsLeft = computeLeftSide() >= padding\n\n let nextPlacement: 'left' | 'right'\n let viewportLeft: number\n if (placement === 'left' && fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else if (fitsRight) {\n nextPlacement = 'right'\n viewportLeft = computeRightSide()\n } else if (fitsLeft) {\n nextPlacement = 'left'\n viewportLeft = computeLeftSide()\n } else {\n nextPlacement = 'left'\n viewportLeft = Math.max(padding, viewportWidth - visibleWidth - padding)\n }\n\n // Align this sub-menu's first <li> with the hovered parent item.\n // Direct DOM measurement is more robust than computed-style math across nested\n // levels — picks up any box-sizing / margin quirks that pure padding values miss.\n const firstItemEl = ownVisibleEl.querySelector(':scope > li') as HTMLElement | null\n const firstItemRect = firstItemEl?.getBoundingClientRect()\n // Move the wrapper by exactly the delta between where the first <li> currently is\n // and where we want it (parent item's top). Avoids any cascading offset arithmetic.\n const desiredFirstItemTop = parentItemRect.top\n const currentFirstItemTop = firstItemRect ? firstItemRect.top : wrapperRect.top + 8\n const deltaY = desiredFirstItemTop - currentFirstItemTop\n let viewportTop = wrapperRect.top + deltaY\n if (viewportTop + visibleHeight > viewportHeight - padding) {\n viewportTop = Math.max(padding, viewportHeight - visibleHeight - padding)\n }\n\n // Wrapper origin: visible target minus the wrapper's left padding when on the left.\n const wrapperLeft =\n nextPlacement === 'left' ? viewportLeft - subMenuPaddingLeft : viewportLeft\n\n const targetTop = viewportTop - offsetParentRect.top\n const targetLeft = wrapperLeft - offsetParentRect.left\n const currentTop = typeof style?.top === 'number' ? style.top : parseFloat(String(style?.top))\n const currentLeft =\n typeof style?.left === 'number' ? style.left : parseFloat(String(style?.left))\n\n // Idempotent guard: only emit a layout update when the target differs by >1px\n // from what's already applied. This makes the effect safe to re-run on every\n // dependency change — including `style`, which we update from inside this effect.\n // After a successful update, the new style flows back as props, the effect runs\n // once more, current ≈ target, and the guard is a no-op. No infinite loop.\n if (Math.abs(targetTop - currentTop) > 1 || Math.abs(targetLeft - currentLeft) > 1) {\n onSubMenuLayout(id, { top: targetTop, left: targetLeft }, nextPlacement)\n }\n }, [subMenu, items, parentRef, id, placement, style?.top, style?.left, onSubMenuLayout])\n\n return (\n <Styled.MenuWrapper\n style={{ paddingLeft: subMenu ? 16 : 0, ...style }}\n className={subMenu ? 'sub-menu' : 'menu-list'}\n id={id}\n onMouseLeave={handleMouseLeave}\n {...props}\n ref={menuRef}\n >\n <Styled.Menu>\n {items\n .filter((item) => !item.hidden)\n .map((item, i) => {\n // if item is a node, return it\n if (item.node) {\n return item.node\n }\n\n if (item?.id === 'divider' || item?.separator ) return <hr key={i} />\n\n const {\n label,\n icon,\n img,\n highlighted,\n onClick,\n link,\n items = [],\n id,\n disableClose,\n selected,\n disabled,\n powerFeature,\n active,\n ...props\n } = item\n\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const handleClickPowerFeature = (e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n if (powerFeature) {\n setPowerpackDialog?.(powerFeature)\n }\n\n // close the menu\n onMenuClose?.()\n }\n\n return (\n <MenuItem\n tabIndex={0}\n key={`${id}-${i}`}\n {...{\n label,\n icon,\n img,\n highlighted,\n items,\n selected,\n disabled,\n powerFeature,\n active,\n }}\n isLink={link}\n onClick={(e) =>\n isPowerFeature\n ? handleClickPowerFeature(e)\n : items.length\n ? handleSubMenu(e, id, items)\n : handleClick(e, onClick, link, disableClose)\n }\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter') {\n if (isPowerFeature) {\n handleClickPowerFeature(e as any)\n } else if (items.length) {\n handleSubMenu(e as any, id, items)\n } else {\n handleClick(e as any, onClick, link)\n }\n }\n const isLastChild = !(e.target as HTMLElement).nextSibling\n if (e.key === 'Tab' && isLastChild && !e.shiftKey) {\n e.preventDefault()\n e.stopPropagation()\n // when at bottom of list, tab goes to top\n const first = menuRef.current?.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n // when a submenu is open, esc closes it and sets focus on the parent\n if (e.key === 'Escape' && subMenu && parentRef) {\n e.preventDefault()\n e.stopPropagation()\n parentRef.focus()\n onClose?.(id)\n }\n }}\n style={{ paddingRight: items.length ? '0' : '16px', ...itemStyle }}\n ref={(e) => (itemRefs.current[id] = e)}\n onMouseEnter={(e) => handleSubMenu(e, id, items)}\n onMouseLeave={(e) => handleSubMenu(e, id, [])}\n className={`${itemClassName} ${props.className || ''}`}\n {...props}\n >\n {!!items.length && <Icon icon=\"arrow_right\" style={{ marginLeft: 'auto' }} />}\n </MenuItem>\n )\n })}\n </Styled.Menu>\n </Styled.MenuWrapper>\n )\n}\n"],"names":["MenuList","items","handleClick","onSubMenu","onSubMenuLayout","subMenu","level","id","parentRef","style","placement","onClose","onMenuClose","itemClassName","itemStyle","setPowerpackDialog","props","itemRefs","useRef","menuRef","handleSubMenu","e","itemEl","parentMenuEl","offsetParentRect","itemRect","parentVisibleRect","viewportWidth","viewportHeight","padding","estimatedWidth","estimatedHeight","gap","computeLeftSide","computeRightSide","fitsRight","fitsLeft","nextPlacement","viewportLeft","viewportTop","wrapperLeft","handleMouseLeave","useEffect","useLayoutEffect","wrapperEl","parentItemEl","ownVisibleEl","parentVisibleEl","wrapperRect","ownVisibleRect","parentItemRect","subMenuPaddingLeft","visibleWidth","visibleHeight","firstItemRect","desiredFirstItemTop","currentFirstItemTop","deltaY","targetTop","targetLeft","currentTop","currentLeft","jsx","Styled.MenuWrapper","Styled.Menu","item","i","label","icon","img","highlighted","onClick","link","disableClose","selected","disabled","powerFeature","active","powerLicense","usePowerpack","isPowerFeature","handleClickPowerFeature","MenuItem","isLastChild","Icon"],"mappings":"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"}
|