@ynput/ayon-frontend-shared 0.3.31 → 0.3.33
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 +28 -24
- package/dist/DetailsPanel.es.js.map +1 -1
- package/dist/ProjectTreeTable.cjs.js +1 -1
- package/dist/ProjectTreeTable.es.js +219 -199
- package/dist/ProjectTreeTable.es.js.map +1 -1
- package/dist/Slicer.cjs.js +1 -1
- package/dist/Slicer.es.js +20 -18
- package/dist/Slicer.es.js.map +1 -1
- package/dist/_virtual/index.cjs14.js +1 -1
- package/dist/_virtual/index.cjs15.js +1 -1
- package/dist/_virtual/index.cjs19.js +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.cjs7.js +1 -1
- package/dist/_virtual/index.es10.js +2 -2
- package/dist/_virtual/index.es11.js +2 -2
- package/dist/_virtual/index.es13.js +2 -2
- package/dist/_virtual/index.es14.js +2 -5
- package/dist/_virtual/index.es14.js.map +1 -1
- package/dist/_virtual/index.es15.js +2 -2
- package/dist/_virtual/index.es16.js +2 -2
- package/dist/_virtual/index.es17.js +2 -2
- package/dist/_virtual/index.es18.js +2 -2
- package/dist/_virtual/index.es19.js +2 -2
- package/dist/_virtual/index.es20.js +2 -2
- package/dist/_virtual/index.es22.js +3 -3
- package/dist/_virtual/index.es23.js +5 -5
- package/dist/_virtual/index.es24.js +5 -5
- package/dist/_virtual/index.es7.js +5 -2
- package/dist/_virtual/index.es7.js.map +1 -1
- package/dist/_virtual/index.es9.js +2 -2
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +460 -436
- package/dist/api.es.js.map +1 -1
- package/dist/components.cjs.js +1 -1
- package/dist/components.es.js +83 -80
- package/dist/components.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +15 -11
- 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/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/@module-federation/runtime-core/dist/module/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/module/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/plugins/snapshot/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/remote/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/shared/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/type/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/hooks/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.cjs.js.map +1 -1
- package/dist/shared/node_modules/@module-federation/runtime-core/dist/utils/semver/index.es.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/index.cjs.js +1 -1
- package/dist/shared/node_modules/@module-federation/sdk/dist/index.es.js +1 -1
- package/dist/shared/node_modules/prop-types/index.cjs.js +1 -1
- package/dist/shared/node_modules/prop-types/index.es.js +1 -1
- package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
- package/dist/shared/node_modules/react-is/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js.map +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js +1 -1
- package/dist/shared/src/api/base/client.cjs.js.map +1 -1
- package/dist/shared/src/api/base/client.es.js +22 -17
- package/dist/shared/src/api/base/client.es.js.map +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js +1 -1
- package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/folders.es.js +2 -14
- package/dist/shared/src/api/generated/folders.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.cjs.js +299 -61
- package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphql.es.js +430 -170
- package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
- package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/activityQueries.cjs.js +1 -0
- package/dist/shared/src/api/queries/activities/activityQueries.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/activityQueries.es.js +1 -0
- package/dist/shared/src/api/queries/activities/activityQueries.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/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 +26 -24
- package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js +35 -23
- package/dist/shared/src/api/queries/activities/util/activitiesHelpers.es.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js +74 -60
- package/dist/shared/src/api/queries/activities/util/activityRealtimeHandler.es.js.map +1 -1
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js +2 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js +96 -0
- package/dist/shared/src/api/queries/columnStats/columnStats.es.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +2 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +88 -0
- package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -0
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +62 -48
- package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +7 -3
- package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/getLists.es.js +94 -79
- package/dist/shared/src/api/queries/entityLists/getLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js +2 -0
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.cjs.js.map +1 -0
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js +68 -0
- package/dist/shared/src/api/queries/entityLists/listItemsColumnStats.es.js.map +1 -0
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js +73 -69
- package/dist/shared/src/api/queries/entityLists/updateLists.es.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/folders/getFolders.es.js +104 -71
- package/dist/shared/src/api/queries/folders/getFolders.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/getOverview.es.js +265 -216
- package/dist/shared/src/api/queries/overview/getOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/overview/updateOverview.es.js +207 -187
- package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +138 -107
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.cjs.js +4 -4
- package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/users/getUsers.es.js +11 -11
- package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js +332 -239
- package/dist/shared/src/api/queries/versions/getVersionsProducts.es.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
- package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/views/updateViews.es.js +38 -38
- package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.cjs.js.map +1 -1
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js +4 -2
- package/dist/shared/src/components/ColumnHeaderMenuUI.es.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +4 -2
- package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +8 -4
- 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 +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +4 -2
- package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityIcon/EntityIcon.es.js +4 -2
- package/dist/shared/src/components/EntityIcon/EntityIcon.es.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
- package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +143 -162
- 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 +8 -4
- 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 +4 -2
- package/dist/shared/src/components/EntityPath/SegmentProvider.es.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js +6 -4
- package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +4 -2
- package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +4 -2
- package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/LinksManager.es.js +4 -2
- package/dist/shared/src/components/LinksManager/LinksManager.es.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
- package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +8 -4
- 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 +4 -2
- package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.cjs.js.map +1 -1
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js +4 -2
- package/dist/shared/src/components/ListMetaData/ListMetaData.es.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.cjs.js +1 -1
- package/dist/shared/src/components/Menu/Menu.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/Menu.es.js +4 -2
- package/dist/shared/src/components/Menu/Menu.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.es.js +2 -0
- package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuList.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuList.es.js +4 -2
- package/dist/shared/src/components/Menu/MenuList.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +4 -2
- package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +4 -2
- package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.cjs.js.map +1 -1
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js +4 -2
- package/dist/shared/src/components/Powerpack/useFreeTrialLink.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js +81 -77
- package/dist/shared/src/components/ProjectTableSettings/ColumnsSettings.es.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
- package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +10 -6
- 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 +4 -2
- package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.cjs.js.map +1 -1
- package/dist/shared/src/components/RemotePage/ProjectPageRemote.es.js +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +4 -2
- package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +8 -4
- 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 +9 -5
- 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 +8 -4
- 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 +4 -2
- package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js +8 -4
- package/dist/shared/src/components/ReviewablesSelector/Card.es.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.cjs.js.map +1 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js +2 -1
- package/dist/shared/src/components/ReviewablesSelector/ReviewablesSelector.es.js.map +1 -1
- package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js +2 -0
- package/dist/shared/src/components/SearchFilter/filterScopeRegistry.cjs.js.map +1 -0
- package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js +24 -0
- package/dist/shared/src/components/SearchFilter/filterScopeRegistry.es.js.map +1 -0
- 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 +8 -6
- package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +4 -2
- package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.cjs.js.map +1 -1
- package/dist/shared/src/components/SimpleFormDialog/FormFile.es.js +10 -6
- 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 +8 -4
- 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 +4 -2
- package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js +2 -2
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js +12 -10
- package/dist/shared/src/components/Thumbnail/StackedThumbnails.es.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.cjs.js.map +1 -1
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js +49 -44
- package/dist/shared/src/components/Thumbnail/Thumbnail.es.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +3 -3
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +32 -22
- package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
- package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +8 -4
- 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 +12 -8
- 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 +4 -2
- package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js +1 -1
- package/dist/shared/src/config/powerpackFeatures.cjs.js.map +1 -1
- package/dist/shared/src/config/powerpackFeatures.es.js +7 -1
- package/dist/shared/src/config/powerpackFeatures.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +8 -4
- 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 +4 -2
- package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +45 -40
- 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 +8 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js +8 -4
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/DetailsPanelMoreMenu.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelMoreMenu/hooks/useContextAccess.es.js +8 -4
- 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 +4 -2
- package/dist/shared/src/containers/DetailsPanel/components/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/components/TabHeaderAndFilters/TabHeaderAndFilters.styled.es.js +21 -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 +8 -4
- 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 +7 -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 +14 -11
- package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js +14 -14
- package/dist/shared/src/containers/DetailsPanel/helpers/getThumbnails.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +14 -9
- package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +4 -2
- package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/Feed.es.js +157 -140
- 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 +8 -4
- 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 +133 -144
- 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 +8 -4
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityCommentMenu.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js +3 -3
- package/dist/shared/src/containers/Feed/components/ActivityDate.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityDate.es.js +39 -31
- package/dist/shared/src/containers/Feed/components/ActivityDate.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js +23 -20
- package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js +349 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.es.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js +50 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js +56 -0
- package/dist/shared/src/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.es.js.map +1 -0
- 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 +29 -27
- package/dist/shared/src/containers/Feed/components/ActivityVersions/ActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +351 -290
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +87 -12
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +101 -21
- package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js +34 -0
- package/dist/shared/src/containers/Feed/components/CommentInput/VersionReviewPill.es.js.map +1 -0
- 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 +12 -8
- 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 +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useAnnotationsSync.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useMentionLink.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js +4 -2
- package/dist/shared/src/containers/Feed/components/FileUploadCard/FileUploadCard.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +40 -45
- 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 +4 -2
- package/dist/shared/src/containers/Feed/components/Tooltips/TeamTooltip/TeamTooltip.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js +7 -5
- package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js +14 -13
- package/dist/shared/src/containers/Feed/helpers/groupActivityVersions.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useCategoryData.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useCategoryData.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/hooks/useCategoryData.es.js +27 -0
- package/dist/shared/src/containers/Feed/hooks/useCategoryData.es.js.map +1 -0
- 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 +88 -68
- 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 +4 -2
- package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js +2 -0
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.cjs.js.map +1 -0
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js +113 -0
- package/dist/shared/src/containers/Feed/hooks/useLastVersionReview.es.js.map +1 -0
- 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 +214 -204
- package/dist/shared/src/containers/ListTable/ListTable.es.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
- package/dist/shared/src/containers/ListTable/ListTableCell.es.js +8 -4
- 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 +8 -4
- 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 +731 -675
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +32 -10
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +42 -18
- package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +21 -16
- 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 +61 -45
- 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 +8 -4
- 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 +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js +48 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js +103 -0
- package/dist/shared/src/containers/ProjectTreeTable/components/TableFooterRow.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -0
- package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +8 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js +8 -5
- package/dist/shared/src/containers/ProjectTreeTable/context/ClipboardContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +219 -183
- 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 +6 -4
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +94 -90
- package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js +21 -17
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectedRowsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js +1 -2
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsContext.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +21 -13
- package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +85 -81
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +203 -181
- 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 +10 -5
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +179 -175
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +96 -91
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +8 -4
- 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 +46 -44
- package/dist/shared/src/containers/ProjectTreeTable/hooks/useUpdateTableData.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js +16 -0
- package/dist/shared/src/containers/ProjectTreeTable/types/summaryTypes.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +19 -15
- package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js +29 -25
- package/dist/shared/src/containers/ProjectTreeTable/utils/checkColumnVisibility.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js +17 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/pinningUtils.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js +61 -61
- package/dist/shared/src/containers/ProjectTreeTable/utils/queryFilterToClientFilter.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js +2 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.cjs.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js +15 -0
- package/dist/shared/src/containers/ProjectTreeTable/utils/sanitizeQueryFilter.es.js.map +1 -0
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/BooleanWidget.es.js +8 -4
- 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 +16 -12
- package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +10 -6
- 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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/MarkdownWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +8 -4
- 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 +8 -4
- 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 +4 -2
- package/dist/shared/src/containers/ProjectTreeTable/widgets/TextContentWidget.es.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +4 -4
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +24 -19
- package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
- package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +8 -4
- 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 +8 -4
- 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 +52 -50
- 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 +4 -2
- package/dist/shared/src/containers/Slicer/components/SlicerDropdownFallback.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/components/SlicerSearch.es.js +8 -4
- 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 +57 -53
- 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 +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useEntityListsSlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useProjectAnatomySlices.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSelectedEntityIds.es.js +8 -4
- 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 +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useSlicerAttributesData.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.es.js +12 -18
- package/dist/shared/src/containers/Slicer/hooks/useSlicerViewSync.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 +13 -11
- package/dist/shared/src/containers/Slicer/hooks/useTableDataBySlice.es.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.cjs.js.map +1 -1
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js +4 -2
- package/dist/shared/src/containers/Slicer/hooks/useUsersTable.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +4 -2
- package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/ViewsMenuContainer/BaseViewsTags.es.js +8 -4
- 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 +4 -2
- package/dist/shared/src/containers/Views/ViewsMenuContainer/ViewsMenuContainer.es.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js +120 -118
- package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js +18 -16
- package/dist/shared/src/containers/Views/hooks/pages/useListsViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js +79 -51
- package/dist/shared/src/containers/Views/hooks/pages/useOverviewViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js +19 -17
- package/dist/shared/src/containers/Views/hooks/pages/useTaskProgressViewSettings.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useBaseViewMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +7 -5
- package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +13 -11
- package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +4 -2
- package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +79 -65
- package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/AddonProjectContext.es.js +6 -4
- package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +6 -4
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js +1 -1
- package/dist/shared/src/context/GlobalContext.cjs.js.map +1 -1
- package/dist/shared/src/context/GlobalContext.es.js +6 -4
- package/dist/shared/src/context/GlobalContext.es.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
- package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
- package/dist/shared/src/context/PowerpackContext.es.js +8 -6
- package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectContext.es.js +6 -4
- package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.cjs.js.map +1 -1
- package/dist/shared/src/context/ProjectFoldersContext.es.js +6 -4
- package/dist/shared/src/context/ProjectFoldersContext.es.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/RemoteModulesContext.es.js +6 -4
- package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.cjs.js.map +1 -1
- package/dist/shared/src/context/SubtasksModulesContext.es.js +6 -4
- package/dist/shared/src/context/SubtasksModulesContext.es.js.map +1 -1
- package/dist/shared/src/context/UriContext.cjs.js +1 -1
- package/dist/shared/src/context/UriContext.cjs.js.map +1 -1
- package/dist/shared/src/context/UriContext.es.js +7 -5
- package/dist/shared/src/context/UriContext.es.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js +1 -1
- package/dist/shared/src/context/WebsocketContext.cjs.js.map +1 -1
- package/dist/shared/src/context/WebsocketContext.es.js +10 -6
- 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 +4 -2
- package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useEntityUpdate.es.js +4 -2
- package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGetEntityGroups.es.js +4 -2
- package/dist/shared/src/hooks/useGetEntityGroups.es.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js +4 -2
- package/dist/shared/src/hooks/useGroupByRemoteModules.es.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useHierarchyTable.es.js +4 -2
- package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedStatuses.es.js +6 -4
- package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js +1 -1
- package/dist/shared/src/hooks/useScopedTypes.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useScopedTypes.es.js +4 -2
- package/dist/shared/src/hooks/useScopedTypes.es.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
- package/dist/shared/src/hooks/useUserProjectConfig.es.js +4 -2
- package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
- package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
- package/dist/shared/src/util/columnConfigConverter.es.js +86 -65
- package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
- package/dist/shared/src/util/getThumbnailUrl.cjs.js +2 -0
- package/dist/shared/src/util/getThumbnailUrl.cjs.js.map +1 -0
- package/dist/shared/src/util/getThumbnailUrl.es.js +23 -0
- package/dist/shared/src/util/getThumbnailUrl.es.js.map +1 -0
- package/dist/shared/src/util/thumbnailWebsocket.cjs.js +2 -0
- package/dist/shared/src/util/thumbnailWebsocket.cjs.js.map +1 -0
- package/dist/shared/src/util/thumbnailWebsocket.es.js +54 -0
- package/dist/shared/src/util/thumbnailWebsocket.es.js.map +1 -0
- package/dist/types/api/generated/folders.d.ts +1 -6
- package/dist/types/api/generated/graphql.d.ts +403 -6
- package/dist/types/api/generated/graphqlLinks.d.ts +80 -4
- package/dist/types/api/queries/activities/activityQueries.d.ts +1 -0
- package/dist/types/api/queries/activities/getActivities.d.ts +506 -0
- package/dist/types/api/queries/activities/updateActivities.d.ts +116 -0
- package/dist/types/api/queries/activities/util/activitiesHelpers.d.ts +1 -0
- package/dist/types/api/queries/columnStats/columnStats.d.ts +28 -0
- package/dist/types/api/queries/columnStats/index.d.ts +2 -0
- package/dist/types/api/queries/columnStats/metricTargets.d.ts +31 -0
- package/dist/types/api/queries/entities/getEntity.d.ts +57 -0
- package/dist/types/api/queries/entities/getEntityPanel.d.ts +57 -0
- package/dist/types/api/queries/entities/transformDetailsPanelData.d.ts +1 -0
- package/dist/types/api/queries/entities/updateEntity.d.ts +57 -0
- package/dist/types/api/queries/entityLists/getLists.d.ts +57 -0
- package/dist/types/api/queries/entityLists/index.d.ts +1 -0
- package/dist/types/api/queries/entityLists/listItemsColumnStats.d.ts +312 -0
- package/dist/types/api/queries/entityLists/types.d.ts +3 -0
- package/dist/types/api/queries/index.d.ts +1 -0
- package/dist/types/api/queries/overview/getOverview.d.ts +743 -1
- package/dist/types/api/queries/project/getProject.d.ts +57 -0
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +79 -0
- package/dist/types/api/queries/users/getUsers.d.ts +57 -0
- package/dist/types/api/queries/versions/getVersionsProducts.d.ts +848 -1
- package/dist/types/components/EntityPanelUploader/EntityPanelUploader.d.ts +1 -11
- package/dist/types/components/SearchFilter/filterScopeRegistry.d.ts +5 -0
- package/dist/types/components/SearchFilter/index.d.ts +1 -0
- package/dist/types/components/Thumbnail/StackedThumbnails.d.ts +2 -2
- package/dist/types/components/Thumbnail/Thumbnail.d.ts +2 -2
- package/dist/types/components/ThumbnailSimple/ThumbnailSimple.d.ts +1 -1
- package/dist/types/config/powerpackFeatures.d.ts +1 -1
- package/dist/types/containers/DetailsPanel/containers/FeedWrapper.d.ts +1 -0
- package/dist/types/containers/DetailsPanel/helpers/getThumbnails.d.ts +2 -2
- package/dist/types/containers/Feed/Feed.d.ts +2 -1
- package/dist/types/containers/Feed/components/ActivityDate.d.ts +1 -0
- package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.d.ts +20 -0
- package/dist/types/containers/Feed/components/ActivityVersionReview/ActivityVersionReview.styled.d.ts +3 -0
- package/dist/types/containers/Feed/components/ActivityVersions/ActivityVersions.d.ts +1 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +8 -0
- package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +19 -0
- package/dist/types/containers/Feed/components/CommentInput/VersionReviewPill.d.ts +7 -0
- package/dist/types/containers/Feed/hooks/useCategoryData.d.ts +7 -0
- package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +2 -0
- package/dist/types/containers/Feed/hooks/useGetFeedActivitiesData.d.ts +3 -0
- package/dist/types/containers/Feed/hooks/useLastVersionReview.d.ts +11 -0
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.d.ts +8 -3
- package/dist/types/containers/ProjectTreeTable/ProjectTreeTable.styled.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/components/TableFooterRow.d.ts +14 -0
- package/dist/types/containers/ProjectTreeTable/constants.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +10 -0
- package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/context/SelectionCellsContext.d.ts +0 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useFetchOverviewData.d.ts +2 -1
- package/dist/types/containers/ProjectTreeTable/hooks/useQueryFilters.d.ts +1 -1
- package/dist/types/containers/ProjectTreeTable/index.d.ts +1 -0
- package/dist/types/containers/ProjectTreeTable/types/index.d.ts +17 -1
- package/dist/types/containers/ProjectTreeTable/types/overviewContext.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/types/summaryTypes.d.ts +50 -0
- package/dist/types/containers/ProjectTreeTable/types/table.d.ts +4 -0
- package/dist/types/containers/ProjectTreeTable/utils/checkColumnVisibility.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/index.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/utils/pinningUtils.d.ts +6 -0
- package/dist/types/containers/ProjectTreeTable/utils/sanitizeQueryFilter.d.ts +2 -0
- package/dist/types/containers/ProjectTreeTable/widgets/ThumbnailWidget.d.ts +1 -1
- package/dist/types/containers/Views/hooks/useSelectedView.d.ts +2 -1
- package/dist/types/containers/Views/utils/viewUpdateHelper.d.ts +7 -3
- package/dist/types/util/getThumbnailUrl.d.ts +18 -0
- package/dist/types/util/index.d.ts +2 -0
- package/dist/types/util/thumbnailWebsocket.d.ts +21 -0
- package/dist/util.cjs.js +1 -1
- package/dist/util.es.js +35 -30
- package/dist/util.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersionsProducts.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProducts.ts"],"sourcesContent":["// QUERIES FOR THE VERSIONS PAGE, FETCHING AND UPDATING DATA\n// Uses a separate graphqlVersionsApi for increased IDE speed\n\n// There are 4 main fetch requests:\n\n// Versions Only:\n// 1. GetVersions - fetches all versions in the project for given filtering and with pagination\n\n// Products and Versions (stacked):\n// 2. GetProducts - fetches all products in the project based on product and version filtering\n// 3. GetVersionsByProducts - when a product is expanded, fetches all versions for the products that are expanded. Uses getVersionsByProductId for each parent id. (uses queryFn)\n// 4. GetVersionsByProductId - get all versions for a specific product. Used by getVersionsByProducts only.\n\n// VersionFragment is used in all version queries to ensure consistent data structure\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n InfiniteData,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport {\n GetProductsQuery,\n GetProductsQueryVariables,\n GetVersionsByProductIdQueryVariables,\n GetVersionsQuery,\n GetVersionsQueryVariables,\n gqlApi,\n PageInfo,\n VpFolderFragment,\n} from '@shared/api/generated'\nimport {\n parseGQLErrorMessage,\n provideTagsForProductsInfinite,\n provideTagsForProductsResult,\n provideTagsForVersionsInfinite,\n provideTagsForVersionsResult,\n transformProductsResponse,\n transformVersionsResponse,\n} from './getVersionsProductsUtils'\nimport { PubSub } from '@shared/util'\n\n// SHARED CACHE UPDATE HELPERS\n// These helpers are used by PubSub handlers to update cached data in real-time\n\n/**\n * Finds the correct insertion index for a new item in a sorted array\n * Used when adding new items to maintain sort order\n */\nfunction findSortedInsertIndex<T>(items: T[], newItem: T, sortBy: keyof T, desc: boolean): number {\n for (let i = 0; i < items.length; i++) {\n const newValue = newItem[sortBy]\n const currentValue = items[i][sortBy]\n const shouldInsert = desc ? newValue > currentValue : newValue < currentValue\n\n if (shouldInsert) {\n return i\n }\n }\n return items.length\n}\n\n/**\n * Updates a paginated cache (draft.pages[].items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add at sorted position\n *\n * @param pages - Array of page objects containing items arrays\n * @param entityId - ID of the entity to update/delete/add\n * @param updatedItem - The updated item, or undefined if deleted\n * @param itemsKey - Key to access items array in each page ('versions' or 'products')\n * @param sortBy - Property to sort by when inserting new items\n * @param desc - Sort direction (true = descending)\n */\nfunction updatePagedCache<T extends { id: string }>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pages: any[],\n entityId: string,\n updatedItem: T | undefined,\n itemsKey: string,\n sortBy: keyof T,\n desc: boolean,\n): void {\n // Search for existing item in all pages\n for (const page of pages) {\n const items = page[itemsKey] as T[]\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n // Update existing item\n items[index] = updatedItem\n } else {\n // Item no longer exists or doesn't match filters - remove it\n items.splice(index, 1)\n }\n return\n }\n }\n\n // Item not found in cache - add at correct sorted position in first page\n if (updatedItem && pages.length > 0) {\n const items = pages[0][itemsKey] as T[]\n const insertIndex = findSortedInsertIndex(items, updatedItem, sortBy, desc)\n items.splice(insertIndex, 0, updatedItem)\n }\n}\n\n/**\n * Updates a flat cache (draft.items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add new\n */\nfunction updateFlatCache<T extends { id: string }>(\n items: T[],\n entityId: string,\n updatedItem: T | undefined,\n): { index: number; action: 'updated' | 'deleted' | 'added' | 'none' } {\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n items[index] = updatedItem\n return { index, action: 'updated' }\n } else {\n items.splice(index, 1)\n return { index, action: 'deleted' }\n }\n } else if (updatedItem) {\n items.push(updatedItem)\n return { index: items.length - 1, action: 'added' }\n }\n\n return { index: -1, action: 'none' }\n}\n\n// Query result types\nexport type FolderAttribNode = VpFolderFragment & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n}\nexport type VersionNodeRAW = GetVersionsQuery['project']['versions']['edges'][0]['node']\nexport type VersionNode = VersionNodeRAW & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n product: VersionNodeRAW['product'] & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n folder: FolderAttribNode // folder with parsed attribs\n }\n groups?: { value?: string; hasNextPage?: string }[] // grouping metadata\n}\nexport type ProductNodeRAW = GetProductsQuery['project']['products']['edges'][0]['node']\nexport type ProductNode = Omit<ProductNodeRAW, 'versions'> & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n featuredVersion?: VersionNode | null // added separately\n folder: FolderAttribNode // folder with parsed attribs\n versions: {\n id: string\n name: string\n version: number\n heroVersionId?: string | null\n }[] // versions with isHero flag\n}\n\nexport type GetVersionsResult = {\n pageInfo?: PageInfo\n versions: VersionNode[]\n errors?: Array<{ productId: string; error: string }>\n}\n\n// for infinite query args\nexport type GetVersionsArgs = Omit<GetVersionsQueryVariables, 'cursor'> & {\n desc?: boolean // sort direction\n}\n\n// for paginated queries in infinite query\ntype VersionsPageParam = {\n cursor: string\n desc?: boolean\n}\n\nexport type GetProductsArgs = Omit<GetProductsQueryVariables, 'cursor' | 'versionIds'> & {\n desc?: boolean // sort direction\n}\n\ntype ProductsPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype GetVersionsByProductsArgs = GetVersionsByProductIdQueryVariables & {\n productIds: string[]\n desc?: boolean\n}\n\nexport type GetGroupedVersionsListArgs = {\n projectName: string\n groups: { filter: string; count?: number | null; value: string }[]\n groupFilterKey?: string\n versionFilter?: string\n productFilter?: string\n taskFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n featuredOnly?: string[]\n hasReviewables?: boolean\n}\n\nexport type GetGroupedVersionsListResult = {\n versions: VersionNode[]\n}\n\nexport type VersionInfiniteResult = InfiniteData<GetVersionsResult, VersionsPageParam> | undefined\n\nexport type ProductInfiniteResult = InfiniteData<GetProductsResult, ProductsPageParam> | undefined\n\nexport type GetProductsResult = {\n pageInfo: PageInfo\n products: ProductNode[]\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetVersions'> & {\n GetVersions: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetVersionsByProductId: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetProducts: OverrideResultType<Definitions['GetProducts'], GetProductsResult>\n}\n\nconst enhancedVersionsPageApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // used by both stacked and non-stacked views\n GetVersions: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n },\n // used by getVersionsByProducts only\n GetVersionsByProductId: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n },\n // used by getProductsInfinite only\n GetProducts: {\n transformResponse: transformProductsResponse,\n providesTags: provideTagsForProductsResult,\n },\n },\n})\n\nexport const VP_INFINITE_QUERY_COUNT = 250 // Number of items to fetch per page\nconst VERSIONS_BY_PRODUCT_ID_QUERY_COUNT = 1000 // max number of versions to fetch per product id\nconst MAX_PAGES_PER_PRODUCT = 10 // Hard cutoff to prevent infinite loops\n\nconst injectedVersionsPageApi = enhancedVersionsPageApi.injectEndpoints({\n endpoints: (build) => ({\n // enhance GetVersions with an infinite query\n getVersionsInfinite: build.infiniteQuery<GetVersionsResult, GetVersionsArgs, VersionsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetVersions query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetVersions gql query\n const result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n versions: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the versions directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getVersionsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsInfinite,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n const token = PubSub.subscribe('entity.version', async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n // Re-fetch the specific version with current filters to check if it still matches\n // If version was deleted or no longer matches filters, result will be empty\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n {\n projectName: arg.projectName,\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n versionIds: [entityId],\n first: 1,\n },\n {\n forceRefetch: true,\n },\n ),\n )\n\n if (result.error) return\n\n // Update the cache: update existing, delete if not found, or add new\n updateCachedData((draft) => {\n const updatedVersion = result.data?.versions?.[0]\n updatePagedCache(\n draft.pages,\n entityId,\n updatedVersion,\n 'versions',\n (arg.sortBy || 'createdAt') as keyof VersionNode,\n arg.desc || false,\n )\n })\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n })\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n },\n ),\n\n // custom query function that fetches versions by multiple parent ids -not infinite and gets 1000 versions max\n getVersionsByProducts: build.query<GetVersionsResult, GetVersionsByProductsArgs>({\n queryFn: async (args, { dispatch, forced }) => {\n const { productIds = [], desc, ...rest } = args\n\n // Helper function to fetch a page of versions\n const fetchVersionsPage = async (productId: string, cursor?: string) => {\n const queryParams: GetVersionsByProductIdQueryVariables = {\n ...rest,\n productIds: [productId],\n }\n\n if (desc) {\n if (cursor) queryParams.before = cursor\n queryParams.last = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n } else {\n if (cursor) queryParams.after = cursor\n queryParams.first = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n }\n\n return dispatch(\n enhancedVersionsPageApi.endpoints.GetVersionsByProductId.initiate(queryParams, {\n forceRefetch: forced,\n }),\n )\n }\n\n // for each product id, call getVersionsByProductId\n const promises = productIds.map((productId) => fetchVersionsPage(productId))\n\n // wait for all requests to settle (either fulfilled or rejected)\n const settledResults = await Promise.allSettled(promises)\n\n // Collect all versions from initial queries\n const allVersions: VersionNode[] = []\n const errors: Array<{ productId: string; error: any }> = []\n\n // Check each result for additional pages and fetch them if needed\n for (let i = 0; i < settledResults.length; i++) {\n const settledResult = settledResults[i]\n const productId = productIds[i]\n\n // Handle rejected promises\n if (settledResult.status === 'rejected') {\n console.error(`Error fetching versions for product ${productId}:`, settledResult.reason)\n errors.push({ productId, error: parseGQLErrorMessage(settledResult.reason) })\n continue\n }\n\n // Handle errors in fulfilled promises\n const result = settledResult.value\n if (result.error) {\n console.error(`Error fetching versions for product ${productId}:`, result.error)\n errors.push({\n productId,\n // @ts-expect-error - message\n error: parseGQLErrorMessage(result.error?.message || 'Unknown error'),\n })\n continue\n }\n\n if (!result.data) continue\n\n // Add initial page versions\n allVersions.push(...result.data.versions)\n\n // Check if there are more pages to fetch\n let pageInfo = result.data.pageInfo\n let pageCount = 1\n\n while (pageInfo && pageCount < MAX_PAGES_PER_PRODUCT) {\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n const cursor = pageInfo.endCursor\n\n if (!hasNextPage || !cursor) break\n\n // Fetch next page\n const nextPageResult = await fetchVersionsPage(productId, cursor)\n\n if (nextPageResult.error) {\n console.error(\n `Error fetching versions page ${pageCount + 1} for product ${productId}:`,\n nextPageResult.error,\n )\n errors.push({ productId, error: nextPageResult.error })\n break\n }\n\n if (!nextPageResult.data) break\n\n allVersions.push(...nextPageResult.data.versions)\n pageInfo = nextPageResult.data.pageInfo\n pageCount++\n }\n }\n\n // If some requests failed but we have data, log warning but return successful data\n if (errors.length > 0) {\n console.warn(\n `Partial success: ${errors.length} of ${productIds.length} products failed to fetch versions`,\n errors,\n )\n }\n\n return {\n data: {\n versions: allVersions,\n pageInfo: undefined, // pageInfo is undefined as we've flattened multiple queries\n errors: errors.length > 0 ? errors : undefined,\n },\n }\n },\n // Subscribes to version entity changes for expanded products\n // Only updates versions that belong to currently expanded products\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n const token = PubSub.subscribe('entity.version', async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n const parentId = message.summary?.parentId // parentId is the product ID\n if (!entityId || !parentId) return\n\n // Only handle versions belonging to currently expanded products\n // This prevents unnecessary updates for versions in collapsed products\n if (!arg.productIds.includes(parentId)) return\n\n // Re-fetch the specific version using GetVersions (supports versionIds filter)\n // Uses same filters as the base query to ensure consistency\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n {\n projectName: arg.projectName,\n productIds: [parentId],\n versionIds: [entityId],\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n first: 1,\n ...(arg.featuredOnly && { featuredOnly: arg.featuredOnly }),\n ...(arg.hasReviewables !== undefined && { hasReviewables: arg.hasReviewables }),\n },\n { forceRefetch: true },\n ),\n )\n\n if (result.error) return\n\n // Update flat versions array: update existing, delete if not found, or add new\n updateCachedData((draft) => {\n const updatedVersion = result.data?.versions?.[0]\n updateFlatCache(draft.versions, entityId, updatedVersion)\n })\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n })\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n providesTags: provideTagsForVersionsResult,\n }),\n\n // enhance GetProducts with an infinite query\n getProductsInfinite: build.infiniteQuery<GetProductsResult, GetProductsArgs, ProductsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n let result\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetProducts query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetProducts gql query\n result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n products: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the products directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getProductsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForProductsInfinite,\n\n // Subscribes to product entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n // Often triggered together with version changes (new product + version)\n\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n // Helper to refetch and update a product in cache\n const refetchProduct = async (productId: string) => {\n const queryParams: any = {\n projectName: arg.projectName,\n productIds: [productId],\n productFilter: arg.productFilter,\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n first: 1,\n }\n\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) return\n\n // Update the cache: update existing, delete if not found, or add new\n updateCachedData((draft) => {\n const updatedProduct = result.data?.products?.[0]\n updatePagedCache(\n draft.pages,\n productId,\n updatedProduct,\n 'products',\n (arg.sortBy || 'createdAt') as keyof ProductNode,\n arg.desc || false,\n )\n })\n }\n\n // Subscribe to product entity changes from websocket\n const productToken = PubSub.subscribe(\n 'entity.product',\n async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n await refetchProduct(entityId)\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n },\n )\n\n // Subscribe to version entity changes - refetch parent product when version changes\n // This ensures product's versions list and featuredVersion stay up-to-date\n const versionToken = PubSub.subscribe(\n 'entity.version',\n async (_topic: string, message: any) => {\n try {\n const parentId = message.summary?.parentId // parentId is the product ID\n if (!parentId) return\n\n // Check if the product exists in our cache before refetching\n // This prevents unnecessary API calls for products not in our view\n let productExistsInCache = false\n updateCachedData((draft) => {\n productExistsInCache = draft.pages.some((page) =>\n page.products.some((product: ProductNode) => product.id === parentId),\n )\n })\n\n if (!productExistsInCache) return\n\n await refetchProduct(parentId)\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n },\n )\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(productToken)\n PubSub.unsubscribe(versionToken)\n },\n },\n ),\n\n // Grouped versions query - fetches versions for multiple group filters\n getGroupedVersionsList: build.query<GetGroupedVersionsListResult, GetGroupedVersionsListArgs>({\n queryFn: async (\n {\n projectName,\n groups,\n groupFilterKey = 'versionFilter',\n versionFilter, // most of the time overridden by group filters\n productFilter,\n taskFilter,\n folderIds,\n desc,\n sortBy,\n featuredOnly,\n hasReviewables,\n },\n api,\n ) => {\n try {\n const promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetVersionsQueryVariables = {\n projectName,\n // base filters\n productFilter,\n taskFilter,\n versionFilter,\n // specific group filter\n [groupFilterKey]: group.filter,\n folderIds: folderIds?.length ? folderIds : undefined,\n sortBy: sortBy,\n featuredOnly,\n hasReviewables,\n // @ts-expect-error - group param used later on\n group: group.value,\n }\n\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const versions: VersionNode[] = []\n\n for (const res of result) {\n if (res.error) throw res.error\n\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n\n const groupVersions =\n res.data?.versions.map((version, i, a) => ({\n ...version,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined,\n },\n ],\n })) || []\n\n versions.push(...groupVersions)\n }\n\n return {\n data: {\n versions,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedVersionsList queryFn:', error)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(error.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsResult,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations for grouped versions view\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n const token = PubSub.subscribe('entity.version', async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n // Re-fetch the specific version with current filters to check if it still matches\n // If version was deleted or no longer matches filters, result will be empty\n\n const baseFilters = {\n projectName: arg.projectName,\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n versionIds: [entityId],\n first: 1,\n ...(arg.featuredOnly && { featuredOnly: arg.featuredOnly }),\n ...(arg.hasReviewables !== undefined && { hasReviewables: arg.hasReviewables }),\n }\n\n // Track which groups the version belongs to after the update\n const matchedGroups: { value: string; hasNextPage: undefined }[] = []\n let latestVersionData: VersionNode | null = null\n\n for (const group of arg.groups) {\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n {\n ...baseFilters,\n [arg.groupFilterKey as string]: group.filter, // group-specific filter\n versionIds: [entityId],\n },\n { forceRefetch: true }, // Force fresh data to detect group membership changes\n ),\n )\n\n const fetchedVersion = result.data?.versions?.[0]\n if (fetchedVersion) {\n // Version matches this group's filter\n matchedGroups.push({ value: group.value, hasNextPage: undefined })\n latestVersionData = fetchedVersion\n }\n }\n\n // Now update the cache based on collected results\n updateCachedData((draft) => {\n const index = draft.versions.findIndex((v) => v.id === entityId)\n const versionExistsInCache = index !== -1\n\n if (matchedGroups.length === 0) {\n // Version was deleted or no longer matches any group filter - remove it\n if (versionExistsInCache) {\n draft.versions.splice(index, 1)\n }\n } else if (latestVersionData) {\n // Version matches at least one group\n if (versionExistsInCache) {\n const originalGroups = draft.versions[index].groups || []\n // Check if group membership has changed (comparing group values)\n const originalGroupValues = originalGroups.map((g) => g.value).sort()\n const matchedGroupValues = matchedGroups.map((g) => g.value).sort()\n const groupsChanged =\n originalGroupValues.length !== matchedGroupValues.length ||\n originalGroupValues.some((v, i) => v !== matchedGroupValues[i])\n\n if (groupsChanged) {\n // Group membership changed - use new matched groups (version moved to different group)\n draft.versions[index] = { ...latestVersionData, groups: matchedGroups }\n } else {\n // Same groups - preserve original groups (keeps pagination state like hasNextPage)\n draft.versions[index] = { ...latestVersionData, groups: originalGroups }\n }\n } else {\n // New version not in cache yet - add at sorted position with matched groups\n const newVersion = { ...latestVersionData, groups: matchedGroups }\n const sortKey = (arg.sortBy || 'createdAt') as keyof VersionNode\n const insertIndex = findSortedInsertIndex(draft.versions, newVersion, sortKey, arg.desc || false)\n draft.versions.splice(insertIndex, 0, newVersion)\n }\n }\n })\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n })\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n },\n }),\n }),\n})\n\n// export gql endpoints\nexport const { useGetVersionsQuery } = enhancedVersionsPageApi\n// export custom queries\nexport const {\n useGetVersionsInfiniteInfiniteQuery: useGetVersionsInfiniteQuery,\n useGetVersionsByProductsQuery,\n useGetProductsInfiniteInfiniteQuery: useGetProductsInfiniteQuery,\n useGetGroupedVersionsListQuery,\n} = injectedVersionsPageApi\n\n// export API instances for cache manipulation\nexport { enhancedVersionsPageApi, injectedVersionsPageApi }\n"],"names":["findSortedInsertIndex","items","newItem","sortBy","desc","i","newValue","currentValue","updatePagedCache","pages","entityId","updatedItem","itemsKey","page","index","item","insertIndex","updateFlatCache","enhancedVersionsPageApi","gqlApi","transformVersionsResponse","provideTagsForVersionsResult","transformProductsResponse","provideTagsForProductsResult","VP_INFINITE_QUERY_COUNT","VERSIONS_BY_PRODUCT_ID_QUERY_COUNT","MAX_PAGES_PER_PRODUCT","injectedVersionsPageApi","build","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","rest","cursor","queryParams","result","fallback","e","parseGQLErrorMessage","provideTagsForVersionsInfinite","arg","updateCachedData","cacheEntryRemoved","dispatch","token","PubSub","_topic","message","draft","updatedVersion","args","forced","productIds","fetchVersionsPage","productId","promises","settledResults","allVersions","errors","settledResult","pageCount","hasNextPage","nextPageResult","parentId","provideTagsForProductsInfinite","refetchProduct","updatedProduct","productToken","versionToken","productExistsInCache","product","projectName","groups","groupFilterKey","versionFilter","productFilter","taskFilter","featuredOnly","hasReviewables","group","count","promise","versions","res","groupValue","groupVersions","version","a","error","baseFilters","matchedGroups","latestVersionData","fetchedVersion","versionExistsInCache","originalGroups","originalGroupValues","matchedGroupValues","v","newVersion","sortKey","useGetVersionsQuery","useGetVersionsInfiniteQuery","useGetVersionsByProductsQuery","useGetProductsInfiniteQuery","useGetGroupedVersionsListQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getVersionsProducts.es.js","sources":["../../../../../../src/api/queries/versions/getVersionsProducts.ts"],"sourcesContent":["// QUERIES FOR THE VERSIONS PAGE, FETCHING AND UPDATING DATA\n// Uses a separate graphqlVersionsApi for increased IDE speed\n\n// There are 4 main fetch requests:\n\n// Versions Only:\n// 1. GetVersions - fetches all versions in the project for given filtering and with pagination\n\n// Products and Versions (stacked):\n// 2. GetProducts - fetches all products in the project based on product and version filtering\n// 3. GetVersionsByProducts - when a product is expanded, fetches all versions for the products that are expanded. Uses getVersionsByProductId for each parent id. (uses queryFn)\n// 4. GetVersionsByProductId - get all versions for a specific product. Used by getVersionsByProducts only.\n\n// VersionFragment is used in all version queries to ensure consistent data structure\n\nimport {\n DefinitionsFromApi,\n FetchBaseQueryError,\n InfiniteData,\n OverrideResultType,\n TagTypesFromApi,\n} from '@reduxjs/toolkit/query'\nimport {\n GetProductsQuery,\n GetProductsQueryVariables,\n GetProductsColumnStatsQuery,\n GetVersionsByProductIdQueryVariables,\n GetVersionsColumnStatsQuery,\n GetVersionsQuery,\n GetVersionsQueryVariables,\n gqlApi,\n PageInfo,\n VpFolderFragment,\n} from '@shared/api/generated'\nimport {\n parseGQLErrorMessage,\n provideTagsForProductsInfinite,\n provideTagsForProductsResult,\n provideTagsForVersionsInfinite,\n provideTagsForVersionsResult,\n transformProductsResponse,\n transformVersionsResponse,\n} from './getVersionsProductsUtils'\nimport { PubSub, subscribeToThumbnailUpdates, ThumbnailUpdateMessage } from '@shared/util'\nimport type { FieldStats } from '../columnStats'\nimport { normalizeFieldStats, mergeFieldStats, hasNewTargetFields } from '../columnStats'\n\n// SHARED CACHE UPDATE HELPERS\n// These helpers are used by PubSub handlers to update cached data in real-time\n\n/**\n * Finds the correct insertion index for a new item in a sorted array\n * Used when adding new items to maintain sort order\n */\nfunction findSortedInsertIndex<T>(items: T[], newItem: T, sortBy: keyof T, desc: boolean): number {\n for (let i = 0; i < items.length; i++) {\n const newValue = newItem[sortBy]\n const currentValue = items[i][sortBy]\n const shouldInsert = desc ? newValue > currentValue : newValue < currentValue\n\n if (shouldInsert) {\n return i\n }\n }\n return items.length\n}\n\n/**\n * Updates a paginated cache (draft.pages[].items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add at sorted position\n *\n * @param pages - Array of page objects containing items arrays\n * @param entityId - ID of the entity to update/delete/add\n * @param updatedItem - The updated item, or undefined if deleted\n * @param itemsKey - Key to access items array in each page ('versions' or 'products')\n * @param sortBy - Property to sort by when inserting new items\n * @param desc - Sort direction (true = descending)\n */\nfunction updatePagedCache<T extends { id: string }>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pages: any[],\n entityId: string,\n updatedItem: T | undefined,\n itemsKey: string,\n sortBy: keyof T,\n desc: boolean,\n): void {\n // Search for existing item in all pages\n for (const page of pages) {\n const items = page[itemsKey] as T[]\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n // Update existing item\n items[index] = updatedItem\n } else {\n // Item no longer exists or doesn't match filters - remove it\n items.splice(index, 1)\n }\n return\n }\n }\n\n // Item not found in cache - add at correct sorted position in first page\n if (updatedItem && pages.length > 0) {\n const items = pages[0][itemsKey] as T[]\n const insertIndex = findSortedInsertIndex(items, updatedItem, sortBy, desc)\n items.splice(insertIndex, 0, updatedItem)\n }\n}\n\n/**\n * Updates a flat cache (draft.items[]) with a new/updated/deleted item\n * Handles: update existing, delete if not in response, add new\n */\nfunction updateFlatCache<T extends { id: string }>(\n items: T[],\n entityId: string,\n updatedItem: T | undefined,\n): { index: number; action: 'updated' | 'deleted' | 'added' | 'none' } {\n const index = items.findIndex((item) => item.id === entityId)\n\n if (index !== -1) {\n if (updatedItem) {\n items[index] = updatedItem\n return { index, action: 'updated' }\n } else {\n items.splice(index, 1)\n return { index, action: 'deleted' }\n }\n } else if (updatedItem) {\n items.push(updatedItem)\n return { index: items.length - 1, action: 'added' }\n }\n\n return { index: -1, action: 'none' }\n}\n\n// Query result types\nexport type FolderAttribNode = VpFolderFragment & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n}\nexport type VersionNodeRAW = GetVersionsQuery['project']['versions']['edges'][0]['node']\nexport type VersionNode = VersionNodeRAW & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n product: VersionNodeRAW['product'] & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n folder: FolderAttribNode // folder with parsed attribs\n }\n groups?: { value?: string; hasNextPage?: string }[] // grouping metadata\n}\nexport type ProductNodeRAW = GetProductsQuery['project']['products']['edges'][0]['node']\nexport type ProductNode = Omit<ProductNodeRAW, 'versions'> & {\n attrib: Record<string, any> // parsed from allAttrib JSON string\n featuredVersion?: VersionNode | null // added separately\n folder: FolderAttribNode // folder with parsed attribs\n versions: {\n id: string\n name: string\n version: number\n heroVersionId?: string | null\n }[] // versions with isHero flag\n}\n\nexport type GetVersionsResult = {\n pageInfo?: PageInfo\n versions: VersionNode[]\n errors?: Array<{ productId: string; error: string }>\n}\n\n// for infinite query args\nexport type GetVersionsArgs = Omit<GetVersionsQueryVariables, 'cursor'> & {\n desc?: boolean // sort direction\n}\n\n// for paginated queries in infinite query\ntype VersionsPageParam = {\n cursor: string\n desc?: boolean\n}\n\nexport type GetProductsArgs = Omit<GetProductsQueryVariables, 'cursor' | 'versionIds'> & {\n desc?: boolean // sort direction\n}\n\ntype ProductsPageParam = {\n cursor: string\n desc?: boolean\n}\n\ntype GetVersionsByProductsArgs = GetVersionsByProductIdQueryVariables & {\n productIds: string[]\n desc?: boolean\n}\n\nexport type GetGroupedVersionsListArgs = {\n projectName: string\n groups: { filter: string; count?: number | null; value: string }[]\n groupFilterKey?: string\n versionFilter?: string\n productFilter?: string\n taskFilter?: string\n folderIds?: string[]\n desc?: boolean\n sortBy?: string\n featuredOnly?: string[]\n hasReviewables?: boolean\n}\n\nexport type GetGroupedVersionsListResult = {\n versions: VersionNode[]\n}\n\nexport type VersionInfiniteResult = InfiniteData<GetVersionsResult, VersionsPageParam> | undefined\n\nexport type ProductInfiniteResult = InfiniteData<GetProductsResult, ProductsPageParam> | undefined\n\nexport type GetProductsResult = {\n pageInfo: PageInfo\n products: ProductNode[]\n}\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<Definitions, 'GetVersions'> & {\n GetVersions: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetVersionsByProductId: OverrideResultType<Definitions['GetVersions'], GetVersionsResult>\n GetProducts: OverrideResultType<Definitions['GetProducts'], GetProductsResult>\n GetProductsColumnStats: OverrideResultType<Definitions['GetProductsColumnStats'], FieldStats[]>\n GetVersionsColumnStats: OverrideResultType<Definitions['GetVersionsColumnStats'], FieldStats[]>\n}\n\nconst enhancedVersionsPageApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n // used by both stacked and non-stacked views\n GetVersions: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n },\n // used by getVersionsByProducts only\n GetVersionsByProductId: {\n transformResponse: transformVersionsResponse,\n providesTags: provideTagsForVersionsResult,\n },\n // used by getProductsInfinite only\n GetProducts: {\n transformResponse: transformProductsResponse,\n providesTags: provideTagsForProductsResult,\n },\n // footer stats: `targets` excluded from cache key + responses merged,\n // so column toggles reuse cache and only added targets refetch\n GetProductsColumnStats: {\n transformResponse: (res: GetProductsColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.products?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'productColumnStats', id: projectName }],\n },\n GetVersionsColumnStats: {\n transformResponse: (res: GetVersionsColumnStatsQuery) =>\n normalizeFieldStats(res?.project?.versions?.fieldStats ?? []),\n serializeQueryArgs: ({ queryArgs: { targets: _t, ...rest } }) => rest,\n merge: (cache, incoming) => mergeFieldStats(incoming, cache),\n forceRefetch: ({ currentArg, previousArg }) => hasNewTargetFields(currentArg, previousArg),\n providesTags: (_r, _e, { projectName }) => [{ type: 'versionColumnStats', id: projectName }],\n },\n },\n})\n\nexport const VP_INFINITE_QUERY_COUNT = 250 // Number of items to fetch per page\nconst VERSIONS_BY_PRODUCT_ID_QUERY_COUNT = 1000 // max number of versions to fetch per product id\nconst MAX_PAGES_PER_PRODUCT = 10 // Hard cutoff to prevent infinite loops\n\nconst injectedVersionsPageApi = enhancedVersionsPageApi.injectEndpoints({\n endpoints: (build) => ({\n // enhance GetVersions with an infinite query\n getVersionsInfinite: build.infiniteQuery<GetVersionsResult, GetVersionsArgs, VersionsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetVersions query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetVersions gql query\n const result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n versions: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the versions directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getVersionsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsInfinite,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n draft.pages.forEach((page) => {\n const vIndex = page.versions.findIndex(\n (v) => v.id === message.summary.entityId,\n )\n if (vIndex !== -1) {\n page.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n })\n }\n })\n })\n },\n ['version'],\n )\n\n const token = PubSub.subscribe('entity.version', async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n // Re-fetch the specific version with current filters to check if it still matches\n // If version was deleted or no longer matches filters, result will be empty\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n {\n projectName: arg.projectName,\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n versionIds: [entityId],\n first: 1,\n },\n {\n forceRefetch: true,\n },\n ),\n )\n\n if (result.error) return\n\n // Update the cache: update existing, delete if not found, or add new\n updateCachedData((draft) => {\n const updatedVersion = result.data?.versions?.[0]\n updatePagedCache(\n draft.pages,\n entityId,\n updatedVersion,\n 'versions',\n (arg.sortBy || 'createdAt') as keyof VersionNode,\n arg.desc || false,\n )\n })\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n })\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n },\n ),\n\n // custom query function that fetches versions by multiple parent ids -not infinite and gets 1000 versions max\n getVersionsByProducts: build.query<GetVersionsResult, GetVersionsByProductsArgs>({\n queryFn: async (args, { dispatch, forced }) => {\n const { productIds = [], desc, ...rest } = args\n\n // Helper function to fetch a page of versions\n const fetchVersionsPage = async (productId: string, cursor?: string) => {\n const queryParams: GetVersionsByProductIdQueryVariables = {\n ...rest,\n productIds: [productId],\n }\n\n if (desc) {\n if (cursor) queryParams.before = cursor\n queryParams.last = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n } else {\n if (cursor) queryParams.after = cursor\n queryParams.first = VERSIONS_BY_PRODUCT_ID_QUERY_COUNT\n }\n\n return dispatch(\n enhancedVersionsPageApi.endpoints.GetVersionsByProductId.initiate(queryParams, {\n forceRefetch: forced,\n }),\n )\n }\n\n // for each product id, call getVersionsByProductId\n const promises = productIds.map((productId) => fetchVersionsPage(productId))\n\n // wait for all requests to settle (either fulfilled or rejected)\n const settledResults = await Promise.allSettled(promises)\n\n // Collect all versions from initial queries\n const allVersions: VersionNode[] = []\n const errors: Array<{ productId: string; error: any }> = []\n\n // Check each result for additional pages and fetch them if needed\n for (let i = 0; i < settledResults.length; i++) {\n const settledResult = settledResults[i]\n const productId = productIds[i]\n\n // Handle rejected promises\n if (settledResult.status === 'rejected') {\n console.error(`Error fetching versions for product ${productId}:`, settledResult.reason)\n errors.push({ productId, error: parseGQLErrorMessage(settledResult.reason) })\n continue\n }\n\n // Handle errors in fulfilled promises\n const result = settledResult.value\n if (result.error) {\n console.error(`Error fetching versions for product ${productId}:`, result.error)\n errors.push({\n productId,\n // @ts-expect-error - message\n error: parseGQLErrorMessage(result.error?.message || 'Unknown error'),\n })\n continue\n }\n\n if (!result.data) continue\n\n // Add initial page versions\n allVersions.push(...result.data.versions)\n\n // Check if there are more pages to fetch\n let pageInfo = result.data.pageInfo\n let pageCount = 1\n\n while (pageInfo && pageCount < MAX_PAGES_PER_PRODUCT) {\n const hasNextPage = desc ? pageInfo.hasPreviousPage : pageInfo.hasNextPage\n const cursor = pageInfo.endCursor\n\n if (!hasNextPage || !cursor) break\n\n // Fetch next page\n const nextPageResult = await fetchVersionsPage(productId, cursor)\n\n if (nextPageResult.error) {\n console.error(\n `Error fetching versions page ${pageCount + 1} for product ${productId}:`,\n nextPageResult.error,\n )\n errors.push({ productId, error: nextPageResult.error })\n break\n }\n\n if (!nextPageResult.data) break\n\n allVersions.push(...nextPageResult.data.versions)\n pageInfo = nextPageResult.data.pageInfo\n pageCount++\n }\n }\n\n // If some requests failed but we have data, log warning but return successful data\n if (errors.length > 0) {\n console.warn(\n `Partial success: ${errors.length} of ${productIds.length} products failed to fetch versions`,\n errors,\n )\n }\n\n return {\n data: {\n versions: allVersions,\n pageInfo: undefined, // pageInfo is undefined as we've flattened multiple queries\n errors: errors.length > 0 ? errors : undefined,\n },\n }\n },\n // Subscribes to version entity changes for expanded products\n // Only updates versions that belong to currently expanded products\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n const vIndex = draft.versions.findIndex((v) => v.id === message.summary.entityId)\n if (vIndex !== -1) {\n draft.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n }\n })\n })\n },\n ['version'],\n )\n\n const token = PubSub.subscribe('entity.version', async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n const parentId = message.summary?.parentId // parentId is the product ID\n if (!entityId || !parentId) return\n\n // Only handle versions belonging to currently expanded products\n // This prevents unnecessary updates for versions in collapsed products\n if (!arg.productIds.includes(parentId)) return\n\n // Re-fetch the specific version using GetVersions (supports versionIds filter)\n // Uses same filters as the base query to ensure consistency\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n {\n projectName: arg.projectName,\n productIds: [parentId],\n versionIds: [entityId],\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n first: 1,\n ...(arg.featuredOnly && { featuredOnly: arg.featuredOnly }),\n ...(arg.hasReviewables !== undefined && { hasReviewables: arg.hasReviewables }),\n },\n { forceRefetch: true },\n ),\n )\n\n if (result.error) return\n\n // Update flat versions array: update existing, delete if not found, or add new\n updateCachedData((draft) => {\n const updatedVersion = result.data?.versions?.[0]\n updateFlatCache(draft.versions, entityId, updatedVersion)\n })\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n })\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n providesTags: provideTagsForVersionsResult,\n }),\n\n // enhance GetProducts with an infinite query\n getProductsInfinite: build.infiniteQuery<GetProductsResult, GetProductsArgs, ProductsPageParam>(\n {\n infiniteQueryOptions: {\n initialPageParam: { cursor: '', desc: false },\n // Calculate the next page param based on current page response and params\n getNextPageParam: (lastPage, _allPages, lastPageParam, _allPageParams) => {\n // Use the endCursor from the query as the next page param\n const pageInfo = lastPage.pageInfo\n const desc = lastPageParam.desc\n const hasNextPage = desc ? pageInfo?.hasPreviousPage : pageInfo?.hasNextPage\n\n if (!hasNextPage || !pageInfo?.endCursor) return undefined\n\n return {\n cursor: pageInfo?.endCursor,\n desc: lastPageParam.desc,\n }\n },\n },\n queryFn: async ({ queryArg, pageParam }, api) => {\n let result\n try {\n const { sortBy, desc, folderIds, ...rest } = queryArg\n const { cursor } = pageParam\n\n // Build the query parameters for GetProducts query\n const queryParams: any = {\n ...rest,\n }\n\n // Add cursor-based pagination\n if (sortBy) {\n queryParams.sortBy = sortBy\n if (desc) {\n queryParams.before = cursor || undefined\n queryParams.last = VP_INFINITE_QUERY_COUNT\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n } else {\n queryParams.after = cursor || undefined\n queryParams.first = VP_INFINITE_QUERY_COUNT\n }\n\n // if folderIds have a length, add them to the query params\n if (folderIds && folderIds.length) {\n queryParams.folderIds = folderIds\n }\n\n // Call the existing GetProducts gql query\n result = await api.dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) throw result.error\n const fallback = {\n products: [],\n pageInfo: {\n hasNextPage: false,\n endCursor: null,\n startCursor: null,\n hasPreviousPage: false,\n },\n }\n\n // Return the products directly as required by the infinite query format\n return {\n data: result.data || fallback,\n }\n } catch (e: any) {\n console.error('Error in getProductsInfiniteQuery queryFn:', e)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(e.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForProductsInfinite,\n\n // Subscribes to product entity changes and updates cache accordingly\n // Handles: create, update, delete operations\n // Often triggered together with version changes (new product + version)\n\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n draft.pages.forEach((page) => {\n page.products.forEach((p) => {\n if (p.featuredVersion?.id === message.summary.entityId) {\n p.featuredVersion.thumbnailHash = message.summary.thumbnailHash || ''\n }\n })\n })\n }\n })\n })\n },\n ['version'],\n )\n\n // Helper to refetch and update a product in cache\n const refetchProduct = async (productId: string) => {\n const queryParams: any = {\n projectName: arg.projectName,\n productIds: [productId],\n productFilter: arg.productFilter,\n versionFilter: arg.versionFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n first: 1,\n }\n\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetProducts.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n\n if (result.error) return\n\n // Update the cache: update existing, delete if not found, or add new\n updateCachedData((draft) => {\n const updatedProduct = result.data?.products?.[0]\n updatePagedCache(\n draft.pages,\n productId,\n updatedProduct,\n 'products',\n (arg.sortBy || 'createdAt') as keyof ProductNode,\n arg.desc || false,\n )\n })\n }\n\n // Subscribe to product entity changes from websocket\n const productToken = PubSub.subscribe(\n 'entity.product',\n async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n await refetchProduct(entityId)\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n },\n )\n\n // Subscribe to version entity changes - refetch parent product when version changes\n // This ensures product's versions list and featuredVersion stay up-to-date\n const versionToken = PubSub.subscribe(\n 'entity.version',\n async (_topic: string, message: any) => {\n try {\n const parentId = message.summary?.parentId // parentId is the product ID\n if (!parentId) return\n\n // Check if the product exists in our cache before refetching\n // This prevents unnecessary API calls for products not in our view\n let productExistsInCache = false\n updateCachedData((draft) => {\n productExistsInCache = draft.pages.some((page) =>\n page.products.some((product: ProductNode) => product.id === parentId),\n )\n })\n\n if (!productExistsInCache) return\n\n await refetchProduct(parentId)\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n },\n )\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(productToken)\n PubSub.unsubscribe(versionToken)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n },\n ),\n\n // Grouped versions query - fetches versions for multiple group filters\n getGroupedVersionsList: build.query<GetGroupedVersionsListResult, GetGroupedVersionsListArgs>({\n queryFn: async (\n {\n projectName,\n groups,\n groupFilterKey = 'versionFilter',\n versionFilter, // most of the time overridden by group filters\n productFilter,\n taskFilter,\n folderIds,\n desc,\n sortBy,\n featuredOnly,\n hasReviewables,\n },\n api,\n ) => {\n try {\n const promises = []\n for (const group of groups) {\n const count = group.count || 500\n\n const queryParams: GetVersionsQueryVariables = {\n projectName,\n // base filters\n productFilter,\n taskFilter,\n versionFilter,\n // specific group filter\n [groupFilterKey]: group.filter,\n folderIds: folderIds?.length ? folderIds : undefined,\n sortBy: sortBy,\n featuredOnly,\n hasReviewables,\n // @ts-expect-error - group param used later on\n group: group.value,\n }\n\n if (desc) {\n queryParams.last = count\n } else {\n queryParams.first = count\n }\n\n const promise = api.dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(queryParams, {\n forceRefetch: true,\n }),\n )\n promises.push(promise)\n }\n\n const result = await Promise.all(promises)\n const versions: VersionNode[] = []\n\n for (const res of result) {\n if (res.error) throw res.error\n\n // get group value\n // @ts-expect-error - we know group does exist on res.originalArgs\n const groupValue = res.originalArgs?.group as string\n\n const hasNextPage =\n res.data?.pageInfo?.hasNextPage || res.data?.pageInfo?.hasPreviousPage || false\n\n const groupVersions =\n res.data?.versions.map((version, i, a) => ({\n ...version,\n groups: [\n {\n value: groupValue,\n hasNextPage: i === a.length - 1 && hasNextPage ? groupValue : undefined,\n },\n ],\n })) || []\n\n versions.push(...groupVersions)\n }\n\n return {\n data: {\n versions,\n },\n }\n } catch (error: any) {\n console.error('Error in getGroupedVersionsList queryFn:', error)\n return {\n error: {\n status: 'FETCH_ERROR',\n error: parseGQLErrorMessage(error.message),\n } as FetchBaseQueryError,\n }\n }\n },\n providesTags: provideTagsForVersionsResult,\n // Subscribes to version entity changes and updates cache accordingly\n // Handles: create, update, delete operations for grouped versions view\n onCacheEntryAdded: async (arg, { updateCachedData, cacheEntryRemoved, dispatch }) => {\n let unsubscribeThumbnails: (() => void) | undefined\n\n unsubscribeThumbnails = subscribeToThumbnailUpdates(\n (messages: ThumbnailUpdateMessage[]) => {\n const relevantMessages = messages.filter((m) => m.project === arg.projectName)\n if (!relevantMessages.length) return\n\n updateCachedData((draft) => {\n relevantMessages.forEach((message) => {\n if (message.summary.entityType === 'version') {\n const vIndex = draft.versions.findIndex((v) => v.id === message.summary.entityId)\n if (vIndex !== -1) {\n draft.versions[vIndex].thumbnailHash = message.summary.thumbnailHash || ''\n }\n }\n })\n })\n },\n ['version'],\n )\n\n const token = PubSub.subscribe('entity.version', async (_topic: string, message: any) => {\n try {\n const entityId = message.summary?.entityId\n if (!entityId) return\n\n // Re-fetch the specific version with current filters to check if it still matches\n // If version was deleted or no longer matches filters, result will be empty\n\n const baseFilters = {\n projectName: arg.projectName,\n versionFilter: arg.versionFilter,\n productFilter: arg.productFilter,\n taskFilter: arg.taskFilter,\n folderIds: arg.folderIds?.length ? arg.folderIds : undefined,\n versionIds: [entityId],\n first: 1,\n ...(arg.featuredOnly && { featuredOnly: arg.featuredOnly }),\n ...(arg.hasReviewables !== undefined && { hasReviewables: arg.hasReviewables }),\n }\n\n // Track which groups the version belongs to after the update\n const matchedGroups: { value: string; hasNextPage: undefined }[] = []\n let latestVersionData: VersionNode | null = null\n\n for (const group of arg.groups) {\n const result = await dispatch(\n enhancedVersionsPageApi.endpoints.GetVersions.initiate(\n {\n ...baseFilters,\n [arg.groupFilterKey as string]: group.filter, // group-specific filter\n versionIds: [entityId],\n },\n { forceRefetch: true }, // Force fresh data to detect group membership changes\n ),\n )\n\n const fetchedVersion = result.data?.versions?.[0]\n if (fetchedVersion) {\n // Version matches this group's filter\n matchedGroups.push({ value: group.value, hasNextPage: undefined })\n latestVersionData = fetchedVersion\n }\n }\n\n // Now update the cache based on collected results\n updateCachedData((draft) => {\n const index = draft.versions.findIndex((v) => v.id === entityId)\n const versionExistsInCache = index !== -1\n\n if (matchedGroups.length === 0) {\n // Version was deleted or no longer matches any group filter - remove it\n if (versionExistsInCache) {\n draft.versions.splice(index, 1)\n }\n } else if (latestVersionData) {\n // Version matches at least one group\n if (versionExistsInCache) {\n const originalGroups = draft.versions[index].groups || []\n // Check if group membership has changed (comparing group values)\n const originalGroupValues = originalGroups.map((g) => g.value).sort()\n const matchedGroupValues = matchedGroups.map((g) => g.value).sort()\n const groupsChanged =\n originalGroupValues.length !== matchedGroupValues.length ||\n originalGroupValues.some((v, i) => v !== matchedGroupValues[i])\n\n if (groupsChanged) {\n // Group membership changed - use new matched groups (version moved to different group)\n draft.versions[index] = { ...latestVersionData, groups: matchedGroups }\n } else {\n // Same groups - preserve original groups (keeps pagination state like hasNextPage)\n draft.versions[index] = { ...latestVersionData, groups: originalGroups }\n }\n } else {\n // New version not in cache yet - add at sorted position with matched groups\n const newVersion = { ...latestVersionData, groups: matchedGroups }\n const sortKey = (arg.sortBy || 'createdAt') as keyof VersionNode\n const insertIndex = findSortedInsertIndex(\n draft.versions,\n newVersion,\n sortKey,\n arg.desc || false,\n )\n draft.versions.splice(insertIndex, 0, newVersion)\n }\n }\n })\n } catch (error) {\n // Silently handle errors to prevent UI disruption\n }\n })\n\n // Cleanup: unsubscribe when cache entry is removed\n await cacheEntryRemoved\n PubSub.unsubscribe(token)\n if (unsubscribeThumbnails) {\n unsubscribeThumbnails()\n }\n },\n }),\n }),\n})\n\n// export gql endpoints\nexport const {\n useGetVersionsQuery,\n useGetProductsColumnStatsQuery,\n useGetVersionsColumnStatsQuery,\n} = enhancedVersionsPageApi\n// export custom queries\nexport const {\n useGetVersionsInfiniteInfiniteQuery: useGetVersionsInfiniteQuery,\n useGetVersionsByProductsQuery,\n useGetProductsInfiniteInfiniteQuery: useGetProductsInfiniteQuery,\n useGetGroupedVersionsListQuery,\n} = injectedVersionsPageApi\n\n// export API instances for cache manipulation\nexport { enhancedVersionsPageApi, injectedVersionsPageApi }\n"],"names":["findSortedInsertIndex","items","newItem","sortBy","desc","i","newValue","currentValue","updatePagedCache","pages","entityId","updatedItem","itemsKey","page","index","item","insertIndex","updateFlatCache","enhancedVersionsPageApi","gqlApi","transformVersionsResponse","provideTagsForVersionsResult","transformProductsResponse","provideTagsForProductsResult","res","normalizeFieldStats","_t","rest","cache","incoming","mergeFieldStats","currentArg","previousArg","hasNewTargetFields","_r","_e","projectName","VP_INFINITE_QUERY_COUNT","VERSIONS_BY_PRODUCT_ID_QUERY_COUNT","MAX_PAGES_PER_PRODUCT","injectedVersionsPageApi","build","lastPage","_allPages","lastPageParam","_allPageParams","pageInfo","queryArg","pageParam","api","folderIds","cursor","queryParams","result","fallback","e","parseGQLErrorMessage","provideTagsForVersionsInfinite","arg","updateCachedData","cacheEntryRemoved","dispatch","unsubscribeThumbnails","subscribeToThumbnailUpdates","messages","relevantMessages","m","draft","message","vIndex","v","token","PubSub","_topic","updatedVersion","args","forced","productIds","fetchVersionsPage","productId","promises","settledResults","allVersions","errors","settledResult","pageCount","hasNextPage","nextPageResult","parentId","provideTagsForProductsInfinite","p","refetchProduct","updatedProduct","productToken","versionToken","productExistsInCache","product","groups","groupFilterKey","versionFilter","productFilter","taskFilter","featuredOnly","hasReviewables","group","count","promise","versions","groupValue","groupVersions","version","a","error","baseFilters","matchedGroups","latestVersionData","fetchedVersion","versionExistsInCache","originalGroups","originalGroupValues","matchedGroupValues","newVersion","sortKey","useGetVersionsQuery","useGetProductsColumnStatsQuery","useGetVersionsColumnStatsQuery","useGetVersionsInfiniteQuery","useGetVersionsByProductsQuery","useGetProductsInfiniteQuery","useGetGroupedVersionsListQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAASA,EAAyBC,GAAYC,GAAYC,GAAiBC,GAAuB;AAChG,WAASC,IAAI,GAAGA,IAAIJ,EAAM,QAAQI,KAAK;AACrC,UAAMC,IAAWJ,EAAQC,CAAM,GACzBI,IAAeN,EAAMI,CAAC,EAAEF,CAAM;AAGpC,QAFqBC,IAAOE,IAAWC,IAAeD,IAAWC;AAG/D,aAAOF;AAAA,EAEX;AACA,SAAOJ,EAAM;AACf;AAaA,SAASO,EAEPC,GACAC,GACAC,GACAC,GACAT,GACAC,GACM;AAEN,aAAWS,KAAQJ,GAAO;AACxB,UAAMR,IAAQY,EAAKD,CAAQ,GACrBE,IAAQb,EAAM,UAAU,CAACc,MAASA,EAAK,OAAOL,CAAQ;AAE5D,QAAII,MAAU,IAAI;AAChB,MAAIH,IAEFV,EAAMa,CAAK,IAAIH,IAGfV,EAAM,OAAOa,GAAO,CAAC;AAEvB;AAAA,IACF;AAAA,EACF;AAGA,MAAIH,KAAeF,EAAM,SAAS,GAAG;AACnC,UAAMR,IAAQQ,EAAM,CAAC,EAAEG,CAAQ,GACzBI,IAAchB,EAAsBC,GAAOU,GAAaR,GAAQC,CAAI;AAC1E,IAAAH,EAAM,OAAOe,GAAa,GAAGL,CAAW;AAAA,EAC1C;AACF;AAMA,SAASM,EACPhB,GACAS,GACAC,GACqE;AACrE,QAAMG,IAAQb,EAAM,UAAU,CAACc,MAASA,EAAK,OAAOL,CAAQ;AAE5D,SAAII,MAAU,KACRH,KACFV,EAAMa,CAAK,IAAIH,GACR,EAAE,OAAAG,GAAO,QAAQ,UAAA,MAExBb,EAAM,OAAOa,GAAO,CAAC,GACd,EAAE,OAAAA,GAAO,QAAQ,UAAA,KAEjBH,KACTV,EAAM,KAAKU,CAAW,GACf,EAAE,OAAOV,EAAM,SAAS,GAAG,QAAQ,QAAA,KAGrC,EAAE,OAAO,IAAI,QAAQ,OAAA;AAC9B;AAiGA,MAAMiB,IAA0BC,EAAO,iBAA+C;AAAA,EACpF,WAAW;AAAA;AAAA,IAET,aAAa;AAAA,MACX,mBAAmBC;AAAA,MACnB,cAAcC;AAAA,IAAA;AAAA;AAAA,IAGhB,wBAAwB;AAAA,MACtB,mBAAmBD;AAAA,MACnB,cAAcC;AAAA,IAAA;AAAA;AAAA,IAGhB,aAAa;AAAA,MACX,mBAAmBC;AAAA,MACnB,cAAcC;AAAA,IAAA;AAAA;AAAA;AAAA,IAIhB,wBAAwB;AAAA,MACtB,mBAAmB,CAACC,MAClBC,EAAoBD,GAAK,SAAS,UAAU,cAAc,EAAE;AAAA,MAC9D,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAASE,GAAI,GAAGC,EAAA,EAAK,MAAQA;AAAA,MACjE,OAAO,CAACC,GAAOC,MAAaC,EAAgBD,GAAUD,CAAK;AAAA,MAC3D,cAAc,CAAC,EAAE,YAAAG,GAAY,aAAAC,QAAkBC,EAAmBF,GAAYC,CAAW;AAAA,MACzF,cAAc,CAACE,GAAIC,GAAI,EAAE,aAAAC,EAAA,MAAkB,CAAC,EAAE,MAAM,sBAAsB,IAAIA,GAAa;AAAA,IAAA;AAAA,IAE7F,wBAAwB;AAAA,MACtB,mBAAmB,CAACZ,MAClBC,EAAoBD,GAAK,SAAS,UAAU,cAAc,EAAE;AAAA,MAC9D,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAASE,GAAI,GAAGC,EAAA,EAAK,MAAQA;AAAA,MACjE,OAAO,CAACC,GAAOC,MAAaC,EAAgBD,GAAUD,CAAK;AAAA,MAC3D,cAAc,CAAC,EAAE,YAAAG,GAAY,aAAAC,QAAkBC,EAAmBF,GAAYC,CAAW;AAAA,MACzF,cAAc,CAACE,GAAIC,GAAI,EAAE,aAAAC,EAAA,MAAkB,CAAC,EAAE,MAAM,sBAAsB,IAAIA,GAAa;AAAA,IAAA;AAAA,EAC7F;AAEJ,CAAC,GAEYC,IAA0B,KACjCC,IAAqC,KACrCC,IAAwB,IAExBC,IAA0BtB,EAAwB,gBAAgB;AAAA,EACtE,WAAW,CAACuB,OAAW;AAAA;AAAA,IAErB,qBAAqBA,EAAM;AAAA,MACzB;AAAA,QACE,sBAAsB;AAAA,UACpB,kBAAkB,EAAE,QAAQ,IAAI,MAAM,GAAA;AAAA;AAAA,UAEtC,kBAAkB,CAACC,GAAUC,GAAWC,GAAeC,MAAmB;AAExE,kBAAMC,IAAWJ,EAAS;AAI1B,gBAAI,IAHSE,EAAc,OACAE,GAAU,kBAAkBA,GAAU,gBAE7C,CAACA,GAAU;AAE/B,qBAAO;AAAA,gBACL,QAAQA,GAAU;AAAA,gBAClB,MAAMF,EAAc;AAAA,cAAA;AAAA,UAExB;AAAA,QAAA;AAAA,QAEF,SAAS,OAAO,EAAE,UAAAG,GAAU,WAAAC,EAAA,GAAaC,MAAQ;AAC/C,cAAI;AACF,kBAAM,EAAE,QAAA9C,GAAQ,MAAAC,GAAM,WAAA8C,GAAW,GAAGvB,MAASoB,GACvC,EAAE,QAAAI,MAAWH,GAGbI,IAAmB;AAAA,cACvB,GAAGzB;AAAA,YAAA;AAIL,YAAIxB,KACFiD,EAAY,SAASjD,GACjBC,KACFgD,EAAY,SAASD,KAAU,QAC/BC,EAAY,OAAOf,MAEnBe,EAAY,QAAQD,KAAU,QAC9BC,EAAY,QAAQf,OAGtBe,EAAY,QAAQD,KAAU,QAC9BC,EAAY,QAAQf,IAIlBa,KAAaA,EAAU,WACzBE,EAAY,YAAYF;AAI1B,kBAAMG,IAAS,MAAMJ,EAAI;AAAA,cACvB/B,EAAwB,UAAU,YAAY,SAASkC,GAAa;AAAA,gBAClE,cAAc;AAAA,cAAA,CACf;AAAA,YAAA;AAGH,gBAAIC,EAAO,MAAO,OAAMA,EAAO;AAC/B,kBAAMC,IAAW;AAAA,cACf,UAAU,CAAA;AAAA,cACV,UAAU;AAAA,gBACR,aAAa;AAAA,gBACb,WAAW;AAAA,gBACX,aAAa;AAAA,gBACb,iBAAiB;AAAA,cAAA;AAAA,YACnB;AAIF,mBAAO;AAAA,cACL,MAAMD,EAAO,QAAQC;AAAA,YAAA;AAAA,UAEzB,SAASC,GAAQ;AACf,2BAAQ,MAAM,8CAA8CA,CAAC,GACtD;AAAA,cACL,OAAO;AAAA,gBACL,QAAQ;AAAA,gBACR,OAAOC,EAAqBD,EAAE,OAAO;AAAA,cAAA;AAAA,YACvC;AAAA,UAEJ;AAAA,QACF;AAAA,QACA,cAAcE;AAAA;AAAA;AAAA,QAGd,mBAAmB,OAAOC,GAAK,EAAE,kBAAAC,GAAkB,mBAAAC,GAAmB,UAAAC,QAAe;AACnF,cAAIC;AAEJ,UAAAA,IAAwBC;AAAA,YACtB,CAACC,MAAuC;AACtC,oBAAMC,IAAmBD,EAAS,OAAO,CAACE,MAAMA,EAAE,YAAYR,EAAI,WAAW;AAC7E,cAAKO,EAAiB,UAEtBN,EAAiB,CAACQ,MAAU;AAC1B,gBAAAF,EAAiB,QAAQ,CAACG,MAAY;AACpC,kBAAIA,EAAQ,QAAQ,eAAe,aACjCD,EAAM,MAAM,QAAQ,CAACtD,MAAS;AAC5B,0BAAMwD,IAASxD,EAAK,SAAS;AAAA,sBAC3B,CAACyD,MAAMA,EAAE,OAAOF,EAAQ,QAAQ;AAAA,oBAAA;AAElC,oBAAIC,MAAW,OACbxD,EAAK,SAASwD,CAAM,EAAE,gBAAgBD,EAAQ,QAAQ,iBAAiB;AAAA,kBAE3E,CAAC;AAAA,gBAEL,CAAC;AAAA,cACH,CAAC;AAAA,YACH;AAAA,YACA,CAAC,SAAS;AAAA,UAAA;AAGZ,gBAAMG,IAAQC,EAAO,UAAU,kBAAkB,OAAOC,GAAgBL,MAAiB;AACvF,gBAAI;AACF,oBAAM1D,IAAW0D,EAAQ,SAAS;AAClC,kBAAI,CAAC1D,EAAU;AAIf,oBAAM2C,IAAS,MAAMQ;AAAA,gBACnB3C,EAAwB,UAAU,YAAY;AAAA,kBAC5C;AAAA,oBACE,aAAawC,EAAI;AAAA,oBACjB,eAAeA,EAAI;AAAA,oBACnB,eAAeA,EAAI;AAAA,oBACnB,YAAYA,EAAI;AAAA,oBAChB,WAAWA,EAAI,WAAW,SAASA,EAAI,YAAY;AAAA,oBACnD,YAAY,CAAChD,CAAQ;AAAA,oBACrB,OAAO;AAAA,kBAAA;AAAA,kBAET;AAAA,oBACE,cAAc;AAAA,kBAAA;AAAA,gBAChB;AAAA,cACF;AAGF,kBAAI2C,EAAO,MAAO;AAGlB,cAAAM,EAAiB,CAACQ,MAAU;AAC1B,sBAAMO,IAAiBrB,EAAO,MAAM,WAAW,CAAC;AAChD,gBAAA7C;AAAA,kBACE2D,EAAM;AAAA,kBACNzD;AAAA,kBACAgE;AAAA,kBACA;AAAA,kBACChB,EAAI,UAAU;AAAA,kBACfA,EAAI,QAAQ;AAAA,gBAAA;AAAA,cAEhB,CAAC;AAAA,YACH,QAAgB;AAAA,YAEhB;AAAA,UACF,CAAC;AAGD,gBAAME,GACNY,EAAO,YAAYD,CAAK,GACpBT,KACFA,EAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF;AAAA;AAAA,IAIF,uBAAuBrB,EAAM,MAAoD;AAAA,MAC/E,SAAS,OAAOkC,GAAM,EAAE,UAAAd,GAAU,QAAAe,QAAa;AAC7C,cAAM,EAAE,YAAAC,IAAa,CAAA,GAAI,MAAAzE,GAAM,GAAGuB,MAASgD,GAGrCG,IAAoB,OAAOC,GAAmB5B,MAAoB;AACtE,gBAAMC,IAAoD;AAAA,YACxD,GAAGzB;AAAA,YACH,YAAY,CAACoD,CAAS;AAAA,UAAA;AAGxB,iBAAI3E,KACE+C,QAAoB,SAASA,IACjCC,EAAY,OAAOd,MAEfa,QAAoB,QAAQA,IAChCC,EAAY,QAAQd,IAGfuB;AAAA,YACL3C,EAAwB,UAAU,uBAAuB,SAASkC,GAAa;AAAA,cAC7E,cAAcwB;AAAA,YAAA,CACf;AAAA,UAAA;AAAA,QAEL,GAGMI,IAAWH,EAAW,IAAI,CAACE,MAAcD,EAAkBC,CAAS,CAAC,GAGrEE,IAAiB,MAAM,QAAQ,WAAWD,CAAQ,GAGlDE,IAA6B,CAAA,GAC7BC,IAAmD,CAAA;AAGzD,iBAAS,IAAI,GAAG,IAAIF,EAAe,QAAQ,KAAK;AAC9C,gBAAMG,IAAgBH,EAAe,CAAC,GAChCF,IAAYF,EAAW,CAAC;AAG9B,cAAIO,EAAc,WAAW,YAAY;AACvC,oBAAQ,MAAM,uCAAuCL,CAAS,KAAKK,EAAc,MAAM,GACvFD,EAAO,KAAK,EAAE,WAAAJ,GAAW,OAAOvB,EAAqB4B,EAAc,MAAM,GAAG;AAC5E;AAAA,UACF;AAGA,gBAAM/B,IAAS+B,EAAc;AAC7B,cAAI/B,EAAO,OAAO;AAChB,oBAAQ,MAAM,uCAAuC0B,CAAS,KAAK1B,EAAO,KAAK,GAC/E8B,EAAO,KAAK;AAAA,cACV,WAAAJ;AAAA;AAAA,cAEA,OAAOvB,EAAqBH,EAAO,OAAO,WAAW,eAAe;AAAA,YAAA,CACrE;AACD;AAAA,UACF;AAEA,cAAI,CAACA,EAAO,KAAM;AAGlB,UAAA6B,EAAY,KAAK,GAAG7B,EAAO,KAAK,QAAQ;AAGxC,cAAIP,IAAWO,EAAO,KAAK,UACvBgC,IAAY;AAEhB,iBAAOvC,KAAYuC,IAAY9C,KAAuB;AACpD,kBAAM+C,IAAclF,IAAO0C,EAAS,kBAAkBA,EAAS,aACzDK,IAASL,EAAS;AAExB,gBAAI,CAACwC,KAAe,CAACnC,EAAQ;AAG7B,kBAAMoC,IAAiB,MAAMT,EAAkBC,GAAW5B,CAAM;AAEhE,gBAAIoC,EAAe,OAAO;AACxB,sBAAQ;AAAA,gBACN,gCAAgCF,IAAY,CAAC,gBAAgBN,CAAS;AAAA,gBACtEQ,EAAe;AAAA,cAAA,GAEjBJ,EAAO,KAAK,EAAE,WAAAJ,GAAW,OAAOQ,EAAe,OAAO;AACtD;AAAA,YACF;AAEA,gBAAI,CAACA,EAAe,KAAM;AAE1B,YAAAL,EAAY,KAAK,GAAGK,EAAe,KAAK,QAAQ,GAChDzC,IAAWyC,EAAe,KAAK,UAC/BF;AAAA,UACF;AAAA,QACF;AAGA,eAAIF,EAAO,SAAS,KAClB,QAAQ;AAAA,UACN,oBAAoBA,EAAO,MAAM,OAAON,EAAW,MAAM;AAAA,UACzDM;AAAA,QAAA,GAIG;AAAA,UACL,MAAM;AAAA,YACJ,UAAUD;AAAA,YACV,UAAU;AAAA;AAAA,YACV,QAAQC,EAAO,SAAS,IAAIA,IAAS;AAAA,UAAA;AAAA,QACvC;AAAA,MAEJ;AAAA;AAAA;AAAA,MAGA,mBAAmB,OAAOzB,GAAK,EAAE,kBAAAC,GAAkB,mBAAAC,GAAmB,UAAAC,QAAe;AACnF,YAAIC;AAEJ,QAAAA,IAAwBC;AAAA,UACtB,CAACC,MAAuC;AACtC,kBAAMC,IAAmBD,EAAS,OAAO,CAACE,MAAMA,EAAE,YAAYR,EAAI,WAAW;AAC7E,YAAKO,EAAiB,UAEtBN,EAAiB,CAACQ,MAAU;AAC1B,cAAAF,EAAiB,QAAQ,CAACG,MAAY;AACpC,oBAAIA,EAAQ,QAAQ,eAAe,WAAW;AAC5C,wBAAMC,IAASF,EAAM,SAAS,UAAU,CAACG,MAAMA,EAAE,OAAOF,EAAQ,QAAQ,QAAQ;AAChF,kBAAIC,MAAW,OACbF,EAAM,SAASE,CAAM,EAAE,gBAAgBD,EAAQ,QAAQ,iBAAiB;AAAA,gBAE5E;AAAA,cACF,CAAC;AAAA,YACH,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS;AAAA,QAAA;AAGZ,cAAMG,IAAQC,EAAO,UAAU,kBAAkB,OAAOC,GAAgBL,MAAiB;AACvF,cAAI;AACF,kBAAM1D,IAAW0D,EAAQ,SAAS,UAC5BoB,IAAWpB,EAAQ,SAAS;AAKlC,gBAJI,CAAC1D,KAAY,CAAC8E,KAId,CAAC9B,EAAI,WAAW,SAAS8B,CAAQ,EAAG;AAIxC,kBAAMnC,IAAS,MAAMQ;AAAA,cACnB3C,EAAwB,UAAU,YAAY;AAAA,gBAC5C;AAAA,kBACE,aAAawC,EAAI;AAAA,kBACjB,YAAY,CAAC8B,CAAQ;AAAA,kBACrB,YAAY,CAAC9E,CAAQ;AAAA,kBACrB,eAAegD,EAAI;AAAA,kBACnB,YAAYA,EAAI;AAAA,kBAChB,OAAO;AAAA,kBACP,GAAIA,EAAI,gBAAgB,EAAE,cAAcA,EAAI,aAAA;AAAA,kBAC5C,GAAIA,EAAI,mBAAmB,UAAa,EAAE,gBAAgBA,EAAI,eAAA;AAAA,gBAAe;AAAA,gBAE/E,EAAE,cAAc,GAAA;AAAA,cAAK;AAAA,YACvB;AAGF,gBAAIL,EAAO,MAAO;AAGlB,YAAAM,EAAiB,CAACQ,MAAU;AAC1B,oBAAMO,IAAiBrB,EAAO,MAAM,WAAW,CAAC;AAChD,cAAApC,EAAgBkD,EAAM,UAAUzD,GAAUgE,CAAc;AAAA,YAC1D,CAAC;AAAA,UACH,QAAgB;AAAA,UAEhB;AAAA,QACF,CAAC;AAGD,cAAMd,GACNY,EAAO,YAAYD,CAAK,GACpBT,KACFA,EAAA;AAAA,MAEJ;AAAA,MACA,cAAczC;AAAA,IAAA,CACf;AAAA;AAAA,IAGD,qBAAqBoB,EAAM;AAAA,MACzB;AAAA,QACE,sBAAsB;AAAA,UACpB,kBAAkB,EAAE,QAAQ,IAAI,MAAM,GAAA;AAAA;AAAA,UAEtC,kBAAkB,CAACC,GAAUC,GAAWC,GAAeC,MAAmB;AAExE,kBAAMC,IAAWJ,EAAS;AAI1B,gBAAI,IAHSE,EAAc,OACAE,GAAU,kBAAkBA,GAAU,gBAE7C,CAACA,GAAU;AAE/B,qBAAO;AAAA,gBACL,QAAQA,GAAU;AAAA,gBAClB,MAAMF,EAAc;AAAA,cAAA;AAAA,UAExB;AAAA,QAAA;AAAA,QAEF,SAAS,OAAO,EAAE,UAAAG,GAAU,WAAAC,EAAA,GAAaC,MAAQ;AAC/C,cAAII;AACJ,cAAI;AACF,kBAAM,EAAE,QAAAlD,GAAQ,MAAAC,GAAM,WAAA8C,GAAW,GAAGvB,MAASoB,GACvC,EAAE,QAAAI,MAAWH,GAGbI,IAAmB;AAAA,cACvB,GAAGzB;AAAA,YAAA;AA8BL,gBA1BIxB,KACFiD,EAAY,SAASjD,GACjBC,KACFgD,EAAY,SAASD,KAAU,QAC/BC,EAAY,OAAOf,MAEnBe,EAAY,QAAQD,KAAU,QAC9BC,EAAY,QAAQf,OAGtBe,EAAY,QAAQD,KAAU,QAC9BC,EAAY,QAAQf,IAIlBa,KAAaA,EAAU,WACzBE,EAAY,YAAYF,IAI1BG,IAAS,MAAMJ,EAAI;AAAA,cACjB/B,EAAwB,UAAU,YAAY,SAASkC,GAAa;AAAA,gBAClE,cAAc;AAAA,cAAA,CACf;AAAA,YAAA,GAGCC,EAAO,MAAO,OAAMA,EAAO;AAC/B,kBAAMC,IAAW;AAAA,cACf,UAAU,CAAA;AAAA,cACV,UAAU;AAAA,gBACR,aAAa;AAAA,gBACb,WAAW;AAAA,gBACX,aAAa;AAAA,gBACb,iBAAiB;AAAA,cAAA;AAAA,YACnB;AAIF,mBAAO;AAAA,cACL,MAAMD,EAAO,QAAQC;AAAA,YAAA;AAAA,UAEzB,SAASC,GAAQ;AACf,2BAAQ,MAAM,8CAA8CA,CAAC,GACtD;AAAA,cACL,OAAO;AAAA,gBACL,QAAQ;AAAA,gBACR,OAAOC,EAAqBD,EAAE,OAAO;AAAA,cAAA;AAAA,YACvC;AAAA,UAEJ;AAAA,QACF;AAAA,QACA,cAAckC;AAAA;AAAA;AAAA;AAAA,QAMd,mBAAmB,OAAO/B,GAAK,EAAE,kBAAAC,GAAkB,mBAAAC,GAAmB,UAAAC,QAAe;AACnF,cAAIC;AAEJ,UAAAA,IAAwBC;AAAA,YACtB,CAACC,MAAuC;AACtC,oBAAMC,IAAmBD,EAAS,OAAO,CAACE,MAAMA,EAAE,YAAYR,EAAI,WAAW;AAC7E,cAAKO,EAAiB,UAEtBN,EAAiB,CAACQ,MAAU;AAC1B,gBAAAF,EAAiB,QAAQ,CAACG,MAAY;AACpC,kBAAIA,EAAQ,QAAQ,eAAe,aACjCD,EAAM,MAAM,QAAQ,CAACtD,MAAS;AAC5B,oBAAAA,EAAK,SAAS,QAAQ,CAAC6E,MAAM;AAC3B,sBAAIA,EAAE,iBAAiB,OAAOtB,EAAQ,QAAQ,aAC5CsB,EAAE,gBAAgB,gBAAgBtB,EAAQ,QAAQ,iBAAiB;AAAA,oBAEvE,CAAC;AAAA,kBACH,CAAC;AAAA,gBAEL,CAAC;AAAA,cACH,CAAC;AAAA,YACH;AAAA,YACA,CAAC,SAAS;AAAA,UAAA;AAIZ,gBAAMuB,IAAiB,OAAOZ,MAAsB;AAClD,kBAAM3B,IAAmB;AAAA,cACvB,aAAaM,EAAI;AAAA,cACjB,YAAY,CAACqB,CAAS;AAAA,cACtB,eAAerB,EAAI;AAAA,cACnB,eAAeA,EAAI;AAAA,cACnB,YAAYA,EAAI;AAAA,cAChB,WAAWA,EAAI,WAAW,SAASA,EAAI,YAAY;AAAA,cACnD,OAAO;AAAA,YAAA,GAGHL,IAAS,MAAMQ;AAAA,cACnB3C,EAAwB,UAAU,YAAY,SAASkC,GAAa;AAAA,gBAClE,cAAc;AAAA,cAAA,CACf;AAAA,YAAA;AAGH,YAAIC,EAAO,SAGXM,EAAiB,CAACQ,MAAU;AAC1B,oBAAMyB,IAAiBvC,EAAO,MAAM,WAAW,CAAC;AAChD,cAAA7C;AAAA,gBACE2D,EAAM;AAAA,gBACNY;AAAA,gBACAa;AAAA,gBACA;AAAA,gBACClC,EAAI,UAAU;AAAA,gBACfA,EAAI,QAAQ;AAAA,cAAA;AAAA,YAEhB,CAAC;AAAA,UACH,GAGMmC,IAAerB,EAAO;AAAA,YAC1B;AAAA,YACA,OAAOC,GAAgBL,MAAiB;AACtC,kBAAI;AACF,sBAAM1D,IAAW0D,EAAQ,SAAS;AAClC,oBAAI,CAAC1D,EAAU;AAEf,sBAAMiF,EAAejF,CAAQ;AAAA,cAC/B,QAAgB;AAAA,cAEhB;AAAA,YACF;AAAA,UAAA,GAKIoF,IAAetB,EAAO;AAAA,YAC1B;AAAA,YACA,OAAOC,GAAgBL,MAAiB;AACtC,kBAAI;AACF,sBAAMoB,IAAWpB,EAAQ,SAAS;AAClC,oBAAI,CAACoB,EAAU;AAIf,oBAAIO,IAAuB;AAO3B,oBANApC,EAAiB,CAACQ,MAAU;AAC1B,kBAAA4B,IAAuB5B,EAAM,MAAM;AAAA,oBAAK,CAACtD,MACvCA,EAAK,SAAS,KAAK,CAACmF,MAAyBA,EAAQ,OAAOR,CAAQ;AAAA,kBAAA;AAAA,gBAExE,CAAC,GAEG,CAACO,EAAsB;AAE3B,sBAAMJ,EAAeH,CAAQ;AAAA,cAC/B,QAAgB;AAAA,cAEhB;AAAA,YACF;AAAA,UAAA;AAIF,gBAAM5B,GACNY,EAAO,YAAYqB,CAAY,GAC/BrB,EAAO,YAAYsB,CAAY,GAC3BhC,KACFA,EAAA;AAAA,QAEJ;AAAA,MAAA;AAAA,IACF;AAAA;AAAA,IAIF,wBAAwBrB,EAAM,MAAgE;AAAA,MAC5F,SAAS,OACP;AAAA,QACE,aAAAL;AAAA,QACA,QAAA6D;AAAA,QACA,gBAAAC,IAAiB;AAAA,QACjB,eAAAC;AAAA;AAAA,QACA,eAAAC;AAAA,QACA,YAAAC;AAAA,QACA,WAAAnD;AAAA,QACA,MAAA9C;AAAA,QACA,QAAAD;AAAA,QACA,cAAAmG;AAAA,QACA,gBAAAC;AAAA,MAAA,GAEFtD,MACG;AACH,YAAI;AACF,gBAAM+B,IAAW,CAAA;AACjB,qBAAWwB,KAASP,GAAQ;AAC1B,kBAAMQ,IAAQD,EAAM,SAAS,KAEvBpD,IAAyC;AAAA,cAC7C,aAAAhB;AAAA;AAAA,cAEA,eAAAgE;AAAA,cACA,YAAAC;AAAA,cACA,eAAAF;AAAA;AAAA,cAEA,CAACD,CAAc,GAAGM,EAAM;AAAA,cACxB,WAAWtD,GAAW,SAASA,IAAY;AAAA,cAC3C,QAAA/C;AAAA,cACA,cAAAmG;AAAA,cACA,gBAAAC;AAAA;AAAA,cAEA,OAAOC,EAAM;AAAA,YAAA;AAGf,YAAIpG,IACFgD,EAAY,OAAOqD,IAEnBrD,EAAY,QAAQqD;AAGtB,kBAAMC,IAAUzD,EAAI;AAAA,cAClB/B,EAAwB,UAAU,YAAY,SAASkC,GAAa;AAAA,gBAClE,cAAc;AAAA,cAAA,CACf;AAAA,YAAA;AAEH,YAAA4B,EAAS,KAAK0B,CAAO;AAAA,UACvB;AAEA,gBAAMrD,IAAS,MAAM,QAAQ,IAAI2B,CAAQ,GACnC2B,IAA0B,CAAA;AAEhC,qBAAWnF,KAAO6B,GAAQ;AACxB,gBAAI7B,EAAI,MAAO,OAAMA,EAAI;AAIzB,kBAAMoF,IAAapF,EAAI,cAAc,OAE/B8D,IACJ9D,EAAI,MAAM,UAAU,eAAeA,EAAI,MAAM,UAAU,mBAAmB,IAEtEqF,IACJrF,EAAI,MAAM,SAAS,IAAI,CAACsF,GAASzG,GAAG0G,OAAO;AAAA,cACzC,GAAGD;AAAA,cACH,QAAQ;AAAA,gBACN;AAAA,kBACE,OAAOF;AAAA,kBACP,aAAavG,MAAM0G,EAAE,SAAS,KAAKzB,IAAcsB,IAAa;AAAA,gBAAA;AAAA,cAChE;AAAA,YACF,EACA,KAAK,CAAA;AAET,YAAAD,EAAS,KAAK,GAAGE,CAAa;AAAA,UAChC;AAEA,iBAAO;AAAA,YACL,MAAM;AAAA,cACJ,UAAAF;AAAA,YAAA;AAAA,UACF;AAAA,QAEJ,SAASK,GAAY;AACnB,yBAAQ,MAAM,4CAA4CA,CAAK,GACxD;AAAA,YACL,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,OAAOxD,EAAqBwD,EAAM,OAAO;AAAA,YAAA;AAAA,UAC3C;AAAA,QAEJ;AAAA,MACF;AAAA,MACA,cAAc3F;AAAA;AAAA;AAAA,MAGd,mBAAmB,OAAOqC,GAAK,EAAE,kBAAAC,GAAkB,mBAAAC,GAAmB,UAAAC,QAAe;AACnF,YAAIC;AAEJ,QAAAA,IAAwBC;AAAA,UACtB,CAACC,MAAuC;AACtC,kBAAMC,IAAmBD,EAAS,OAAO,CAACE,MAAMA,EAAE,YAAYR,EAAI,WAAW;AAC7E,YAAKO,EAAiB,UAEtBN,EAAiB,CAACQ,MAAU;AAC1B,cAAAF,EAAiB,QAAQ,CAACG,MAAY;AACpC,oBAAIA,EAAQ,QAAQ,eAAe,WAAW;AAC5C,wBAAMC,IAASF,EAAM,SAAS,UAAU,CAACG,MAAMA,EAAE,OAAOF,EAAQ,QAAQ,QAAQ;AAChF,kBAAIC,MAAW,OACbF,EAAM,SAASE,CAAM,EAAE,gBAAgBD,EAAQ,QAAQ,iBAAiB;AAAA,gBAE5E;AAAA,cACF,CAAC;AAAA,YACH,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS;AAAA,QAAA;AAGZ,cAAMG,IAAQC,EAAO,UAAU,kBAAkB,OAAOC,GAAgBL,MAAiB;AACvF,cAAI;AACF,kBAAM1D,IAAW0D,EAAQ,SAAS;AAClC,gBAAI,CAAC1D,EAAU;AAKf,kBAAMuG,IAAc;AAAA,cAClB,aAAavD,EAAI;AAAA,cACjB,eAAeA,EAAI;AAAA,cACnB,eAAeA,EAAI;AAAA,cACnB,YAAYA,EAAI;AAAA,cAChB,WAAWA,EAAI,WAAW,SAASA,EAAI,YAAY;AAAA,cACnD,YAAY,CAAChD,CAAQ;AAAA,cACrB,OAAO;AAAA,cACP,GAAIgD,EAAI,gBAAgB,EAAE,cAAcA,EAAI,aAAA;AAAA,cAC5C,GAAIA,EAAI,mBAAmB,UAAa,EAAE,gBAAgBA,EAAI,eAAA;AAAA,YAAe,GAIzEwD,IAA6D,CAAA;AACnE,gBAAIC,IAAwC;AAE5C,uBAAWX,KAAS9C,EAAI,QAAQ;AAY9B,oBAAM0D,KAXS,MAAMvD;AAAA,gBACnB3C,EAAwB,UAAU,YAAY;AAAA,kBAC5C;AAAA,oBACE,GAAG+F;AAAA,oBACH,CAACvD,EAAI,cAAwB,GAAG8C,EAAM;AAAA;AAAA,oBACtC,YAAY,CAAC9F,CAAQ;AAAA,kBAAA;AAAA,kBAEvB,EAAE,cAAc,GAAA;AAAA;AAAA,gBAAK;AAAA,cACvB,GAG4B,MAAM,WAAW,CAAC;AAChD,cAAI0G,MAEFF,EAAc,KAAK,EAAE,OAAOV,EAAM,OAAO,aAAa,QAAW,GACjEW,IAAoBC;AAAA,YAExB;AAGA,YAAAzD,EAAiB,CAACQ,MAAU;AAC1B,oBAAMrD,IAAQqD,EAAM,SAAS,UAAU,CAACG,MAAMA,EAAE,OAAO5D,CAAQ,GACzD2G,IAAuBvG,MAAU;AAEvC,kBAAIoG,EAAc,WAAW;AAE3B,gBAAIG,KACFlD,EAAM,SAAS,OAAOrD,GAAO,CAAC;AAAA,uBAEvBqG;AAET,oBAAIE,GAAsB;AACxB,wBAAMC,IAAiBnD,EAAM,SAASrD,CAAK,EAAE,UAAU,CAAA,GAEjDyG,IAAsBD,EAAe,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAA,GACzDE,IAAqBN,EAAc,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAA;AAK7D,kBAHEK,EAAoB,WAAWC,EAAmB,UAClDD,EAAoB,KAAK,CAACjD,GAAGjE,MAAMiE,MAAMkD,EAAmBnH,CAAC,CAAC,IAI9D8D,EAAM,SAASrD,CAAK,IAAI,EAAE,GAAGqG,GAAmB,QAAQD,EAAA,IAGxD/C,EAAM,SAASrD,CAAK,IAAI,EAAE,GAAGqG,GAAmB,QAAQG,EAAA;AAAA,gBAE5D,OAAO;AAEL,wBAAMG,IAAa,EAAE,GAAGN,GAAmB,QAAQD,EAAA,GAC7CQ,IAAWhE,EAAI,UAAU,aACzB1C,IAAchB;AAAA,oBAClBmE,EAAM;AAAA,oBACNsD;AAAA,oBACAC;AAAA,oBACAhE,EAAI,QAAQ;AAAA,kBAAA;AAEd,kBAAAS,EAAM,SAAS,OAAOnD,GAAa,GAAGyG,CAAU;AAAA,gBAClD;AAAA,YAEJ,CAAC;AAAA,UACH,QAAgB;AAAA,UAEhB;AAAA,QACF,CAAC;AAGD,cAAM7D,GACNY,EAAO,YAAYD,CAAK,GACpBT,KACFA,EAAA;AAAA,MAEJ;AAAA,IAAA,CACD;AAAA,EAAA;AAEL,CAAC,GAGY;AAAA,EACX,qBAAA6D;AAAA,EACA,gCAAAC;AAAA,EACA,gCAAAC;AACF,IAAI3G,GAES;AAAA,EACX,qCAAqC4G;AAAA,EACrC,+BAAAC;AAAA,EACA,qCAAqCC;AAAA,EACrC,gCAAAC;AACF,IAAIzF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./getViews.cjs.js"),v=require("uuid"),V=n.getViewsApi.enhanceEndpoints({endpoints:{createView:{onQueryStarted:async(e,{dispatch:r,queryFulfilled:p,getState:c})=>{const{payload:t}=e,a=c().user?.name,d=r(n.getViewsApi.util.updateQueryData("listViews",{viewType:e.viewType,projectName:e.projectName},o=>{const s={...t,working:t.working||!1,scope:e.projectName?"project":"studio",visibility:"private",position:o.length+1,owner:a,accessLevel:30};if(t.working){const u=o.findIndex(g=>g.working===!0);if(u!==-1){const g=o[u].id;o[u]={...s,id:g}}else o.push(s)}else o.push(s);o.sort((u,g)=>u.position!==g.position?u.position-g.position:u.label.localeCompare(g.label))}));let i;t.working&&(i=r(n.getViewsApi.util.updateQueryData("getWorkingView",{viewType:e.viewType,projectName:e.projectName},o=>{const s=o?.id,u={...t,working:!0,scope:e.projectName?"project":"studio",visibility:"private",owner:a,...s&&{id:s}};Object.assign(o,u)})));let w;if(t.label==="__base__"){const o={id:v.v4(),...t,working:!1,scope:e.projectName?"project":"studio",visibility:"private",owner:a,accessLevel:30,position:0};w=r(n.getViewsApi.util.updateQueryData("getBaseView",{viewType:e.viewType,projectName:e.projectName},s=>{s&&Object.assign(s,o)})),w?.patches?.length||r(n.getViewsApi.util.upsertQueryData("getBaseView",{viewType:e.viewType,projectName:e.projectName},o))}try{await p}catch{d.undo(),i&&i.undo(),w&&w.undo()}},transformErrorResponse:e=>e.data?.detail,invalidatesTags:(e,r,{viewType:p,projectName:c,payload:t})=>[{type:"view",id:t.id},n.getScopeTag(p,c)]},updateView:{onQueryStarted:async(e,{dispatch:r,queryFulfilled:p})=>{const{viewId:c,payload:t,viewType:l,projectName:a}=e,d=[];d.push(r(n.getViewsApi.util.updateQueryData("listViews",{viewType:l,projectName:a},i=>{const w=i.find(o=>o.id===c);w&&Object.assign(w,t)}))),d.push(r(n.getViewsApi.util.updateQueryData("getWorkingView",{viewType:l,projectName:a},i=>{i?.id===c&&Object.assign(i,t)}))),d.push(r(n.getViewsApi.util.updateQueryData("getDefaultView",{viewType:l,projectName:a},i=>{i?.id===c&&Object.assign(i,t)}))),d.push(r(n.getViewsApi.util.updateQueryData("getView",{viewType:l,viewId:c,projectName:a},i=>{i&&Object.assign(i,t)})));try{await p}catch{d.forEach(w=>w.undo())}},transformErrorResponse:e=>e.data?.detail,invalidatesTags:(e,r,{viewType:p,projectName:c,viewId:t,payload:l})=>{const a=[],d=["label","owner","position","visibility","scope","accessLevel","working"];return Object.keys(l).some(w=>d.includes(w))&&(a.push({type:"view",id:t}),a.push(n.getScopeTag(p,c))),a}},deleteView:{onQueryStarted:async(e,{dispatch:r,queryFulfilled:p,getState:c})=>{const{viewId:t,projectName:l,viewType:a}=e,d=c(),i=[];i.push(r(n.getViewsApi.util.updateQueryData("listViews",{viewType:a,projectName:l},s=>s.filter(u=>u.id!==t))));const w=[{projectName:l},{projectName:void 0}],o=["getBaseView","getDefaultView"];for(const s of w)for(const u of o){const g=n.getViewsApi.endpoints[u].select({viewType:a,projectName:s.projectName})(d);g?.isSuccess&&g.data?.id===t&&i.push(r(n.getViewsApi.util.updateQueryData(u,{viewType:a,projectName:s.projectName},()=>null)))}try{await p}catch(s){i.forEach(u=>u.undo()),console.error("Failed to delete view:",s)}},transformErrorResponse:e=>e.data?.detail,invalidatesTags:(e,r,{viewType:p,projectName:c,viewId:t})=>[{type:"view",id:t},n.getScopeTag(p,c),n.getScopeTag(p,void 0)]},setDefaultView:{onQueryStarted:async(e,{dispatch:r,queryFulfilled:p,getState:c})=>{const{setDefaultViewRequestModel:t,projectName:l,viewType:a}=e,{viewId:d}=t,i=c(),w=n.getViewsApi.endpoints.getDefaultView.select({viewType:a,projectName:l})(i);if(w?.isSuccess&&w.data?.id){const o=r(n.getViewsApi.util.updateQueryData("getDefaultView",{viewType:a,projectName:l},s=>{if(s){const g=n.getViewsApi.endpoints.listViews.select({viewType:a,projectName:l})(i)?.data?.find(y=>y.id===d);g?Object.assign(s,g):s.id=d}}));try{await p}catch(s){o.undo(),console.error("Failed to set default view:",s)}}else console.warn("No current default view found, skipping optimistic update and invalidating default view cache")},transformErrorResponse:e=>e.data?.detail,invalidatesTags:(e,r,{viewType:p,projectName:c,setDefaultViewRequestModel:t})=>[{type:"view",id:t.viewId},n.getScopeTag(p,c)]}}}),{useCreateViewMutation:f,useUpdateViewMutation:j,useDeleteViewMutation:m,useSetDefaultViewMutation:h}=V;exports.useCreateViewMutation=f;exports.useDeleteViewMutation=m;exports.useSetDefaultViewMutation=h;exports.useUpdateViewMutation=j;exports.viewsQueries=V;
|
|
2
2
|
//# sourceMappingURL=updateViews.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateViews.cjs.js","sources":["../../../../../../src/api/queries/views/updateViews.ts"],"sourcesContent":["import { ViewListItemModel } from '@shared/api/generated'\nimport { getScopeTag, getViewsApi } from './getViews'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst updateViewsApi = getViewsApi.enhanceEndpoints({\n endpoints: {\n createView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { payload } = arg\n const state = getState()\n // @ts-expect-error - user is not typed in the state\n const user = state.user?.name\n\n // Optimistically update the view list\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'listViews',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n const newView: ViewListItemModel = {\n ...payload,\n working: payload.working || false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n position: draft.length + 1, // Add to the end of the list\n owner: user,\n accessLevel: 30,\n }\n if (payload.working) {\n // For working views, find and replace the existing working view\n const existingWorkingIndex = draft.findIndex((view) => view.working === true)\n if (existingWorkingIndex !== -1) {\n // Keep the existing ID but update all other properties\n const existingId = draft[existingWorkingIndex].id\n draft[existingWorkingIndex] = { ...newView, id: existingId }\n } else {\n // No existing working view, add the new one\n draft.push(newView)\n }\n } else {\n // For non-working views, add to the list as usual\n draft.push(newView)\n }\n\n // finally sort the view by position and then by label\n draft.sort((a, b) => {\n if (a.position !== b.position) {\n return a.position - b.position\n }\n return a.label.localeCompare(b.label)\n })\n },\n ),\n )\n\n // Also update the getWorkingView cache if this is a working view\n let workingViewPatch\n if (payload.working) {\n workingViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n // Preserve the existing ID if there's already a working view\n const existingId = draft?.id\n const updatedWorkingView = {\n ...payload,\n working: true,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n ...(existingId && { id: existingId }), // Keep existing ID if it exists\n }\n // Update the working view cache with the new view data\n Object.assign(draft, updatedWorkingView)\n },\n ),\n )\n }\n\n let baseViewPatch\n\n if (payload.label === '__base__') {\n const newBaseView = {\n id: uuidv4(),\n ...payload,\n working: false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n accessLevel: 30,\n position: 0,\n }\n\n baseViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getBaseView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n if (draft) {\n Object.assign(draft, newBaseView)\n }\n },\n ),\n )\n\n // If the cache wasn't updated (because it didn't exist), upsert it\n if (!baseViewPatch?.patches?.length) {\n dispatch(\n getViewsApi.util.upsertQueryData(\n 'getBaseView',\n { viewType: arg.viewType, projectName: arg.projectName },\n newBaseView as any,\n ),\n )\n }\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n patch.undo()\n if (workingViewPatch) workingViewPatch.undo()\n if (baseViewPatch) baseViewPatch.undo()\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, payload }) => [\n { type: 'view', id: payload.id },\n getScopeTag(viewType, projectName),\n ],\n },\n updateView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled }) => {\n const { viewId, payload, viewType, projectName } = arg\n\n const patches: any[] = []\n\n // 1. Update listViews\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n const view = draft.find((v) => v.id === viewId)\n if (view) {\n Object.assign(view, payload)\n }\n }),\n ),\n )\n\n // 2. Update getWorkingView\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType, projectName },\n (draft) => {\n if (draft?.id === viewId) {\n Object.assign(draft, payload)\n }\n },\n ),\n ),\n )\n\n // 3. Update getDefaultView\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft?.id === viewId) {\n Object.assign(draft, payload)\n }\n },\n ),\n ),\n )\n\n // 4. Update getView\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n 'getView',\n { viewType, viewId, projectName },\n (draft) => {\n if (draft) {\n Object.assign(draft, payload)\n }\n },\n ),\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n patches.forEach((patch) => patch.undo())\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n invalidatesTags: (_r, _e, { viewType, projectName, viewId, payload }) => {\n const tags: any[] = [{ type: 'view', id: viewId }]\n\n // Only invalidate the full list if metadata fields (like label) have changed\n const metadataFields = [\n 'label',\n 'owner',\n 'position',\n 'visibility',\n 'scope',\n 'accessLevel',\n 'working',\n ]\n const hasMetadataChanges = Object.keys(payload).some((key) => metadataFields.includes(key))\n\n if (hasMetadataChanges) {\n tags.push(getScopeTag(viewType, projectName))\n }\n\n return tags\n },\n },\n deleteView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { viewId, projectName, viewType } = arg\n const state = getState()\n\n // Optimistically remove the view from the list\n const patches: any[] = []\n\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n return draft.filter((view) => view.id !== viewId)\n }),\n ),\n )\n\n // Check both project and studio level for base and default views\n const scopesToCheck = [\n { projectName },\n { projectName: undefined }, // studio level\n ]\n const queriesToCheck = ['getBaseView', 'getDefaultView'] as const\n\n for (const scope of scopesToCheck) {\n for (const queryName of queriesToCheck) {\n const currentView = getViewsApi.endpoints[queryName].select({\n viewType,\n projectName: scope.projectName,\n })(state)\n\n if (currentView?.isSuccess && currentView.data?.id === viewId) {\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n queryName,\n { viewType, projectName: scope.projectName },\n () => null as any,\n ),\n ),\n )\n }\n }\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, roll back all optimistic updates\n patches.forEach((patch) => patch.undo())\n console.error('Failed to delete view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n getScopeTag(viewType, undefined),\n ],\n },\n setDefaultView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { setDefaultViewRequestModel, projectName, viewType } = arg\n const { viewId } = setDefaultViewRequestModel\n const state = getState()\n // get current state of default view\n const currentDefaultView = getViewsApi.endpoints.getDefaultView.select({\n viewType,\n projectName,\n })(state)\n\n // check if there is even a cache for the default view\n if (currentDefaultView?.isSuccess && currentDefaultView.data?.id) {\n // Optimistically update the default view\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft) {\n // Try to find the view in the listViews cache\n const listViewData = getViewsApi.endpoints.listViews.select({\n viewType,\n projectName,\n })(state)\n const view = listViewData?.data?.find((v) => v.id === viewId)\n\n if (view) {\n // If the view is found in the listViews cache, update the getDefaultView cache with the full view data\n Object.assign(draft, view)\n } else {\n // If the view is not found, only update the ID\n draft.id = viewId\n }\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to set default view:', error)\n }\n } else {\n console.warn(\n 'No current default view found, skipping optimistic update and invalidating default view cache',\n )\n // If there is no current default view, we skip the optimistic update\n // it will be handled by the invalidation below\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the default view cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, setDefaultViewRequestModel }) => [\n { type: 'view', id: setDefaultViewRequestModel.viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n },\n})\n\nexport const {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n} = updateViewsApi\nexport { updateViewsApi as viewsQueries }\n"],"names":["updateViewsApi","getViewsApi","arg","dispatch","queryFulfilled","getState","payload","user","patch","draft","newView","existingWorkingIndex","view","existingId","a","b","workingViewPatch","updatedWorkingView","baseViewPatch","newBaseView","uuidv4","error","_r","_e","viewType","projectName","getScopeTag","viewId","patches","v","tags","metadataFields","key","state","scopesToCheck","queriesToCheck","scope","queryName","currentView","setDefaultViewRequestModel","currentDefaultView","useCreateViewMutation","useUpdateViewMutation","useDeleteViewMutation","useSetDefaultViewMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateViews.cjs.js","sources":["../../../../../../src/api/queries/views/updateViews.ts"],"sourcesContent":["import { ViewListItemModel } from '@shared/api/generated'\nimport { getScopeTag, getViewsApi } from './getViews'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst updateViewsApi = getViewsApi.enhanceEndpoints({\n endpoints: {\n createView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { payload } = arg\n const state = getState()\n // @ts-expect-error - user is not typed in the state\n const user = state.user?.name\n\n // Optimistically update the view list\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'listViews',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n const newView: ViewListItemModel = {\n ...payload,\n working: payload.working || false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n position: draft.length + 1, // Add to the end of the list\n owner: user,\n accessLevel: 30,\n }\n if (payload.working) {\n // For working views, find and replace the existing working view\n const existingWorkingIndex = draft.findIndex((view) => view.working === true)\n if (existingWorkingIndex !== -1) {\n // Keep the existing ID but update all other properties\n const existingId = draft[existingWorkingIndex].id\n draft[existingWorkingIndex] = { ...newView, id: existingId }\n } else {\n // No existing working view, add the new one\n draft.push(newView)\n }\n } else {\n // For non-working views, add to the list as usual\n draft.push(newView)\n }\n\n // finally sort the view by position and then by label\n draft.sort((a, b) => {\n if (a.position !== b.position) {\n return a.position - b.position\n }\n return a.label.localeCompare(b.label)\n })\n },\n ),\n )\n\n // Also update the getWorkingView cache if this is a working view\n let workingViewPatch\n if (payload.working) {\n workingViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n // Preserve the existing ID if there's already a working view\n const existingId = draft?.id\n const updatedWorkingView = {\n ...payload,\n working: true,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n ...(existingId && { id: existingId }), // Keep existing ID if it exists\n }\n // Update the working view cache with the new view data\n Object.assign(draft, updatedWorkingView)\n },\n ),\n )\n }\n\n let baseViewPatch\n\n if (payload.label === '__base__') {\n const newBaseView = {\n id: uuidv4(),\n ...payload,\n working: false,\n scope: arg.projectName ? 'project' : 'studio',\n visibility: 'private',\n owner: user,\n accessLevel: 30,\n position: 0,\n }\n\n baseViewPatch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getBaseView',\n { viewType: arg.viewType, projectName: arg.projectName },\n (draft) => {\n if (draft) {\n Object.assign(draft, newBaseView)\n }\n },\n ),\n )\n\n // If the cache wasn't updated (because it didn't exist), upsert it\n if (!baseViewPatch?.patches?.length) {\n dispatch(\n getViewsApi.util.upsertQueryData(\n 'getBaseView',\n { viewType: arg.viewType, projectName: arg.projectName },\n newBaseView as any,\n ),\n )\n }\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n patch.undo()\n if (workingViewPatch) workingViewPatch.undo()\n if (baseViewPatch) baseViewPatch.undo()\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, payload }) => [\n { type: 'view', id: payload.id },\n getScopeTag(viewType, projectName),\n ],\n },\n updateView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled }) => {\n const { viewId, payload, viewType, projectName } = arg\n\n const patches: any[] = []\n\n // 1. Update listViews\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n const view = draft.find((v) => v.id === viewId)\n if (view) {\n Object.assign(view, payload)\n }\n }),\n ),\n )\n\n // 2. Update getWorkingView\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n 'getWorkingView',\n { viewType, projectName },\n (draft) => {\n if (draft?.id === viewId) {\n Object.assign(draft, payload)\n }\n },\n ),\n ),\n )\n\n // 3. Update getDefaultView\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft?.id === viewId) {\n Object.assign(draft, payload)\n }\n },\n ),\n ),\n )\n\n // 4. Update getView\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n 'getView',\n { viewType, viewId, projectName },\n (draft) => {\n if (draft) {\n Object.assign(draft, payload)\n }\n },\n ),\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n patches.forEach((patch) => patch.undo())\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n invalidatesTags: (_r, _e, { viewType, projectName, viewId, payload }) => {\n const tags: any[] = []\n\n // Only invalidate when metadata fields (label, owner, etc.) change.\n // For settings-only updates the optimistic cache patches are sufficient —\n // emitting the view ID tag here would trigger a background refetch that races\n // with any other in-flight rapid mutations and temporarily reverts the cache\n // to a stale server response, causing a visible \"previous view\" flicker.\n const metadataFields = [\n 'label',\n 'owner',\n 'position',\n 'visibility',\n 'scope',\n 'accessLevel',\n 'working',\n ]\n const hasMetadataChanges = Object.keys(payload).some((key) => metadataFields.includes(key))\n\n if (hasMetadataChanges) {\n tags.push({ type: 'view', id: viewId })\n tags.push(getScopeTag(viewType, projectName))\n }\n\n return tags\n },\n },\n deleteView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { viewId, projectName, viewType } = arg\n const state = getState()\n\n // Optimistically remove the view from the list\n const patches: any[] = []\n\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData('listViews', { viewType, projectName }, (draft) => {\n return draft.filter((view) => view.id !== viewId)\n }),\n ),\n )\n\n // Check both project and studio level for base and default views\n const scopesToCheck = [\n { projectName },\n { projectName: undefined }, // studio level\n ]\n const queriesToCheck = ['getBaseView', 'getDefaultView'] as const\n\n for (const scope of scopesToCheck) {\n for (const queryName of queriesToCheck) {\n const currentView = getViewsApi.endpoints[queryName].select({\n viewType,\n projectName: scope.projectName,\n })(state)\n\n if (currentView?.isSuccess && currentView.data?.id === viewId) {\n patches.push(\n dispatch(\n getViewsApi.util.updateQueryData(\n queryName,\n { viewType, projectName: scope.projectName },\n () => null as any,\n ),\n ),\n )\n }\n }\n }\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, roll back all optimistic updates\n patches.forEach((patch) => patch.undo())\n console.error('Failed to delete view:', error)\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the view list cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, viewId }) => [\n { type: 'view', id: viewId },\n getScopeTag(viewType, projectName),\n getScopeTag(viewType, undefined),\n ],\n },\n setDefaultView: {\n onQueryStarted: async (arg, { dispatch, queryFulfilled, getState }) => {\n const { setDefaultViewRequestModel, projectName, viewType } = arg\n const { viewId } = setDefaultViewRequestModel\n const state = getState()\n // get current state of default view\n const currentDefaultView = getViewsApi.endpoints.getDefaultView.select({\n viewType,\n projectName,\n })(state)\n\n // check if there is even a cache for the default view\n if (currentDefaultView?.isSuccess && currentDefaultView.data?.id) {\n // Optimistically update the default view\n const patch = dispatch(\n getViewsApi.util.updateQueryData(\n 'getDefaultView',\n { viewType, projectName },\n (draft) => {\n if (draft) {\n // Try to find the view in the listViews cache\n const listViewData = getViewsApi.endpoints.listViews.select({\n viewType,\n projectName,\n })(state)\n const view = listViewData?.data?.find((v) => v.id === viewId)\n\n if (view) {\n // If the view is found in the listViews cache, update the getDefaultView cache with the full view data\n Object.assign(draft, view)\n } else {\n // If the view is not found, only update the ID\n draft.id = viewId\n }\n }\n },\n ),\n )\n\n try {\n await queryFulfilled\n } catch (error) {\n // If the query failed, we need to roll back the optimistic update\n patch.undo()\n console.error('Failed to set default view:', error)\n }\n } else {\n console.warn(\n 'No current default view found, skipping optimistic update and invalidating default view cache',\n )\n // If there is no current default view, we skip the optimistic update\n // it will be handled by the invalidation below\n }\n },\n transformErrorResponse: (error: any) => error.data?.detail,\n // updates the default view cache for a specific view type and project\n invalidatesTags: (_r, _e, { viewType, projectName, setDefaultViewRequestModel }) => [\n { type: 'view', id: setDefaultViewRequestModel.viewId },\n getScopeTag(viewType, projectName),\n ],\n },\n },\n})\n\nexport const {\n useCreateViewMutation,\n useUpdateViewMutation,\n useDeleteViewMutation,\n useSetDefaultViewMutation,\n} = updateViewsApi\nexport { updateViewsApi as viewsQueries }\n"],"names":["updateViewsApi","getViewsApi","arg","dispatch","queryFulfilled","getState","payload","user","patch","draft","newView","existingWorkingIndex","view","existingId","a","b","workingViewPatch","updatedWorkingView","baseViewPatch","newBaseView","uuidv4","error","_r","_e","viewType","projectName","getScopeTag","viewId","patches","v","tags","metadataFields","key","state","scopesToCheck","queriesToCheck","scope","queryName","currentView","setDefaultViewRequestModel","currentDefaultView","useCreateViewMutation","useUpdateViewMutation","useDeleteViewMutation","useSetDefaultViewMutation"],"mappings":"uIAIMA,EAAiBC,EAAAA,YAAY,iBAAiB,CAClD,UAAW,CACT,WAAY,CACV,eAAgB,MAAOC,EAAK,CAAE,SAAAC,EAAU,eAAAC,EAAgB,SAAAC,KAAe,CACrE,KAAM,CAAE,QAAAC,GAAYJ,EAGdK,EAFQF,EAAA,EAEK,MAAM,KAGnBG,EAAQL,EACZF,EAAAA,YAAY,KAAK,gBACf,YACA,CAAE,SAAUC,EAAI,SAAU,YAAaA,EAAI,WAAA,EAC1CO,GAAU,CACT,MAAMC,EAA6B,CACjC,GAAGJ,EACH,QAASA,EAAQ,SAAW,GAC5B,MAAOJ,EAAI,YAAc,UAAY,SACrC,WAAY,UACZ,SAAUO,EAAM,OAAS,EACzB,MAAOF,EACP,YAAa,EAAA,EAEf,GAAID,EAAQ,QAAS,CAEnB,MAAMK,EAAuBF,EAAM,UAAWG,GAASA,EAAK,UAAY,EAAI,EAC5E,GAAID,IAAyB,GAAI,CAE/B,MAAME,EAAaJ,EAAME,CAAoB,EAAE,GAC/CF,EAAME,CAAoB,EAAI,CAAE,GAAGD,EAAS,GAAIG,CAAA,CAClD,MAEEJ,EAAM,KAAKC,CAAO,CAEtB,MAEED,EAAM,KAAKC,CAAO,EAIpBD,EAAM,KAAK,CAACK,EAAGC,IACTD,EAAE,WAAaC,EAAE,SACZD,EAAE,SAAWC,EAAE,SAEjBD,EAAE,MAAM,cAAcC,EAAE,KAAK,CACrC,CACH,CAAA,CACF,EAIF,IAAIC,EACAV,EAAQ,UACVU,EAAmBb,EACjBF,EAAAA,YAAY,KAAK,gBACf,iBACA,CAAE,SAAUC,EAAI,SAAU,YAAaA,EAAI,WAAA,EAC1CO,GAAU,CAET,MAAMI,EAAaJ,GAAO,GACpBQ,EAAqB,CACzB,GAAGX,EACH,QAAS,GACT,MAAOJ,EAAI,YAAc,UAAY,SACrC,WAAY,UACZ,MAAOK,EACP,GAAIM,GAAc,CAAE,GAAIA,CAAA,CAAW,EAGrC,OAAO,OAAOJ,EAAOQ,CAAkB,CACzC,CAAA,CACF,GAIJ,IAAIC,EAEJ,GAAIZ,EAAQ,QAAU,WAAY,CAChC,MAAMa,EAAc,CAClB,GAAIC,EAAAA,GAAA,EACJ,GAAGd,EACH,QAAS,GACT,MAAOJ,EAAI,YAAc,UAAY,SACrC,WAAY,UACZ,MAAOK,EACP,YAAa,GACb,SAAU,CAAA,EAGZW,EAAgBf,EACdF,EAAAA,YAAY,KAAK,gBACf,cACA,CAAE,SAAUC,EAAI,SAAU,YAAaA,EAAI,WAAA,EAC1CO,GAAU,CACLA,GACF,OAAO,OAAOA,EAAOU,CAAW,CAEpC,CAAA,CACF,EAIGD,GAAe,SAAS,QAC3Bf,EACEF,EAAAA,YAAY,KAAK,gBACf,cACA,CAAE,SAAUC,EAAI,SAAU,YAAaA,EAAI,WAAA,EAC3CiB,CAAA,CACF,CAGN,CAEA,GAAI,CACF,MAAMf,CACR,MAAgB,CACdI,EAAM,KAAA,EACFQ,KAAmC,KAAA,EACnCE,KAA6B,KAAA,CACnC,CACF,EACA,uBAAyBG,GAAeA,EAAM,MAAM,OAEpD,gBAAiB,CAACC,EAAIC,EAAI,CAAE,SAAAC,EAAU,YAAAC,EAAa,QAAAnB,KAAc,CAC/D,CAAE,KAAM,OAAQ,GAAIA,EAAQ,EAAA,EAC5BoB,EAAAA,YAAYF,EAAUC,CAAW,CAAA,CACnC,EAEF,WAAY,CACV,eAAgB,MAAOvB,EAAK,CAAE,SAAAC,EAAU,eAAAC,KAAqB,CAC3D,KAAM,CAAE,OAAAuB,EAAQ,QAAArB,EAAS,SAAAkB,EAAU,YAAAC,GAAgBvB,EAE7C0B,EAAiB,CAAA,EAGvBA,EAAQ,KACNzB,EACEF,cAAY,KAAK,gBAAgB,YAAa,CAAE,SAAAuB,EAAU,YAAAC,CAAA,EAAgBhB,GAAU,CAClF,MAAMG,EAAOH,EAAM,KAAMoB,GAAMA,EAAE,KAAOF,CAAM,EAC1Cf,GACF,OAAO,OAAOA,EAAMN,CAAO,CAE/B,CAAC,CAAA,CACH,EAIFsB,EAAQ,KACNzB,EACEF,EAAAA,YAAY,KAAK,gBACf,iBACA,CAAE,SAAAuB,EAAU,YAAAC,CAAA,EACXhB,GAAU,CACLA,GAAO,KAAOkB,GAChB,OAAO,OAAOlB,EAAOH,CAAO,CAEhC,CAAA,CACF,CACF,EAIFsB,EAAQ,KACNzB,EACEF,EAAAA,YAAY,KAAK,gBACf,iBACA,CAAE,SAAAuB,EAAU,YAAAC,CAAA,EACXhB,GAAU,CACLA,GAAO,KAAOkB,GAChB,OAAO,OAAOlB,EAAOH,CAAO,CAEhC,CAAA,CACF,CACF,EAIFsB,EAAQ,KACNzB,EACEF,EAAAA,YAAY,KAAK,gBACf,UACA,CAAE,SAAAuB,EAAU,OAAAG,EAAQ,YAAAF,CAAA,EACnBhB,GAAU,CACLA,GACF,OAAO,OAAOA,EAAOH,CAAO,CAEhC,CAAA,CACF,CACF,EAGF,GAAI,CACF,MAAMF,CACR,MAAgB,CACdwB,EAAQ,QAASpB,GAAUA,EAAM,MAAM,CACzC,CACF,EACA,uBAAyBa,GAAeA,EAAM,MAAM,OACpD,gBAAiB,CAACC,EAAIC,EAAI,CAAE,SAAAC,EAAU,YAAAC,EAAa,OAAAE,EAAQ,QAAArB,KAAc,CACvE,MAAMwB,EAAc,CAAA,EAOdC,EAAiB,CACrB,QACA,QACA,WACA,aACA,QACA,cACA,SAAA,EAIF,OAF2B,OAAO,KAAKzB,CAAO,EAAE,KAAM0B,GAAQD,EAAe,SAASC,CAAG,CAAC,IAGxFF,EAAK,KAAK,CAAE,KAAM,OAAQ,GAAIH,EAAQ,EACtCG,EAAK,KAAKJ,EAAAA,YAAYF,EAAUC,CAAW,CAAC,GAGvCK,CACT,CAAA,EAEF,WAAY,CACV,eAAgB,MAAO5B,EAAK,CAAE,SAAAC,EAAU,eAAAC,EAAgB,SAAAC,KAAe,CACrE,KAAM,CAAE,OAAAsB,EAAQ,YAAAF,EAAa,SAAAD,CAAA,EAAatB,EACpC+B,EAAQ5B,EAAA,EAGRuB,EAAiB,CAAA,EAEvBA,EAAQ,KACNzB,EACEF,cAAY,KAAK,gBAAgB,YAAa,CAAE,SAAAuB,EAAU,YAAAC,CAAA,EAAgBhB,GACjEA,EAAM,OAAQG,GAASA,EAAK,KAAOe,CAAM,CACjD,CAAA,CACH,EAIF,MAAMO,EAAgB,CACpB,CAAE,YAAAT,CAAA,EACF,CAAE,YAAa,MAAA,CAAU,EAErBU,EAAiB,CAAC,cAAe,gBAAgB,EAEvD,UAAWC,KAASF,EAClB,UAAWG,KAAaF,EAAgB,CACtC,MAAMG,EAAcrC,EAAAA,YAAY,UAAUoC,CAAS,EAAE,OAAO,CAC1D,SAAAb,EACA,YAAaY,EAAM,WAAA,CACpB,EAAEH,CAAK,EAEJK,GAAa,WAAaA,EAAY,MAAM,KAAOX,GACrDC,EAAQ,KACNzB,EACEF,EAAAA,YAAY,KAAK,gBACfoC,EACA,CAAE,SAAAb,EAAU,YAAaY,EAAM,WAAA,EAC/B,IAAM,IAAA,CACR,CACF,CAGN,CAGF,GAAI,CACF,MAAMhC,CACR,OAASiB,EAAO,CAEdO,EAAQ,QAASpB,GAAUA,EAAM,MAAM,EACvC,QAAQ,MAAM,yBAA0Ba,CAAK,CAC/C,CACF,EACA,uBAAyBA,GAAeA,EAAM,MAAM,OAEpD,gBAAiB,CAACC,EAAIC,EAAI,CAAE,SAAAC,EAAU,YAAAC,EAAa,OAAAE,KAAa,CAC9D,CAAE,KAAM,OAAQ,GAAIA,CAAA,EACpBD,EAAAA,YAAYF,EAAUC,CAAW,EACjCC,EAAAA,YAAYF,EAAU,MAAS,CAAA,CACjC,EAEF,eAAgB,CACd,eAAgB,MAAOtB,EAAK,CAAE,SAAAC,EAAU,eAAAC,EAAgB,SAAAC,KAAe,CACrE,KAAM,CAAE,2BAAAkC,EAA4B,YAAAd,EAAa,SAAAD,CAAA,EAAatB,EACxD,CAAE,OAAAyB,GAAWY,EACbN,EAAQ5B,EAAA,EAERmC,EAAqBvC,EAAAA,YAAY,UAAU,eAAe,OAAO,CACrE,SAAAuB,EACA,YAAAC,CAAA,CACD,EAAEQ,CAAK,EAGR,GAAIO,GAAoB,WAAaA,EAAmB,MAAM,GAAI,CAEhE,MAAMhC,EAAQL,EACZF,EAAAA,YAAY,KAAK,gBACf,iBACA,CAAE,SAAAuB,EAAU,YAAAC,CAAA,EACXhB,GAAU,CACT,GAAIA,EAAO,CAMT,MAAMG,EAJeX,EAAAA,YAAY,UAAU,UAAU,OAAO,CAC1D,SAAAuB,EACA,YAAAC,CAAA,CACD,EAAEQ,CAAK,GACmB,MAAM,KAAMJ,GAAMA,EAAE,KAAOF,CAAM,EAExDf,EAEF,OAAO,OAAOH,EAAOG,CAAI,EAGzBH,EAAM,GAAKkB,CAEf,CACF,CAAA,CACF,EAGF,GAAI,CACF,MAAMvB,CACR,OAASiB,EAAO,CAEdb,EAAM,KAAA,EACN,QAAQ,MAAM,8BAA+Ba,CAAK,CACpD,CACF,MACE,QAAQ,KACN,+FAAA,CAKN,EACA,uBAAyBA,GAAeA,EAAM,MAAM,OAEpD,gBAAiB,CAACC,EAAIC,EAAI,CAAE,SAAAC,EAAU,YAAAC,EAAa,2BAAAc,KAAiC,CAClF,CAAE,KAAM,OAAQ,GAAIA,EAA2B,MAAA,EAC/Cb,EAAAA,YAAYF,EAAUC,CAAW,CAAA,CACnC,CACF,CAEJ,CAAC,EAEY,CACX,sBAAAgB,EACA,sBAAAC,EACA,sBAAAC,EACA,0BAAAC,CACF,EAAI5C"}
|
|
@@ -4,31 +4,31 @@ const V = l.enhanceEndpoints({
|
|
|
4
4
|
endpoints: {
|
|
5
5
|
createView: {
|
|
6
6
|
onQueryStarted: async (e, { dispatch: n, queryFulfilled: u, getState: r }) => {
|
|
7
|
-
const { payload: t } = e,
|
|
7
|
+
const { payload: t } = e, a = r().user?.name, d = n(
|
|
8
8
|
l.util.updateQueryData(
|
|
9
9
|
"listViews",
|
|
10
10
|
{ viewType: e.viewType, projectName: e.projectName },
|
|
11
|
-
(
|
|
11
|
+
(o) => {
|
|
12
12
|
const s = {
|
|
13
13
|
...t,
|
|
14
14
|
working: t.working || !1,
|
|
15
15
|
scope: e.projectName ? "project" : "studio",
|
|
16
16
|
visibility: "private",
|
|
17
|
-
position:
|
|
17
|
+
position: o.length + 1,
|
|
18
18
|
// Add to the end of the list
|
|
19
|
-
owner:
|
|
19
|
+
owner: a,
|
|
20
20
|
accessLevel: 30
|
|
21
21
|
};
|
|
22
22
|
if (t.working) {
|
|
23
|
-
const c =
|
|
23
|
+
const c = o.findIndex((y) => y.working === !0);
|
|
24
24
|
if (c !== -1) {
|
|
25
|
-
const y =
|
|
26
|
-
|
|
25
|
+
const y = o[c].id;
|
|
26
|
+
o[c] = { ...s, id: y };
|
|
27
27
|
} else
|
|
28
|
-
|
|
28
|
+
o.push(s);
|
|
29
29
|
} else
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
o.push(s);
|
|
31
|
+
o.sort((c, y) => c.position !== y.position ? c.position - y.position : c.label.localeCompare(y.label));
|
|
32
32
|
}
|
|
33
33
|
)
|
|
34
34
|
);
|
|
@@ -37,29 +37,29 @@ const V = l.enhanceEndpoints({
|
|
|
37
37
|
l.util.updateQueryData(
|
|
38
38
|
"getWorkingView",
|
|
39
39
|
{ viewType: e.viewType, projectName: e.projectName },
|
|
40
|
-
(
|
|
41
|
-
const s =
|
|
40
|
+
(o) => {
|
|
41
|
+
const s = o?.id, c = {
|
|
42
42
|
...t,
|
|
43
43
|
working: !0,
|
|
44
44
|
scope: e.projectName ? "project" : "studio",
|
|
45
45
|
visibility: "private",
|
|
46
|
-
owner:
|
|
46
|
+
owner: a,
|
|
47
47
|
...s && { id: s }
|
|
48
48
|
// Keep existing ID if it exists
|
|
49
49
|
};
|
|
50
|
-
Object.assign(
|
|
50
|
+
Object.assign(o, c);
|
|
51
51
|
}
|
|
52
52
|
)
|
|
53
53
|
));
|
|
54
54
|
let p;
|
|
55
55
|
if (t.label === "__base__") {
|
|
56
|
-
const
|
|
56
|
+
const o = {
|
|
57
57
|
id: f(),
|
|
58
58
|
...t,
|
|
59
59
|
working: !1,
|
|
60
60
|
scope: e.projectName ? "project" : "studio",
|
|
61
61
|
visibility: "private",
|
|
62
|
-
owner:
|
|
62
|
+
owner: a,
|
|
63
63
|
accessLevel: 30,
|
|
64
64
|
position: 0
|
|
65
65
|
};
|
|
@@ -68,14 +68,14 @@ const V = l.enhanceEndpoints({
|
|
|
68
68
|
"getBaseView",
|
|
69
69
|
{ viewType: e.viewType, projectName: e.projectName },
|
|
70
70
|
(s) => {
|
|
71
|
-
s && Object.assign(s,
|
|
71
|
+
s && Object.assign(s, o);
|
|
72
72
|
}
|
|
73
73
|
)
|
|
74
74
|
), p?.patches?.length || n(
|
|
75
75
|
l.util.upsertQueryData(
|
|
76
76
|
"getBaseView",
|
|
77
77
|
{ viewType: e.viewType, projectName: e.projectName },
|
|
78
|
-
|
|
78
|
+
o
|
|
79
79
|
)
|
|
80
80
|
);
|
|
81
81
|
}
|
|
@@ -94,11 +94,11 @@ const V = l.enhanceEndpoints({
|
|
|
94
94
|
},
|
|
95
95
|
updateView: {
|
|
96
96
|
onQueryStarted: async (e, { dispatch: n, queryFulfilled: u }) => {
|
|
97
|
-
const { viewId: r, payload: t, viewType: w, projectName:
|
|
97
|
+
const { viewId: r, payload: t, viewType: w, projectName: a } = e, d = [];
|
|
98
98
|
d.push(
|
|
99
99
|
n(
|
|
100
|
-
l.util.updateQueryData("listViews", { viewType: w, projectName:
|
|
101
|
-
const p = i.find((
|
|
100
|
+
l.util.updateQueryData("listViews", { viewType: w, projectName: a }, (i) => {
|
|
101
|
+
const p = i.find((o) => o.id === r);
|
|
102
102
|
p && Object.assign(p, t);
|
|
103
103
|
})
|
|
104
104
|
)
|
|
@@ -106,7 +106,7 @@ const V = l.enhanceEndpoints({
|
|
|
106
106
|
n(
|
|
107
107
|
l.util.updateQueryData(
|
|
108
108
|
"getWorkingView",
|
|
109
|
-
{ viewType: w, projectName:
|
|
109
|
+
{ viewType: w, projectName: a },
|
|
110
110
|
(i) => {
|
|
111
111
|
i?.id === r && Object.assign(i, t);
|
|
112
112
|
}
|
|
@@ -116,7 +116,7 @@ const V = l.enhanceEndpoints({
|
|
|
116
116
|
n(
|
|
117
117
|
l.util.updateQueryData(
|
|
118
118
|
"getDefaultView",
|
|
119
|
-
{ viewType: w, projectName:
|
|
119
|
+
{ viewType: w, projectName: a },
|
|
120
120
|
(i) => {
|
|
121
121
|
i?.id === r && Object.assign(i, t);
|
|
122
122
|
}
|
|
@@ -126,7 +126,7 @@ const V = l.enhanceEndpoints({
|
|
|
126
126
|
n(
|
|
127
127
|
l.util.updateQueryData(
|
|
128
128
|
"getView",
|
|
129
|
-
{ viewType: w, viewId: r, projectName:
|
|
129
|
+
{ viewType: w, viewId: r, projectName: a },
|
|
130
130
|
(i) => {
|
|
131
131
|
i && Object.assign(i, t);
|
|
132
132
|
}
|
|
@@ -141,7 +141,7 @@ const V = l.enhanceEndpoints({
|
|
|
141
141
|
},
|
|
142
142
|
transformErrorResponse: (e) => e.data?.detail,
|
|
143
143
|
invalidatesTags: (e, n, { viewType: u, projectName: r, viewId: t, payload: w }) => {
|
|
144
|
-
const
|
|
144
|
+
const a = [], d = [
|
|
145
145
|
"label",
|
|
146
146
|
"owner",
|
|
147
147
|
"position",
|
|
@@ -150,33 +150,33 @@ const V = l.enhanceEndpoints({
|
|
|
150
150
|
"accessLevel",
|
|
151
151
|
"working"
|
|
152
152
|
];
|
|
153
|
-
return Object.keys(w).some((p) => d.includes(p)) &&
|
|
153
|
+
return Object.keys(w).some((p) => d.includes(p)) && (a.push({ type: "view", id: t }), a.push(v(u, r))), a;
|
|
154
154
|
}
|
|
155
155
|
},
|
|
156
156
|
deleteView: {
|
|
157
157
|
onQueryStarted: async (e, { dispatch: n, queryFulfilled: u, getState: r }) => {
|
|
158
|
-
const { viewId: t, projectName: w, viewType:
|
|
158
|
+
const { viewId: t, projectName: w, viewType: a } = e, d = r(), i = [];
|
|
159
159
|
i.push(
|
|
160
160
|
n(
|
|
161
|
-
l.util.updateQueryData("listViews", { viewType:
|
|
161
|
+
l.util.updateQueryData("listViews", { viewType: a, projectName: w }, (s) => s.filter((c) => c.id !== t))
|
|
162
162
|
)
|
|
163
163
|
);
|
|
164
164
|
const p = [
|
|
165
165
|
{ projectName: w },
|
|
166
166
|
{ projectName: void 0 }
|
|
167
167
|
// studio level
|
|
168
|
-
],
|
|
168
|
+
], o = ["getBaseView", "getDefaultView"];
|
|
169
169
|
for (const s of p)
|
|
170
|
-
for (const c of
|
|
170
|
+
for (const c of o) {
|
|
171
171
|
const y = l.endpoints[c].select({
|
|
172
|
-
viewType:
|
|
172
|
+
viewType: a,
|
|
173
173
|
projectName: s.projectName
|
|
174
174
|
})(d);
|
|
175
175
|
y?.isSuccess && y.data?.id === t && i.push(
|
|
176
176
|
n(
|
|
177
177
|
l.util.updateQueryData(
|
|
178
178
|
c,
|
|
179
|
-
{ viewType:
|
|
179
|
+
{ viewType: a, projectName: s.projectName },
|
|
180
180
|
() => null
|
|
181
181
|
)
|
|
182
182
|
)
|
|
@@ -198,19 +198,19 @@ const V = l.enhanceEndpoints({
|
|
|
198
198
|
},
|
|
199
199
|
setDefaultView: {
|
|
200
200
|
onQueryStarted: async (e, { dispatch: n, queryFulfilled: u, getState: r }) => {
|
|
201
|
-
const { setDefaultViewRequestModel: t, projectName: w, viewType:
|
|
202
|
-
viewType:
|
|
201
|
+
const { setDefaultViewRequestModel: t, projectName: w, viewType: a } = e, { viewId: d } = t, i = r(), p = l.endpoints.getDefaultView.select({
|
|
202
|
+
viewType: a,
|
|
203
203
|
projectName: w
|
|
204
204
|
})(i);
|
|
205
205
|
if (p?.isSuccess && p.data?.id) {
|
|
206
|
-
const
|
|
206
|
+
const o = n(
|
|
207
207
|
l.util.updateQueryData(
|
|
208
208
|
"getDefaultView",
|
|
209
|
-
{ viewType:
|
|
209
|
+
{ viewType: a, projectName: w },
|
|
210
210
|
(s) => {
|
|
211
211
|
if (s) {
|
|
212
212
|
const y = l.endpoints.listViews.select({
|
|
213
|
-
viewType:
|
|
213
|
+
viewType: a,
|
|
214
214
|
projectName: w
|
|
215
215
|
})(i)?.data?.find((g) => g.id === d);
|
|
216
216
|
y ? Object.assign(s, y) : s.id = d;
|
|
@@ -221,7 +221,7 @@ const V = l.enhanceEndpoints({
|
|
|
221
221
|
try {
|
|
222
222
|
await u;
|
|
223
223
|
} catch (s) {
|
|
224
|
-
|
|
224
|
+
o.undo(), console.error("Failed to set default view:", s);
|
|
225
225
|
}
|
|
226
226
|
} else
|
|
227
227
|
console.warn(
|